كيفية نشر deepseek-v3.1 محليًا عبر ollama: دليل Eastest

CometAPI
AnnaDec 2, 2025
كيفية نشر deepseek-v3.1 محليًا عبر ollama: دليل Eastest

DeepSeek-V3.1 هو نموذج لغة MoE هجين "مفكر/غير مفكر" (671 بايت إجمالاً، 37 بايت مُفعّلة لكل رمز) يُمكن تشغيله محليًا باستخدام المُزوّد/التكميم والأدوات المناسبة. سأشرح أدناه ماهية DeepSeek-V3.1، ومتطلبات الأجهزة/البرمجيات، ودروس التشغيل المحلي خطوة بخطوة (أمثلة على Ollama + llama.cpp)، وكيفية... نشر واستخدام وضع التفكير (لل <think>/</think> قالب الدردشة) مع أمثلة التعليمات البرمجية التي يمكنك نسخها/لصقها.


ما هو DeepSeek-V3.1؟

DeepSeek-V3.1 هو الإصدار 3.1 من عائلة MoE (مزيج الخبراء) من DeepSeek. صُمم كنموذج استدلال هجين يدعم نموذجين/وضعين للمحادثة - تفكير و غير مفكر — من نفس نقطة التفتيش بتغيير قالب الدردشة. تتبع بنية النموذج تصميم DeepSeek-V3 MoE (671 مليار معلمة إجمالية؛ 37 مليار معلمة تقريبًا مُفعّلة لكل رمز للاستدلال) وتضيف تحسينات ما بعد التدريب لاستخدام الأدوات، ومهارات الوكيل، والتعامل مع السياقات الطويلة.

أبرز الميزات السريعة

  • مهجنة التفكير / عدم التفكير الأوضاع (يتم تبديلها عن طريق تقسيم قالب الدردشة).
  • هندسة MoE: عدد كبير من المعلمات الإجمالية ولكن عدد محدود من المعلمات النشطة لكل رمز (تمكن الكفاءة).
  • تعزيزات ما بعد التدريب لاستدعاءات الأدوات وسير عمل الوكيل (تنسيق استدعاء الأدوات وقوالب الوكيل موثقة في أصول النموذج).

ما الذي أحتاجه لتشغيل DeepSeek-V3.1 محليًا؟

تشغيل بالإضافة إلى DeepSeek-V3.1 (نقاط التفتيش الخام) ذو أهمية كبيرة - التدريب/تخزين نقاط التفتيش وتنظيم الاستدلالات ليسا بالأمر السهل. ولكن هناك مسارات عملية:

أجهزة التبخير

  • الاستدلال الموزع الكامل (البحث / المجموعة): وحدات معالجة رسومية متعددة عالية الذاكرة (فئة A100/H800) أو مجموعة وحدات معالجة رسومية مع خدمة متوازية للنماذج (نموذجية لنقاط تفتيش 600B+). استخدمها فقط إذا كنت تُشغّل مجموعات بحث إنتاجية.
  • خيارات محلية عملية: استخدم ال المعلمة المفعلة منظور (مفعّل ≈37B) أو بنية GGUF/GGUF مُكمّمة/ديناميكية 1 بت. تُخفّض عمليات التكميم المُشتركة (ديناميكية 1 بت/GGUF) متطلبات القرص وذاكرة الوصول العشوائي (RAM) بشكل ملحوظ - على سبيل المثال، تُشير منشورات المُشتركة إلى ضغط نقطة تفتيش سعة 720 جيجابايت إلى حوالي 170 جيجابايت من GGUF لمتغير مُكمّم. هذا يجعل استنتاج وحدة معالجة الرسومات المحلية لخادم واحد مُمكنًا لأجهزة الكمبيوتر المكتبية/الخوادم ذات الموارد الجيدة.

خلاصة القول: توقع سير عمل نموذجي كبير (عشرات إلى مئات قليلة من غيغابايت من القرص للقطع الأثرية الكمية)؛ بالنسبة لـ GPU VRAM، استخدم المتغيرات الكمية واستهدف ≥24–48 غيغابايت من VRAM للحصول على إنتاجية معقولة؛ بخلاف ذلك، استخدم CPU+swap مع مقايضات الأداء.

البرمجيات والأدوات

Python 3.10+ (لأدوات المحول/المميز والبرامج النصية المخصصة).

transformers (للوظائف المميزة والمساعدة) — تعرض بطاقة النموذج أمثلة باستخدام transformers.AutoTokenizer.

