<?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-17T18:41:56+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;}, {&quot;label&quot;=&gt;&quot;LinkedIn&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-linkedin&quot;, &quot;url&quot;=&gt;&quot;https://www.linkedin.com/company/thakicloud&quot;}, {&quot;label&quot;=&gt;&quot;X&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-x-twitter&quot;, &quot;url&quot;=&gt;&quot;https://x.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><entry xml:lang="ar"><title type="html">مستويات الجهد لمراجعة الكود: أمر /code-review في Claude Code من low إلى ultra</title><link href="https://thakicloud.github.io/ar/dev/claude-code-review-effort-levels/" rel="alternate" type="text/html" title="مستويات الجهد لمراجعة الكود: أمر /code-review في Claude Code من low إلى ultra" /><published>2026-07-17T00:00:00+09:00</published><updated>2026-07-17T00:00:00+09:00</updated><id>https://thakicloud.github.io/ar/dev/claude-code-review-effort-levels</id><content type="html" xml:base="https://thakicloud.github.io/ar/dev/claude-code-review-effort-levels/"><![CDATA[<h2 id="نظرة-عامة">نظرة عامة</h2>

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

<p>عالج Claude Code هذا الأمر مباشرة في الإصدار v2.1.101. ففي إصدار 11 أبريل 2026 أعاد تسمية الأمر <code class="language-plaintext highlighter-rouge">/simplify</code> إلى <code class="language-plaintext highlighter-rouge">/code-review</code> وأضاف علامة مستوى الجهد التي تحكم مدى عمق تفكير النموذج قبل الإجابة. هناك خمسة مستويات، هي low وmedium وhigh وmax وultra، وتُعاد كتابة المراجعة نفسها عند كل مستوى. تُرجع المستويات الضحلة نتائج سريعة عالية الثقة، بينما تنفق المستويات العميقة وقتًا أطول وتمسح الحالات الطرفية والانحدارات الدقيقة.</p>

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

<h2 id="ما-هي-هذه-الميزة">ما هي هذه الميزة</h2>

<p><code class="language-plaintext highlighter-rouge">/code-review</code> أمر خط مائل يقرأ الفرق (diff) في شجرة العمل الحالية، ويجد المشكلات ويُبلّغ عنها. التغيير الجوهري أنه بإمكانك إلحاق مستوى بالأمر. تحديد مستوى مثل <code class="language-plaintext highlighter-rouge">/code-review low</code> يجعل محرك المراجعة يضبط نطاق استكشافه وعمق تفكيره ليطابق ذلك المستوى. حذف المستوى يشغّل القيمة الافتراضية.</p>

<p>المهم أن المستوى ليس مجرد «إطالة المخرجات أو تقصيرها». وفقًا للوثائق، يعيد low وmedium مجموعة صغيرة من النتائج عالية الثقة، بينما يعيد high وmax نتائج غير مؤكدة إلى جانب النتائج الواثقة. بعبارة أخرى، تفضّل المستويات الضحلة الدقة (precision) وتفضّل المستويات العميقة الاستدعاء (recall)؛ فطبيعة المراجعة نفسها تتغير. وهذا يوافق أيضًا نفسية من يتلقى المراجعة. في رقعة صغيرة، حفنة من النتائج المؤكدة أفضل من قائمة طويلة محشوة بالإيجابيات الكاذبة؛ وقبيل الدمج، عدم تفويت أي شيء أفضل.</p>

<pre><code class="language-mermaid">flowchart TB
    A[تغيير الكود&lt;br/&gt;فرق شجرة العمل] --&gt; B{اختيار مستوى الجهد}
    B --&gt;|low / medium| C[الدقة أولًا&lt;br/&gt;نتائج قليلة عالية الثقة]
    B --&gt;|high / max| D[الاستدعاء أولًا&lt;br/&gt;يشمل نتائج غير مؤكدة]
    B --&gt;|ultra| E[صندوق رملي سحابي&lt;br/&gt;مراجعة وكلاء متوازية]
    C --&gt; F[استجابة بمقياس الثواني&lt;br/&gt;رقعة صغيرة، تغيير إعداد]
    D --&gt; G[استكشاف بمقياس الدقائق&lt;br/&gt;قبيل الدمج، حالة معقدة]
    E --&gt; H[التحقق من كل نتيجة مستقلًا&lt;br/&gt;5-10 دقائق، طبقة مدفوعة]
    F --&gt; I[‏--comment: تعليق داخل PR]
    G --&gt; I
    H --&gt; I
    I --&gt; J[‏--fix: التطبيق على شجرة العمل]
</code></pre>

<h2 id="متى-تستخدم-كلًّا-من-المستويات-الخمسة">متى تستخدم كلًّا من المستويات الخمسة</h2>

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

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

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

<p>أما ultra فأداة من نوع مختلف. نتناوله على حدة أدناه.</p>

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

<h2 id="comment-وfix-وضع-المراجعة-داخل-سير-العمل">‏–comment و–fix: وضع المراجعة داخل سير العمل</h2>

<p>بمعزل عن مستويات الجهد، تدمج علامتان المراجعة في سير عمل فعلي. تنشر <code class="language-plaintext highlighter-rouge">--comment</code> النتائج كتعليقات مضمّنة على الـPR، وتطبّق <code class="language-plaintext highlighter-rouge">--fix</code> النتائج مباشرة على شجرة العمل.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># مراجعة واسعة قبل الدمج مع تعليقات PR إضافةً إلى التطبيق المحلي</span>
/code-review high <span class="nt">--comment</span> <span class="nt">--fix</span>

<span class="c"># مراجعة سحابية عميقة، ثم تطبيق النتائج على شجرة العمل</span>
/code-review ultra <span class="nt">--fix</span>
</code></pre></div></div>

<p>سير عمل المطوّر الفردي الذي تعرضه الوثائق يجري هكذا. اجمع <code class="language-plaintext highlighter-rouge">--comment --fix</code> لترك النتائج على الـPR وتطبيقها محليًا، ثم عايِن الفرق وادفع. إنها طريقة لتمرير أول تمريرة مراجعة تلقائيًا دون انتظار مراجِع. مع ذلك، لأن <code class="language-plaintext highlighter-rouge">--fix</code> تلامس الكود، يجب على إنسان مراجعة الفرق المُطبَّق. التطبيق التلقائي ليس بديلًا عن المراجعة؛ بل هو تحضير لها.</p>

<h2 id="ultrareview-مراجعة-سحابية-متعددة-الوكلاء">‏ultrareview: مراجعة سحابية متعددة الوكلاء</h2>

<p>مستوى ultra مختلف عن المستويات الأربعة التي تعمل محليًا. تشغيل <code class="language-plaintext highlighter-rouge">/code-review ultra</code> يحزم حالة مستودعك، ويرفعها إلى صندوق رملي بعيد، ويترك وكلاء مراجعة متخصصين يحللون الكود بالتوازي هناك. يركّز كل وكيل على صنف مختلف من المشكلات، ويُتحقَّق من النتائج مستقلةً واحدةً تلو الأخرى. وفقًا للوثائق، يستغرق التشغيل من خمس إلى عشر دقائق، وبعد ثلاث تشغيلات مجانية لمشتركي Pro وMax، يكلّف كل تشغيل من خمسة إلى عشرين دولارًا.</p>

<p>يبرز هنا قراران تصميميان. أولًا، تُعالَج المراجعة كتوزّع (fan-out) لعدة وكلاء متخصصين بدل وكيل واحد. وبما أن مراجِعًا واحدًا يصعب عليه التقاط كل صنف من العيوب بالكفاءة نفسها، فإن تقسيم المنظورات حسب نوع المشكلة يوسّع التغطية. ثانيًا، يُتحقَّق من كل نتيجة مستقلةً. التوزّع بذاته يخاطر بتراكم الهلوسات، فلا بد من إغلاقه بمرحلة تحقق قبل الدمج. يُطبّق ultra كلا المبدأين كميزة منتج.</p>

<h2 id="ماذا-يعني-هذا-لمنتجات-thakicloud">ماذا يعني هذا لمنتجات ThakiCloud</h2>

<p>تتداخل مبادئ تصميم هذه الميزة بشكل لافت مع ما مارسناه في تشغيل منصة وكلاء. نقسّمه على منتجَينا.</p>

<p><strong>عدسة Paxis.</strong> إن Paxis هي السحابة الأصيلة للوكلاء (Agent-Native Cloud) من ThakiCloud، وتتعامل مع المهارات (Skills) والأدوات (Tools) والسياسات (Policies) وسجلات التدقيق (Audit Logs) كموارد من الدرجة الأولى. السؤال الذي يطرحه <code class="language-plaintext highlighter-rouge">/code-review</code> هو نفسه الذي تحلّه حزمة مهارات Paxis كل يوم: أي شدة وكيل تُلحقها بأي مهمة؟ تختار Paxis من أكثر من 960 مهارة عبر BM25 وتشغّلها في صناديق رملية معزولة، وتعمل الفكرة نفسها المتمثلة في مستويات الجهد هنا. يذهب العمل الخفيف مثل الاستكشاف والبحث إلى طبقة رخيصة؛ ويذهب العمل الثقيل مثل الحكم المعماري والتحقق إلى طبقة أغلى. تتشارك مراجعة ultra المتوازية متعددة الوكلاء والتحقق المستقل لكل نتيجة البنية نفسها مع طريقة إغلاق Paxis لنتائج التوزّع بمرحلة تحقق. توزّع بلا تحقق يراكم الهلوسات، وبوابة تحقق توقفه. إذا جرت مراجعة الكود كمهارة وكيل معزولة تمرّ نتائجها عبر بوابات السياسة وسجلات التدقيق، فتلك بالضبط نموذج التشغيل الذي تهدف إليه Paxis.</p>

<p><strong>عدسة ai-platform.</strong> إن كون ultra يحمّل المراجعة إلى صندوق رملي سحابي ويحاسب لكل تشغيل يؤكد مجددًا أن أعباء عمل الوكلاء تعمل في النهاية على بنية تحتية للـGPU والتنفيذ المعزول. توفّر منصة ai-platform من ThakiCloud جدولة GPU قائمة على K8s وKueue، وعزلًا متعدد المستأجرين، وخدمة داخل المؤسسة (on-premises). إن عبء عمل يشغّل أسطولًا من وكلاء المراجعة بالتوازي هو بالضبط نوع العمل الذي تستهدفه هذه البنية. وللمؤسسات المتحفظة على رفع الشيفرة المصدرية إلى سحابة خارجية خصوصًا، يصبح خيار تشغيل نمط المراجعة نفسه متعدد الوكلاء داخل بنيتها التحتية مهمًا. ولأن اقتصاديات الوكلاء لا تصح إلا حين تتوفّر خدمة منخفضة التكلفة وتنفيذ معزول، تُكمّل العدستان إحداهما الأخرى.</p>

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

<p>مستويات الجهد ليست دواءً لكل داء. بعض الاعتراضات الصادقة.</p>

<p>أولًا، اختيار المستوى نفسه يعتمد على حكم المستخدم. سوء قراءة الخطورة يمرّر تغييرًا مهمًا بمستوى low، أو يهدر ultra على تغيير تافه. توفّر الأداة المحور؛ أما تحديد موقعك الصحيح عليه فيبقى من شأن الإنسان.</p>

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

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

<p>رابعًا، لا يحلّ <code class="language-plaintext highlighter-rouge">--fix</code> التلقائي محل المراجعة. الدفع دون فحص الفرق المُطبَّق يدع الأتمتة التي تبدو مريحة تدسّ أخطاءً صامتة بدلًا من ذلك. الأتمتة أداة تساعد التفكير، لا أداة تحلّ محله.</p>

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

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

<ul>
  <li><a href="https://code.claude.com/docs/en/code-review">Code Review - Claude Code Docs</a></li>
  <li><a href="https://fast.io/resources/claude-code-review-guide/">Claude Code Review: How to Use /code-review and Ultrareview - Fastio</a></li>
  <li><a href="https://www.mindstudio.ai/blog/claude-code-effort-levels-explained">Claude Code Effort Levels Explained - MindStudio</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;}, {&quot;label&quot;=&gt;&quot;LinkedIn&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-linkedin&quot;, &quot;url&quot;=&gt;&quot;https://www.linkedin.com/company/thakicloud&quot;}, {&quot;label&quot;=&gt;&quot;X&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-x-twitter&quot;, &quot;url&quot;=&gt;&quot;https://x.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="dev" /><category term="claude-code" /><category term="code-review" /><category term="effort-levels" /><category term="ultrareview" /><category term="ai-coding" /><category term="agent" /><category term="developer-tools" /><category term="cost-quality" /><category term="paxis" /><category term="dev" /><summary type="html"><![CDATA[في الإصدار v2.1.101 أعاد Claude Code تسمية /simplify إلى /code-review وأضاف مستويات الجهد إلى المراجعة. يعيد المستويان low وmedium عددًا قليلًا من النتائج عالية الثقة، بينما يضيف high وmax تغطية أوسع مع نتائج غير مؤكدة، أما ultra فيشغّل مراجعة عميقة تتحقق فيها عدة وكلاء من كل نتيجة على السحابة. ننظر في سبب كون هذا التدرّج هو الطريقة الصحيحة لفصل التكلفة عن الجودة في مراجعة الكود، وكيف تنعكس الفكرة على حزمة المهارات في Paxis.]]></summary></entry><entry xml:lang="ar"><title type="html">من 46% إلى 90% داخل الهاتف: ضبط النماذج اللغوية الصغيرة لوكلاء على الجهاز</title><link href="https://thakicloud.github.io/ar/llmops/on-device-tiny-llm-finetune-agents/" rel="alternate" type="text/html" title="من 46% إلى 90% داخل الهاتف: ضبط النماذج اللغوية الصغيرة لوكلاء على الجهاز" /><published>2026-07-17T00:00:00+09:00</published><updated>2026-07-17T00:00:00+09:00</updated><id>https://thakicloud.github.io/ar/llmops/on-device-tiny-llm-finetune-agents</id><content type="html" xml:base="https://thakicloud.github.io/ar/llmops/on-device-tiny-llm-finetune-agents/"><![CDATA[<h2 id="نظرة-عامة">نظرة عامة</h2>

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

<p>يستهدف عرض «From 46% to 90%: Fine-Tuning Tiny LLMs for On-Device Agents»، الذي قدّمه Cormac Brick، المهندس الرئيسي في Google AI Edge، هذه النقطة بالضبط. رفع ضبطُ نموذج FunctionGemma بحجم 270 مليون معامل على مهمة وكيل محددة الدقةَ من 46% إلى 90%، وهذا هو عنوان العرض وخلاصته معًا. ويُبلَّغ أن هذا النموذج يحقق نحو 2000 رمز في الثانية من إنتاجية المعالجة المسبقة (prefill) على Pixel 7. كل ذلك يحدث داخل الهاتف، بلا استدعاء خادم.</p>

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

<!-- Courtesy of embedresponsively.com -->

<div class="responsive-video-container">
    <iframe src="https://www.youtube-nocookie.com/embed/-TiET_K-E_g" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe>
  </div>

<p>الفيديو أعلاه هو عرض Cormac Brick الأصلي كاملًا. والتحليل أدناه مبني على ذلك العرض والتغطية العامة.</p>

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

<p>FunctionGemma نموذج بحجم 270 مليون معامل من عائلة Gemma متخصص في استدعاء الدوال (function calling). استدعاء الدوال هو السلوك الجوهري لوكيل على الجهاز، لأنه يحوّل طلب المستخدم بلغة طبيعية إلى استدعاء أداة مُهيكل يستطيع التطبيق تنفيذه. تحويل «اضبط منبّهًا للتاسعة صباح الغد» إلى استدعاء مثل <code class="language-plaintext highlighter-rouge">setAlarm(time="09:00", date="tomorrow")</code> مثال على ذلك. وما دام هذا التحويل دقيقًا، فلا حاجة لاستدعاء نموذج عام بمليارات المعاملات.</p>

<p>المشكلة أن نموذجًا صغيرًا منشورًا بشكل عام تكون دقته منخفضة على مخطط أدوات تطبيق محدد. الـ46% التي يذكرها العرض هي تلك النقطة بالضبط. وهنا يدخل الضبط. اضبط النموذج بشكل ضيّق على مخطط الدوال الفعلي وأنماط الطلبات في التطبيق المستهدف، فيرتفع النموذج نفسه بحجم 270 مليون إلى 90%.</p>

<pre><code class="language-mermaid">flowchart TB
    A[طلب المستخدم بلغة طبيعية&lt;br/&gt;منبّه للتاسعة غدًا] --&gt; B[وكيل على الجهاز]
    B --&gt; C{FunctionGemma 270M}
    C --&gt;|نشر عام| D[دقة نحو 46%&lt;br/&gt;مخطط التطبيق غير محاذى]
    C --&gt;|ضبط خاص بالمهمة| E[دقة نحو 90%&lt;br/&gt;محاذى لمخطط الدوال الفعلي]
    E --&gt; F[استدعاء دالة مُهيكل&lt;br/&gt;setAlarm 09:00 tomorrow]
    F --&gt; G[التطبيق ينفّذ مباشرة&lt;br/&gt;بلا استدعاء خادم]
    E --&gt; H[زمن تشغيل LiteRT-LM&lt;br/&gt;‏Pixel 7 نحو 2000 tok/s]
</code></pre>

<h2 id="من-46-إلى-90-ماذا-يفعل-الضبط">من 46% إلى 90%: ماذا يفعل الضبط</h2>

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

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

<p>تلامس هذه الفكرة أيضًا مبدأً حافظنا عليه في عملنا الدُّفعي على المحتوى. حلٌّ متخصص يملأ هيكلًا ضيّقًا مُتحقَّقًا منه يتفوق على حلٍّ عام عالي درجة الحرية في متوسط الجودة. وضبط نموذج صغير يطبّق ذلك المبدأ على مستوى النموذج.</p>

<h2 id="ماذا-يمنحك-التشغيل-على-الجهاز-الكمون-والخصوصية-والعمل-دون-اتصال-والتكلفة">ماذا يمنحك التشغيل على الجهاز: الكمون والخصوصية والعمل دون اتصال والتكلفة</h2>

<p>يشدّد العرض على التشغيل على الجهاز لأربعة أسباب.</p>

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

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

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

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

<h2 id="litert-lm-وحزمة-النشر">‏LiteRT-LM وحزمة النشر</h2>

<p>تدريب نموذج صغير ونشره على أجهزة لا تُحصى مشكلتان منفصلتان. يعرض العرض LiteRT-LM كزمن تشغيل للنشر. LiteRT-LM زمن تشغيل يتيح لك وضع نماذج مثل Gemma 4 على طيف واسع من العتاد من المحمول إلى الأنظمة المدمجة. وبدمجه مع AI Core، كما يشرح العرض، يمكنك تشغيل مهارات وكيل على الجهاز.</p>

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

<h2 id="ماذا-يعني-هذا-لمنتجات-thakicloud">ماذا يعني هذا لمنتجات ThakiCloud</h2>

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

<p><strong>عدسة ai-platform.</strong> يزيح صعود النماذج الصغيرة المتخصصة تركيز بنية الخدمة. توفّر منصة ai-platform من ThakiCloud جدولة GPU قائمة على K8s وKueue، وعزلًا متعدد المستأجرين، وخدمة داخل المؤسسة. السؤال الذي يطرحه الضبط على الجهاز هنا ليس «إذا انتقل كل شيء إلى الجهاز، فهل يصبح الخادم غير ضروري؟» بل العكس. فلتدريب نموذج متخصص منفصل بإيجاز لكل تطبيق، تحتاج بنية تحتية تشغّل تلك المهام التدريبية بتكلفة منخفضة وعلى نطاق واسع. إن عبء عمل يكرّر ضبطًا بحجم 270 مليون يستغرق 21 دقيقة عبر مئات مجموعات الأدوات هو بالضبط ما تستهدفه بنية تصفّ الـGPU عبر Kueue وتعزل حسب المستأجر. التدريب على الخادم والاستدلال على الجهاز هو الخلاصة الطبيعية.</p>

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

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

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

<p>لهذا النهج حدود واضحة أيضًا.</p>

<p>أولًا، ثمن التخصص هو العمومية. ذلك النموذج الذي رفع 46% إلى 90% قويٌّ فقط في المهمة الضيّقة التي دُرِّب عليها. غيّر مخطط الأدوات أو انتقل إلى مجال تطبيق جديد وعليك الضبط من جديد. وفي بيئة تتغير فيها التطبيقات والأدوات كثيرًا، يكبُر عبء الصيانة تبعًا لذلك.</p>

<p>ثانيًا، هل تكفي الـ90% يعتمد على المهمة. إن الخطأ في استدعاء دالة يعني تنفيذ فعل خاطئ، ففي المجالات التي تكون فيها كلفة الفشل عالية قد يكون خطأ بنسبة 10% قاتلًا. وفي تلك الحالة تحتاج بنية مزدوجة يتحقق فيها نموذج خادم من نتيجة الجهاز.</p>

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

<p>رابعًا، يواجه النشر على الجهاز تجزئة الأجهزة. فحتى لو امتص LiteRT-LM التغاير، يبقى الأداء الفعلي وقيود الذاكرة لكل جهاز يطلبان تحققًا فرديًا.</p>

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

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

<ul>
  <li><a href="https://www.youtube.com/watch?v=-TiET_K-E_g">From 46% to 90%: Fine-Tuning Tiny LLMs for On-Device Agents - Cormac Brick, Google (YouTube)</a></li>
  <li><a href="https://www.startuphub.ai/ai-news/ai-research/2026/google-s-cormac-brick-on-tiny-llms-for-on-device-agents">Google’s Cormac Brick on Tiny LLMs for On-Device Agents - StartupHub.ai</a></li>
  <li><a href="https://ai.google.dev/gemma/docs/mobile-actions">Fine-tune FunctionGemma 270M for Mobile Actions - Google AI for Developers</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;}, {&quot;label&quot;=&gt;&quot;LinkedIn&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-linkedin&quot;, &quot;url&quot;=&gt;&quot;https://www.linkedin.com/company/thakicloud&quot;}, {&quot;label&quot;=&gt;&quot;X&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-x-twitter&quot;, &quot;url&quot;=&gt;&quot;https://x.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="llmops" /><category term="on-device" /><category term="fine-tuning" /><category term="functiongemma" /><category term="gemma" /><category term="litert-lm" /><category term="edge-ai" /><category term="small-language-model" /><category term="function-calling" /><category term="serving" /><category term="self-hosting" /><category term="llmops" /><category term="paxis" /><summary type="html"><![CDATA[عرض Cormac Brick من Google AI Edge حالة رفع فيها ضبطُ نموذج FunctionGemma بحجم 270 مليون معامل الدقةَ في مهمة وكيل محددة من 46% إلى 90%. الجوهر هو تشغيل نموذج صغير مضبوط على مهمة ضيّقة داخل الهاتف نفسه بدل استدعاء نموذج كبير. ننظر في سبب التقاط هذا النهج للكمون والخصوصية والتكلفة معًا، وماذا يعني صعود النماذج المتخصصة على الجهاز لبنية الخدمة ومنصة الوكلاء في ThakiCloud.]]></summary></entry><entry xml:lang="en"><title type="html">Low Effort Somehow Won the Code Review</title><link href="https://thakicloud.github.io/en/comics/code-review-effort-levels-low-effort-wins/" rel="alternate" type="text/html" title="Low Effort Somehow Won the Code Review" /><published>2026-07-17T00:00:00+09:00</published><updated>2026-07-17T00:00:00+09:00</updated><id>https://thakicloud.github.io/en/comics/code-review-effort-levels-low-effort-wins</id><content type="html" xml:base="https://thakicloud.github.io/en/comics/code-review-effort-levels-low-effort-wins/"><![CDATA[<p>Claude Code’s /code-review just grew effort levels: a dial for how hard the review works, and the whole review gets rewritten from scratch at each setting. The funny part is that even the lowest effort setting reportedly beats other code reviewers. Cranking the dial, though, just means running more inference, and on someone else’s cloud every turn of that dial ticks the meter. Naturally, Paxis and Metis pushed it to the top.</p>

<p><img src="/assets/images/posts/comics/code-review-effort-levels-low-effort-wins/strip.png" alt="Low Effort Somehow Won the Code Review" /></p>

<blockquote>
  <p>Source: <a href="https://x.com/hjguyhan/status/2077894748183097710">Claude Code’s /code-review now has effort levels, with the review rewritten at every one.</a> · twitter</p>
</blockquote>

<h2 id="what-this-means-for-thakicloud">What this means for ThakiCloud</h2>

<p>Whether you can crank the effort dial comes down to who owns the compute. On a rented cloud, every notch of review effort nudges the bill, so you end up rationing the dial exactly when you need it. ThakiCloud’s on-prem approach keeps the models and GPUs inside your own facility, so you can push effort to the top without watching a meter spin. Paxis fans out review agents across effort levels and cross-checks them, while Metis runs that inference on your own rack. If low effort already wins, the side that runs high effort for free just goes further.</p>

<hr />

<p><em>An auto-generated comic riffing on this week’s industry news.</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;}, {&quot;label&quot;=&gt;&quot;LinkedIn&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-linkedin&quot;, &quot;url&quot;=&gt;&quot;https://www.linkedin.com/company/thakicloud&quot;}, {&quot;label&quot;=&gt;&quot;X&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-x-twitter&quot;, &quot;url&quot;=&gt;&quot;https://x.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="comics" /><category term="ai-coding" /><category term="code-review" /><category term="on-prem" /><category term="sovereign-ai" /><category term="thakicloud" /><category term="compute-cost" /><summary type="html"><![CDATA[We cranked the effort dial to max. So did the invoice.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://thakicloud.github.io/assets/images/posts/comics/code-review-effort-levels-low-effort-wins/strip.png" /><media:content medium="image" url="https://thakicloud.github.io/assets/images/posts/comics/code-review-effort-levels-low-effort-wins/strip.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="en"><title type="html">Effort Levels for Code Review: Claude Code /code-review from low to ultra</title><link href="https://thakicloud.github.io/en/dev/claude-code-review-effort-levels/" rel="alternate" type="text/html" title="Effort Levels for Code Review: Claude Code /code-review from low to ultra" /><published>2026-07-17T00:00:00+09:00</published><updated>2026-07-17T00:00:00+09:00</updated><id>https://thakicloud.github.io/en/dev/claude-code-review-effort-levels</id><content type="html" xml:base="https://thakicloud.github.io/en/dev/claude-code-review-effort-levels/"><![CDATA[<h2 id="overview">Overview</h2>

<p>There is a question people skip when choosing a code review tool: how much review does this change actually need? Running the same review intensity on a one-line typo fix and on a rewrite of payment logic is either wasteful or insufficient. Most automated review tools do not leave that choice to the user and operate at a single fixed intensity.</p>

<p>Claude Code addressed this directly in v2.1.101. The April 11, 2026 release renamed the existing <code class="language-plaintext highlighter-rouge">/simplify</code> command to <code class="language-plaintext highlighter-rouge">/code-review</code> and attached an effort level flag that governs how deeply the model reasons before answering. There are five levels, low, medium, high, max, and ultra, and the review itself is rewritten at each one. Shallow levels return fast, high-confidence findings; deep levels spend more time and sweep through edge cases and subtle regressions.</p>

<p>This post reads that design from the perspective of ThakiCloud, which operates AI coding agents. We look at why effort level is the right axis for splitting cost and quality in code review, when to pick each level in practice, and how the idea overlaps with the skill harness and verification loop of Paxis, our agent platform. The durations and costs cited below are all reported values from Anthropic’s public documentation and release notes, not figures measured by ThakiCloud.</p>

<h2 id="what-the-feature-is">What the feature is</h2>

<p><code class="language-plaintext highlighter-rouge">/code-review</code> is a slash command that reads the diff in your current working tree, finds problems, and reports them. The key change is that you can append a level to the command. Specifying a level like <code class="language-plaintext highlighter-rouge">/code-review low</code> makes the review engine adjust its exploration scope and reasoning depth to match. Omitting the level runs the default.</p>

<p>What matters is that the level is not simply “make the output longer or shorter.” According to the documentation, low and medium return a small set of high-confidence findings, while high and max return uncertain findings alongside the confident ones. In other words, shallow levels prioritize precision and deep levels prioritize recall; the character of the review itself changes. This also matches the psychology of the person receiving the review. On a small patch, a handful of certain findings beats a long list padded with false positives; just before a merge, missing nothing is better.</p>

<pre><code class="language-mermaid">flowchart TB
    A[Code change&lt;br/&gt;working tree diff] --&gt; B{Select effort level}
    B --&gt;|low / medium| C[Precision first&lt;br/&gt;few high-confidence findings]
    B --&gt;|high / max| D[Recall first&lt;br/&gt;includes uncertain findings]
    B --&gt;|ultra| E[Cloud sandbox&lt;br/&gt;parallel agent review]
    C --&gt; F[Second-scale response&lt;br/&gt;small patch, config change]
    D --&gt; G[Minute-scale exploration&lt;br/&gt;pre-merge, complex state]
    E --&gt; H[Each finding verified independently&lt;br/&gt;5-10 min, paid tier]
    F --&gt; I[--comment: PR inline]
    G --&gt; I
    H --&gt; I
    I --&gt; J[--fix: apply to working tree]
</code></pre>

<h2 id="when-to-use-each-of-the-five-levels">When to use each of the five levels</h2>

<p>Choosing a level is a matter of weighing the risk of the change against the time you have left. Translating the character the documentation describes into practical intuition:</p>

<p>low and medium are for a quick sanity check. Use them before pushing a config edit or a small patch when you only want to filter out obvious correctness bugs. Responses come back in seconds, so you can run them habitually right before a commit without breaking your flow.</p>

<p>high and max are for code paths just before a merge or that carry complex state. Merging a feature branch into main, or touching areas like concurrency and transactions where subtle regressions hide, falls here. These levels spend more time verifying assumptions and digging through edge cases, so findings labeled “this may not be an issue but check it” appear alongside the certain ones. Whether you treat that uncertainty as noise or as a safety net depends on the situation. Just before a merge, the safety net is the right read.</p>

<p>ultra is a different kind of tool. We cover it separately below.</p>

<p>If you compress this ladder into one sentence, it says: match review intensity to the risk of the change. This is exactly the principle we follow when operating scheduled skills. Start cheap, and escalate only the failing task to an expensive tier. Running every review at maximum intensity wastes cost, and running every review at minimum intensity plants the seed of an incident.</p>

<h2 id="comment-and-fix-putting-review-into-the-workflow">–comment and –fix: putting review into the workflow</h2>

<p>Separate from effort levels, two flags wire the review into an actual workflow. <code class="language-plaintext highlighter-rouge">--comment</code> posts findings as inline comments on the PR, and <code class="language-plaintext highlighter-rouge">--fix</code> applies findings directly to the working tree.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># Broad pre-merge review with PR comments plus local application</span>
/code-review high <span class="nt">--comment</span> <span class="nt">--fix</span>

<span class="c"># Deep cloud review, then apply results to the working tree</span>
/code-review ultra <span class="nt">--fix</span>
</code></pre></div></div>

<p>The solo-developer workflow the documentation offers goes like this. Combine <code class="language-plaintext highlighter-rouge">--comment --fix</code> to leave findings on the PR and apply them locally, then eyeball the diff and push. It is a way to pass the first review pass automatically without waiting on a reviewer. That said, because <code class="language-plaintext highlighter-rouge">--fix</code> touches the code, a human must review the applied diff. Automatic application is not a replacement for review; it is preparation for it.</p>

<h2 id="ultrareview-cloud-multi-agent-review">ultrareview: cloud multi-agent review</h2>

<p>The ultra level is unlike the other four that run locally. Running <code class="language-plaintext highlighter-rouge">/code-review ultra</code> bundles your repository state, uploads it to a remote sandbox, and lets specialized reviewer agents analyze the code in parallel there. Each agent focuses on a different class of issue, and findings are independently verified one by one. According to the documentation, a run takes five to ten minutes, and after three free runs for Pro and Max subscribers, each run costs five to twenty dollars.</p>

<p>Two design decisions stand out here. First, the review is handled as a fan-out of several specialized agents rather than a single agent. Since one reviewer struggles to catch every class of defect equally well, splitting perspectives by issue type widens coverage. Second, each finding is verified independently. A fan-out on its own risks accumulating hallucinations, so it must be closed with a verification stage before merging. ultra implements both principles as a product feature.</p>

<h2 id="what-this-means-for-thakicloud-products">What this means for ThakiCloud products</h2>

<p>The design principles of this feature overlap strikingly with what we have practiced operating an agent platform. We split it across our two products.</p>

<p><strong>Paxis lens.</strong> Paxis is ThakiCloud’s Agent-Native Cloud, treating Skills, Tools, Policies, and Audit Logs as first-class resources. The question <code class="language-plaintext highlighter-rouge">/code-review</code> poses is the same one the Paxis skill harness solves every day: which intensity of agent do you attach to which task? Paxis selects from over 960 skills via BM25 and runs them in isolated sandboxes, and the same idea as effort levels operates here. Light work like exploration and lookup goes to a cheap tier; heavy work like architectural judgment and verification goes to an expensive tier. ultra’s multi-agent parallel review and per-finding independent verification share the same structure as the way Paxis closes fan-out results with a verification stage. A fan-out without verification accumulates hallucinations, and a verification gate stops it. If code review runs as one isolated agent skill whose results pass through policy gates and audit logs, that is exactly the operating model Paxis aims for.</p>

<p><strong>ai-platform lens.</strong> The fact that ultra offloads the review to a cloud sandbox and charges per run reconfirms that agent workloads ultimately run on GPU and isolated-execution infrastructure. ThakiCloud’s ai-platform provides K8s and Kueue based GPU scheduling, multi-tenant isolation, and on-premises serving. A workload that spins up a fleet of reviewer agents in parallel is exactly the kind of work such infrastructure targets. For organizations reluctant to upload source code to an external cloud in particular, the option to run the same multi-agent review pattern inside their own infrastructure becomes important. Because agent economics only hold when low-cost serving and isolated execution are in place, the two lenses complement each other.</p>

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

<p>Effort levels are not a cure-all. A few honest counterarguments.</p>

<p>First, the level choice itself depends on the user’s judgment. Misreading the risk sends an important change through as low, or wastes ultra on a trivial one. The tool provides the axis; positioning yourself correctly on it is still up to the human.</p>

<p>Second, the uncertain findings that high and max produce are a double-edged sword. They can act as a safety net, but if false positives pile up they cause review fatigue and you end up ignoring the list. How much to trust an unverified finding depends on the team’s discipline.</p>

<p>Third, ultra uploads the repository to a remote sandbox. For organizations with sensitive source, that alone is an adoption barrier. And the five-to-twenty-dollar cost per run is heavy to run often, so the team has to compute its own economics past the three free runs.</p>

<p>Fourth, automatic <code class="language-plaintext highlighter-rouge">--fix</code> does not replace review. Pushing without checking the applied diff lets convenient-looking automation slip in silent bugs instead. Automation is a tool that assists thinking, not one that replaces it.</p>

<p>Even so, the idea of effort levels points in the right direction. Matching review intensity to the risk of the change is exactly the cost-quality balance we learned operating agents.</p>

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

<ul>
  <li><a href="https://code.claude.com/docs/en/code-review">Code Review - Claude Code Docs</a></li>
  <li><a href="https://fast.io/resources/claude-code-review-guide/">Claude Code Review: How to Use /code-review and Ultrareview - Fastio</a></li>
  <li><a href="https://www.mindstudio.ai/blog/claude-code-effort-levels-explained">Claude Code Effort Levels Explained - MindStudio</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;}, {&quot;label&quot;=&gt;&quot;LinkedIn&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-linkedin&quot;, &quot;url&quot;=&gt;&quot;https://www.linkedin.com/company/thakicloud&quot;}, {&quot;label&quot;=&gt;&quot;X&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-x-twitter&quot;, &quot;url&quot;=&gt;&quot;https://x.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="dev" /><category term="claude-code" /><category term="code-review" /><category term="effort-levels" /><category term="ultrareview" /><category term="ai-coding" /><category term="agent" /><category term="developer-tools" /><category term="cost-quality" /><category term="paxis" /><category term="dev" /><summary type="html"><![CDATA[In v2.1.101 Claude Code renamed /simplify to /code-review and attached effort levels to the review. low and medium return a few high-confidence findings, high and max add broader coverage with uncertain findings, and ultra runs a deep review where multiple agents verify each finding in the cloud. We look at why this staging is the right way to split cost and quality in code review, and how the idea maps onto the Paxis skill harness.]]></summary></entry><entry xml:lang="en"><title type="html">From 46% to 90% Inside a Phone: Fine-Tuning Small LLMs for On-Device Agents</title><link href="https://thakicloud.github.io/en/llmops/on-device-tiny-llm-finetune-agents/" rel="alternate" type="text/html" title="From 46% to 90% Inside a Phone: Fine-Tuning Small LLMs for On-Device Agents" /><published>2026-07-17T00:00:00+09:00</published><updated>2026-07-17T00:00:00+09:00</updated><id>https://thakicloud.github.io/en/llmops/on-device-tiny-llm-finetune-agents</id><content type="html" xml:base="https://thakicloud.github.io/en/llmops/on-device-tiny-llm-finetune-agents/"><![CDATA[<h2 id="overview">Overview</h2>

<p>The notion that small models are not smart held on for a long time. So practitioners threw almost every task at large models, paying for it with latency, cost, and the risk of data leaving the device. But if you scope the task very narrowly, the story changes. Give up generality and tune a small model to do exactly one thing well, and within that narrow domain there is no longer a reason to call a large model.</p>

<p>“From 46% to 90%: Fine-Tuning Tiny LLMs for On-Device Agents,” presented by Cormac Brick, a Principal Engineer at Google AI Edge, targets exactly this point. Fine-tuning the 270M-parameter FunctionGemma to a specific agent task raised accuracy from 46% to 90%, which is both the title and the thesis of the talk. This model is reported to deliver roughly 2,000 tokens per second of prefill throughput on a Pixel 7. All of it happens inside the phone, with no server call.</p>

<p>This post reads that talk from the perspective of ThakiCloud, which operates multi-tenant inference infrastructure. We look at why a small specialized model makes sense on-device, what fine-tuning actually changes, how a runtime like LiteRT-LM simplifies deployment, and what practical meaning this trend carries for our serving infrastructure and agent platform. The accuracy, throughput, and duration figures cited below are all reported values from the talk and related coverage, not figures reproduced by ThakiCloud.</p>

<!-- Courtesy of embedresponsively.com -->

<div class="responsive-video-container">
    <iframe src="https://www.youtube-nocookie.com/embed/-TiET_K-E_g" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe>
  </div>

<p>The video above is Cormac Brick’s full original talk. The analysis below is grounded in that talk and public reporting.</p>

<h2 id="what-the-technology-is">What the technology is</h2>

<p>FunctionGemma is a 270M-parameter model in the Gemma family specialized for function calling. Function calling is the core behavior of an on-device agent, because it turns a user’s natural-language request into a structured tool call the app can execute. Converting “set an alarm for 9 a.m. tomorrow” into a call like <code class="language-plaintext highlighter-rouge">setAlarm(time="09:00", date="tomorrow")</code> is an example. As long as this conversion is accurate, there is no need to summon a general-purpose model of billions of parameters.</p>

<p>The problem is that a generically deployed small model has low accuracy on a specific app’s tool schema. The 46% the talk cites is exactly that point. This is where fine-tuning enters. Tune the model narrowly to the target app’s actual function schema and request patterns, and the same 270M model rises to 90%.</p>

<pre><code class="language-mermaid">flowchart TB
    A[User natural-language request&lt;br/&gt;alarm for 9 tomorrow] --&gt; B[On-device agent]
    B --&gt; C{FunctionGemma 270M}
    C --&gt;|generic deployment| D[about 46% accuracy&lt;br/&gt;app schema unaligned]
    C --&gt;|task-specific fine-tuning| E[about 90% accuracy&lt;br/&gt;aligned to real function schema]
    E --&gt; F[structured function call&lt;br/&gt;setAlarm 09:00 tomorrow]
    F --&gt; G[app executes directly&lt;br/&gt;no server call]
    E --&gt; H[LiteRT-LM runtime&lt;br/&gt;Pixel 7 about 2000 tok/s]
</code></pre>

<h2 id="from-46-to-90-what-fine-tuning-does">From 46% to 90%: what fine-tuning does</h2>

<p>Understanding the nature of this gap matters. A large model reasons its way through even an unfamiliar schema thanks to vast general knowledge. A small model lacks that slack. But concentrate it on a narrow distribution, and within that distribution it becomes nearly as accurate as a large model. Fine-tuning is less about injecting new intelligence into the model and more about steering the capacity it already has toward the target task.</p>

<p>According to the talk, this fine-tuning finishes in a remarkably short time. Related coverage reports that training completes in about 21 minutes. Thanks to the small scale of 270M, training itself is light and manageable even on consumer hardware. This carries direct implications for data science practice. It means an operating model where each app and each tool set has its own small specialized model, each trained briefly, is realistic. Instead of covering every app with one giant general-purpose model, you keep several specialized models sliced finely by task.</p>

<p>This idea also touches a principle we have held in our batch content work. A specialized solution that fills a validated, narrow skeleton beats a high-degree-of-freedom general solution for average quality. Fine-tuning a small model implements that principle at the model level.</p>

<h2 id="what-on-device-gives-you-latency-privacy-offline-cost">What on-device gives you: latency, privacy, offline, cost</h2>

<p>The talk emphasizes on-device for four reasons.</p>

<p>Latency drops. Because the request does not round-trip the network, the function-call conversion finishes instantly inside the phone. For a UI where the agent must react to user actions in real time, this difference is decisive.</p>

<p>Privacy holds. The user’s requests and personal data never leave the device. In sensitive contexts like health, finance, and messaging, the very fact that data does not go to a server becomes a product requirement.</p>

<p>It works offline. The agent functions even without a network. A cloud model is helpless when the connection drops; an on-device model is not.</p>

<p>Cost disappears. Because inference happens on the device, there is no per-token API billing. The heavier the app’s usage, the larger this saving.</p>

<h2 id="litert-lm-and-the-deployment-stack">LiteRT-LM and the deployment stack</h2>

<p>Training a small model and deploying it to countless devices are separate problems. The talk presents LiteRT-LM as the deployment runtime. LiteRT-LM is a runtime that lets you put models like Gemma 4 onto a wide range of hardware from mobile to embedded systems. Combine it with AI Core, the talk explains, and you can drive on-device agent skills.</p>

<p>The key is that a path exists to deploy one model consistently across diverse hardware. Without the labor of re-fitting a trained specialized model to each device’s accelerator, the runtime absorbs that heterogeneity. This is the practical condition that lifts on-device agents from experiment level to product level.</p>

<h2 id="what-this-means-for-thakicloud-products">What this means for ThakiCloud products</h2>

<p>The trend of on-device specialized models can look like a signal in the opposite direction to us, operators of cloud serving, but it actually carries direct implications for both products.</p>

<p><strong>ai-platform lens.</strong> The rise of small specialized models shifts the focus of serving infrastructure. ThakiCloud’s ai-platform provides K8s and Kueue based GPU scheduling, multi-tenant isolation, and on-premises serving. The question on-device fine-tuning poses here is not “if everything moves on-device, is the server unnecessary?” It is the opposite. To train a separate specialized model briefly for each app, you need infrastructure that runs those training jobs at low cost and at scale. A workload that repeats a 21-minute fine-tune of a 270M model across hundreds of tool sets is exactly what infrastructure that queues GPUs with Kueue and isolates by tenant targets. Training on the server, inference on the device is the natural conclusion.</p>

<p>At the same time, not every organization is satisfied by device inference alone. When larger context or more complex reasoning is needed, a server model still steps in. And for organizations reluctant to send source data to an external cloud, on-premises serving and self-hosting become important. Being competitive on low serving cost is the key to holding on to those organizations.</p>

<p><strong>Paxis lens.</strong> The essence of FunctionGemma is turning natural language into a structured tool call. This is a miniature of what Paxis does. Paxis is ThakiCloud’s Agent-Native Cloud, which selects from over 960 skills via BM25, runs them in isolated sandboxes, and passes every action through policy gates and audit logs. If an on-device agent handles function calls for a narrow tool set on the phone, Paxis handles tool routing over a far wider skill space in the cloud. The two layers do not compete; they complement. A layered structure emerges where lightweight local intent interpretation is handled by the device, and work requiring complex multi-agent orchestration and auditing is handled by Paxis.</p>

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

<p>This approach has clear limits too.</p>

<p>First, the price of specialization is generality. That model that lifted 46% to 90% is strong only on the narrow task it was trained on. Change the tool schema or move to a new app domain and you have to fine-tune again. In an environment where apps and tools change often, the maintenance burden grows accordingly.</p>

<p>Second, whether 90% is enough depends on the task. Getting a function call wrong means executing a wrong action, so in domains where the cost of failure is high, a 10% error can be fatal. In that case you need a dual structure where a server model verifies the on-device result.</p>

<p>Third, the figure of 21 minutes of training depends heavily on scale and hardware. The real operating cost including data preparation, schema alignment, and evaluation cannot be judged by training time alone. The talk’s impressive numbers should be taken as values under well-arranged conditions.</p>

<p>Fourth, on-device deployment faces device fragmentation. Even if LiteRT-LM absorbs the heterogeneity, actual per-device performance and memory constraints still demand individual verification.</p>

<p>Even so, the direction of running a small specialized model on the device is persuasive. It is the point where the four benefits of latency, privacy, offline, and cost hold simultaneously. For us, this trend is not a signal that the server becomes unnecessary, but one that makes us redraw where the division between training and inference should sit.</p>

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

<ul>
  <li><a href="https://www.youtube.com/watch?v=-TiET_K-E_g">From 46% to 90%: Fine-Tuning Tiny LLMs for On-Device Agents - Cormac Brick, Google (YouTube)</a></li>
  <li><a href="https://www.startuphub.ai/ai-news/ai-research/2026/google-s-cormac-brick-on-tiny-llms-for-on-device-agents">Google’s Cormac Brick on Tiny LLMs for On-Device Agents - StartupHub.ai</a></li>
  <li><a href="https://ai.google.dev/gemma/docs/mobile-actions">Fine-tune FunctionGemma 270M for Mobile Actions - Google AI for Developers</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;}, {&quot;label&quot;=&gt;&quot;LinkedIn&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-linkedin&quot;, &quot;url&quot;=&gt;&quot;https://www.linkedin.com/company/thakicloud&quot;}, {&quot;label&quot;=&gt;&quot;X&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-x-twitter&quot;, &quot;url&quot;=&gt;&quot;https://x.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="llmops" /><category term="on-device" /><category term="fine-tuning" /><category term="functiongemma" /><category term="gemma" /><category term="litert-lm" /><category term="edge-ai" /><category term="small-language-model" /><category term="function-calling" /><category term="serving" /><category term="self-hosting" /><category term="llmops" /><category term="paxis" /><summary type="html"><![CDATA[Google AI Edge's Cormac Brick presented a case where fine-tuning the 270M-parameter FunctionGemma lifted accuracy on a specific agent task from 46% to 90%. The key is running a small model tuned to a narrow task on the phone itself instead of calling a large one. We look at why this approach captures latency, privacy, and cost at once, and what the rise of on-device specialized models means for ThakiCloud's serving infrastructure and agent platform.]]></summary></entry><entry xml:lang="ko"><title type="html">코드 리뷰에 노력 단계를 붙이다: Claude Code /code-review의 low부터 ultra까지</title><link href="https://thakicloud.github.io/ko/dev/claude-code-review-effort-levels/" rel="alternate" type="text/html" title="코드 리뷰에 노력 단계를 붙이다: Claude Code /code-review의 low부터 ultra까지" /><published>2026-07-17T00:00:00+09:00</published><updated>2026-07-17T00:00:00+09:00</updated><id>https://thakicloud.github.io/ko/dev/claude-code-review-effort-levels</id><content type="html" xml:base="https://thakicloud.github.io/ko/dev/claude-code-review-effort-levels/"><![CDATA[<h2 id="개요">개요</h2>

<p>코드 리뷰 도구를 고를 때 자주 놓치는 질문이 하나 있습니다. “이 변경에 얼마만큼의 리뷰가 필요한가”입니다. 오탈자 한 줄을 고친 커밋과 결제 로직을 갈아엎은 커밋에 같은 강도의 리뷰를 돌리는 것은 낭비이거나 부족이거나 둘 중 하나입니다. 대부분의 자동 리뷰 도구는 이 구분을 사용자에게 맡기지 않고 한 가지 강도로만 동작했습니다.</p>

<p>Claude Code는 v2.1.101에서 이 문제를 정면으로 다뤘습니다. 2026년 4월 11일 릴리스에서 기존 <code class="language-plaintext highlighter-rouge">/simplify</code> 명령을 <code class="language-plaintext highlighter-rouge">/code-review</code>로 바꾸고, 리뷰가 답을 내기 전에 얼마나 깊이 추론할지를 정하는 노력 단계(effort level) 플래그를 붙였습니다. low, medium, high, max, ultra의 다섯 단계이며, 단계마다 리뷰 자체가 다시 쓰입니다. 얕은 단계는 빠르고 확신이 높은 지적만 내놓고, 깊은 단계는 시간을 더 써서 엣지 케이스와 미묘한 회귀까지 훑습니다.</p>

<p>이 글은 AI 코딩 에이전트를 운용하는 ThakiCloud의 관점에서 이 설계를 읽습니다. 노력 단계가 왜 코드 리뷰의 비용과 품질을 나누는 올바른 축인지, 각 단계를 실무에서 언제 골라야 하는지, 그리고 이 발상이 저희가 운영하는 에이전트 플랫폼 Paxis의 스킬 하네스 및 검증 루프와 어떻게 겹치는지 순서대로 살펴봅니다. 아래에 인용한 소요 시간과 비용 수치는 모두 Anthropic이 공개한 문서와 릴리스 노트의 보고값이며, ThakiCloud가 직접 측정한 값이 아닙니다.</p>

<h2 id="이-기능은-무엇인가">이 기능은 무엇인가</h2>

<p><code class="language-plaintext highlighter-rouge">/code-review</code>는 현재 작업 트리의 변경분을 읽고 문제를 찾아 보고하는 슬래시 명령입니다. 핵심 변화는 명령 뒤에 단계를 붙일 수 있다는 점입니다. <code class="language-plaintext highlighter-rouge">/code-review low</code>처럼 단계를 지정하면, 리뷰 엔진이 그 단계에 맞춰 탐색 범위와 추론 깊이를 조정합니다. 단계를 생략하면 기본값으로 동작합니다.</p>

<p>여기서 중요한 것은 단계가 단순히 “출력을 길게 하느냐 짧게 하느냐”가 아니라는 점입니다. 문서에 따르면 low와 medium은 소수의 확신 높은 발견만 반환하고, high와 max는 확실한 발견에 더해 불확실한 발견까지 함께 내놓습니다. 즉 얕은 단계는 정밀도(precision)를 우선하고, 깊은 단계는 재현율(recall)을 우선하도록 리뷰의 성격 자체가 바뀝니다. 이 구분은 리뷰를 받는 쪽의 심리와도 맞습니다. 작은 패치에서는 오탐이 섞인 긴 목록보다 확실한 몇 개가 낫고, 병합 직전에는 놓치는 것이 없는 편이 낫습니다.</p>

<pre><code class="language-mermaid">flowchart TB
    A[코드 변경분&lt;br/&gt;작업 트리 diff] --&gt; B{노력 단계 선택}
    B --&gt;|low / medium| C[정밀도 우선&lt;br/&gt;확신 높은 소수 지적]
    B --&gt;|high / max| D[재현율 우선&lt;br/&gt;불확실 발견까지 포함]
    B --&gt;|ultra| E[클라우드 샌드박스&lt;br/&gt;병렬 에이전트 리뷰]
    C --&gt; F[초 단위 응답&lt;br/&gt;작은 패치·설정 변경]
    D --&gt; G[분 단위 탐색&lt;br/&gt;병합 직전·복잡한 상태]
    E --&gt; H[각 발견 독립 검증&lt;br/&gt;5~10분·유료 티어]
    F --&gt; I[--comment: PR 인라인]
    G --&gt; I
    H --&gt; I
    I --&gt; J[--fix: 작업 트리에 적용]
</code></pre>

<h2 id="다섯-단계를-언제-쓰는가">다섯 단계를 언제 쓰는가</h2>

<p>단계 선택은 변경의 위험도와 남은 시간을 저울질하는 일입니다. 문서가 제시한 성격을 실무 감각으로 옮기면 다음과 같이 정리됩니다.</p>

<p>low와 medium은 빠른 정신 점검용입니다. 설정 파일을 바꾸거나 작은 패치를 올리기 전, 명백한 정합성 버그만 걸러내고 싶을 때 씁니다. 응답이 초 단위로 돌아오므로 커밋 직전에 습관처럼 돌려도 흐름을 끊지 않습니다.</p>

<p>high와 max는 병합 직전이나 복잡한 상태를 다루는 코드 경로에서 씁니다. 기능 브랜치를 main에 합치기 전, 혹은 동시성이나 트랜잭션처럼 미묘한 회귀가 숨기 쉬운 곳을 손봤을 때가 여기 해당합니다. 이 단계는 시간을 더 들여 가정을 검증하고 엣지 케이스를 뒤지므로, 확실한 지적 사이에 “이건 아닐 수도 있지만 확인해 보라”는 발견이 섞여 나옵니다. 이 불확실성을 노이즈로 볼지 안전망으로 볼지는 상황에 달렸습니다. 병합 직전이라면 안전망 쪽이 맞습니다.</p>

<p>ultra는 성격이 다른 도구입니다. 뒤에서 따로 다룹니다.</p>

<p>이 사다리를 한 문장으로 요약하면, 리뷰 강도를 변경의 위험도에 맞추라는 것입니다. 이는 저희가 스케줄 스킬을 운영할 때 지키는 원칙과 정확히 같습니다. 싸게 시작하고, 실패가 쌓이면 그 작업만 비싼 티어로 올립니다. 모든 리뷰를 최고 강도로 돌리는 것은 비용 낭비이고, 모든 리뷰를 최저 강도로 돌리는 것은 사고의 씨앗입니다.</p>

<h2 id="comment와-fix-리뷰를-워크플로에-넣기">–comment와 –fix: 리뷰를 워크플로에 넣기</h2>

<p>노력 단계와 별개로 두 플래그가 리뷰를 실제 작업 흐름에 끼워 넣습니다. <code class="language-plaintext highlighter-rouge">--comment</code>는 발견을 PR의 인라인 코멘트로 게시하고, <code class="language-plaintext highlighter-rouge">--fix</code>는 발견을 작업 트리에 직접 적용합니다.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># 병합 직전 넓은 커버리지로 리뷰하고 PR에 코멘트 + 로컬 적용</span>
/code-review high <span class="nt">--comment</span> <span class="nt">--fix</span>

<span class="c"># 클라우드 심층 리뷰 후 결과를 작업 트리에 적용</span>
/code-review ultra <span class="nt">--fix</span>
</code></pre></div></div>

<p>문서가 제시한 1인 개발 워크플로는 이렇습니다. <code class="language-plaintext highlighter-rouge">--comment --fix</code>를 함께 걸어 발견을 PR에 남기고 로컬에도 적용한 뒤, diff를 눈으로 확인하고 푸시합니다. 리뷰어를 기다리지 않고 첫 번째 패스를 자동으로 통과시키는 방식입니다. 다만 <code class="language-plaintext highlighter-rouge">--fix</code>가 코드를 건드린다는 점에서, 적용된 diff를 사람이 반드시 검토해야 합니다. 자동 적용은 검토의 대체가 아니라 검토를 위한 준비입니다.</p>

<h2 id="ultrareview-클라우드-멀티에이전트-리뷰">ultrareview: 클라우드 멀티에이전트 리뷰</h2>

<p>ultra 단계는 로컬에서 도는 나머지 넷과 다릅니다. <code class="language-plaintext highlighter-rouge">/code-review ultra</code>를 실행하면 Claude Code가 저장소 상태를 묶어 원격 샌드박스로 업로드하고, 그곳에서 특화된 리뷰어 에이전트들이 코드를 병렬로 분석합니다. 각 에이전트는 서로 다른 종류의 문제에 집중하며, 발견은 개별적으로 독립 검증을 거칩니다. 문서에 따르면 실행에 5분에서 10분이 걸리고, Pro와 Max 구독자에게 3회의 무료 실행 이후에는 실행당 5달러에서 20달러의 비용이 붙습니다.</p>

<p>여기서 두 가지 설계 결정이 눈에 띕니다. 첫째, 리뷰를 단일 에이전트가 아니라 여러 특화 에이전트의 팬아웃으로 처리한다는 점입니다. 하나의 리뷰어가 모든 유형의 결함을 동등하게 잘 찾기는 어렵기 때문에, 문제 유형별로 시각을 나누는 편이 커버리지를 넓힙니다. 둘째, 각 발견을 독립적으로 검증한다는 점입니다. 팬아웃은 그 자체로 환각을 누적할 위험이 있으므로, 합치기 전에 검증 단계로 닫아야 합니다. ultra는 이 두 원칙을 제품 기능으로 구현한 사례입니다.</p>

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

<p>이 기능의 설계 원칙은 저희가 에이전트 플랫폼을 운영하며 지켜온 것과 놀랍도록 겹칩니다. 두 제품의 렌즈로 나눠 봅니다.</p>

<p><strong>Paxis 렌즈.</strong> Paxis는 ThakiCloud의 Agent-Native Cloud로, 스킬(Skills), 도구(Tools), 정책(Policies), 감사 로그(Audit Logs)를 일급 리소스로 다룹니다. <code class="language-plaintext highlighter-rouge">/code-review</code>가 던지는 질문은 Paxis의 스킬 하네스가 매일 푸는 질문과 같습니다. 어떤 작업에 어떤 강도의 에이전트를 붙일 것인가입니다. Paxis는 960개가 넘는 스킬을 BM25로 선택해 격리 샌드박스에서 실행하는데, 여기서도 노력 단계와 같은 발상이 작동합니다. 탐색과 조회 같은 가벼운 작업은 값싼 티어에, 아키텍처 판단과 검증 같은 무거운 작업은 비싼 티어에 배정합니다. ultra의 멀티에이전트 병렬 리뷰와 발견별 독립 검증은 Paxis가 팬아웃 결과를 검증 스테이지로 닫는 방식과 같은 구조입니다. 검증 없는 팬아웃은 환각을 누적하고, 검증 게이트가 이를 막습니다. 코드 리뷰가 하나의 에이전트 스킬로 격리 실행되고 그 결과가 정책 게이트와 감사 로그를 통과한다면, 그것이 바로 Paxis가 지향하는 운영 모델입니다.</p>

<p><strong>ai-platform 렌즈.</strong> ultra가 리뷰를 클라우드 샌드박스로 오프로드하고 실행당 비용을 매긴다는 사실은, 에이전트 워크로드가 결국 GPU와 격리 실행 인프라 위에서 돈다는 것을 다시 확인시켜 줍니다. ThakiCloud의 ai-platform은 K8s와 Kueue 기반 GPU 스케줄링, 멀티테넌트 격리, 온프레미스 서빙을 제공합니다. 리뷰어 에이전트 함대를 병렬로 띄우는 워크로드는 정확히 이런 인프라가 필요한 종류의 작업입니다. 특히 소스 코드를 외부 클라우드에 업로드하기 꺼리는 조직이라면, 같은 멀티에이전트 리뷰 패턴을 자체 인프라 안에서 돌리는 선택지가 중요해집니다. 저비용 서빙과 격리 실행이 갖춰져야 에이전트 경제성이 성립한다는 점에서, 두 렌즈는 서로를 보완합니다.</p>

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

<p>노력 단계는 만능이 아닙니다. 몇 가지 반론을 정직하게 적습니다.</p>

<p>첫째, 단계 선택 자체가 사용자의 판단에 의존합니다. 위험도를 잘못 읽으면 중요한 변경을 low로 흘려보내거나 사소한 변경에 ultra를 낭비합니다. 도구가 축을 제공했을 뿐, 올바른 축 위의 위치를 정하는 것은 여전히 사람의 몫입니다.</p>

<p>둘째, high와 max가 내놓는 불확실한 발견은 양날의 검입니다. 안전망이 되기도 하지만, 오탐이 많으면 리뷰 피로를 부르고 결국 목록을 무시하게 만듭니다. 검증되지 않은 지적을 얼마나 신뢰할지는 팀의 규율에 달렸습니다.</p>

<p>셋째, ultra는 저장소를 원격 샌드박스로 업로드합니다. 소스 코드가 민감한 조직에는 이 자체가 도입 장벽입니다. 또한 실행당 5달러에서 20달러의 비용은 자주 돌리기에는 부담이며, 무료 3회 이후의 경제성을 팀이 스스로 계산해야 합니다.</p>

<p>넷째, 자동 <code class="language-plaintext highlighter-rouge">--fix</code>는 검토를 대체하지 않습니다. 적용된 diff를 확인하지 않고 푸시하면, 편해 보이는 자동화가 오히려 조용한 버그를 밀어 넣을 수 있습니다. 자동화는 사고를 대체하는 것이 아니라 보조하는 도구입니다.</p>

<p>그럼에도 노력 단계라는 발상은 옳은 방향입니다. 리뷰의 강도를 변경의 위험도에 맞추는 것은, 저희가 에이전트를 운영하며 배운 비용과 품질의 균형과 정확히 같은 원칙이기 때문입니다.</p>

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

<ul>
  <li><a href="https://code.claude.com/docs/en/code-review">Code Review - Claude Code Docs</a></li>
  <li><a href="https://fast.io/resources/claude-code-review-guide/">Claude Code Review: How to Use /code-review and Ultrareview - Fastio</a></li>
  <li><a href="https://www.mindstudio.ai/blog/claude-code-effort-levels-explained">Claude Code Effort Levels Explained - MindStudio</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;}, {&quot;label&quot;=&gt;&quot;LinkedIn&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-linkedin&quot;, &quot;url&quot;=&gt;&quot;https://www.linkedin.com/company/thakicloud&quot;}, {&quot;label&quot;=&gt;&quot;X&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-x-twitter&quot;, &quot;url&quot;=&gt;&quot;https://x.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="dev" /><category term="claude-code" /><category term="code-review" /><category term="effort-levels" /><category term="ultrareview" /><category term="ai-coding" /><category term="agent" /><category term="developer-tools" /><category term="cost-quality" /><category term="paxis" /><category term="dev" /><summary type="html"><![CDATA[Claude Code가 v2.1.101에서 /simplify를 /code-review로 바꾸면서 리뷰에 노력 단계를 붙였습니다. low와 medium은 확신 높은 소수의 지적만, high와 max는 넓은 커버리지와 불확실한 발견까지, ultra는 클라우드에서 여러 에이전트가 병렬로 검증하는 심층 리뷰입니다. 저희는 이 단계 설계가 왜 코드 리뷰의 비용과 품질을 나누는 올바른 방식인지, 그리고 이 발상이 Paxis의 스킬 하네스와 어떻게 맞물리는지 짚어봅니다.]]></summary></entry><entry xml:lang="ko"><title type="html">폰 안에서 46%를 90%로: 온디바이스 에이전트를 위한 작은 LLM 파인튜닝</title><link href="https://thakicloud.github.io/ko/llmops/on-device-tiny-llm-finetune-agents/" rel="alternate" type="text/html" title="폰 안에서 46%를 90%로: 온디바이스 에이전트를 위한 작은 LLM 파인튜닝" /><published>2026-07-17T00:00:00+09:00</published><updated>2026-07-17T00:00:00+09:00</updated><id>https://thakicloud.github.io/ko/llmops/on-device-tiny-llm-finetune-agents</id><content type="html" xml:base="https://thakicloud.github.io/ko/llmops/on-device-tiny-llm-finetune-agents/"><![CDATA[<h2 id="개요">개요</h2>

<p>작은 모델은 똑똑하지 않다는 통념이 오래갔습니다. 그래서 실무자들은 웬만한 과제를 전부 큰 모델에 던졌고, 그 대가로 지연과 비용과 데이터 유출 위험을 감수했습니다. 그런데 과제를 아주 좁게 잡으면 이야기가 달라집니다. 범용성을 버리고 한 가지 일만 잘하도록 작은 모델을 다듬으면, 그 좁은 영역에서는 큰 모델을 부를 이유가 사라집니다.</p>

<p>Google AI Edge의 Principal Engineer인 Cormac Brick이 발표한 “From 46% to 90%: Fine-Tuning Tiny LLMs for On-Device Agents”는 정확히 이 지점을 겨냥합니다. 270M 파라미터의 FunctionGemma를 특정 에이전트 과제에 맞춰 파인튜닝하자, 정확도가 46%에서 90%로 올랐다는 것이 발표의 제목이자 요지입니다. 이 모델은 Pixel 7에서 초당 약 2,000토큰의 prefill 처리량을 낸다고 보고되었습니다. 모두 폰 안에서, 서버 호출 없이 벌어지는 일입니다.</p>

<p>이 글은 멀티테넌트 추론 인프라를 운영하는 ThakiCloud의 관점에서 이 발표를 읽습니다. 왜 작은 특화 모델이 온디바이스에서 의미를 갖는지, 파인튜닝이 실제로 무엇을 바꾸는지, LiteRT-LM 같은 런타임이 배포를 어떻게 단순화하는지, 그리고 이 흐름이 저희의 서빙 인프라와 에이전트 플랫폼에 어떤 실무적 의미를 갖는지 순서대로 살펴봅니다. 아래에 인용한 정확도와 처리량, 소요 시간 수치는 모두 발표와 관련 보도의 보고값이며, ThakiCloud가 직접 재현한 값이 아닙니다.</p>

<!-- Courtesy of embedresponsively.com -->

<div class="responsive-video-container">
    <iframe src="https://www.youtube-nocookie.com/embed/-TiET_K-E_g" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe>
  </div>

<p>위 영상은 Cormac Brick의 원 발표 전체입니다. 아래 분석은 이 발표와 공개 보도를 근거로 합니다.</p>

<h2 id="이-기술은-무엇인가">이 기술은 무엇인가</h2>

<p>FunctionGemma는 Gemma 계열에서 함수 호출(function calling)에 특화된 270M 파라미터 모델입니다. 함수 호출은 온디바이스 에이전트의 핵심 동작입니다. 사용자의 자연어 요청을 앱이 실행할 수 있는 구조화된 도구 호출로 바꾸는 일이기 때문입니다. “내일 오전 9시에 알람 맞춰줘”를 <code class="language-plaintext highlighter-rouge">setAlarm(time="09:00", date="tomorrow")</code> 같은 호출로 변환하는 것이 그 예입니다. 이 변환만 정확하다면, 굳이 수십억 파라미터의 범용 모델을 불러올 필요가 없습니다.</p>

<p>문제는 범용으로 배포된 작은 모델이 특정 앱의 도구 스키마에서는 정확도가 낮다는 점입니다. 발표가 말하는 46%가 바로 그 지점입니다. 여기서 파인튜닝이 등장합니다. 목표 앱의 실제 함수 스키마와 요청 패턴에 맞춰 모델을 좁게 다듬으면, 같은 270M 모델이 90%까지 올라간다는 것입니다.</p>

<pre><code class="language-mermaid">flowchart TB
    A[사용자 자연어 요청&lt;br/&gt;내일 9시 알람] --&gt; B[온디바이스 에이전트]
    B --&gt; C{FunctionGemma 270M}
    C --&gt;|범용 배포| D[정확도 약 46%&lt;br/&gt;앱 스키마 미정렬]
    C --&gt;|과제 특화 파인튜닝| E[정확도 약 90%&lt;br/&gt;실제 함수 스키마 정렬]
    E --&gt; F[구조화된 함수 호출&lt;br/&gt;setAlarm 09:00 tomorrow]
    F --&gt; G[앱이 직접 실행&lt;br/&gt;서버 호출 없음]
    E --&gt; H[LiteRT-LM 런타임&lt;br/&gt;Pixel 7 약 2000 tok/s]
</code></pre>

<h2 id="46에서-90로-파인튜닝이-하는-일">46%에서 90%로: 파인튜닝이 하는 일</h2>

<p>이 격차의 정체를 이해하는 것이 중요합니다. 큰 모델은 방대한 범용 지식으로 낯선 스키마도 어느 정도 추론해 냅니다. 작은 모델은 그 여유가 없습니다. 대신 좁은 분포에 집중시키면, 그 분포 안에서는 큰 모델 못지않게 정확해집니다. 파인튜닝은 모델에게 새로운 지능을 주입하는 것이 아니라, 이미 가진 용량을 목표 과제 쪽으로 몰아주는 작업에 가깝습니다.</p>

<p>발표에 따르면 이 파인튜닝은 대단히 짧은 시간에 끝납니다. 관련 소개에서는 약 21분 만에 학습이 완료된다고 전해집니다. 270M이라는 작은 규모 덕분에 학습 자체가 가볍고, 컨슈머 하드웨어로도 충분히 감당됩니다. 이는 데이터 과학 실무에 직접적인 함의를 갖습니다. 앱마다, 도구 세트마다 별도의 작은 특화 모델을 두고 각각을 짧게 학습시키는 운영 방식이 현실적이라는 뜻입니다. 하나의 거대한 범용 모델로 모든 앱을 커버하는 대신, 과제별로 잘게 나눈 특화 모델 여러 개를 두는 것입니다.</p>

<p>이 발상은 저희가 콘텐츠 배치 작업에서 지켜온 원칙과도 닿아 있습니다. 자유도가 높은 범용 해법보다, 검증된 좁은 골격에 채워 넣는 특화 해법이 평균 품질을 올립니다. 작은 모델의 파인튜닝은 이 원칙을 모델 수준에서 구현한 사례입니다.</p>

<h2 id="온디바이스가-주는-것-지연프라이버시오프라인비용">온디바이스가 주는 것: 지연·프라이버시·오프라인·비용</h2>

<p>발표가 온디바이스를 강조하는 이유는 네 가지로 정리됩니다.</p>

<p>지연이 줄어듭니다. 요청이 네트워크를 왕복하지 않으므로, 함수 호출 변환이 폰 안에서 즉시 끝납니다. 에이전트가 사용자 동작에 실시간으로 반응해야 하는 UI라면 이 차이는 결정적입니다.</p>

<p>프라이버시가 지켜집니다. 사용자의 요청과 개인 데이터가 기기를 벗어나지 않습니다. 헬스, 금융, 메시징처럼 민감한 맥락에서는 데이터가 서버로 나가지 않는다는 사실 자체가 제품의 요건이 됩니다.</p>

<p>오프라인에서 동작합니다. 네트워크가 없어도 에이전트가 기능합니다. 클라우드 모델은 연결이 끊기면 무력해지지만, 온디바이스 모델은 그렇지 않습니다.</p>

<p>비용이 사라집니다. 추론이 기기에서 일어나므로 토큰당 API 과금이 없습니다. 사용량이 많은 앱일수록 이 절감은 커집니다.</p>

<h2 id="litert-lm과-배포-스택">LiteRT-LM과 배포 스택</h2>

<p>작은 모델을 학습하는 것과 그것을 수많은 기기에 배포하는 것은 별개의 문제입니다. 발표는 LiteRT-LM을 배포 런타임으로 제시합니다. LiteRT-LM은 Gemma 4 같은 모델을 모바일부터 임베디드 시스템까지 폭넓은 하드웨어에 올릴 수 있게 하는 런타임입니다. 여기에 AI Core를 결합하면 온디바이스 에이전트 스킬을 구동할 수 있다고 설명합니다.</p>

<p>핵심은 하나의 모델을 다양한 하드웨어에 일관되게 배포하는 경로가 갖춰져 있다는 점입니다. 학습된 특화 모델을 각 기기의 가속기에 맞춰 다시 짜맞추는 수고 없이, 런타임이 그 이질성을 흡수합니다. 이것이 온디바이스 에이전트를 실험 수준에서 제품 수준으로 끌어올리는 실무적 조건입니다.</p>

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

<p>온디바이스 특화 모델의 흐름은 클라우드 서빙을 운영하는 저희에게 반대 방향의 신호처럼 보일 수 있지만, 실제로는 두 제품 모두에 직접적인 함의를 줍니다.</p>

<p><strong>ai-platform 렌즈.</strong> 작은 특화 모델의 부상은 서빙 인프라의 초점을 바꿉니다. ThakiCloud의 ai-platform은 K8s와 Kueue 기반 GPU 스케줄링, 멀티테넌트 격리, 온프레미스 서빙을 제공합니다. 여기서 온디바이스 파인튜닝이 던지는 질문은 “모든 것을 온디바이스로 보내면 서버는 필요 없어지는가”가 아닙니다. 오히려 반대입니다. 앱마다 별도의 특화 모델을 짧게 학습시키려면, 그 학습 잡을 저비용으로 대량 돌릴 인프라가 필요합니다. 270M 모델의 21분짜리 파인튜닝을 수백 개의 도구 세트에 대해 반복하는 워크로드는, Kueue가 GPU를 큐잉하고 멀티테넌트로 격리하는 인프라가 정확히 겨냥하는 종류입니다. 학습은 서버에서, 추론은 기기에서라는 분업이 자연스러운 귀결입니다.</p>

<p>동시에 모든 조직이 기기 추론만으로 충분하지는 않습니다. 더 큰 컨텍스트나 복잡한 추론이 필요한 순간에는 여전히 서버 모델이 개입합니다. 이때 소스 데이터를 외부 클라우드로 보내기 꺼리는 조직에게는 온프레미스 서빙과 self-hosting이 중요해집니다. 낮은 서빙 비용에서 경쟁력을 갖추는 것이 이 조직들을 붙잡는 핵심입니다.</p>

<p><strong>Paxis 렌즈.</strong> FunctionGemma의 본질은 자연어를 구조화된 도구 호출로 바꾸는 것입니다. 이것은 Paxis가 하는 일의 축소판입니다. Paxis는 ThakiCloud의 Agent-Native Cloud로, 960개가 넘는 스킬을 BM25로 선택해 격리 샌드박스에서 실행하고, 모든 행동을 정책 게이트와 감사 로그로 통과시킵니다. 온디바이스 에이전트가 좁은 도구 세트에 대한 함수 호출을 폰에서 처리한다면, Paxis는 훨씬 넓은 스킬 공간에 대한 도구 라우팅을 클라우드에서 처리합니다. 두 층은 경쟁하지 않고 보완합니다. 가벼운 로컬 의도 해석은 기기가, 복잡한 멀티에이전트 오케스트레이션과 감사가 필요한 작업은 Paxis가 맡는 계층 구조가 그려집니다.</p>

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

<p>이 접근에도 분명한 한계가 있습니다.</p>

<p>첫째, 특화의 대가는 범용성입니다. 46%를 90%로 올린 그 모델은 학습된 좁은 과제에서만 강합니다. 도구 스키마가 바뀌거나 새로운 앱 영역으로 넘어가면 다시 파인튜닝해야 합니다. 앱과 도구가 자주 바뀌는 환경에서는 유지보수 부담이 그만큼 커집니다.</p>

<p>둘째, 90%가 충분한가는 과제에 달렸습니다. 함수 호출을 잘못하면 잘못된 동작을 실행하는 것이므로, 실패 비용이 큰 도메인에서는 10%의 오류가 치명적일 수 있습니다. 이 경우 온디바이스 결과를 서버 모델이 검증하는 이중 구조가 필요해집니다.</p>

<p>셋째, 학습이 21분이라는 수치는 규모와 하드웨어에 크게 의존합니다. 데이터 준비, 스키마 정렬, 평가까지 포함한 실제 운영 비용은 학습 시간만으로 판단할 수 없습니다. 발표의 인상적인 수치는 잘 정돈된 조건에서의 값임을 감안해야 합니다.</p>

<p>넷째, 온디바이스 배포는 기기 파편화와 마주합니다. LiteRT-LM이 이질성을 흡수한다고 해도, 실제 기기별 성능과 메모리 제약은 여전히 개별 검증을 요구합니다.</p>

<p>그럼에도 작은 특화 모델을 기기에서 돌린다는 방향은 설득력이 있습니다. 지연, 프라이버시, 오프라인, 비용이라는 네 가지 이점이 동시에 성립하는 지점이기 때문입니다. 저희에게 이 흐름은 서버가 필요 없어진다는 신호가 아니라, 학습과 추론의 분업이 어디에 놓여야 하는지를 다시 그리게 하는 신호입니다.</p>

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

<ul>
  <li><a href="https://www.youtube.com/watch?v=-TiET_K-E_g">From 46% to 90%: Fine-Tuning Tiny LLMs for On-Device Agents - Cormac Brick, Google (YouTube)</a></li>
  <li><a href="https://www.startuphub.ai/ai-news/ai-research/2026/google-s-cormac-brick-on-tiny-llms-for-on-device-agents">Google’s Cormac Brick on Tiny LLMs for On-Device Agents - StartupHub.ai</a></li>
  <li><a href="https://ai.google.dev/gemma/docs/mobile-actions">Fine-tune FunctionGemma 270M for Mobile Actions - Google AI for Developers</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;}, {&quot;label&quot;=&gt;&quot;LinkedIn&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-linkedin&quot;, &quot;url&quot;=&gt;&quot;https://www.linkedin.com/company/thakicloud&quot;}, {&quot;label&quot;=&gt;&quot;X&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-x-twitter&quot;, &quot;url&quot;=&gt;&quot;https://x.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="llmops" /><category term="on-device" /><category term="fine-tuning" /><category term="functiongemma" /><category term="gemma" /><category term="litert-lm" /><category term="edge-ai" /><category term="small-language-model" /><category term="function-calling" /><category term="serving" /><category term="self-hosting" /><category term="llmops" /><category term="paxis" /><summary type="html"><![CDATA[Google AI Edge의 Cormac Brick은 270M 파라미터의 FunctionGemma를 파인튜닝해 특정 에이전트 과제에서 정확도를 46%에서 90%로 끌어올린 사례를 발표했습니다. 핵심은 큰 모델을 부르는 대신, 작은 모델을 좁은 과제에 맞춰 폰 위에서 돌리는 것입니다. 저희는 이 접근이 왜 지연·프라이버시·비용을 동시에 잡는지, 그리고 온디바이스 특화 모델의 흐름이 ThakiCloud의 서빙 인프라와 에이전트 플랫폼에 무엇을 의미하는지 짚어봅니다.]]></summary></entry><entry xml:lang="ko"><title type="html">Kimi K3는 ‘격차 소멸’이 아니다: 오픈웨이트 프런티어 시대의 두 축</title><link href="https://thakicloud.github.io/ko/owm/kimi-k3-two-axis-frontier-and-small-models/" rel="alternate" type="text/html" title="Kimi K3는 ‘격차 소멸’이 아니다: 오픈웨이트 프런티어 시대의 두 축" /><published>2026-07-17T00:00:00+09:00</published><updated>2026-07-17T00:00:00+09:00</updated><id>https://thakicloud.github.io/ko/owm/kimi-k3-two-axis-frontier-and-small-models</id><content type="html" xml:base="https://thakicloud.github.io/ko/owm/kimi-k3-two-axis-frontier-and-small-models/"><![CDATA[<h2 id="이-글을-누가-읽어야-하나">이 글을 누가 읽어야 하나</h2>

<p>이 글은 모델 하나의 벤치마크 순위에 일희일비하지 않고, 어떤 모델을 실제로 배포하고 서빙할지 결정해야 하는 플랫폼 엔지니어와 기술 의사결정자를 위해 썼습니다. Kimi K3 발표(2026년 7월 16일)를 둘러싼 “격차가 사라졌다”는 서사는 절반만 맞습니다. 나머지 절반이 앞으로 2년간 우리가 무엇을 만들어야 하는지를 정확히 가리킵니다.</p>

<h2 id="무슨-일이-있었나">무슨 일이 있었나</h2>

<p>Moonshot AI가 Kimi K3를 공개했습니다. 2.8조 파라미터 MoE로, 896개 전문가 중 16개를 활성화하고 100만 토큰 컨텍스트를 지원합니다. 가중치 전체 공개는 7월 27일로 예고됐습니다. 커뮤니티는 이를 과거 딥시크가 준 충격에 빗대며 오픈웨이트가 폐쇄형을 따라잡았다고 평가합니다.</p>

<p>절반은 사실입니다. K3는 Arena.AI 프론트엔드 코드 아레나에서 1,679 Elo로 1위에 올라 Claude Fable 5와 GPT-5.6 Sol을 제쳤습니다. 7개 프론트엔드 도메인 중 6개에서 선두였고, SWE Marathon(42.0)과 Program Bench(77.8)에서도 전 모델을 앞섰습니다. GPQA Diamond 93.5%는 발표 시점 오픈웨이트 최고 기록이었습니다.</p>

<p>여기까지만 보면 패권의 종말처럼 읽힙니다. 그런데 한 칸만 옆을 보면 그림이 달라집니다.</p>

<h2 id="하이프가-빠뜨린-네-가지">하이프가 빠뜨린 네 가지</h2>

<p>바이럴 요약글들이 공통으로 지운 사실이 넷 있습니다. 넷 다 이번 사건의 진짜 의미를 결정합니다.</p>

<p>첫째, 코딩도 전 영역 1위는 아닙니다. Terminal-Bench 2.1에서 K3는 88.3점을 받았지만 GPT-5.6 Sol에 0.5점 뒤진 2위였습니다. “정상 등극”으로 소개된 항목이 실제로는 준우승입니다.</p>

<p>둘째, 넓은 실무 과제에서는 3위입니다. 이 지점이 가장 중요합니다. GDPval-AA v2는 44개 직종과 9개 주요 산업에 걸친 실제 업무 과제를 측정합니다. 여기서 K3는 1,687점으로 3위에 그쳤습니다. Claude Fable 5 Max(1,815)와 GPT-5.6 Sol Max(1,747.8)가 각각 128점, 61점 앞섭니다. 좁게 정의된 코드 생성 트랙에서는 이기지만, 산업 전반의 실무 가치로 넓히면 최상위 폐쇄형 모델이 아직 유의미한 거리를 두고 앞섭니다.</p>

<p>셋째, 오픈웨이트인데 싸지 않습니다. K3 가격은 입력 100만 토큰당 3달러, 출력 15달러로 Anthropic Sonnet 계열과 같은 수준입니다. 중국 랩이 내놓은 모델 중 역대 최고가입니다. “고가 구독제에 의존하지 않아도 된다”는 서사와 정면으로 어긋납니다.</p>

<p>넷째, 로컬에서 못 돌립니다. 2.8조 파라미터를 서빙하려면 대규모 GPU 클러스터가 필요합니다. 가중치가 공개돼도 개인 워크스테이션에서 구동하는 것은 사실상 불가능합니다. 오픈웨이트는 누구나 손안에서 돌린다는 뜻이 아니라, 자체 서빙 인프라를 가진 조직만의 것이라는 뜻입니다.</p>

<p>결국 K3가 증명한 것은 격차의 소멸이 아니라 격차의 재배치입니다. 좁은 트랙에서는 오픈이 프런티어를 추월했고, 넓은 트랙과 배포 경제성에서는 아직 벽이 있습니다.</p>

<h2 id="벤치마크-한-장으로-보기">벤치마크 한 장으로 보기</h2>

<table>
  <thead>
    <tr>
      <th>항목</th>
      <th>성격</th>
      <th>Kimi K3</th>
      <th>최상위</th>
      <th>해석</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>프론트엔드 코드 아레나</td>
      <td>좁음</td>
      <td><strong>1위 (1,679)</strong></td>
      <td>K3</td>
      <td>오픈이 프런티어 추월</td>
    </tr>
    <tr>
      <td>SWE Marathon</td>
      <td>좁음</td>
      <td><strong>1위 (42.0)</strong></td>
      <td>K3</td>
      <td>에이전트 코딩 선두</td>
    </tr>
    <tr>
      <td>Terminal-Bench 2.1</td>
      <td>좁음</td>
      <td>2위 (88.3)</td>
      <td>GPT-5.6 Sol</td>
      <td>0.5점 차 준우승</td>
    </tr>
    <tr>
      <td>GDPval-AA v2</td>
      <td>넓음</td>
      <td>3위 (1,687)</td>
      <td>Fable 5 Max (1,815)</td>
      <td>실무 천장은 폐쇄형</td>
    </tr>
  </tbody>
</table>

<p>같은 모델이 트랙의 폭에 따라 1위와 3위를 오갑니다. 이 분산 자체가 결론입니다. 우리는 가장 똑똑한 모델의 시대가 아니라 과제에 맞는 모델의 시대에 들어와 있습니다.</p>

<h2 id="그래서-다음은-무엇인가-두-축-가설">그래서 다음은 무엇인가: 두 축 가설</h2>

<p>미국 모델이 무의미해졌다는 주장은 틀렸습니다. 진보는 오히려 두 축에서 동시에, 서로를 필요로 하며 일어납니다.</p>

<p>축 A는 천장입니다. 넓은 실무 과제, 장기 에이전트 워크플로, 과학적 난제처럼 아직 풀리지 않은 영역에서는 최상위 프런티어 모델이 계속 앞서 나가야 합니다. 2026년 현재 AI가 실제로 막혀 있는 곳은 벤치마크 점수가 아닙니다. 지속 학습이고, 기억 아키텍처이고, 월드 모델과 장기 계획이며, 무엇보다 환각의 신뢰성입니다. GDPval 같은 넓은 벤치마크에서 아직 폐쇄형이 앞서는 이유가 여기 있습니다. 코드 한 조각을 잘 짜는 일과 44개 직종의 실무를 신뢰성 있게 처리하는 일은 다릅니다. 천장을 올리는 작업은 끝나지 않았습니다.</p>

<p>축 B는 바닥입니다. 동시에, 실제로 배포하고 실행할 수 있는 작은 모델이 절실합니다. 2026년의 분명한 흐름은 대형에서 소형·과제특화 모델로의 이동입니다. 증류를 거친 모델은 크기를 절반으로 줄여도 원본 성능의 90%를 유지하고, 한때 7B가 최소선으로 여겨지던 자리를 이제 10억 파라미터 미만 모델이 실무 과제에서 채웁니다. 비용은 약 10분의 1입니다. K3가 2.8조 파라미터로 서버룸을 요구하는 동안, 진짜 확산은 엣지와 온디바이스에서 일어납니다.</p>

<p>두 축은 경쟁 관계가 아닙니다. 파이프라인입니다. 천장을 올린 프런티어 모델이 교사가 되어 소형 모델로 증류되고, 그 소형 모델이 엣지로 퍼집니다. 프런티어가 멈추면 증류받을 원천이 마릅니다. 그래서 K3의 등장은 미국 모델을 무의미하게 만든 사건이 아니라, 증류 사슬의 상단을 다극화한 사건입니다. 다극화는 진보의 종말이 아니라 병렬화입니다.</p>

<h3 id="이-프레임이-틀릴-수-있는-지점">이 프레임이 틀릴 수 있는 지점</h3>

<p>두 축 가설을 스스로 반박해 보겠습니다. 가장 강한 반론은 두 축이 하나로 수렴할 가능성입니다. K3는 2.8조 파라미터를 쓰고도 GDPval에서 1위가 아니었습니다. 이것을 천장이 아직 멀었다는 신호가 아니라 스케일이 더는 병목이 아니라는 신호로 읽으면 결론이 뒤집힙니다. 실무 천장을 가른 변수가 파라미터 수가 아니라 데이터 품질과 강화학습 레시피라면, 굳이 조 단위 교사가 없어도 30억에서 1천억 파라미터 구간의 중형 모델이 좋은 데이터와 정교한 후처리만으로 상단 성능의 대부분을 흡수할 수 있습니다. 그러면 거대 교사에서 소형 학생으로 이어지는 증류 사슬 자체가 헐거워지고, 산업은 두 개의 봉우리가 아니라 실용성과 성능이 겹치는 하나의 중형 봉우리로 몰립니다. 이 시나리오에서는 초대형 프런티어에 대한 투자 수익이 빠르게 꺾이고, ThakiCloud 같은 서빙 플랫폼의 최적 타깃도 2.8조 모델이 아니라 중형 모델 군집이 됩니다. 우리가 두 축 스택을 설계하되 중형 구간에 대한 대비를 함께 세워야 하는 이유입니다. 어느 쪽이 맞는지는 다음 두세 세대의 넓은 벤치마크 곡선이 스케일과 함께 계속 오르는지, 아니면 평평해지는지를 보면 판별됩니다.</p>

<h2 id="thakicloud-전략-관점">ThakiCloud 전략 관점</h2>

<p>오픈웨이트 프런티어(K3, GLM-5.2, DeepSeek V4 Pro)의 진짜 의미는 벤치마크 순위가 아닙니다. 자체 호스팅 가능한 프런티어급 모델이 처음으로 손에 들어왔다는 점입니다. 데이터 주권이 필요한 규제 산업, 온프렘 요구가 강한 공공과 금융에게 이것은 실질적 전환입니다.</p>

<p>그런데 바로 그 지점에서 우리 플랫폼의 가치가 생깁니다. 2.8조 파라미터 모델을 자체 서빙하는 것은 곧장 GPU 경제성과 스케줄링의 문제로 바뀝니다. 오픈웨이트가 공짜가 아니라 인프라 역량을 가진 조직만의 것이라면, 그 인프라 역량을 상품화하는 것이 핵심입니다. 프런티어 오픈웨이트를 실무 경제성으로 서빙하고, 소형 증류 모델과 라우팅으로 묶어, 두 축을 하나의 서빙 스택으로 통합하는 일입니다. Kueue 기반 GPU 스케줄링과 멀티테넌트 서빙이 겨냥하는 지점이 정확히 여기입니다.</p>

<h2 id="마무리">마무리</h2>

<p>Kimi K3는 대단한 성취입니다. 동시에 격차가 사라졌다는 결론은 데이터가 지지하지 않습니다. 좁은 트랙 1위와 넓은 트랙 3위가 같은 모델에서 나온다는 사실, 오픈웨이트가 역대 최고가로 책정됐다는 사실, 개인이 로컬에서 돌릴 수 없다는 사실이 함께 말하는 것은 하나입니다. 인류의 난제는 벤치마크 순위로 풀리지 않았고, 앞으로도 더 똑똑한 프런티어 모델과 더 작은 실행 가능한 모델이 둘 다 필요합니다. 그 두 축이 만나는 서빙 스택에서 다음 도약이 나옵니다.</p>

<h2 id="참고-자료">참고 자료</h2>

<ul>
  <li>VentureBeat, “China’s Moonshot AI releases Kimi K3, the largest open-source model ever”</li>
  <li>MarkTechPost, “Moonshot AI Releases Kimi K3: A 2.8 Trillion Parameter Open MoE Model”</li>
  <li>Fortune, “Moonshot’s Kimi K3 pushes Chinese AI into Fable-level territory”</li>
  <li>officechai, “Kimi K3 Beats Fable 5, GPT 5.6 On Some Benchmarks”</li>
  <li>Simon Willison, “Kimi K3, and what we can still learn from the pelican benchmark”</li>
  <li>Dell, “The Power of Small: Edge AI Predictions for 2026”</li>
  <li>NextBigFuture, “2026 is Breakthrough Year for Reliable AI World Models and Continual Learning”</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;}, {&quot;label&quot;=&gt;&quot;LinkedIn&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-linkedin&quot;, &quot;url&quot;=&gt;&quot;https://www.linkedin.com/company/thakicloud&quot;}, {&quot;label&quot;=&gt;&quot;X&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-x-twitter&quot;, &quot;url&quot;=&gt;&quot;https://x.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="owm" /><category term="kimi-k3" /><category term="open-weight" /><category term="llm" /><category term="inference" /><category term="edge-ai" /><category term="distillation" /><category term="on-premise" /><summary type="html"><![CDATA[Kimi K3가 좁은 벤치마크에서 프런티어를 추월했습니다. 그런데 넓은 실무 과제에서는 아직 3위입니다. 이 간극이 다음 단계를 말해 줍니다.]]></summary></entry><entry xml:lang="ko"><title type="html">스킬 무덤: 스킬이 2천 개를 넘긴 에이전트 하네스에서 안전하게 폐기하는 법</title><link href="https://thakicloud.github.io/ko/research/skill-graveyard-safe-deprecation/" rel="alternate" type="text/html" title="스킬 무덤: 스킬이 2천 개를 넘긴 에이전트 하네스에서 안전하게 폐기하는 법" /><published>2026-07-17T00:00:00+09:00</published><updated>2026-07-17T00:00:00+09:00</updated><id>https://thakicloud.github.io/ko/research/skill-graveyard-safe-deprecation</id><content type="html" xml:base="https://thakicloud.github.io/ko/research/skill-graveyard-safe-deprecation/"><![CDATA[<p>에이전트 하네스에 스킬이나 서브에이전트, MCP 도구를 계속 늘려온 국내 클라우드·AI 엔지니어라면, 카탈로그가 수백 개를 넘어가는 시점부터 라우터가 엉뚱한 스킬을 고르거나 아예 아무것도 못 고르는 경험을 해봤을 겁니다. 이 글에서 소개하는 논문은 그 현상을 리트리버 개선이 아니라 정반대 방향, 즉 코퍼스를 줄이는 쪽에서 풀어봅니다. 실제로 2,164개 유닛이 등록된 프로덕션 하네스를 대상으로, 스킬을 안전하게 솎아내는 정책을 설계하고 실측한 사례연구입니다.</p>

<h2 id="스킬이-늘어날수록-라우터는-오히려-헤맨다">스킬이 늘어날수록 라우터는 오히려 헤맨다</h2>

<p>에이전트 플랫폼은 이제 능력을 하나의 거대한 프롬프트가 아니라, 이름이 붙은 재사용 가능한 스킬 단위(워크플로우, 서브에이전트, 슬래시커맨드, 도구 정의)의 라이브러리로 배포합니다. 문제는 이 라이브러리가 커질수록 라우터가 올바른 스킬을 찾는 정확도가 함께 떨어진다는 점입니다. 논문은 이 현상을 저자들의 하네스가 이미 쓰던 용어 그대로 “SRA Noise Problem”이라 부릅니다. 배제 대상 후보(distractor)가 늘어날수록 정답 스킬이 랭킹 맨 앞에 오를 확률이 낮아지는 현상입니다.</p>

<p>이 논문은 저자들이 앞서 낸 두 편의 기술보고서를 정면으로 잇습니다. 첫 번째 보고서는 라우팅 실패를 질의 분해 문제로 뜯어봤고, 오라클 수준으로 질의를 완벽히 분해해도 리트리버가 정답 스텝의 63.6%밖에 회수하지 못한다는 걸 확인했습니다. 두 번째 보고서는 리트리버의 동의어 확장과 질의 분해를 함께 개선하는 리페어 루프를 만들었지만, 이 역시 라우팅 정확도를 포화시키지는 못했습니다. 두 논문 모두 “고정된 채 계속 커지는 코퍼스 안에서 리트리버를 더 잘 찾게 만드는” 쪽만 건드렸습니다. 이번 논문은 그 반대편, 코퍼스 자체를 줄이는 레버를 시험합니다.</p>

<h2 id="코퍼스가-216배-커지자-top-1-정확도가-반토막-났다">코퍼스가 21.6배 커지자 Top-1 정확도가 반토막 났다</h2>

<p>저자들은 ThakiCloud가 실제로 운영 중인 Claude Code 하네스(등록 유닛 2,164개, 그중 순수 스킬 정의만 1,930개)를 대상으로 코퍼스 크기와 검색 정확도의 관계를 실측했습니다. 코퍼스를 100개부터 전체 2,164개까지 여섯 단계로 부분표집해 Recall@5, 게이트를 통과한 Recall@5, Top-1 정확도를 각각 측정했습니다.</p>

<p>결과는 지표마다 크게 갈렸습니다. Top-1 정확도는 코퍼스가 21.6배 커지는 동안 0.778에서 0.356으로 42.2퍼센트포인트 무너졌습니다. 같은 구간에서 Recall@5는 17.8퍼센트포인트(0.978에서 0.800으로) 하락에 그쳤고, abstain 게이트를 통과한 Recall@5는 4.4퍼센트포인트(0.711에서 0.667로)만 떨어지며 코퍼스 크기 250 이후로는 거의 평평하게 유지됐습니다. 후보를 하나만 골라 곧바로 실행하는 라우터일수록 가장 먼저 무너지는 지표에 기대고 있다는 뜻입니다.</p>

<p>저자들은 이 현상을 “스킬 반감기(skill half-life)”라는 개념으로 정식화합니다. 어떤 지표가 작은 코퍼스 기준값의 절반 아래로 떨어지는 코퍼스 크기를 그 지표의 반감기로 정의하면, Top-1의 반감기는 이미 현재 운영 중인 코퍼스 크기 범위 안에 들어와 있습니다. 반면 Recall@5류 지표는 이번 측정 범위 안에서는 아직 반감기에 도달하지 않았습니다.</p>

<p><img src="/assets/images/posts/research/skill-graveyard-safe-deprecation/fig-growth-curve.png" alt="Skill Half-Life: Retrieval Accuracy vs. Corpus Size" />
<em>ThakiCloud 프로덕션 Claude Code 하네스(63개 케이스 스위트)에서 측정한 코퍼스 크기별 부분표집 실험 결과입니다. Top-1 정확도가 코퍼스 성장 21.6배 구간에서 42.2퍼센트포인트 무너지는 동안, 게이트를 통과한 Recall@5는 상대적으로 견고하게 유지됩니다.</em></p>

<h2 id="지우기-전에-반드시-다시-검색해본다">지우기 전에 반드시 다시 검색해본다</h2>

<p>이 관찰을 바탕으로 논문은 두 신호를 결합한 자율 폐기 정책을 제안합니다. 첫째 신호는 사용 텔레메트리로, 호출 빈도와 최근성, 실패 이력을 본다. 둘째 신호는 의미적 중복성으로, 스킬 설명 문구의 유사도를 계산해 근접 중복 클러스터를 찾는 방식입니다. 실제로 이 유사도는 라우터가 검색에 이미 쓰던 것과 같은 신호입니다.</p>

<p>두 신호만으로 저사용·중복 스킬을 후보로 뽑으면 위험한 오탐이 남습니다. 사용량은 낮지만 특정 질의를 유일하게 커버하는 스킬이 섞여 있을 수 있기 때문입니다. 그래서 논문은 여기에 실행 시점 안전장치를 하나 더 얹습니다. 후보를 실제로 지우기 전에 63개짜리 라벨링 스위트(정답 스킬이 있는 긍정 케이스 45개, 스킬 없이 직접 처리해야 하는 네이티브 케이스 10개, 그럴듯해 보이지만 선택되면 안 되는 부정 케이스 8개)를 대상으로, 그 스킬이 빠졌다고 가정하고 검색을 다시 시뮬레이션합니다. 만약 어떤 긍정·네이티브 케이스가 더 이상 검색되지 않는다면 그 스킬은 대체 불가능으로 판정되어 제거 대상에서 빠지고, 같은 클러스터 안에서 사용량이 그다음으로 낮은 중복 스킬이 대신 제거 대상이 됩니다. 클러스터 안의 후보가 모두 소진되도록 대체할 스킬이 없으면 목표 축소량을 억지로 채우지 않고 부족분을 그대로 기록합니다.</p>

<h2 id="160개를-들어냈는데-측정-가능한-회귀가-없었다">160개를 들어냈는데 측정 가능한 회귀가 없었다</h2>

<p>실제 코퍼스에서 의미적 중복 클러스터는 131개 발견됐고, 가드가 있든 없든 두 정책 모두 동일하게 160개 스킬을 폐기 후보로 지목했습니다. 가드 없이 그대로 실행했다면 이 중 4개는 저사용이지만 클러스터 안에서 특정 긍정·네이티브 케이스를 유일하게 커버하는 스킬이라 잘못 삭제됐을 겁니다. 안전장치를 켜면 이 잘못된 삭제가 4건에서 0건으로 줄어듭니다. 흥미로운 지점은, 가드가 클러스터 안에서 삭제 대상을 바꿀 뿐 목표 삭제량 자체는 줄이지 않기 때문에 가드 유무와 무관하게 코퍼스 축소율이 정확히 같은 7.39%(160/2,164)로 유지된다는 점입니다.</p>

<p><img src="/assets/images/posts/research/skill-graveyard-safe-deprecation/fig-guard-comparison.png" alt="False Deprecations: Naive vs. Guarded Policy" />
<em>동일하게 7.39% 코퍼스를 줄이는 두 정책을 비교합니다. 안전장치 없이 실행하면 잘못된 삭제가 4건 발생하지만, 안전장치가 클러스터 안에서 다음으로 사용량이 낮은 중복 스킬로 대체하면서 잘못된 삭제를 0건으로 만듭니다.</em></p>

<p>가드를 적용해 160개 스킬을 제거한 뒤 같은 63개 표준 스위트로 다시 채점하면, Recall@5(0.822), 게이트 Recall@5(0.667), Top-1(0.378), 환각률(0.0), 부정 회피율(0.375) 다섯 지표 모두 제거 전과 완전히 동일하게 나왔습니다. 코퍼스의 7.39%를 들어내면서도 측정 가능한 회귀가 전혀 없었던 셈입니다.</p>

<h2 id="회사와-생태계에-주는-의미-그리고-스스로-그은-한계선">회사와 생태계에 주는 의미, 그리고 스스로 그은 한계선</h2>

<p>회사 차원에서 이 결과는 실용적입니다. 리트리버를 다시 학습시키거나 재구축하지 않고도, 하네스가 라우팅과 회고(retrospection)를 위해 이미 갖고 있던 텔레메트리와 유사도 계산만으로 코퍼스를 안전하게 다이어트할 수 있다는 뜻이기 때문입니다. 코퍼스가 작아지면 턴마다 스킬 목록을 로드하는 온보딩 토큰 비용도 줄어들 개연성이 있지만, 저자들은 이번 실험에서 그 비용 자체를 직접 측정하지는 않았다고 명시합니다.</p>

<p>이 정책이 쓰는 두 신호, 사용 텔레메트리와 의미적 중복성은 ThakiCloud 저장소에만 있는 고유 기능에 의존하지 않습니다. 그래서 저자들은 MCP 서버나 도구를 오픈 마켓플레이스 형태로 계속 늘려가는 다른 에이전트 플랫폼에도 원리적으로 옮겨 적용할 수 있다고 전망합니다. 여기에 더해 “스킬 반감기”라는 개념 자체가, 검색 코퍼스가 자랄 때 지표별로 얼마나 다르게 무너지는지 비교할 공용 어휘를 제공하고, 사용량과 의미적 중복성을 결합한 안전 폐기 정책의 실측 데이터를 처음으로 내놓았다는 점에서 관련 연구와 접점을 만듭니다.</p>

<p>다만 저자들은 이 결과의 한계도 스스로 조목조목 짚습니다. 가장 중요한 지점은, 안전장치가 실행 시점에 참조하는 라벨 스위트와 회귀 여부를 채점하는 스위트가 같은 63개 케이스라는 점입니다. 그래서 이 결과는 프로덕션 전체 질의 분포에 대한 일반적 보장이 아니라, 가드가 지키도록 설계된 케이스가 실제로 깨지지 않았다는 사실만 보여줍니다. 저자들은 이를 “회귀 판정 기준 자체에 상대적인” 결과라고 정확히 구분합니다. 여기에 더해 단일 저장소·단일 코퍼스만 대상으로 한 사례연구라는 점, 무작위 삭제나 사용량 단일 신호만으로 삭제했을 때와 비교하는 베이스라인 실험이 빠져 있어 이 2신호 정책이 더 단순한 방법보다 실제로 더 안전한지는 아직 입증되지 않았다는 점, 가드가 클러스터 안에서 실제로 어떤 스킬로 대체했는지 클러스터별 로그를 공개하지 않아 대체 메커니즘이 집계 수치로만 확인됐다는 점도 명시합니다. 부정 회피율이 8개 중 3개(0.375)에 그친다는 점도, 이번 폐기 정책과는 별개로 하네스가 이미 안고 있던 약점으로 따로 언급합니다.</p>

<p>무엇보다 이 실험은 코퍼스 성장이 만든 정확도 하락 자체를 되돌린 게 아니라, 코퍼스를 줄이는 과정에서 추가 회귀가 없었음을 보인 것에 그칩니다. 성장 곡선을 실제로 역전시키는 일, 그리고 63개 스위트를 넘어선 지속적 모니터링으로 이 안전장치를 검증하는 일은 앞으로의 과제로 남아 있습니다.</p>

<p>논문 상세 정보는 Hugging Face 데이터셋 페이지에서 확인할 수 있습니다.</p>

<p><a href="https://huggingface.co/datasets/thaki-AI/daily-paper-2026-07-17-skill-graveyard-safe-deprecation">Skill Graveyard: Safe Autonomous Deprecation in Growing Agent Skill Ecosystems</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;}, {&quot;label&quot;=&gt;&quot;LinkedIn&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-linkedin&quot;, &quot;url&quot;=&gt;&quot;https://www.linkedin.com/company/thakicloud&quot;}, {&quot;label&quot;=&gt;&quot;X&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-x-twitter&quot;, &quot;url&quot;=&gt;&quot;https://x.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="research" /><category term="skill-ecosystem" /><category term="agent-harness" /><category term="skill-routing" /><category term="retriever-degradation" /><category term="autonomous-deprecation" /><category term="redundancy-detection" /><category term="usage-telemetry" /><category term="bm25-retrieval" /><category term="corpus-pruning" /><category term="self-improving-pipelines" /><summary type="html"><![CDATA[에이전트 스킬이나 MCP 도구 카탈로그를 계속 늘려온 팀이라면 라우팅 정확도가 어느 순간부터 떨어지는 걸 체감했을 겁니다. 리트리버를 더 잘 만드는 대신 코퍼스 자체를 줄이면 어떻게 될까요. 2,164개 유닛을 가진 실제 프로덕션 하네스에서 회귀 없이 160개 스킬을 폐기한 실험을 소개합니다.]]></summary></entry><entry xml:lang="ko"><title type="html">저노력 리뷰가 다 이겼다ㅋ</title><link href="https://thakicloud.github.io/ko/%EB%A7%8C%ED%99%94/code-review-effort-levels-low-effort-wins/" rel="alternate" type="text/html" title="저노력 리뷰가 다 이겼다ㅋ" /><published>2026-07-17T00:00:00+09:00</published><updated>2026-07-17T00:00:00+09:00</updated><id>https://thakicloud.github.io/ko/%EB%A7%8C%ED%99%94/code-review-effort-levels-low-effort-wins</id><content type="html" xml:base="https://thakicloud.github.io/ko/%EB%A7%8C%ED%99%94/code-review-effort-levels-low-effort-wins/"><![CDATA[<p>클로드 코드의 /code-review에 ‘노력 레벨’이 생겼습니다. 리뷰를 대충 볼지 빡세게 볼지를 눈금으로 고를 수 있고, 레벨을 바꿀 때마다 리뷰 자체가 처음부터 다시 쓰인다는 이야기입니다. 여기서 재미있는 대목은 가장 낮은 노력으로 돌린 리뷰조차 다른 코드 리뷰 도구들을 이겼다는 점입니다. 그런데 노력을 올린다는 건 결국 추론을 더 돌린다는 뜻이고, 남의 클라우드 위에서는 그 추론 한 번이 그대로 계량기 숫자로 찍힙니다. 파시스와 메티스가 눈금을 끝까지 밀어 올려 봤습니다.</p>

<p><img src="/assets/images/posts/만화/code-review-effort-levels-low-effort-wins/strip.png" alt="저노력 리뷰가 다 이겼다ㅋ" /></p>

<blockquote>
  <p>원 뉴스: <a href="https://x.com/hjguyhan/status/2077894748183097710">Claude Code’s /code-review now has effort levels, with the review rewritten at every one.</a> · twitter</p>
</blockquote>

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

<p>노력을 마음껏 올릴 수 있느냐는 결국 컴퓨트를 누가 쥐고 있느냐의 문제입니다. 남의 클라우드에서는 리뷰 노력을 한 칸 올릴 때마다 청구서가 따라 오르니, 정작 필요한 순간에 눈금을 아끼게 됩니다. 타키클라우드가 미는 온프렘은 모델과 GPU를 자기 시설 안에 두는 방식이라, 노력을 끝까지 밀어도 계량기가 돌지 않습니다. 파시스는 리뷰 에이전트를 여러 노력 레벨로 병렬로 풀어 결과를 교차 검증하고, 메티스는 그 추론을 자기 랙 위에서 돌립니다. 저노력이 이미 남들을 이긴다면, 고노력을 공짜로 돌릴 수 있는 쪽이 결국 더 멀리 갑니다.</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;}, {&quot;label&quot;=&gt;&quot;LinkedIn&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-linkedin&quot;, &quot;url&quot;=&gt;&quot;https://www.linkedin.com/company/thakicloud&quot;}, {&quot;label&quot;=&gt;&quot;X&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-x-twitter&quot;, &quot;url&quot;=&gt;&quot;https://x.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="만화" /><category term="ai-coding" /><category term="code-review" /><category term="on-prem" /><category term="sovereign-ai" /><category term="thakicloud" /><category term="compute-cost" /><summary type="html"><![CDATA[노력 눈금 최대로 땡겼더니, 청구서만 최대치더라ㅋ]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://thakicloud.github.io/assets/images/posts/%EB%A7%8C%ED%99%94/code-review-effort-levels-low-effort-wins/strip.png" /><media:content medium="image" url="https://thakicloud.github.io/assets/images/posts/%EB%A7%8C%ED%99%94/code-review-effort-levels-low-effort-wins/strip.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>