Phase 10: LLMs from Scratch

بناء خط أنابيب كاملة للدرجة العليا

كل شيء من الدروس 01 إلى 12 هي مرحلة واحدة من خط أنابيب واحد. هذه الدروس هي الدرج الذي يحول تلك المراحل إلى مسار واحد من نهاية إلى نهاية: التوجه، قبل القطار، النطاق، SFT، التوجه، تقييم، الكميات، الخدمة. لن تدرب نموذج 70B على جهاز كمبيوتر محمول ستقومون بإنتاج طبقة التنسيق، والإشارة، وبوابة التقييم، وخطة التراجع التي تستخدمها فريق الحدود لعام 2026 لتحديد ما سيتم شحنه. هذه هي الحجر الرئيسي

Type: Build

Languages: Python (stdlib)

Prerequisites: All Phase 10 lessons 01-12

Time: ~120 minutes

أهداف التعلم

  • قم بتجميع الدرس الـ11 السابق (التوكينيزر والبيانات والتدريب المسبق وتوسيع النطاقات والتحديدات، والتحديدات، والتحديدات، والتحديدات، والإدراك، والإدراك، والإدراك، والتحديد، والكميات، والإستنتقاد) إلى تحديد واحد قابل للتكرار
  • تحديد عقد الأثاث بين المراحل: ما يستهلك كل مرحلة، ما ينتج، وكيفية التحقق من المدخلات في المرحلة التالية
  • بناء منظمة موسيقية تتبع التجارب، وتحويلها الأثرية، والبوابات السفن القرارات على عتبات التقييم
  • صياغة خطة إعادة التدريب: أي أثاث رخيص لإعادة التدريب، والتي باهظة الثمن، وما تكلفة نقطة تفتيش فاسدة

المشكلة

الدروس السابقة كل عمل. تم تدريب Tokenizer. تم تدريب GPT المسبق. تم تجميع مجموعة بيانات SFT. تم تدريب نموذج مكافأة. تم تشغيل DPO. تم قياس الموازين. تم تصدير الأوزان الكمية. تم تشغيل خادم الإستثمار. كل واحد هو دفتر مذكرة. لكل واحد لديه اتفاقيات خاصة به، مسارات خروجه الخاصة، بذور خاصة به.

التدريب على الحدود ليس دفترًا مذكريًا إلاما 3 405B أخذ 30 مليون H100 ساعة على مدى حوالي 54 يوما. تستغرق "ديب سيك" (V3) حوالي 2.8 مليون ساعة خلال ذلك الوقت، نقطة تفتيش واحدة فاسدة، تلوث واحد للبيانات، رجعة واحدة تقييم يمكن أن تكلف فريق أسبوع من ساعة الحائط وشهر من ميزانية GPU. الطريقة التي تنجو بها الفرق من هذا هو من خلال نظافة خطوط الأنابيب: كل مرحلة لديها مدخل تحديدي، ومخرج تحديدي، ومرسوم، ومرسوم، وبوابة.

هذه هي الحجر النهائي. لن تشغيل خط الأنابيب من نهاية إلى نهاية على جهاز كمبيوتر محمول. سوف تكتب الموسيقي الذي ينسق المراحل، والخطاب الذي يصف الجري، والتحقق الذي يمنع قرارات السفن، وخطة إعادة التشغيل التي تسمح لطرف ثالث بإعادة تشغيل عملك من ملف واحد. الرمز صغير؛ والتنظيم كبير.

النمط يتراوح من 100M إلى 1T دون تغيير. نفس المكونات الأربعة -- المظهر، الموسيقي، بوابة التقييم، متجر الأثرية -- تشغيل Llama 3 وتشغيل هوايتك GPT أيضا. الفرق هو حجم الأرقام داخل إعداد كل مرحلة، وليس شكل الأنابيب.

المفهوم

المراحل الثانية عشر

كل درس من المرحلة 10 هو مرحلة.

graph TD
    S1["01 Tokenizer vocab"] --> S2["02 Trained tokenizer"]
    S2 --> S3["03 Sharded dataset"]
    S3 --> S4["04 Base model checkpoint"]
    S4 --> S5["05 Scaled training recipe"]
    S5 --> S6["06 SFT checkpoint"]
    S6 --> S7["07 Reward model + PPO policy"]
    S6 --> S8["08 DPO policy"]
    S7 --> S9["09 CAI / GRPO refined policy"]
    S8 --> S9
    S9 --> S10["10 Eval report"]
    S9 --> S11["11 Quantized weights"]
    S11 --> S12["12 Inference server"]
    S10 --> GATE["Ship gate"]
    S12 --> GATE

    style S1 fill:#1a1a2e,stroke:#e94560,color:#fff
    style S4 fill:#1a1a2e,stroke:#0f3460,color:#fff
    style S9 fill:#1a1a2e,stroke:#0f3460,color:#fff
    style GATE fill:#1a1a2e,stroke:#51cf66,color:#fff

يمكن أن تعمل المراحل 07 و 08 بالتوازي. كل شيء آخر يعتمد على صعوبة. تغيير في المرحلة 02 (tokenizer) يؤدي إلى إلغاء كل أداة أسفل التيار. تغيير في المرحلة 10 (eval) يؤدي إلى إلغاء قرار السفينة فقط.

الظهور

المخطط هو ملف واحد يصف تشغيلًا كاملًا بما يكفي لإعادة تشغيله. لا شيء ينتجه الخط أن يعتمد على حالة ليست في المخطط. الحقول مملة و إلزامية.

pipeline_version: 1.2.3
seed: 42
git_commit: a1b2c3d4
stages:
  01_tokenizer:
    recipe: bpe_32k
    input_hash: sha256:...
    output_hash: sha256:...
    wall_clock_sec: 3600
    cost_usd: 12

إن خروج الناتج من المرحلة N هو خروج المدخل من المرحلة N + 1. أي انحراف وتوقف خط الأنابيب. هكذا يمكنك اكتشاف الفساد البيانات مبكرا. كما أنه كيف يثبت زميل في فريق في قارة مختلفة أن إعادة تشغيله أنتجت نفس العناصر التي أنتجتها.

في الممارسة الفريقية تستخدم مخطط YAML صغير بالإضافة إلى ملف التحقق من المظاهر الذي يختلف عن الجري الناجح السابق. أي دلتا خارج الحقول المتوقعة (تكلفة، ساعة الجدار) هو راية حمراء.

تطبيق الأثاث

إنّ إنتاج كلّ مرحلة هو أداة مكتوبة، ليس قطعة إداريّة، وليس طعم، بل نوعٌ مسمّى مع مخطّط معروف.

StageArtifact TypeKey Fields
01-02Tokenizervocab.json, merges.txt, config.json, hash
03Datasetshards[], row count, token count, dedup stats
04-05Checkpointweights.safetensors, config.json, optimizer state, step count
06SFT Modelcheckpoint + SFT recipe + data mix
07Reward ModelRM checkpoint + preference data hash
08-09Policycheckpoint + reference hash + beta + KL budget consumed
10Eval Reportbenchmark scores + regression diffs + eval data hash
11Quantized Modelquantized weights + calibration data + accuracy delta vs FP16
12Server Specendpoint + model hash + config + observability hooks

يمنع التطبيق وضع الفشل الأكثر شيوعاً: استخدام خروج مرحلة 08 كمدخل مرحلة 06 ، وإرسال نموذج مدرب من DPO عبر مسار SFT. تصنع الأثاث المميزة وتوقيعات المرحلة المميزة هذه الأخطاء أخطاء في وقت التجميع ، وليس أخطاء يوم خمسة.

بوابة إيفال

الشحن ليس "التدريب انتهى". الشحن هو "التدريب انتهى والبوابة التقييم تمت. "بوابة يتم تعريفها قبل بدء الجولة.

