مهندسی ۸ آوریل ۲۰۲۶

چرا ما از ONNX به… رفتیم GGUF

نصب کوچک‌تر، راه‌اندازی سریع‌تر و دیگر نیازی به مقابله با بسته‌های وابسته به پلتفرم خاص. داستان مهندسی پشت این تغییر.

نسخه‌های اولیه Voice Pro از ONNX Runtime همراه با فایل‌های خروجی رسمی Qwen ASR در قالب ONNX استفاده می‌کردند. این روش کارساز بود، اما پیاده‌سازی آن دشوار بود. در ادامه مشکلاتی که با آن‌ها روبرو شدیم و دلایلی که باعث شده اکنون این اپلیکیشن روی… کار کند، آمده است. llama.cpp با مدل‌های کوانتیزه‌شده GGUF.

مشکل ۱: حجم نصب

یک بیلد Windows از Voice Pro با ONNX Runtime + ارائه‌دهنده DirectML + ارائه‌دهنده CUDA + وزن‌های مدل به 430 MB. Linux نیز مشابه بود. این درخواست زیادی است که از کسی خواسته شود برای یک ابزار دیکته‌برداری که هنوز امتحان نکرده، آن را دانلود کند.

نسخه GGUF است ۸۳ مگابایت در Windows. فایل اجرایی کامپایل‌شده‌ی llama.cpp بسیار کوچک است؛ مدل پایه‌ی کوانتیزه‌شده حدود ۶۰ مگابایت اندازه دارد (در حالی که نسخه‌ی FP16 ONNX حدود ۲۰۰ مگابایت است)، و ما فایل‌های DLL جداگانه‌ای برای پلتفرم‌های CPU، CUDA، DirectML و Vulkan ارائه نمی‌دهیم — llama.cpp تمام این چهار پلتفرم را با یک فایل اجرایی مدیریت می‌کند.

مشکل ۲: شروع سرد

استفاده از ONNX Runtime با DirectML روی یک نصب Windows تازه، ۳ تا ۵ ثانیه زمان برای راه‌اندازی جلسه استنتاج (inference session) می‌برد. هر بار که کاربر برای اولین بار پس از راه‌اندازی مجدد، از کلید میانبر استفاده می‌کرد، با این تأخیر مواجه می‌شد. این موضوع برای یک ابزار دیکته که هدف اصلی آن «صحبت کردن بلافاصله» است، غیرقابل قبول است.

llama.cpp مدل GGUF را در حدود ۴۰۰ میلیثانیه cold روی همان سختافزار بارگذاری میکند. وزنهای ممپشده در حافظه، بدون مرحله کامپایل گراف، بدون ویل رانتایم برای راهاندازی.

مشکل ۳: کابوس بستهبندی

ONNX Runtime به صورت یک فایل Python wheel ارائه می‌شود، که به این معناست: ویل‌های (wheels) متفاوت برای هر نسخه پایتون، سیستم عامل و معماری CPU. افزودن شتاب‌دهی GPU و ضرب کردن آن در نسخه CUDA و نسخه DirectML. Nuitka (ابزار بسته‌بندی ما) همواره نسخه نادرست را بسته‌بندی می‌کرد. ما اسکریپت‌های ساخت با شش شاخه شرطی داشتیم.

llama.cpp یک باینری تکی C++ است. ما آن را یک بار برای هر پلتفرم (Windows x64، Linux x64) کامپایل میکنیم و آن را بهعنوان یک فایل اجرایی بومی ارسال میکنیم که Voice Pro آن را فراخوانی میکند. هیچ وابستگی به محیط اجرایی پایتون برای استنتاج وجود ندارد — پایتون فقط چسب است.

مشکل ۴: کیفیت در حجمهای کم

نگرانی درباره کوانتیزاسیون، از دست رفتن دقت است. در عمل، نسخه کوانتیزه‌شده Q5_K_M از Qwen3-ASR 0.6B (مدل پایه ما) در مجموعه ارزیابی داخلی ما، با خطای WER حدود ۰.۳٪ نسبت به نسخه کامل fp16 ONNX عمل می‌کند. نسخه Q4_0 به‌طور محسوسی بدتر است، بنابراین ما Q5_K_M را به‌عنوان پیش‌فرض عرضه می‌کنیم. کاربرانی که حداکثر دقت را می‌خواهند، می‌توانند نسخه fp16 را از مدیر مدل‌ها دانلود کنند.

آنچه را که واگذار کردیم

پشتیبانی ASR در llama.cpp جدیدتر از ONNX Runtime است. برخی معماریهای مدل عجیبوغریب هنوز مبدل GGUF ندارند. برای الان این مهم نیست — Qwen3-ASR تمیز تبدیل میکند — اما اگر بخواهیم در آینده یک مدل ASR کاملاً متفاوت را امتحان کنیم، ممکن است نیاز داشته باشیم مسیر ONNX را بهعنوان جایگزین نگه داریم.

نتیجه نهایی: نصب ۵ برابر کوچک‌تر، شروع سرد ~۱۰ برابر سریع‌تر، یک فایل باینری برای ساخت به جای دوازده تا. باید از روز اول این کار را می‌کردیم.

دانلود (۸۳ مگابایت) مشاهده تمام ویژگی‌ها

وقتی ارسال شد، آن را بشنوید.

محصولات جدید، معیارهای واقعی و گاهی بررسی‌های عمیق؛ هیچ ایمیل تبلیغاتی نخواهد بود؛ لغو دریافت ایمیل‌ها با یک کلیک امکان‌پذیر است.

هر آنچه که ما ساخته‌ایم

Voice Pro

سیستم تبدیل گفتار به متن محلی که صدای شما را یاد می‌گیرد؛ مجوز دائمی. محصول پرچمدار ما.

پرداختی · مدل پرچمدار

brethof-brain

حافظه بلندمدت برای ایجنت‌های هوش مصنوعی شما — متن کامل + بردارها + نمودارها. در ابتدای جلسه اطلاعات آن ارائه می‌شود، با هر درخواستی دوباره فراخوانی می‌گردد و به‌طور خودکار ذخیره می‌شود.

پرداختی · سطح رایگان

مدل‌های سه‌بعدی

مدل‌های دیجیتال آماده چاپ. شامل فرمت‌های GLB و OBJ. دسترسی تمام‌عمر.

پرداختی · کاتالوگ دیجیتال

چاپ سه‌بعدی

پنج دستگاه چاپگر و ظرفیت واقعی. هنوز فروشگاه خودخدمتی وجود ندارد — نیازهایتان را به ما بگویید و ما قیمت را از طریق ایمیل ارسال خواهیم کرد.

بنا بر توافق · به ما ایمیل بفرستید

Nova

کانال YouTube ما. یک مجری «ببر سایبری» ابزارهای هوش مصنوعی محلی و عملکرد واقعی آن‌ها را توضیح می‌دهد.

کانال · پخش زنده

فهرستهای فوقالعاده

فهرست‌های برگزیده‌شده در GitHub برای ابزارهای کدنویسی هوش مصنوعی، سرورهای MCP، هوش مصنوعی محلی و Linux برای هوش مصنوعی. هر مورد دارای لینک منبع است.

رایگان · انتخاب‌شده

راهنماها

راهنمای‌های مفصل برای هوش مصنوعی محلی در Linux، Windows و macOS، همراه با فایل‌های پیکربندی.

رایگان · زنده

لیست رتبهبندی ضد-Dev

گزینش منفی: روشها و ابزارهایی که وقت شما را تلف میکنند، رتبهبندیشده. مستندات لازم است.

رایگان · زنده

درباره Brethof AI

ما چه کسی هستیم، چرا هوش مصنوعی مبتنی بر حریم خصوصی میسازیم، و چه کارهایی را انجام نمیدهیم.

خارجی: YouTube · GitHub