فاز 19 · درس 7

پروژه‌ی پایانی 07: پایپ‌لاین سرتاسری فاین‌تیونینگ (از داده تا SFT، DPO و سرو)

نوع
پروژه‌ی پایانی
زمان
حدود 8 دقیقه
زبان‌ها
Python (pipeline), YAML (configs), Bash (scripts)
پیش‌نیاز
فاز 2 (یادگیری ماشین)، فاز 3 (یادگیری عمیق)، فاز 7 (ترنسفورمرها)، فاز 10 (ساخت LLM از صفر)، فاز 11 (مهندسی LLM)، فاز 17 (زیرساخت)، فاز 18 (ایمنی و راستی‌آزمایی)
یک خط مونتاژ صنعتی پیشرفته با بازوهای مکانیکی دقیق که لایه‌های داده را به یک تراشه‌ی درخشان هوش مصنوعی متصل می‌کنند
فهرست مطالب
  1. مسئله
  2. مفاهیم پایه
  3. معماری
  4. استک
  5. مراحل ساخت
  6. نحوه استفاده
  7. تحویل پروژه
  8. تمرین‌ها
  9. اصطلاحات کلیدی
  10. مطالعه‌ی بیشتر

اتکای صرف به مدل‌های عمومی و APIهای تجاری، هزینه‌های استنتاج را بالا می‌برد و پاسخ‌گوی نیازهای سازمانی روی دامنه‌های تخصصی نیست. تیم‌های حرفه‌ای هوش مصنوعی مدل‌های متن‌باز رده‌ی 8B تا 14B را بر پایه‌ی داده‌های اختصاصی خود بازآموزی و بهینه‌سازی می‌کنند تا به دقت بالاتر، زمان پاسخ‌دهی کمتر و استقلال زیرساختی دست پیدا کنند.

در این پروژه‌ی نهایی، یک پایپ‌لاین خودکار و بازتولیدپذیر پیاده‌سازی می‌کنید که از پالایش داده و SFT آغاز می‌شود، با ترازسازی ترجیحات از طریق DPO یا GRPO ادامه می‌یابد و پس از فشرده‌سازی با کوانتیزه‌سازی، با vLLM و الگوریتم دیکودینگ حدسی EAGLE-3 به مرحله‌ی سرو عملیاتی می‌رسد.

اجرای مراحل سنگین آموزش تمام‌عیار روی چند کارت گرافیک H100 نیازمند زیرساخت اختصاصی است، اما از آنجا که تهیه و اجاره‌ی GPUهای ابری قدرتمند خارجی برای توسعه‌دهندگان ایرانی دشوار و پرهزینه است، در این پروژه از روش‌های سبک‌سازی، تکرار سریع تک‌کارت با Unsloth و کوانتیزه‌سازی استفاده شده تا بخش بزرگی از فرایند با حداقل منابع در دسترس و بهینه پیش برود.

مدلی در رده‌ی 8B که روی داده‌های اختصاصی خودتان آموزش دیده، با DPO بر اساس ترجیحات شما هم‌راستا شده، کوانتیزه‌سازی روی آن انجام گرفته، از دیکودینگ حدسی (Speculative Decoding) بهره می‌برد و با هزینه‌ی مشخص و قابل اندازه‌گیری (دلار به‌ازای هر 1M توکن) سرو می‌شود. استک متن‌باز سال 2026 شامل Axolotl v0.8، TRL 0.15، Unsloth برای تکرار سریع، GPTQ/AWQ/GGUF برای کوانتیزه‌سازی، و vLLM 0.7 به‌همراه EAGLE-3 برای سرو مدل است. پروژه‌ی نهایی این است که کل پایپ‌لاین را به‌صورت بازتولیدپذیر اجرا کنید (ورودی: فایل YAML، خروجی: اندپوینت آماده‌ی سرو) و یک کارت مدل (Model Card) تحت چارچوب Model Openness Framework سال 2026 منتشر کنید.

فازهای تمرین‌شده: P2 · P3 · P7 · P10 · P11 · P17 · P18
زمان: 35 ساعت

مسئله

