GeekAlerts

جایی برای گیک‌ها

·

معرفی مدل کدنویسی ایجنتیک Qwen3-Coder از علی‌بابا

معرفی مدل کدنویسی ایجنتیک Qwen3-Coder از علی‌بابا
  • اسم کامل: Qwen3-Coder-480B-A35B-Instruct
  • سازنده: تیم Qwen، Alibaba Cloud
  • نوع مدل: مدل زبان بزرگ کدنویسی (Code LLM) از نوع «ایجنتیک» (Agentic)
  • معماری: Mixture-of-Experts (MoE)
  • تعداد کل پارامترها: ۴۸۰ میلیارد
  • تعداد پارامترهای فعال: ۳۵ میلیارد
  • طول زمینه (Context Length): به صورت پیش‌فرض ۲۵۶ هزار توکن، قابل افزایش تا ۱ میلیون توکن
  • توانایی‌های اصلی: کدنویسی پیشرفته، وظایف ایجنتیک (استفاده از ابزار، تعامل با محیط)، پشتیبانی از ۳۵۸ زبان برنامه‌نویسی، درک و تحلیل مخازن کد بزرگ.

این روزها دنیای هوش مصنوعی پر از اتفاقات جدیده و هر چند وقت یک بار، یک مدل جدید معرفی میشه که سر و صدای زیادی به پا میکنه. یکی از جدیدترین مدل‌هایی که توجه خیلی‌ها رو به خودش جلب کرده، مدلی به اسم Qwen3-Coder-480B-A35B-Instruct هست. از همون لحظه اول که خبرش منتشر شد، بحث و گفتگوهای زیادی در موردش شکل گرفت، مخصوصا توی جوامعی مثل ردیت و هکرنیوز که محل تجمع علاقه‌مندان به تکنولوژیه.

اولین چیزی که نظر همه رو جلب کرد، اندازه خیلی بزرگ این مدل بود. یکی از کاربرها توی ردیت فقط تونست بنویسه «وای! چقدر بزرگه!». این واکنش کوتاه، خیلی خوب حس کلی جامعه رو نشون میداد. یک کاربر دیگه در جوابش نوشت «آره دقیقا واکنش منم همین بود». این اندازه بزرگ یعنی ۴۸۰ میلیارد پارامتر، که البته به لطف معماری خاصش که بهش میگن Mixture-of-Experts یا MoE، در هر لحظه فقط ۳۵ میلیارد از این پارامترها فعال هستن. این معماری کمک میکنه که مدل با وجود اندازه غول‌پیکرش، از نظر محاسباتی بهینه‌تر عمل کنه.

با معرفی شدن چنین مدل بزرگی، اولین سوالی که برای خیلی‌ها پیش اومد این بود که اصلا چطور میشه ازش استفاده کرد؟ یک کاربر به اسم Mysterious_Finish543 سریع خبر داد که این مدل از طریق یک سرویس به اسم Hyperbolic API در دسترسه و اسم دقیقش هم Qwen/Qwen3-Coder-480B-A35B-Instruct هست. این یعنی لازم نیست حتما مدل رو روی کامپیوتر شخصی خودتون اجرا کنید و میشه از طریق اینترنت بهش دسترسی داشت.

همین موضوع دسترسی و دانلود، خودش یه بحث دیگه‌ای رو باز کرد. کاربری به اسم eloquentemu اشاره کرد که با اومدن مدل‌های سنگینی مثل ERNIE-4.5-300B و Qwen3-325B و حالا این مدل جدید، اتصال اینترنتش حسابی به کار گرفته شده. این حرف نشون میده که فقط اجرا کردن این مدل‌ها چالش نیست، بلکه دانلود کردن فایل‌های چند صد گیگابایتی اونها هم برای خودش داستانیه.

یک قدم رو به جلو برای مدل‌های کدنویسی

خیلی‌ها این مدل رو جانشین مدل قبلی همین تیم یعنی qwen2.5-coder با ۳۲ میلیارد پارامتر میدونستن. کاربری به اسم shokuninstudio با حالتی طنزآمیز نوشت: «بالاخره جانشینی برای qwen2.5-coder 32b که میتونم روی… روی…» و حرفش رو نیمه‌کاره گذاشت تا نشون بده که اجرای این مدل جدید روی سیستم‌های معمولی تقریبا غیرممکنه. با این حال، حتی اگه اجرای محلیش سخت باشه، خود این پیشرفت برای جامعه هوش مصنوعی هیجان‌انگیزه.

البته همه هم دنبال مدل‌های بزرگ‌تر نیستن. کاربری به اسم GreenTreeAndBlueSky یک درخواست متفاوت داشت. اون گفت: «میشه لطفا نسخه تقطیر شده 70b-A7b رو داشته باشیم؟». این یعنی بعضی از کاربرها ترجیح میدن یک مدل کوچک‌تر ولی بهینه‌سازی شده داشته باشن که بتونن راحت‌تر ازش استفاده کنن. به این مدل‌های کوچک‌تر که از روی مدل‌های بزرگ ساخته میشن، مدل‌های تقطیر شده یا “distilled” میگن.

در کنار این بحث‌ها، خبرهای رسمی هم شروع به منتشر شدن کردن. وب‌سایت qwenlm.github.io مقاله‌ای با عنوان «Qwen3-Coder: کدنویسی ایجنتیک در جهان» منتشر کرد که در هکرنیوز ۵۹۷ امتیاز گرفت و ۲۳۷ کامنت داشت. این نشون میده که موضوع فقط برای چند نفر خاص جذاب نبوده و یک جامعه بزرگ درگیرش شدن.

یکی از چهره‌های کلیدی در این بحث‌ها، کاربری به اسم danielhanchen بود که به نظر میرسه در زمینه بهینه‌سازی این مدل‌ها برای اجرای محلی تخصص داره. اون اعلام کرد که در حال ساختن نسخه‌های کوانتایز شده ۲ بیت تا ۸ بیت از این مدل در فرمت GGUF هست تا بشه اونها رو روی سخت‌افزارهای ضعیف‌تر هم اجرا کرد. این خبر برای خیلی‌ها امیدوارکننده بود.

