الضبط الدقيق: نماذج OpenAI + بيانات Confluence الخاصة بك

Built for Speed: ~10ms Latency, Even Under Load
Blazingly fast way to build, track and deploy your models!
- Handles 350+ RPS on just 1 vCPU — no tuning needed
- Production-ready with full enterprise support
إذا كان ChatGPT هو الآيفون، فإن متجر التطبيقات (AppStore) لم يُبنَ بعد - وسيكون عبارة عن مجموعة من التطبيقات المتخصصة المبنية عليه. كل صناعة، وكل عمل تجاري، وكل فرد سيبني هذه التطبيقات بطرق صغيرة وكبيرة. بدءًا من بناء ChatGPT خاص بالرعاية الصحية أو التصنيع، إلى كتابة رسائل بريد إلكتروني متخصصة للتسويق، إلى الإجابة على أسئلة خاصة بالمؤسسة من قاعدة المعرفة الداخلية، وحتى بناء محركات بحث شخصية للإجابة على أسئلة مثل - ما هو عنوان جون أو متى عيد ميلاد حماتي؟ لقد كتبنا الكثير من الأمثلة هنا في منشور مدونتنا السابق.
لماذا لا يكفي ChatGPT بحد ذاته لهذه التطبيقات المتخصصة؟
لفهم هذا، من المهم فهم الويب السطحي مقابل الويب العميق:
- الويب السطحي: صفحات الويب المتاحة للعامة والمفهرسة بواسطة محركات البحث. مثل ويكيبيديا، الكتب، منشورات وسائل التواصل الاجتماعي، إلخ.
- الويب العميق: جزء من الإنترنت يقع خلف نظام مصادقة. مثل بريدك الإلكتروني، أو منصات SaaS. وهذا يشكل 96% من الويب.
يتم تدريب نماذج مثل ChatGPT على مجموعة بيانات ضخمة ولكن كل ذلك متاح على الويب السطحي. لذلك لا يمكنك طرح سؤال عليه تعتمد إجابته على أي شيء موجود في الويب العميق مثل بريدك الإلكتروني أو مستنداتك الخاصة. ومع ذلك، في عملية التعلم من مجموعة البيانات الضخمة للويب السطحي، تبني نماذج مثل ChatGPT قدرًا كبيرًا من الذكاء حول اللغة والدلالات مما يجعل من الأسهل بكثير عليها تعلم معلومات جديدة من كميات صغيرة من البيانات لمهمة محددة.
وهنا تبرز أهمية الضبط الدقيق
الضبط الدقيق هو تقنية قوية تتيح لنا الاستفادة من المعرفة والتعلم لنموذج مدرب مسبقًا مثل ChatGPT لتحسين أداء النموذج في مهمة جديدة عن طريق تدريبه على مجموعة بيانات أصغر ومخصصة للمهمة. على سبيل المثال، لنفترض أنك تريد بناء نظام للإجابة على الأسئلة لمستندات شركتك الداخلية المخزنة في Confluence. يمكنك تمرير كل المحتوى النصي من Confluence الخاص بك وضبط نموذج GPT بدقة باستخدامه.
يبدو الأمر بسيطًا. فلماذا لا يقوم بها الجميع؟
بينما قللت OpenAI الكثير من التعقيدات من خلال واجهات برمجة تطبيقات الضبط الدقيق الخاصة بها، إلا أنه لا يزال يتطلب قدرًا لا بأس به من التفكير والتخطيط والجهد على محاور مختلفة -
إعداد البيانات
يجب أن تكون البيانات التي تحتاجها لضبط النماذج بدقة بتنسيق زوج محدد من "المطالبة-الإكمال".
{“prompt”: <prompt-text>, “completion”: <ideal generated text>}
بعض النقاط التي يجب مراعاتها:
- ليس بالأمر الهين أخذ مستندات عشوائية مثل مستندات كونفلونس الخاصة بالشركة وتحويلها إلى أمثلة عالية الجودة بالتنسيق المذكور أعلاه.
- تحتاج إلى بضع مئات من المطالبات كحد أدنى، وهو ما يتطلب جهداً بشرياً وخبرة متخصصة.
- فواصل دقيقة تحدد بداية ونهاية المطالبة والإكمال والتي لا تظهر في النص. تحتاج أيضاً إلى التأكد من أن المطالبات المدخلة تستخدم نفس الفواصل لاحقاً.
- تزيد زيادة عدد الأمثلة من أداء النموذج.
- يمكن لأمر بسيط مثل إضافة مسافة قبل بدء الإكمال أن يحسن الأداء.
اختيار النموذج
لدى OpenAI نماذج متعددة يمكن ضبطها بدقة، ولكل منها مفاضلات يجب أخذها في الاعتبار-
- آدا: النماذج الأصغر والأسرع سهلة الضبط الدقيق وتعمل بشكل جيد في عدد من المهام مثل التصنيف وتوليد اللغة والإجابة على الأسئلة. نظراً لأن لديها عددًا أقل من المعلمات، فهي أيضاً أقل أداءً من غيرها ويمكن أن تؤثر على الدقة.
- كوري: أكبر وأقوى من آدا وهي أيضاً للأغراض العامة. يصبح ضبطها الدقيق أصعب على مجموعات البيانات الأصغر بسبب العدد الكبير من المعلمات.
- باباج: مصمم لمهام معالجة اللغة الطبيعية (NLP) التي تتطلب معرفة متخصصة مثل القانون أو الطب ويمكن ضبطه بدقة شديدة. إنه ليس للأغراض العامة بنفس القدر وغير مناسب للضبط الدقيق على مجموعات البيانات الأكبر أو المهام الأكثر تعقيداً.
- دافنشي: أكبر وأقوى نموذج للأغراض العامة. من الصعب جداً تدريبه على أجهزة أقل قوة ويجب استخدامه لمهام معالجة اللغة الطبيعية المعقدة.
ملاحظة: يمكنك أيضاً ضبط نموذج تم ضبطه مسبقاً بشكل تدريجي. هناك بعض القيود الزمنية بسبب تغيير واجهات برمجة التطبيقات (APIs) حيث يجب أن تكون النماذج قد تم ضبطها بعد 21 أبريل 2022.
اختيار المعلمات الفائقة
لقد جربنا استخدام واجهات برمجة تطبيقات الضبط الدقيق (APIs) من OpenAI بالمعلمات الافتراضية وقد عملت بشكل جيد جداً في بعض المهام، ولكننا تمكنا من تحقيق تحسينات تصل إلى 40% عن طريق تعديل المعلمات الفائقة.
- مضاعف معدل التعلم: يكون افتراضياً 0.05 أو 0.1 أو 0.2 حسب حجم الدفعة النهائية (batch_size). معدل التعلم للضبط الدقيق هو معدل التعلم الأصلي المستخدم للتدريب المسبق مضروباً في هذا المضاعف. يحدد معدل التعلم مدى سرعة تعديل النموذج لأوزانه أثناء التدريب. يمكن أن يؤدي معدل التعلم المرتفع جداً إلى تقارب النموذج نحو حل غير مثالي، بينما يمكن أن يؤدي معدل التعلم المنخفض جداً إلى تقارب النموذج ببطء شديد أو الوقوع في حد أدنى محلي. توصي OpenAI باستخدام معدلات تعلم أكبر لأحجام الدفعات الأكبر، ولكنها تعمل عادةً بين 0.02 و 0.2.
- حجم الدفعة: القيمة الافتراضية هي حوالي 0.2% من عدد الأمثلة في مجموعة التدريب، بحد أقصى 256. يحدد حجم الدفعة عدد الأمثلة التي تتم معالجتها في كل تكرار تدريبي. يمكن أن يؤدي حجم الدفعة الأكبر إلى أوقات تدريب أسرع، ولكنه قد يتسبب أيضًا في فرط تخصيص النموذج أو يؤدي إلى استهلاك أعلى للذاكرة. يوصى عمومًا باستخدام أكبر حجم دفعة ممكن دون التسبب في استهلاك مفرط للذاكرة.
- عدد الحقب: القيمة الافتراضية هي 4. يحدد عدد الحقب عدد المرات التي سيتم فيها تدريب النموذج على مجموعة البيانات بأكملها. يمكن أن يؤدي عدد قليل جدًا من الحقب إلى التعلم الناقص، بينما يمكن أن يؤدي عدد كبير جدًا من الحقب إلى فرط التخصيص. يوصى عمومًا بمراقبة أداء النموذج على مجموعة التحقق وإيقاف التدريب عندما يتوقف الأداء عن التحسن.
- وزن خسارة المطالبة: القيمة الافتراضية هي 0.01. هو الوزن المستخدم للخسارة على رموز المطالبة. يتحكم هذا في مدى محاولة النموذج لتعلم إنشاء المطالبة (مقارنة بالإكمال الذي يكون وزنه دائمًا 1.0)، ويمكن أن يضيف تأثيرًا استقراريًا للتدريب عندما تكون الإكمالات قصيرة. بالنسبة للمطالبات القصيرة، توصي OpenAI بزيادة هذا الرقم، وبالنسبة للمطالبات الطويلة، يعمل الوزن الصغير بشكل أفضل.
- النموذج: القيمة الافتراضية هي curie. جدول اختيار النموذج الموضح أعلاه هو أيضًا معلمة فائقة، لكننا شعرنا أنه يستحق ذكرًا خاصًا نظرًا لأهميته في هذه العملية كنقطة انطلاق.
اعتبارات التكلفة
تختلف تكاليف الضبط الدقيق كثيرًا اعتمادًا على المعلمات التي تقرر اختيارها، لذا من المهم جدًا أن يكون لديك فهم راسخ.
📌
لمليون رمز:
- Ada: 0.4 دولار
- Babbage: 0.6 دولار
- Curie: 3 دولارات
- Davinci: 30 دولارًا.
- الرمز الواحد يعادل تقريبًا 4 أحرف أو 0.75 كلمة.
- Davinci أغلى بحوالي 100 مرة من Ada.
- Curie أغلى بـ 10 مرات من Ada وهو النموذج الافتراضي.
- للتوضيح، تحتوي ويكيبيديا على حوالي 5 مليارات رمز، لذا فإن الضبط الدقيق لنموذج Curie سيكلف مبلغًا هائلاً قدره 15000 دولار. هذا مجرد بيان أكاديمي حيث أن هذه النماذج مدربة مسبقًا على ويكيبيديا. يرجى توفير أموالك.
- يعتمد عدد رموز التدريب أيضًا على دورات التدريب الخاصة بك. بشكل أساسي، إجمالي رموز التدريب = الرموز في ملفك * عدد الدورات.
📌
يُعد استخدام النماذج المضبوطة بدقة أكثر تكلفة بكثير (حوالي 5 أضعاف) من نظيراتها المدربة مسبقًا.
لمليون رمز،
- آدا: 1.6 دولار مقابل 0.4 دولار
- باباج: 2.4 دولار مقابل 0.5 دولار
- كوري: 12 دولارًا مقابل 2 دولار
- دافنشي: 120 دولارًا مقابل 20 دولارًا
عند استخدام النموذج، تؤثر معلمات مثل bestof و n أيضًا على تكلفتك لأنك في النهاية تولد إكمالًا متعددًا لموجه واحد. فكر في استخدام max_response_length لتوفير التكلفة أو تقليل استخدام معلمات best_of و n.
دراسة حالة. الضبط الدقيق باستخدام مستندات Confluence
لم يكن بناء نموذج مضبوط بدقة لمجموعة بيانات Confluence الخاصة بنا أمرًا هيّنًا. وقد تضمن العملية التالية المكونة من 4 خطوات.

جلب البيانات
لقد استغرق مني الأمر بعض الجهد لمعرفة كيفية قراءة جميع البيانات من Confluence عبر واجهات برمجة التطبيقات الخاصة به، لأن Confluence يحتوي على بيانات غنية بالجداول والعناوين والعناوين الفرعية، وكان علي تحويل ذلك إلى نص بسيط لسهولة الاستخدام. أيضًا، لم تكن إدارة الأذونات ومستوى الوصول الصحيح أمرًا سهلاً. أخيرًا، تمكنا من إنشاء نموذج بسيط جدًا حيث يمكنك إرسال عنوان URL واسم المستخدم ومفتاح API ويمكننا جلب البيانات.
المعالجة المسبقة للبيانات
كان هذا الجزء الأصعب. هنا جربنا عدة طرق-
- تقسيم الجمل عشوائيًا: بناءً على عدد الكلمات في الموجهات والإكمال
- التعابير النمطية: فصل الجمل بناءً على كلمات مثل- و، لكن، ومع ذلك، إلخ.
- ChatGPT: توفير سياق لـ ChatGPT ومطالبته بتوليد أسئلة.

في النهاية، اخترنا معظم الأزواج من #3 ولكننا أضفنا أيضًا بعض العينات العشوائية من #1 و #2 أعلاه. بالنسبة لمجموعة بياناتنا، قمنا بتوليد أكثر من 50000 زوج من المطالبات والإكمال بمتوسط طول 17 كلمة للمطالبة و 133 كلمة للاستجابة، ليصبح المجموع 150 كلمة لكل زوج. من الناحية المثالية، ستحتاج هذه الخطوة إلى المزيد من التجارب.