در سال 2026، هر تیم هوش مصنوعی جدی یک پایپ‌لاین فاین‌تیونینگ آماده‌به‌کار در چنته دارد. دلیلش این نیست که می‌خواهند یک مدل پایه‌ی پیشرو عرضه کنند، بلکه به این خاطر است که دستاوردهای واقعی و ملموس در سازگاری پایین‌دستی نهفته است: SFT روی دامنه‌ی تخصصی، DPO بر اساس جفت ترجیحات برچسب‌خورده، پیش‌نویس‌های تقطیرشده برای دیکودینگ حدسی، و سرو با EAGLE-3. ابزار Axolotl v0.8 کانفیگ‌های چند GPU برای SFT را مدیریت می‌کند. ابزار TRL 0.15 از پس DPO و GRPO برمی‌آید. با Unsloth چرخه‌ی تکرار سریعی روی یک GPU خواهید داشت. ترکیب vLLM 0.7 با EAGLE-3 نیز نرخ پردازش رمزگشایی (Decode) را بدون افت کیفیت 2 تا 3 برابر افزایش می‌دهد. ابزارها آماده‌اند؛ هنر کار در نوشتن YAMLها، رعایت بهداشت داده و سخت‌گیری در ارزیابی است.

شما یک مدل پایه‌ی 8B تا 14B (مانند Llama 3.1 8B، Qwen3 14B یا Gemma 3 12B) را ابتدا با SFT و سپس با DPO روی داده‌های مختص وظیفه آموزش می‌دهید، آن را برای سرو کردن کوانتیزه می‌کنید، و بهبودهای حاصل‌شده را در برابر lm-evaluation-harness، RewardBench-2، MT-Bench-v2 و MMLU-Pro می‌سنجید. در نهایت یک کارت مدل تحت چارچوب Model Openness Framework سال 2026 تولید خواهید کرد. هدف اصلی بازتولیدپذیری است: اجرای کل پایپ‌لاین از ابتدا تا انتها تنها با یک دستور.

مفاهیم پایه

این پایپ‌لاین پنج مرحله دارد. داده: حذف داده‌های تکراری (MinHash / Datatrove)، فیلتر کیفیت (طبقه‌بندی‌کننده‌ای به سبک Nemotron-CC)، پاک‌سازی اطلاعات هویتی حساس (PII)، و بررسی سلامت تفکیک داده‌ها در برابر آلودگی به بنچمارک‌های عمومی. SFT: کانفیگ YAML در Axolotl، شتاب‌دهنده‌ی ZeRO-3 روی 8xH100، برنامه‌ی زمان‌بندی کسینوسی، بسته‌بندی دنباله‌ها (Sequence Packing)، و 2 تا 3 اپوک آموزش. DPO یا GRPO: کانفیگ TRL، یک اپوک، جفت ترجیحات با برچسب‌گذاری انسانی یا داوری مدل، و تنظیم بتای بهینه. کوانتیزه‌سازی: فرمت‌های GPTQ + AWQ + GGUF برای انعطاف‌پذیری در استقرار. سرو مدل: ابزار vLLM 0.7 با سرهای دیکودینگ حدسی EAGLE-3 (یا SGLang همراه با SpecForge)، دیپلوی روی کوبرنتیز (K8s)، و تنظیم HPA بر اساس زمان انتظار در صف.

آزمون‌های مقایسه‌ای سیستماتیک (Ablations) خروجی اصلی پروژه هستند: مقایسه‌ی SFT-only در برابر SFT+DPO در برابر SFT+GRPO روی سه بنچمارک مختص وظیفه. معیارهای سرو مدل: توکن بر ثانیه در اندازه‌ی دسته‌های 1، 8 و 32، نرخ پذیرش EAGLE-3، و دلار به‌ازای هر 1M توکن. ارزیابی ایمنی: نرخ قبولی در Llama Guard 4. کارت مدل شامل: ارزیابی سوگیری‌ها، مقادیر اولیه (seeds) بازتولیدپذیری، و مجوزهای قانونی استفاده از داده‌ها.

معماری

raw data (HF datasets + internal)
    |
    v
Datatrove dedup + Nemotron-CC quality filter + PII scrub
    |
    v
split hygiene (MMLU-Pro contamination check)
    |
    v
Axolotl SFT config (YAML)  ---> 8xH100, ZeRO-3
    |
    v
TRL DPO / GRPO config       ---> 4xH100, 1 epoch
    |
    v
GPTQ + AWQ + GGUF quantize
    |
    v
vLLM 0.7 + EAGLE-3 speculative decoding
    |
    v
