dale؛ درس fine-tuning یک model کوچک برای تبدیل درخواست به Bash

چرا مهم است

اگر برای یک کار مشخص model کوچک آموزش می‌دهی، این تجربه به تفاوت شکل درخواست‌های آموزش و آزمون اشاره می‌کند. در dale،؜ اصلاح همین تفاوت نتیجه داد، درحالی‌که چند روش آموزشی دیگر دقت آزمون را تغییر ندادند.

قبل از خواندن، این‌ها را بدان۴ مفهوم
fine-tuning

ادامهٔ آموزش یک model ازپیش‌آموزش‌دیده با داده‌های متناسب با یک کار یا حوزهٔ مشخص.

بیشتر: fine-tuning

deterministic

ویژگی روشی که با ورودی و شرایط یکسان، نتیجهٔ یکسان تولید می‌کند.

در حال نگارش: deterministic

distillation

روشی برای آموزش یک model با استفاده از خروجی یا رفتار یک model دیگر که نقش teacher را دارد.

در حال نگارش: distillation

prompt

متنی شامل درخواست، دستور یا مثال که به model داده می‌شود تا پاسخ آن را هدایت کند.

در حال نگارش: prompt

سازندهٔ dale تجربهٔ ساخت یک دستیار آفلاین برای terminal را منتشر کرده است: کاربر درخواستش را به زبان طبیعی می‌نویسد و یک model کوچک fine-tuned فرمان Bash تولید می‌کند. پیش از اجرا، یک بررسی‌کنندهٔ خطر deterministic فرمان را در یکی از سه دستهٔ safe،؜ caution یا danger قرار می‌دهد. هیچ فرمانی بدون تأیید کاربر اجرا نمی‌شود.

در ارزیابی گزارش‌شده روی ۴۷۱ درخواست کنارگذاشته‌شده به انگلیسی و اسپانیایی، dale-0.8b با حجم ۵۲۹ مگابایت، ۳۷۴ پاسخ درست و دقت ۷۹٫۴ درصد داشت. Qwen3.5-0.8B بدون fine-tuning به ۱۴٫۹ درصد رسید و Qwen3.5-9B بدون fine-tuning دقت ۶۲٫۸ درصد ثبت کرد. دقت dale-4b و dale-9b نیز به‌ترتیب ۸۷ و ۸۹٫۲ درصد بود. همهٔ model‌ها با Q4_K_M و همان llama.cpp ارزیابی شدند.

درس اصلی این تجربه به داده مربوط است. به گفتهٔ نویسنده، پس از چهار دور کار روی داده، دقت model با اندازهٔ 0.8B در حدود ۷۴ درصد متوقف شد. استفاده از DPO روی خطاهای خودش، یک teacher با اندازهٔ 27B و پنج روش distillation،؜ یک epoch اضافه و آزمایش learning rate‌های مختلف، نتیجهٔ آزمون را تغییر نداد.

بعد مشخص شد درخواست‌های آموزش کوتاه و ساده‌اند، اما درخواست‌های آزمون طولانی‌ترند و چند قید را هم‌زمان مطرح می‌کنند؛ مثلاً فقط نام‌ها را می‌خواهند، با ترتیب تاریخ و بدون زیرپوشه‌ها. نویسنده حدود ۹ هزار درخواست تازه با ویژگی‌های مشابه تولید کرد و دوباره آموزش داد. در این آزمایش، تعداد پاسخ‌های درست از ۳۴۸ به ۳۷۵ رسید؛ با p برابر ۰٫۰۰۱. این عدد مربوط به آزمایش اصلاح داده است؛ جدول اصلی برای dale-0.8b عدد ۳۷۴ را گزارش می‌کند.

این مقایسه محدودیت مهمی دارد: model‌های پایه fine-tuned نیستند و prompt شامل هشت مثال دریافت کرده‌اند. بنابراین نتیجه، مقایسهٔ model کوچک آموزش‌دیده با model بزرگ‌ترِ هدایت‌شده با prompt است، نه رتبه‌بندی عمومی model‌ها. آزمون نیز مصنوعی بوده و دو LLM از ارائه‌دهندگان متفاوت آن را داوری کرده‌اند.

از نظر اجرا، زمان پاسخ میانهٔ نسخهٔ 0.8B روی لپ‌تاپی متعلق به ۲۰۲۰ و بدون GPU،؜ برابر ۱٫۷ ثانیه گزارش شده است. برنامه یک binary با حجم ۵۱ مگابایت و llama.cpp داخلی است و به Python یا server نیاز ندارد. کد با مجوز MIT و model‌ها به‌شکل GGUF با مجوز Apache-2.0 عرضه شده‌اند.

نکته کلیدی

وقتی دقت model متوقف شد، پیش از امتحان روش پیچیده‌تر، طول درخواست‌ها و قیدهای هم‌زمان در داده‌هایت را بررسی کن. اعداد این گزارش را هم با محدودیتشان بخوان: آزمون مصنوعی بود و model‌های پایه fine-tuned نبودند.

خواندن مقاله اصلی (در زبانه‌ی جدید باز می‌شود)
برچسب‌ها (۴)