From d0572aeca4571a3acb33dc0c9900121127364bc0 Mon Sep 17 00:00:00 2001 From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com> Date: Thu, 22 Aug 2024 23:20:41 +0300 Subject: [PATCH 01/12] Add docs/source/ar/gguf.md to Add_docs_source_ar_gguf.md --- docs/source/ar/gguf.md | 66 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 docs/source/ar/gguf.md diff --git a/docs/source/ar/gguf.md b/docs/source/ar/gguf.md new file mode 100644 index 000000000000..aeacd3b1bcd9 --- /dev/null +++ b/docs/source/ar/gguf.md @@ -0,0 +1,66 @@ +# GGUF وتفاعلها مع المحولات + +تُستخدم صيغة ملف GGUF لتخزين النماذج للاستنتاج مع [GGML](https://github.com/ggerganov/ggml) والمكتبات الأخرى التي تعتمد عليها، مثل [llama.cpp](https://github.com/ggerganov/llama.cpp) أو [whisper.cpp](https://github.com/ggerganov/whisper.cpp) الشهيرة جدًا. + +إنها صيغة ملف [مدعومة من قبل Hugging Face Hub](https://huggingface.co/docs/hub/en/gguf) مع ميزات تسمح بالتفتيش السريع للتوابع والبيانات الوصفية داخل الملف. + +تم تصميم تنسيق الملف هذا كـ "تنسيق ملف واحد" حيث يحتوي ملف واحد عادةً على كل من سمات التكوين ومفردات المحلل اللغوي والسمات الأخرى، بالإضافة إلى جميع التوابع التي سيتم تحميلها في النموذج. تأتي هذه الملفات بتنسيقات مختلفة وفقًا لنوع التكميم في الملف. نلقي نظرة موجزة على بعضها [هنا](https://huggingface.co/docs/hub/en/gguf#quantization-types). + +## الدعم داخل المحولات + +أضفنا القدرة على تحميل ملفات `gguf` داخل `المحولات` لتوفير قدرات تدريب/ضبط إضافية لنماذج gguf، قبل إعادة تحويل تلك النماذج إلى `gguf` لاستخدامها داخل نظام بيئي `ggml`. عند تحميل نموذج، نقوم أولاً بإلغاء تكميمه إلى fp32، قبل تحميل الأوزان لاستخدامها في PyTorch. + +> [!ملاحظة] +> لا يزال الدعم استكشافيًا للغاية ونرحب بالمساهمات لتثبيته عبر أنواع التكميم وبنيات النماذج. + +فيما يلي، بنيات النماذج وأنواع التكميم المدعومة: + +### أنواع التكميم المدعومة + +تُحدد أنواع التكميم المدعومة مبدئيًا وفقًا لملفات التكميم الشائعة التي تمت مشاركتها على Hub. + +- F32 +- Q2_K +- Q3_K +- Q4_0 +- Q4_K +- Q5_K +- Q6_K +- Q8_0 + +نأخذ مثالاً من المحلل الممتاز [99991/pygguf](https://github.com/99991/pygguf) Python لإلغاء تكميم الأوزان. + +### بنيات النماذج المدعومة + +في الوقت الحالي، بنيات النماذج المدعومة هي البنيات التي كانت شائعة جدًا على Hub، وهي: + +- LLaMa +- ميسترال +- Qwen2 + +## مثال الاستخدام + +لتحميل ملفات `gguf` في `المحولات`، يجب تحديد وسيط `gguf_file` لأساليب `from_pretrained` لكل من المحللات اللغوية والنماذج. فيما يلي كيفية تحميل محلل لغوي ونموذج، يمكن تحميلهما من نفس الملف بالضبط: + +```py +from transformers import AutoTokenizer, AutoModelForCausalLM + +model_id = "TheBloke/TinyLlama-1.1B-Chat-v1.0-GGUF" +filename = "tinyllama-1.1b-chat-v1.0.Q6_K.gguf" + +tokenizer = AutoTokenizer.from_pretrained(model_id, gguf_file=filename) +model = AutoModelForCausalLM.from_pretrained(model_id, gguf_file=filename) +``` + +الآن لديك حق الوصول إلى الإصدار الكامل غير المكمم للنموذج في نظام PyTorch البيئي، حيث يمكنك دمجه مع مجموعة من الأدوات الأخرى. + +لإعادة التحويل إلى ملف `gguf`، نوصي باستخدام ملف [`convert-hf-to-gguf.py`](https://github.com/ggerganov/llama.cpp/blob/master/convert-hf-to-gguf.py) من llama.cpp. + +فيما يلي كيفية إكمال البرنامج النصي أعلاه لحفظ النموذج وتصديره مرة أخرى إلى `gguf`: + +```py +tokenizer.save_pretrained('directory') +model.save_pretrained('directory') + +!python ${path_to_llama_cpp}/convert-hf-to-gguf.py ${directory} +``` \ No newline at end of file From 5c92f7985d0df9954ce66037bbbc6d6914307e40 Mon Sep 17 00:00:00 2001 From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com> Date: Wed, 30 Oct 2024 06:42:29 +0300 Subject: [PATCH 02/12] Update docs/source/ar/gguf.md Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com> --- docs/source/ar/gguf.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/ar/gguf.md b/docs/source/ar/gguf.md index aeacd3b1bcd9..7ed559191f10 100644 --- a/docs/source/ar/gguf.md +++ b/docs/source/ar/gguf.md @@ -1,6 +1,6 @@ # GGUF وتفاعلها مع المحولات -تُستخدم صيغة ملف GGUF لتخزين النماذج للاستنتاج مع [GGML](https://github.com/ggerganov/ggml) والمكتبات الأخرى التي تعتمد عليها، مثل [llama.cpp](https://github.com/ggerganov/llama.cpp) أو [whisper.cpp](https://github.com/ggerganov/whisper.cpp) الشهيرة جدًا. +تُستخدم صيغة ملف GGUF لتخزين النماذج للاستدلال باستخدام [GGML](https://github.com/ggerganov/ggml) والمكتبات الأخرى التي تعتمد عليه، مثل [llama.cpp](https://github.com/ggerganov/llama.cpp) أو [whisper.cpp](https://github.com/ggerganov/whisper.cpp) الشهيرة جدًا. إنها صيغة ملف [مدعومة من قبل Hugging Face Hub](https://huggingface.co/docs/hub/en/gguf) مع ميزات تسمح بالتفتيش السريع للتوابع والبيانات الوصفية داخل الملف. From 43b88666a0f11db8685d3e7e67675850290097ca Mon Sep 17 00:00:00 2001 From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com> Date: Wed, 30 Oct 2024 06:42:56 +0300 Subject: [PATCH 03/12] Update docs/source/ar/gguf.md Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com> --- docs/source/ar/gguf.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/ar/gguf.md b/docs/source/ar/gguf.md index 7ed559191f10..5ee16dc2cb62 100644 --- a/docs/source/ar/gguf.md +++ b/docs/source/ar/gguf.md @@ -2,7 +2,7 @@ تُستخدم صيغة ملف GGUF لتخزين النماذج للاستدلال باستخدام [GGML](https://github.com/ggerganov/ggml) والمكتبات الأخرى التي تعتمد عليه، مثل [llama.cpp](https://github.com/ggerganov/llama.cpp) أو [whisper.cpp](https://github.com/ggerganov/whisper.cpp) الشهيرة جدًا. -إنها صيغة ملف [مدعومة من قبل Hugging Face Hub](https://huggingface.co/docs/hub/en/gguf) مع ميزات تسمح بالتفتيش السريع للتوابع والبيانات الوصفية داخل الملف. +إنها صيغة ملف [مدعومة من قبل Hugging Face Hub](https://huggingface.co/docs/hub/en/gguf) مع ميزات تسمح بالفحص السريع للموترات والبيانات الوصفية داخل الملف. تم تصميم تنسيق الملف هذا كـ "تنسيق ملف واحد" حيث يحتوي ملف واحد عادةً على كل من سمات التكوين ومفردات المحلل اللغوي والسمات الأخرى، بالإضافة إلى جميع التوابع التي سيتم تحميلها في النموذج. تأتي هذه الملفات بتنسيقات مختلفة وفقًا لنوع التكميم في الملف. نلقي نظرة موجزة على بعضها [هنا](https://huggingface.co/docs/hub/en/gguf#quantization-types). From 7f59c31107e9d8eea95d0d2b576cdebc4cba03f5 Mon Sep 17 00:00:00 2001 From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com> Date: Wed, 30 Oct 2024 06:43:07 +0300 Subject: [PATCH 04/12] Update docs/source/ar/gguf.md Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com> --- docs/source/ar/gguf.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/ar/gguf.md b/docs/source/ar/gguf.md index 5ee16dc2cb62..661527992f3b 100644 --- a/docs/source/ar/gguf.md +++ b/docs/source/ar/gguf.md @@ -4,7 +4,7 @@ إنها صيغة ملف [مدعومة من قبل Hugging Face Hub](https://huggingface.co/docs/hub/en/gguf) مع ميزات تسمح بالفحص السريع للموترات والبيانات الوصفية داخل الملف. -تم تصميم تنسيق الملف هذا كـ "تنسيق ملف واحد" حيث يحتوي ملف واحد عادةً على كل من سمات التكوين ومفردات المحلل اللغوي والسمات الأخرى، بالإضافة إلى جميع التوابع التي سيتم تحميلها في النموذج. تأتي هذه الملفات بتنسيقات مختلفة وفقًا لنوع التكميم في الملف. نلقي نظرة موجزة على بعضها [هنا](https://huggingface.co/docs/hub/en/gguf#quantization-types). +تم تصميم تنسيق الملف هذا كـ "تنسيق ملف واحد" حيث يحتوي ملف واحد عادةً على كل من سمات التكوين ومفردات المجزىء اللغوي والخصائص الأخرى، بالإضافة إلى جميع الموترات التي سيتم تحميلها في النموذج. تأتي هذه الملفات بتنسيقات مختلفة وفقًا لنوع التكميم في الملف. نلقي نظرة موجزة على بعضها [هنا](https://huggingface.co/docs/hub/en/gguf#quantization-types). ## الدعم داخل المحولات From bd4c6c49f71355fac301ea1fe18e237381191061 Mon Sep 17 00:00:00 2001 From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com> Date: Wed, 30 Oct 2024 06:43:26 +0300 Subject: [PATCH 05/12] Update docs/source/ar/gguf.md Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com> --- docs/source/ar/gguf.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/ar/gguf.md b/docs/source/ar/gguf.md index 661527992f3b..f32625371fee 100644 --- a/docs/source/ar/gguf.md +++ b/docs/source/ar/gguf.md @@ -8,7 +8,7 @@ ## الدعم داخل المحولات -أضفنا القدرة على تحميل ملفات `gguf` داخل `المحولات` لتوفير قدرات تدريب/ضبط إضافية لنماذج gguf، قبل إعادة تحويل تلك النماذج إلى `gguf` لاستخدامها داخل نظام بيئي `ggml`. عند تحميل نموذج، نقوم أولاً بإلغاء تكميمه إلى fp32، قبل تحميل الأوزان لاستخدامها في PyTorch. +أضفنا القدرة على تحميل ملفات `gguf` داخل `المحولات` لتوفير قدرات تدريب/ضبط إضافية لنماذج gguf، قبل إعادة تحويل تلك النماذج إلى `gguf` لاستخدامها داخل نظام `ggml`. عند تحميل نموذج، نقوم أولاً بإلغاء تكميمه إلى fp32، قبل تحميل الأوزان لاستخدامها في PyTorch. > [!ملاحظة] > لا يزال الدعم استكشافيًا للغاية ونرحب بالمساهمات لتثبيته عبر أنواع التكميم وبنيات النماذج. From 29766a298d57bcb220744b4a35fb643eb7c1d3ad Mon Sep 17 00:00:00 2001 From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com> Date: Wed, 30 Oct 2024 06:43:38 +0300 Subject: [PATCH 06/12] Update docs/source/ar/gguf.md Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com> --- docs/source/ar/gguf.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/ar/gguf.md b/docs/source/ar/gguf.md index f32625371fee..3fcb60129137 100644 --- a/docs/source/ar/gguf.md +++ b/docs/source/ar/gguf.md @@ -11,7 +11,7 @@ أضفنا القدرة على تحميل ملفات `gguf` داخل `المحولات` لتوفير قدرات تدريب/ضبط إضافية لنماذج gguf، قبل إعادة تحويل تلك النماذج إلى `gguf` لاستخدامها داخل نظام `ggml`. عند تحميل نموذج، نقوم أولاً بإلغاء تكميمه إلى fp32، قبل تحميل الأوزان لاستخدامها في PyTorch. > [!ملاحظة] -> لا يزال الدعم استكشافيًا للغاية ونرحب بالمساهمات لتثبيته عبر أنواع التكميم وبنيات النماذج. +> لا يزال الدعم تجريبيًا للغاية ونرحب بالمساهمات من أجل ترسيخه عبر أنواع التكميم وبنى النماذج. فيما يلي، بنيات النماذج وأنواع التكميم المدعومة: From fd1964a228e06ab9061e272de3cfa8299e039bbb Mon Sep 17 00:00:00 2001 From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com> Date: Wed, 30 Oct 2024 06:43:53 +0300 Subject: [PATCH 07/12] Update docs/source/ar/gguf.md Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com> --- docs/source/ar/gguf.md | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/docs/source/ar/gguf.md b/docs/source/ar/gguf.md index 3fcb60129137..b076527d55dd 100644 --- a/docs/source/ar/gguf.md +++ b/docs/source/ar/gguf.md @@ -20,13 +20,27 @@ تُحدد أنواع التكميم المدعومة مبدئيًا وفقًا لملفات التكميم الشائعة التي تمت مشاركتها على Hub. - F32 +- F16 +- BF16 +- Q4_0 +- Q4_1 +- Q5_0 +- Q5_1 +- Q8_0 - Q2_K - Q3_K -- Q4_0 - Q4_K - Q5_K - Q6_K -- Q8_0 +- IQ1_S +- IQ1_M +- IQ2_XXS +- IQ2_XS +- IQ2_S +- IQ3_XXS +- IQ3_S +- IQ4_XS +- IQ4_NL نأخذ مثالاً من المحلل الممتاز [99991/pygguf](https://github.com/99991/pygguf) Python لإلغاء تكميم الأوزان. From 03bc806c3c8dfb9105c82f1a8a6b0f4b48c6aa89 Mon Sep 17 00:00:00 2001 From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com> Date: Wed, 30 Oct 2024 06:44:15 +0300 Subject: [PATCH 08/12] Update docs/source/ar/gguf.md Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com> --- docs/source/ar/gguf.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/source/ar/gguf.md b/docs/source/ar/gguf.md index b076527d55dd..1662e94f433d 100644 --- a/docs/source/ar/gguf.md +++ b/docs/source/ar/gguf.md @@ -42,7 +42,8 @@ - IQ4_XS - IQ4_NL -نأخذ مثالاً من المحلل الممتاز [99991/pygguf](https://github.com/99991/pygguf) Python لإلغاء تكميم الأوزان. +> [!ملاحظة] +> لدعم إلغاء تكميم gguf، يلزم تثبيت `gguf>=0.10.0`. ### بنيات النماذج المدعومة From dc24b545b6c6c371b7c3e75f1cef5b9f8b14d6b5 Mon Sep 17 00:00:00 2001 From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com> Date: Wed, 30 Oct 2024 06:44:25 +0300 Subject: [PATCH 09/12] Update docs/source/ar/gguf.md Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com> --- docs/source/ar/gguf.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/source/ar/gguf.md b/docs/source/ar/gguf.md index 1662e94f433d..bc6c78c37fb4 100644 --- a/docs/source/ar/gguf.md +++ b/docs/source/ar/gguf.md @@ -50,8 +50,16 @@ في الوقت الحالي، بنيات النماذج المدعومة هي البنيات التي كانت شائعة جدًا على Hub، وهي: - LLaMa -- ميسترال +- Mistral - Qwen2 +- Qwen2Moe +- Phi3 +- Bloom +- Falcon +- StableLM +- GPT2 +- Starcoder2 +- T5 ## مثال الاستخدام From ddb7a8536c1abc9376183ccdecd11c8d50756b79 Mon Sep 17 00:00:00 2001 From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com> Date: Wed, 30 Oct 2024 06:44:36 +0300 Subject: [PATCH 10/12] Update docs/source/ar/gguf.md Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com> --- docs/source/ar/gguf.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/ar/gguf.md b/docs/source/ar/gguf.md index bc6c78c37fb4..be849182e606 100644 --- a/docs/source/ar/gguf.md +++ b/docs/source/ar/gguf.md @@ -63,7 +63,7 @@ ## مثال الاستخدام -لتحميل ملفات `gguf` في `المحولات`، يجب تحديد وسيط `gguf_file` لأساليب `from_pretrained` لكل من المحللات اللغوية والنماذج. فيما يلي كيفية تحميل محلل لغوي ونموذج، يمكن تحميلهما من نفس الملف بالضبط: +لتحميل ملفات `gguf` في `transformers`، يجب تحديد معامل `gguf_file` فى دالة `from_pretrained` لكل من المُجزّئ اللغوية والنموذج. فيما يلي كيفية تحميل المُجزّئ اللغوي ونموذج، يمكن تحميلهما من نفس الملف: ```py from transformers import AutoTokenizer, AutoModelForCausalLM From a04bb433676f4b264981216a55227e360b0508af Mon Sep 17 00:00:00 2001 From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com> Date: Wed, 30 Oct 2024 06:44:52 +0300 Subject: [PATCH 11/12] Update docs/source/ar/gguf.md Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com> --- docs/source/ar/gguf.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/ar/gguf.md b/docs/source/ar/gguf.md index be849182e606..68bdc7727282 100644 --- a/docs/source/ar/gguf.md +++ b/docs/source/ar/gguf.md @@ -75,7 +75,7 @@ tokenizer = AutoTokenizer.from_pretrained(model_id, gguf_file=filename) model = AutoModelForCausalLM.from_pretrained(model_id, gguf_file=filename) ``` -الآن لديك حق الوصول إلى الإصدار الكامل غير المكمم للنموذج في نظام PyTorch البيئي، حيث يمكنك دمجه مع مجموعة من الأدوات الأخرى. +الآن لديك إمكانية الوصول إلى النسخة الكامل غير المكممة للنموذج في بيئة PyTorch، حيث يمكنك دمجه مع مجموعة كبيرة من الأدوات الأخرى. لإعادة التحويل إلى ملف `gguf`، نوصي باستخدام ملف [`convert-hf-to-gguf.py`](https://github.com/ggerganov/llama.cpp/blob/master/convert-hf-to-gguf.py) من llama.cpp. From 435ed2cd89c90909ed1a085133cdf7b287114b29 Mon Sep 17 00:00:00 2001 From: Ahmed Almaghz <53489256+AhmedAlmaghz@users.noreply.github.com> Date: Wed, 30 Oct 2024 06:45:02 +0300 Subject: [PATCH 12/12] Update docs/source/ar/gguf.md Co-authored-by: Abdullah Mohammed <554032+abodacs@users.noreply.github.com> --- docs/source/ar/gguf.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/ar/gguf.md b/docs/source/ar/gguf.md index 68bdc7727282..246b6cc6a52c 100644 --- a/docs/source/ar/gguf.md +++ b/docs/source/ar/gguf.md @@ -79,7 +79,7 @@ model = AutoModelForCausalLM.from_pretrained(model_id, gguf_file=filename) لإعادة التحويل إلى ملف `gguf`، نوصي باستخدام ملف [`convert-hf-to-gguf.py`](https://github.com/ggerganov/llama.cpp/blob/master/convert-hf-to-gguf.py) من llama.cpp. -فيما يلي كيفية إكمال البرنامج النصي أعلاه لحفظ النموذج وتصديره مرة أخرى إلى `gguf`: +فيما يلي كيفية إكمال البرنامج النصي أعلاه لحفظ النموذج وإعادة تصديره مرة أخرى إلى `gguf`: ```py tokenizer.save_pretrained('directory')