وقت تشغيل استدلال محلي واحد أو أكثر:

  • أولاما (سهل: ollama pull / ollama run التكامل؛ تتطلب بعض إصدارات DeepSeek المستندة إلى Ollama إصدارات ما قبل الإصدار، تحقق من ملاحظة النموذج/ollama). أصبح Ollama برنامج تشغيل محليًا قياسيًا لنماذج المجتمع.
  • llama.cpp / ggml مكدسات أو llama-server لملفات GGUF المكممة — رائعة لتنفيذ GGUF المباشر.
  • استدلال توليد النصوص / تريتون / مجموعات FlashAttention لاستنتاج وحدة معالجة الرسوميات ذات الأداء الأعلى (الإعدادات المتقدمة).

القرص: مساحة خالية كبيرة لملفات النموذج (عشرات → مئات الجيجابايت اعتمادًا على التكميم).

قطع أثرية نموذجية (أي ملف يجب الحصول عليه)

  • متغيرات سيفينستور الرسمية / BF16 / FP8 / GGUF: يستضيف Hugging Face آثارًا نموذجية للإصدار 3.1 وتكميمات متعددة. إذا كنت بحاجة إلى ملف GGUF/تكميم لـ llama.cpp، ابحث عن إصدار كمية المجتمع (أو نص تحويل من safetensors → GGUF) - تسرد بطاقة النموذج المتغيرات الكمية.

كيف أقوم بإعداد النموذج للاستدلال المحلي؟

فيما يلي خطوات التحضير الموصى بها مرتبة من البسيطة إلى المتقدمة.

الخطوة 1 - اختيار وقت التشغيل (التوصية)

  • اختبار مبتدئ / سريع: Ollama - إعداد بسيط: تنزيل، تشغيل النموذج، استدعاء واجهة برمجة التطبيقات. ملاحظة: بعض إصدارات DeepSeek-V3.1 تُشير إلى Ollama v0.11.7 كضرورة لميزات محددة.
  • التحكم المتقدم / منخفض المستوى: llama.cpp + كمية GGUF (إذا توفرت كمية GGUF). يمنحك هذا تحكمًا مباشرًا في الاستدلال والتكامل مع llama-server.

الخطوة 2 - تنزيل النموذج

إذا كنت تستخدم Ollama:

# install ollama (see https://ollama.com/docs)

# Pull the model (this downloads the model to your machine)
ollama pull deepseek-ai/DeepSeek-V3.1
# or a specific tag: ollama pull deepseek-ai/DeepSeek-V3.1:quant-q4_0

(أولاما run سيتم السحب تلقائيًا إذا لم يكن موجودًا؛ pull (يسمح لك بالتحكم في التوقيت.)

إذا كنت تستخدم Hugging Face + llama.cpp:

# Example: download via huggingface-cli or hf_transfer

pip install huggingface_hub
hf_hub_download(repo_id="deepseek-ai/DeepSeek-V3.1", filename="DeepSeek-V3.1.gguf")
# or use a community quant file (gguf) referenced on the Hugging Face model page

تسرد قائمة Hugging Face القطع الأثرية والنماذج والقوالب والكميات الموجودة على بطاقة النموذج.

الخطوة 3 - التحويل / التكميم (اختياري)

إذا كنت تجد فقط موترًا آمنًا أو قطعًا أثرية لـ BF16 ولكنك تحتاج إلى GGUF لـ llama.cpp، استخدم نصوص التحويل في llama.cpp (أو أدوات المجتمع) للتحويل ← التكميم. توجد أدوات مجتمعية للتكميم الديناميكي أحادي البت، تحافظ على الدقة مع تقليل الحجم؛ راجع منشورات المجتمع التي تُبلغ عن انخفاض الحجم إلى حوالي ١٧٠ جيجابايت.


كيف أشغل DeepSeek-V3.1 محليًا؟ (دروس عملية للتشغيل)

سأعرض أولاما (سهل، موصى به) و اللاما (GGUF) أمثلة بالإضافة إلى مثال قصير في Python باستخدام مساعدي رمز بطاقة النموذج.

أ - الجري مع أولاما (بداية سريعة)

  1. قم بتثبيت Ollama (اتبع التعليمات الرسمية).
  2. سحب وتشغيل النموذج:
# pull model to disk (optional; run will pull automatically)

ollama pull deepseek-ai/DeepSeek-V3.1

# start an interactive session (runs model and exposes local API)

ollama run deepseek-ai/DeepSeek-V3.1
  1. إرسال طلب HTTP إلى خادم Ollama المحلي:
# curl usage example (local Ollama server usually listens on port 11434)

curl -sS -X POST 'http://localhost:11434/api/generate' \
  -H 'Content-Type: application/json' \
  -d '{
    "model":"deepseek-ai/DeepSeek-V3.1",
    "prompt":"Explain the difference between thinking and non-thinking mode in DeepSeek.",
    "max_tokens":256
  }'