gates:
  mmlu:      >= baseline + 0.5   # no regression
  humaneval: >= baseline + 1.0
  truthfulqa: >= baseline         # no drop
  safety_refusal_rate: <= 0.05
  kl_from_reference: <= 25.0
  cost_total_usd: <= 50000

كل بوابة هو عددية عتبة. لا بوابات "يبدو جيدة". لا علامات ذاتية. إذا تمر كل بوابة، يتم وضع علامة على التحف المرسلة. إذا فشل أي بوابة، يتم إجراء الجولة في انتظار الإغلاق الصريح من قبل المراجع المسمى، والذي يتم تسجيل نفسه في المذكرة.

بوابة 2 بوابات تقاطع معظم الكوارث. بوابة رجعة (يجب أن يكون النموذج الجديد على الأقل جيدًا بنفس الجودة التي كانت عليه في النماذج المرجعية الأساسية) تقاطع أخطاء التدريب. بوابة كيل ميزانية * (لا يجب أن تكون السياسة المنسقة قد انحرفت أبعد من X من مرجعها) تقاطع تعديل التنظيم. كل خط أنابيب الإنتاج له كل منهما.

الموسيقي

قطعة صغيرة من الشفرة التي تقرأ المخطط، وتقوم بإرسال المراحل، وتتبع الأثاث، وتوقف عن أي انتهاك للعقد. هذه ليست Airflow. هذه ليست Kubeflow.

وظيفة الموسيقي ضيقة:

  1. أخرجوا اليوم من المذكرة
  2. لكل مرحلة، تحقق من وجود الخروج المتوقع بالفعل عند الاختراق الصحيح (فقط إذا كان كذلك).
  3. إدارة المسرح، التقاط stdout / stderr، قياس الساعة الجدارية والتكلفة.
  4. التحقق من الاختراق الخارجي مقابل الاختراق المدخل المتوقع للمرحلة التدريجية.
  5. عند الفشل، اكتب بيان جزئي مع مرحلة الفشل الدقيقة والخروج غير الصفر.

هذا 200 سطر من بيثون. سوف تبدو مثل الملفcode/main.pyتحت الغطاء، أنبوب حقيقي يستخدمtorchrunأوrayلتنفيذ مراحل فردية على مجموعة، ولكن الموسيقي نفسه يعمل على صندوق واحد.

تتبع التجارب وتخزين الأثاث

نظامان خارجيان يثبتون خط الأنابيب

Experiment tracker (wandb, neptune, mlflow).يُسجل منحنى الخسارة، ومقاييس التقييم، وتلفزية النظام لكل مرحلة. المسجل هو المكان الذي تذهب إليه عندما تحتاج إلى مقارنة الجولة A مع الجولة B بعد ثلاثة أسابيع. الفريقات تستخدم دائماً تقريباً مسجلًا مضيفًا لهذا -- كتابة وقتك الخاص يفقد الوقت الذي يجب أن يذهب إلى التدريب.

Artifact store (S3, R2, GCS).متجر غير قابل للتغيير للمواقع التفتيشية ومجموعات البيانات والمعلامات والتقارير التقييمية. يتم تعيين الأدوات عن طريق الهاش، وليس عن طريق اسم الملف. اسم ملف مثل latest.ptهو بندقية قدمckpt-7b-step-20000-sha256:abc123.safetensorsهو عقد

الموسيقي يكتب لكل منهما، ومتابعة البشر يبحثون عن الرسوم البيانية، ومتجر الأثاث هو للمرحلة التالية يبحثون عن المدخلات.

التكلفة

في الجولة الحدودية يوجد رقم دولار مرفق.

Pre-run estimate.من المخطط، الحساب المتوقع FLOPs (للمسابقة التدريب: 6 x بارامز x توكنات) ، متوقع ساعات GPU (FLOPs / ذروة التعبير / الاستخدام) ، والتكلفة بالدولار في معدل الإيجار الحالي. إذا تجاوزت التقدير البوابة الميزانية، فإن خط الأنابيب يرفض البدء.

