تصور کنید سیستمی داشته باشید که در انتخاب یک گزینه از بین هشت مورد، ۱۰۰ برابر سریعتر از یک مدل زبانی کوچک عمل کند. این جهش عملکردی نشان میدهد که شاید برای بسیاری از وظایف سادهی انتخابی، اصلاً نیازی به مدلهای مولد و پیچیده نباشد. این کارایی در مدل jevlike تجسم یافته است؛ یک پژوهش مستقل که برای شبیهسازی ساختار ورودی-خروجی مدل تجاری Jev (محصول شرکت TypeSafe) طراحی شده است. از آنجایی که TypeSafe جزئیات طراحی خود را منتشر نکرده، این مخزن کد یک جایگزین کاربردی برای پژوهشگران فراهم میکند تا بتوانند معادل عملکردی آن را بررسی کنند.
بیشتر هوش مصنوعیهای مدرن برای پاسخ به سؤالات چندگزینهای، جواب را کلمه به کلمه مینویسند؛ فرآیندی که محاسبات زیادی را روی توکنهایی هدر میدهد که ارزش افزودهای ندارند. تصور کنید در یک منوی دیجیتال، هوش مصنوعی باید یکی از سه دستهبندی را انتخاب کند؛ یک مدل زبانی بزرگ (LLM) استاندارد ابتدا جملهای برای توضیح انتخابش تولید میکند، اما یک مدل امتیازدهنده تکمرحلهای، فوراً به هر گزینه یک احتمال اختصاص میدهد. این تغییر از «تولید» به «امتیازدهی»، گلوگاه رمزگشایی (Decoding) — یعنی همان لحظهی تولید کلمه به کلمه یا autoregressive — را کاملاً حذف میکند.
همانطور که در تحلیلهای قبلی ما دربارهی بهینهسازی استنتاج اشاره کردیم، کاهش تأخیر در لبهی شبکه، کلید پذیرش عاملهای هوش مصنوعی است. این بهینهسازی در تعامل با سیستمعاملها حیاتی است، مشابه آنچه در تبدیل ترمینال دسکتاپ به رابط برنامهپذیر برای عاملهای هوش مصنوعی مشاهده کردیم تا سرعت اجرای دستورات افزایش یابد.
ساختار معماری
به نقل از مستندات مخزن github.com، معماری jevlike هر گزینه متنی را به یک بردار معنایی (Embedding) تبدیل میکند. این بردارها در واقع لیستهای کوتاهی از اعداد هستند که متن را نمایندگی میکنند. این بردارها وزنهای توجه (Attention) را به توکنهای زمینه اختصاص میدهند و برای هر گزینه، یک بردار زمینهی خاص میسازند.
سپس یک ضرب داخلی مشترک (Shared Dot Product)، این جفتهای گزینه و زمینه را به امتیاز تبدیل میکند. در نهایت، یک تابع سافتمکس (Softmax) — که امتیازها را به احتمالات تبدیل میکند تا مجموع آنها برابر یک شود — روی گزینهها اجرا میشود تا انتخاب نهایی تعیین گردد.
پیادهسازی فنی و عملکرد
این مدل دو مسیر اصلی برای تبدیل متن به بردار ارائه میدهد:
- رمزگذار بایت (Byte Encoder): گزینهای سبک که بردار معنایی بایتها را از صفر یاد میگیرد. این روش از نظر محاسباتی ارزان است اما در درک مفاهیم پیچیده زبانی ضعیفتر عمل میکند.
- مسیر Hugging Face: از یک رمزگذار پیشآموزشدیده و ثابت مثل Qwen2.5-0.5B استفاده میکند. در این حالت، وزنهای قبلی ثابت میمانند و فقط بخش امتیازدهنده یاد میگیرد. پرچم
--rankعرض این لایه را تعیین میکند؛ هرچه عرض بیشتر باشد، تعداد وزنهای قابل آموزش و میزان مصرف حافظه افزایش مییابد.
بر اساس بررسیهای ثبتشده در مخزن، این امتیازدهنده در منوهای مصنوعی به صحت ۹۸٪ رسید. در آزمایش روی دادههای کلیک Wikispeedia (دادههای مربوط به کلیک بعدی که هدفها در آنها مجزا بودند)، ترکیب رمزگذار Qwen2.5-0.5B و این امتیازدهنده به صحت ۲۶٪ دست یافت که بهطور قابلتوجهی از مدلهای کنترلشده (مانند رمزگذارهای تصادفی یا جابهجا شده که ۸٪ کسب کردند) بهتر بود. همچنین، مدلی که از صفر روی ۴۰ هزار کلیک آموزش دید، به صحت ۲۹٪ رسید.
مدیریت داده و آموزش
توسعهدهندگان از فرمت ساده JSONL استفاده میکنند که هر خط آن شامل یک شیء JSON حاوی زمینه، لیستی از گزینهها و برچسب گزینه درست (با شروع از صفر) است. برای مثال: {"context":"The customer needs a refund.","options":["refund","sales","technical support"],"label":0}.
محدودیتهای کلیدی دادهها و جزئیات آموزش عبارتند از:
- حداقل گزینهها: هر ردیف باید حداقل دو گزینه داشته باشد، هرچند تعداد گزینهها میتواند در هر ردیف متفاوت باشد.
- محدودیت توکن: تنظیمات پیشفرض، زمینه را به ۱۹۲ بایت و گزینهها را به ۳۲ بایت محدود میکند. این مقادیر از طریق پرچمهای
--context-tokensو--option-tokensقابل تغییر هستند. - تفکیک دادهها: توصیه میشود رکوردهای مرتبط (مانند دادههای مربوط به یک مشتری خاص یا یک صفحه هدف واحد) در یک بخش (Split) قرار گیرند تا از نشت دادههای تقریباً مشابه به مجموعه آزمون جلوگیری شود.
- پشتیبانی سختافزاری: آموزش روی CPU، پردازندههای Apple MPS برای مکها و GPUهای انویدیا (CUDA) از طریق پرچم
--deviceامکانپذیر است.
کاربردهای عملی در بازی
پروژه شامل یک امتیازدهنده بصری در jevlike.vision است که این منطق را روی تکههای تصویر (Image Patches) پیاده میکند. همان لایه توجهی که برای متن استفاده میشد، اکنون میتواند دکمههای کنترلر را از روی تکههای تصویر امتیازدهی کند. در دموهای ارائه شده، مدل دکمههای کنترلر را برای دو بازی مختلف امتیازدهی میکند:
- Doom: یک چکپوینت مشترک در ۱۰ اپیزود ضبطشده از نبرد deadly_corridor با استفاده از هفت دکمه، میانگین ۰.۶۰ کشت و پاداش ۹۷.۵۰- را ثبت کرد.
- Chess: یک چکپوینت تخصصی در ۵۰ بازی مقابل یک رقیب تصادفی، ۴ برد و ۴۶ تساوی کسب کرد، هرچند مقابل Stockfish level 0 دچار ۴۸ شکست و ۲ تساوی شد.
توسعهدهندگان میتوانند با استفاده از چکپوینت joint-imitation.pt و اسکریپت examples/doom/play.py یک ردپای جدید ۶۴۰ در ۴۸۰ از بازی Doom ضبط کنند. ردپای حاصل را میتوان با استفاده از یک اسکریپت مبتنی بر Playwright در دایرکتوری examples/film به یک فیلم بیصدا تبدیل کرد.
این رویکرد، پارادایم هوش مصنوعی را از «استدلال از طریق تولید» به «طبقهبندی از طریق توجه» تغییر میدهد. برای کاربر نهایی، این یعنی پاسخهای آنی در رابطهای کاربری، چتباتها و عاملهای بازی، بدون تأخیر خط لوله مدلهای زبانی بزرگ. این موضوع در محیطهای توسعهای که نیاز به اجرای همزمان چندین عامل دارند، اهمیت دوچندانی مییابد؛ درست مانند پروژه Proliferate که برای حذف تداخل عاملهای AI از محیطهای ایزوله استفاده میکند تا کارایی سیستم حفظ شود. این ثابت میکند برای بخش بزرگی از وظایف، ما به مدلی که «حرف بزند» نیاز نداریم، بلکه مدلی میخواهیم که «انتخاب کند».
گام بعدی شما
- نصب افزونههای
[games]یا[transformers]از طریقuv pipبرای تست اولیه. - اجرای اسکریپتهای دادههای مصنوعی یا Wikispeedia برای مشاهده سرعت امتیازدهی تکمرحلهای.
- بررسی جایگزینی LLMهای کند با این مدل در بخشهای انتخاب منو در اپلیکیشنهای خود.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو