تخطى إلى المحتوى الرئيسي
أحدث الأبحاث:← عندما تذوب الدائرة12 vindexes on Hugging Face
طلب عرض تجريبي

اختبار التكامل المستمر لنماذج اللغة المخصصة في 2026

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

ملاحظات من دورة الإصدار — الجزء الثامن (الأخير)

تشحن مجموعة الانحدار من المنشور 7. إنها تعمل. البوابات المُدركة للشرائح تلتقط الأخطاء الحقيقية. المُحكِّم المُعايَر صامد.

ثم يسألك قائد الهندسة عن كلفة تشغيلها على كل طلب سحب. تُجري عملية الضرب: ~12 دقيقة من استدلال المُحكِّم لكل طلب سحب، و60 طلب سحب يومياً، وأربعة أبعاد × سبع عشرة شريحة، فإذا الفاتورة مال حقيقي. والأسوأ أن كل مطوّر بات ينتظر 12 دقيقة من أجل علامة خضراء على خطأ مطبعي في موجِّه من سطر واحد. تنخفض السرعة[1]، ويتذمّر الفريق، ويقترح أحدهم “فقط شغّل البوابات ليلاً” — وهو بالضبط ما يجعلك تتخلى عن كل ما كان من المفترض أن تُحقّقه البوابات.

العلاج ليس اختباراً أقل. العلاج هو الاختبار بطبقات، مع وصول معظم الإشارة في التسعين ثانية الأولى. هذا المنشور هو ما يعمل تحت مجموعة البوابات: اختبارات عقد بأقل من ثانية، وطبقة اختبار سريع مُحكَمة، وأسطول مُدرك للتكلفة، ونافذة ظلّية مدتها أسبوعان قبل أن تحجب أي بوابة جديدة أحداً.

هذا هو المنشور 8، الأخير من هذه السلسلة. في النهاية، ستملك الصورة الكاملة — من خط الأنابيب الرباعي إلى تجهيزة اختبار العقد التي تعمل على كل تثبيت (commit).

ماذا يعني التكامل المستمر لنموذج لغة مخصص؟

التكامل المستمر لنموذج لغة كبير مخصص هو العمل الذي لا تحتاج مجموعة البوابات إلى إعادته. تُقيّم البوابة الجودة الدلالية؛ ويلتقط التكامل المستمر كل ما من شأنه أن يجعل تقييم البوابة بلا معنى قبل أن تنفق البوابة رمزاً واحداً (token) من المُحكِّم.

تعمل اختبارات العقد بالميلي ثانية وتتحقّق من أن قوالب الموجِّهات لا تزال تُصيَّر، وأن مخططات استدعاء الأدوات لا تزال تُحلَّل، وأن فهارس الاسترجاع لا تزال تستجيب، وأن البيان (manifest) لا يزال يُشير إلى تجزئات (hashes) موجودة فعلاً. إنها حتمية ومجانية، وهي السبب الوحيد الذي يجعل بقية خط الأنابيب يستطيع تحمّل تكلفة الوجود. طلب السحب الذي يُعطّل قالب الموجِّه ينبغي أن يفشل في 200 ميلي ثانية، لا بعد 12 دقيقة من استدلال المُحكِّم وهو يُقيّم هراءً.

طبقة العقد هي الفرق بين فاتورة تكامل مستمر تتناسب خطياً مع حجم طلبات السحب وأخرى لا تفعل. يُنفق مُشغّل التكامل المستمر في Divinci > 90% من ميزانية المُحكِّم على تقييم دلالي حقيقي، لا على طلبات سحب كانت ستفشل في فحص مخطط. تلك النسبة هي الرقم الرئيسي.

لماذا ينهار التكامل المستمر التقليدي مع نماذج اللغة الكبيرة — عبر عدسة التكلفة

غطّى المنشوران 1 و7 سبب فشل التكامل المستمر الحتمي مع نموذج توليدي. النسخة من تلك القصة التي يدور حولها هذا المنشور هي تكلفة تلك الخصائص الأربع، لا وجودها.

خاصية نماذج اللغة الكبيرةفشل التكامل المستمر التقليديشكل التكلفة
مخرجات غير حتميةتأكيدات المطابقة التامة تتذبذبإعادة التشغيل تُضخّم التكلفة خطياً مع معدّل التذبذب
جودة متعدّدة الأبعادقيمة منطقية واحدة غير مُفيدةكل بُعد هو استدعاء مُحكِّم منفصل (مدفوع)
انجراف المزوّدgpt-4-2024-01-01 المُثبّت يتقاعد بصمتاندفاعة إعادة معايرة عند سحب المزوّد لنقطة فحص
تأثيرات الموجِّه غير المحليةاختبار الوحدة المحلي لا يستطيع التقاط الأثرتتغيّر أشكال التوزيعات بين طلبات السحب لا داخلها — تحتاج إلى إعادة تشغيل المجموعة كاملة لا الفرق

على معمارية التكامل المستمر أن تُجعل كل واحدة من هذه ميسورة التكلفة. تتعامل اختبارات العقد مع الخاصية 1 و3 بثمن زهيد. تتعامل اختبارات الاختبار السريع مع الخاصية 4 جزئياً. ولا تتعامل مع الخاصية 2 إلا المجموعة الكاملة — وفقط على طلبات السحب التي تحتاجها فعلاً.

كعكة طبقات التكامل المستمر — من أقل من ثانية إلى خمس وعشرين دقيقة

المعمارية التي نشحنها أربع طبقات، تكسب كل طبقة منها قدرتها الحوسبية بالتقاط ما لا تستطيع الطبقات الأرخص تحتها التقاطه. اتباع التأطير المُدرك للشرائح في كل طبقة هو الدرس نفسه الذي وضّحه التحليل الارتجاعي لكذبة Semver لـ Tianpan[4]: الإشارات الإجمالية تكذب؛ الإشارات لكل شريحة تلتقط ما تُخفيه الإجماليات.

كعكة طبقات التكامل المستمر — كل طبقة تُضيّق قُمع طلبات السحب الواصلة إلى التاليةمعظم طلبات السحب تلامس الطبقتين العلويتين فقط. أرقام التكلفة لكل طلب سحب داخلية — مُقاسة على تكامل Divinci المستمر في الإنتاج.① العقد · كل تثبيت · < 1 ث · ~$0.00المخطط · تصيير القالب · قائمة الحظر · سلامة البيان · حيوية الفهرس100% من التثبيتات② الاختبار السريع · كل طلب سحب · ~90 ث · ~$0.0520-30 حالة حرجة على أعلى 3 شرائح · المهمة والسلامة فقط100% من طلبات السحب③ المجموعة الكاملة · طلبات سحب الموجِّه/النموذج/الاسترجاع · ~12 د · ~$0.80~500 حالة · 4 أبعاد · كل الشرائح · بوابات Spearman لكل شريحة~22% من طلبات السحب④ إعادة تشغيل آثار الإنتاج · مرشّحات الإصدار · ~25 د · ~$2.40نافذة إعادة تشغيل 14 يوماً · نفس المُحكِّم المُعايَر · تحليل فجوة دون اتصال ↔ إعادة التشغيل~4% من طلبات السحبإجمالي التكلفة لكل طلب سحب (مرجَّحة بالقُمع): ~$0.27. إجمالي الزمن الفعلي p95: ~3.4 د.
الزمن الفعلي لكل طبقة، والتكلفة لكل طبقة، ونسب القمع داخلية — مُقاسة على تكامل Divinci المستمر في الإنتاج لعميل تمثيلي (~500 حالة من مجموعة البيانات الذهبية، و17 شريحة، و~60 طلب سحب/يوم).

شكل التكلفة هو التصميم. ~74% من طلبات السحب لا تُنفق أبداً رمزاً للمُحكِّم — العقد أو الاختبار السريع يكفي. طلبات السحب التي تصل إلى المجموعة الكاملة هي تلك التي لمست موجِّهاً، أو إعداد نموذج، أو فهرس استرجاع، أو شيفرة تقييم — وهي بالضبط التغييرات التي تكون فيها مجموعة البوابات هي الإشارة الوحيدة الجديرة بالثقة. مرشّحات الإصدار هي الحصّة الصغيرة التي تصل إلى الطبقة 4.

اختبارات العقد — الميزة غير العادلة

اختبارات العقد هي خط الدفاع الأول، والخط الأرخص، والخط الذي تتخطّاه معظم الفرق لأنه يبدو دون كرامة “خط تقييم ذكاء اصطناعي”. وهي أيضاً المكان الذي يفشل فيه 30-40% من الانحدارات المحتملة في مجموعات عملائنا، قبل استدعاء مُحكِّم واحد.

تُؤكّد طبقة العقد خمسة أشياء ولا شيء سواها:

  1. تصيير قالب الموجِّه. كل قالب يُصيَّر مقابل تجهيزة قانونية دون متغيّرات غير مربوطة، أو حلقات منفلتة، أو تضمينات على غرار Jinja مكسورة.
  2. مخطط استدعاء الأدوات. مخطط الوسيطات لكل أداة مُعلنة يُحلَّل، وJSONSchema صالح، ويُشير الموجِّه المُصيَّر فعلاً إلى كل الفتحات المطلوبة.
  3. سلامة البيان. كل SHA في بيان الإصدار — النموذج، الموجِّه، فهرس الاسترجاع، المُحكِّم، مجموعة البيانات — يقابل تحفة (artifact) موجودة في السجل. المؤشّرات المُعلَّقة تفشل هنا، لا بعد ثلاث طبقات.
  4. حيوية الفهرس. يستجيب فهرس الاسترجاع لاستعلام معلوم ضمن الميزانية. الفهرس المُعاد بناؤه الذي عطّل الاسترجاع بصمت يطفو هنا، لا في الإنتاج.
  5. قائمة الحظر وميزانية الرموز. أي قالب موجِّه أدخل رمزاً محظوراً، أو فجّر ميزانية الرموز لكل استدعاء، أو صُيِّر تجاوزاً لنافذة السياق يفشل هنا. التهديف الاستدلالي للتشابه الدلالي[6] رخيص بما يكفي أيضاً للتشغيل في طبقة العقد لتغطية قائمة حظر بمطابقة ضبابية حيث تكون مطابقة السلسلة الحرفية غير كافية.
# استدعاء تمثيلي لاختبار عقد — يعمل في نحو 600 ميلي ثانية
divinci ci contract \
  --manifest release/staging.yaml \
  --check schema,template,manifest,index,denylist \
  --fail-fast \
  --json-out /tmp/contract-report.json

لا شيء من هذه يستدعي مُحكِّماً. لا شيء منها غير حتمي. لا شيء منها يكلّف مالاً قابلاً للقياس. وكل واحدة منها تستبعد فئة كاملة من تنبيهات “قالت مجموعة البوابات إن الشريحة الطبية انحدرت” التي كانت ستهدر 12 دقيقة كاملة من استدلال المُحكِّم وهو يُقيّم مخرجات لم يكن النموذج ليُنتجها بشكل صحيح في المقام الأول.

طبقة الاختبار السريع — 90 ثانية، ~$0.05 لكل طلب سحب

إن كانت طبقة العقد هي الميزة غير العادلة الرخيصة، فطبقة الاختبار السريع هي التي تلتقط الانحدارات فعلاً بأقل من ثمن فنجان قهوة. عشرون إلى ثلاثون حالة مأخوذة من الشرائح الأكثر حجماً، مُقيَّمة على إنجاز المهمة والسلامة فقط، لا أمانة، ولا زمن استجابة، ولا فحوصات استرجاع مُتجذّرة. تشغّل كل طلبات السحب هذه. تستغرق نحو 90 ثانية لأن الحالات مُجمَّعة في استدعاء مُحكِّم واحد بمخطط مخرجات مُهيكلة، ولأن المُحكِّم هو المُحكِّم المُعايَر الرخيص — لا المُحكِّم الكامل الجودة المُستخدم لمرشّحات الإصدار.

نتتبّع أي طبقة التقطت كل إصلاح شُحن في سجل انحدار، وكان المدرَّج التكراري ثابتاً على مدى الأشهر الستة الماضية في عمليات نشر العملاء:

أين تُلتقط الانحدارات — حسب الطبقة، آخر 6 أشهر عبر عمليات نشر العملاءمعظم الانحدارات تموت في الطبقات الأرخص. الطبقات الباهظة تكسب كلفتها على ما تبقّى.40%30%20%10%0%31%العقد< 1 ث · $0.0027%الاختبار السريع90 ث · $0.0528%المجموعة الكاملة12 د · $0.8011%إعادة التشغيل25 د · $2.403%أفلتت← تراجع
إجمالي متحرك لستة أشهر عبر عمليات نشر التكامل المستمر النشطة في Divinci. مُقدَّم كنسبة % من الانحدارات المؤكدة حيث كانت الطبقة المُسمّاة هي الأولى التي فشلت. داخلية — مُقاسة من قبلنا.

