GeekAlerts

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

مدل DeepSeek-V3.1-Terminus معرفی شد، چه چیزی تغییر کرده است؟

مدل DeepSeek-V3.1-Terminus معرفی شد، چه چیزی تغییر کرده است؟

شرکت دیپ‌سیک اعلام کرده که آپدیت جدید، یعنی DeepSeek-V3.1-Terminus، بر اساس نقاط قوت نسخه قبلی (V3.1) ساخته شده و هدف اصلیش برطرف کردن مشکلات و بازخوردهایی بوده که کاربرا دادن. این یعنی مدل همچنان قابلیت‌های اصلی خودش رو حفظ کرده اما یه سری ایراداتش برطرف شده.

به طور مشخص، دو تا بهبود اصلی ذکر شده:

  • 🌐 یکپارچگی زبان: یکی از مشکلات گزارش شده، قاطی شدن متن‌های چینی و انگلیسی یا ظاهر شدن کاراکترهای عجیب و غریب در خروجی بوده. در نسخه ترمینوس تلاش شده این موارد کمتر بشن.
  • 🤖 قابلیت‌های ایجنت (Agent): عملکرد دو تا از ایجنت‌های مهم این مدل، یعنی «ایجنت کد» (Code Agent) و «ایجنت جستجو» (Search Agent) بهینه‌تر شده.

دیپ‌سیک میگه که در کل، خروجی‌های نسخه ترمینوس در مقایسه با نسخه قبلی، «پایدارتر و قابل اعتمادتر» هستن. این مدل جدید همین الان روی پلتفرم‌های مختلف مثل اپلیکیشن، وب و API دیپ‌سیک در دسترسه و وزن‌های متن‌باز اون هم روی سایت هاگینگ فیس (Hugging Face) قرار گرفته تا هر کسی بتونه دانلود و ازش استفاده کنه.

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

برای اینکه ببینیم این ادعاها چقدر به واقعیت نزدیکن، بهترین راه نگاه کردن به جدول بنچمارک‌هاییه که خود دیپ‌سیک منتشر کرده. این جدول عملکرد دو نسخه V3.1 و V3.1-Terminus رو کنار هم نشون میده. بیاید این جدول رو با هم بررسی کنیم:

بنچمارکDeepSeek-V3.1DeepSeek-V3.1-Terminus
استدلال بدون استفاده از ابزار
MMLU-Pro۸۴.۸۸۵.۰
GPQA-Diamond۸۰.۱۸۰.۷
Humanity’s Last Exam۱۵.۹۲۱.۷
LiveCodeBench۷۴.۸۷۴.۹
Codeforces۲۰۹۱۲۰۴۶
Aider-Polyglot۷۶.۳۷۶.۱
استفاده ابزاری توسط ایجنت
BrowseComp۳۰.۰۳۸.۵
BrowseComp-zh۴۹.۲۴۵.۰
SimpleQA۹۳.۴۹۶.۸
SWE Verified۶۶.۰۶۸.۴
SWE-bench Multilingual۵۴.۵۵۷.۸
Terminal-bench۳۱.۳۳۶.۷

حالا بیاید این عددها رو بخش به بخش و خیلی خودمونی تحلیل کنیم:

بخش اول: استدلال بدون ابزار

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

  • توی بنچمارک MMLU-Pro که یه آزمون جامع برای سنجش دانش و استدلاله، نسخه ترمینوس یه پیشرفت خیلی کوچیک داشته و نمره‌اش از ۸۴.۸ به ۸۵.۰ رسیده.
  • در GPQA-Diamond که سوالات خیلی سختی در سطح متخصصین داره، باز هم یه بهبود جزئی رو میبینیم و نمره از ۸۰.۱ به ۸۰.۷ افزایش پیدا کرده.
  • جذاب‌ترین پیشرفت در این بخش مربوط به Humanity’s Last Exam هست. این آزمون شامل سوالات خیلی خلاقانه و سختیه که مدل‌های هوش مصنوعی رو به چالش میکشه. نمره ترمینوس اینجا از ۱۵.۹ پریده به ۲۱.۷ که یه جهش خیلی بزرگه و نشون میده مدل توی این زمینه قوی‌تر شده.
  • در LiveCodeBench که توانایی کدنویسی مدل رو میسنجه، تغییر خیلی ناچیز بوده و نمره از ۷۴.۸ به ۷۴.۹ رسیده.
  • اما دو تا نکته منفی هم هست. توی بنچمارک Codeforces که یه پلتفرم رقابتی برنامه‌نویسیه، ریتینگ مدل از ۲۰۹۱ به ۲۰۴۶ کاهش پیدا کرده. این یعنی عملکردش توی این آزمون خاص ضعیف‌تر شده.
  • همچنین در Aider-Polyglot که اون هم مربوط به کدنویسیه، یه افت خیلی کوچیک از ۷۶.۳ به ۷۶.۱ دیده میشه.

