![]() | هذا هو المستودع غير الرسمي للكتاب: نماذج اللغة الكبيرة: تطبيق وتنفيذ استراتيجيات لنماذج اللغة الكبيرة (APRESS). يعتمد الكتاب على محتوى هذا المستودع ، ولكن يتم تحديث أجهزة الكمبيوتر المحمولة ، وأنا أقوم بدمج أمثلة وفصول جديدة. إذا كنت تبحث عن المستودع الرسمي للكتاب ، مع أجهزة الكمبيوتر المحمولة الأصلية ، فيجب عليك زيارة مستودع Apress ، حيث يمكنك العثور على جميع أجهزة الكمبيوتر المحمولة بتنسيقها الأصلي كما تظهر في الكتاب. شرائه على: [Amazon] [Springer] |
يرجى ملاحظة أن الدورة التدريبية على Github لا تحتوي على جميع المعلومات الموجودة في الكتاب.
هذه الأيدي العملية المجانية على المسار حول نماذج اللغة الكبيرة وتطبيقاتها هي في التنمية الدائمة ؟؟. سأقوم بنشر الدروس والعينات المختلفة وأنا أكملها.
توفر الدورة تجربة عملية باستخدام نماذج من Openai ومكتبة Hugging Face. سنرى ونستخدم الكثير من الأدوات والممارسة مع المشاريع الصغيرة التي ستنمو حيث يمكننا تطبيق المعرفة الجديدة التي تم الحصول عليها.
تشمل بعض الموضوعات والتقنيات التي تغطيها هذا القسم: chatbots ، توليد الكود ، واجهة برمجة تطبيقات Openai ، وجه المعانقة ، قواعد بيانات المتجهات ، langchain ، ضبط دقيق ، ضبط دقيق Peft ، ضبط موجه ناعم ، Lora ، Qlora ، التقييم ، التقطير المعرفة.
يتوافق كل درس بواسطة دفاتر الملاحظات والمقالات. تحتوي دفاتر الملاحظات على معلومات كافية لفهم الرمز داخلها ، توفر المقالة تفسيرات أكثر تفصيلاً حول الرمز والموضوع المغطى.
نصيحتي هي فتح المقالة جنبًا إلى جنب مع دفتر الملاحظات والمتابعة. تقدم العديد من المقالات نصائح صغيرة حول الاختلافات التي يمكنك تقديمها إلى دفاتر الملاحظات. أوصي بمتابعتهم لتعزيز وضوح المفاهيم.
يتم استضافة معظم أجهزة الكمبيوتر المحمولة على كولاب ، بينما يوجد عدد قليل من كاججل. يوفر Kaggle المزيد من الذاكرة في الإصدار المجاني مقارنةً بـ Colab ، لكنني أجد أن نسخ ومشاركة دفاتر الملاحظات أبسط في كولاب ، وليس لدى الجميع حساب kaggle.
تتطلب بعض دفاتر الملاحظات ذاكرة أكثر مما يوفره الإصدار المجاني من Colab. نظرًا لأننا نعمل مع نماذج لغة كبيرة ، فهذا موقف شائع سيتكرر إذا واصلت العمل معهم. يمكنك تشغيل دفاتر الملاحظات في بيئتك الخاصة أو اختيار الإصدار المحترف من كولاب.
يتم دعم كل دفتر ملاحظات بمقالة متوسطة حيث يتم شرح الرمز بالتفصيل.
في هذا القسم الأول من الدورة ، سوف نتعلم العمل مع API Openai من خلال إنشاء مشروعين صغيرين. سنتعمق في أدوار Openai وكيفية تقديم التعليمات اللازمة للنموذج من خلال موجه لجعله يتصرف كما نرغب.
المشروع الأول هو chatbot مطعم حيث سيأخذ النموذج طلبات العملاء. بناءً على هذا المشروع ، سنقوم ببناء مولد بيان SQL. هنا ، سنحاول إنشاء مطالبة آمنة لا تقبل سوى أوامر إنشاء SQL ولا شيء آخر.
سنستخدم Openai GPT-3.5 ولوحة لتطوير chatbot مباشرة مصممة لمطعم الوجبات السريعة. خلال الدورة ، سوف نستكشف أساسيات الهندسة السريعة ، بما في ذلك فهم أدوار Openai المختلفة ، ومعالجة إعدادات درجة الحرارة ، وكيفية تجنب الحقن الفوري.
| لجنة المقالة / مقال جاجيو | لوحة دفتر / دفتر جدريو |
|---|
باتباع نفس الإطار المستخدم في المقالة السابقة لإنشاء chatbot ، قمنا ببعض التعديلات لتطوير لغة طبيعية لمترجم SQL. في هذه الحالة ، يجب تزويد النموذج بهياكل الجدول ، وتم إجراء تعديلات على المطالبة لضمان وظائف سلسة وتجنب أي أعطال محتملة. مع وجود هذه التعديلات في مكانها ، يكون المترجم قادرًا على تحويل استعلامات اللغة الطبيعية إلى استعلامات SQL. قامت FmQuaglia بإنشاء دفتر ملاحظات باستخدام DBML لوصف الجداول التي تعتبر إلى حد بعيد أفضل من الأصل.
| مقال / مقال جاجيو | دفتر / دفتر جاريو / دفتر دي بي إم إل |
|---|
سوف نستكشف تقنيات الهندسة السريعة لتحسين النتائج التي نحصل عليها من النماذج. مثل كيفية تنسيق الإجابة والحصول على استجابة منظمة باستخدام عدد قليل من عينات اللقطة.
| شرط | دفتر |
|---|
مقدمة موجزة لقواعد بيانات المتجهات ، وهي تقنية سترافقنا في العديد من الدروس خلال الدورة. سنعمل على مثال على الجيل المعزز للاسترجاع باستخدام معلومات من مجموعات بيانات الأخبار المختلفة المخزنة في Chromadb.
إذا كان هناك جانب واحد يكتسب أهمية في عالم نماذج اللغة الكبيرة ، فإنه يستكشف كيفية الاستفادة من المعلومات الملكية معهم. في هذا الدرس ، نستكشف حلًا ممكنًا يتضمن تخزين المعلومات في قاعدة بيانات المتجهات ، و chromadb في حالتنا ، واستخدامه لإنشاء مطالبات مخصبة.
| شرط | دفتر |
|---|
قمنا بتحسين نظام الخرقة من خلال تقديم طبقة ذاكرة التخزين المؤقت الدلالية قادرة على تحديد ما إذا كان قد تم طرح سؤال مماثل من قبل. إذا كانت إيجابية ، فإنها تسترجع المعلومات من نظام ذاكرة التخزين المؤقت التي تم إنشاؤها باستخدام FAISS بدلاً من الوصول إلى قاعدة بيانات المتجه.
يوجد الإلهام والرمز الأساسي لذاكرة التخزين المؤقت الدلالية الموجودة في هذا الكمبيوتر الدفتري بفضل الدورة: https://maven.com/boring-bot/advanced-llm/1/home من حمزة فاروق.
| شرط | دفتر |
|---|---|
| WIP | دفتر |
كانت Langchain واحدة من المكتبات في عالم نماذج اللغة الكبيرة التي ساهمت أكثر في هذه الثورة. يسمح لنا بسلسلة المكالمات إلى النماذج والأنظمة الأخرى ، مما يتيح لنا إنشاء تطبيقات بناءً على نماذج لغة كبيرة. في الدورة ، سوف نستخدمها عدة مرات ، ونخلق مشاريع معقدة بشكل متزايد.
في هذا الدرس ، استخدمنا Langchain لتحسين دفتر الملاحظات من الدرس السابق ، حيث استخدمنا البيانات من مجموعتين لإنشاء موجه مخصب. هذه المرة ، بمساعدة Langchain ، قمنا ببناء خط أنابيب مسؤول عن استرداد البيانات من قاعدة بيانات المتجه ونقلها إلى نموذج اللغة. تم إعداد دفتر الملاحظات للعمل مع مجموعتين مختلفتين ونموذجين مختلفين. يتم تدريب أحد النماذج على توليد النص ، في حين يتم تدريب الآخر على توليد النص text2tex.
| شرط | دفتر |
|---|
سنقوم بإنشاء نظام استجابة للتعليق باستخدام خط أنابيب من طرازين تم تصميمه باستخدام Langchain. في هذا الإعداد ، سيكون النموذج الثاني مسؤولاً عن تعديل الاستجابات الناتجة عن النموذج الأول.
إحدى الطرق الفعالة لمنع نظامنا من توليد الاستجابات غير المرغوب فيها هي استخدام نموذج ثانٍ ليس له تفاعل مباشر مع المستخدمين للتعامل مع توليد الاستجابة.
يمكن أن يقلل هذا النهج من خطر الاستجابات غير المرغوب فيها الناتجة عن النموذج الأول استجابةً لإدخال المستخدم.
سأقوم بإنشاء دفاتر ملاحظات منفصلة لهذه المهمة. سيتضمن أحدهما نماذج من Openai ، وسيستخدم الآخرون نماذج مفتوحة المصدر المقدمة عن طريق Hugging Face. النتائج التي تم الحصول عليها في دفاتر الملاحظات الثلاثة مختلفة تمامًا. يعمل النظام بشكل أفضل مع نماذج Openai و Llama2.
| شرط | دفتر |
|---|---|
| مقالة Openai | دفتر Openai |
| LLAMA2-7B مقال | LLAMA2-7B دفتر ملاحظات |
| لا مقال | GPT-J دفتر ملاحظات |
يعد الوكلاء أحد أقوى الأدوات في عالم نماذج اللغة الكبيرة. الوكيل قادر على تفسير طلب المستخدم واستخدام الأدوات والمكتبات تحت تصرفه حتى يحقق النتيجة المتوقعة.
مع وكلاء Langchain ، سنقوم بإنشاء في عدد قليل من الأسطر واحدة من أبسط الوكلاء القويين بشكل لا يصدق. سيعمل الوكيل كمساعد محلل للبيانات ويساعدنا في تحليل البيانات الواردة في أي ملف Excel. سيكون قادرًا على تحديد الاتجاهات ، واستخدام النماذج ، وإجراء التنبؤات. باختصار ، سنقوم بإنشاء وكيل بسيط يمكننا استخدامه في عملنا اليومي لتحليل بياناتنا.
| شرط | دفتر |
|---|
في هذا المثال ، يتم الجمع بين تقنيتين شوهدت سابقًا: الوكلاء وقواعد بيانات المتجهات. يتم تخزين المعلومات الطبية في ChromadB ، ويتم إنشاء وكيل Langchain ، والذي سيحضرها فقط عند الضرورة لإنشاء مطالبة مخصبة سيتم إرسالها إلى النموذج للإجابة على سؤال المستخدم.
بمعنى آخر ، يتم إنشاء نظام خرقة لمساعدة chatbot الطبية.
انتباه!!! استخدمه فقط كمثال. لا ينبغي لأحد أن يأخذ توصيات التمهيد كرسالة طبيب حقيقي. أتخلى عن كل المسؤولية عن الاستخدام الذي يمكن إعطاؤه إلى chatbot. لقد بنيت فقط كمثال على التقنيات المختلفة.
| شرط | دفتر |
|---|
تختلف المقاييس المستخدمة لقياس أداء نماذج اللغة الكبيرة تمامًا عن تلك التي استخدمناها في النماذج التقليدية. نحن نتحول بعيدًا عن مقاييس مثل الدقة أو درجة F1 أو الاستدعاء ، ونتحرك نحو مقاييس مثل Bleu أو Rouge أو Meteor.
تم تصميم هذه المقاييس للمهمة المحددة المخصصة لنموذج اللغة.
في هذا القسم ، سنستكشف أمثلة على العديد من هذه المقاييس وكيفية استخدامها لتحديد ما إذا كان هناك نموذج واحد متفوق على آخر لمهمة معينة. سنقوم بالتعمق في سيناريوهات عملية حيث تساعدنا هذه المقاييس في اتخاذ قرارات مستنيرة حول أداء النماذج المختلفة.
Bleu هي واحدة من أولى المقاييس التي تم وضعها لتقييم جودة الترجمات. في دفتر الملاحظات نقارن جودة الترجمة التي قام بها Google مع غيرها من نموذج مفتوح المصدر من Hugging Face.
| المادة WIP | دفتر |
|---|
سوف نستكشف استخدام مقياس Rouge لقياس جودة الملخصات الناتجة عن نموذج اللغة. سنستخدم نموذجين T5 ، أحدهما هو نموذج T5-base والآخر T5 قاعدة تم ضبطه خصيصًا لإنشاء ملخصات.
| شرط | دفتر |
|---|
في هذا المثال الأولي ، يمكنك ملاحظة كيفية استخدام Langsmith لمراقبة حركة المرور بين المكونات المختلفة التي تشكل الوكيل. العامل هو نظام خرقة يستخدم قاعدة بيانات متجهية لإنشاء مطالبة مخصبة ونقلها إلى النموذج. يلتقط Langsmith كلاً من استخدام أدوات الوكيل والقرارات التي يتخذها النموذج ، وتوفير المعلومات في جميع الأوقات عن البيانات المرسلة/المستلمة ، والرموز المستهلكة ، ومدة الاستعلام ، وكل هذا في بيئة سهلة الاستخدام حقًا.
| شرط | دفتر |
|---|
في وقت سابق في دفتر الملاحظات ، Rouge Metrics: تقييم الملخصات ، تعلمنا كيفية استخدام Rouge لتقييم الملخص الذي تم تقريبه على أفضل ما أنشأه الإنسان. هذه المرة ، سوف نستخدم مسافة التضمين و Langsmith للتحقق من النموذج الذي ينتج ملخصات أكثر تشابهًا مع تلك المرجعية.
| شرط | دفتر |
|---|
نأخذ الوكيل الذي يعمل كمساعد طبي ودمج Giskard لتقييم ما إذا كانت ردوده صحيحة. وبهذه الطريقة ، لا يتم تقييم استجابة النموذج فحسب ، ولكن أيضًا استرجاع المعلومات في قاعدة بيانات المتجه. Giskard هو حل يسمح بتقييم محلول خرقة كاملة.
| شرط | دفتر |
|---|
توفر مكتبة LM-Eval من Eleutherai سهولة الوصول إلى المعايير الأكاديمية التي أصبحت معايير الصناعة. وهو يدعم تقييم كل من النماذج المفتوحة المصدر وواجهة برمجة التطبيقات من مقدمي الخدمات مثل Openai ، وحتى يسمح بتقييم المحولات التي تم إنشاؤها باستخدام تقنيات مثل Lora.
في دفتر الملاحظات هذا ، سأركز على ميزة صغيرة ولكنها مهمة للمكتبة: تقييم النماذج المتوافقة مع مكتبة Transformers الخاصة بـ Hugging Face.
| المادة - WIP | دفتر |
|---|
في قسم Finetuning & Optimization ، سنستكشف تقنيات مختلفة مثل الضبط الدقيق أو Lora ، وسنستخدم مكتبة Peft Face المعانقة لضبط نماذج اللغة الكبيرة. سوف نستكشف تقنيات مثل القياس الكمي لتقليل وزن النماذج.
في دفتر الملاحظات هذا ، يتم تدريب نموذجين باستخدام ضبط موجه من مكتبة PEFT. لا تسمح لنا هذه التقنية فقط بالتدريب عن طريق تعديل أوزان عدد قليل جدًا من المعلمات ولكن أيضًا تمكننا من الحصول على نماذج متخصصة مختلفة محملة في الذاكرة التي تستخدم نفس النموذج التأسيسي.
الضبط السريع هو تقنية مضافة ، ولا يتم تعديل أوزان النموذج الذي تم تدريبه مسبقًا. الأوزان التي نقوم بتعديلها في هذه الحالة هي أوزان الرموز الافتراضية التي نضيفها إلى المطالبة.
| شرط | دفتر |
|---|
بعد شرح موجز لكيفية عمل تقنية الضبط LORA ، سنقوم بتحويل نموذج من عائلة بلوم لتعليمه بناء مطالبات يمكن استخدامها لتوجيه نماذج لغة كبيرة.
| شرط | دفتر |
|---|
سنرى مقدمة موجزة عن القياس الكمي ، وتستخدم لتقليل حجم نماذج اللغة الكبيرة الكبيرة. مع القياس الكمي ، يمكنك تحميل نماذج كبيرة تقلل من موارد الذاكرة اللازمة. ينطبق أيضًا على عملية الضبط ، يمكنك ضبط النموذج في وحدة معالجة الرسومات الواحدة دون استهلاك جميع الموارد. بعد التفسير الموجز ، نرى مثالاً حول كيفية إمكانية ضبط طراز Bloom 7B في وحدة معالجة الرسومات T4 16GB على Google Colab.
| شرط | دفتر |
|---|
هذا القسم لا يزال قيد الإنشاء. الهدف من ذلك هو إنشاء منهج سيأخذنا من أبسط تقنيات التقليم إلى إنشاء نموذج باستخدام نفس التقنيات التي تستخدمها الشركات الرائدة في هذا المجال ، مثل Microsoft أو Google أو Nvidia أو Openai ، لبناء نماذجها.
في دفتر الملاحظات الأول ، سيتم تطبيق عملية التقليم على طبقات التغذية من طراز distilgpt2. هذا يعني أن النموذج سيكون لديه أوزان في تلك الطبقات المحددة. يتم اختيار الخلايا العصبية التي يجب تقليمها بناءً على درجات أهميتها ، والتي نحسبها باستخدام قاعدة L1 لأوزانها. إنه أمر بسيط ، لهذا المثال الأول ، يمكن استخدامه عندما ترغب في إنشاء نموذج مشقوق يحاكي النموذج الأساسي في جميع المجالات.
عن طريق تغيير بنية النموذج ، يجب إنشاء ملف تكوين جديد للتأكد من أنه يعمل بشكل صحيح مع مكتبة transformers .
| دفتر ملاحظات: تقليم نموذج distilgpt2. |
|---|
في هذا الكمبيوتر الدفتري الأول ، نحاول تكرار عملية التقليم المستخدمة مع نموذج DistilGPT2 ولكننا نطبق على نموذج LLAMA. من خلال عدم أخذ خصائص النموذج في الاعتبار ، تؤدي عملية التقليم إلى نموذج غير قابل للاستخدام تمامًا. يعمل دفتر الملاحظات هذا بمثابة تمرين لفهم مدى أهمية معرفة بنية النماذج التي ستخضع للاشتراك.
| دفتر ملاحظات: التقليم نموذج llama3.2 غير صحيح aprock. |
|---|
يعالج دفتر الملاحظات الثاني المشكلات التي تمت مواجهتها عند تطبيق نفس عملية التقليم على نموذج LLAMA كما تم استخدامه في DistilGPT2.
يتمثل النهج الصحيح في علاج طبقات MLP للنموذج كأزواج بدلاً من الطبقات الفردية وحساب أهمية الخلايا العصبية من خلال النظر في كلتا الطبقتين معًا. بالإضافة إلى ذلك ، نتحول إلى استخدام الحد الأقصى للوزن المطلق لتحديد الخلايا العصبية التي تبقى في الطبقات المشقوقة.
| تشذيب مقال llama3 | دفتر ملاحظات: التقليم نموذج LLAMA33 |
|---|
في هذا الكمبيوتر الدفتري ، سننظر في مثال على التقليم العمق ، والذي يتضمن إزالة طبقات كاملة من النموذج. أول شيء يجب ملاحظته هو أن إزالة الطبقات بأكملها من نموذج المحولات عادة ما يكون لها تأثير كبير على أداء النموذج. هذا تغيير معماري أكثر حدة مقارنة بالإزالة البسيطة للخلايا العصبية من طبقات MLP ، كما هو موضح في المثال السابق.
| دفتر ملاحظات: عمق التقليم نموذج لاما. |
|---|
في هذا المشروع الأولي المباشر ، سنقوم بتطوير مولد SQL من اللغة الطبيعية. سنبدأ بإنشاء مطالبة لتنفيذ حلين: أحدهما يستخدم نماذج Openai التي تعمل على Azure ، والآخر مع نموذج مفتوح المصدر من وجه المعانقة.
| شرط | دفتر |
|---|---|
| قم بإنشاء موجه NL2SQL لـ Openai | الخلق السريع لـ Openai |
| WIP | إنشاء موجه ل defog/sqlcoder |
| الاستدلال تكوين Azure. | باستخدام نقطة استنتاج الأزور |
في هذا المشروع الصغير ، سننشئ نموذجًا جديدًا يتوافق مع طراز Microsoft-Phi-3 مع DPO ثم نشره على الوجه.
| شرط | دفتر |
|---|---|
| WIP | التوافق مع نموذج DPO A PHI3-3. |
في هذا الحل الأولي ، نقوم بتصميم بنية لنظام NL2SQL قادر على التشغيل على قاعدة بيانات كبيرة. يهدف النظام إلى استخدام نماذج مختلفة أو ثلاثة. في الواقع ، نستخدم ثلاثة نماذج في المثال.
إنها بنية تتيح انطلاقًا سريعًا للمشروع ، مما يوفر الخدمة لعدد قليل من الجداول في قاعدة البيانات ، مما يتيح لنا إضافة المزيد من الجداول بوتيرة لدينا.
في هذا الحل ، نستكشف القوة التحويلية للتضمينات ونماذج اللغة الكبيرة (LLMS) في تقييم مخاطر العملاء وتوصية المنتج في الصناعة المالية. سنقوم بتغيير التنسيق الذي نخزن به معلومات العميل ، وبالتالي ، سنقوم أيضًا بتغيير كيفية سفر هذه المعلومات داخل الأنظمة ، وتحقيق مزايا مهمة.
من فضلك ، إذا وجدت أي مشاكل ، افتح مشكلة. سأبذل قصارى جهدي لإصلاحه في أقرب وقت ممكن ، وأعطيك الائتمان.
إذا كنت ترغب في تقديم مساهمة أو اقتراح موضوع ، فالرجاء عدم التردد في بدء مناقشة. يسعدني تلقي أي آراء أو نصيحة.
لا تخجل ، شارك الدورة التدريبية على شبكاتك الاجتماعية مع أصدقائك. تواصل معي على LinkedIn أو Twitter ولا تتردد في مشاركة أي شيء تريده أو طرح أي أسئلة قد تكون لديكم.
إعطاء نجمة ️ إلى المستودع. يساعدني كثيرًا ، ويشجعني على مواصلة إضافة الدروس. إنها طريقة رائعة لدعم دورات مجانية مفتوحة المصدر مثل هذه.
توم كوكمي ، كريستيان فيدرمان ، نماذج اللغة الكبيرة هي المقيمين على أحدث جودة الترجمة. تقييم LLMs مع LLMS.
Pere Martra ، مقدمة لنماذج اللغة الكبيرة مع Openai
رد فعل: تآزر التفكير والتمثيل في نماذج اللغة. قسم لانجشين والوكلاء. عينة مساعد طبي.
قوة المقياس لضبط موجه فعال المعلمة. قسم الضبط والتحسين الدقيق. عينة ضبط موجه.
لورا: التكيف منخفض الرتبة لنماذج اللغة الكبيرة. قسم الضبط والتحسين الدقيق. عينة لوررا النزعة.
qlora: فني فعال من LLMs الكمية. قسم الضبط والتحسين الدقيق. عينة صقل Qlora.
كيفية المطالبة بـ LLMS للحصول على نص إلى SQL: دراسة في إعدادات الصفر ، المجال المفرد ، وإعدادات المجال المتقاطع. مشروع. اللغة الطبيعية إلى SQL.
Saurav Muralidharan ، Sharath Turuvekere Sreenivas ، Raviraj Joshi ، Marcin Chochowski ، Mostofa Patwary ، Mohammad Shoeybi ، Bryan Catanzaro ، Jan Kautz ، Pavlo Molchanov ، "Model Language Dyply the Pruning and Recivery Compl. 2024. متاح على: https://doi.org/10.48550/arxiv.2407.14679.