کدنویسی «ایجنتیک» یعنی چی؟

یکی از کلماتی که همراه با معرفی این مدل خیلی تکرار شد، «ایجنتیک» (Agentic) بود. اما این کلمه دقیقا به چه معناست؟ طبق توضیحاتی که در یکی از مقاله‌ها اومده، ایجنتیک بودن یعنی مدل فقط کد تولید نمیکنه، بلکه میتونه مثل یک «عامل» یا «ایجنت» هوشمند و مستقل عمل کنه.

ویژگی‌های یک مدل کدنویسی ایجنتیک اینهاست:

  • درک دستورات پیچیده: مدل فقط به دستورات ساده جواب نمیده، بلکه میتونه هدف پشت یک درخواست پیچیده رو بفهمه و اون رو به مراحل کوچک‌تر تقسیم کنه.
  • تعامل با محیط: میتونه با ابزارهای دیگه، API ها یا حتی وب برای جمع‌آوری اطلاعات کار کنه. درست مثل یک برنامه‌نویس که برای حل یک مشکل، توی اینترنت جستجو میکنه یا از ابزارهای مختلف استفاده میکنه.
  • برنامه‌ریزی و اجرای مراحل مختلف: برای حل یک مسئله، میتونه یک نقشه راه طراحی کنه و قدم به قدم اون رو پیش ببره.
  • یادگیری و تطبیق‌پذیری: در حالت ایده‌آل، یک مدل ایجنتیک از تجربه‌هاش یاد میگیره و در طول زمان بهتر میشه.

این ویژگی‌ها باعث میشن که مدل از یک ابزار تولید کد ساده، به یک دستیار برنامه‌نویس هوشمند تبدیل بشه که میتونه کارهای پیچیده‌تر و طولانی‌تری رو انجام بده.

نگاهی عمیق‌تر به ساختار و آموزش Qwen3-Coder

بر اساس اطلاعات منتشر شده، تیم Qwen برای ساخت این مدل، از چند جهت پیشرفت کرده:

  1. افزایش حجم داده‌های آموزشی (Scaling Tokens): این مدل روی ۷.۵ تریلیون توکن آموزش دیده که ۷۰ درصد این حجم رو کدهای برنامه‌نویسی تشکیل میدن. این حجم عظیم از کد باعث شده که مدل در زمینه کدنویسی خیلی قوی بشه، اما توانایی‌هاش در حوزه‌های عمومی و ریاضیات رو هم حفظ کنه.
  2. افزایش طول زمینه (Scaling Context): مدل به صورت پیش‌فرض از طول زمینه ۲۵۶ هزار توکن پشتیبانی میکنه. این یعنی میتونه حجم خیلی زیادی از متن یا کد رو به عنوان ورودی بگیره و تحلیل کنه. این قابلیت برای فهمیدن کل یک پروژه برنامه‌نویسی (repo-scale) یا تحلیل درخواست‌های تغییر کد (Pull Requests) خیلی مهمه. جالبه که با استفاده از روش‌هایی مثل YaRN میشه این طول زمینه رو تا ۱ میلیون توکن هم افزایش داد.
  3. استفاده از داده‌های مصنوعی (Scaling Synthetic Data): تیم سازنده از مدل نسل قبلی خودشون یعنی Qwen2.5-Coder برای تمیز کردن و بازنویسی داده‌های آموزشی بی‌کیفیت استفاده کردن. این کار باعث شده کیفیت کلی داده‌هایی که مدل جدید با اونها آموزش دیده به شکل قابل توجهی بهتر بشه.

مرحله پس از آموزش (Post-Training)

آموزش یک مدل فقط به مرحله اولیه ختم نمیشه. تیم Qwen دو روش جالب رو در مرحله پس از آموزش به کار برده:

  • یادگیری تقویتی برای کد (Scaling Code RL): اونها به این نتیجه رسیدن که وظایف کدنویسی، ذاتا برای یادگیری تقویتی (Reinforcement Learning) خیلی مناسب هستن. چون حل کردنشون سخته، ولی بررسی کردن درستی جواب (یعنی اجرای کد و دیدن نتیجه) آسونه. برای همین، اونها سیستم‌هایی ساختن که به صورت خودکار موارد آزمایشی (test cases) زیادی برای وظایف مختلف کدنویسی تولید میکنن و از این طریق، نمونه‌های آموزشی باکیفیتی برای یادگیری تقویتی میسازن. این کار نه تنها باعث شده درصد موفقیت اجرای کدهای تولید شده توسط مدل بالا بره، بلکه روی توانایی‌های دیگه مدل هم تاثیر مثبت گذاشته.
  • یادگیری تقویتی برای وظایف طولانی (Scaling Long-Horizon RL): در دنیای واقعی، وظایف مهندسی نرم‌افزار مثل مواردی که در بنچمارک SWE-Bench وجود داره، نیاز به تعامل چند مرحله‌ای با محیط دارن. مدل باید بتونه برنامه‌ریزی کنه، از ابزارها استفاده کنه، بازخورد بگیره و تصمیم‌گیری کنه. برای آموزش این قابلیت به مدل، تیم Qwen از یادگیری تقویتی عامل (Agent RL) استفاده کرده. چالش اصلی در این روش، فراهم کردن محیط‌های آزمایشی در مقیاس بزرگه. اونها با استفاده از زیرساخت‌های ابری علی‌بابا، سیستمی ساختن که میتونه ۲۰ هزار محیط مستقل رو به صورت موازی اجرا کنه. این زیرساخت عظیم، بازخوردهای لازم برای یادگیری تقویتی رو فراهم کرده و باعث شده Qwen3-Coder در بنچمارک SWE-Bench Verified بهترین نتیجه رو در بین مدل‌های متن‌باز به دست بیاره.

عملکرد در بنچمارک‌ها: اعداد چه میگویند؟

