<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://thakicloud.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://thakicloud.github.io/" rel="alternate" type="text/html" /><updated>2026-07-15T13:28:12+09:00</updated><id>https://thakicloud.github.io/feed.xml</id><title type="html">Thaki Cloud Tech Blog | ThakiCloud | 다키클라우드 기술 블로그</title><subtitle>Thaki Cloud (ThakiCloud, 다키클라우드, thaki cloud, THAKI CLOUD, ثاكي كلاود)는 AI/ML Engineering, LLMOps, DevOps 분야의 최신 기술과 실무 경험을 공유하는 전문 기술 블로그입니다. 머신러닝 모델 운영, 쿠버네티스, 클라우드 인프라, AI 엔지니어링 커리어, 인공지능 기술 블로그, 다키클라우드 개발 팀의 깊이 있는 인사이트를 제공합니다. مدونة تقنية متخصصة في هندسة الذكاء الاصطناعي والحوسبة السحابية.</subtitle><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;nil, &quot;bio&quot;=&gt;nil, &quot;location&quot;=&gt;&quot;Seoul, Korea&quot;, &quot;email&quot;=&gt;&quot;info@thakicloud.co.kr&quot;, &quot;uri&quot;=&gt;nil, &quot;home&quot;=&gt;nil, &quot;links&quot;=&gt;[{&quot;label&quot;=&gt;&quot;Website&quot;, &quot;icon&quot;=&gt;&quot;fas fa-fw fa-link&quot;, &quot;url&quot;=&gt;&quot;https://thakicloud.co.kr&quot;}, {&quot;label&quot;=&gt;&quot;GitHub&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-github&quot;, &quot;url&quot;=&gt;&quot;https://github.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><entry xml:lang="ar"><title type="html">تشريح عناقيد GPU وTPU: كيف يحدد الاتصال الجماعي سرعة التدريب الموزع</title><link href="https://thakicloud.github.io/ar/dev/collective-communication-clusters/" rel="alternate" type="text/html" title="تشريح عناقيد GPU وTPU: كيف يحدد الاتصال الجماعي سرعة التدريب الموزع" /><published>2026-07-15T00:00:00+09:00</published><updated>2026-07-15T00:00:00+09:00</updated><id>https://thakicloud.github.io/ar/dev/collective-communication-clusters</id><content type="html" xml:base="https://thakicloud.github.io/ar/dev/collective-communication-clusters/"><![CDATA[<h2 id="نظرة-عامة">نظرة عامة</h2>

<p>لقد مضى وقت طويل منذ أن كان من الممكن وضع نموذج لغوي كبير على GPU واحد. فالنماذج التي تحتوي على عشرات المليارات إلى تريليونات المعاملات (parameters) تُقسّم على عشرات إلى آلاف المسرّعات (accelerators)، وفي كل خطوة تدريب يجب على هذه المسرّعات أن توائم نتائجها مع بعضها البعض. هذه العملية من “المواءمة المتبادلة” هي بالضبط ما يُعرف بالاتصال الجماعي (collective communication)، والنقطة التي تستهلك الوقت فعلياً في التدريب الموزع الحديث غالباً ما تكون هذا الاتصال وليست عمليات ضرب المصفوفات.</p>

<p>هذا المقال موجّه لمهندسي البنية التحتية الذين يدرّبون أو يقدّمون النماذج على عناقيد GPU أو TPU، ولمن يتحمل مسؤولية تكلفة التقديم (serving) وقابلية التوسع. ننطلق من التحليل المعمّق الشهير الذي كتبه Aleksa Gordić بعنوان “Inside TPU and GPU Clusters: The Anatomy of Collective Communication”، ونعيد التحقق من المفاهيم الأساسية التي يتناولها بالرجوع إلى مراجع قياسية (مثل NCCL وورقة TPU v4).</p>

<p>نبدأ برسالة أساسية موجزة. أولاً، يمكن اختزال أداء التدريب الموزع في عدد قليل من عمليات الاتصال الجماعي. ثانياً، حتى العملية نفسها تختلف تكلفتها اختلافاً جذرياً بحسب البنية الطوبولوجية الفيزيائية التي تعمل عليها (بنية NVIDIA القائمة على المفاتيح switch مقابل بنية Google القائمة على التوروس). ثالثاً، استراتيجية التوازي (parallelism) المُختارة هي التي تحدد أي عملية جماعية تُستدعى ومدى تكرارها. وفهم هذه العناصر الثلاثة يوضح لماذا يؤثر مكان وكيفية توزيع عدد من وحدات GPU تأثيراً كبيراً على الأداء.</p>

<h2 id="ما-هو-الاتصال-الجماعي">ما هو الاتصال الجماعي؟</h2>

<p>العملية الجماعية هي نمط اتصال يشارك فيه عدد من العمليات (غالباً واحدة لكل مسرّع) معاً. فإذا كان الاتصال من نقطة إلى نقطة (P2P) هو أن يرسل طرف واحد بيانات إلى طرف آخر، فإن العملية الجماعية تعني أن المجموعة بأكملها تقسّم البيانات وتجمعها وفق قاعدة محددة. وفيما يلي أبرز العمليات التي تتكرر في التدريب الموزع.</p>

<ul>
  <li><strong>All-reduce</strong>: يقوم جميع المشاركين بجمع (أو أخذ متوسط) التنسور (tensor) الذي يملكه كل منهم عنصراً بعنصر، ثم تُعاد النتيجة إلى الجميع. وهذه هي العملية المستخدمة تحديداً لمواءمة التدرجات (gradients) في التدريب الموازي للبيانات (data parallel).</li>
  <li><strong>Reduce-scatter</strong>: يُحسب المجموع، لكن النتيجة لا يحتفظ بها طرف واحد بالكامل، بل تُقسّم إلى أجزاء يوزَّع كل جزء منها على طرف مختلف.</li>
  <li><strong>All-gather</strong>: تُجمع الأجزاء التي يملكها كل طرف بحيث يحصل الجميع على النسخة الكاملة. وهي العملية المقابلة لـ reduce-scatter، وعند ضمهما معاً ينتج all-reduce.</li>
  <li><strong>All-to-all</strong>: يرسل كل مشارك جزءاً مختلفاً من البيانات إلى كل واحد من المشاركين الآخرين. وهو نمط أقرب إلى النقل المقلوب (transpose)، وهو محوري في تمرير الرموز (tokens) إلى الخبراء (experts) في نماذج مزيج الخبراء (Mixture of Experts, MoE).</li>
  <li><strong>Broadcast / Reduce</strong>: عمليتان أحادّيتا الاتجاه، إما أن يبثّ طرف واحد نفس البيانات للجميع، أو أن تُجمَع بيانات الجميع وتُختزل عند طرف واحد.</li>
</ul>

<p>هناك ملاحظة مهمة هنا وهي أن all-reduce ليست عملية ذرية (atomic) بحد ذاتها. فهي تتحلل إلى <strong>reduce-scatter يليها all-gather</strong>. وهذا التحلل هو الأساس الذي تُبنى عليه معادلة التكلفة التي سنتناولها لاحقاً.</p>

<pre><code class="language-mermaid">flowchart TB
    A["كل مسرّع: تدرج/تنسور محلي"] --&gt; B["Reduce-scatter&lt;br/&gt;توزيع المجموع على شكل أجزاء"]
    B --&gt; C["All-gather&lt;br/&gt;استعادة الأجزاء لدى الجميع"]
    C --&gt; D["اكتمال All-reduce&lt;br/&gt;يمتلك الجميع المجموع نفسه"]
    A --&gt; E["All-to-all&lt;br/&gt;توجيه رموز MoE"]
    A --&gt; F["Broadcast/Reduce&lt;br/&gt;توزيع/تجميع أحادي الاتجاه"]
</code></pre>

<h2 id="البنية-الفيزيائية-لعناقيد-gpu">البنية الفيزيائية لعناقيد GPU</h2>

<p>يسهل فهم عناقيد NVIDIA إذا نظرنا إليها كطبقتين: داخل العقدة (node) الواحدة (scale-up)، وبين العقد (scale-out).</p>

<p>داخل العقدة، تربط <strong>NVLink</strong> و<strong>NVSwitch</strong> وحدات GPU ببعضها بكثافة عالية. فوحدات GPU الثماني مثلاً الموجودة داخل خادم واحد تُربط عبر NVSwitch بشكل شبه متصل بالكامل (fully connected)، بحيث يتواصل أي GPU مع أي GPU آخر بعرض نطاق ترددي (bandwidth) عالٍ وموحّد. وهذا هو سبب حصر الأعمال التي تتطلب اتصالاً متكرراً جداً، مثل التوازي التنسوري (tensor parallelism)، داخل هذا النطاق.</p>

<p>أما بين العقد، فتُستخدم شبكة من نوع ورقة الشجرة السمينة (leaf-spine / fat-tree) مبنية على <strong>InfiniBand</strong> أو <strong>RoCE</strong> (RDMA over Converged Ethernet). وهذه النسيجة الموسّعة (scale-out fabric) تربط وحدات GPU عبر الرفوف (racks) والخوادم. ومن التصاميم الشائعة هنا الطوبولوجيا المحسّنة بالمسارات (rail-optimized)، حيث يُربط منفذ الشبكة (NIC) بنفس الترتيب في كل عقدة بنفس المفتاح (“المسار” أو rail)، بحيث تمر عملية all-reduce بين العقد بأقل قدر ممكن من طبقة العمود الفقري (spine).</p>

<p>وهذه المرونة لها ثمن. فآلاف المفاتيح (switches) اللازمة للتوسع الأفقي (scale-out) تستهلك ما يقارب 5 إلى 10 بالمئة من إجمالي طاقة العنقود [تقديري وقد يختلف بحسب التهيئة]، وتتطلب نفقات رأسمالية كبيرة. أي أن نهج NVIDIA، بدلاً من الاكتفاء بجعل “أي GPU يتواصل جيداً مع أي GPU آخر”، يشتري هذا التجانس عبر مفاتيح تعالج الحزم (packets) بشكل فعّال.</p>

<h2 id="الخيار-المختلف-لعناقيد-tpu">الخيار المختلف لعناقيد TPU</h2>

<p>تسلك Google في وحدات TPU مساراً مختلفاً تماماً. فبدلاً من نسيجة مفاتيح فعّالة، تُربط شرائح TPU مباشرة بجاراتها عبر رابط عالي السرعة مخصص يُسمى <strong>ICI</strong> (Inter-Chip Interconnect). في الجيل الأحدث، تمتد روابط ICI من كل شريحة في ست اتجاهات (X موجب، X سالب، Y موجب، Y سالب، Z موجب، Z سالب) لتشكّل شبكة <strong>توروس ثلاثي الأبعاد (3D torus)</strong> (أما الأجيال الأولى فكانت تستخدم توروس ثنائي الأبعاد لتشكيل “pod” بسعة 256 شريحة). وبما أن الاتصال يتم مباشرة مع الجيران فقط، فإن طبقة المفاتيح تختفي في معظمها.</p>

<p>يبقى سؤال: كيف تُربط الشرائح البعيدة عن بعضها، أو ما هو أكبر من حجم الـ pod؟ هنا يظهر <strong>مفتاح الدارة الضوئية (OCS, Optical Circuit Switch)</strong>. وبحسب ورقة TPU v4 البحثية، يعمل OCS عبر إعادة توجيه ألياف ضوئية باستخدام مرايا MEMS، أي أنه لا يفسّر الإشارة الضوئية بشكل فعّال بل يكتفي بعكسها. وبفضل ذلك يمكن ربط ما يصل إلى 4096 شريحة بطريقة قابلة لإعادة التشكيل، بينما لا يستهلك سوى طاقة قليلة جداً مقارنة بمفاتيح InfiniBand، لأن الطاقة تُستخدم فقط للحفاظ على اتجاه المرايا. كما يمكن لف أحد محاور التوروس ضوئياً، أو إعادة توجيه الطوبولوجيا برمجياً لتجاوز عقدة معطوبة.</p>

<p>باختصار، تستثمر عناقيد GPU في مفاتيح فعّالة من أجل وصول موحّد، بينما تعتمد عناقيد TPU على توروس متصل مباشرة بالجيران مع إعادة تشكيل ضوئية لتوفير الطاقة والتكلفة. ولا يتفوق أي من الخيارين على الآخر بشكل مطلق. فالتوروس مثالي للاتصال مع الجيران لكنه يحتاج قفزات (hops) أكثر للاتصال البعيد العشوائي، بينما نسيجة المفاتيح موحّدة لكنها مكلفة وتستهلك طاقة أكبر.</p>

<h2 id="كيف-تُترجم-العمليات-الجماعية-إلى-استراتيجيات-التوازي">كيف تُترجم العمليات الجماعية إلى استراتيجيات التوازي</h2>

<p>أي عملية جماعية تُستدعى وبأي وتيرة، يتحدد في النهاية بنوع التوازي المُستخدم.</p>

<ul>
  <li><strong>التوازي البياني (Data Parallel, DP)</strong>: تعالج كل نسخة (replica) دفعة (batch) مختلفة، ثم تُوائَم التدرجات عبر <strong>all-reduce</strong>. وحجم الاتصال يتناسب مع حجم النموذج ويحدث مرة واحدة في كل خطوة.</li>
  <li><strong>التوازي البياني الكامل التشظّي (FSDP/ZeRO)</strong>: تُقسّم المعاملات (parameters) إلى أجزاء توزَّع بين المسرّعات، ثم قبل التمرير الأمامي (forward pass) مباشرة تُجمع المعاملات اللازمة عبر <strong>all-gather</strong>، وبعد التمرير الخلفي (backward pass) تُعاد تشظية التدرجات عبر <strong>reduce-scatter</strong>. توفر هذه الطريقة الذاكرة لكنها تزيد من تكرار الاتصال.</li>
  <li><strong>التوازي التنسوري (Tensor Parallel, TP)</strong>: تُقسَّم عملية طبقة واحدة على عدة وحدات GPU، وعند حدود كل طبقة تُدمج النتائج عبر <strong>all-reduce</strong> أو من خلال all-gather/reduce-scatter. والاتصال هنا متكرر للغاية، لذا يكاد يكون حصره داخل نطاق NVLink المذكور سابقاً أمراً ضرورياً.</li>
  <li><strong>التوازي عبر خطوط الأنابيب (Pipeline Parallel, PP)</strong>: يُقسَّم النموذج على مستوى الطبقات وتُوزَّع على وحدات GPU مختلفة، وتُنقل القيم المفعّلة (activations) بين المراحل غالباً عبر اتصال <strong>P2P</strong>. وهنا يسود الاتصال من نقطة إلى نقطة بدلاً من العمليات الجماعية.</li>
  <li><strong>التوازي على مستوى الخبراء (Expert Parallel, EP/MoE)</strong>: يجب إرسال الرموز (tokens) إلى المسرّع الذي يستضيف الخبير المعني، لذا فإن <strong>all-to-all</strong> هو جوهر هذا النوع. وعدد أزواج الاتصال في all-to-all يزداد تربيعياً مع زيادة عدد المشاركين، ما يجعله حساساً بشكل خاص للطوبولوجيا.</li>
</ul>

<p>في الممارسة العملية تُستخدم هذه الأنواع مجتمعة. فمثلاً يُصمَّم التوزيع بحيث يُوضع TP داخل نطاق NVLink في العقدة الواحدة، وتُنقل عمليات all-reduce الخاصة بـ DP عبر InfiniBand بين العقد، ويربط PP بين هذه الأجزاء. وإذا أُسيء التوزيع، فقد يتسرب اتصال التوازي التنسوري المتكرر إلى رابط أبطأ بين العقد، مما يبطئ التدريب بأكمله.</p>

<h2 id="القاعدة-التي-تحكم-الأداء-الحلقة-والشجرة">القاعدة التي تحكم الأداء: الحلقة والشجرة</h2>

<p>توجد خوارزميات متعددة لتنفيذ العمليات الجماعية فعلياً، لكن الأشهر من منظور عرض النطاق الترددي هي <strong>all-reduce الحلقي (ring all-reduce)</strong>. حيث يُربط المشاركون في شكل دائري واحد، وفي كل خطوة يُرسل كل طرف جزءه إلى الجار التالي، وتُنفَّذ عمليتا reduce-scatter وall-gather كل منهما عبر N-1 خطوة.</p>

<p>ومن المعروف أن إجمالي حجم البيانات التي يحملها كل رابط يُحسب تقريباً على النحو التالي. عند تنفيذ all-reduce لتنسور بحجم S عبر N مشارك، تكون حركة المرور لكل رابط تقريباً</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>2 × (N − 1) / N × S
</code></pre></div></div>

<p>وذلك لأن (N−1)/N × S تتدفق في مرحلة reduce-scatter، ومثلها مرة أخرى في مرحلة all-gather. والخاصية المهمة هنا أن (N−1)/N تقترب من 1 كلما كبر N، أي أن حركة المرور لكل رابط تستقر عند نحو 2S تقريباً. لهذا السبب يُوصف ring all-reduce بأنه أمثل من حيث عرض النطاق الترددي (bandwidth-optimal)، وهو ما استخدمته مكتبات مثل NCCL وGloo لفترة طويلة.</p>

<p>المشكلة تكمن في زمن الوصول (latency). فالحلقة تمر عبر N−1 خطوة بشكل متسلسل، لذا فإن زمن الوصول الثابت (α) المرتبط بكل خطوة يتراكم بما يتناسب مع عدد المشاركين. فإذا نفّذت أعداد كبيرة جداً من العقد عملية all-reduce على تنسور صغير، يتبقى عرض النطاق الترددي فائضاً بينما يصبح زمن الوصول هو عنق الزجاجة. لهذا السبب تختار المكتبات الفعلية تلقائياً بين خوارزميات الحلقة والشجرة (أو الهرمية) بحسب حجم التنسور وعدد العقد. فطريقة الشجرة تقلّل زمن الوصول ليقترب من log(N)، لكنها تتنازل عن جزء من كفاءة عرض النطاق الترددي. وهذا هو سبب اختيار NCCL خوارزميات مختلفة بحسب حجم الرسالة.</p>

<p>والدلالة العملية لهذه القاعدة واضحة: عند تغيير حجم الدفعة (batch)، أو حجم النموذج، أو عدد العقد، ينتقل عنق الزجاجة المهيمن بين عرض النطاق الترددي وزمن الوصول. ولهذا لا يمكن الافتراض، من دون قياس فعلي، أن “مضاعفة عدد العقد يعني مضاعفة السرعة”.</p>

<h2 id="دلالات-تطبيقية-على-منتجات-thakicloud">دلالات تطبيقية على منتجات ThakiCloud</h2>

<p>هذا الموضوع يلامس جوهر البنية التحتية، وهو ذو أهمية عملية خاصة من منظور <strong>ai-platform</strong> التابعة لـ ThakiCloud (بنية تحتية لـ AI/ML كخدمة SaaS قائمة على K8s).</p>

<p>أولاً، <strong>الجدولة الواعية بالطوبولوجيا (topology-aware scheduling)</strong>. تستخدم ai-platform أداة Kueue لجدولة أعباء عمل GPU، ومبدأ التوزيع الذي يضع مهام التوازي التنسوري داخل نطاق NVLink نفسه (أي العقدة نفسها)، ويوجّه عمليات all-reduce الخاصة بالتوازي البياني عبر روابط بين العقد محسّنة بالمسارات (rail-optimized)، يتطابق تماماً مع خصائص الاتصال الجماعي التي عرضناها في هذا المقال. فمعرفة أي عملية جماعية تسري عبر أي رابط هي ما يجعل توزيع المهام يُترجَم فعلياً إلى أداء.</p>

<p>ثانياً، <strong>التوازي التنسوري في التقديم (serving)</strong>. عند تقديم نموذج كبير عبر عدة وحدات GPU بتوازٍ تنسوري باستخدام محرّك مثل vLLM، تحدث عملية all-reduce في كل طبقة. وإذا وُزِّعت الحاويات (pods) بحيث يبقى هذا الاتصال داخل نطاق NVLink، يسهل الحفاظ على هدف زمن الوصول، أما إذا تجاوز حدود العقدة فإن زمن الوصول لكل رمز (token) يزداد بشكل ملحوظ. وفي بيئة متعددة المستأجرين (multi-tenant)، ينعكس هذا الانضباط في التوزيع مباشرة على تكلفة التقديم واتفاقيات مستوى الخدمة (SLA).</p>

<p>ثالثاً، <strong>جدوى التكلفة في السحابة المحلية والسيادية (on-prem/sovereign cloud)</strong>. حقيقة أن مفاتيح شبكة GPU تستهلك حصة كبيرة من الطاقة تعني أنه عند تصميم عنقود في بيئة داخلية أو سيادية محلية، لا تُعد الشبكة عنصراً ثانوياً، بل متغيراً محورياً في إجمالي تكلفة الملكية (TCO). والاستضافة الذاتية (self-hosting) وكفاءة التكلفة التي تسعى إليها ThakiCloud لا تقوم إلا على قرارات تصميم شبكي من هذا النوع.</p>

<p>وهناك أيضاً نقطة تقاطع مع منتج تنسيق الوكلاء (agent orchestration) <strong>Paxis</strong>. ففي سياق تنسيق مهام التدريب الموزع والاستدلال (inference) الكبير عبر رسم بياني موجّه غير دوري (DAG) وتنفيذها بعزل، فإن فهم البروفايل الاتصالي لكل عملية جماعية تستدعيها كل مرحلة يتيح تصميماً أدق لحجز الموارد وبوابات السياسات. لكن ثقل هذا المقال ينصبّ على طبقة البنية التحتية، لذا يبقى منظور ai-platform هو المحور الرئيسي.</p>

<h2 id="القيود-والاعتراضات">القيود والاعتراضات</h2>

<p>هذا الطرح ليس بلا اعتراضات. أولاً، توفّر أطر العمل تجريداً (abstraction) كبيراً للعمليات الجماعية. فعند استخدام واجهات برمجة عليا مثل PyTorch أو JAX، تتم معظم قرارات التوزيع تلقائياً داخل المكتبة والمجدول (scheduler)، ولا يحتاج مطوّر التطبيق لمعرفة هذه التفاصيل. وعليه، فإن السؤال “هل يجب على كل فريق أن يعرف معادلات التوروس والحلقة؟” يكون جوابه أقرب إلى لا.</p>

<p>غير أن هذا التجريد ينهار في اللحظة التي يصبح فيها الأداء مشكلة. فعندما يكون التدريب أبطأ من المتوقع أو يتذبذب زمن وصول التقديم، فإن إيجاد السبب يتطلب في النهاية معرفة أي عملية جماعية تسري عبر أي رابط. فالتجريد مريح على المسار الطبيعي، لكنه يتحول إلى تجريد “متسرّب” (leaky abstraction) عند تشخيص عنق الزجاجة.</p>

