الضبط الدقيق للنماذج والنشر
مقدمة
النموذج الكبير قوي، لكنه لا يفهم عملك. GPT-4 يمكنه كتابة الشعر والبرمجة، لكنه لا يعرف مصطلحات منتجات شركتك، ولا يفهم المعايير المهنية في صناعتك. الضبط الدقيق (Fine-tuning) هو عملية جعل النموذج الكبير العام "يتعلم" معرفتك المتخصصة - مثل إعطاء تدريب تمهيدي لشخص واسع المعرفة، ليصبح خبيرًا في مجالك.
ماذا ستتعلم في هذا المقال؟
بعد إكمال هذا الفصل، ستكتسب:
- معرفة التدفق: إتقان خط أنابيب الضبط الدقيق الكامل من إعداد البيانات إلى تشغيل النموذج
- هندسة البيانات: فهم متطلبات تنسيق بيانات الضبط الدقيق ومعايير الجودة
- الضبط الدقيق الفعال: فهم مبدأ ومزايا تقنيات الضبط الدقيق الفعالة في المعلمات مثل LoRA
- ضغط النموذج: إتقان كيفية تمكين تقنية التكميم للنماذج الكبيرة من العمل على أجهزة استهلاكية
- ممارسة النشر: فهم البنيات الرئيسية واستراتيجيات اختيار خدمات النموذج
| الفصل | المحتوى | المفاهيم الأساسية |
|---|---|---|
| الفصل 1 | خط أنابيب الضبط الدقيق | بيانات→تدريب→تقييم→نشر |
| الفصل 2 | بيانات التدريب | تنسيق البيانات، مراقبة الجودة |
| الفصل 3 | ضبط LoRA الدقيق | التكيف منخفض الرتبة، فعالية المعلمات |
| الفصل 4 | تكميم النموذج | FP16، INT8، INT4 |
| الفصل 5 | نشر النموذج | خدمة الاستدلال، بوابة API |
0. النظرة الشاملة: لماذا نحتاج الضبط الدقيق؟
ينقسم تدريب النماذج اللغوية الكبيرة إلى مرحلتين: التدريب المسبق والضبط الدقيق. التدريب المسبق هو تعلم القدرات اللغوية على بيانات عامة هائلة، والضبط الدقيق هو تعلم القدرات المتخصصة على بيانات مهمة محددة.
للتشبيه: التدريب المسبق مثل الذهاب إلى الجامعة - تعلم المعرفة العامة، تعرف قليلاً عن كل شيء؛ الضبط الدقيق مثل التدريب التمهيدي للوظيفة - تعلم المهارات المهنية لمنصب محدد.
متى نحتاج الضبط الدقيق؟
- تنسيق إخراج محدد: الحاجة لأن يخرج النموذج دائمًا بتنسيق JSON ثابت
- معرفة مجال متخصص: المصطلحات والمعايير المهنية في مجالات الطب والقانون والمالية
- نقل أسلوب اللغة: جعل النموذج يجيب بنبرة وأسلوب محددين (مثل نصوص خدمة العملاء)
- دعم اللغات النادرة: تحسين أداء النموذج في لغة معينة
- تحسين التكلفة: استخدام نموذج صغير مضبوط بدقة بدلاً من استدعاء نموذج كبير، لتقليل تكلفة الاستدلال
1. خط أنابيب الضبط الدقيق: الرحلة الكاملة من البيانات إلى التشغيل
الضبط الدقيق ليس "رمي البيانات للنموذج وانتهى". إنه عملية هندسية صارمة، كل حلقة تؤثر على النتيجة النهائية.
微调流水线演示
点击每个阶段,了解微调的完整流程
微调的第一步是选择一个合适的预训练基座模型。基座模型已经在海量数据上学习了通用的语言能力,我们要做的是在此基础上进行"专业化训练"。
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2-7B")المراحل الخمس للضبط الدقيق
- إعداد البيانات: جمع وتنظيف وتمييز بيانات التدريب، هذه هي المرحلة الأكثر استهلاكًا للوقت والأكثر أهمية
- اختيار النموذج: اختيار النموذج الأساسي المناسب (Base Model)، مثل Llama 3 و Qwen و Mistral
- تكوين التدريب: تعيين المعاملات الفائقة مثل معدل التعلم وحجم الدفعة وعدد الحقبات
- تنفيذ التدريب: تشغيل التدريب على GPU، مراقبة منحنى الخسارة ومؤشرات التقييم
- التقييم والتشغيل: تقييم النتائج على مجموعة الاختبار، والنشر كخدمة API بعد النجاح
| المرحلة | الإجراءات الرئيسية | المخاطر الشائعة |
|---|---|---|
| إعداد البيانات | التنظيف، إزالة التكرار، التنسيق | جودة بيانات رديئة تؤدي إلى "تعلم النموذج بشكل سيئ" |
| اختيار النموذج | تقييم قدرة النموذج الأساسي | نموذج كبير جدًا لا يمكن تدريبه، صغير جدًا نتائجه ضعيفة |
| تكوين التدريب | ضبط المعاملات الفائقة | معدل تعلم مرتفع جدًا يؤدي إلى نسيان كارثي |
| تنفيذ التدريب | مراقبة الخسارة والمؤشرات | فرط التخصيص، عدم تقارب التدريب |
| التقييم والتشغيل | اختبار A/B، نشر تدريجي | تسرب مجموعة الاختبار يؤدي إلى تقييم مبالغ فيه |
2. بيانات التدريب: سقف تأثير الضبط الدقيق
هناك مقولة قديمة في الضبط الدقيق: "Garbage in, garbage out". جودة بيانات التدريب تحدد مباشرة الحد الأعلى لتأثير الضبط الدقيق. 100 عينة عالية الجودة غالبًا ما تكون أفضل من 10,000 عينة منخفضة الجودة.
训练数据格式演示
切换不同格式,了解微调数据的组织方式
最常见的微调数据格式。每条数据包含一个指令(instruction)、可选的输入(input)和期望的输出(output)。适合训练通用助手类模型。
ثلاثة تنسيقات شائعة لبيانات الضبط الدقيق
- تنسيق التعليمات (Instruction): التنسيق الأكثر استخدامًا، يحتوي على ثلاثة حقول: instruction (التعليمة) و input (المدخل) و output (المخرج المتوقع). مناسب لتدريب النموذج على اتباع التعليمات.
- تنسيق المحادثة (Chat): شكل محادثة متعددة الجولات، يحتوي على قائمة رسائل بأدوار system و user و assistant. مناسب لتدريب روبوتات المحادثة.
- تنسيق الإكمال (Completion): أزواج prompt-completion بسيطة، مناسبة لتوليد النص وإكمال الكود وغيرها من السيناريوهات.
| بعد جودة البيانات | الوصف | طريقة الفحص |
|---|---|---|
| الدقة | يجب أن تكون الإجابات صحيحة تمامًا | مراجعة يدوية، تدقيق خبير |
| الاتساق | أسلوب الإجابة متسق للأسئلة المتشابهة | فحص مقارنة بالعينة |
| التنوع | تغطية سيناريوهات ومتغيرات كافية | إحصاء توزيع أنواع الأسئلة |
| إزالة التكرار | تجنب العينات المتكررة التي تسبب فرط التخصيص | إزالة تكرار النص، إزالة التكرار الدلالي |
| كمية البيانات | عادة 500~5000 عينة عالية الجودة كافية | ابدأ من عدد قليل، وزد تدريجيًا |
3. LoRA: تحقيق 90% من التأثير بـ 1% من المعلمات
الضبط الدقيق الكامل (Full Fine-tuning) يتطلب تحديث جميع معلمات النموذج - لنموذج بـ 70B معلمة، هذا يعني الحاجة لمئات الجيجابايت من ذاكرة GPU وكمية كبيرة من قوة حوسبة GPU. بالنسبة لمعظم الفرق، هذا غير واقعي.
LoRA (Low-Rank Adaptation) تقدم حلاً أنيقًا: تجميد معلمات النموذج الأصلية، وتدريب مجموعة صغيرة فقط من المصفوفات منخفضة الرتبة المضافة. عدد معلمات هذه المصفوفات عادة 0.1%~1% فقط من النموذج الأصلي، لكنها تحقق نتائج قريبة من الضبط الدقيق الكامل.
LoRA 低秩适配原理演示
理解 LoRA 如何用极少参数实现高效微调
الفكرة الأساسية لـ LoRA
مصفوفة الأوزان W للنموذج الأصلي هي مصفوفة ضخمة (مثل 4096×4096). LoRA لا تعدل W مباشرة، بل تضيف "مسارًا جانبيًا": W' = W + BA، حيث B و A مصفوفتان صغيرتان (مثل 4096×8 و 8×4096). أثناء التدريب، يتم تحديث B و A فقط، وتبقى W الأصلية دون تغيير.
- الرتبة (Rank): كلما زادت قيمة r، زادت القدرة التعبيرية، لكن زاد عدد المعلمات أيضًا. عادة r=8~64 كافية
- الدمج في النشر: بعد اكتمال التدريب، يمكن دمج BA في W، دون أي تكلفة إضافية في الاستدلال
| طريقة الضبط | المعلمات القابلة للتدريب | متطلبات ذاكرة GPU | سرعة التدريب | النتائج |
|---|---|---|---|---|
| ضبط دقيق كامل | 100% | عالية جدًا | بطيء | الأفضل |
| LoRA | 0.1%~1% | منخفضة | سريع | قريب من الكامل |
| QLoRA | 0.1%~1% | أقل | متوسط | أقل قليلاً من LoRA |
| Prompt Tuning | < 0.01% | منخفضة جدًا | سريع جدًا | محدود |
4. تكميم النموذج: جعل النموذج الكبير "ينحف"
نموذج بـ 70B معلمة، إذا تم تخزينه بـ FP32 (عدد فاصلة عائمة 32 بت)، يحتاج 280GB من ذاكرة GPU - بدون عدة وحدات GPU عالية المستوى لا يمكن تشغيله. تقنية التكميم (Quantization) تضغط حجم النموذج عن طريق تقليل دقة القيم العددية، مما يسمح بتشغيل النماذج الكبيرة على أجهزة استهلاكية.
模型量化演示
拖动滑块,直观感受不同精度下的模型体积、速度与质量变化
FP32(32位浮点数)是模型训练时的默认精度。每个参数用 32 位存储,精度最高但体积最大。通常只在训练阶段使用,推理时很少直接使用 FP32。
المقايضة الأساسية للتكميم
التكميم في جوهره هو مقايضة الدقة مقابل المساحة. FP32 → FP16 تقريبًا بدون خسارة، INT8 به خسارة طفيفة، INT4 به انخفاض ملحوظ لكن مقبول عادة في الجودة. المفتاح هو إيجاد أفضل نقطة توازن لسيناريو استخدامك.
- FP16 (نصف الدقة): الحجم نصف، الجودة تقريبًا بدون خسارة، هو الخيار الافتراضي للتدريب والاستدلال
- INT8 (عدد صحيح 8 بت): الحجم نصف مرة أخرى، خسارة جودة صغيرة جدًا، مناسب لمعظم سيناريوهات الاستدلال
- INT4 (عدد صحيح 4 بت): الحجم 1/8 فقط من FP32، خسارة جودة معينة، مناسب للسيناريوهات محدودة الموارد
| الدقة | بايت لكل معلمة | حجم نموذج 70B | خسارة الجودة | السيناريو المناسب |
|---|---|---|---|---|
| FP32 | 4 بايت | ~280 GB | لا شيء | مرجع التدريب |
| FP16 | 2 بايت | ~140 GB | تقريبًا لا شيء | تدريب واستدلال قياسي |
| INT8 | 1 بايت | ~70 GB | صغيرة جدًا | استدلال إنتاجي |
| INT4 | 0.5 بايت | ~35 GB | مقبولة | أجهزة طرفية، نشر محلي |
5. نشر النموذج: من المختبر إلى بيئة الإنتاج
تم تدريب النموذج، وضغطه بالتكميم، الخطوة الأخيرة هي نشره كخدمة قابلة للاستدعاء. نشر النموذج ليس مجرد "تشغيل النموذج"، بل يشمل أيضًا مشكلات هندسية مثل المعالجة المتوازية وموازنة الحمل والتحكم في التكلفة.
模型服务架构演示
点击不同部署方案,对比其特点与适用场景
将模型封装为 RESTful API 或 gRPC 服务,通过 HTTP 请求调用。适合需要实时响应的在线应用,如聊天机器人、智能客服、内容生成等。是目前最主流的部署方式。
ثلاثة حلول نشر رئيسية
- مزودو API: استخدام API من مزودين مثل OpenAI و Anthropic مباشرة. بدون تشغيل، فوترة حسب token، مناسب للتحقق السريع والاستخدام متوسط وصغير الحجم.
- خدمة استدلال مستضافة ذاتيًا: استخدام أطر مثل vLLM و TGI للنشر على خوادم GPU الخاصة بك. تكلفة قابلة للتحكم، البيانات لا تخرج من النطاق، مناسب للسيناريوهات ذات متطلبات الخصوصية أو الاستدعاء واسع النطاق.
- استدلال Serverless: استخدام منصات مثل AWS SageMaker و Replicate، فوترة حسب الطلب، توسع وتقليص تلقائي. مناسب للسيناريوهات ذات تقلب كبير في المرور.
| حل النشر | نموذج التكلفة | التأخير | تعقيد التشغيل | السيناريو المناسب |
|---|---|---|---|---|
| مزود API | فوترة حسب token | متوسط | صفر | نماذج أولية سريعة، صغير ومتوسط الحجم |
| نشر vLLM ذاتي | رسوم استئجار GPU | منخفض | مرتفع | واسع النطاق، حساس للخصوصية |
| Serverless | فوترة حسب الطلب | بدء بارد مرتفع | منخفض | تقلب مرور كبير |
| نشر طرفي | استثمار لمرة واحدة في الأجهزة | منخفض جدًا | متوسط | سيناريوهات غير متصلة، IoT |
الخلاصة
الضبط الدقيق للنماذج ونشرها هو الحلقة الأساسية لجعل النموذج الكبير يتحول من "أداة عامة" إلى "مساعد متخصص". من إعداد البيانات إلى تشغيل النموذج، كل خطوة تحتاج تفكيرًا وممارسة هندسية.
مراجعة النقاط الرئيسية لهذا الفصل:
- الضبط الدقيق هو تدريب تمهيدي: جعل النموذج العام يتعلم المعرفة وأنماط السلوك في مجالات محددة
- جودة البيانات تحدد الحد الأعلى: 100 عينة عالية الجودة أفضل من 10,000 عينة منخفضة الجودة
- LoRA هو ملك الكفاءة: تحقيق نتائج قريبة من الضبط الدقيق الكامل بأقل من 1% من المعلمات
- التكميم هو أداة النشر: تكميم INT4 يجعل تشغيل نموذج 70B على بطاقة واحدة ممكنًا
- حل النشر حسب الظروف: للتحقق السريع استخدم API، للنطاق الواسع استخدم النشر الذاتي، للتقلب الكبير استخدم Serverless
قراءة إضافية
- توثيق Hugging Face PEFT - توثيق رسمي لمكتبة الضبط الدقيق الفعال في المعلمات
- توثيق vLLM - محرك استدلال LLM عالي الأداء
- Unsloth - إطار ضبط LoRA الدقيق بتسريع 2x
- شرح تنسيق GGUF - تنسيق النموذج المكمم المستخدم في llama.cpp
- دليل الضبط الدقيق من OpenAI - دليل الضبط الدقيق الرسمي من OpenAI