عملکرد یک مدل رو معمولا با بنچمارک‌ها یا آزمون‌های استاندارد میسنجن. این بنچمارک‌ها برای نسخه کامل مدل با دقت BF16 هستن. طبق گفته‌ها، نسخه‌های کوانتایز شده با کیفیت بالا مثل Q8_K_XL یا Q8_0 هم عملکردی تقریبا معادل با همین نسخه دارن.

در ادامه جدول‌هایی از عملکرد این مدل در مقایسه با رقبای بزرگ مثل Kimi-K2، DeepSeek-V3، Claude Sonnet 4 و GPT-4.1 آورده شده.

بنچمارک کدنویسی ایجنتیک (Agentic Coding)

این بنچمارک‌ها توانایی مدل در انجام وظایف پیچیده کدنویسی که نیاز به تعامل و برنامه‌ریزی دارن رو میسنجن.

بنچمارکQwen3‑CoderKimi‑K2DeepSeek‑V3-0324Claude 4 SonnetGPT‑۴.۱
Terminal‑Bench۳۷.۵۳۰.۰۲.۵۳۵.۵۲۵.۳
SWE‑bench Verified w/ OpenHands (۵۰۰ turns)۶۹.۶۷۰.۴
SWE‑bench Verified w/ OpenHands (۱۰۰ turns)۶۷.۰۶۵.۴۳۸.۸۶۸.۰۴۸.۶
SWE‑bench Verified w/ Private Scaffolding۶۵.۸۷۲.۷۶۳.۸
SWE‑bench Live۲۶.۳۲۲.۳۱۳.۰۲۷.۷
SWE‑bench Multilingual۵۴.۷۴۷.۳۱۳.۰۵۳.۳۳۱.۵
Multi‑SWE‑bench mini۲۵.۸۱۹.۸۷.۵۲۴.۸
Multi‑SWE‑bench flash۲۷.۰۲۰.۷۲۵.۰
Aider‑Polyglot۶۱.۸۶۰.۰۵۶.۹۵۶.۴۵۲.۴
Spider2۳۱.۱۲۵.۲۱۲.۸۳۱.۱۱۶.۵

همونطور که در جدول دیده میشه، Qwen3-Coder در خیلی از این آزمون‌ها تونسته نتایج خیلی خوبی کسب کنه و اغلب از رقبای متن‌بازش بهتر عمل کرده و در مواردی حتی به مدل‌های تجاری قدرتمند مثل Claude Sonnet نزدیک شده.

بنچمارک استفاده ایجنتیک از مرورگر (Agentic Browser Use)

این آزمون‌ها توانایی مدل در استفاده از مرورگر وب برای انجام وظایف رو ارزیابی میکنن.

بنچمارکQwen3‑CoderKimi‑K2DeepSeek‑V3 0324Claude Sonnet‑۴GPT‑۴.۱
WebArena۴۹.۹۴۷.۴۴۰.۰۵۱.۱۴۴.۳
Mind2Web۵۵.۸۴۲.۷۳۶.۰۴۷.۴۴۹.۶

در این بخش هم عملکرد مدل قابل توجهه و تونسته در آزمون Mind2Web از بقیه مدل‌های مقایسه شده بهتر عمل کنه.

بنچمارک استفاده ایجنتیک از ابزار (Agentic Tool-Use)

این بخش توانایی مدل در استفاده از ابزارها و API های مختلف برای حل مسائل رو میسنجه.

بنچمارکQwen3‑CoderKimi‑K2DeepSeek‑V3 0324Claude Sonnet‑۴GPT‑۴.۱
BFCL‑v3۶۸.۷۶۵.۲۵۶.۹۷۳.۳۶۲.۹
TAU‑Bench Retail۷۷.۵۷۰.۷۵۹.۱۸۰.۵
TAU‑Bench Airline۶۰.۰۵۳.۵۴۰.۰۶۰.۰

این نتایج نشون میدن که Qwen3-Coder یک مدل قدرتمند در زمینه کدنویسیه که به خصوص در وظایف ایجنتیک که نیاز به تعامل و استفاده از ابزار دارن، میدرخشه.

چالش اجرای محلی: بحث داغ کوانتیزیشن و سخت‌افزار

با مشخص شدن قدرت مدل، بحث اصلی به سمت چگونگی اجرای اون کشیده شد. همونطور که گفته شد، danielhanchen از اعضای فعال جامعه هکرنیوز، اعلام کرد که در حال آماده کردن نسخه‌های کوانتایز شده مدل در فرمت GGUF هست تا کاربران بتونن اون رو به صورت محلی (روی کامپیوتر شخصی) اجرا کنن. این موضوع یک گفتگوی فنی و جالب رو شروع کرد.

کوانتیزیشن هوشمند در برابر کوانتیزیشن ساده

آیا کوانتیزیشن‌های ۲ بیتی واقعا کار میکنن؟ تمام مدل‌هایی که من امتحان کردم کاملا خراب بودن، در حالی که نسخه‌های ۴ بیت به بالا کاملا سالم کار میکردن. آیا برای این مدل‌های خیلی بزرگ، استفاده از نسخه ۲ بیت بهتر از اینه که یک مدل کمی کوچک‌تر رو با کوانتیزیشن ۴ یا ۵ بیت اجرا کنیم؟

gnulinux

این سوال خیلی از کاربرها بود. کوانتیزیشن به زبان ساده یعنی کاهش دقت اعداد و ارقامی که وزن‌های مدل رو تشکیل میدن تا حجم کلی مدل کم بشه. اما این کاهش دقت میتونه به عملکرد مدل آسیب بزنه.

اوه، کوانت‌های داینامیک Unsloth اصلا ۲ بیتی خالص نیستن. اونها ترکیبی از ۲، ۳، ۴، ۵، ۶ و حتی گاهی ۸ بیت هستن. لایه‌های مهم مدل با دقت ۸ بیت یا ۶ بیت نگهداری میشن و لایه‌های کم‌اهمیت‌تر با دقت ۲ بیت کوانتایز میشن!

danielhanchen