K8s deployment, HPA on queue-wait
    |
    v
lm-eval-harness + RewardBench-2 + MT-Bench-v2 + MMLU-Pro
    |
    v
model card (2026 MOF) + safety eval (Llama Guard 4)

استک

  • داده: Datatrove برای حذف داده‌های تکراری، طبقه‌بندی‌کننده‌ی Nemotron-CC برای کیفیت، Presidio برای پاک‌سازی PII
  • مدل پایه: Llama 3.1 8B، Qwen3 14B، یا Gemma 3 12B
  • مرحله‌ی SFT: ابزار Axolotl v0.8 به‌همراه ZeRO-3، فلش اتنشن 3، و بسته‌بندی دنباله‌ها
  • بهینه‌سازی بر اساس ترجیحات: TRL 0.15 برای DPO یا GRPO؛ Unsloth برای تکرار سریع روی یک GPU
  • کوانتیزه‌سازی: GPTQ (Marlin)، AWQ، و GGUF از طریق llama.cpp
  • سرو مدل: vLLM 0.7 با دیکودینگ حدسی EAGLE-3 (یا SGLang 0.4 همراه با SpecForge)
  • ارزیابی: lm-evaluation-harness، RewardBench-2، MT-Bench-v2، MMLU-Pro
  • ارزیابی ایمنی: Llama Guard 4، ShieldGemma-2
  • زیرساخت: Kubernetes به‌همراه پلاگین دیوایس‌های NVIDIA، مقیاس‌پذیری خودکار (HPA) بر اساس متریک زمان انتظار در صف
  • مشاهده‌پذیری: W&B برای آموزش، Langfuse برای استنتاج
خط مونتاژ فاین‌تیونورودی yaml، خروجی اندپوینت
FINE-TUNE ASSEMBLY LINEOne artifact rides the whole pipeline. Clean data feeds SFT, which fills the base model with task behavior; DPO deepens the alignment tint; quantization shrinks the block to 4-bit without changing what it learned; and the served endpoint streams tokens with speculative decoding.دادهحذف تکرار + PIIsftaxolotldpoجفت‌های TRLکوانتیزه‌سازیAWQ 4 بیتیسروینگvllm + eagle8b4 بیتی
یک دست‌سازه در کل پایپ‌لاین حرکت می‌کند. داده‌های پاک وارد SFT می‌شوند و رفتار وظیفه را در مدل پایه می‌نشانند؛ DPO هم‌ترازی را دقیق‌تر می‌کند؛ کوانتیزه‌سازی حجم را بدون تغییر یادگیری‌ها به 4 بیتی کاهش می‌دهد؛ و اندپوینت نهایی توکن‌ها را با دیکودینگ حدسی استریم می‌کند.

مراحل ساخت

  1. پایپ‌لاین داده. حذف تکرار با Datatrove روی پیکره‌ی خام. اعمال طبقه‌بندی‌کننده‌ی کیفیت به سبک Nemotron-CC. پاک‌سازی PII با Presidio. ذخیره‌ی بخش‌های train/val با seed کاملاً مشخص و صریح.

  2. بررسی نشت و آلودگی داده‌ها. برای تک‌تک بخش‌های اعتبارسنجی، شباهت MinHash را با مجموعه‌های آزمون MMLU-Pro، MT-Bench-v2 و RewardBench-2 بسنجید و هرگونه هم‌پوشانی را حذف کنید.

  3. اجرای SFT با Axolotl. آماده‌سازی YAML با ZeRO-3، FA3 و بسته‌بندی دنباله‌ها. اجرای 2 تا 3 اپوک روی 8xH100. لاگ‌گیری در W&B.

  4. اجرای DPO / GRPO با TRL. بردن چک‌پوینت SFT به مرحله‌ی بعد، اجرای یک اپوک DPO روی جفت ترجیحات (یا GRPO با پاداش قابل تایید برای ریاضی/کدنویسی). بهینه‌سازی پارامتر بتا از طریق sweep.

  5. کوانتیزه‌سازی. ساخت سه نسخه‌ی کوانتیزه: GPTQ-INT4-Marlin، AWQ-INT4، و GGUF-Q4_K_M برای llama.cpp. ثبت حجم فایل و نرخ پردازش اسمی هر کدام.

  6. سرو با دیکودینگ حدسی. کانفیگ vLLM 0.7 با سرهای پیش‌نویس EAGLE-3 آموزش‌دیده از طریق Red Hat Speculators. اندازه‌گیری نرخ پذیرش و تاخیر دنباله (Tail latency) در بچ‌های 1، 8 و 32 تایی. گزارش هزینه‌ی دلار به‌ازای هر 1M توکن در مقایسه با Anthropic / OpenAI روی همان ارزیابی.

  7. ماتریس ارزیابی. اجرای lm-eval-harness، RewardBench-2، MT-Bench-v2 و MMLU-Pro روی مدل پایه، حالت SFT-only، حالت SFT+DPO، و حالت SFT+GRPO. ارائه‌ی خروجی در قالب جدول.

  8. ارزیابی ایمنی. سنجش نرخ قبولی در Llama Guard 4 روی مجموعه‌ی توسعه (dev set). اعمال فیلتر خروجی با ShieldGemma-2.

  9. کارت مدل. استفاده از قالب MOF 2026: بخش‌های داده، آموزش، ارزیابی، ایمنی، مجوزها، و بخش بازتولیدپذیری همراه با YAMLها و شناسه‌های commit در گیت.