بخش دوم: استفاده از ابزار توسط ایجنت

این بخش توانایی مدل رو در استفاده از ابزارهایی مثل مرورگر وب، اجرای دستورات در ترمینال و غیره برای انجام وظایف پیچیده ارزیابی میکنه.

  • در BrowseComp که توانایی مدل در وب‌گردی برای پیدا کردن جواب رو میسنجه، یه پیشرفت عالی اتفاق افتاده و نمره از ۳۰.۰ به ۳۸.۵ رسیده.
  • اما جالبه که در نسخه چینی همین آزمون یعنی BrowseComp-zh، عملکرد مدل ضعیف‌تر شده و نمره از ۴۹.۲ به ۴۵.۰ کاهش پیدا کرده.
  • در SimpleQA که شامل سوالات ساده‌ایه که با جستجو جواب داده میشن، مدل بهتر عمل کرده و نمره‌اش از ۹۳.۴ به ۹۶.۸ رسیده.
  • بنچمارک SWE Verified که وظایف مهندسی نرم‌افزار واقعی رو شبیه‌سازی میکنه، شاهد بهبود عملکرد بوده و نمره از ۶۶.۰ به ۶۸.۴ افزایش پیدا کرده.
  • در نسخه چندزبانه همین آزمون یعنی SWE-bench Multilingual هم پیشرفت دیده میشه و نمره از ۵۴.۵ به ۵۷.۸ رسیده.
  • و در آخر، در Terminal-bench که توانایی مدل در استفاده از خط فرمان رو میسنجه، نمره از ۳۱.۳ به ۳۶.۷ رسیده که این هم یه بهبود خوبه.

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

جزئیات فنی و نحوه استفاده از مدل جدید

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

  • ساختار مدل: ساختار کلی مدل DeepSeek-V3.1-Terminus هیچ فرقی با DeepSeek-V3 نکرده. این یعنی اگه کسی قبلا مدل V3 رو روی سیستمش راه‌اندازی کرده، برای اجرای این مدل جدید هم باید به همون مستندات و راهنمای V3 مراجعه کنه.
  • قالب چت (Chat Template): برای قالب چت در حالت‌های غیر از ایجنت جستجو، کاربرا باید به ریپازیتوری مدل V3.1 مراجعه کنن. اما یه نکته مهم اینه که قالب و مجموعه ابزارهای ایجنت جستجو در نسخه ترمینوس آپدیت شده. جزئیات این تغییرات توی فایلی به اسم assets/search_tool_trajectory.html توضیح داده شده.
  • دموی کد اجرایی: برای اینکه کاربرا راحت‌تر بتونن با مدل کار کنن و جزئیات معماریش رو بفهمن، یه کد دموی جدید هم توی پوشه inference قرار داده شده.
  • یک مشکل فنی شناخته شده: یه نکته فنی مهم وجود داره که خود دیپ‌سیک بهش اشاره کرده. در حال حاضر، پارامترهای self_attn.o_proj در چک‌پوینت فعلی مدل، با فرمت داده‌ای UE8M0 FP8 سازگار نیستن. این یه توضیح خیلی فنیه، اما به زبان ساده یعنی یه بخش کوچیکی از مدل از نظر فرمت با بقیه هماهنگ نیست. دیپ‌سیک گفته که این یه «مشکل شناخته شده» است و در نسخه‌های بعدی مدل اصلاح میشه.
  • مجوز استفاده: هم خود ریپازیتوری و هم وزن‌های مدل تحت مجوز MIT منتشر شدن که یه مجوز خیلی آزاد و راحته و به همه اجازه میده از مدل استفاده کنن.