این روش که بهش «کوانتیزیشن داینامیک» یا «کوانتیزیشن هوشمند» میگن، یک ایده کلیدی رو مطرح میکنه: به جای اینکه کل مدل رو به صورت یکنواخت و ساده به یک دقت پایین (مثلا ۲ بیت) بیاریم، باید هوشمندانه عمل کنیم.

من یک ویدیو در مورد کوانتیزیشن دیدم و دقیقا به این فکر میکردم که آیا میشه یک شبکه عصبی رو با استفاده از دقت بیشتر در جاهایی که مهمه و دقت کمتر در جاهایی که اهمیت نداره، فشرده کرد. و اینکه چطور میشه تصمیم گرفت کدوم بخش‌ها مهمن و کدوم نه. خیلی خوبه که میبینم این ایده الان وجود داره و حدس میزنم “فشرده‌سازی مدل” موضوع داغ بعدی خواهد بود.

blensor

بله شما دقیقا درست فکر میکنید! ما نباید یک مدل رو ساده‌لوحانه به ۲ بیت یا ۴ بیت کوانتایز کنیم، بلکه باید این کار رو هوشمندانه انجام بدیم!

danielhanchen

فرایند کوانتیزیشن داینامیک چقدر طول میکشه؟

اگه اشکالی نداره بگید، کوانتایز کردن داینامیک Qwen3-Coder چقدر زمان و منابع لازم داشت؟

PeterStuer

محاسبه imatrix روی یک مجموعه داده کالیبراسیون چند ساعت طول میکشه، چون ما از بیش از ۱ تا ۳ میلیون توکن داده با کیفیت بالا استفاده میکنیم. بعد باید تصمیم بگیریم که کدوم لایه‌ها رو با بیت‌های بالاتر کوانتایز کنیم یا نه، که اینم زمان بیشتری میبره. خود ساختن کوانتیزیشن هم چند ساعت طول میکشه. آپلود کردن فایل‌ها هم زمان‌بره! در کل شاید حداقل ۸ ساعت زمان لازم باشه.

danielhanchen

این جواب نشون میده که این کار یک فرایند ساده و سریع نیست و نیاز به محاسبات و تصمیم‌گیری‌های دقیقی داره.

چطور لایه‌های مهم رو تشخیص میدن؟

چطور تصمیم میگیرید کدوم لایه‌ها مهم هستن؟

CMCDragonkai

danielhanchen توضیح داد که این کار با بررسی خطاهای کوانتیزیشن وزن‌ها و فعال‌سازی‌ها (activation and weight quantization errors) انجام میشه و به چند مقاله و یک پست وبلاگ در این مورد ارجاع داد. این یعنی متخصص‌ها با تحلیل رفتار داخلی مدل، بخش‌های حساس‌تر رو پیدا میکنن.

ارتباط رفع باگ در مدل‌های دیگه با کوانتیزیشن

یک بحث جالب دیگه زمانی شروع شد که کاربری به اسم menaerus با کمی بدبینی به یکی از ادعاهای تیم Unsloth اشاره کرد. در جایی گفته شده بود: «دلیل اصلی برای استفاده از کوانت‌های Unsloth، درگیری عمیق ما در رفع باگ‌های حیاتی در مدل‌های بزرگه». menaerus پرسید که این رفع باگ‌ها چه ربطی به تکنیک کوانتیزیشن داینامیک داره.

danielhanchen در ابتدا پاسخ داد که اونها واقعا باگ‌هایی رو در مدل‌های Gemma، Phi و Llama رفع کردن. اما بعد از اینکه menaerus دوباره سوالش رو تکرار کرد، danielhanchen با عذرخواهی توضیح دقیق‌تری داد:

اوه معذرت میخوام گیج شدم. دلیلش اینه که وقتی ما کوانت‌های داینامیک خودمون رو محاسبه میکنیم، باید این کار رو روی مدل اصلاح شده انجام بدیم! برای مثال، در مدل Phi 3، توکن پایان جمله اشتباه بود. اگه ما از این مدل استفاده میکردیم، کوانت‌های ما به اشتباه کالیبره میشدن، چون موقع چت کردن با مدل از توکن صحیح استفاده میشه. مثال دیگه Llama 4 هست که من یک مشکل RoPE رو در اون حل کردم. اگه اول اون مشکل رو حل نمیکردیم، باز هم فرایند کالیبراسیون نادرست میشد.

danielhanchen

این توضیح نشون میده که کیفیت و درستی مدل پایه، برای یک کوانتیزیشن خوب و دقیق چقدر حیاتیه.

سخت‌افزار مورد نیاز برای اجرای محلی

بعد از بحث‌های فنی، نوبت به سوالات عملی‌تر رسید. خیلی‌ها میخواستن بدونن با سخت‌افزاری که دارن میتونن این مدل رو اجرا کنن یا نه.

دو کارت گرافیک RTX 3090 و ۲۵۶ گیگابایت رم

آیا llama.cpp میتونه از چند کارت گرافیک (دو تا RTX 3090، بدون پل NVLink) روی PCIe4 پشتیبانی کنه؟ بقیه سیستم من ۳۲ هسته پردازنده و ۲۵۶ گیگابایت رم داره.

PeterStuer

danielhanchen جواب کوتاهی داد و گفت بله، llama.cpp از هر نوع تنظیمات سخت‌افزاری پشتیبانی میکنه و فقط ممکنه کمی کندتر باشه.

اما کاربری به اسم jychang یک جواب فوق‌العاده دقیق و فنی داد که نکات مهمی رو روشن کرد:

سرعت اجرای این مدل به شدت بستگی به این داره که رم شما DDR4 باشه یا DDR5. شما بیشتر از یکی از کارت‌های ۳۰۹۰ خودتون استفاده خواهید کرد. اون یکی تقریبا بیکار میمونه. شما میتونید وزن‌های MoE رو روی کارت ۳۰۹۰ دوم قرار بدید، ولی این کار سرعت استنتاج (inference) رو خیلی زیاد نمیکنه، شاید کمتر از ۵ درصد. یعنی اگه یه کارت ۳۰۹۰ داشته باشید و سرعتتون ۱۰ توکن بر ثانیه باشه، با دو تا ۳۰۹۰ شاید بشه ۱۱ توکن بر ثانیه. این اعداد ساختگی هستن ولی ایده رو میرسونن. مدل Qwen3 Coder 480B در حالت کوانتایز شده IQ4_XS حدود ۲۶۱ گیگابایت و در حالت Q4_K_XL حدود ۲۷۶ گیگابایت حجم داره. پس شما تمام وزن‌های اکسپرت‌ها (expert weights) رو در رم سیستم قرار میدید. به همین دلیله که پهنای باند رم شما عامل محدود کننده سرعته. امیدوارم از یک ورک‌استیشن با دو پردازنده و ۱۲ استیک رم DDR5 برای هر پردازنده استفاده کنید که بهتون ۲۴ کانال رم DDR5 میده.

jychang

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

کارت گرافیک RTX 4090 و ۲۵۶ گیگابایت رم

کاربر دیگه‌ای (Jayakumark) پرسید که با یک کارت RTX 4090 و رم کافی، سرعت پردازش و تولید توکن چقدر خواهد بود. danielhanchen پاسخ داد که برای نسخه IQ1_M که ۱۶۰ گیگابایت حجم داره، اگه رم کافی (حدود ۱۳۶ گیگابایت خالی) وجود داشته باشه، میشه به سرعت ۳ تا ۵ توکن بر ثانیه رسید. اما اگه رم کافی نباشه، سرعت به کمتر از ۱ توکن بر ثانیه میرسه.

۱۶ گیگابایت VRAM و ۲۵۶ گیگابایت رم

یک سناریوی رایج‌تر هم مطرح شد. کاربری (jdright) پرسید آیا میشه با ۱۶ گیگابایت VRAM و ۲۵۶ گیگابایت رم، عملکرد قابل قبولی گرفت؟

danielhanchen جواب مثبت داد و گفت: «بله! نسخه‌های ۳ بیت و شاید ۴ بیت هم جا میشن! llama.cpp قابلیتی به اسم MoE offloading داره که باعث میشه کارت گرافیک شما فقط اکسپرت‌های فعال و لایه‌های غیر MoE رو نگه داره. در نتیجه شما فقط به ۱۶ تا ۲۴ گیگابایت VRAM نیاز دارید!»

این یعنی حتی با کارت‌های گرافیک معمولی‌تر هم میشه این مدل غول‌پیکر رو اجرا کرد، به شرطی که رم سیستم به اندازه کافی زیاد باشه.

بحث‌های جانبی ولی مهم

اشتباه تایپی در مستندات

کاربری به اسم mathrawka به یک اشتباه در مستندات اشاره کرد. در جایی نوشته شده بود: «طول زمینه پیشنهادی: ۶۵,۵۳۶ توکن». در حالی که در مستندات رسمی، این عدد به عنوان «طول خروجی کافی» ذکر شده بود. danielhanchen از این تذکر تشکر کرد و اضافه کرد که در حال ساختن نسخه‌های GGUF با طول زمینه ۱ میلیون توکن هم هست.

مقایسه با Qwen2.5-coder

Abishek_Muthian پرسید که آیا این مدل جدید برای کارهای ساده‌تر مثل تکمیل خودکار کد یا چت، مزیت قابل توجهی نسبت به Qwen2.5-coder داره؟ danielhanchen پاسخ داد که باید بهتر باشه، چون این مدل به طور خاص برای وظایف کدنویسی طراحی شده و میشه بخش‌های مربوط به فراخوانی ابزار (tool calling) رو در اون غیرفعال کرد.

آیا میتونیم خودمون کوانت داینامیک بسازیم؟

من در مورد کوانت‌های داینامیک شما خوندم، خیلی جالبه. آیا کتابخونه شما به من اجازه میده اینها رو بسازم یا فقط اجراشون کنم؟

andai

danielhanchen جواب داد که متاسفانه در حال حاضر این قابلیت عمومی نیست ولی شاید در آینده چیزهایی در این مورد منتشر کنن.

«کدنویسی ایجنتیک» در دنیای واقعی یک مهندس نرم‌افزار

شاید یکی از جالب‌ترین و پربازدیدترین بحث‌های این تاپیک، مربوط به تاثیر واقعی «کدنویسی ایجنتیک» در کار روزمره یک مهندس نرم‌افزار بود. این بحث با کامنت کاربری به اسم zkmon شروع شد. اون یک تقسیم‌بندی از زمان کاری خودش به عنوان یک مهندس نرم‌افزار ارائه داد و پرسید که کدنویسی ایجنتیک کدوم یک از این بخش‌ها رو میتونه سریع‌تر کنه:

  • ۵ درصد: ایجاد تغییرات در کد
  • ۱۰ درصد: اجرای پایپ‌لاین‌های بیلد (build pipelines)
  • ۲۰ درصد: یادگیری در مورد فرایندها و افراد جدید از طریق تماس‌های زوم، چت و ایمیل
  • ۱۵ درصد: ثبت تیکت برای مشکلاتی که خارج از کنترل من هستن
  • ۲۰ درصد: پر کردن فرم‌ها، شرکت در جلسات بازبینی و دنبال کردن تاییدها
  • ۲۰ درصد: ارتباط با دیگران برای وابستگی‌ها و پیگیری کردن
  • ۱۰ درصد: پیدا کردن و خوندن صفحات ویکی داخلی که اغلب گیج‌کننده و قدیمی هستن

واقعا؟ این یعنی فقط ۲ ساعت در هفته کدنویسی. درسته که کدنویسی بخش کوچکی از کار یک توسعه‌دهنده است و یک هوش مصنوعی که کدنویسی رو ۲۰ درصد سریع‌تر کنه، شاید تاثیر کمی در بهره‌وری کلی داشته باشه. ولی ۵ درصد زمان برای کدنویسی، نشانه یک اختلال سازمانی جدیه.

libraryofbabel