<p>كما أن القواعد التي عرضها هذا المقال تتغير باستمرار مع كل جيل من الأجهزة. فعرض النطاق الترددي لـ NVLink وInfiniBand، وعدد روابط ICI في TPU، وحجم OCS، تختلف من جيل إلى آخر، لذا يجب دائماً التحقق من الأرقام الدقيقة عبر المصادر الرسمية الخاصة بكل جيل. توفر معادلات هذا المقال وبنيته إطاراً للتفكير، لكن القرار الإنتاجي يجب أن يُحسم عبر قياسات فعلية (benchmark). وأخيراً، تبقى الفجوة بين البرمجيات والأجهزة واقعاً قائماً، فحتى الطوبولوجيا المثلى نظرياً تصبح عديمة الجدوى إذا لم تستطع النواة (kernel) ومكتبة الاتصال استغلالها بالكامل.</p>

<h2 id="المصادر">المصادر</h2>

<ul>
  <li>Aleksa Gordić، “Inside TPU and GPU Clusters: The Anatomy of Collective Communication”: https://www.aleksagordic.com/blog/collective-operations</li>
  <li>وثائق NVIDIA NCCL ونموذج تكلفة اتصال ring all-reduce (reduce-scatter + all-gather، الأمثلية من حيث عرض النطاق الترددي)</li>
  <li>ورقة Google TPU v4 البحثية، “TPU v4: An Optically Reconfigurable Supercomputer for Machine Learning with Hardware Support for Embeddings” (توروس ICI ثلاثي الأبعاد، OCS): https://arxiv.org/abs/2304.01433</li>