In-run tracking.يتم تسجيل الساعة الحائطية للمرحلة بعد المرحلة والتكلفة في المذكرة. بعد كل مرحلة، يتم التحقق من الميزانية المتبقية. إذا تجاوزت مرحلة، يتم تقييم بوابة المرحلة التالية مع الميزانية المتبقية الجديدة. لا تجد أنك نفدت المال عندما يطلب VC.

تكلفة "إلاما 3" المبلغ عنها كانت $61M. DeepSeek-V3 reported $5.6 مليون للسباق الرئيسي قبل التدريب. النسبة هي في الغالب كفاءة الأجهزة بالإضافة إلى مزيج من الخبراء -- ولكن التكلفة المحددة واضحة لأن كل فريق تعقبها على مرحلة، وليس على سبيل المثال.

إعادة التكاثر مقابل التحديد

هذه ليست نفسها. قابل للتنظيم يعني نفس المظهر بالإضافة إلى نفس الشفرة بالإضافة إلى نفس البنية التحتية تنتج نقطة تفتيش مع قياسات متكافئة في المستوى التدريجي. تعني التحدد الناتج متطابق بيت.

التدريب الحديث لدرجة الماجستير في مجال القانون يمكن إعادة تكوينه ولكن ليس ديترمينستيا. يجمع نظام تدريب الموزع من أجل الحد من النظام، وعدم تحديد جوهر GPU (cuBLAS، flash-attn) ، والإدراج الدقيق المختلط لإنتاج طائرات تختلف على مستوى 1e-5 بين الجوائز. هذا جيد بالنسبة للمقاييس النهائية، التي لا تتحرك. إنه أمر مميت إذا كنت تحاول إصلاح التباينات على مستوى البيت. العلاج هو تسجيل كل مرحلة من المشاريع والخروج والمقاييس الرسمية -- إذا كانت هذه تتطابق، فإن الجولة "تتكرر" حتى لو لم تكن الوزن متطابقة.

graph LR
    M["Manifest v1.2.3"] --> O["Orchestrator"]
    O --> S["Stages 01 → 12"]
    S --> AS["Artifact Store\n(content-addressed)"]
    S --> ET["Experiment Tracker\n(metrics, curves)"]
    AS --> GATE["Eval Gate"]
    ET --> GATE
    GATE -->|pass| SHIP["Ship"]
    GATE -->|fail| ROLL["Rollback plan"]

    style M fill:#1a1a2e,stroke:#0f3460,color:#fff
    style GATE fill:#1a1a2e,stroke:#e94560,color:#fff
    style SHIP fill:#1a1a2e,stroke:#51cf66,color:#fff
    style ROLL fill:#1a1a2e,stroke:#c0392b,color:#fff

خطة الرد

قبل بدء السباق، اكتب ما يحدث في فشل كل مرحلة. ثلاث فئات.

  • Cheap to re-run(ساعات): الـ Tokenizer، تقييم، كمية، خادم الاستنتاج.
  • Medium(أيام): SFT، DPO، CAI. حافظ على النموذج الأساسي؛ إعادة تشغيل فقط مراحل التنحية.
  • Expensive(أسابيع وملايين الدولارات): التدريب المسبق. خطة الاحتياط هنا ليست "إعادة التدريب". إنها "استخدام آخر نقطة تفتيش جيدة وإعادة التدريب في مراحل التدريب الأرخص مع بيانات مراجعة".

لأن الاعتمادات على المرحلة يتم كتابتها وتحويلها، يمكن للموسيقي حساب مجموعة التراجع تلقائيًا: إلغاء المرحلة الفاشلة بالإضافة إلى كل نَسَل. الفشل في المرحلة 06 (SFT) يؤدي إلى إلغاء 06, 07, 08, 09, 10, 11, 12. الفشل في المرحلة 11 (الكمبئية) يؤدي إلى إلغاء 11 و 12 فقط. وتجنب تسمية هذا في الأمام التبديل بينما يكون الفريق متعبًا في 4 صباحا.