الـ 3% التي تُفلت هي سبب وجود التراجع الفوري في المنشور 5. البوابات لا تعد بصفر هروب؛ بل تعد بحدّ أعلى مُحكَم وتعافٍ سريع لما يمر.

تحديد حجم أسطول التكامل المستمر — كيف تظلّ مجموعة الـ 12 دقيقة رخيصة

طبقة المجموعة الكاملة هي التي يجب أن تنجح فيها الرياضيات. التنفيذ الساذج يستدعي المُحكِّم مرّة لكل حالة لكل بُعد، ويُشغّلها بالتتابع، فتتناسب الفاتورة خطياً مع عدد الحالات. ثلاث تحسينات تقوم بمعظم العمل لإبقائها قابلة للإدارة:

ذاكرة تخزين مؤقتة للتضمينات. بصمة سياق الاسترجاع لكل حالة في مجموعة البيانات الذهبية تُجزَّأ؛ إن لم تتغيّر الحالة ولم يتغيّر فهرس الاسترجاع، فإن التضمين المخزَّن يصمد وتُتجاوز خطوة الاسترجاع. معدّل الإصابة بعد الأسبوع الثابت الأول يفوق باستمرار 90% في عمليات نشر العملاء لدينا.

تجميع المُحكِّم في دفعات. يُستدعى المُحكِّم المُعايَر بمخرجات مُهيكلة، يُجمَّع 8-16 حالة لكل استدعاء. تكلفة المُحكِّم لكل رمز تبقى كما هي؛ يهبط العبء لكل حالة لأن موجِّه النظام يُستهلَك على الدفعة. عتبة التجميع الآمن مضبوطة على توافق المُحكِّم المُعايَر عند حجم الدفعة ذاك[2] — نقيس هذا خلال جولة معايرة المُحكِّم الأسبوعية (المنشور 7).

إعادة استخدام ذاكرة KV عبر الحالات. للنماذج التي يَتصدّر فيها موجِّه النظام وتعريفات الأدوات نفسها كل استدعاء، تُحسب ذاكرة KV لذلك البادئة مرة واحدة لكل تشغيل مجموعة، لا مرة لكل حالة[3]. في عمليات نشر الأوزان المفتوحة هذا مباشر؛ في نماذج واجهات برمجة التطبيقات المغلقة يعتمد على دعم المزوّد للتخزين المؤقت للبادئة.

الأثر المُجمَّع يُهبِط المجموعة الكاملة تقريباً عند أرقام التكلفة المعروضة في رسم كعكة الطبقات أعلاه. الأرقام الدقيقة داخلية، لكن النسبة هي الادعاء العلني: ~74% من طلبات السحب تُنفق صفر دولار من المُحكِّم؛ ~22% تُنفق قروشاً؛ الـ 4% المتبقية تُنفق دولارين على الإشارة الأعلى ثقة قبل الإطلاق التي نعرف كيف نُنتجها.

التكامل المستمر الظلّي — شغّله دون كسر الفريق

الخطأ الواحد الذي رأينا الفرق ترتكبه أكثر من غيره هو قلب بوابة جديدة من “متوقفة” إلى “حاجبة” في اليوم الأول. ضُبطت العتبات على بيانات الأمس، ومعدّل الإيجابيات الكاذبة مجهول، وأول مرة تُطلق فيها البوابة لا يكون لدى الفريق معايرة لمعرفة ما إذا كانت حقيقية أم إنذاراً كاذباً. مُهندس التقييم المناوب يُنبَّه، تُعطَّل البوابة، تذهب الثقة، يموت المشروع.

العلاج هو التكامل المستمر الظلّي: شغّل البوابة الجديدة غير حاجبة لمدة أسبوعين، وانشر النتيجة كتعليق روبوت على كل طلب سحب، وراجع معدّل الإيجابيات الكاذبة أسبوعياً قبل قلبها إلى حاجبة. لدى مُشغّل التكامل المستمر في Divinci علم --shadow لهذا بالضبط. تعليق طلب السحب يبدو كنفس النسخة الحاجبة في النهاية — العرض نفسه للفرق، والتفصيل ذاته لكل شريحة — باستثناء أنه لا يحجب الدمج.

divinci ci run --layer=full --shadow --duration=14d --report-as=bot-comment