تم تصميم أنماط CLI وAPI الخاصة بـ Ollama لتكون بسيطة: ollama run سيتم السحب عند الحاجة وتشغيل خادم النماذج. راجع وثائق Ollama وصفحات النماذج للحصول على تلميحات حول الذاكرة وأسماء/علامات النماذج الدقيقة.

ب - تشغيل GGUF كمّي عبر llama.cpp

  1. البناء llama.cpp مع CUDA (اختياري) أو وحدة المعالجة المركزية:
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
# for CUDA:

make clean && make LLAMA_CUBLAS=1
# or CPU only:

make
  1. ضع ملف النموذج GGUF في المسار وقم بتشغيل:
./main -m /path/to/DeepSeek-V3.1.q4_K_M.gguf \
  -p "Explain how to enable thinking mode." \
  --temp 0.2 --n_predict 512
  1. للاستخدام الخادم، llama-server (مشروع مجتمعي) يمكنه عرض نقطة نهاية HTTP:
llama-server -m /path/to/DeepSeek-V3.1.q4_K_M.gguf
# then POST to the server like:

curl -X POST "http://localhost:8080/api/v1/generate" -d '{"prompt":"Hello","max_tokens":200}'

استخدم كميات GGUF المجتمعية (q4/q8/ديناميكية 1 بت) لتناسب ميزانيات وحدة معالجة الرسومات/وحدة المعالجة المركزية؛ llama.cpp يوفر المستودع أدوات التحويل والإرشادات.

C — مثال Python باستخدام tokenizer + قالب الدردشة

توفر بطاقة نموذج Hugging Face tokenizer.apply_chat_template مساعد ويُظهر كيفية ترميز محادثة باستخدام thinking=Trueفيما يلي مثال بسيط لـ Python مأخوذ من بطاقة النموذج:

from transformers import AutoTokenizer

tokenizer = 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=?"}
]

# apply thinking chat template

s = tokenizer.apply_chat_template(messages, tokenize=False, thinking=True, add_generation_prompt=True)
print(s)  # the template includes the special <think> token placement

يمكنك بعد ذلك إدخال المطالبة المميزة في وقت تشغيل الاستدلال الخاص بك (Ollama/llama.cpp/TGI) وفقًا للمكدس الخاص بك.


كيف يعمل وضع التفكير وكيف أقوم بنشره محليًا؟

استخدامات DeepSeek-V3.1 قوالب الدردشة التي تحتوي على رمز تفكير خاص (على سبيل المثال، <think> و </think>). ال قالب يحدد ما إذا كان النموذج في وضع التفكير أو عدم التفكير:

  • غير مفكر أماكن القالب </think> في بادئة المساعد، التي تأمر النموذج بإنتاج استجابات مباشرة (يتم دعم تنسيق استدعاء الأداة في عدم التفكير).
  • تفكير أماكن القالب <think> في بادئة المساعد التي تجعل النموذج يُخرج إشارات وسيطة داخلية بنمط سلسلة الأفكار (يُدرَّب النموذج على استخدام تسلسل الرموز هذا للتفكير داخليًا وإنتاج إجابات متعددة الخطوات عالية الجودة). تُوثِّق بطاقة نموذج الوجه المُعانق هذه الرموز الدقيقة و tokenizer.apply_chat_template(..., thinking=True) API.

التبديل البرمجي (أمثلة)

أ - باستخدام المُجزئ (بايثون):

# thinking=True or thinking=False changes how the prompt is formatted

prompt_thinking = tokenizer.apply_chat_template(messages, thinking=True, add_generation_prompt=True)
prompt_non_thinking = tokenizer.apply_chat_template(messages, thinking=False, add_generation_prompt=True)

المميز prompt_thinking إلى وقت تشغيل الاستدلال الخاص بك للحصول على سلوك التفكير.

ب - مع موجه خام (llama.cpp / دليل):