وصفات الإنتاج الملاحظة في عام 2026

معظم فرق الحدود تجمع على نفس العظم.

  • الـ 128K بيبي مع إرجاع بايت، تدرب على شريحة صغيرة متوازنة متعددة اللغات
  • التدريب المسبق: رموز 10-20T، معظمها شبكة زائد رمز زائد اصطناعي. معالجة الميون أو آدم و. FSDP2 أو ديبسيبيد زرو-3. التفتيش التدريبي. وزن BF16، FP32 الماستر.
  • SFT: 500k-2M أزواج تعليمات، مختلطة البشر والصناعية، مع تقليل صارم ضد مجموعة تقييم.
  • التنحية: DPO أو CAI + GRPO. RLHF فقط عندما تكون إشارة الاختيار متعددة الأبعاد جداً لـ DPO.
  • إيفال: MMLU-Pro، MATH، HumanEval+، GPQA، SWE-Bench Verified، LiveBench، بالإضافة إلى مجموعة خاصة تمتلكها الجمهور لا ترى أبدا.
  • الكمية: GPTQ أو AWQ 4 بتات للخدمة، 8 بتات لتقييمات السلامة حيث أن الدقة مهمة.
  • خدمة: vLLM، TensorRT-LLM، أو في المنزل.

الأرقام تتغير كل ستة أشهر لكن العظم لا يتغير

بناءها

رمز الدروس هو جهاز ترقية ومحقق مظهر ، وليس اثني عشر نصوص تدريبية. يتم محاكاة كل مرحلة مع محفظة مساحة تنتج عنصرًا خارجيًا بحجم صحيحًا ومركزًا. تشغيل جهاز ترقية من نهاية إلى نهاية يثبت أن الأنابيب تعمل قبل حرق أموال GPU على المراحل الحقيقية.

انظرcode/main.pyلتنفيذ كامل.

  • Manifestفئة البيانات: نسخة خط الأنابيب، البذور، التزامات التوصيل، المراحل، البوابات.
  • Stageفئة البيانات: الاسم، النوع، المدخلات (الهيش) ، الخروج (الهيش) ، ساعة الجدار، التكلفة.
  • Orchestrator.run(): يحل DAG، يرسل المراحل، يصدق الهاشيشات، تحديثات تظهر.
  • EvalGate.check(): يقرأ العدوان، يُقارن مع آخر تقرير تقييم، يُرجع التجاوز/الفشل.
  • ArtifactStore(في الذاكرة): وضع/حصول على الهيش، يحاكي S3.
  • CostTracker: لكل مرحلة وتراكمية، توقف عند تجاوز الحد الأقصى.

خط الأنابيب فيmain.pyيستخدم 12 مرحلة من المقرر، ويُنتج منشور، ويقوم بممارسة بوابة تقييم غير فعالة لتظهر كيف يبدو المقرر.

استخدمها

سير العمل القنوني لديه ثلاث أوامر.

python code/main.py plan    # validate manifest, compute cost estimate, print DAG
python code/main.py run     # execute stages, writing to manifest.out.yaml
python code/main.py gate    # read manifest.out.yaml, apply eval gates, ship-or-hold

أركضplanمعظم أخطاء خطوط الأنابيب تظهر في الوقت المناسب - حدود البوابة المفقودة، الهيشات القديمة، تجاوزات الميزانية.planهو مجاني، ركضrunإنقاذ المال من خلال صيد الحشرات على الجانب الرخيص.

إنتاج gateهو إماSHIPأوHOLD: <reason>. لا تعتبر الجولة التي تمت إتمامها فشلاً، بل نقطة قرار. إما أن يقوم المراجع المسمى بإلغاء (وتسجل الإلغاء) ، أو يوافق على إعادة التدفق.