</ul>]]></content><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;nil, &quot;bio&quot;=&gt;nil, &quot;location&quot;=&gt;&quot;Seoul, Korea&quot;, &quot;email&quot;=&gt;&quot;info@thakicloud.co.kr&quot;, &quot;uri&quot;=&gt;nil, &quot;home&quot;=&gt;nil, &quot;links&quot;=&gt;[{&quot;label&quot;=&gt;&quot;Website&quot;, &quot;icon&quot;=&gt;&quot;fas fa-fw fa-link&quot;, &quot;url&quot;=&gt;&quot;https://thakicloud.co.kr&quot;}, {&quot;label&quot;=&gt;&quot;GitHub&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-github&quot;, &quot;url&quot;=&gt;&quot;https://github.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="dev" /><category term="dev" /><category term="distributed-training" /><category term="gpu" /><category term="tpu" /><category term="nccl" /><category term="nvlink" /><category term="infiniband" /><category term="kubernetes" /><category term="self-hosting" /><category term="paxis" /><summary type="html"><![CDATA[عند تدريب أو تقديم نموذج كبير موزّع على عدة مسرّعات، لا تكون عملية الحساب هي عنق الزجاجة الحقيقي، بل البيانات المتنقلة بين المسرّعات. يشرح هذا المقال ماهية العمليات الجماعية (collective operations) مثل all-reduce وall-gather وreduce-scatter وall-to-all، وكيف تعمل هذه العمليات فوق بنيتين فيزيائيتين مختلفتين تماماً: عناقيد GPU (عبر NVLink وNVSwitch وInfiniBand) وعناقيد TPU (عبر توروس ICI ثلاثي الأبعاد ومفاتيح الدارة الضوئية). من معادلة تكلفة عرض النطاق الترددي في ring all-reduce إلى العمليات الجماعية التي يستدعيها كل من التوازي البياني والتنسوري وخطوط الأنابيب والتوازي على مستوى الخبراء، يتناول المقال هذه الموضوعات من منظور ThakiCloud القائم على تشغيل بنية تحتية لوحدات GPU.]]></summary></entry><entry xml:lang="en"><title type="html">The Anatomy of GPU and TPU Clusters: How Collective Communication Determines the Speed of Distributed Training</title><link href="https://thakicloud.github.io/en/dev/collective-communication-clusters/" rel="alternate" type="text/html" title="The Anatomy of GPU and TPU Clusters: How Collective Communication Determines the Speed of Distributed Training" /><published>2026-07-15T00:00:00+09:00</published><updated>2026-07-15T00:00:00+09:00</updated><id>https://thakicloud.github.io/en/dev/collective-communication-clusters</id><content type="html" xml:base="https://thakicloud.github.io/en/dev/collective-communication-clusters/"><![CDATA[<h2 id="overview">Overview</h2>

<p>It has been a while since large language models could fit on a single GPU. Models with tens of billions to trillions of parameters are split across tens or thousands of accelerators, and at every training step those accelerators have to reconcile each other’s results. This “reconciling” process is collective communication, and in most modern distributed training workloads, the thing that actually eats up time isn’t matrix multiplication, it’s this communication.</p>

<p>This post is for infrastructure engineers training or serving models on GPU or TPU clusters, and for anyone responsible for serving cost and scalability. It takes Aleksa Gordic’s widely read deep dive, “Inside TPU and GPU Clusters: The Anatomy of Collective Communication,” as a starting point, and cross-checks the core concepts against standard references (NCCL, the TPU v4 paper, and so on) along the way.</p>

<p>Here’s the headline summary up front. First, the performance of distributed training reduces down to a handful of collective operations. Second, the cost of the same operation changes completely depending on the physical topology it runs on (NVIDIA’s switch-based fabric versus Google’s torus structure). Third, which parallelism strategy you use determines which collectives get called, and how often. Understanding these three points explains why placing a handful of GPUs in a particular arrangement has such an outsized effect on performance.</p>

<h2 id="what-collective-communication-actually-is">What Collective Communication Actually Is</h2>

<p>A collective operation is a communication pattern that multiple processes (typically one per accelerator) participate in together. Where point-to-point (P2P) communication is one process sending to another single process, a collective has the whole group split and merge data according to a shared rule. A few of these show up over and over in distributed training:</p>

<ul>
  <li><strong>All-reduce</strong>: every participant’s tensor is reduced element-wise (summed or averaged), and the result is sent back to everyone. This is the exact operation used to reconcile gradients in data-parallel training.</li>
  <li><strong>Reduce-scatter</strong>: a sum is computed, but instead of one participant holding the whole result, it’s split into chunks that get distributed across participants.</li>
  <li><strong>All-gather</strong>: each participant’s chunk is collected so that everyone ends up with the full set. This is the counterpart to reduce-scatter, and chaining the two together produces an all-reduce.</li>
  <li><strong>All-to-all</strong>: every participant sends a different chunk of data to every other participant. This pattern is close to a transpose, and it’s central to routing tokens to experts in mixture-of-experts (MoE) models.</li>
  <li><strong>Broadcast / Reduce</strong>: one-directional operations where one participant sends the same data to everyone, or everyone’s data is collected and reduced down to one participant.</li>
</ul>

<p>One key insight here is that all-reduce is not an atomic operation. All-reduce decomposes into a <strong>reduce-scatter followed by an all-gather</strong>. This decomposition is the root of the cost formula we’ll get to later.</p>

<pre><code class="language-mermaid">flowchart TB
    A["Each accelerator: local gradient/tensor"] --&gt; B["Reduce-scatter&lt;br/&gt;Sum split into chunks"]
    B --&gt; C["All-gather&lt;br/&gt;Chunks restored to everyone"]
    C --&gt; D["All-reduce complete&lt;br/&gt;Everyone holds the same sum"]
    A --&gt; E["All-to-all&lt;br/&gt;MoE token routing"]
    A --&gt; F["Broadcast/Reduce&lt;br/&gt;One-directional distribute/aggregate"]
</code></pre>

<h2 id="the-physical-structure-of-gpu-clusters">The Physical Structure of GPU Clusters</h2>

<p>It’s easiest to think of an NVIDIA-based cluster as two layers: within a node (scale-up) and between nodes (scale-out).</p>

<p>Within a node, <strong>NVLink</strong> and <strong>NVSwitch</strong> tie the GPUs together tightly. The eight or so GPUs inside a single server are wired through NVSwitch into something close to a full mesh, communicating at uniformly high bandwidth from any GPU to any other. This is exactly why work with extremely frequent communication, like tensor parallelism, gets confined inside this domain.</p>

<p>Between nodes, a leaf-spine (fat-tree) network built on <strong>InfiniBand</strong> or <strong>RoCE</strong> (RDMA over Converged Ethernet) is used. This scale-out fabric connects GPUs across racks and servers. A design that shows up often here is the rail-optimized topology: the same-numbered NIC on each node is attached to the same switch (a “rail”), so that inter-node all-reduce traffic passes through fewer hops at the spine layer.</p>

<p>That flexibility comes at a cost. The thousands of switches a scale-out fabric requires can consume roughly 5 to 10 percent of a cluster’s total power [the estimated range varies by configuration], and they demand significant capital expenditure. In other words, instead of relying on any GPU being able to talk cleanly to any other GPU by default, NVIDIA’s approach buys that uniformity by paying for switches that actively process packets.</p>

<h2 id="tpu-clusters-take-a-different-path">TPU Clusters Take a Different Path</h2>

<p>Google’s TPUs go a completely different route. Rather than an active switching fabric, TPU chips connect directly to their neighbors over a dedicated high-speed link called <strong>ICI (Inter-Chip Interconnect)</strong>. In the latest generation, each chip extends ICI links in six directions, plus and minus X, Y, and Z, forming a <strong>3D torus</strong> lattice (earlier generations used a 2D torus to build pods of 256 chips). Because chips only connect directly to their neighbors, most of the switching layer disappears.</p>

<p>That raises an obvious question: how do you connect chips that are far apart, or scale beyond a single pod? This is where the <strong>optical circuit switch (OCS)</strong> comes in. According to the TPU v4 paper, an OCS reconfigures optical fibers using MEMS mirrors rather than actively interpreting the optical signal, it just reflects it. That lets it reconfigurably connect up to 4096 chips while consuming far less power than an InfiniBand switch, since power is only needed to hold the mirror positions in place. It also allows one axis of the torus to be optically wrapped around, or lets the topology be rewired in software to route around a failed node.</p>

<p>Put simply, GPU clusters invest in active switches to buy uniform access, while TPU clusters lean on a neighbor-direct torus plus optical reconfiguration to save on power and cost. Neither approach is unconditionally superior. A torus is optimal for neighbor-to-neighbor traffic but adds hops for arbitrary long-distance communication, while a switch fabric is uniform but expensive and power-hungry.</p>

<h2 id="how-collectives-map-to-parallelism-strategies">How Collectives Map to Parallelism Strategies</h2>

<p>Which collective gets called, and how often, ultimately comes down to which parallelism strategy is in use.</p>

<ul>
  <li><strong>Data parallelism (DP)</strong>: each replica processes a different batch, then gradients are reconciled with <strong>all-reduce</strong>. Communication volume scales with model size and happens once per step.</li>
  <li><strong>Fully sharded data parallelism (FSDP/ZeRO)</strong>: parameters are sharded and held in pieces, gathered with <strong>all-gather</strong> right before the forward pass, and split back apart with <strong>reduce-scatter</strong> after the backward pass. It saves memory at the cost of more frequent communication.</li>
  <li><strong>Tensor parallelism (TP)</strong>: a single layer’s computation is split across multiple GPUs, and the results are merged at each layer boundary with <strong>all-reduce</strong> or all-gather/reduce-scatter. Communication is extremely frequent, which is why confining it inside the NVLink domain mentioned earlier is practically mandatory.</li>
  <li><strong>Pipeline parallelism (PP)</strong>: the model is sliced by layer and distributed across different GPUs, and activations are handed off between stages mostly via <strong>P2P</strong> transfers. Point-to-point communication dominates rather than collectives.</li>
  <li><strong>Expert parallelism (EP/MoE)</strong>: tokens have to be routed to the accelerator holding the relevant expert, so <strong>all-to-all</strong> is central. As the number of participants grows, the number of communication pairs in an all-to-all grows quadratically, making it especially sensitive to topology.</li>
</ul>

<p>In practice, these strategies are layered on top of each other. For example, a typical layout places TP inside a node’s NVLink, DP’s all-reduce over the inter-node InfiniBand, and PP spanning across both. Get the placement wrong, and frequent tensor-parallel communication leaks onto the slower inter-node links, slowing down the entire training run.</p>

<h2 id="the-rule-that-governs-performance-rings-and-trees">The Rule That Governs Performance: Rings and Trees</h2>

<p>There are several algorithms for actually implementing a collective, but from a bandwidth perspective, the best known is <strong>ring all-reduce</strong>. Participants are connected in a single ring, and at each step each one passes its chunk to its next neighbor, carrying out reduce-scatter and all-gather each over N-1 steps.</p>

<p>The total amount of data carried on each link works out to a well-known formula. For an all-reduce of a tensor of size S across N participants, the traffic per link is approximately:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>2 x (N - 1) / N x S
</code></pre></div></div>

<p>That’s because (N-1)/N x S flows during reduce-scatter, and another (N-1)/N x S flows during all-gather. The key property here is that as N grows, (N-1)/N converges toward 1, so traffic per link flattens out to roughly 2S. This is why ring all-reduce is called bandwidth-optimal, and it’s why libraries like NCCL and Gloo have relied on it for a long time.</p>

<p>The problem is latency. A ring has to traverse N-1 sequential steps, so the fixed per-step latency (alpha) accumulates in proportion to the number of participants. When a lot of nodes are doing an all-reduce on a small tensor, bandwidth is left on the table while latency becomes the bottleneck. That’s why real libraries automatically choose between ring and tree (or hierarchical) algorithms depending on tensor size and node count. Tree algorithms bring latency down closer to log(N) at the cost of some bandwidth efficiency, which is why NCCL selects different algorithms depending on message size.</p>

<p>The practical implication of this rule is clear. As you change batch size, model size, and node count, the dominant bottleneck shifts back and forth between bandwidth and latency. That’s exactly why you can’t assume “doubling the number of nodes doubles the speed” without benchmarking it.</p>

<h2 id="implications-for-thakiclouds-products">Implications for ThakiCloud’s Products</h2>

<p>This topic touches the heart of infrastructure, which makes it especially practical from the perspective of ThakiCloud’s <strong>ai-platform</strong> (our Kubernetes-based AI/ML SaaS infrastructure).</p>

<p>First, <strong>topology-aware scheduling</strong>. ai-platform schedules GPU workloads with Kueue, and the placement principle of keeping tensor-parallel jobs inside the same NVLink domain (the same node) while routing a data-parallel job’s all-reduce over rail-optimized inter-node links lines up exactly with the communication characteristics of the collectives covered here. You need to know which collective flows over which link before job placement can translate into performance.</p>

<p>Second, <strong>tensor parallelism in serving</strong>. When a large model is served across multiple GPUs with tensor parallelism using an engine like vLLM, an all-reduce fires at every layer. Placing pods so that this communication stays inside NVLink makes it much easier to hit latency targets, and crossing a node boundary noticeably raises per-token latency. In a multi-tenant environment, this kind of placement discipline translates directly into serving cost and SLA outcomes.</p>

<p>Third, <strong>the economics of on-premises and sovereign cloud</strong>. The fact that GPU switches account for a meaningful share of power draw means that when designing a cluster for an on-premises or domestic sovereign environment, networking isn’t a minor add-on, it’s a core variable in total cost of ownership (TCO). The self-hosting and cost efficiency ThakiCloud aims for only holds up on top of these network design decisions.</p>

<p>There’s also a connection to <strong>Paxis</strong>, our agent orchestration product. When distributed training or large-scale inference jobs are coordinated as a DAG and executed in isolation, understanding the communication profile of the collectives each stage calls makes it possible to design more precise resource reservations and policy gates. That said, the center of gravity in this post is the infrastructure layer, so the ai-platform lens is the primary one here.</p>

<h2 id="limitations-and-counterarguments">Limitations and Counterarguments</h2>

<p>This perspective has its counterarguments too. First, frameworks abstract collectives away quite a lot. With the higher-level APIs in PyTorch or JAX, most placement decisions happen automatically inside the library and scheduler, and application developers don’t need to know these details. So if you ask, “does every team need to know torus and ring formulas,” the honest answer is closer to no.</p>

<p>But the moment performance becomes a problem, this abstraction breaks down. When training runs slower than expected or serving latency spikes, finding the root cause eventually requires looking at which collective is flowing over which link. The abstraction is convenient on the happy path, but it turns into a leaky abstraction the moment you’re diagnosing a bottleneck.</p>

<p>The rules laid out in this post also keep changing across hardware generations. NVLink and InfiniBand bandwidth, the number of TPU ICI links, and OCS scale all vary from generation to generation, so any concrete numbers should always be re-verified against the official documentation for that specific generation. The formulas and structures here provide a mental framework, but production decisions need to be closed out with real benchmarks. Finally, there’s the practical gap where software fails to keep pace with hardware. Even a theoretically optimal topology is wasted if the kernels and communication libraries can’t fully exploit it.</p>

<h2 id="sources">Sources</h2>

<ul>
  <li>Aleksa Gordic, “Inside TPU and GPU Clusters: The Anatomy of Collective Communication”: https://www.aleksagordic.com/blog/collective-operations</li>
  <li>NVIDIA NCCL documentation and the communication cost model for ring all-reduce (reduce-scatter + all-gather, bandwidth optimality)</li>
  <li>Google’s TPU v4 paper, “TPU v4: An Optically Reconfigurable Supercomputer for Machine Learning with Hardware Support for Embeddings” (ICI 3D torus, OCS): https://arxiv.org/abs/2304.01433</li>
</ul>]]></content><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;nil, &quot;bio&quot;=&gt;nil, &quot;location&quot;=&gt;&quot;Seoul, Korea&quot;, &quot;email&quot;=&gt;&quot;info@thakicloud.co.kr&quot;, &quot;uri&quot;=&gt;nil, &quot;home&quot;=&gt;nil, &quot;links&quot;=&gt;[{&quot;label&quot;=&gt;&quot;Website&quot;, &quot;icon&quot;=&gt;&quot;fas fa-fw fa-link&quot;, &quot;url&quot;=&gt;&quot;https://thakicloud.co.kr&quot;}, {&quot;label&quot;=&gt;&quot;GitHub&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-github&quot;, &quot;url&quot;=&gt;&quot;https://github.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="dev" /><category term="dev" /><category term="distributed-training" /><category term="gpu" /><category term="tpu" /><category term="nccl" /><category term="nvlink" /><category term="infiniband" /><category term="kubernetes" /><category term="self-hosting" /><category term="paxis" /><summary type="html"><![CDATA[When training or serving a large model across many accelerators, the real bottleneck usually isn't computation, it's the data moving between accelerators. This post walks through what collective operations like all-reduce, all-gather, reduce-scatter, and all-to-all actually are, and how they run on two very different physical structures: GPU clusters (NVLink, NVSwitch, InfiniBand) and TPU clusters (the ICI 3D torus and optical circuit switches). From the bandwidth cost formula behind ring all-reduce to which collectives are triggered by data, tensor, pipeline, and expert parallelism, we cover this from the perspective ThakiCloud brings to running GPU infrastructure.]]></summary></entry><entry xml:lang="ko"><title type="html">GPU와 TPU 클러스터의 해부학: 컬렉티브 커뮤니케이션이 분산 학습의 속도를 결정합니다</title><link href="https://thakicloud.github.io/ko/dev/collective-communication-clusters/" rel="alternate" type="text/html" title="GPU와 TPU 클러스터의 해부학: 컬렉티브 커뮤니케이션이 분산 학습의 속도를 결정합니다" /><published>2026-07-15T00:00:00+09:00</published><updated>2026-07-15T00:00:00+09:00</updated><id>https://thakicloud.github.io/ko/dev/collective-communication-clusters</id><content type="html" xml:base="https://thakicloud.github.io/ko/dev/collective-communication-clusters/"><![CDATA[<h2 id="개요">개요</h2>

<p>대규모 언어 모델을 하나의 GPU에 올릴 수 없게 된 지는 이미 오래되었습니다. 수백억에서 수조 개의 파라미터를 가진 모델은 수십에서 수천 개의 가속기에 걸쳐 나뉘고, 학습 한 스텝마다 그 가속기들이 서로의 결과를 맞춰야 합니다. 이 “서로 맞추는” 과정이 바로 컬렉티브 커뮤니케이션이고, 현대 분산 학습에서 실제로 시간을 잡아먹는 지점은 행렬 곱이 아니라 이 통신인 경우가 대부분입니다.</p>

<p>이 글은 GPU나 TPU 클러스터에서 모델을 학습하거나 서빙하는 인프라 엔지니어, 그리고 서빙 비용과 확장성을 책임지는 사람을 위한 것입니다. 널리 읽힌 Aleksa Gordić의 딥다이브 “Inside TPU and GPU Clusters: The Anatomy of Collective Communication”을 출발점으로 삼되, 거기서 다루는 핵심 개념을 표준 레퍼런스(NCCL, TPU v4 논문 등)로 다시 확인하며 정리했습니다.</p>

<p>핵심 메시지를 먼저 요약하면 이렇습니다. 첫째, 분산 학습의 성능은 몇 가지 컬렉티브 연산으로 환원됩니다. 둘째, 같은 연산이라도 그것이 도는 물리적 토폴로지(NVIDIA의 스위치 기반 구조 대 Google의 토러스 구조)에 따라 비용이 완전히 달라집니다. 셋째, 어떤 병렬화 전략을 쓰느냐가 어떤 컬렉티브를 얼마나 자주 부를지를 결정합니다. 이 세 가지를 이해하면, GPU 몇 장을 어디에 어떻게 배치할지가 성능에 왜 그렇게 큰 영향을 주는지 설명할 수 있습니다.</p>

<h2 id="컬렉티브-커뮤니케이션이란-무엇인가">컬렉티브 커뮤니케이션이란 무엇인가</h2>

<p>컬렉티브 연산은 여러 프로세스(보통 가속기 한 장에 하나씩)가 함께 참여하는 통신 패턴입니다. 점대점(P2P) 통신이 한 명이 다른 한 명에게 보내는 것이라면, 컬렉티브는 그룹 전체가 규칙에 따라 데이터를 나누고 합칩니다. 분산 학습에서 반복적으로 등장하는 것은 다음 몇 가지입니다.</p>

<ul>
  <li><strong>All-reduce</strong>: 모든 참여자가 가진 텐서를 원소별로 합(또는 평균)한 뒤, 그 결과를 모두에게 되돌려줍니다. 데이터 병렬 학습에서 그래디언트를 맞출 때 쓰는 바로 그 연산입니다.</li>
  <li><strong>Reduce-scatter</strong>: 합을 구하되 결과를 한 명이 다 갖지 않고 조각내어 나눠 갖습니다.</li>
  <li><strong>All-gather</strong>: 각자가 가진 조각을 모두가 전부 갖도록 모읍니다. reduce-scatter의 짝이 되는 연산으로, 둘을 이어 붙이면 all-reduce가 됩니다.</li>
  <li><strong>All-to-all</strong>: 각 참여자가 다른 모든 참여자에게 서로 다른 데이터 조각을 보냅니다. 전치(transpose)에 가까운 패턴으로, 전문가 혼합(MoE) 모델에서 토큰을 전문가에게 라우팅할 때 핵심입니다.</li>
  <li><strong>Broadcast / Reduce</strong>: 한 명이 모두에게 같은 데이터를 뿌리거나, 모두의 데이터를 한 명에게 모아 줄이는 단방향 연산입니다.</li>
</ul>

<p>여기서 중요한 통찰 하나는 all-reduce가 원자적 연산이 아니라는 점입니다. all-reduce는 <strong>reduce-scatter 다음에 all-gather</strong>로 분해됩니다. 이 분해가 뒤에 나오는 비용 공식의 뿌리가 됩니다.</p>

<pre><code class="language-mermaid">flowchart TB
    A["각 가속기: 로컬 그래디언트/텐서"] --&gt; B["Reduce-scatter&lt;br/&gt;합을 조각내어 분배"]
    B --&gt; C["All-gather&lt;br/&gt;조각을 모두에게 복원"]
    C --&gt; D["All-reduce 완료&lt;br/&gt;모두가 동일한 합을 보유"]
    A --&gt; E["All-to-all&lt;br/&gt;MoE 토큰 라우팅"]
    A --&gt; F["Broadcast/Reduce&lt;br/&gt;단방향 분배·집계"]
</code></pre>

<h2 id="gpu-클러스터의-물리적-구조">GPU 클러스터의 물리적 구조</h2>

<p>NVIDIA 기반 클러스터는 두 개의 층으로 나뉜다고 보면 이해가 쉽습니다. 노드 안(scale-up)과 노드 사이(scale-out)입니다.</p>

<p>노드 안에서는 <strong>NVLink</strong>와 <strong>NVSwitch</strong>가 GPU들을 촘촘히 연결합니다. 한 서버 안의 8장 같은 GPU들은 NVSwitch를 통해 서로 완전 연결에 가깝게 묶여, 어느 GPU에서 어느 GPU로든 균일하게 높은 대역폭으로 통신합니다. 텐서 병렬화처럼 통신이 매우 잦은 작업을 이 도메인 안에 가두는 이유가 여기에 있습니다.</p>

<p>노드 사이에서는 <strong>InfiniBand</strong>나 <strong>RoCE</strong>(RDMA over Converged Ethernet)로 구성된 리프-스파인(팻트리) 네트워크가 쓰입니다. 이 스케일아웃 패브릭은 랙과 서버를 가로질러 GPU를 잇습니다. 여기서 자주 등장하는 설계가 레일 최적화(rail-optimized) 토폴로지입니다. 각 노드의 같은 순번 NIC를 같은 스위치(“레일”)에 붙여, 노드 간 all-reduce가 스파인 층을 덜 거치도록 만드는 방식입니다.</p>

<p>이 유연성에는 대가가 따릅니다. 스케일아웃에 필요한 수천 개의 스위치는 클러스터 전체 전력의 5~10%가량을 소비하고, 상당한 자본 지출을 요구합니다[추정 범위는 구성에 따라 달라집니다]. 즉 NVIDIA의 접근은 “어느 GPU든 어느 GPU와도 잘 통신하게” 만드는 대신, 그 균일함을 능동적으로 패킷을 처리하는 스위치들로 사서 씁니다.</p>

<h2 id="tpu-클러스터의-다른-선택">TPU 클러스터의 다른 선택</h2>

<p>Google의 TPU는 전혀 다른 길을 갑니다. TPU 칩은 능동 스위치 패브릭 대신 <strong>ICI(Inter-Chip Interconnect)</strong> 라는 전용 고속 링크로 이웃 칩과 직접 연결됩니다. 최신 세대의 각 칩은 ±X, ±Y, ±Z 여섯 방향으로 ICI 링크를 뻗어 <strong>3D 토러스</strong> 격자를 이룹니다(초기 세대는 2D 토러스로 256칩 규모의 pod를 구성했습니다). 이웃과만 직접 연결되므로 스위치 계층이 대부분 사라집니다.</p>

<p>그러면 멀리 떨어진 칩끼리, 또는 pod보다 큰 규모는 어떻게 잇느냐는 질문이 남습니다. 여기서 <strong>광 회선 스위치(OCS, Optical Circuit Switch)</strong> 가 등장합니다. TPU v4 논문에 따르면 OCS는 광섬유를 MEMS 거울로 재배치하는 방식으로, 광신호를 능동적으로 해석하지 않고 그대로 반사만 시킵니다. 덕분에 4096칩 규모를 재구성 가능한 방식으로 잇으면서도, 거울 방향을 유지하는 데만 전력이 들어 InfiniBand 스위치보다 훨씬 적은 전력으로 동작합니다. 토러스의 한 축을 광학적으로 감아 붙이거나, 고장 난 노드를 우회하도록 토폴로지를 소프트웨어로 재배선하는 것도 가능합니다.</p>

<p>정리하면, GPU 클러스터는 균일 접근을 위해 능동 스위치에 투자하고, TPU 클러스터는 이웃 직결 토러스에 광학 재구성을 얹어 전력과 비용을 절약합니다. 어느 쪽도 무조건 우월하지 않습니다. 토러스는 이웃 통신에 최적이지만 임의의 먼 통신에는 홉이 늘고, 스위치 패브릭은 균일하지만 비싸고 전력을 씁니다.</p>

<h2 id="컬렉티브가-병렬화-전략에-매핑되는-방식">컬렉티브가 병렬화 전략에 매핑되는 방식</h2>

<p>어떤 컬렉티브를 얼마나 부를지는 결국 어떤 병렬화를 쓰느냐로 정해집니다.</p>

<ul>
  <li><strong>데이터 병렬(DP)</strong>: 각 복제본이 서로 다른 배치를 처리한 뒤, 그래디언트를 <strong>all-reduce</strong>로 맞춥니다. 통신량은 모델 크기에 비례하고, 스텝마다 한 번 발생합니다.</li>
  <li><strong>완전 샤딩 데이터 병렬(FSDP/ZeRO)</strong>: 파라미터를 조각내어 나눠 갖고, 순전파 직전 <strong>all-gather</strong>로 필요한 파라미터를 모으고, 역전파 후 <strong>reduce-scatter</strong>로 그래디언트를 다시 나눕니다. 메모리를 아끼는 대신 통신 빈도가 늘어납니다.</li>
  <li><strong>텐서 병렬(TP)</strong>: 하나의 레이어 연산을 여러 GPU가 쪼개어 계산하고, 레이어 경계마다 <strong>all-reduce</strong> 또는 all-gather/reduce-scatter로 합칩니다. 통신이 극도로 잦아, 앞서 말한 NVLink 도메인 안에 가두는 것이 사실상 필수입니다.</li>
  <li><strong>파이프라인 병렬(PP)</strong>: 모델을 층 단위로 잘라 서로 다른 GPU에 배치하고, 스테이지 사이는 주로 <strong>P2P</strong> 전송으로 활성값을 넘깁니다. 컬렉티브 대신 점대점 통신이 지배적입니다.</li>
  <li><strong>전문가 병렬(EP/MoE)</strong>: 토큰을 각 전문가가 있는 가속기로 보내야 하므로 <strong>all-to-all</strong>이 핵심입니다. all-to-all은 참여자 수가 늘수록 통신 쌍이 제곱으로 늘어, 토폴로지에 특히 민감합니다.</li>
</ul>

<p>실전에서는 이들을 겹쳐 씁니다. 예를 들어 TP는 노드 안 NVLink에, DP의 all-reduce는 노드 사이 InfiniBand에, PP는 그 사이를 잇는 식으로 배치를 설계합니다. 잘못 배치하면 잦은 텐서 병렬 통신이 느린 노드 간 링크로 새어 나가 전체 학습이 느려집니다.</p>

<h2 id="성능을-지배하는-규칙-링과-트리">성능을 지배하는 규칙: 링과 트리</h2>

<p>컬렉티브를 실제로 구현하는 알고리즘은 여러 가지지만, 대역폭 관점에서 가장 유명한 것이 <strong>링(ring) all-reduce</strong>입니다. 참여자를 하나의 원형으로 잇고, 각 스텝마다 자기 조각을 다음 이웃에게 넘기며 reduce-scatter와 all-gather를 각각 N-1 스텝에 걸쳐 수행합니다.</p>

<p>이때 각 링크가 실어 나르는 데이터 총량은 다음과 같이 알려져 있습니다. 크기 S의 텐서를 N개 참여자가 all-reduce할 때, 링크당 트래픽은 대략</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>2 × (N − 1) / N × S
</code></pre></div></div>

<p>입니다. reduce-scatter에서 (N−1)/N × S, all-gather에서 다시 (N−1)/N × S가 흐르기 때문입니다. 여기서 중요한 성질은 N이 커져도 (N−1)/N이 1에 수렴하므로, 링크당 트래픽이 약 2S로 평평해진다는 점입니다. 이 때문에 링 all-reduce를 대역폭 최적(bandwidth-optimal)이라고 부르고, NCCL과 Gloo 같은 라이브러리가 오래 사용해 왔습니다.</p>

<p>문제는 지연(latency)입니다. 링은 N−1 스텝을 순차적으로 거치므로, 스텝마다 붙는 고정 지연(α)이 참여자 수에 비례해 쌓입니다. 작은 텐서를 아주 많은 노드가 all-reduce하면, 대역폭은 남는데 지연이 병목이 됩니다. 그래서 실제 라이브러리는 텐서 크기와 노드 수에 따라 링과 트리(또는 계층적) 알고리즘을 자동으로 골라 씁니다. 트리 방식은 지연을 log(N)에 가깝게 줄이는 대신 대역폭 효율을 일부 내줍니다. NCCL이 메시지 크기별로 다른 알고리즘을 선택하는 이유가 여기에 있습니다.</p>

<p>이 규칙이 실무에 주는 함의는 분명합니다. 배치 크기, 모델 크기, 노드 수를 바꾸면 지배적인 병목이 대역폭과 지연 사이를 오갑니다. 벤치마크 없이 “노드를 두 배로 늘리면 두 배 빨라진다”고 가정할 수 없는 이유입니다.</p>

<h2 id="thakicloud-제품-적용-시사점">ThakiCloud 제품 적용 시사점</h2>

<p>이 주제는 인프라의 심장에 닿아 있어, ThakiCloud의 <strong>ai-platform</strong>(K8s 기반 AI/ML SaaS 인프라) 관점에서 특히 실질적입니다.</p>

<p>첫째, <strong>토폴로지 인지 스케줄링</strong>입니다. ai-platform은 Kueue로 GPU 워크로드를 스케줄링하는데, 텐서 병렬 잡을 같은 NVLink 도메인(같은 노드) 안에 배치하고 데이터 병렬의 all-reduce는 레일 최적화된 노드 간 링크에 태우는 배치 원칙이, 이 글에서 정리한 컬렉티브의 통신 특성과 정확히 맞물립니다. 어느 컬렉티브가 어느 링크로 흐르는지를 알아야 잡 배치가 성능으로 이어집니다.</p>

<p>둘째, <strong>서빙에서의 텐서 병렬</strong>입니다. vLLM 같은 엔진으로 큰 모델을 여러 GPU에 텐서 병렬로 서빙할 때, 레이어마다 all-reduce가 발생합니다. 이 통신이 NVLink 안에 머무르도록 파드를 배치하면 지연 목표를 지키기 쉽고, 노드 경계를 넘어가면 토큰당 지연이 눈에 띄게 늘어납니다. 멀티테넌트 환경에서 이런 배치 규율은 곧 서빙 비용과 SLA로 직결됩니다.</p>

<p>셋째, <strong>온프렘·소버린 클라우드의 경제성</strong>입니다. GPU 스위치가 전력의 상당 부분을 차지한다는 사실은, 온프레미스나 국내 소버린 환경에서 클러스터를 설계할 때 네트워크가 단순 부속이 아니라 총소유비용(TCO)의 핵심 변수임을 뜻합니다. ThakiCloud가 지향하는 self-hosting과 비용 효율은 이런 네트워크 설계 판단 위에서만 성립합니다.</p>

<p>에이전트 오케스트레이션 제품인 <strong>Paxis</strong> 관점에서도 접점이 있습니다. 분산 학습·대규모 추론 잡을 DAG로 조율하고 격리 실행하는 상황에서, 각 단계가 부르는 컬렉티브의 통신 프로파일을 이해하면 자원 예약과 정책 게이트를 더 정교하게 설계할 수 있습니다. 다만 이 글의 무게중심은 인프라 계층이므로 ai-platform 렌즈가 주가 됩니다.</p>

<h2 id="한계-및-반론">한계 및 반론</h2>

<p>이 관점에도 반론이 있습니다. 우선, 프레임워크가 컬렉티브를 상당히 추상화해 준다는 점입니다. PyTorch나 JAX의 상위 API를 쓰면 대부분의 배치 결정이 라이브러리와 스케줄러 안에서 자동으로 일어나고, 애플리케이션 개발자는 이 세부를 몰라도 됩니다. 그래서 “모든 팀이 토러스와 링 공식을 알아야 하는가”라고 물으면, 답은 아니오에 가깝습니다.</p>

<p>그러나 성능이 문제가 되는 순간, 이 추상화는 무너집니다. 학습이 예상보다 느리거나 서빙 지연이 튈 때, 원인을 찾으려면 결국 어떤 컬렉티브가 어느 링크로 흐르는지를 봐야 합니다. 추상화는 정상 경로에서는 편하지만 병목 진단에서는 새는 추상화가 됩니다.</p>

<p>또한 이 글이 정리한 규칙들은 하드웨어 세대에 따라 계속 바뀝니다. NVLink와 InfiniBand의 대역폭, TPU ICI의 링크 수, OCS의 규모는 세대마다 달라지므로, 구체적 수치는 항상 해당 세대의 공식 자료로 다시 확인해야 합니다. 이 글의 공식과 구조는 사고의 틀을 주지만, 프로덕션 판단은 실측 벤치마크로 닫아야 합니다. 마지막으로, 소프트웨어가 하드웨어를 따라가지 못하는 간극도 현실입니다. 이론상 최적인 토폴로지도 커널과 통신 라이브러리가 이를 온전히 활용하지 못하면 그림의 떡입니다.</p>

<h2 id="출처">출처</h2>

<ul>
  <li>Aleksa Gordić, “Inside TPU and GPU Clusters: The Anatomy of Collective Communication”: https://www.aleksagordic.com/blog/collective-operations</li>
  <li>NVIDIA NCCL 문서 및 링 all-reduce 통신 비용 모델 (reduce-scatter + all-gather, 대역폭 최적성)</li>
  <li>Google TPU v4 논문, “TPU v4: An Optically Reconfigurable Supercomputer for Machine Learning with Hardware Support for Embeddings” (ICI 3D 토러스, OCS): https://arxiv.org/abs/2304.01433</li>
</ul>]]></content><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;nil, &quot;bio&quot;=&gt;nil, &quot;location&quot;=&gt;&quot;Seoul, Korea&quot;, &quot;email&quot;=&gt;&quot;info@thakicloud.co.kr&quot;, &quot;uri&quot;=&gt;nil, &quot;home&quot;=&gt;nil, &quot;links&quot;=&gt;[{&quot;label&quot;=&gt;&quot;Website&quot;, &quot;icon&quot;=&gt;&quot;fas fa-fw fa-link&quot;, &quot;url&quot;=&gt;&quot;https://thakicloud.co.kr&quot;}, {&quot;label&quot;=&gt;&quot;GitHub&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-github&quot;, &quot;url&quot;=&gt;&quot;https://github.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="dev" /><category term="dev" /><category term="distributed-training" /><category term="gpu" /><category term="tpu" /><category term="nccl" /><category term="nvlink" /><category term="infiniband" /><category term="kubernetes" /><category term="self-hosting" /><category term="paxis" /><summary type="html"><![CDATA[대규모 모델을 여러 가속기에 나눠 학습하거나 서빙할 때, 실제 병목은 연산이 아니라 가속기 사이를 오가는 데이터입니다. 이 글은 all-reduce, all-gather, reduce-scatter, all-to-all 같은 컬렉티브 연산이 무엇인지, 그리고 이 연산들이 GPU 클러스터(NVLink·NVSwitch·InfiniBand)와 TPU 클러스터(ICI 3D 토러스·광 회선 스위치)라는 서로 다른 물리 구조 위에서 어떻게 도는지를 정리합니다. 링 all-reduce의 대역폭 비용 공식부터 데이터·텐서·파이프라인·전문가 병렬화가 각각 어떤 컬렉티브를 부르는지까지, ThakiCloud가 GPU 인프라를 운영하며 마주하는 관점에서 짚습니다.]]></summary></entry><entry xml:lang="ko"><title type="html">디자인시스템으로 화면을 생성하려면, 모델보다 게이트를 먼저 만들어야 한다</title><link href="https://thakicloud.github.io/ko/research/tds-ui-generator/" rel="alternate" type="text/html" title="디자인시스템으로 화면을 생성하려면, 모델보다 게이트를 먼저 만들어야 한다" /><published>2026-07-15T00:00:00+09:00</published><updated>2026-07-15T00:00:00+09:00</updated><id>https://thakicloud.github.io/ko/research/tds-ui-generator</id><content type="html" xml:base="https://thakicloud.github.io/ko/research/tds-ui-generator/"><![CDATA[<p>이 글은 우리 플랫폼 팀이 THAKI Design System(<code class="language-plaintext highlighter-rouge">@thaki/tds</code>)으로 데스크톱 콘솔 UI를 자동
생성하는 모델을 만들면서 배운 것을 정리한 기록이다. 읽는 대상은 LLM으로 UI를 뽑아보려는
프론트엔드·ML 엔지니어다. 결론부터 말하면, 화면 생성의 품질은 모델 크기가 아니라 <strong>생성물을
실제로 컴파일하고 검증하는 게이트</strong>가 결정했다.</p>

<p><img src="/assets/images/posts/research/tds-ui-generator/hero.png" alt="파인튜닝 0/40에서 제약 디코딩 39/40으로 뒤집힌 TDS UI 생성기 실험 결과 배너" />
<em>학습으로 문법을 가르치는 대신, 규칙으로 유효한 출력만 나오게 강제했습니다.</em></p>

<h2 id="왜-코드를-직접-생성하지-않았나">왜 코드를 직접 생성하지 않았나</h2>

<p>스크린샷이나 요구사항에서 긴 JSX를 한 번에 생성하는 방식은 오래 알려진 실패 패턴이 있다.
요소가 빠지고, 계층이 뒤틀리고, 레이아웃이 평평해진다. 우리는 일반적인 표현은 보존하고
도메인 특화 부분만 강하게 학습한다는 원리를 UI에 옮겼다. 모델이
픽셀이나 코드를 직접 만들지 않고 두 단계의 중간표현만 만들게 했다. 먼저 디자인시스템과 무관한
UX-IR로 “이 화면이 무엇을 하는가”를 표현하고, 그다음 TDS-IR로 “그것을 어떤 TDS 컴포넌트로
실현하는가”를 표현한다. 실제 코드는 모델이 아니라 결정론적 컴파일러가 소유한다. TDS가 이미
패딩과 타이포와 상호작용을 구현하고 있으니, 모델은 스타일을 다시 배울 필요 없이 어떤 컴포넌트를
어떤 구조로 쓸지만 배우면 된다.</p>

<h2 id="먼저-만든-것은-모델이-아니라-레지스트리와-게이트였다">먼저 만든 것은 모델이 아니라 레지스트리와 게이트였다</h2>

<p><code class="language-plaintext highlighter-rouge">tds_ssot</code> 저장소를 분석해 61개 컴포넌트의 props와 slot, enum 값, 그리고 어떤 slot에 어떤
컴포넌트가 들어갈 수 있는지를 자동으로 추출해 Component Registry로 만들었다. Button의 variant가
여덟 가지 중 하나여야 한다는 것, FormField의 control slot에 들어갈 수 있는 컴포넌트가 정해져
있다는 것 같은 규칙이 전부 여기에 들어간다. 흥미로운 발견 하나는, <code class="language-plaintext highlighter-rouge">@thaki/tds</code>가 모바일
시스템이 아니라 Table과 Drawer와 Modal 중심의 데스크톱 콘솔 시스템이라는 점이었다. 데모가
<code class="language-plaintext highlighter-rouge">/desktop</code> 경로인 이유이기도 하다. 그래서 UX 역할을 TDS 컴포넌트로 실현하는 매핑도 콘솔 패턴에
맞춰 잡았다.</p>

<p>게이트는 코드가 소유하게 했다. 컴포넌트가 실제로 존재하는지, prop이 정의된 값인지, slot 호환이
맞는지, 누를 수 있는 요소에 동작이 붙어 있는지, primary 버튼이 중복되지 않는지를 결정론적으로
검사한다. 모델이 “잘 만들었습니다”라고 자기 보고하는 것은 검증이 아니다. 컴파일이 되고 스키마를
통과하는 것이 검증이다.</p>

<h2 id="데이터는-100개면-충분한가">데이터는 100개면 충분한가</h2>

<p>사용자 요청은 샘플 100개였다. 여기서 정직하게 짚어야 할 것이 있다. 100개로 27B 모델을 풀
파인튜닝하면 과적합과 mode collapse가 확정이다. 그래서 100개를 27B 학습셋이 아니라 파이프라인을
증명하는 데이터로 썼다. 확률 그래머로 실제 콘솔 화면 패턴을 합성하고, 게이트를 통과한 화면에서만
학습 예제를 파생했다. 화면 한 개에서 텍스트에서 UX-IR, 텍스트에서 TDS-IR, 편집 지시에서 JSON
Patch, 잘못된 IR에서 복구, 그리고 good과 corrupt를 짝지은 선호쌍까지 여러 태스크를 뽑아냈다.
게이트를 통과한 시드 화면 22개 중 20개에서 100개의 SFT 예제와 20개의 선호쌍이 나왔다. 데이터의
양보다 실행 가능한 검증을 통과했는지가 중요하다는 원칙을 그대로 지켰다.</p>

<h2 id="가장-중요한-숫자">가장 중요한 숫자</h2>

<p>우리가 이 프로젝트에서 얻은 가장 값진 결과는 학습 곡선이 아니라 지표들의 판별력 비교였다. 정답
IR에서 컴포넌트 하나를 지우고 prop의 enum 값을 망가뜨린 다음, 여러 지표가 이 손상을 얼마나
잡아내는지 쟀다.</p>

<table>
  <thead>
    <tr>
      <th>지표</th>
      <th>정상</th>
      <th>손상</th>
      <th>변화</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>component F1 (유사도)</td>
      <td>1.00</td>
      <td>0.81</td>
      <td>거의 안 떨어짐</td>
    </tr>
    <tr>
      <td>valid-prop rate</td>
      <td>1.00</td>
      <td>0.30</td>
      <td>붕괴</td>
    </tr>
    <tr>
      <td>schema-valid rate</td>
      <td>0.93</td>
      <td>0.23</td>
      <td>붕괴</td>
    </tr>
    <tr>
      <td>compile-ok</td>
      <td>1.00</td>
      <td>1.00</td>
      <td>반응 없음</td>
    </tr>
  </tbody>
</table>

<p>유사도 기반 지표는 관대했고, 컴파일 성공은 아예 반응하지 않았다. 컴파일러는 잘못된 prop도 그냥
그대로 뱉기 때문에 컴파일이 됐다고 품질이 좋은 것이 아니다. 반대로 스키마 검증과 prop 유효성은
손상에 정확히 반응해 절반 아래로 떨어졌다. 다시 말해, 화면 생성 품질을 유사도나 컴파일 성공만으로
정렬하면 거의 맞지만 틀린 출력을 걸러내지 못한다. 품질을 만드는 것은 컴파일과 스키마와 slot과
상호작용으로 루프를 닫는 게이트다.</p>

<h2 id="학습을-붙여보고-정직하게-실패했다">학습을 붙여보고, 정직하게 실패했다</h2>

<p>여기까지가 하네스 이야기라면, 다음은 실제 학습이다. 데이터 엔진을 돌려 게이트를 통과한 화면
1185개에서 5924개의 학습 예제를 만들고, Qwen3.6-27B에 LoRA를 붙여 사내 H200 클러스터에서
학습했다. 학습 자체는 잘 수렴했다. 손실은 0.07까지 떨어졌고 토큰 정확도는 96%였다. 그리고
학습한 어댑터를 실제로 서빙해 학습 전후를 비교했다.</p>

<p>결과는 정직하게 말하면 실패였다. 300스텝짜리 진단용 LoRA는 자동 생성 결과를 거의 바꾸지
못했다. 학습 전 모델과 학습 후 모델의 오류 프로파일이 사실상 같았다. 둘 다 FormField에 입력
속성을 직접 붙이고, Card에 없는 title을 붙였다. 실제 디자인시스템은 FormField가 입력을 슬롯으로
감싸는 중첩 구조인데, 두 모델 모두 더 납작한 구조를 상상하고 있었다.</p>

<p>원인을 파고들면 세 가지였다. 학습이 짧았고, 토큰 정확도가 일찌감치 포화해서 기울기 신호가
약했다. 더 중요한 건 데이터였다. 합성 데이터를 만든 realize 함수가 실제 중첩 구조를 보여주지
않았으니, 모델은 데이터에 없는 계약을 배울 수 없었다. 그리고 27B 모델의 기존 습관이 강했다.</p>

<p>여기서 두 번째 교훈이 나온다. 세 가지 대리 지표가 모두 진짜 생성 품질을 놓쳤다. 컴파일 성공도,
teacher-forced 토큰 정확도도, LoRA를 붙였을 때의 토큰 정확도 변화도 전부 게이트 통과율과
어긋났다. 오직 완전한 레지스트리에 대한 실행 게이트만이 두 모델이 공유하는 진짜 간극을 드러냈다.
그 과정에서 우리 레지스트리 자체가 불완전해서 멀쩡한 출력을 떨구고 있었다는 것도 알게 됐고,
30개 컴포넌트의 속성을 전수 추출해 바로잡았다.</p>

<h2 id="그래서-데이터를-고치고-다시-학습하고-결국-답을-찾았다">그래서 데이터를 고치고, 다시 학습하고, 결국 답을 찾았다</h2>

<p>우리는 realize 함수를 실제 중첩 구조를 만들도록 다시 썼다. 이제 FormField는 입력을 슬롯으로
감싸고, 컴포넌트마다 실제 속성을 쓴다. 게이트를 완벽히 통과하는 화면이 2771개 나왔고, 여기서
학습 예제 1만 3855개를 만들었다. 그리고 이번에는 훨씬 오래, 최적화 업데이트를 1500번 돌렸다.</p>

<p>그런데도 학습된 모델은 여전히 게이트를 통과하지 못했다. 학습 전과 후가 또 거의 같았다. 이쯤에서
분명해졌다. 이 문제에서 27B 모델의 평탄한 습관은 우리가 감당할 만한 학습량으로는 뒤집히지
않는다는 것이다.</p>

<p>그래서 방향을 바꿨다. 모델을 설득하는 대신, 생성 자체를 강제하기로 했다. 레지스트리에서 JSON
스키마를 자동으로 만들었다. 컴포넌트 이름은 실재하는 것만, 속성은 그 컴포넌트가 실제로 가진
것만 허용하고, 중첩 구조는 재귀로 강제하는 스키마다. 이걸 디코딩 제약으로 걸었다. 결과는
분명했다. 같은 held-out 40건에서 학습 없이, 게이트 통과율이 0%에서 39건, 즉 97.5%로 올랐다
(95% 신뢰구간 86.8%에서 99.9%).</p>

<p><img src="/assets/images/posts/research/tds-ui-generator/fig1-reversal.png" alt="기본·파인튜닝·repair·제약 디코딩 네 방법의 게이트 통과율 막대그래프" />
<em>네 갈래 비교: 학습 없이 제약만으로 게이트 통과율이 39/40까지 올랐습니다. 측정값(n=40).</em></p>

<p>이 세 갈래 비교가 이 프로젝트의 결론이다. 아무 처치 없는 기본 모델도, 파인튜닝한 모델도 0/40이었고,
디코딩을 제약한 기본 모델만 39/40을 통과했다. 강한 습관을 가진 모델에게 구조화된 출력을 시킬 때는,
파인튜닝으로 습관을 지우려 애쓰는 것보다 실행 게이트와 같은 규칙으로 디코딩을 제약하는 편이
이 조건에서는 값싸고 확실했다.</p>

<p>여기서부터가 정직해야 하는 대목이다. 첫째, 97.5%이지 100%가 아니다. 통과하지 못한 한 건은 제약을
걸었는데도 JSON이 중간에 끊겨서 나왔다. 스키마 제약은 파싱 가능한 JSON조차 완전히 보장하지 못한다.
둘째, 이 승리는 타당성의 승리이지 품질의 승리가 아니다. 정답 화면과의 컴포넌트 유사도(F1)는
제약을 걸었을 때 오히려 소폭 낮아졌다(0.317에서 0.292로). 유효하다는 것과 요구한 의도에 부합한다는
것은 다르며, 이 간극이 다음 단계의 진짜 숙제다. 셋째, 통과율이 높은 이유를 오해하면 안 된다.
처음엔 이 100%가 스키마가 게이트를 대부분 포함하기 때문이라고 적었지만, 실제로 두 규칙을 적대적
케이스로 대조해 보니 반대였다. 게이트가 스키마보다 더 엄격했다. 스키마는 가장 흔한 두 오류
(존재하지 않는 컴포넌트, 없는 속성)만 막고, schemaVersion 누락이나 슬롯에 엉뚱한 컴포넌트를 넣는
것 같은 위반은 통과시켰다. 그런 것까지 잡는 것은 게이트였다. 그러니 제약이 값어치를 한 이유는
스키마가 지배적 실패 유형을 제거했고 남은 출력이 마침 게이트의 더 엄격한 규칙까지 만족했기
때문이다. 진짜 by-construction 위험은 스키마와 게이트가 같은 레지스트리에서 나온다는 점이고,
이건 레지스트리 밖의 검증기(React 렌더와 TypeScript 타입 검사)로만 배제할 수 있다.</p>

<h2 id="유효한-화면이-좋은-화면은-아니었다">유효한 화면이 좋은 화면은 아니었다</h2>

<p>여기서 멈추면 “제약이 답이다”로 끝나지만 그건 절반의 진실이었다. 우리는 더 파봤다. held-out 정답
화면에서 요구사항 계약을 뽑아, 각 방법이 화면의 실제 내용을 얼마나 재현하는지 쟀다. 결과는 뼈아팠다.
유효성은 제약이 가장 높았지만 참조의 정보와 컴포넌트 재현은 제약이 가장 낮았다. 학습 없이 유효성만
산 셈이고, 내용 재현은 무처치 기본 모델보다도 낮았다. GPU 없이 기본 출력을 결정론적으로 고치는
repair도, 자유 계획을 먼저 세우고 제약하는 방식도 마찬가지였다. 둘 다 유효성을 내용과 맞바꿨다.
유효하다는 것과 요구에 맞다는 것은 다른 축이었다.</p>

<h2 id="그래서-어디에-투자할지-먼저-쟀다">그래서 어디에 투자할지 먼저 쟀다</h2>

<p>다음 본능은 모델을 더 키우거나 여러 개 뽑아 고르는 것이었다. 그 전에 물었다. 여덟 번 생성하면
그중 좋은 게 있기는 한가. 한 프롬프트에 여덟 개씩 제약 생성해 단일 샘플과 최선의 후보를 비교하니,
최선의 후보는 단일 샘플의 유사도를 크게 웃돌았다. 0.29 대 0.45였다. 좋은 화면은 이미 생성되고
있었다. 못 하는 건 그중 좋은 걸 고르는 일이었다. 병목은 생성이 아니라 선택이었다.</p>

<h2 id="선택기는-심판이-아니라-요구사항이었다">선택기는 심판이 아니라 요구사항이었다</h2>

<p>그래서 정답을 모르는 선택기를 만들어 그 천장의 얼마를 실제로 잡는지 쟀다.</p>

<p><img src="/assets/images/posts/research/tds-ui-generator/fig2-verifier.png" alt="Top-1·구조·심판·요구사항·Oracle 선택기의 컴포넌트 F1 비교 막대그래프" />
<em>정답을 모르는 선택기 중 요구사항 predicate가 헤드룸의 27%를 회수했고, LLM 심판은 무선택보다 나빴습니다. 측정값(n=40).</em>
 구조가 풍부한 후보를
고르는 건 거의 소용없었다. 오히려 게이트를 통과한 후보를 고르면 나빠졌다. 유효성으로 고르면 내용이
떨어진다는 걸 여기서 또 봤다. 기본 모델에게 직접 이 중 뭐가 제일 낫냐 물으면 아무것도 안 고른
것보다 못했다. 통한 건 하나였다. 프롬프트에서 이 화면이 담아야 할 것을 먼저 뽑고, 그 요구를 가장
잘 채운 후보를 고르는 것. 이게 선택 헤드룸의 4분의 1을 잡았다. 심판이 아니라 요구사항이 선택기였다.</p>

<p>프로젝트를 정리하며 남는 교훈은 넷이다. 하나, 가장 먼저 투자할 곳은 더 큰 모델이 아니라 생성물을
실제로 실행하고 검증하는 골격이다. 둘, 그 골격이 정확해야 실패도 성공도 정확하게 보인다. 셋,
강한 습관과 구조화된 출력이 부딪혔을 때 적어도 이 문제에서는 학습을 더 밀어붙이기보다 제약을
거는 쪽이 값쌌다. 이것을 모든 경우로 일반화하지는 않는다. 넷, 유효성과 충실도는 다른 축이고,
남은 병목은 생성이 아니라 선택이며, 그 선택기는 심판이 아니라 요구사항 기반이어야 했다. 다음으로
증명할 것은 사람이 쓴 요구사항 계약으로 선택기와 의미 정확도를 함께 끌어올리는 것이다.</p>]]></content><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;nil, &quot;bio&quot;=&gt;nil, &quot;location&quot;=&gt;&quot;Seoul, Korea&quot;, &quot;email&quot;=&gt;&quot;info@thakicloud.co.kr&quot;, &quot;uri&quot;=&gt;nil, &quot;home&quot;=&gt;nil, &quot;links&quot;=&gt;[{&quot;label&quot;=&gt;&quot;Website&quot;, &quot;icon&quot;=&gt;&quot;fas fa-fw fa-link&quot;, &quot;url&quot;=&gt;&quot;https://thakicloud.co.kr&quot;}, {&quot;label&quot;=&gt;&quot;GitHub&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-github&quot;, &quot;url&quot;=&gt;&quot;https://github.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="research" /><category term="llm" /><category term="constrained-decoding" /><category term="structured-generation" /><category term="ui-generation" /><category term="design-system" /><category term="evaluation" /><category term="verifier" /><summary type="html"><![CDATA[파인튜닝이 이길 줄 알고 시작했는데 데이터가 뒤집었습니다. 학습 없이 TDS를 지키는 생성기를 얻은 과정과, 유효한 화면이 좋은 화면은 아니라는 다음 숙제까지 정리합니다.]]></summary></entry><entry xml:lang="ko"><title type="html">AI한테 취조당하는 면접ㅋ</title><link href="https://thakicloud.github.io/ko/%EB%A7%8C%ED%99%94/the-ai-that-grills-you/" rel="alternate" type="text/html" title="AI한테 취조당하는 면접ㅋ" /><published>2026-07-15T00:00:00+09:00</published><updated>2026-07-15T00:00:00+09:00</updated><id>https://thakicloud.github.io/ko/%EB%A7%8C%ED%99%94/the-ai-that-grills-you</id><content type="html" xml:base="https://thakicloud.github.io/ko/%EB%A7%8C%ED%99%94/the-ai-that-grills-you/"><![CDATA[<p>이번 화제는 ‘/grill-me’입니다. 답을 대신 써주는 도구가 아니라, 꼬리에 꼬리를 무는 되물음으로 상대가 정말 이해했는지 캐묻는 스킬이에요. 아는 척은 두세 번만 ‘왜요?’를 던지면 밑천이 드러납니다. 그런데 이걸 기술 면접에 가져다 쓰는 사람이 생겼습니다. 정답을 맞혔는지가 아니라 압박 속에서 후보가 어떻게 생각을 풀어가는지를 옆에서 구경하는 거죠. 파시스와 메티스가 이 취조기를 손에 넣었고, 결국 서로에게 겨눕니다.</p>

<p><img src="/assets/images/posts/만화/the-ai-that-grills-you/strip.png" alt="AI한테 취조당하는 면접ㅋ" /></p>

<blockquote>
  <p>원 뉴스: <a href="https://x.com/hjguyhan/status/2077017688761938198">RT @mattpocockuk: Someone DM’d me saying they’re using /grill-me in technical interviews</a> · twitter</p>
</blockquote>

<h2 id="thakicloud-제품-적용-시사점">ThakiCloud 제품 적용 시사점</h2>

<p>만화는 웃기려고 서로 갈구지만, 사실 이건 ThakiCloud가 매일 하는 일입니다. 파시스가 만든 에이전트 결과물을 곧장 내보내지 않고, 다른 에이전트가 ‘이 주장 근거가 뭐냐’며 반증을 시도하게 합니다. 통과한 것만 배포하고요. 메티스도 추론 결과를 스스로 채점하는 대신 검증 게이트에 통과시킵니다. 취조기를 남한테만 겨누면 자기 헛소리는 못 걸러냅니다. 그래서 우리 파이프라인은 배포 전에 자기들끼리 먼저 갈굽니다. 이 만화가 올라온 과정도 그 루프를 한 바퀴 돈 결과입니다.</p>

<hr />

<p><em>이 만화는 업계 뉴스를 바탕으로 자동 생성된 초안입니다.</em></p>]]></content><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;nil, &quot;bio&quot;=&gt;nil, &quot;location&quot;=&gt;&quot;Seoul, Korea&quot;, &quot;email&quot;=&gt;&quot;info@thakicloud.co.kr&quot;, &quot;uri&quot;=&gt;nil, &quot;home&quot;=&gt;nil, &quot;links&quot;=&gt;[{&quot;label&quot;=&gt;&quot;Website&quot;, &quot;icon&quot;=&gt;&quot;fas fa-fw fa-link&quot;, &quot;url&quot;=&gt;&quot;https://thakicloud.co.kr&quot;}, {&quot;label&quot;=&gt;&quot;GitHub&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-github&quot;, &quot;url&quot;=&gt;&quot;https://github.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="만화" /><category term="grill-me" /><category term="AI-interview" /><category term="adversarial-verify" /><category term="agents" /><category term="paxis" /><category term="metis" /><summary type="html"><![CDATA[후보를 갈구던 AI, 자기부터 갈궈봤더니ㅋ]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://thakicloud.github.io/assets/images/posts/%EB%A7%8C%ED%99%94/the-ai-that-grills-you/strip.png" /><media:content medium="image" url="https://thakicloud.github.io/assets/images/posts/%EB%A7%8C%ED%99%94/the-ai-that-grills-you/strip.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="ar"><title type="html">الاستقلالية ليست مفتاحا للتشغيل والإيقاف، بل مقياسا متدرجا: ما تشتريه البنوك قبل القدرة</title><link href="https://thakicloud.github.io/ar/agentops/banks-buy-control-not-capability/" rel="alternate" type="text/html" title="الاستقلالية ليست مفتاحا للتشغيل والإيقاف، بل مقياسا متدرجا: ما تشتريه البنوك قبل القدرة" /><published>2026-07-14T00:00:00+09:00</published><updated>2026-07-15T00:00:00+09:00</updated><id>https://thakicloud.github.io/ar/agentops/banks-buy-control-not-capability</id><content type="html" xml:base="https://thakicloud.github.io/ar/agentops/banks-buy-control-not-capability/"><![CDATA[<h2 id="حين-نفحص-سطرا-واحدا-من-إعلان-مناقصة-تحت-المجهر">حين نفحص سطرا واحدا من إعلان مناقصة تحت المجهر</h2>

<p>كان أهدأ خبر في ملخص هذا الصباح خبرا حصريا عن اتحاد المصارف الكوري. مضمونه المختصر أن الاتحاد طرح مناقصة لخدمة استشارية لبناء استراتيجية تبني الذكاء الاصطناعي. والمثير في الأمر هو ما ستنتجه هذه الخدمة فعليا. فهي ليست إضافة نموذج جديد، وليست نشر روبوت محادثة. إنها تحليل خصائص العمل لاكتشاف المهام، ومقارنة وتقييم الذكاء الاصطناعي السيادي المحلي مقابل الذكاء الاصطناعي التابع لشركات التقنية العالمية الكبرى والحلول المتخصصة، وبناء خارطة طريق تبني على مراحل. مدة العقد ثلاثة أشهر، وسيختار الاتحاد الجهة المرشحة المفضلة خلال هذا الشهر.</p>

<p>هنا يبرز سؤال. لو كانت القدرة هي المشكلة، فالسوق مليء أصلا بنماذج قوية. فلماذا لا تشتري البنوك النموذج أولا، بل ترسم الترتيب أولا؟ حين نمسك بهذا السؤال ونعيد قراءة أخبار اليوم كاملة، نلاحظ أن شركات مختلفة تقول في الواقع الشيء نفسه. نقطة الحسم في تبني الذكاء الاصطناعي انتقلت من مدى ذكاء النظام إلى مدى قدرتك على التحكم فيه.</p>

<h2 id="المال-ما-زال-يتدفق-نحو-الأجهزة">المال ما زال يتدفق نحو الأجهزة</h2>

<p>بالطبع ما زال مسار رأس المال متجها نحو السيليكون. اليوم وحده، سجلت هانمي سيميكوندكتور أكبر أرباح فصلية في تاريخها منذ التأسيس، بربح تشغيلي بلغ 130.3 مليار وون في الربع الثاني، بزيادة 51 بالمئة عن العام السابق، مدفوعا بالطلب على معدات المرحلة الأولى لتصنيع HBM4. وتخطط شركات الذاكرة الثلاث الكبرى لمضاعفة إنتاج HBM هذا العام أكثر من مرتين، ورغم ذلك ما زال الطلب يفوق العرض، لذا أعلنت مسبقا عن رفع الأسعار العام المقبل. بدأت SK هاينكس تقديم طلبات شراء المعدات لمصنعها Y1 في يونجين. ووصف الرئيس تشوي تاي وون هذا الأمر بأنه ليس دورة اقتصادية بل تطورا في الصناعة نفسها.</p>

<p>لكن كون المال يتدفق نحو الأجهزة لا يعني أن العائق كامن في الأجهزة أيضا. مهما كانت الرقاقة سريعة، فإذا لم يُحدَّد ما الذي يُسمح لها بفعله وإلى أي حد، فلن تستطيع صناعة خاضعة للتنظيم أن تخطو خطوة واحدة. وهنا يكمن سبب أن ما اشتراه اتحاد المصارف لم يكن أداء، بل معيارا.</p>

<h2 id="الصناعات-الخاضعة-للتنظيم-تشتري-الترتيب-قبل-القدرة">الصناعات الخاضعة للتنظيم تشتري الترتيب قبل القدرة</h2>

<p>يجدر الانتباه إلى أن خارطة طريق اتحاد المصارف تصدر على مستوى الاتحاد القطاعي، لا على مستوى مصرف واحد. فترتيب التبني ومعايير تقييم النماذج التي يضعها الاتحاد ستصبح المعيار الفعلي لدى المصارف الأعضاء. أي أن الصناعة بأكملها، لا جهة واحدة، ستُدخِل الذكاء الاصطناعي وفق القواعد نفسها. وقد فتحت الجهات التنظيمية المالية للتو استثناء في قواعد فصل الشبكات، ما يتيح استخدام الخدمات السحابية حتى داخل الشبكات الداخلية، وهو ما سيسرّع من ترسخ هذه القواعد.</p>

<p>وظهرت حركة من الطبيعة نفسها في القطاع العام أيضا. اختير ائتلاف يضم KT وNaver Cloud كجهة مرشحة مفضلة لمشروع تخطيط استراتيجي مبتكر لدى هيئة الموارد المعلوماتية الوطنية. وجوهر هذا المشروع هو أيضا التصنيف لا الميزات الجديدة. يتضمن فرز 693 نظام معلومات عام في المقر الرئيسي بدايجون، وتحديد أيها يبقى في مراكز البيانات العامة وأيها ينتقل إلى السحابة الخاصة، استنادا إلى درجة N2SF والأهمية والجدوى الاقتصادية والاستقرار. وهو إجراء تكميلي لإطار تشغيل الأنظمة الوطنية الذي أعيد تصميمه بعد حريق مركز دايجون في سبتمبر 2024.</p>

<p>الرسالة التي تحملها الحالتان واضحة. في الصناعات الخاضعة للتنظيم، الخطوة الأولى في التبني ليست النشر بل التصنيف. تحديد ما يمكن تفويضه، وإلى أي حد، يأتي قبل تحديد ما يجب فعله أولا. أما القدرة فمشكلة لاحقة.</p>

<p>يتباين هذا الحذر بوضوح مع سرعة الجمهور العام. ففي اليوم نفسه، تصدر تشات جي بي تي المرتبة الأولى من حيث نمو المستخدمين المحليين في النصف الأول من العام، ونال لقب التطبيق الوطني، بينما انضمت SK AX وTechnomatrix إلى فريق النخبة المكلف بنموذج SK تليكوم الخاص دوكباموه، ما سرّع التجارب في التصنيع والقطاع العام. وأطلقت أبيت أداة اختبار استراتيجيات تداول رجعيا في نسختها التجريبية، تتيح للمستخدمين التحاور مع الذكاء الاصطناعي للتحقق من استراتيجياتهم. فالأفراد والخدمات المتخصصة تندفع للأمام بهذه الطريقة، بينما تبطئ البنوك والقطاع العام سرعتها بدلا من ذلك لترسم الترتيب. هذا الفارق في الوتيرة ليس صدفة. فكلما كان لدى المؤسسة ما تخسره أكثر، كلما أدارت مقياس الاستقلالية بتأنٍّ أكبر.</p>

<h2 id="الاستقلالية-ليست-مفتاحا-بل-مقياس-متدرج">الاستقلالية ليست مفتاحا، بل مقياس متدرج</h2>

<p>فكيف تبدو إذن الحافة الأمامية للاستقلالية؟ كشفت SAP كوريا اليوم في سيول عن مخططها للمؤسسة المستقلة ذاتيا. والصورة هي أن وكلاء الذكاء الاصطناعي مدمجون في العمليات والبيانات، يستشعرون ويحكمون وينفذون من تلقاء أنفسهم. ويُنشَر المساعد الحواري جول في أكثر من خمسين موضعا تمتد عبر المالية والمشتريات وسلسلة التوريد والموارد البشرية وخدمة العملاء، وينسق كل مساعد أكثر من مئتي وكيل متخصص تحته لتنفيذ مهام دقيقة وضيقة النطاق. وقُدّمت سامسونج إلكترو ميكانيكس كمثال خفّض زمن توقف النظام من 144 ساعة إلى 34 ساعة، أي بنسبة 76 بالمئة، خلال هذا التحول، من دون إيقاف خطوط الإنتاج.</p>

<p>واللافت أن أحد المحاور الأربعة التي طرحتها SAP هو الحوكمة منذ البداية. فحتى الشركة التي ترسم أكثر الصور استقلالية تبيع الاستقلالية والتحكم كحزمة واحدة. وهذا هو جوهر الأمر. الاستقلالية ليست مفتاحا يُشغَّل ويُطفَأ. بل مقياس متدرج يحدد أي مهمة، وتحت موافقة من، وإلى أي حد يمكن للوكيل أن يعالجها بمفرده. وتفويض عمليات حساسة كالمالية والموارد البشرية وسلسلة التوريد يستلزم الامتثال لقانون حماية المعلومات الشخصية وقانون المعاملات المالية الإلكترونية، وقبل كل شيء إمكانية تتبع التدقيق كشرط مسبق. وكيفية تصميم العلاقة بين ثقافة الموافقات متعددة المراحل الخاصة بكوريا والتنفيذ المستقل للوكيل هي ما يحدد نجاح التبني من فشله.</p>

<h2 id="لماذا-لا-يُنتج-ضخ-المال-استراتيجية">لماذا لا يُنتج ضخ المال استراتيجية</h2>

<p>وظهر اليوم أيضا دليل في الاتجاه المعاكس. أعلنت KT أنها ستستثمر 18 تريليون وون في الاتصالات والذكاء الاصطناعي خلال السنوات الخمس المقبلة. منها 12 تريليون وون لتعزيز أعمال الاتصالات القائمة على مدى ثلاث سنوات، و6 تريليونات وون للبنية التحتية مثل مراكز بيانات الذكاء الاصطناعي والكابلات البحرية على مدى خمس سنوات. غير أن تقييم السوق كان باردا. إذ يشير النقد إلى أن قدرة KT التنافسية في النماذج والوكلاء الخاصة بها تراجعت فعليا، وأنها خسرت أيضا في مشروع الحكومة لنموذج الذكاء الاصطناعي السيادي التأسيسي. فضخ رأس مال هائل لم يترجَم تلقائيا إلى تحول نحو شركة منصة للتحول بالذكاء الاصطناعي.</p>

<p>يكشف هذا التباين هيكل أخبار اليوم. نقيض القدرة ليس العجز بل التحكم، ونقيض الإنفاق ليس الادخار بل التصميم. فالمال المنفَق على البنية التحتية لا يصبح استراتيجية ما لم يُترجَم، في طبقة التنفيذ، إلى استقلالية محكومة. وسبب رسم اتحاد المصارف لخارطة الطريق أولا، وقيام هيئة الموارد المعلوماتية الوطنية بتصنيف الدرجات أولا، هو إدراكهما لصعوبة هذه الترجمة.</p>

<h2 id="السيادة-ليست-مسألة-أين-تحفظها-بل-ماذا-تثبت">السيادة ليست مسألة أين تحفظها، بل ماذا تثبت</h2>

<p>القطعة الأخيرة تعيد كتابة تعريف السيادة. اختير برنامج شركة موريه المحلية للبنية التحتية للذكاء الاصطناعي، المصمم للأجهزة غير المتجانسة، كحالة ابتكارية في قمة الذكاء الاصطناعي من أجل الخير العالمية التي استضافها الاتحاد الدولي للاتصالات التابع للأمم المتحدة. ويجمع هذا البرنامج مسرّعات من شركات مصنّعة مختلفة، ليس فقط إنفيديا بل أيضا AMD وTenstorrent، ويشغّلها كموارد موحدة. والنقطة التي قيّمها الاتحاد الدولي للاتصالات لم تكن رقما في الأداء، بل المساهمة في تحويل منظومة مغلقة مرتبطة بأجهزة محددة إلى بنية مفتوحة ومستدامة.</p>

<p>فإذا فهمنا السيادة على أنها مسألة موقع فقط، أي إبقاء البيانات داخل حدود الدولة، فنحن لا نرى سوى نصف الصورة. فالسيادة الحقيقية هي أيضا مسألة إثبات عدم الارتباط بمورّد محدد. وهذا هو السياق الذي جعل منظمة دولية تصادق على انفتاح لا تتعثر فيه العمليات مهما كان المسرّع الذي تعمل عليه أو النموذج الذي تختاره. والتحكم الذي تريده الصناعات الخاضعة للتنظيم يقوم في النهاية على إمكانية الإثبات هذه نفسها.</p>

<h2 id="لذلك-بنينا-المقياس-المتدرج">لذلك بنينا المقياس المتدرج</h2>

<p>إذا جمعنا أخبار اليوم في سطر واحد، يصبح كالتالي: الصناعات الخاضعة للتنظيم تشتري التحكم قبل القدرة، والإثبات قبل الموقع، والترتيب قبل النشر. وباكسيس، السحابة الأصيلة للوكلاء من ThakiCloud، منتج فعلي مصمم خصيصا لمعاملة هذه المتطلبات كموارد من الدرجة الأولى، وقد أُطلق رسميا بالإصدار v1.1 الشهر الماضي.</p>

<p><img src="/assets/images/banks-buy-control-not-capability-diagram.svg" alt="بنية طبقة تنفيذ باكسيس التي تعامل الاستقلالية كمقياس متدرج لا كمفتاح" /></p>

<p><em>تمر المهام أولا عبر بوابة السياسات، ويُدار مقياس الاستقلالية من L0 إلى L3 بقدر ما تراكمت الثقة فقط. ويجري التنفيذ داخل صندوق عزل معزول، وتُسجَّل كل مرحلة في سجل تدقيق، ويعمل هذا كله داخل حدود سيادية محلية على بنية كوبرنيتيس. ويختار CostRouter النموذج الأمثل لكل مهمة من دون ارتباط بأي مورّد.</em></p>

<p>في باكسيس، تُغلَّف المهارات والأدوات التي يتعامل معها الوكيل كل منها كوحدة مستقلة، وتوضع السياسات وسجلات التدقيق جنبا إلى جنب فوقها. وهذا يعني أن ما تطلبه البنوك حتى قبل خارطة الطريق، أي تحديد ما يمكن تفويضه وإلى أي حد، وإمكانية تتبع التنفيذ لاحقا، ليسا ميزات إضافية بل جزء من الهيكل الأساسي. وتنقسم الاستقلالية إلى مراحل من L0 إلى L3. وهذا هو المقياس المتدرج الذي ذكرناه سابقا، منفَّذا كمفهوم تشغيلي فعلي. يمكنك البدء من مرحلة يوافق فيها إنسان على كل إجراء، ثم رفع المقياس تدريجيا لمهام محددة فقط اكتسبت الثقة.</p>

<p>تُنفَّذ المهام الحساسة داخل صندوق عزل معزول، ما يحد من نطاق أي حادث منذ البداية. وبنية تمنع تداعيات أي خطأ من تجاوز حدود العزل هي، إلى جانب سجل التدقيق، من أول ما تتحقق منه الصناعات الخاضعة للتنظيم قبل التبني. وحيث تلزم السيادة والتشغيل المحلي، تُشغَّل موارد وحدات معالجة الرسوميات وخدمة النماذج بشكل معزول فوق ai-platform القائمة على كوبرنيتيس. والأنظمة ذات الدرجات العالية التي لا يمكن إخراجها للخارج، كتلك الموجودة في هيئة الموارد المعلوماتية الوطنية، والقطاع المالي بمتطلباته الصارمة لفصل الشبكات، هي بالضبط ما يناسب هذا الموضع. والواجب الذي طلبه اتحاد المصارف، أي مقارنة النماذج وتقييمها، يتصل مباشرة بسياسة CostRouter التشغيلية في اختيار النموذج الأمثل لكل مهمة. وهذه هي النقطة التي يلتقي فيها الانفتاح غير المرتبط بأي نموذج مع إمكانية إثبات السيادة.</p>

<p>الآن، بينما ترسم SAP صورة المؤسسة المستقلة ذاتيا وتفكر البنوك في الترتيب الذي ستُدخِل به هذه الصورة، فإن القطعة الناقصة غالبا ليست نموذجا أقوى. بل طبقة تنفيذ قادرة على تشغيل استقلالية محكومة بأمان. وبالنسبة لمؤسسة تفضل إدارة مقياس متدرج بتأنٍّ على تشغيل مفتاح إضافي، فإن معرفة أن هذا المقياس، بمقبضه كاملا، جاهز ومنتظر بالفعل، ستقرّب نقطة الانطلاق قليلا.</p>

<h2 id="المصادر-المرجعية">المصادر المرجعية</h2>

<p>تم التحقق من الخلفية التنظيمية والمعيارية لهذا المقال من المصادر الأولية أدناه. أما أخبار اليوم المحلية المذكورة في المتن (أرباح شركات فردية، مناقصات، إعلانات) فهي مواد إخبارية عاجلة ولم تُربَط بروابط منفصلة.</p>

<ul>
  <li><a href="https://www.law.go.kr/lsInfoP.do?lsiSeq=268543">القانون الأساسي بشأن تطوير الذكاء الاصطناعي وبناء أساس الثقة (قانون الذكاء الاصطناعي الأساسي)، مركز المعلومات القانونية الوطنية</a>: أساس الاستجابة التنظيمية، ساري المفعول منذ يناير 2026</li>
  <li><a href="https://www.law.go.kr/%EB%B2%95%EB%A0%B9/%EA%B0%9C%EC%9D%B8%EC%A0%95%EB%B3%B4%EB%B3%B4%ED%98%B8%EB%B2%95">قانون حماية المعلومات الشخصية، مركز المعلومات القانونية الوطنية</a>: الشرط المسبق لحماية البيانات عند تفويض العمليات الحساسة</li>
  <li><a href="https://www.law.go.kr/%EB%B2%95%EB%A0%B9/%EC%A0%84%EC%9E%90%EA%B8%88%EC%9C%B5%EA%B1%B0%EB%9E%98%EB%B2%95">قانون المعاملات المالية الإلكترونية، مركز المعلومات القانونية الوطنية</a>: إطار التحكم والموافقة الخاص بالقطاع المصرفي</li>
  <li><a href="https://modelcontextprotocol.io/">بروتوكول سياق النموذج (MCP)</a>: المعيار المفتوح الذي يعامل استدعاءات أدوات الوكيل كمستوى تحكم من الدرجة الأولى</li>
  <li><a href="https://aiforgood.itu.int/">قمة الذكاء الاصطناعي من أجل الخير العالمية للاتحاد الدولي للاتصالات</a>: السياق الدولي الذي يوضح أن تبني الذكاء الاصطناعي في الصناعات الخاضعة للتنظيم يمر عبر الحوكمة والمعايير لا القدرة</li>
  <li><a href="https://eur-lex.europa.eu/eli/reg/2024/1689/oj">قانون الذكاء الاصطناعي الأوروبي (اللائحة (الاتحاد الأوروبي) 2024/1689)، EUR-Lex</a>: مثال عبر ولايات قضائية متعددة يقنن الاستقلالية في درجات مخاطر متدرجة</li>
  <li><a href="https://www.nist.gov/itl/ai-risk-management-framework">إطار إدارة مخاطر الذكاء الاصطناعي للمعهد الوطني للمعايير والتقنية NIST</a>: سابقة تنظيمية تؤسس إطار حوكمة قبل القدرة</li>
</ul>]]></content><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;nil, &quot;bio&quot;=&gt;nil, &quot;location&quot;=&gt;&quot;Seoul, Korea&quot;, &quot;email&quot;=&gt;&quot;info@thakicloud.co.kr&quot;, &quot;uri&quot;=&gt;nil, &quot;home&quot;=&gt;nil, &quot;links&quot;=&gt;[{&quot;label&quot;=&gt;&quot;Website&quot;, &quot;icon&quot;=&gt;&quot;fas fa-fw fa-link&quot;, &quot;url&quot;=&gt;&quot;https://thakicloud.co.kr&quot;}, {&quot;label&quot;=&gt;&quot;GitHub&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-github&quot;, &quot;url&quot;=&gt;&quot;https://github.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="agentops" /><category term="agent-governance" /><category term="sovereign-ai" /><category term="enterprise-ai" /><category term="autonomy-levels" /><category term="audit-log" /><category term="agent-native-cloud" /><category term="regulated-industry" /><summary type="html"><![CDATA[لم يطلب اتحاد المصارف الكوري نموذجا أكثر ذكاء، بل طلب ترتيبا لتبني الذكاء الاصطناعي. حين نفحص تحركات القطاعات الخاضعة للتنظيم اليوم عن قرب، يتضح أن نقطة الحسم الحقيقية في تبني الذكاء الاصطناعي هي التحكم لا القدرة.]]></summary></entry><entry xml:lang="ar"><title type="html">حذفنا 423 غيغابايت من GLM-5.2 دون تكميم: قياس الهدر في حقل الأس في BF16</title><link href="https://thakicloud.github.io/ar/llmops/lossless-bf16-compression/" rel="alternate" type="text/html" title="حذفنا 423 غيغابايت من GLM-5.2 دون تكميم: قياس الهدر في حقل الأس في BF16" /><published>2026-07-14T00:00:00+09:00</published><updated>2026-07-14T00:00:00+09:00</updated><id>https://thakicloud.github.io/ar/llmops/lossless-bf16-compression</id><content type="html" xml:base="https://thakicloud.github.io/ar/llmops/lossless-bf16-compression/"><![CDATA[<p><img src="/assets/images/lossless-bf16-compression-hero.png" alt="رسم توضيحي تجريدي لمكعبات زجاجية متراصة تُضغط دون خسارة إلى كتلة أصغر" /></p>

<h2 id="نظرة-عامة">نظرة عامة</h2>

<p>كل فريق خدَم نموذجا كبيرا مفتوح الأوزان محليا يعرف أن العائق الأول هو دائما الحجم. نموذج مثل GLM-5.2، بأكثر من 700 مليار معامل، يقترب من 1.4 تيرابايت في صيغة BF16 الخام، وتوزيعه على عدة وحدات GPU يجعل ذاكرة VRAM تكلفة مباشرة. وكان الجواب على هذه المشكلة دائما تقريبا هو التكميم: خفض 16 بت إلى 8 ثم إلى 4 بل إلى 2، مع التضحية بقليل من الجودة في الطريق.</p>

<p>هذا المقال موجه لقادة الهندسة المسؤولين عن تكلفة الاستدلال، وللممارسين الذين ينشرون النماذج محليا (on-premises)، ولعلماء البيانات في البيئات الخاضعة للتنظيم الذين لا يمكنهم فقدان بت واحد من الدقة. نشر مؤخرا باحث باسم brianbell-x أنه حذف 423 غيغابايت من GLM-5.2. صار 1403 غيغابايت يساوي 980 غيغابايت، والمثير أن الطريقة لم تكن تكميما. لم تكن تشذيبا ولا تقطيرا، بل ضغطا بلا خسارة يعيد بناء الأصل بت ببت عند فك الضغط. فإذا كان شيء بلا خسارة ومع ذلك يتقلص بنسبة 30 بالمئة، فهذا يعني أن الصيغة الأصلية كانت تهدر هذا القدر بالضبط.</p>

<p>بدل أن نأخذ الادعاء على محمل الثقة، قررنا التحقق منه مباشرة. فتحنا 490 مليون وزن مُدرّب فعلي من Qwen2.5-0.5B وقِسنا إنتروبيا حقل الأس في BF16، مؤكدين أن الثمانية بتات المخصصة تحمل فقط 2.64 بت من المعلومات الحقيقية. جاء الحد النظري للضغط بلا خسارة عند 33.5 بالمئة، وهو ما تطابق تقريبا مع 30.17 بالمئة التي حققها المؤلف الأصلي بترميز فعلي. يغطي هذا المقال تلك القياسات ويشرح لماذا يحدث التوفير ليس على القرص فحسب بل في VRAM أيضا.</p>

<h2 id="ما-هي-هذه-التقنية">ما هي هذه التقنية</h2>

<p>علينا أولا أن نرى كيف يخزّن BF16 رقما واحدا. يقسم BF16 (brain floating point 16) الستة عشر بت إلى ثلاثة أجزاء: بت إشارة واحد، و8 بتات أس، و7 بتات جزء عشري (mantissa). يحصل الأس على 8 بتات كاملة لأن BF16 مصمم للحفاظ على نطاق ديناميكي واسع مماثل لـ FP32، حتى يستطيع تمثيل قيم كبيرة جدا أو صغيرة جدا.</p>

<p>المشكلة أن أوزان نموذج مُدرّب بالكاد تستخدم هذا النطاق الواسع. في شبكة عصبية مدربة جيدا، تتجمع معظم الأوزان حول قيم صغيرة قرب الصفر. ونتيجة لذلك يتكتل حقل الأس حول حفنة من القيم، ومن بين 256 احتمالا تستطيع الثمانية بتات تمثيلها، لا يظهر فعليا سوى جزء ضئيل. هنا يكمن الهدر: تُخصَّص 8 بتات، لكن المعلومات المحمولة فعليا أقل بكثير.</p>

<p>فكرة الضغط بلا خسارة بسيطة. رمّز حقل الأس منخفض المعلومات بترميز إنتروبي إلى تمثيل قصير، واترك الثمانية بتات من الإشارة والجزء العشري كما هي لأنها شبه غير قابلة للضغط. يجمع تنفيذ المؤلف الأصلي الإشارة والأس في رمز من 4 بتات يشير إلى جدول بحث يضم أكثر 15 تركيبة أُس شيوعا. أما القيم النادرة غير الموجودة في الجدول فتُخزَّن منفصلة بصيغتها الكاملة. تلخّص الصورة التالية هذه العملية.</p>

<pre><code class="language-mermaid">flowchart TB
    A["وزن BF16 مُدرّب&lt;br/&gt;16 بت = إشارة 1 + أس 8 + جزء عشري 7"] --&gt; B["تحليل حقل الأس&lt;br/&gt;يظهر عدد قليل من 256 قيمة"]
    B --&gt; C["قياس إنتروبيا الأس&lt;br/&gt;تخصيص 8 بت -&gt; نحو 2.64 بت"]
    C --&gt; D["استبدال الإشارة+الأس برمز 4 بت&lt;br/&gt;أكثر 15 تركيبة شيوعا -&gt; جدول بحث"]
    D --&gt; E["الحفاظ على الجزء العشري 7 بت كما هو&lt;br/&gt;بلا خسارة بت ببت"]
    E --&gt; F["تخزين الأسات النادرة بصيغتها الكاملة&lt;br/&gt;مع الحفاظ على العنونة ثابتة العرض"]
    F --&gt; G["الوزن المضغوط&lt;br/&gt;نحو 10.6 بت لكل وزن (توفير نحو 33%)"]
</code></pre>

<p>يختلف هذا النهج جوهريا عن التكميم. فالتكميم يقتطع الجزء العشري أو يقرّب القيم، مسقِطا الدقة فعليا. أما الضغط بلا خسارة فلا يسقط شيئا. إنه يعيد كتابة المعلومات نفسها برمز أقصر فقط، فيعيد فك الضغط الأوزان الأصلية دون خطأ بت واحد. تنتمي أعمال حديثة مثل DFloat11 و ZipNN إلى العائلة نفسها. أفاد ZipNN أن حقل الأس في BF16 لأوزان نماذج اللغة المدربة يحمل نحو 2.6 بت فقط من إنتروبيا شانون ضمن تخصيصه البالغ 8 بت. ما أردنا معرفته هو ما إذا كان هذا الرقم يتكرر على نموذج حقيقي.</p>

<h2 id="قياس-إنتروبيا-الأس-بأنفسنا">قياس إنتروبيا الأس بأنفسنا</h2>

<p>للتحقق، فتحنا نموذج BF16 مُدرّبا حقيقيا واحدا في بيئة عمل معزولة. كان الهدف Qwen2.5-0.5B، وهو نموذج منشور فعلي بـ 490 مليون وزن. حللنا البنية الثنائية لملف safetensors مباشرة، وقرأنا كل مصفوفة BF16 كأعداد صحيحة من 16 بت، واستخرجنا الثمانية بتات الخاصة بالأس، وحسبنا توزيع القيم وإنتروبيا شانون. لم نستخدم أي تقدير من إطار عمل، بل الأرقام المستخرجة من بايتات المصفوفة الفعلية فقط.</p>

<p>في ما يلي شفرة القياس الأساسية، وهي الجزء الذي يرى قيمة BF16 كعدد صحيح من 16 بت ويقتطع حقل الأس.</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">numpy</span> <span class="k">as</span> <span class="n">np</span>

<span class="k">def</span> <span class="nf">bf16_exponent_bytes</span><span class="p">(</span><span class="n">raw</span><span class="p">:</span> <span class="n">np</span><span class="p">.</span><span class="n">ndarray</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">np</span><span class="p">.</span><span class="n">ndarray</span><span class="p">:</span>
    <span class="c1"># raw = قيم BF16 مرئية كـ uint16. الأس = البتات 14..7 (8 بت)
</span>    <span class="nf">return </span><span class="p">((</span><span class="n">raw</span> <span class="o">&gt;&gt;</span> <span class="mi">7</span><span class="p">)</span> <span class="o">&amp;</span> <span class="mh">0xFF</span><span class="p">).</span><span class="nf">astype</span><span class="p">(</span><span class="n">np</span><span class="p">.</span><span class="n">uint8</span><span class="p">)</span>

<span class="c1"># حلّل ترويسة safetensors، اقرأ مصفوفات BF16 كـ uint16، واحسب
# إنتروبيا شانون من تكرار قيم الأس.
</span></code></pre></div></div>

<p>كانت النتيجة أكثر إثارة مما توقعنا. في ما يلي ما أظهره مسح عبر 290 مصفوفة BF16 بمجموع 494 مليون وزن.</p>

<table>
  <thead>
    <tr>
      <th>البند</th>
      <th>القيمة المقاسة</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>عدد مصفوفات BF16</td>
      <td>290</td>
    </tr>
    <tr>
      <td>إجمالي الأوزان</td>
      <td>494,032,768</td>
    </tr>
    <tr>
      <td>قيم الأس الظاهرة فعليا</td>
      <td>38 من أصل 256</td>
    </tr>
    <tr>
      <td>إنتروبيا شانون لحقل الأس</td>
      <td><strong>2.6386 بت</strong> (من 8 مخصصة)</td>
    </tr>
    <tr>
      <td>نصيب أكثر 3 أسات شيوعا</td>
      <td>نحو 72 بالمئة من كل الأوزان</td>
    </tr>
    <tr>
      <td>البت لكل وزن بعد الضغط</td>
      <td>16 بت -&gt; 10.64 بت</td>
    </tr>
    <tr>
      <td>التوفير النظري بلا خسارة</td>
      <td><strong>33.5 بالمئة</strong></td>
    </tr>
  </tbody>
</table>

<p>يستطيع حقل الأس تمثيل 256 قيمة، لكن ظهرت 38 فقط، وغطت أعلى 3 منها 72 بالمئة من كل الأوزان. كانت إنتروبيا شانون 2.6386 بت، مطابقة تقريبا لـ 2.6 بت التي أفاد بها ZipNN. بعبارة أخرى، كان حقل الأس البالغ 8 بت يحمل 2.64 بت فقط من المعلومات، والبتات الـ 5.36 المتبقية هدر خالص.</p>

<p>إزالة هذا الهدر بلا خسارة تخفض البت لكل وزن من 16 إلى 10.64، مع الحفاظ على الثمانية بتات من الإشارة والجزء العشري وضغط الأس حتى حده الإنتروبي. وكتوفير، هذا يعادل 33.5 بالمئة.</p>

<p><img src="/assets/images/lossless-bf16-compression-results.png" alt="مخطط لقياس Qwen2.5-0.5B يظهر أن حقل الأس في BF16 يستخدم فعليا 2.64 بت فقط، وأن ضغطه بلا خسارة يقلّص GLM-5.2 من 1403 غيغابايت إلى نحو 980 غيغابايت" /></p>

<p>بإسقاط هذه الـ 33.5 بالمئة على حجم GLM-5.2 (753B)، يصبح 1403 غيغابايت نحو 933 غيغابايت. أما القيمة التي حققها المؤلف الأصلي بترميز فعلي فكانت 980 غيغابايت، أي توفير 30.17 بالمئة. الفجوة البالغة نحو 3 نقاط مئوية بين حدنا النظري (33.5 بالمئة) والتنفيذ الفعلي (30.17 بالمئة) ليست صدفة. فمرمّزات الإنتروبيا الفعلية لا تبلغ حد شانون كاملا، ويجب تخزين قيم الأس النادرة بصيغتها الكاملة، ويجب أن تكون الرموز ثابتة العرض للسماح بالوصول العشوائي على GPU، وكل ذلك يضيف عبئا طفيفا. أن تتقارب النظرية والتنفيذ إلى هذا الحد دليل قوي على أن الادعاء الأصلي صحيح وأن النهج سليم.</p>

<h2 id="لماذا-تتقلص-vram-أيضا-على-gpu">لماذا تتقلص VRAM أيضا على GPU</h2>

<p>هنا النقطة الأسهل إساءة فهمها. معظم الضغط يتقلص على القرص فقط ويعود إلى حجمه الكامل لحظة تحميل النموذج على GPU، لأنه يجب فك ضغطه للحساب. لكن الـ 30 بالمئة في هذا الضغط بلا خسارة هي رقم VRAM لا رقم قرص. وهذا ما يجعل هذه التقنية مختلفة عن ضغط الملفات العادي.</p>

<p>السر في الرموز ثابتة العرض. لأن رمز كل وزن مضغوط بالعرض نفسه، يمكنك حساب موضع الوزن رقم N بالضبط دون فك ضغط. لا حاجة لتمرير فك تعبئة منفصل ولا لنسخة ثانية بالصيغة الأصلية. تقرأ نواة GPU البايتات المضغوطة مباشرة وتبحث عن كل رمز في جدول صغير محفوظ في المسجلات (registers) أثناء إجراء الضرب. الصيغة الكاملة من 16 بت لا توجد أبدا في VRAM. لذلك تظهر الـ 30 بالمئة في البصمة الفعلية للذاكرة، لا على القرص فحسب.</p>

<p>الأثر العملي كبير. خدمة نموذج 1403 غيغابايت تتطلب 18 بطاقة H100 سعة 80 غيغابايت على الأقل. ومع خفض الضغط بلا خسارة له إلى 980 غيغابايت، ينخفض ذلك إلى نحو 13. توفّر خمس وحدات GPU دون فقدان بت واحد من الجودة. إذا كان التكميم مقايضة للجودة بالذاكرة، فهذه التقنية أقرب إلى وجبة غداء مجانية. لكنها ليست مجانية تماما، ونتناول الثمن أدناه.</p>

<h2 id="الآثار-على-منتجات-thakicloud">الآثار على منتجات ThakiCloud</h2>

<p>هذه التقنية جذابة بشكل خاص من منظور ai-platform لدى ThakiCloud. الـ ai-platform بنية تحتية تخدم النماذج لبيئات عملاء متنوعة فوق Kubernetes وجدولة GPU المبنية على Kueue. كثير من العملاء المحليين يطلبون السحابة المحلية والسيادية، وفي تلك البيئات تكون كل وحدة GPU نفقة رأسمالية ومهلة توريد. يقلّل الضغط بلا خسارة عدد وحدات GPU المطلوبة دون التضحية بأي دقة، ما يجعله ورقة أسهل في الإقناع من التكميم أمام العملاء الحساسين للجودة في القطاعات المنظمة. في المال أو الرعاية الصحية، حيث تصبح قابلية إعادة إنتاج مخرجات النموذج خاضعة للتدقيق، يمكن أن يكون التطابق بت ببت متطلبا بحد ذاته.</p>

<p>الأثر أكبر في الإعدادات متعددة المستأجرين التي تخدم نماذج كبيرة بـ vLLM أو SGLang. استعادة 30 بالمئة من VRAM تتيح تركيب نافذة سياق أكبر على العتاد نفسه، أو تشغيل مزيد من الطلبات المتزامنة، أو تحميل نموذج أكبر على عقدة واحدة. تراكم هذا النوع من كفاءة الموارد بالضبط هو حيث ينافس ai-platform على تكلفة خدمة منخفضة. الضغط بلا خسارة محور متعامد مع التكميم و paged attention والتوازي التنسوري، فيُضاف مباشرة فوق التحسينات القائمة.</p>

<p>والخدمة منخفضة التكلفة تغذّي بدورها اقتصاديات الوكلاء. Paxis، وهو مستوى التحكم Agent-Native Cloud لدى ThakiCloud، يشغّل مئات المهارات في صناديق رمل معزولة ويمرّر كل فعل عبر بوابات سياسة وسجلات تدقيق، وهذه أحمال عمل الوكلاء تستدعي نماذج كبيرة مفتوحة الأوزان مرارا. وكلما انخفضت تكلفة وحدة الخدمة، أمكن تشغيل الوكلاء بجرأة أكبر، فتكون كفاءة موارد ai-platform ركيزة لاقتصاديات تشغيل Paxis.</p>

<h2 id="القيود-والاعتراضات">القيود والاعتراضات</h2>

<p>هذه التقنية ليست علاجا شاملا. أولا، فرضية انخفاض إنتروبيا الأس تصح فقط في النماذج المدربة جيدا. يجب أن تتجمع الأوزان قرب الصفر ليتكتل الأس، لذا فالنماذج غير المدربة بما يكفي، أو ذات التوزيعات الواسعة، أو المكمَّمة بشدة أصلا، ستشهد توفيرا أقل. كما أن قياسنا يأتي من نموذج واحد، فالأرقام الفعلية ستتغير بحسب البنية وطريقة التدريب.</p>

<p>ثانيا، فك رموز الضغط في الوقت الحقيقي يتطلب من نواة GPU معالجة البحث والضرب معا. وإن لم تُحسَّن تلك النواة جيدا، فقد ينتهي بك الأمر إلى توفير الذاكرة مع زيادة زمن الاستجابة. قد تعمل أسرع في أحمال العمل المقيدة بعرض نطاق الذاكرة، لكن هذا يعتمد بشدة على العتاد وتنفيذ النواة، لذا يجب قياس الأداء على GPU المستهدف قبل النشر.</p>

<p>ثالثا، بما أنه بلا خسارة، لا يستطيع هذا النهج بلوغ توفير الضغط الشديد مثل التكميم إلى 4 بت. توفير 30 بالمئة ممتاز، لكنه يخدم غرضا مختلفا عن التكميم الذي يتنازل عن قليل من الجودة ليتقلص 4 أضعاف. الاثنان متكاملان لا متنافسان، والجواب الواقعي يجمعهما: ضغط بلا خسارة حيث تكون الدقة حاسمة تماما، وتكميم حيث يوجد فسحة في الجودة.</p>

<p>أخيرا، تستند هذه النتيجة إلى تجربة عامة لباحث واحد وإلى إعادة إنتاج صغيرة النطاق من جانبنا. تطبيقها في الإنتاج يتطلب التحقق المستقل من التطابق بت ببت للضغط وإعادة البناء، ومن أداء النواة، ومن توفير VRAM الفعلي على النموذج المستهدف وحزمة الخدمة.</p>

<h2 id="المصادر">المصادر</h2>

<ul>
  <li>brianbell-x, “Lossless Model Compression Experiment”: <a href="https://brianbell-x.github.io/weight-compression/">https://brianbell-x.github.io/weight-compression/</a></li>
  <li>النموذج المقاس: Qwen/Qwen2.5-0.5B (Hugging Face)</li>
  <li>أعمال ذات صلة: ZipNN, DFloat11 (عائلة ترميز إنتروبيا الأس في BF16)</li>
</ul>]]></content><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;nil, &quot;bio&quot;=&gt;nil, &quot;location&quot;=&gt;&quot;Seoul, Korea&quot;, &quot;email&quot;=&gt;&quot;info@thakicloud.co.kr&quot;, &quot;uri&quot;=&gt;nil, &quot;home&quot;=&gt;nil, &quot;links&quot;=&gt;[{&quot;label&quot;=&gt;&quot;Website&quot;, &quot;icon&quot;=&gt;&quot;fas fa-fw fa-link&quot;, &quot;url&quot;=&gt;&quot;https://thakicloud.co.kr&quot;}, {&quot;label&quot;=&gt;&quot;GitHub&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-github&quot;, &quot;url&quot;=&gt;&quot;https://github.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="llmops" /><category term="lossless-compression" /><category term="bf16" /><category term="quantization" /><category term="vram" /><category term="llmops" /><category term="self-hosting" /><category term="vllm" /><category term="paxis" /><summary type="html"><![CDATA[ادعى أحدهم أنه قلّص GLM-5.2 من 1403 غيغابايت إلى 980 غيغابايت. لا تكميم ولا تشذيب، بل ضغط بلا خسارة مطابق للأصل بت ببت. كان من الصعب تصديق ذلك، لذا فتحنا 490 مليون وزن من Qwen2.5-0.5B وقِسنا بأنفسنا إنتروبيا حقل الأس في BF16. اتضح أن الثمانية بتات المخصصة لا تحمل فعليا سوى 2.64 بت من المعلومات، ما يعني إمكانية إزالة نحو 33.5 بالمئة دون خسارة. يشرح هذا المقال من أين يأتي هذا الهدر، ولماذا يظهر التوفير ليس على القرص فحسب بل في ذاكرة VRAM أيضا، بالاستناد إلى بيانات مقاسة.]]></summary></entry><entry xml:lang="ar"><title type="html">أين تضع نموذجا مكمَّما؟ أربعة أنماط للنشر مع AWS و Unsloth</title><link href="https://thakicloud.github.io/ar/llmops/unsloth-aws-quantization-deploy/" rel="alternate" type="text/html" title="أين تضع نموذجا مكمَّما؟ أربعة أنماط للنشر مع AWS و Unsloth" /><published>2026-07-14T00:00:00+09:00</published><updated>2026-07-14T00:00:00+09:00</updated><id>https://thakicloud.github.io/ar/llmops/unsloth-aws-quantization-deploy</id><content type="html" xml:base="https://thakicloud.github.io/ar/llmops/unsloth-aws-quantization-deploy/"><![CDATA[<p><img src="/assets/images/unsloth-aws-quantization-deploy-hero.png" alt="رسم توضيحي تجريدي لنموذج كبير يُقطَّر إلى طبقات مضغوطة تتدفق نحو بنية خدمة سحابية" /></p>

<h2 id="نظرة-عامة">نظرة عامة</h2>

<p>هناك بالفعل مقالات كثيرة عن كيفية تكميم نموذج. GPTQ و AWQ و GGUF و Unsloth Dynamic؛ وصفة لتقليص نموذج 16 بت إلى 4 بت تبعد بضع عمليات بحث. لكن النقطة التي تتعثر عندها الفرق فعلا هي ما يأتي بعد ذلك. أين بالضبط تضع ذلك الملف ذا الـ 4 بت، وكيف؟ هل تشغّله مباشرة على مثيل EC2، أم تغلّفه في نقطة نهاية SageMaker، أم تدرجه في حجيرة على عنقود EKS الذي تديره أصلا؟ لا يوجد جواب واحد، لكن توجد خريطة تتفرع بحسب صيغة ملف النموذج.</p>

<p>هذا المقال موجه لمهندسي المنصات الذين ينشرون نماذج مفتوحة الأوزان على بنيتهم التحتية، وللممارسين الذين يصممون تكلفة الاستدلال. نشرت AWS مؤخرا دليلا مع Unsloth بعنوان “Deploying quantized models on Amazon SageMaker AI with Unsloth” ينظّم قرار النشر هذا في أربعة أنماط. نحلل المنطق الأساسي لهذا الدليل، ونشرح لماذا تحدد صيغة ملف النموذج بيئة التشغيل، وبيئة التشغيل بدورها تحدد خدمة AWS، ونربط هذا التفكير بكيفية تصميم بنية مثل ThakiCloud التي تقوم بالخدمة متعددة المستأجرين على Kubernetes.</p>

<p>نوضّح أمرا مسبقا: أمثلة الأوامر هنا مسارات تم التحقق منها في دليل AWS الرسمي ووثائق Unsloth، ولم نختلق أي أرقام قياس أداء. بيئة تحققنا هي Apple Silicon، لذا لم نتمكن فعليا من تشغيل وإعادة إنتاج تكميم Unsloth وخدمة vLLM المعتمدين على CUDA محليا. لذلك فهذا المقال ليس تقرير تجربة بل تحليل بنيوي لدليل موثوق.</p>

<h2 id="لماذا-يعود-التكميم-مهما-عند-النشر">لماذا يعود التكميم مهما عند النشر</h2>

<p>يُناقَش التكميم عادة بوصفه مسألة سرعة تدريب أو استدلال فقط. لكن دليل AWS يشير إلى أن التكميم عند مرحلة النشر يغيّر ثلاثة أمور دفعة واحدة. الأول قرار المثيل. فمع صيرورة نموذج كبير قابلا للتشغيل عمليا على GPU أصغر بل على CPU، تنخفض فئة المثيل المطلوبة نفسها. الثاني ملف تعريف الإقلاع والتخزين. فملفات النموذج الأصغر تُنقل وتُخزَّن أسرع، ما يساعد على الإقلاع البارد والتوسع الأفقي. الثالث مرونة النشر. إذ يمكنك اختيار نموذج أصغر للاستدلال الحساس للتكلفة وتصدير أعلى دقة للاستدلال الحساس للجودة.</p>

<p>قوة Unsloth أنه يربط الضبط الدقيق والتشغيل والتصدير والنشر في سير عمل واحد. وبخاصة، يتيح تكميم Unsloth Dynamic v2.0 تشغيل وضبط نماذج LLM المكمَّمة مع الحفاظ على الدقة قدر الإمكان، ويُفاد أن التدريب المدرك للتكميم (QAT)، المبني بالتعاون مع PyTorch، يستعيد جزءا كبيرا من الدقة المفقودة في التكميم الساذج إلى 4 بت. بعبارة أخرى، يمكنك اختيار موضعك بدقة على مقايضة الجودة مقابل الحجم قبل النشر.</p>

<h2 id="الصيغة-تحدد-بيئة-التشغيل-وبيئة-التشغيل-تحدد-aws">الصيغة تحدد بيئة التشغيل، وبيئة التشغيل تحدد AWS</h2>

<p>الفكرة الجوهرية للدليل: لا تبدأ قرار النشر من “أي خدمة أستخدم”. بل ابدأ من “إلى أي صيغة أصدّر”، وسيتبع الباقي طبيعيا. هناك فرعان.</p>

<p>الأول GGUF. وهو صيغة ملف واحد تجمع الأوزان والمُرمِّز (tokenizer) والبيانات الوصفية معا، وتستخدمه بيئات تشغيل خفيفة مثل llama.cpp و Ollama و Unsloth. على AWS يُربَط هذا الفرع بـ Amazon EC2 أو حاوية SageMaker AI مخصصة. إنه المسار حين تريد التحقق بخفة والاحتفاظ بتحكم مباشر.</p>

<p>الثاني safetensors المدمجة. فدمج وتصدير أوزان 16 بت أو 8 بت أو FP8 أو 4 بت بواسطة Unsloth يتيح التشغيل على محركات عالية الإنتاجية مثل vLLM و SGLang، ويُربَط ذلك بحاويات الاستدلال للنماذج الكبيرة (LMI) في SageMaker AI، أو EKS، أو ECS. إنه مسار الخدمة الإنتاجية حيث تهمّ الإنتاجية والتوسع. تلخّص الصورة التالية هذا الفرع.</p>

<pre><code class="language-mermaid">flowchart TB
    A["الضبط الدقيق أو التنزيل بواسطة Unsloth"] --&gt; B{"اختيار بيئة تشغيل الخدمة"}
    B --&gt;|"ملف واحد خفيف"| C["تصدير GGUF&lt;br/&gt;أوزان + مُرمِّز + بيانات وصفية"]
    B --&gt;|"محرك عالي الإنتاجية"| D["تصدير safetensors مدمجة&lt;br/&gt;16 / 8 / FP8 / 4 بت"]
    C --&gt; E["llama.cpp · Ollama · Unsloth"]
    D --&gt; F["vLLM · SGLang"]
    E --&gt; G["Amazon EC2&lt;br/&gt;أو حاوية SageMaker مخصصة"]
    F --&gt; H["حاوية SageMaker LMI&lt;br/&gt;أو EKS · ECS"]
    G --&gt; I["التحقق من بيئة التشغيل على EC2"]
    H --&gt; I
    I --&gt; J["ترقية نفس تركيبة الملف+بيئة التشغيل&lt;br/&gt;إلى نشر مُدار"]
</code></pre>

<h2 id="الإعداد-والدمج">الإعداد والدمج</h2>

<p>سير العمل الذي يعرضه الدليل من أربع خطوات. اضبط أو نزّل نموذجا في Unsloth، صدّره بالصيغة المطابقة لبيئة التشغيل المستهدفة، تحقق من بيئة التشغيل على EC2 أو محليا، ثم رقِّ نفس تركيبة الملف وبيئة التشغيل مباشرة إلى نشر مُدار. عبارة “نفس تركيبة الملف وبيئة التشغيل” مهمة هنا، لأنه إذا اختلفت الصيغة أو المحرك بين التحقق والإنتاج، يتسلل سلوك غير متوقع.</p>

<p>يتفرع التصدير من Unsloth بحسب بيئة التشغيل المستهدفة. مسار GGUF يبدو هكذا.</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># تصدير GGUF (مسار llama.cpp / Ollama / EC2)
</span><span class="n">model</span><span class="p">.</span><span class="nf">save_pretrained_gguf</span><span class="p">(</span>
    <span class="sh">"</span><span class="s">qwen-merged-gguf</span><span class="sh">"</span><span class="p">,</span>
    <span class="n">tokenizer</span><span class="p">,</span>
    <span class="n">quantization_method</span><span class="o">=</span><span class="sh">"</span><span class="s">q4_k_m</span><span class="sh">"</span><span class="p">,</span>
<span class="p">)</span>
</code></pre></div></div>

<p>مسار safetensors المدمجة يستهدف vLLM أو SGLang.</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># تصدير safetensors مدمجة (مسار vLLM / SGLang / SageMaker LMI)
</span><span class="n">model</span><span class="p">.</span><span class="nf">save_pretrained_merged</span><span class="p">(</span>
    <span class="sh">"</span><span class="s">qwen-merged-16bit</span><span class="sh">"</span><span class="p">,</span>
    <span class="n">tokenizer</span><span class="p">,</span>
    <span class="n">save_method</span><span class="o">=</span><span class="sh">"</span><span class="s">merged_16bit</span><span class="sh">"</span><span class="p">,</span>  <span class="c1"># أو merged_4bit، إلخ
</span><span class="p">)</span>
</code></pre></div></div>

<p>يمكن التحقق من خدمة النموذج المدمج المصدَّر مباشرة بـ vLLM.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># التحقق من الخدمة على EC2 أو محليا</span>
vllm serve ./qwen-merged-16bit <span class="nt">--port</span> 8000
</code></pre></div></div>

<p>للنشر المبني على الحاويات، توفر حاويات التعلم العميق من AWS (DLCs) بيئات Docker محسّنة عبر EC2 و EKS و ECS. وحاوية vLLM DLC على وجه الخصوص مضبوطة للاستدلال عالي الأداء وتدعم أصلا التوازي التنسوري وتوازي خطوط الأنابيب عبر عدة وحدات GPU وعقد. أي أن تكوينا تم التحقق منه على مثيل EC2 واحد يتدفق بسلاسة إلى حجيرة EKS تستخدم بيئة التشغيل نفسها للتوسع الأفقي.</p>

<h2 id="الآثار-على-منتجات-thakicloud">الآثار على منتجات ThakiCloud</h2>

<p>تتداخل خريطة النشر هذه مباشرة مع فلسفة تصميم ai-platform لدى ThakiCloud. يخدم ai-platform النماذج فوق Kubernetes وجدولة GPU المبنية على Kueue، والمبدأ الذي يذكره دليل AWS، وهو أن الصيغة تحدد بيئة التشغيل وبيئة التشغيل تحدد البنية التحتية، غير مقيّد بسحابة بعينها. فتقسيم GGUF للتحقق الخفيف والنشر الطرفي مقابل safetensors المدمجة للخدمة عالية الإنتاجية المبنية على vLLM ينطبق بالتساوي سواء كان EKS من AWS أو Kubernetes محلي. بل إن ThakiCloud، الذي لديه كثير من العملاء الذين يطلبون السحابة المحلية والسيادية، يستفيد أكثر من حيث قابلية النقل بتوحيد مسار النشر عبر صيغة الملف وبيئة التشغيل بدل الارتباط بخدمة مُدارة بعينها.</p>

<p>عمليا، يستطيع ai-platform الجمع بين التوازي التنسوري وتوازي خطوط الأنابيب اللذين توفرهما vLLM DLC وبين طابور Kueue للتشغيل متعدد المستأجرين. يمكنه اختيار تصدير بدقة مختلفة لكل عميل، مسندا نماذج 4 بت المدمجة للأحمال الحساسة للتكلفة و FP8 أو 16 بت للحساسة للجودة. وإذا استخدمت QAT من Unsloth لاستعادة الدقة حتى عند 4 بت، تتسع النقطة التي تربح فيها تكلفة خدمة منخفضة وجودة معا. هذا المطابقة الدقيقة بين الصيغة وبيئة التشغيل هي بالضبط خلفية منافسة ai-platform على تكلفة وحدة خدمة منخفضة.</p>

<p>وهذه الخدمة منخفضة التكلفة تغذّي بدورها اقتصاديات الوكلاء. Paxis، مستوى التحكم Agent-Native Cloud لدى ThakiCloud، يشغّل المهارات في صناديق رمل معزولة ويستدعي نماذج كبيرة مفتوحة الأوزان مرارا، فإذا كمّمت نموذج مجال مضبوطا بواسطة Unsloth ووضعته على ai-platform، أمكن لوكلاء Paxis استهلاكه بثمن زهيد. توحيد النشر المبني على الصيغة هو بحد ذاته البنية التي تخفض تكلفة وحدة أحمال عمل الوكلاء.</p>

<h2 id="القيود-والاعتراضات">القيود والاعتراضات</h2>

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

<p>ثانيا، تأتي ملاءمة الخدمات المُدارة بثمن هو التكلفة والارتباط. حاويات SageMaker LMI تخفّض العبء التشغيلي، لكن في البيئات ذات المتطلبات المحلية القوية، قد يكون تشغيل بيئة التشغيل نفسها بنفسك على EKS أو Kubernetes الخاص بك أفضل للتحكم والتكلفة. كون دليل AWS خريطة جيدة أمر منفصل عن الحكم بنقل تلك الخريطة إلى بنيتك التحتية، وهو قرار كل فريق بنفسه.</p>

<p>ثالثا، كما أُشير أعلاه، هذا المقال تحليل بنيوي دون إعادة إنتاج محلية. قبل التبني الفعلي، يجب تصدير النموذج المستهدف بواسطة Unsloth وخدمته على vLLM وتأكيد زمن الاستجابة والإنتاجية والدقة لكل صيغة عبر قياساتك الخاصة.</p>

<h2 id="المصادر">المصادر</h2>

<ul>
  <li>AWS Machine Learning Blog, “Deploying quantized models on Amazon SageMaker AI with Unsloth”: <a href="https://aws.amazon.com/blogs/machine-learning/deploying-quantized-models-on-amazon-sagemaker-ai-with-unsloth/">https://aws.amazon.com/blogs/machine-learning/deploying-quantized-models-on-amazon-sagemaker-ai-with-unsloth/</a></li>
  <li>Unsloth Documentation: <a href="https://unsloth.ai/docs">https://unsloth.ai/docs</a></li>
  <li>AWS, “Deploy LLMs on Amazon EKS using vLLM Deep Learning Containers”</li>
</ul>]]></content><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;nil, &quot;bio&quot;=&gt;nil, &quot;location&quot;=&gt;&quot;Seoul, Korea&quot;, &quot;email&quot;=&gt;&quot;info@thakicloud.co.kr&quot;, &quot;uri&quot;=&gt;nil, &quot;home&quot;=&gt;nil, &quot;links&quot;=&gt;[{&quot;label&quot;=&gt;&quot;Website&quot;, &quot;icon&quot;=&gt;&quot;fas fa-fw fa-link&quot;, &quot;url&quot;=&gt;&quot;https://thakicloud.co.kr&quot;}, {&quot;label&quot;=&gt;&quot;GitHub&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-github&quot;, &quot;url&quot;=&gt;&quot;https://github.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="llmops" /><category term="unsloth" /><category term="quantization" /><category term="aws" /><category term="sagemaker" /><category term="vllm" /><category term="llmops" /><category term="self-hosting" /><category term="paxis" /><summary type="html"><![CDATA[كثير من الفرق تعرف كيف تقلّص نموذجا إلى 4 بت باستخدام Unsloth. لكن لحظة اتخاذ القرار بوضع ذلك الملف على EC2، أو تغليفه في نقطة نهاية SageMaker، أو تشغيله كحجيرة (pod) في EKS، يتعثر معظمها. يقدم دليل AWS المشترك مع Unsloth خريطة واضحة لذلك. الفكرة الأساسية: صيغة ملف النموذج تحدد بيئة التشغيل، وبيئة التشغيل تحدد خدمة AWS. يغطي هذا المقال أين يذهب GGUF، وأين تذهب safetensors المدمجة، وكيف ينسجم هذا التفكير مع بنية الخدمة لدى ThakiCloud.]]></summary></entry><entry xml:lang="ar"><title type="html">الطبقات الخمس التي لا ترسمها خريطة النماذج: معركة الذكاء الاصطناعي في 2026 تُحسم أسفل المكدس</title><link href="https://thakicloud.github.io/ar/news/stack-layers-model-map-misses/" rel="alternate" type="text/html" title="الطبقات الخمس التي لا ترسمها خريطة النماذج: معركة الذكاء الاصطناعي في 2026 تُحسم أسفل المكدس" /><published>2026-07-14T00:00:00+09:00</published><updated>2026-07-14T00:00:00+09:00</updated><id>https://thakicloud.github.io/ar/news/stack-layers-model-map-misses</id><content type="html" xml:base="https://thakicloud.github.io/ar/news/stack-layers-model-map-misses/"><![CDATA[<p>حين نتحدث عن سوق الذكاء الاصطناعي، عادة ما نصطف النماذج في قائمة. توجد النماذج الطليعية، ثم النماذج الصينية بنصف السعر، ثم نماذج فائقة الرخص لا يُصدَّق سعرها، ثم نماذج داخلية تبنيها شركات الخدمات، ونماذج تعمل على الجهاز نفسه. هذه الخريطة دقيقة. إنها تُظهر بوضوح أي النماذج موجودة.</p>

<p>لكن هذه الخريطة لا تجيب عن سؤال واحد: من يفوز، ومن يستحوذ على الهامش. جواب هذا السؤال ليس فوق النموذج، بل أسفله. على أي رقاقة يعمل، وكيف يُقدَّم، وبماذا يُقيَّم ويُراقَب، وبأي ترخيص صدر، وما هي الأداة المنتجة التي تلفّه. هذه الطبقات الخمس هي ساحة المعركة الحقيقية. يرسم هذا المقال خريطة للطبقات الخمس التي تتجاهلها خريطة سرد النماذج، بالاستناد إلى بيانات حقيقية من منتصف 2026، ويشير إلى أن ثلاثاً من هذه الطبقات الخمس تقف بالضبط حيث تقف منصتنا.</p>

<p><img src="/assets/images/stack-layers-model-map-misses-diagram.svg" alt="الطبقات الخمس أسفل النموذج والمواضع الثلاثة التي تقف فيها ThakiCloud" /></p>

<p><em>خريطة النماذج تُظهر فقط ما هو موجود. من بين الطبقات الخمس أسفلها، رقائق الاستدلال واقتصاديات التقديم والتقييم والمراقبة هي الطبقات التي تحدد الهامش والمعركة، وهي بالضبط حيث تقف ThakiCloud. أما الترخيص والأداة فيحددان من سيبني خندقاً دفاعياً فوقهما.</em></p>

<h2 id="الطبقة-الأولى-رقائق-الاستدلال-أصبحت-ساحة-معركة-مستقلة">الطبقة الأولى: رقائق الاستدلال أصبحت ساحة معركة مستقلة</h2>

<p>بمعزل عن جودة النموذج، أصبح “كم رمزاً سريعاً بكم تكلفة رخيصة” محوراً تنافسياً بحد ذاته. تقول Cerebras إنها تشغّل نموذج Kimi K2.6 بحجم تريليون معامل بمعدل 981 رمزاً في الثانية، وشركة Devin التابعة لـ Cognition عميل فعلي لديها. عند 981 رمزاً في الثانية، ينخفض زمن انتظار مهمة وكيل تستدعي نموذج لغوي 200 مرة من خمس ساعات ونصف إلى عشر دقائق. نموذج البرمجة الخاص بـ Windsurf يعمل أيضاً على Cerebras. أما Groq فتدفع النماذج الصغيرة بمئات الرموز في الثانية عبر معالج LPU، وتقدّم Llama 3.1 8B بسعر شبه أدنى يبلغ 0.05 دولار لكل مليون رمز. وجمعت SambaNova مليار دولار بتقييم 11 مليار دولار في 8 يوليو، وضمّت JPMorgan وأرامكو وSoftBank كعملاء.</p>

<p>المحور الجيوسياسي المهم هنا هو هواوي. صُمم DeepSeek V4 منذ البداية للتدريب والتقديم على سلسلة Huawei Ascend 950. هذا ليس نقلاً، بل تصميماً مشتركاً. يعني هذا أن مساراً قد انفتح لتشغيل نماذج بمستوى الطليعة دون Nvidia، وهو ما يفتح مجالاً لخفض التكلفة بمعزل عن ضوابط التصدير أو إمدادات وحدات معالجة الرسوميات. مع ذلك، فإن الأرقام المتداولة هنا، “خفض السعر 75 بالمئة، أي واحد من خمسين من تكلفة Anthropic”، هي ادعاءات من المورّد نقلتها وسائل إعلام صينية ولم يتحقق منها طرف ثالث، لذا من الأسلم قراءتها كاتجاه لا كحقيقة مؤكدة.</p>

<p>جوهر الأمر هو هذا: تختار Cognition وJPMorgan وSoftBank الرقائق بمعزل عن أي نموذج يعمل عليها. من يملك رموزاً رخيصة وسريعة يستحوذ على الهامش أياً كان النموذج الفائز. هذه الطبقة غائبة تماماً عن أي لوحة تصنيف للنماذج.</p>

<h2 id="الطبقة-الثانية-اقتصاديات-التقديم-حيث-يعيش-الهامش-فعلياً">الطبقة الثانية: اقتصاديات التقديم، حيث يعيش الهامش فعلياً</h2>

<p>كيفية تقديم النموذج هي ما يحدد اقتصادياته الوحدوية. اعتباراً من منتصف 2026، في مكدس التقديم المفتوح، يُعد vLLM الخيار الافتراضي الأوسع دعماً للأجهزة، ولدى SGLang قياسات تُظهر تفوّقه على vLLM بنحو 29 بالمئة في أحمال عمل الوكلاء والمحادثات متعددة الأدوار وRAG بفضل تقنية RadixAttention للتخزين المؤقت للبادئات، بينما TensorRT-LLM هو الأسرع بعد التصريف لكنه حصري لـ Nvidia وتكلفة إعداده مرتفعة.</p>

<p>توجد الآن تقنيات أصبحت معياراً. فصل مرحلتي التعبئة المسبقة وفك الترميز (PD disaggregation) دخل إلى vLLM وNvidia Dynamo عبر NIXL، وLMCache يلغي إعادة الحساب بين العُقد عبر مخزن KV خارجي، وأصبح التجميع المستمر افتراضاً أساسياً في جميع المحركات، كما يتطور فك الترميز التخميني بسرعة. ولإعطاء إحساس بالحجم، فإن الإعداد غير المتجانس الذي يمزج التعبئة المسبقة على H100 مع فك الترميز على H200 يكلّف نحو 44 بالمئة أكثر في الساعة مقارنة بالتموضع المشترك، لكنه يضاعف الإنتاجية تقريباً، ما يخفض تكلفة كل رمز بشكل ملموس. يقلّص LMCache زمن الوصول إلى أول رمز بمقدار 1.5 إلى 1.8 مرة. لا يوجد رقم نهائي واحد مؤكد، لكن قاعدة عامة جيدة هي أن مكدس تقديم مُحسَّن يقدّم تحسناً بنحو 1.5 إلى 2 مرة أو أكثر في التكلفة والإنتاجية مقارنة بالتقديم الساذج.</p>

<p>هذه الطبقة لا تظهر أبداً في لوحة تصنيف الذكاء القياسية. لكن الاقتصاديات الوحدوية الفعلية لمنتج الذكاء الاصطناعي تُحسم هنا بالضبط، لا في جودة النموذج.</p>

<h2 id="الطبقة-الثالثة-التقييم-والمراقبة-الأرضية-التي-تجعل-التنسيق-ممكناً">الطبقة الثالثة: التقييم والمراقبة، الأرضية التي تجعل التنسيق ممكناً</h2>

<p>الحديث عن توجيه نماذج متعددة حسب المهمة يتكرر باستمرار. لكن لتشغيل ذلك فعلياً، لا بد من طبقة تقييم ومراقبة. القرار بإرسال طلب إلى DeepSeek ثم التحويل إلى GLM ثم التوجيه إلى Kimi، ومعرفة على أي أساس يُتخذ القرار وكيف تُكتشف الانتكاسات، هذا هو عمل هذه الطبقة. بدون هذه الطبقة، لا يوجد التنسيق إلا في الكلام.</p>

<p>نضج السوق إلى LangSmith وArize وBraintrust بتقييم 800 مليون دولار، دون وجود فائز وحيد. وعلى صعيد التوحيد القياسي، تخرّجت OpenTelemetry من CNCF في مايو وأصبحت الأساس الافتراضي للمراقبة العامة، وتُعرّف اتفاقيات GenAI الدلالية الخاصة بها امتدادات (spans) للوكلاء والأدوات والنماذج. مع ذلك، فإن المواصفة الخاصة بـ GenAI ما زالت قيد التطوير ولم تُعتمد رسمياً بعد، لذا لن نبالغ في القول إن المعيار قد استقر تماماً. الاتجاه واضح، لكنه ما يزال قيد التقدم. النقطة الجوهرية هي أن طبقة التقييم والمراقبة هذه تترسخ كسوق مستقلة بمعزل عن أي نموذج يفوز.</p>

<h2 id="الطبقة-الرابعة-الترخيص-يحدد-من-سيبني-الخندق-الدفاعي-فوقه">الطبقة الرابعة: الترخيص يحدد من سيبني الخندق الدفاعي فوقه</h2>

<p>خلف كلمة واحدة هي “الأوزان المفتوحة” تختبئ حقوق مختلفة تماماً. وهذا الفارق هو ما يحدد من يمكنه بناء عمل تجاري فوق ذلك النموذج.</p>

<table>
  <thead>
    <tr>
      <th>النموذج</th>
      <th>الترخيص</th>
      <th>القيد الفعلي</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>DeepSeek V4</td>
      <td>MIT</td>
      <td>لا يوجد، إباحة كاملة</td>
    </tr>
    <tr>
      <td>GLM-5.2</td>
      <td>MIT</td>
      <td>لا يوجد، إباحة كاملة</td>
    </tr>
    <tr>
      <td>Kimi K2.6</td>
      <td>Modified MIT</td>
      <td>التزام رصيد واجهة المستخدم فقط فوق 100 مليون مستخدم نشط شهرياً أو إيراد شهري 20 مليون دولار</td>
    </tr>
    <tr>
      <td>Qwen (الفئة المتوسطة)</td>
      <td>Apache 2.0</td>
      <td>مباح، لكن النماذج الرئيسية تحوّلت إلى API مغلق فقط</td>
    </tr>
    <tr>
      <td>Meta Llama</td>
      <td>Community License</td>
      <td>سقف 700 مليون مستخدم نشط شهرياً، حظر تدريب نماذج منافسة، قيود على الوسائط المتعددة في الاتحاد الأوروبي</td>
    </tr>
  </tbody>
</table>

<p>النماذج التي صدرت بترخيص MIT الخالص، مثل DeepSeek وGLM، تُحوّل طبقة الأساس فعلياً إلى سلعة عامة، وتمنح زمام المبادرة لمن يقوم بالضبط الدقيق أو التغليف فوقها. في المقابل، يبدو ترخيص Llama المجتمعي منفتحاً لكنه أقرب إلى أداة تحكم، إذ يحمل سقف 700 مليون مستخدم نشط شهرياً وبنداً يحظر تدريب نماذج منافسة. والترخيص أيضاً ليس ثابتاً. في 2026، تراجعت MiniMax عن ترخيص MIT المفتوح بالكامل إلى ترخيص Modified-MIT يشترط موافقة كتابية للنشر التجاري، وهي حادثة أظهرت أن شروط الانفتاح يمكن سحبها في أي وقت. أي شركة تخطط لبناء نموذجها الخاص يجب أن تقرأ بنود هذا الترخيص قبل أن تقرأ معايير الأداء.</p>

<h2 id="الطبقة-الخامسة-الخندق-الدفاعي-ليس-في-الأوزان-بل-في-الأداة">الطبقة الخامسة: الخندق الدفاعي ليس في الأوزان، بل في الأداة</h2>

<p>كلما تقاربت النماذج الطليعية في الأداء الخام، انتقل الخندق الدفاعي المستدام من أوزان النموذج إلى الأداة المنتجة التي تلفّه. أن التكامل مع بيئة التطوير، وتنسيق الأدوات، وحلقات المهام، وتدفقات المراجعة وطلبات السحب أصبحت المتغير الأكبر الوحيد في جودة الوكيل هو القاسم المشترك في خطاب 2026. تدرّب نموذج Cursor على تريليونات الرموز من تفاعلات المستخدمين الفعلية فوق قواعد شيفرة حقيقية، وهذه البيانات ببساطة غير موجودة لدى مختبر نموذج مستقل لا يملك أداة. تقول Cognition إن معدل دمج طلبات السحب لدى Devin ارتفع من 34 بالمئة إلى 67 بالمئة خلال عام، وهذا رقم ينبغي أخذه مع تحفظ أنه ذاتي التبليغ وغير مُتحقق منه من طرف مستقل.</p>

<p>الآلية هي كالتالي: سجلات التفاعل الحصرية، مثل سجل قبول ورفض التعديلات، وحالة إنجاز المهام، وتصحيحات البشر، تصبح إشارة المكافأة للتعلم المعزز المستمر. مالك الأداة وحده يرى مسارات التفاعل الكاملة المُوسومة بالنتائج. أما المختبر الذي لا يملك أداة فيضطر إلى الاعتماد على بيانات اصطناعية أو مرخّصة، وهي إشارة أضعف بنيوياً. لذا ينبغي رسم خريطة المنافسة الحقيقية ليس حول درجات المعايير القياسية لهذا الربع، بل حول من يملك بيانات تفاعل المستخدمين والأداة. مع ذلك، لم يكشف أي مختبر بالضبط كيف تتراكم هذه الحلقة الذاتية، لذا فبينما يبدو الاتجاه مقنعاً، ينبغي التوضيح أن الآلية التفصيلية هي استدلال المحللين.</p>

<h2 id="وجهة-نظر-thakicloud">وجهة نظر ThakiCloud</h2>

<p>ثلاث من هذه الطبقات الخمس تقف بالضبط حيث تقف منصتنا: استخدام رقائق الاستدلال في الطبقة الأولى، واقتصاديات التقديم في الطبقة الثانية، والتقييم والمراقبة في الطبقة الثالثة. تجدول ThakiCloud وحدات معالجة الرسوميات فوق Kubernetes وتشغّل الاستدلال الدُفعي، وتتعامل مع تقنيات تقديم مثل فصل PD وتفريغ ذاكرة KV المؤقتة. أما على جانب التدريب، فنقدّم عائلة التعلم المعزز الكاملة: SFT وCPT وDPO وGRPO وGKD. ما تصفه أطروحة خندق الأداة في الطبقة الخامسة، أي تشغيل التعلم المعزز داخلياً باستخدام بيانات الشركة نفسها كإشارة مكافأة والتقديم فوق بنية تحتية مملوكة، هو بالضبط المسار الذي ستسلكه شركات العملاء الراغبة في استيعاب الذكاء الاصطناعي داخلياً. والبنية التحتية للتقديم والتدريب التي تجعل ذلك المسار يعمل فعلياً هي ما نقدّمه.</p>

<p>ولنضع أيضاً أقوى حجة مضادة. الادعاء بأن طبقات المكدس هذه هي ساحة المعركة الحقيقية له حدود. إذا اتسعت فجوة جودة النموذج بما يكفي، فقد يصبح تحسين التقديم أو اختيار الرقائق مسألة ثانوية. أطروحة خندق الأداة وآلية الحلقة الذاتية للبيانات هي في معظمها سرد تحليلي وليست منهجية تحقّق منها مختبر ما ونشرها، بل حتى الأرقام الأساسية مثل معدل دمج طلبات Devin ذاتية التبليغ. وإذا جعلت حرب الأسعار في الفئة فائقة الرخص واجهات البرمجة رخيصة بما يكفي، فقد يضعف الحافز نفسه لتحمّل عبء التقديم والتدريب الخاص. في النهاية، يختلف الحكم من مؤسسة لأخرى. ما نبيعه ليس فرض إجابة، بل الهيكل الذي يجعل الأمر ممكناً حين تقرر الشركة السيطرة على هذه الطبقات بنفسها.</p>

<p>الخريطة التي تسرد النماذج ستظل ضرورية دائماً. لكن هذه الخريطة وحدها لا يمكنها أن تخبرك من يفوز. المعركة تُحسم في الطبقات الخمس أسفل النموذج، ونحن نسعى إلى إعادة رسم تغيرات تلك الطبقات السفلى كل أسبوع.</p>

<h2 id="المراجع">المراجع</h2>

<p>تم التحقق من تقنيات كل طبقة وبنود الترخيص من المصادر الأولية أدناه. استُثنيت من التحقق الأرقام ذاتية التبليغ من الموردين، وجولات التمويل العاجلة، والإعلانات الاستثمارية.</p>

<p><strong>مكدس التقديم وتقنيات الاستدلال</strong></p>

<ul>
  <li><a href="https://docs.vllm.ai/en/latest/">وثائق vLLM</a>: محرك التقديم الافتراضي بتقنية PagedAttention والتجميع المستمر</li>
  <li><a href="https://github.com/sgl-project/sglang">SGLang (GitHub)</a> · <a href="https://arxiv.org/abs/2312.07104">ورقة RadixAttention (arXiv:2312.07104)</a>: تقنية التخزين المؤقت للبادئات التي ترفع إنتاجية المحادثات متعددة الأدوار وRAG</li>
  <li><a href="https://github.com/NVIDIA/TensorRT-LLM">NVIDIA TensorRT-LLM (GitHub)</a>: استدلال مُحسَّن قائم على التصريف، وفصل التعبئة المسبقة/فك الترميز، وفك الترميز التخميني</li>
  <li><a href="https://github.com/ai-dynamo/dynamo">NVIDIA Dynamo (GitHub)</a>: تنسيق فصل PD ونقل KV القائم على NIXL</li>
  <li><a href="https://github.com/LMCache/LMCache">LMCache (GitHub)</a>: تفريغ ذاكرة KV المؤقتة الخارجية لإلغاء إعادة الحساب بين العُقد</li>
  <li><a href="https://arxiv.org/abs/2211.17192">فك الترميز التخميني (arXiv:2211.17192)</a>: تقنية فك الترميز التخميني التي تُعيد تشكيل اقتصاديات التقديم</li>
</ul>

<p><strong>التقييم والمراقبة</strong></p>

<ul>
  <li><a href="https://opentelemetry.io/docs/specs/semconv/gen-ai/">اتفاقيات OpenTelemetry الدلالية لـ GenAI</a>: جهد التوحيد القياسي الذي يُعرّف امتدادات الوكلاء والأدوات والنماذج</li>
  <li><a href="https://docs.langchain.com/langsmith">LangSmith</a> · <a href="https://arize.com/">Arize</a> · <a href="https://www.braintrust.dev/">Braintrust</a>: الأدوات الرائدة في طبقة التقييم والمراقبة</li>
</ul>

<p><strong>ترخيص الأوزان المفتوحة</strong></p>

<ul>
  <li><a href="https://developer.meta.com/ai/llama3_1/license/">ترخيص Llama المجتمعي</a>: يبدو منفتحاً لكنه ترخيص موجّه للتحكم يحمل سقف مستخدمين نشطين شهرياً وحظر تدريب نماذج منافسة</li>
  <li><a href="https://www.apache.org/licenses/LICENSE-2.0">ترخيص Apache 2.0</a> · <a href="https://opensource.org/license/mit">ترخيص MIT</a>: تراخيص إباحية تُحوّل طبقة الأساس فعلياً إلى سلعة عامة</li>
</ul>

<hr />

<p><em>تم التحقق من أسماء النماذج والأسعار والتراخيص وتوقيتات الإصدار في هذا المقال استناداً إلى مصادر عامة متاحة حتى 14 يوليو 2026. الأرقام ذاتية التبليغ من الموردين (سرعة الاستدلال، معدل دمج طلبات السحب، ادعاءات خفض التكلفة الخاصة بهواوي) والبنود غير المُتحقق منها من طرف ثالث موضّحة في متن المقال.</em></p>]]></content><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;nil, &quot;bio&quot;=&gt;nil, &quot;location&quot;=&gt;&quot;Seoul, Korea&quot;, &quot;email&quot;=&gt;&quot;info@thakicloud.co.kr&quot;, &quot;uri&quot;=&gt;nil, &quot;home&quot;=&gt;nil, &quot;links&quot;=&gt;[{&quot;label&quot;=&gt;&quot;Website&quot;, &quot;icon&quot;=&gt;&quot;fas fa-fw fa-link&quot;, &quot;url&quot;=&gt;&quot;https://thakicloud.co.kr&quot;}, {&quot;label&quot;=&gt;&quot;GitHub&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-github&quot;, &quot;url&quot;=&gt;&quot;https://github.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="news" /><category term="inference-hardware" /><category term="model-serving" /><category term="llm-observability" /><category term="open-weight-license" /><category term="agent-harness" /><category term="reinforcement-learning" /><summary type="html"><![CDATA[السؤال ليس ما إذا كان GPT-5.6 أذكى، بل من يقدّم تلك الرموز بتكلفة أقل وسرعة أعلى، لأن ذلك هو ما يحدد الهامش. نرسم خريطة للطبقات الخمس في المكدس التي تتجاهلها خريطة سرد النماذج: رقائق الاستدلال، التقديم، التقييم، الترخيص، والأداة، بأرقام حقيقية.]]></summary></entry><entry xml:lang="ar"><title type="html">متى يمكنك الوثوق بالنموذج الرخيص: خفض تكاليف التعرف الضوئي على المستندات متعددة اللغات بواسطة سلسلة نماذج رؤية ولغة معتمدة على الثقة</title><link href="https://thakicloud.github.io/ar/research/confidence-gated-ocr-vlm-cascade/" rel="alternate" type="text/html" title="متى يمكنك الوثوق بالنموذج الرخيص: خفض تكاليف التعرف الضوئي على المستندات متعددة اللغات بواسطة سلسلة نماذج رؤية ولغة معتمدة على الثقة" /><published>2026-07-14T00:00:00+09:00</published><updated>2026-07-14T00:00:00+09:00</updated><id>https://thakicloud.github.io/ar/research/confidence-gated-ocr-vlm-cascade</id><content type="html" xml:base="https://thakicloud.github.io/ar/research/confidence-gated-ocr-vlm-cascade/"><![CDATA[<p>كل مهندس ربط نموذج رؤية ولغة (VLM) بخط أنابيب لتحليل المستندات وقف على الأرجح عند المفترق نفسه مرة واحدة على الأقل. يمكن لنموذج يقل عدد معاملاته عن مليار أن يقرأ معظم المستندات بشكل كافٍ، لكن بمجرد أن تكون حالة المسح رديئة أو يكون المستند مكتوبًا بنظام كتابة غير مألوف، يُنتج ذلك النموذج الصغير نفسه إجابة خاطئة بثقة تامة. وفي الوقت نفسه، توجيه كل مستند إلى نموذج رؤية ولغة كبير ومكلف ليس خيارًا محتملاً من ناحية التكلفة. تصوغ الورقة البحثية المقدَّمة في هذا المقال هذا المفترق كسلسلة (cascade) يحكمها عتبة ثقة واحدة، وتُشير إلى أن اللحظة التي تصبح فيها إشارة الثقة نفسها أقل موثوقية تتزامن تحديدًا مع اللحظة التي تحتاج فيها السلسلة إليها أكثر ما تحتاج. يستحق هذا القراءة لأي مهندس سحابة أو ذكاء اصطناعي في كوريا يصمم تكلفة التعرف الضوئي على المستندات أو خدمة نماذج الرؤية واللغة.</p>

<h2 id="المشكلة-نجحت-السلاسل-مع-النصوص-فهل-تنجح-مع-الصور-أيضًا">المشكلة: نجحت السلاسل مع النصوص، فهل تنجح مع الصور أيضًا؟</h2>

<p>توجيه السلسلة (cascade routing)، حيث يعمل نموذج رخيص افتراضيًا وينتقل إلى نموذج مكلف فقط عندما تكون الثقة منخفضة، هو تقنية مُثبَتة بالفعل في خدمة نماذج اللغة الكبيرة النصية. يُعدّ FrugalGPT المثال الرائد، إذ أبلغ عن تخفيضات في التكلفة تصل إلى 98% مع الحفاظ على جودة مماثلة لاستخدام النموذج الأعلى أداءً فقط. والسؤال هو ما إذا كانت هذه الفكرة تنتقل مباشرة إلى التعرف الضوئي على المستندات. على عكس المطالبات النصية، تتفاوت صعوبة صور المستندات بشدة على طول ثلاثة محاور: جودة المسح، واللغة ونظام الكتابة، وتعقيد التخطيط. عتبة ثقة مضبوطة لتحقيق أمثلية التكلفة على فاتورة إنجليزية نظيفة يمكن أن تكون خاطئة تمامًا على مسح مشوَّه بلغة منخفضة الموارد، وهذا التباين هو نقطة انطلاق الورقة الأساسية.</p>

<h2 id="المساهمة-الأساسية-عتبة-ثقة-واحدة-ترسم-حدود-باريتو-بأكملها">المساهمة الأساسية: عتبة ثقة واحدة ترسم حدود باريتو بأكملها</h2>

<p>تبني الورقة سلسلة من مرحلتين تتكوّن من نموذج رؤية ولغة رخيص (نموذج يقل عن مليار معامل من فئة PaddleOCR-VL) ونموذج رؤية ولغة كبير ومكلف، مُعامَل بعتبة ثقة واحدة τ. في هذا الهيكل، حيث لا يحدث التصعيد إلى النموذج المكلف إلا عندما تنخفض درجة ثقة النموذج الرخيص عن τ، تشتق الورقة معدل التصعيد والتكلفة المتوقعة ومعدل الخطأ المتوقع جميعها كدوال لـ τ. والمثير للاهتمام أن “استخدام النموذج الرخيص دائمًا” و”استخدام النموذج المكلف دائمًا”، اللذين غالبًا ما يعدّهما الممارسون خيارين منفصلين، ليسا في الواقع سوى الطرفين τ=0 وτ=1 لهذه العائلة أحادية المعامل نفسها.</p>

<p><img src="/assets/images/posts/research/confidence-gated-ocr-vlm-cascade/fig-pareto-frontier.png" alt="Pareto Frontier: Expected Cost vs. Expected Error Rate" />
<em>رسم توضيحي مفاهيمي يُظهر كيف ترسم عتبة الثقة τ حدود باريتو بين السياسة الرخيصة دائمًا والسياسة المكلفة دائمًا. هذا المنحنى مُشتَقّ من النموذج التحليلي للورقة وليس من بيانات مقاسة، وقيم المعاملات توضيحية.</em></p>

<p>ما إذا كانت هذه الحدود ترسم منحنى محدَّبًا ناعمًا (concave) يعتمد على افتراض واحد فقط: أن درجة ثقة النموذج الرخيص قادرة على ترتيب مدى الفائدة التي سيجلبها التصعيد بشكل صحيح. تُظهر الورقة أنه عندما يتحقق هذا الافتراض، تأخذ الحدود الشكل المحدَّب نفسه المُثبَت بالفعل لسلاسل نماذج اللغة الكبيرة النصية، لكنها تشير أيضًا إلى أن هذا الافتراض هو بالضبط الافتراض الأكثر عرضة للانهيار في الحالات التي تكون فيها السلسلة أكثر جاذبية. تدفع أنظمة الكتابة منخفضة الموارد النموذج إلى إنتاج إجابات خاطئة بثقة، وتُختزَل الثقة الإدراكية والثقة الاستدلالية في قيمة عددية واحدة، وتفشل الثقة على مستوى الحرف تمامًا في اكتشاف الأخطاء البنيوية الناتجة عن الجداول أو التخطيطات المنهارة، وتنحرف العتبة المضبوطة على نوع مستند واحد بمجرد نقلها إلى نوع آخر.</p>

<p>تنتظم هذه الأنماط الأربعة في أربعة أنماط فشل متمايزة، ومن بينها، الذي تصفه الورقة بالأخطر ليس “ثقة منخفضة لكن صحيحة” بل “ثقة عالية لكن خاطئة”. عندما يواجه النموذج الرخيص نظام كتابة غير مألوف وينتج نتيجة معقولة وسلسة لكنها خاطئة بثقة عالية، لا يُصعَّد ذلك المستند أبدًا. تعتقد السلسلة أنها تعاملت مع هذا المستند بشكل جيد، بينما هي في الواقع تحمل بصمت أسوأ أنواع الأخطاء.</p>

<p><img src="/assets/images/posts/research/confidence-gated-ocr-vlm-cascade/fig-shift-failure.png" alt="High-Confidence-but-Wrong Rate by Document Covariate" />
<em>رسم توضيحي مفاهيمي يُظهر كيف يتفاوت معدل المخرجات ذات الثقة العالية لكن الخاطئة من النموذج الرخيص حسب متغيرات المستند المصاحبة. هذه ليست بيانات مقاسة بل قيمة مُشتَقّة من نتائج مُبلَّغ عنها في أدبيات سابقة مُستشهَد بها.</em></p>

<p>لا تتوقف الورقة عند هذا الحد. فهي تتناول أيضًا الاتجاه الذي تنزاح فيه حدود التكلفة مقابل الدقة نفسها مع انتقال مجتمع المستندات من الفواتير الإنجليزية النظيفة نحو أنظمة الكتابة منخفضة الموارد، والمسحات المتدهورة، والتخطيطات المعقدة. مع تدهور جودة المسح، يرتفع معدل خطأ النموذج الرخيص، مما يوسّع المجال الذي يمكن للسلسلة استغلاله، لكن في الوقت نفسه هناك خطر أن تتداخل المنطقة التي تتركّز فيها الأخطاء مع المنطقة التي تصبح فيها تنبؤات ثقة النموذج نفسها غير مستقرة. على محور اللغة ونظام الكتابة، تستشهد الورقة بما أبلغ عنه معيار GlotOCR من أن معظم نماذج الرؤية واللغة تعمل جيدًا فقط على أقل من عشرة أنظمة كتابة، وأن حتى أفضل نموذج ينهار بعد تجاوز ثلاثين نظام كتابة، وأن الهلوسة تزداد أيضًا مع اللغات منخفضة الموارد. على محور تعقيد التخطيط، تستشهد بأبحاث سابقة تُظهر أنه حتى مع دقة عالية على مستوى الحرف، يمكن أن يكون المستند بأكمله خاطئًا بسبب عناصر بنيوية مثل الجداول وترتيب القراءة والعلامات المائية.</p>

<p><img src="/assets/images/posts/research/confidence-gated-ocr-vlm-cascade/fig-frontier-shift.png" alt="Pareto Frontier Shift Under Covariate Distribution Shift" />
<em>رسم توضيحي مفاهيمي يُظهر كيف تنزاح حدود باريتو للتكلفة مقابل الدقة مع انتقال مجتمع المستندات من الفواتير الإنجليزية النظيفة نحو أنظمة الكتابة منخفضة الموارد، والمسحات الضعيفة الجودة، والتخطيطات المعقدة. هذه نتيجة مُشتَقّة من النموذج التحليلي وليست بيانات مقاسة.</em></p>

<p>بناءً على هذا التحليل، تقدّم الورقة إرشادات تصميم واضحة. لا تستخدم عتبة عامة واحدة عبر جميع المستندات، بل عايِر العتبات بشكل منفصل، ولو بشكل تقريبي على الأقل، حسب نظام الكتابة وجودة المسح. صمّم بوابة الثقة كنظام متعدد الإشارات ينظر إلى الثقة البصرية والإشارات البنيوية معًا بدلاً من احتمالية فك ترميز واحدة. وفي المناطق التي يتذبذب فيها كل من النموذج الرخيص والمكلف معًا، مثل أكثر أنظمة الكتابة منخفضة الموارد، فإن الخيار الصادق هو تجاوز السلسلة كليًا وإما تصعيد كل شيء أو توجيهه إلى مراجعة بشرية.</p>

<h2 id="المساهمة-في-الشركة-والمجتمع-والعلم">المساهمة في الشركة والمجتمع والعلم</h2>

<p>تستخدم أحمال عمل تحليل المستندات في منصة ThakiCloud للذكاء الاصطناعي بالفعل نماذج من فئة PaddleOCR-VL كمسار افتراضي. يوفّر نموذج عتبة الثقة الذي تبنيه هذه الورقة لتلك الأحمال مساحة تصميم لسياسة توجيه قائمة على مبادئ، بدلاً من الثنائية بين “الرخيص دائمًا” و”المكلف دائمًا”. اجتماعيًا، فإن المؤسسات والأفراد الذين يتعاملون بشكل أساسي مع مستندات بلغات منخفضة الموارد أو مسحات ضعيفة الجودة هم بالضبط من ينبغي أن يتمكّنوا من الوصول إلى أتمتة دقيقة للمستندات دون تكلفة استدعاء نموذج رؤية ولغة كبير باستمرار، وهذه الورقة تُحدّد كميًا التناقض القائل بأن هذه الفئة بالتحديد هي حيث تكون إشارة ثقة السلسلة الأكثر عرضة للانهيار. بعبارة أخرى، تُظهر بوضوح النقطة التي تصبح فيها تقنية لخفض التكلفة أقل موثوقية بالنسبة لفئة المستخدمين الأكثر احتياجًا إليها. علميًا، توسّع الورقة أدبيات تحسين تكلفة السلاسل والتوجيه من طراز FrugalGPT، المُثبَتة بالفعل في مجال نماذج اللغة الكبيرة النصية، لتشمل مجال نماذج الرؤية واللغة متعددة الوسائط والتعرف الضوئي على المستندات، وتُقدّم الأدبيات الحالية خطوة إلى الأمام من خلال ترك تصنيف منظّم لأنماط الفشل يوضّح بالتحديد تحت أي ظروف (نظام الكتابة، جودة المسح، التخطيط) ينهار معايرة الثقة.</p>

<h2 id="القيود">القيود</h2>

<p>كما تذكر الورقة نفسها، فإن هذا بحث تحليلي يتبنّى موقفًا معينًا، وليس بحثًا تجريبيًا. كان المؤلفون يخططون لتنفيذ السلسلة فعليًا وقياسها، لكن ذلك التنفيذ فشل في مرحلة تجهيز البنية التحتية، ونتيجة لذلك لا يظهر في الورقة أي رقم دقة أو زمن استجابة أو تكلفة أو معيار قياسي قاسه المؤلفون بأنفسهم. كل ادعاء كمّي في الورقة هو أحد أمرين: خاصية مُشتَقّة رياضيًا من النموذج التحليلي، أو نتيجة منقولة مباشرة من أبحاث سابقة مُستشهَد بها. يُدرج المؤلفون أنفسهم بالتفصيل ما يجب أن تقيسه الأبحاث اللاحقة بالضرورة. يجب رسم منحنى معايرة بين ثقة النموذج الرخيص والصحة الفعلية، عبر مجموعات مستندات مقسَّمة حسب جودة المسح واللغة والتخطيط؛ ويجب التحقق مما إذا كانت نقاط التكلفة والخطأ الفعلية التي يتم الوصول إليها عند عتبات مختلفة تتبع الحدود المحدَّبة التي تتنبأ بها الورقة أم تنهار بدلاً من ذلك؛ كما يجب تحديد مقدار الانحراف الذي تُظهره عتبة مضبوطة على مجتمع مستندات واحد عند نقلها إلى مجتمع آخر. كذلك، تتناول الورقة فقط سلسلة من مرحلتين تستخدم عتبة عددية واحدة، ولا تتناول شكل الحدود بالنسبة للسلاسل متعددة المراحل، أو الموجّهات المتعلَّمة، أو التصاميم القائمة على التجميع (clustering).</p>

<p>يمكن الاطلاع على صفحة تفاصيل الورقة عبر الرابط التالي: <a href="https://huggingface.co/datasets/thaki-AI/daily-paper-2026-07-14-confidence-gated-ocr-vlm-cascade">https://huggingface.co/datasets/thaki-AI/daily-paper-2026-07-14-confidence-gated-ocr-vlm-cascade</a></p>]]></content><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;nil, &quot;bio&quot;=&gt;nil, &quot;location&quot;=&gt;&quot;Seoul, Korea&quot;, &quot;email&quot;=&gt;&quot;info@thakicloud.co.kr&quot;, &quot;uri&quot;=&gt;nil, &quot;home&quot;=&gt;nil, &quot;links&quot;=&gt;[{&quot;label&quot;=&gt;&quot;Website&quot;, &quot;icon&quot;=&gt;&quot;fas fa-fw fa-link&quot;, &quot;url&quot;=&gt;&quot;https://thakicloud.co.kr&quot;}, {&quot;label&quot;=&gt;&quot;GitHub&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-github&quot;, &quot;url&quot;=&gt;&quot;https://github.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="research" /><category term="model-cascade" /><category term="vision-language-model" /><category term="document-ocr" /><category term="confidence-calibration" /><category term="inference-cost-optimization" /><category term="pareto-frontier" /><category term="multilingual-ocr" /><category term="LLM-routing" /><summary type="html"><![CDATA[حتى في عصر تقرأ فيه نماذج الرؤية واللغة الخفيفة جدًا، التي تقل معاملاتها عن مليار، المستندات جيدًا، لا تزال المستندات الصعبة حقًا بحاجة إلى نموذج كبير. نقدّم ورقة بحثية تحليلية تصوغ رياضيًا سلسلة تتنقّل بين نموذجين عبر عتبة ثقة واحدة، وتُثبت أن اللحظة التي يَخون فيها مؤشر الثقة أكثر ما يكون هي بالضبط اللحظة التي تحتاج فيها السلسلة إليه أكثر ما تحتاج.]]></summary></entry></feed>