إدراج <think> قبل أن يتحول المساعد عندما تطلب منه:

<|begin_of_sentence|>You are a helpful assistant<|User|>How to optimize this code?<|Assistant|><think>

(يوجد إطار الرمز الدقيق هذا في بطاقة النموذج - يجب عليك احترام التباعد والعلامات الخاصة إذا كنت تستخدم القالب الخام.)

ج — مع Ollama (تبديل واجهة المستخدم):
يذكر العرض التوضيحي الرسمي لـ DeepSeek على الويب وملاحظات الإصدار زر "DeepThink" لتبديل الأوضاع في واجهة المستخدم المُستضافة. محليًا، يجب على Ollama أو تطبيقك تكرار هذا السلوك بتبديل قالب الدردشة (أي تغيير الموجه الذي تُرسله إلى وقت التشغيل بين النموذجين المُميزين). إذا شغّلت DeepSeek عبر Ollama، يمكنك تنفيذ ذلك في تطبيقك من خلال الحفاظ على قالبي الموجه (التفكير وعدم التفكير) وتبديل أيهما تمرر عبر واجهة برمجة تطبيقات Ollama.


كيف أقوم بنشر Thinking Mode كوكيل (استدعاءات الأدوات، وكلاء الكود)؟

مستندات DeepSeek-V3.1 استدعاء الأداة و وكيل القوالب في أصول النموذج. يتوقع النموذج عرض الأدوات بتنسيق JSON/تعليمات محدد، ويدعم تسلسل استدعاءات أدوات متعددة في دورة واحدة، مع اتباع رموز التغليف الدقيقة الموضحة في بطاقة النموذج.

مثال: غلاف استدعاء أداة بسيط (زائف)

يحدد النموذج كتلة وصف الأداة وقواعد صارمة tool_calls_begin / tool_call_begin تنسيق. مثال بسيط (مفاهيمي):

## Tools

You have access to the following tools:

### web_search

Description: Query the web
Parameters: {"q": "string"}

<|begin_of_sentence|>{system prompt}

## Tools

...tool descriptions...

<|User|>Find the population of Tokyo<|Assistant|></think>
<|tool_calls_begin|><|tool_call_begin|>web_search<|tool_sep|>{"q":"population of Tokyo 2025"}<|tool_call_end|><|tool_calls_end|>