zkmon در جواب توضیح داد که این موضوع در سازمان‌هایی که به شدت در حال کاهش ریسک‌پذیری هستن، طبیعیه و لزوما نشانه اختلال نیست.

این بحث به ایده‌های جالبی در مورد آینده ابزارهای ایجنتیک منجر شد. کاربری به اسم pyman یک لیست طنزآمیز ولی قابل تامل از ایجنت‌های آینده ارائه داد:

  • Agentic DevOps: زیرساخت رو فراهم میکنه و مشکلات پلتفرم رو به محض ثبت تیکت حل میکنه.
  • Agentic Technical Writer: یک ایجنت مستندات رو مینویسه و ویکی رو به‌روز نگه میداره، و ۱۰۰ ایجنت دیگه اون رو بازبینی میکنن.
  • Agentic Manager: در جلسات شرکت میکنه، ایمیل‌ها رو تحلیل میکنه و گزارش روزانه میده تا توسعه‌دهنده‌ها از مزاحمت‌ها دور بمونن.
  • Agentic Director: الگوها رو در داده‌ها پیدا میکنه و کارها رو سریع‌تر تایید میکنه.
  • Agentic CEO: در تصمیم‌گیری‌ها کمک میکنه و سخنرانی‌های انگیزشی انجام میده.
  • Agentic Pet: یک حیوان خانگی مجازی که باید روزی چهار بار از آی‌پی محل کار بهش غذا بدی. اگه یادت بره، میمیره و به منابع انسانی خبر داده میشه. (این ایده رئیسم بود).

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

کوچک در برابر بزرگ: نبرد بی‌پایان مدل‌ها

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

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

pxc

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

segmondy

این بحث ادامه پیدا کرد و کاربرهای زیادی دیدگاه‌های خودشون رو مطرح کردن. mlyle در پاسخ به segmondy گفت که دیدگاه pxc کاملا منطقیه: «من میتونم مدل‌های نسبتا بزرگ رو روی مک‌بوک ۱۲۸ گیگابایتی خودم اجرا کنم ولی نه مدل‌های خیلی بزرگ رو. پس من از ترکیبی از مدل‌های محلی و ابری بسته به شرایط (هزینه، حساسیت اطلاعات، راحتی و…) استفاده میکنم. بله، مدل‌های بزرگ‌تر بهترن، ولی اغلب اوقات مدل‌های کوچک‌تر به اندازه کافی خوب هستن

بله خیلی‌ها دارن مدل‌های بزرگ رو اجرا میکنن ولی اونها وضع مالی خوبی دارن. من ۱۰ تا ۲۰ هزار دلار برای خرج کردن روی این چیزها ندارم. که این حداقل هزینه برای اجرای یک مدل ۴۸۰ میلیارد پارامتری با کوانتیزیشن زیاده. و خیلی هم کنده. اگه یک سیستم خوب بخوای خیلی بیشتر هزینه داره. پس چاره‌ای جز مدل‌های کوچک نیست. درسته که مدل‌های بزرگ بهترن ولی چون پیشرفت‌ها خیلی سریع اتفاق میفتن، این یعنی من در هر زمان فقط ۶ ماه تا یک سال از مدل‌های بزرگ عقبم. آیا این ارزش ۲۰ هزار دلار رو داره؟ برای من نه.

wkat4242

این دیدگاه‌ها نشون میدن که یک راه حل واحد برای همه وجود نداره و انتخاب بین مدل‌های کوچک و بزرگ به نیازها، بودجه و کاربردهای هر فرد بستگی داره.

آشوب ابزارها و فایل‌های راهنما

یک مشکل عملی که با زیاد شدن مدل‌ها و ابزارهای کدنویسی ایجنتیک به وجود اومده، تکثیر فایل‌های راهنما در پروژه‌هاست. کاربری به اسم nnx به این موضوع اشاره کرد:

این مدل پیشنهاد میکنه که یک فایل QWEN.md در پروژه برای دستورالعمل‌های ایجنت اضافه بشه. پس تکلیف AGENTS.md چی میشه؟ در یک پروژه تیمی، داشتن فایل‌های مارک‌داون تکراری برای هر ایجنتی که وجود داره، مسخره شده.

nnx

این کامنت با استقبال زیادی روبرو شد. drewbitt لیستی از فایل‌هایی که در یک پروژه دیده بود رو نوشت:

  • CLAUDE.md
  • MISTRAL.md
  • GEMINI.md
  • QWEN.md
  • GROK.md
  • .cursorrules
  • .windsurfrules
  • .copilot-instructions

این هرج و مرج نشون میده که هنوز یک استاندارد واحد برای ارتباط با این ایجنت‌ها وجود نداره. کاربرها راه‌حل‌های موقتی خودشون رو پیشنهاد دادن. مثلا singhrac گفت که از symlink استفاده میکنه تا همه فایل‌ها به یک فایل AGENTS.md اصلی اشاره کنن و فایل‌های مخصوص هر مدل رو در gitignore قرار میده. sunaookami هم روش مشابهی رو به کار میبرد.

این مشکل، هرچند کوچک، اما یکی از چالش‌های عملی استفاده از این تکنولوژی‌های جدیده.

چطور با این سرعت تغییرات هماهنگ باشیم؟

چطور میشه با این همه تغییر هماهنگ بود؟ کاش میتونستیم ۲-۳ سال به آینده بریم تا ببینیم آیا بالاخره یک برنده مشخص شده یا نه. حس میکنم اون موقع یک “ابزار اصلی” وجود خواهد داشت که هیچکس برای استفاده از چیز دیگه‌ای فکر هم نمیکنه.

indigodaddy

جواب‌هایی که به این کامنت داده شد هم جالب بود. segmondy با اشتیاق نوشت:

آدم با هماهنگ بودن، هماهنگ میمونه. مردم شایعات شبکه‌های اجتماعی، اخبار یا سریال‌ها رو دنبال میکنن. شما هم فقط باید روی این موضوع بمونید. آخر هفته Kimi K2 رو راه انداختم، دو روز گذشته با Ernie4.5-300B کار کردم، امروز صبح دانلود آخرین نسخه Qwen3-235b رو تموم کردم و امشب شروع به دانلود این مدل ۴۸۰ میلیارد پارامتری میکنم. شاید ۲-۳ روز با اینترنت داغون من طول بکشه. وسواسه؟

segmondy

اما SchemaLoad دیدگاه آرام‌تری داشت:

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

SchemaLoad

این دو دیدگاه متضاد، دو استراتژی مختلف برای مواجهه با این سیل اطلاعات رو نشون میدن: یا باید با وسواس همه چیز رو دنبال کرد، یا باید صبر کرد تا گرد و خاک‌ها بخوابه و ابزارهای برنده و کاربردی مشخص بشن.

ابزارهای جانبی و اکوسیستم Qwen3-Coder

Qwen Code: یک ابزار خط فرمان ایجنتیک

همزمان با مدل، تیم Qwen یک ابزار خط فرمان (CLI) به اسم Qwen Code رو هم به صورت متن‌باز منتشر کرد. نکته جالب اینه که در صفحه معرفی این ابزار، به صراحت ذکر شده که این ابزار یک «فورک» یا انشعاب از Gemini Code (که منظورشون gemini-cli هست) به حساب میاد. این یعنی تیم Qwen به جای ساختن یک ابزار از صفر، از یک ابزار متن‌باز موجود استفاده کرده و اون رو برای مدل خودشون بهینه‌سازی کردن. این کار در دنیای متن‌باز یک عمل رایج و پسندیده است.

امیدوارم این کلون‌های متن‌باز بالاخره یک روزی به هم نزدیک بشن و یکپارچه بشن.

flakiness

برای استفاده از Qwen Code، باید Node.js نسخه ۲۰ به بالا نصب باشه و بعد با دستور npm i -g @qwen-code/qwen-code نصب میشه. این ابزار از OpenAI SDK برای فراخوانی مدل‌ها استفاده میکنه و باید متغیرهای محیطی مثل OPENAI_API_KEY و OPENAI_BASE_URL رو تنظیم کرد.

استفاده از طریق Claude Code و Cline

جالب اینجاست که تیم Qwen راهنماهایی برای استفاده از مدل جدیدشون با ابزارهای رقیب مثل Claude Code و Cline هم ارائه دادن. این نشون میده که اونها به دنبال سازگاری و حضور در اکوسیستم بزرگ‌تر توسعه‌دهنده‌ها هستن.

برای استفاده با Claude Code، میشه از یک پروکسی API یا یک پکیج npm به اسم claude-code-router استفاده کرد. برای Cline هم کافیه در تنظیمات، یک ارائه‌دهنده OpenAI Compatible جدید تعریف کرد و آدرس بیس‌URL و کلید API مربوط به سرویس DashScope علی‌بابا رو وارد کرد.

این سازگاری‌ها باعث میشه کاربرانی که به ابزارهای فعلی خودشون عادت کردن، بتونن راحت‌تر مدل جدید رو امتحان کنن.

قیمت‌گذاری در سرویس‌های مختلف

با اینکه مدل متن‌بازه، اما اجرای محلیش برای همه ممکن نیست. برای همین خیلی‌ها از سرویس‌های ابری که این مدل رو ارائه میدن استفاده میکنن. OpenRouter یکی از این سرویس‌هاست که مدل‌های مختلف رو از ارائه‌دهنده‌های متفاوت جمع‌آوری میکنه. قیمت‌گذاری Qwen3-Coder در این پلتفرم جالب و کمی پیچیده‌ست.

کسی قیمت‌گذاری رو میفهمه؟

pzo

در ادامه جدول قیمت‌گذاری این مدل از ارائه‌دهنده‌های مختلف در OpenRouter آورده شده:

ارائه‌دهندهنوعموقعیتقیمت ورودی (برای ۱ میلیون توکن)قیمت خروجی (برای ۱ میلیون توכן)
Alibaba Plusچین۱ تا ۶ دلار۵ تا ۶۰ دلار
Alibaba OpenSourceچین۱.۵۰ تا ۴.۵۰ دلار۷.۵۰ تا ۲۲.۵۰ دلار
Hyperbolicfp8آمریکا۲ دلار۲ دلار
Parasailfp8آمریکا۲ دلار۳.۵۰ دلار

نکته عجیب در مورد قیمت‌گذاری Alibaba Plus، متغیر بودن اونه. سایمون ویلیسون در وبلاگش به این نکته اشاره کرده که این اولین مدلیه که دیده برای ۴ سطح مختلف از طول ورودی، ۴ قیمت متفاوت تعیین کرده:

طول ورودیقیمت ورودی (میلیون توکن)قیمت خروجی (میلیون توکن)
۰ تا ۳۲ هزار۱ دلار۵ دلار
۳۲ تا ۱۲۸ هزار۱.۸ دلار۹ دلار
۱۲۸ تا ۲۵۶ هزار۳ دلار۱۵ دلار
۲۵۶ هزار تا ۱ میلیون۶ دلار۶۰ دلار

این نوع قیمت‌گذاری نشون میده که پردازش ورودی‌های طولانی‌تر برای ارائه‌دهنده سرویس هزینه‌برتره و این هزینه به کاربر منتقل میشه. pzo اشاره کرد که با این قیمت‌ها، برای ورودی‌های بالای ۲۵۶ هزار توکن، مدل‌هایی مثل Gemini 2.5 Pro و o3 ارزون‌تر تمام میشن.

تجربه‌های واقعی و نظرات نهایی کاربران

در نهایت، مهم‌ترین بخش، تجربه کاربرانیه که واقعا از مدل استفاده کردن.

تمام روز داشتم ازش استفاده میکردم، فوق‌العاده‌ست. مجبور شدم محدودیت فراخوانی ابزار در cline رو تا ۱۰۰ بالا ببرم و بدون هیچ مشکلی کل اپلیکیشن رو پیش برد، اپ موبایل رو ساخت، خطاهای لینتر رو برطرف کرد… حتی با قالب استاندارد vllm میزبانیش میکردم نه قالب مخصوص فراخوانی ابزار، و دستورات فراخوانی ابزار رو کاملا خوب فهمید.