نحوه استفاده

$ ./pipeline.sh config/llama3.3-8b-domainX.yaml
[data]    300k deduped, 12k filtered, 280k accepted (seed=7)
[SFT]     3 epochs, 8xH100, 6h12m, val loss 1.42 -> 1.03
[DPO]     1 epoch, beta=0.08, 4xH100, 1h40m
[quant]   GPTQ-INT4 4.6 GB, AWQ-INT4 4.8 GB, GGUF-Q4_K_M 5.1 GB
[serve]   vLLM 0.7, EAGLE-3 acceptance 0.74, p99 126ms @ bs=8
[eval]    MMLU-Pro +3.2, MT-Bench-v2 +0.41, RewardBench-2 +0.08
[card]    model-card.md generated under 2026 MOF

تحویل پروژه

فایل outputs/skill-finetuning-pipeline.md ویژگی‌های خروجی نهایی را مشخص می‌کند. یک دستور واحد داده‌ها را وارد SFT می‌کند، از DPO عبور می‌دهد، کوانتیزه‌سازی را انجام می‌دهد، مدل را بالا می‌آورد، آن را ارزیابی می‌کند و در نهایت کارت مدل و اندپوینت فعال را تحویل می‌دهد.

وزن معیار نحوه‌ی ارزیابی
25 تفاوت ارزیابی نسبت به مدل پایه بهبود اندازه‌گیری‌شده روی وظایف هدف (MMLU-Pro، MT-Bench-v2، وظایف اختصاصی)
20 بازتولیدپذیری پایپ‌لاین اجرای مجدد کل پایپ‌لاین سرتاسر با یک دستور و seedهای کاملاً یکسان
20 بهداشت داده نرخ حذف تکرار، پوشش پاک‌سازی PII، و پاس شدن بررسی آلودگی داده‌ها
20 بازدهی مرحله‌ی سرو توکن بر ثانیه در بچ‌های 1/8/32، نرخ پذیرش EAGLE-3، و دلار به‌ازای هر 1M توکن
15 کارت مدل + ارزیابی ایمنی کامل بودن ساختار طبق MOF 2026 + نرخ قبولی در Llama Guard 4
100

تمرین‌ها

  1. حالت‌های SFT-only، SFT+DPO و SFT+GRPO را روی یک بنچمارک اختصاصی یکسان اجرا کنید. گزارش دهید کدام روش ترجیحی عملکرد بهتری داشته و اختلاف آن چقدر بوده است.

  2. مدل پایه را از Llama 3.1 8B به Qwen3 14B تغییر دهید. هزینه‌ی دلار به‌ازای هر 1M توکن را در کیفیت مشابه مقایسه کنید.

  3. نرخ پذیرش EAGLE-3 را روی داده‌های دامنه‌ی تخصصی در مقایسه با داده‌های عمومی ShareGPT اندازه بگیرید. تفاوت آن‌ها و تاثیری که روی سقف تاخیر (Latency budget) می‌گذارد را گزارش کنید.

  4. به‌میزان 1% آلودگی تزریق کنید (پاسخ‌های MMLU-Pro را وارد داده‌های آموزشی کنید) و ارزیابی را دوباره انجام دهید. جهش غیرواقعی دقت MMLU-Pro را مشاهده کنید. در پایپ‌لاین CI یک گیت بررسی آلودگی بسازید که جلوی این نشت راه‌حل را بگیرد.

  5. روش LoRA SFT را به‌عنوان جایگزینی برای فاین‌تیون کامل اضافه کنید. فاصله‌ی کیفی را در وضعیتی بسنجید که مصرف حافظه 10 برابر کمتر شده است.