الضبط الدقيق للنموذج
لقد جربنا نماذج مختلفة ومعاملات فائقة (hyper-parameters) وأدركنا أن Curie يميل إلى الأداء بشكل أفضل من Ada أو Babbage، لكننا شعرنا أن Ada كان مناسبًا بالنظر إلى المفاضلة في التكلفة. لم نجرب Davinci. كان علينا تعديل معدل التعلم واستقررنا عند 0.05 بينما قمنا بتشغيل النموذج لـ 6 حقب (epochs). بلغت تكلفة تدريب تشغيل واحد لـ Curie حوالي 30 دولارًا و Ada حوالي 4 دولارات. بشكل عام، من خلال مجموعة من التجارب، ربما كلفنا ذلك 400 دولار من أرصدة OpenAI للضبط الدقيق - وقد واجهنا أيضًا بعض التشغيلات السيئة.

الاختبار
لاحظنا أن النموذج المضبوط بدقة أدى أداءً أفضل بكثير من النموذج الأصلي في الأسئلة المتعلقة بمجموعة بياناتنا الداخلية. طلبنا من فريقنا تجربة حوالي 100 مطالبة وقيمناها يدويًا. هذا ليس علميًا ولكنه نجح في حالة الاستخدام البسيطة هذه. ومن المثير للاهتمام أننا لاحظنا في بعض الحالات أن النموذج المضبوط بدقة أدى أداءً أسوأ من النموذج الأصلي للاستفسارات العامة. ما زلنا بحاجة إلى تصحيح الأخطاء لمعرفة ما يحدث هنا.