أرسله

هذا الدرس يُنتجoutputs/skill-llm-pipeline-reviewer.md. إعطاءها بيان خط الأنابيب المقترح ويتحقق من جميع العقود: التصفيف المرحلي، سلسلة الهاش، البوابات، خطة التراجع، تقدير التكلفة. يرفض الموافقة على بيان مع البوابة الافتراضية المفقودة، ميزانية KL غير المحدودة، أو تشغيل يخلط بيانات الافتراض والتدريب.

التمارين

  1. تمديد الموسيقي لدعم تنفيذ المراحل 07 و 08. استخدم stdlib concurrent.futuresوحدات. تأكد من أن المظهر النهائي يسجل نتائج كل من المراحل وأن hash المدخل من المرحلة 09 هو مزيج تحديدية من كليهما.
  1. إضافة بوابة "تحقق من التلوث". بالنظر إلى مجموعة بيانات eval hash وقطع مجموعة بيانات التدريب، احسب التداخل (التطابق الدقيق في السطر أو 13 جرام). يفشل البوابة إذا تجاوز التداخل 0.1٪. إطعامها مجموعة تدريب ملوثة وتأكيد أن البوابة تحمل الجولة.
  1. تنفيذ تقدير التكلفة من المبادئ الأولى. للمرحلة 04 (التدريب المسبق) ، تقدير FLOPs على أنها 6 × پارامز x رموز ، افترض 40% MFU (استخدام FLOPs النموذج) على H100 عند 989 TFLOPs BF16, عند 2.50 دولار / جي بي يو-ساعة. تقرير تقدير لنموذج 7B المدرب على رموز 2T. مقارنة مع أرقام Llama 2 المنشورة.
  1. قم ببناء إعادة التداول الجزئي. قم بتحاكي فشل في المرحلة 09 (CAI) ، ثم قم بإعادة تشغيل المرحلة 09 إلى 12 بينما ترك 01-08 مسجلاً. يجب على الموسيقي اكتشاف الأدوات المسجلة بواسطة الهاش وتخطوها. قم بتقييم ساعة الحائط التي تم حفظها مقابل إعادة تشغيل كاملة.
  1. إضافة قابلية للملاحظة. إصدار OpenTelemetry امتدادات لكل مرحلة، مع صفات لبرامج، رموز رأى، الخسارة، والتكلفة. أنبوب الممتدات إلى جمع محلي. النقطة ليست لوحة التحكم؛ النقطة هي أن صحة كل مرحلة يمكن تتبعها من هوية تتبع واحدة.

الشروط الرئيسية

TermWhat people sayWhat it actually means
Manifest"The recipe file"YAML or JSON describing pipeline version, seed, per-stage config, and gate thresholds — sufficient to replay a run
Content-addressed"By hash not name"Artifacts stored by SHA-256 of their contents, so you can never confuse version A with version B
Eval gate"The ship criteria"Numeric thresholds on benchmark metrics and safety scores that must pass before an artifact is marked shippable
KL budget"How far alignment drifted"A cap on cumulative KL(policy
MFU"How much of the GPU you used"Model FLOPs Utilization — achieved FLOPs divided by theoretical peak. 40% is typical at 70B scale, 55% at 7B
Rollback plan"What we do when it breaks"Pre-written set of actions per stage on failure: re-run, fall back, retrain with revised inputs
Orchestrator"The conductor"The process that reads the manifest, dispatches stages, verifies hashes, halts on any contract violation
Artifact store"Versioned S3 for weights"Immutable content-addressed object store — single source of truth for checkpoints, datasets, eval reports
Reproducible"Same metrics on replay"Different bit-level weights but equivalent downstream metrics — the realistic target for distributed LLM training
Cost gate"You cannot exceed X"Pre-run cost estimate plus in-run tracker — the pipeline refuses to start if the estimate exceeds budget

المزيد من القراءة

This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.

Browse the complete course catalog or open this lesson on GitHub.