اصطلاحات کلیدی

اصطلاح در گفتار رایج معنای دقیق فنی
Axolotl «ابزار آموزش SFT» فریم‌ورک جامع و مبتنی بر YAML برای SFT، DPO، و تقطیر دانش
TRL «تنظیم‌کننده‌ی ترجیحات» کتابخانه‌ی Hugging Face برای پیاده‌سازی DPO، GRPO و PPO روی LLMها
GRPO «بهینه‌سازی سیاست بر حسب گروه» دستورالعمل RL مدل DeepSeek R1 با پاداش‌های قابل راستی‌آزمایی
EAGLE-3 «پیش‌نویس دیکودینگ حدسی» سرهای پیش‌نویسی که N توکن جلوتر را حدس می‌زنند؛ vLLM صحت آن‌ها را با مدل هدف تایید می‌کند
MOF «چارچوب باز بودن مدل» استاندارد سال 2026 برای ارزیابی و رتبه‌بندی انتشار مدل‌ها از نظر داده، کد و لایسنس
بررسی آلودگی «بهداشت تفکیک داده» استفاده از MinHash برای تشخیص نشت داده‌های مجموعه‌ی تست به مجموعه‌ی آموزش
نرخ پذیرش «معیار EAGLE / MTP» نسبتی از توکن‌های پیش‌نویس که توسط مدل هدف تایید و پذیرفته می‌شوند

مطالعه‌ی بیشتر

خودآزمایی

به سؤال‌ها جواب بدهید تا ببینید چقدر از درس در ذهنتان مانده است.

  1. پیش از درسبررسی آلودگی (contamination check) در حین آماده‌سازی داده از چه چیزی جلوگیری می‌کند؟
  2. پیش از درسچرا پایپ‌لاین به جای DPO به‌تنهایی، SFT و سپس DPO (یا GRPO) را ترکیب می‌کند؟
  3. حین درسروش EAGLE-3 چه نقشی در مرحله سروینگ با vLLM ایفا می‌کند؟
  4. حین درسکدام معیار نشان‌دهنده میزان هم‌راستایی پیش‌نویس حدسی با مدل هدف است؟
  5. حین درسپایپ‌لاین کدام سه‌گانه کوانت را برای انعطاف‌پذیری در استقرار عرضه می‌کند؟
  6. پس از درسکارت مدل 2026 در این پروژه از کدام قرارداد چارچوب پیروی می‌کند؟
  7. پس از درسکدام متریک HPA برای مقیاس‌پذیری خودکار نمونه‌های سروینگ استفاده می‌شود؟

سؤالات متداول

تفاوت خروجی SFT و DPO در این پایپ‌لاین چیست؟

مرحله‌ی SFT مدل را برای یادگیری ساختار و دانش دامنه‌ی تخصصی آموزش می‌دهد، در حالی که DPO رفتار مدل را بر اساس ترجیحات و بازخوردهای مقایسه‌ای هم‌راستا می‌کند.

چگونه می‌توان هزینه‌ی بالای آموزش روی GPU را کاهش داد؟

با استفاده از کتابخانه‌ی Unsloth برای تکرارهای سریع روی یک کارت گرافیک، پیاده‌سازی تکنیک LoRA به جای آموزش کامل، و بهره‌گیری از کوانتیزه‌سازی در زمان سرو.

نقش EAGLE-3 در استقرار مدل با vLLM چیست؟

یک روش دیکودینگ حدسی (Speculative Decoding) است که با پیش‌بینی چندین توکن در هر گام، نرخ تولید توکن را بدون هیچ‌گونه افت کیفیت 2 تا 3 برابر افزایش می‌دهد.

ما رو توی گوگل بیشتر ببین

با افزودن نکست ادمین به «منابع ترجیحی» گوگل، درس‌ها و مطالب ما را در بخش اخبار برتر جستجو بیشتر می‌بینید.