عندما يكون معدّل الإيجابيات الكاذبة دون 5% بشكل مستدام عبر النافذة، نقلبها. حين لا يكون كذلك، نُحكِم عتبات كل شريحة، ونُعيد معايرة المُحكِّم، ونُظلّل مرة أخرى. على كل حال، لم يُكمَن للفريق ببوابة جديدة تنطلق في اليوم الأول.

سير عمل GitHub Actions يتألّف فعلاً

القطعة التي تربط كعكة الطبقات بتكامل CI الخاص بك تعمل في .github/workflows/llm-ci.yaml. الطبقات مربوطة بحيث تفشل الرخيصة بسرعة ولا تعمل الباهظة إلا عند الحاجة — سلاسل needs: ومحفزات مُصفّاة بالمسار تقوم بالعمل[5].

name: LLM CI
on:
  pull_request:
    paths:
      - 'prompts/**'
      - 'config/models.yaml'
      - 'eval/**'
      - 'retrieval/**'
      - 'manifests/**'
jobs:
  contract:
    runs-on: ubuntu-latest
    timeout-minutes: 2
    steps:
      - uses: actions/checkout@v4
      - run: divinci ci contract --manifest manifests/staging.yaml --fail-fast
  smoke:
    needs: contract
    runs-on: ubuntu-latest
    timeout-minutes: 5
    steps:
      - uses: actions/checkout@v4
      - run: divinci ci run --layer=smoke --post-pr-comment
        env:
          DIVINCI_API_KEY: ${{ secrets.DIVINCI_API_KEY }}
  full:
    needs: smoke
    if: contains(steps.changes.outputs.paths, 'prompts/') || contains(steps.changes.outputs.paths, 'config/models.yaml')
    runs-on: ubuntu-latest
    timeout-minutes: 20
    steps:
      - uses: actions/checkout@v4
      - run: divinci ci run --layer=full --post-pr-comment --gate
        env:
          DIVINCI_API_KEY: ${{ secrets.DIVINCI_API_KEY }}

ثلاثة أشياء يجب ملاحظتها. تتسلسل الطبقات عبر needs:، فلا يعمل الاختبار السريع على عقد مكسور ولا تعمل المجموعة الكاملة على اختبار سريع مكسور. مهمة full مُصفّاة بالمسار للتغييرات التي تستحق فعلاً تشغيلاً مدته 12 دقيقة — إصلاح خطأ مطبعي في README لا يُطلق مجموعة البوابات. علم --post-pr-comment هو ما يجعل فرق كل شريحة مرئياً دون مغادرة GitHub.

حلقة تصحيح طلب السحب الفاشل

النصف الآخر من “أُطلقت البوابة” هو “أرني السبب”. مخرج مجموعة انحدار يقول الشريحة الطبية انخفض إنجاز المهمة 0.04 غير قابل للتنفيذ دون الحالات التي تسبّبت فيه. نُظهر أسوأ خمسة فروق لكل شريحة في تعليق طلب السحب، مع الإدخال الأصلي، والمخرج المرجعي، والمخرج المرشّح، وأثر تعليل المُحكِّم. حلقة التصحيح يفترض أن تستغرق ثواني، لا دقائق:

# اسحب الحالات الخمس الأسوأ التي أطلقت بوابة الشريحة الطبية على طلب السحب هذا
divinci ci diffs --pr 1247 --slice medical --dimension task_completion --top 5

هذه هي سطح التشخيص نفسه كـشجرة الخطوات السبع في المنشور 6، موصول بحلقة تغذية راجعة للتكامل المستمر. المُهندس الذي فتح طلب السحب يرى الدليل على مستوى الحالة في طلب السحب نفسه؛ لا يحتاج إلى الذهاب لفتح لوحة تقييم منفصلة.

انضباط التحكّم في الإصدارات — الموجِّهات ومجموعات البيانات والمُحكِّمون كشيفرة

تعيش قوالب الموجِّهات ومجموعات البيانات الذهبية وموجِّهات المُحكِّم جميعاً في المستودع، مُثبَّتة بالتجزئة في بيان الإصدار. البيان هو الكائن الوحيد الذي يربط المجموعة بحالة قابلة لإعادة الإنتاج محدّدة:

# manifests/staging.yaml — كل تشغيل CI يُجزّئ هذا
release_id: rel-staging
model:     { sha: 0c1f9…, weights: r2://models/custom-v7.2,  open_weights: true }
prompt:    { sha: c4a8e…, template: prompts/support/v3.4.j2 }
retrieval: { sha: b21f0…, index: r2://indices/kb-2026-04 }
judge:     { sha: d8e21…, rubric: eval/rubrics/v7.yaml }
dataset:   { sha: a90b1…, file:   eval/datasets/golden-2026-04.jsonl }

حين ينشر تشغيل CI درجة، تُوسَم الدرجة بتجزئة ذلك البيان. حين تتحرّك الدرجة، يكون لسؤال “أي إدخال تحرّك” إجابة مباشرة: قارن البيان، وتُخبرك الطبقة التي انطلقت بأي بُعد تنظر إليه أولاً. هذه هي الحلقة التي يُغلقها خط الأنابيب الرباعي للمنشور 1 وإيصال vindex من المنشور 4 معاً: البيان هو البدائي التدقيقي الذي تبني نحوه كل المنشورات الثمانية، بتأطيرات مختلفة.

ما لا يحلّه هذا

نفس القيود الثلاثة الصريحة التي كتبناها في كل منشور من هذه السلسلة.

  1. لا يختبر التكامل المستمر ما ليس في المجموعة. مهما كانت كعكة الطبقات بارعة، فالانحدارات الوحيدة التي تلتقطها هي تلك التي كانت حالة في مجموعة البيانات الذهبية ستُعلِّمها. طبقة إعادة التشغيل تُخفّف هذا لانجراف السلوك، لكن الاستعلامات الجديدة التي لم تُشاهد قط لا تزال تُفلت حتى تظهر في الإنتاج. على النظام أن يُقرَن بمراقبة الإنتاج.
  2. أرقام التكلفة تتحرّك مع تسعير النموذج. كل رقم تكلفة في هذا المنشور يعتمد على معدّلات رموز المُحكِّم، ومعدّلات التضمين، ومعدّلات الاستدلال التي تنجرف فصلياً. النسب — 74% / 22% / 4%، و31% / 27% / 28% / 11% / 3% — هي الادعاءات الحاملة؛ الأرقام بالدولار توضيحية لحظة في الزمن.
  3. تغييرات نقاط فحص الجانب المُزوِّد لا تزال صعبة. حين يُحدّث مزوّد API مغلق بصمت النموذج خلف اسم ثابت، لا تستطيع طبقة العقد التقاطه؛ مجموعة البوابات وحدها تستطيع، وفقط بعد الحقيقة. نُخفّف بتثبيت معرّفات نقاط فحص صريحة حيث يدعمها المزوّد، وبمعاملة يوم إعلان نقطة فحص كحدث مُحفّز لإعادة تأسيس مجموعة كاملة. لا نستطيع منع المشكلة الأساسية.

ختام السلسلة

هذا هو المنشور 8 من 8. القوس الكامل:

  1. كيف تبني خط أنابيب CI/CD لنماذج اللغة الكبيرة باستخدام Divinci AI — خط الأنابيب الرباعي (تسجيل / بوابة / إطلاق / مراقبة) الذي عاش فيه كل شيء منذ ذلك الحين.
  2. 10 إخفاقات إصدار CI/CD في نماذج اللغة المخصصة — أنماط الإخفاق المُسماة لعام 2026، كل واحد مُربط بالمرحلة التي كان ينبغي أن تلتقطه.
  3. 12 قدرة لضمان الجودة وإدارة الإصدار لنماذج اللغة الكبيرة — مصفوفة القدرات ومخطط فِن للمعسكرات الثلاثة الذي يضع Divinci مقابل البدائل.
  4. التحقق وإطلاق نماذج اللغة المخصصة في المجالات المُنظَّمة — الغوص العميق في الامتثال، تخطيط المُنظِّم إلى المرحلة، إيصالات vindex.
  5. خطوط أنابيب CI/CD لنماذج اللغة الكبيرة الآلية مع تراجع فوري — الطبقة التشغيلية، طيف الأتمتة، إيصال التراجع التلقائي.
  6. كيف تُشخّص إخفاقات ضمان جودة LLM المخصصة في 7 خطوات — شجرة قرار التشخيص؛ النموذج هو الإجابة الصحيحة في تنبيه واحد تقريباً من كل سبعة.
  7. اختبار الانحدار الآلي لنماذج اللغة الكبيرة المخصصة في 2026 — بوابات Spearman المُدركة للشرائح، مُحكِّمون مُعايَرون، إعادة تشغيل آثار الإنتاج بحلقة مغلقة.
  8. هذا المنشور. بنية التكامل المستمر التي تجعل كل ما سبق قابلاً للإدارة على كل طلب سحب.

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

الأسئلة الشائعة

ما هو أرخص اختبار يمكنني تشغيله على كل تثبيت؟

فحص تصيير قالب موجِّه. يعمل بالميلي ثانية، لا يتطلّب مُحكِّماً، يلتقط نسبة مفاجئة من الأعطال، ولا يكلّف أبداً سنتاً قابلاً للقياس. إن لم تكن تُشغّله بعد، فهو أعلى قطعة من حيث العائد على الاستثمار من قطع التكامل المستمر التي نعرف كيف نُوصي بها.

كم ينبغي أن أتوقّع أن يُكلّف خط أنابيب تكامل مستمر مخصص لنماذج اللغة الكبيرة؟

سنتات لكل طلب سحب نموذجي، ودولارات أحادية منخفضة لكل طلب سحب مرشّح للإصدار. تعتمد النسبة على تسعير المُحكِّم وعلى أي جزء من طلبات السحب لديك يلامس الموجِّهات أو إعداد النموذج. حصة الـ 4% لمرشّحات الإصدار أعلاه نموذجية؛ بالنسبة للمنتجات ذات تكرار الموجِّهات المتكرّر ترتفع الحصة ويرتفع المتوسط تبعاً لذلك.

هل ينبغي أن أُشغّل المجموعة الكاملة على كل تثبيت؟

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

كيف أُدخل بوابة جديدة دون كسر الجميع؟

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

ما هو الرقم الوحيد الذي ينبغي أن أتتبّعه إذا تتبّعت رقماً واحداً فقط؟

نسبة الانحدارات المؤكدة التي تُلتقط قبل الإنتاج. المُدرَّج التكراري في هذا المنشور يضع ذلك عند ~97% في عمليات نشر Divinci الناضجة. الـ 3% التي تُفلت هي سبب وجود التراجع الفوري. الـ 97% هي ما المجموعة من أجله.

المراجع

  1. DORA / Google Cloud. "Accelerate State of DevOps — سرعة CI، ومعدّل فشل التغيير، وزمن استعادة الخدمة." الأسس عبر الصناعات التي تجعل "12 دقيقة لكل طلب سحب بطيئة جداً" ادعاءً قابلاً للدفاع لا رأياً.
  2. Zheng وآخرون. "الحكم على LLM-as-a-Judge مع MT-Bench وChatbot Arena." arXiv:2306.05685. الدليل التجريبي على أن استدعاءات LLM-as-judge المُجمَّعة يمكن أن تحفظ المعايرة عند أحجام الدفعات المُستخدمة في طبقات الاختبار السريع والمجموعة الكاملة — السبب وراء قابلية تحقيق أرقام التكلفة في هذا المنشور.
  3. Pope وآخرون. "التوسيع الفعّال لاستدلال Transformer." arXiv:2211.05102. تقنيات إعادة استخدام ذاكرة KV ومشاركة البادئات المُستشهد بها في قسم تحديد حجم أسطول التكامل المستمر.
  4. Pan, Tianpan. "كذبة Semver: كيف عطّل تحديث LLM ثانوي الإنتاج." 29 أبريل 2026. نمط الإخفاق المُسمى لعام 2026 لمجموعات الانحدار الإجمالية فقط؛ السبب وراء كون كعكة طبقات التكامل المستمر مُدركة للشرائح طوال الطريق.
  5. GitHub. "GitHub Actions — تسلسل المهام بـ `needs:` والتنفيذ الشرطي." البدائي الذي يتألّف ضدّه ملف .yaml في هذا المنشور.
  6. Zhang وآخرون. "BERTScore: تقييم توليد النص بـ BERT." arXiv:1904.09675. مقياس التشابه الدلالي الاستدلالي المُشار إليه كبديل لـ LLM-as-judge للطبقات الأرخص؛ ليس ما نُشغّله في وقت البوابة، لكنه مُفيد في طبقة العقد لاكتشاف العبارات المحظورة على نطاق واسع.

هل أنت مستعد لبناء حل الذكاء الاصطناعي المخصص؟

اكتشف كيف يمكن لـ Divinci AI مساعدتك في تطبيق أنظمة RAG وأتمتة ضمان الجودة وتبسيط عملية تطوير الذكاء الاصطناعي.

ابدأ اليوم