برای کسایی که سوال یا مشکلی دارن، دیپ‌سیک دو راه ارتباطی رو مشخص کرده: یا از طریق بخش Issues در گیت‌هاب پیام بدن یا به آدرس ایمیل service@deepseek.com ایمیل بزنن.

نگاهی به گذشته: مدل DeepSeek-V3.1 چه بود؟

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

DeepSeek-V3.1 یک مدل هیبریدیه، یعنی از دو حالت مختلف پشتیبانی میکنه: «حالت تفکر» (thinking mode) و «حالت بدون تفکر» (non-thinking mode). کاربر میتونه با تغییر دادن قالب چت، بین این دو حالت سوییچ کنه.

این نسخه نسبت به مدل‌های قبل از خودش چند تا بهبود کلیدی داشت:

  • فراخوانی هوشمندتر ابزار: با بهینه‌سازی‌هایی که بعد از آموزش اولیه انجام شده بود، عملکرد مدل در استفاده از ابزارها و انجام وظایف ایجنتی به طور قابل توجهی بهتر شده بود.
  • راندمان بالاتر در حالت تفکر: نسخه DeepSeek-V3.1-Think کیفیت جوابی مشابه مدل قدیمی‌تر و قوی‌تر یعنی DeepSeek-R1-0528 تولید میکرد، اما با سرعت بیشتری جواب میداد.

فرآیند آموزش V3.1

این مدل بر پایه DeepSeek-V3.1-Base ساخته شده بود. فرآیند آموزشش هم به این صورت بود که با استفاده از یه رویکرد دو مرحله‌ای برای افزایش زمینه طولانی (long context)، مدل رو توسعه دادن. دیتاست آموزش رو با جمع‌آوری اسناد طولانی بیشتر، بزرگتر کردن. مرحله افزایش زمینه به ۳۲ هزار توکن، ده برابر شد و به ۶۳۰ میلیارد توکن رسید. مرحله افزایش زمینه به ۱۲۸ هزار توکن هم ۳.۳ برابر شد و به ۲۰۹ میلیارد توکن رسید. این عددهای بزرگ نشون میده که چقدر روی توانایی مدل برای درک متن‌های طولانی کار شده.

یه نکته فنی دیگه هم اینه که این مدل با استفاده از فرمت داده‌ای UE8M0 FP8 هم روی وزن‌ها و هم روی فعال‌سازی‌ها (activations) آموزش دیده تا با فرمت‌های میکرواسکالینگ سازگار باشه.

قالب‌های چت در V3.1

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

  • حالت بدون تفکر:
    • پیشوند (Prefix): <|begin of sentence|>{system prompt}<|User|>{query}<|Assistant|></think>
    • نکته جالب اینجا توکن اضافی </think> هست که در مدل V3 وجود نداشت.
  • حالت تفکر:
    • پیشوند: <|begin of sentence|>{system prompt}<|User|>{query}<|Assistant|><think>
    • این پیشوند شبیه مدل DeepSeek-R1 بود.
  • چت چند نوبتی (Multi-turn): قالب چت چند نوبتی برای هر دو حالت یکسان بود. یعنی در مکالمات، توکن <think> از نوبت قبلی حذف میشد اما </think> در هر نوبت از مکالمه باقی میموند.
  • فراخوانی ابزار (Toolcall): این قابلیت در حالت بدون تفکر پشتیبانی میشد و فرمت مشخصی داشت که شامل توضیح ابزار، اسم ابزار و پارامترهاش به صورت JSON بود.
  • ایجنت جستجو: برای سوالات پیچیده‌ای که نیاز به اطلاعات به‌روز یا خارجی داشتن، مدل میتونست در حالت تفکر از یه ابزار جستجو که کاربر فراهم کرده بود، استفاده کنه. این فرآیند به صورت یه مکالمه چند نوبتی برای فراخوانی ابزار انجام میشد.

نگاهی به بنچمارک‌های V3.1

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