كانت هذه تجربة ممتعة وسنعمل على تجربة الضبط الدقيق على مجموعات بيانات أخرى.
📌
إذا كنت ترغب في الحصول على أي مجموعات بيانات محددة، أو تريد مني فتح هذا التطبيق لاستخدامه مع Confluence الخاص بك، تواصل معي على nikunj@truefoundry.com
TrueFoundry هي منصة PaaS لنشر تعلم الآلة (ML Deployment PaaS) تعمل فوق Kubernetes لتسريع سير عمل المطورين مع منحهم مرونة كاملة في اختبار ونشر النماذج مع ضمان الأمان والتحكم الكامل لفريق البنية التحتية. من خلال منصتنا، نمكّن فرق تعلم الآلة من نشر ومراقبة النماذج في 15 دقيقة بموثوقية 100% وقابلية للتوسع والقدرة على التراجع في ثوانٍ - مما يسمح لهم بتوفير التكلفة وإطلاق النماذج إلى الإنتاج بشكل أسرع، مما يحقق قيمة تجارية حقيقية.
TrueFoundry AI Gateway delivers ~3–4 ms latency, handles 350+ RPS on 1 vCPU, scales horizontally with ease, and is production-ready, while LiteLLM suffers from high latency, struggles beyond moderate RPS, lacks built-in scaling, and is best for light or prototype workloads.
The fastest way to build, govern and scale your AI





















.png)
.webp)










.webp)