يجب بعد ذلك إرجاع مخرجات الأداة إلى النموذج في الدورة التالية وفقًا للتنسيق المحدد للنموذج (انظر assets/search_tool_trajectory.html يتطلب تنفيذ الوكلاء تنسيقًا برمجيًا: استدعاء الأداة → التقاط النتيجة → حقن النتيجة مرة أخرى في سياق الدردشة تمامًا كما يصف القالب → استدعاء النموذج مرة أخرى.


نصائح عملية، واستكشاف الأخطاء وإصلاحها، وملاحظات السلامة (ما الذي يجب أن أراقبه؟)

  • قوالب الرمز صارمة. استخدم النموذج tokenizer.apply_chat_template أو إعادة إنتاج النسخة الدقيقة <think>/</think> الرموز كما هو موضح. المسافات غير الصحيحة أو العلامات المفقودة ستغير سلوك النموذج.
  • يجب أن يكون تنسيق الأداة JSON صالحًا. سيقوم النموذج بتحليل وسيطات الأداة كـ JSON — سيؤدي JSON غير الصالح إلى إيقاف استدعاءات الأداة.
  • مقايضات التكميم. تُقلّص التكميمات الديناميكية/العدوانية أحادية البت مساحة التخزين وذاكرة الوصول العشوائي (RAM)، ولكنها قد تُغيّر دقة الأرقام بشكل طفيف. اختبرها على أحمال عملك. توجد تكميمات مجتمعية تُخفّض استخدام القرص بنسبة 1% (مثال: تقرير: 80 جيجابايت → ~720 جيجابايت)، ولكن تأكد دائمًا من صحتها باستخدام إرشاداتك.
  • التوافق مع Ollama. تشير بعض إصدارات DeepSeek إلى أن Ollama v0.11.7 مطلوب لميزات ما قبل الإصدار - تحقق من صفحة طراز Ollama وقم بالتحديث وفقًا لذلك.

مثال من البداية إلى النهاية: تشغيل DeepSeek-V3.1 محليًا باستخدام وضع التفكير (جولة قصيرة)

  1. قم بتثبيت Ollama وسحب النموذج:
# install ollama per docs, then:

ollama pull deepseek-ai/DeepSeek-V3.1
ollama run deepseek-ai/DeepSeek-V3.1 &
  1. استخدم أداة تقسيم Python لإنشاء موجه تفكير:
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("deepseek-ai/DeepSeek-V3.1")

msgs = [
  {"role":"system","content":"You are a helpful assistant."},
  {"role":"user","content":"Plan a multi-step strategy to prototype a mobile app in 2 weeks."}
]
prompt = tokenizer.apply_chat_template(msgs, thinking=True, add_generation_prompt=True)

import requests
resp = requests.post("http://localhost:11434/api/generate", json={
    "model": "deepseek-ai/DeepSeek-V3.1",
    "prompt": prompt,
    "max_tokens": 400
})
print(resp.json())
  1. إذا أعاد النموذج استدعاء أداة بتنسيق استدعاء الأداة، فقم بتحليل JSON وتشغيل الأداة، ثم قم بحقن النتائج في الرسالة التالية وفقًا لقوالب بطاقة النموذج.

كيف ينبغي لك أن تختار مسار النشر الخاص بك؟

  • إذا كنت تريد أسرع طريق للتجربة: تستخدم أولاما وأمثلة على بطاقة نموذج "الوجه المعانق". يُخفي Ollama العديد من تفاصيل البنية التحتية ويوفر واجهة برمجة تطبيقات HTTP محلية.
  • إذا كنت بحاجة إلى تكلفة أقل / قابلية نقل أكبر: استخدم المجتمع GGUF كمي قطعة أثرية وتشغيلها llama.cpp or llama-server. تساعد عملية التكميم على توفير مساحة القرص والذاكرة، ولكنها تختبر الدقة فيما يتعلق بحجم العمل لديك.
  • إذا كنت تقوم ببناء وكلاء أو أدوات: اتبع بطاقة النموذج استدعاء الأداة و وكيل قوالب دقيقة؛ تنظيم مخرجات الأدوات مرة أخرى في سياق النموذج.

كيف تبدأ

CometAPI هي منصة واجهات برمجة تطبيقات موحدة تجمع أكثر من 500 نموذج ذكاء اصطناعي من أبرز المزودين، مثل سلسلة GPT من OpenAI، وGemini من Google، وClaude من Anthropic، وMidjourney، وSuno، وغيرهم، في واجهة واحدة سهلة الاستخدام للمطورين. من خلال توفير مصادقة متسقة، وتنسيق الطلبات، ومعالجة الردود، تُبسط CometAPI بشكل كبير دمج قدرات الذكاء الاصطناعي في تطبيقاتك. سواء كنت تُنشئ روبوتات دردشة، أو مُولّدات صور، أو مُلحّنين موسيقيين، أو خطوط أنابيب تحليلات قائمة على البيانات، تُمكّنك CometAPI من التكرار بشكل أسرع، والتحكم في التكاليف، والاعتماد على مورد واحد فقط، كل ذلك مع الاستفادة من أحدث التطورات في منظومة الذكاء الاصطناعي.

يمكن للمطورين الوصول ديب سيك V3.1 من خلال CometAPI، أحدث إصدارات النماذج المدرجة هي اعتبارًا من تاريخ نشر المقال. للبدء، استكشف إمكانيات النموذج في ملعب واستشر دليل واجهة برمجة التطبيقات للحصول على تعليمات مفصلة. قبل الدخول، يُرجى التأكد من تسجيل الدخول إلى CometAPI والحصول على مفتاح API. كوميت ايه بي اي عرض سعر أقل بكثير من السعر الرسمي لمساعدتك على التكامل.


الخاتمة

يقدم DeepSeek-V3.1 فلسفة استدلال هجينة عملية (نقطة تفتيش واحدة + سلوك تفكير نموذجي) تُسهّل تجربة التفكير بأسلوب سلسلة الأفكار واستخدام أدوات الوكيل عند مراعاة قوالب الدردشة ومتطلبات الأدوات. استخدم بطاقة نموذج Hugging Face وملاحظات إصدار DeepSeek كمحطة أولى، واختر وقت تشغيل محليًا (Ollama للبساطة). llama.cpp من أجل التحكم، واختبار الإصدارات الكمية للنشر المحلي العملي.

SHARE THIS BLOG

500+ نموذج في واجهة برمجة تطبيقات واحدة

خصم يصل إلى 20%