دسته‌بندیبنچمارک (متریک)DeepSeek V3.1 (Non-Thinking)DeepSeek V3 (0324)DeepSeek V3.1 (Thinking)DeepSeek R1 (0528)
عمومی
MMLU-Redux (EM)۹۱.۸۹۰.۵۹۳.۷۹۳.۴
MMLU-Pro (EM)۸۳.۷۸۱.۲۸۴.۸۸۵.۰
GPQA-Diamond (Pass@1)۷۴.۹۶۸.۴۸۰.۱۸۱.۰
ایجنت جستجو
BrowseComp۳۰.۰۸.۹
BrowseComp_zh۴۹.۲۳۵.۷
SimpleQA۹۳.۴۹۲.۳
کد
LiveCodeBench (2408-2505) (Pass@1)۵۶.۴۴۳.۰۷۴.۸۷۳.۳
Codeforces-Div1 (Rating)۲۰۹۱۱۹۳۰
Aider-Polyglot (Acc.)۶۸.۴۵۵.۱۷۶.۳۷۱.۶
ایجنت کد
SWE Verified (Agent mode)۶۶.۰۴۵.۴۴۴.۶
SWE-bench Multilingual (Agent mode)۵۴.۵۲۹.۳۳۰.۵
Terminal-bench (Terminus 1 framework)۳۱.۳۱۳.۳۵.۷
ریاضی
AIME 2024 (Pass@1)۶۶.۳۵۹.۴۹۳.۱۹۱.۴
AIME 2025 (Pass@1)۴۹.۸۵۱.۳۸۸.۴۸۷.۵
HMMT 2025 (Pass@1)۳۳.۵۲۹.۲۸۴.۲۷۹.۴

نکته مهم در مورد این جدول‌ها اینه که روش ارزیابی هر بنچمارک میتونه متفاوت باشه. مثلا نتایج ایجنت جستجو با استفاده از فریم‌ورک داخلی خود دیپ‌سیک و یه API جستجوی تجاری به دست اومده.

نحوه استفاده از V3.1 در کد

برای استفاده از این مدل در کد پایتون، میشد از کتابخانه transformers استفاده کرد. دیپ‌سیک یه نمونه کد هم ارائه کرده بود که نشون میداد چطور میشه با استفاده از متد tokenizer.apply_chat_template قالب چت رو برای حالت تفکر (thinking=True) و بدون تفکر (thinking=False) اعمال کرد.

import transformers
tokenizer = transformers.AutoTokenizer.from_pretrained("deepseek-ai/DeepSeek-V3.1")
messages = [
    {"role": "system", "content": "You are a helpful assistant"},
    {"role": "user", "content": "Who are you?"},
    {"role": "assistant", "content": "<think>Hmm</think>I am DeepSeek"},
    {"role": "user", "content": "1+1=?"}
]

# برای حالت تفکر
tokenizer.apply_chat_template(messages, tokenize=False, thinking=True, add_generation_prompt=True)
# خروجی: '<|begin of sentence|>You are a helpful assistant<|User|>Who are you?<|Assistant|></think>I am DeepSeek<|end of sentence|><|User|>1+1=?<|Assistant|><think>'

# برای حالت بدون تفکر
tokenizer.apply_chat_template(messages, tokenize=False, thinking=False, add_generation_prompt=True)
# خروجی: '<|begin of sentence|>You are a helpful assistant<|User|>Who are you?<|Assistant|></think>I am DeepSeek<|end of sentence|><|User|>1+1=?<|Assistant|></think>'

این کد به خوبی نشون میده که تفاوت اصلی در آخرین توکن تولید شده برای مدل هست: <think> برای حالت تفکر و </think> برای حالت بدون تفکر.

منابع

  • [۲] DeepSeek upgraded to new version DeepSeek-V3.1-Terminus
  • [۴] deepseek-ai/DeepSeek-V3.1 · Hugging Face
  • [۱] DeepSeek-v3.1-Terminus | Hacker News
  • [۳] deepseek-ai/DeepSeek-V3.1-Terminus · Hugging Face
  • [۵] DeepSeek-V3.1-Terminus | DeepSeek API Docs

دیدگاه‌ها

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

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