nisten

این تجربه نشون میده که مدل در عمل هم توانایی‌های بالایی داره، به خصوص در ترکیب با ابزارهای ایجنتیک مثل Cline.

از طرف دیگه، کاربری به اسم zelphirkalt تجربه متفاوتی داشت و از عملکرد مدل در حل یک مسئله خاص الگوریتمی (پارتیشن کردن یک لیست پیوندی در زمان خطی) راضی نبود. اون گفت که مدل‌های مختلفی مثل Mistral، ChatGPT، Qwen Coder 2 و Claude رو امتحان کرده و همشون در این مسئله شکست خوردن. اونها متوجه نمیشدن که استفاده از توابعی مثل reverse یا تبدیل لیست به آرایه، خودشون عملیات خطی هستن و راه حل رو غیربهینه میکنن. به نظر این کاربر، این مدل‌ها فقط در حوزه‌هایی که داده‌های آموزشی خیلی زیادی براشون وجود داره (mainstream) خوب عمل میکنن و در مسائل خاص‌تر که نیاز به درک عمیق‌تر مفاهیم دارن، ضعیف هستن.

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

در نهایت، سایمون ویلیسون هم تست همیشگی خودش رو روی این مدل انجام داد: «یک SVG از یک پلیکان در حال دوچرخه‌سواری تولید کن». نتیجه یک تصویر کارتونی بود که به گفته خودش، نتیجه مدل قبلی یعنی qwen3-235b-a22b-07-25 رو کمی بیشتر دوست داشته. این تست‌های خلاقانه نشون میدن که ارزیابی یک مدل فقط به بنچمارک‌های فنی محدود نمیشه.

لیستی از زبان‌های برنامه‌نویسی پشتیبانی شده

یکی از ویژگی‌های اعلام شده برای این مدل، پشتیبانی از ۳۵۸ زبان برنامه‌نویسی و نشانه‌گذاریه. این لیست بلندبالا نشون‌دهنده گستردگی دانش این مدل در حوزه‌های مختلف کدنویسیه. در ادامه بخشی از این زبان‌ها آورده شده است:

ABAP, ActionScript, Ada, Agda, Alloy, ApacheConf, AppleScript, Arc, Arduino, AsciiDoc, AspectJ, Assembly, Augeas, AutoHotkey, AutoIt, Awk, Batchfile, Befunge, Bison, BitBake, BlitzBasic, BlitzMax, Bluespec, Boo, Brainfuck, Brightscript, Bro, C, C#, C++, C2hs Haskell, CLIPS, CMake, COBOL, CSS, CSV, Cap’n Proto, CartoCSS, Ceylon, Chapel, ChucK, Cirru, Clarion, Clean, Click, Clojure, CoffeeScript, ColdFusion, Common Lisp, Component Pascal, Coq, Creole, Crystal, Csound, Cucumber, Cuda, Cycript, Cython, D, Dart, Diff, Dockerfile, Dogescript, Dylan, E, ECL, Eagle, Eiffel, Elixir, Elm, Emacs Lisp, EmberScript, Erlang, F#, FORTRAN, Factor, Fancy, Fantom, Forth, G-code, GAMS, GAP, GAS, GDScript, GLSL, Go, Golo, Gosu, Grace, Gradle, GraphQL, Groovy, HCL, HLSL, HTML, Haml, Handlebars, Harbour, Haskell, Haxe, Hy, IDL, INI, Idris, Io, Ioke, Isabelle, J, JSON, JSX, Jade, Java, JavaScript, Julia, Jupyter Notebook, KRL, KiCad, Kit, Kotlin, LLVM, LSL, LabVIEW, Lasso, Latte, Lean, Less, Lex, LilyPond, Liquid, Literate Haskell, LiveScript, Logos, Logtalk, LookML, Lua, M, Makefile, Mako, Maple, Markdown, Mathematica, Matlab, Max, MediaWiki, Metal, MiniD, Mirah, Modelica, Monkey, MoonScript, NSIS, NetLogo, Nginx, Nimrod, Ninja, Nit, Nix, Nu, NumPy, OCaml, Objective-C++, Objective-J, Octave, Opa, Opal, OpenCL, OpenSCAD, Org, Ox, Oxygene, Oz, PAWN, PHP, POV-Ray SDL, Pan, Papyrus, Parrot, Pascal, Perl, Perl6, Pickle, PigLatin, Pike, Pod, Pony, PostScript, PowerShell, Processing, Prolog, Protocol Buffer, Pure Data, PureBasic, PureScript, Python, QML, QMake, R, Racket, Rebol, Red, Redcode, Ren’Py, RobotFramework, Rouge, Ruby, Rust, SAS, SCSS, SMT, SPARQL, SQF, SQL, SVG, Sage, SaltStack, Sass, Scala, Scaml, Scheme, Scilab, Self, Shell, Shen, Slim, Smali, Smalltalk, Smarty, Solidity, Squirrel, Stan, Standard ML, Stata, Stylus, SuperCollider, Swift, SystemVerilog, TOML, Tcl, TeX, Tea, Text, Textile, Thrift, Turing, Turtle, Twig, TypeScript, Unity3D Asset, Uno, UnrealScript, UrWeb, VCL, VHDL, Vala, Verilog, VimL, Visual Basic, Volt, Vue, WebAssembly, WebIDL, X10, XC, XML, XQuery, XS, XSLT, Xojo, Xtend, YAML, YANG, Yacc, Zephir, Zig, Zimpl, fish, ooc, wisp, xBase و بسیاری دیگر.

این گستردگی به این معناست که توسعه‌دهندگان در حوزه‌های مختلف، از توسعه وب و موبایل گرفته تا تحلیل داده و سیستم‌های نهفته، میتونن از این مدل به عنوان یک دستیار استفاده کنن.

منابع

دیدگاه‌ها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *