تحميل الموديل | نتائج التقييم | العمارة النموذجية | منصة API | الترخيص | الاقتباس
رابط الورق ⁉️
اليوم، نقدم لكم DeepSeek-V2، وهو نموذج لغة قوي لمزيج من الخبراء (MoE) يتميز بالتدريب الاقتصادي والاستدلال الفعال. وهو يتألف من إجمالي 236B من المعلمات، منها 21B يتم تنشيطها لكل رمز مميز. بالمقارنة مع DeepSeek 67B، يحقق DeepSeek-V2 أداءً أقوى، وفي الوقت نفسه يوفر 42.5% من تكاليف التدريب، ويقلل من ذاكرة التخزين المؤقت KV بنسبة 93.3%، ويعزز الحد الأقصى من إنتاجية التوليد إلى 5.76 مرة.
لقد قمنا بتدريب DeepSeek-V2 مسبقًا على مجموعة متنوعة وعالية الجودة تضم 8.1 تريليون رمز مميز. وقد أعقب هذا التدريب المسبق الشامل عملية الضبط الدقيق تحت الإشراف (SFT) والتعلم المعزز (RL) لإطلاق العنان لقدرات النموذج بشكل كامل. تؤكد نتائج التقييم فعالية نهجنا حيث يحقق DeepSeek-V2 أداءً رائعًا في كل من المعايير القياسية وتقييم الجيل المفتوح.
2024.05.16: أصدرنا DeepSeek-V2-Lite.
2024.05.06: أصدرنا DeepSeek-V2.
نموذج | #إجمالي المعلمات | #البارامترات المفعلة | طول السياق | تحميل |
---|---|---|---|---|
ديب سيك-V2-لايت | 16 ب | 2.4 ب | 32 ألف | ؟ HuggingFace |
DeepSeek-V2-Lite-Chat (SFT) | 16 ب | 2.4 ب | 32 ألف | ؟ HuggingFace |
ديب سيك-V2 | 236 ب | 21 ب | 128 ألف | ؟ HuggingFace |
DeepSeek-V2-Chat (RL) | 236 ب | 21 ب | 128 ألف | ؟ HuggingFace |
نظرًا للقيود التي تفرضها HuggingFace، تواجه التعليمات البرمجية مفتوحة المصدر حاليًا أداءً أبطأ من قاعدة التعليمات البرمجية الداخلية لدينا عند تشغيلها على وحدات معالجة الرسومات مع Huggingface. لتسهيل التنفيذ الفعال لنموذجنا، نقدم حل vllm مخصص يعمل على تحسين الأداء لتشغيل نموذجنا بفعالية.
المعيار | اِختِصاص | LLaMA3 70B | ميكسترال 8x22B | DeepSeek-V1 (كثيف-67B) | ديب سيك-V2 (MoE-236B) |
---|---|---|---|---|---|
MMLU | إنجليزي | 78.9 | 77.6 | 71.3 | 78.5 |
بي بي اتش | إنجليزي | 81.0 | 78.9 | 68.7 | 78.9 |
ج-التقييم | الصينية | 67.5 | 58.6 | 66.1 | 81.7 |
CMMLU | الصينية | 69.3 | 60.0 | 70.8 | 84.0 |
HumanEval | شفرة | 48.2 | 53.1 | 45.1 | 48.8 |
مبب | شفرة | 68.6 | 64.2 | 57.4 | 66.6 |
GSM8K | الرياضيات | 83.0 | 80.3 | 63.4 | 79.2 |
الرياضيات | الرياضيات | 42.2 | 42.5 | 18.7 | 43.6 |
المعيار | اِختِصاص | DeepSeek 7B (كثيف) | ديب سيك مو 16 ب | ديب سيك-V2-لايت (MoE-16B) |
---|---|---|---|---|
بنيان | - | MHA + كثيفة | MHA + وزارة التعليم | MLA+وزارة التربية والتعليم |
MMLU | إنجليزي | 48.2 | 45.0 | 58.3 |
بي بي اتش | إنجليزي | 39.5 | 38.9 | 44.1 |
ج-التقييم | الصينية | 45.0 | 40.6 | 60.3 |
CMMLU | الصينية | 47.2 | 42.5 | 64.3 |
HumanEval | شفرة | 26.2 | 26.8 | 29.9 |
مبب | شفرة | 39.0 | 39.2 | 43.2 |
GSM8K | الرياضيات | 17.4 | 18.8 | 41.1 |
الرياضيات | الرياضيات | 3.3 | 4.3 | 17.1 |
لمزيد من تفاصيل التقييم، مثل إعدادات اللقطات القليلة والمطالبات، يرجى مراجعة ورقتنا.
نتائج التقييم في اختبارات Needle In A Haystack
(NIAH). يعمل DeepSeek-V2 بشكل جيد عبر جميع أطوال نوافذ السياق حتى 128 كيلو بايت .
المعيار | اِختِصاص | QWen1.5 72B الدردشة | ميكسترال 8x22B | تعليمات LLaMA3 70B | دردشة DeepSeek-V1 (SFT) | دردشة DeepSeek-V2 (SFT) | دردشة DeepSeek-V2 (RL) |
---|---|---|---|---|---|---|---|
MMLU | إنجليزي | 76.2 | 77.8 | 80.3 | 71.1 | 78.4 | 77.8 |
بي بي اتش | إنجليزي | 65.9 | 78.4 | 80.1 | 71.7 | 81.3 | 79.7 |
ج-التقييم | الصينية | 82.2 | 60.0 | 67.9 | 65.2 | 80.9 | 78.0 |
CMMLU | الصينية | 82.9 | 61.0 | 70.7 | 67.8 | 82.4 | 81.6 |
HumanEval | شفرة | 68.9 | 75.0 | 76.2 | 73.8 | 76.8 | 81.1 |
مبب | شفرة | 52.2 | 64.4 | 69.8 | 61.4 | 70.4 | 72.0 |
لايف كود بينش (0901-0401) | شفرة | 18.8 | 25.0 | 30.5 | 18.3 | 28.7 | 32.5 |
GSM8K | الرياضيات | 81.9 | 87.9 | 93.2 | 84.1 | 90.8 | 92.2 |
الرياضيات | الرياضيات | 40.6 | 49.8 | 48.5 | 32.6 | 52.7 | 53.9 |
المعيار | اِختِصاص | دردشة DeepSeek 7B (SFT) | دردشة DeepSeekMoE 16B (SFT) | DeepSeek-V2-Lite 16B Chat (SFT) |
---|---|---|---|---|
MMLU | إنجليزي | 49.7 | 47.2 | 55.7 |
بي بي اتش | إنجليزي | 43.1 | 42.2 | 48.1 |
ج-التقييم | الصينية | 44.7 | 40.0 | 60.1 |
CMMLU | الصينية | 51.2 | 49.3 | 62.5 |
HumanEval | شفرة | 45.1 | 45.7 | 57.3 |
مبب | شفرة | 39.0 | 46.2 | 45.8 |
GSM8K | الرياضيات | 62.6 | 62.2 | 72.0 |
الرياضيات | الرياضيات | 14.7 | 15.2 | 27.9 |
نقوم بتقييم نموذجنا على AlpacaEval 2.0 وMTBench، مما يوضح الأداء التنافسي لـ DeepSeek-V2-Chat-RL في توليد المحادثة باللغة الإنجليزية.
أليجنبنش (https://arxiv.org/abs/2311.18743)
جديد | 开源/闭源 | 总分 | 中文推理 | شكرا جزيلا |
---|---|---|---|---|
gpt-4-1106-معاينة | 闭源 | 8.01 | 7.73 | 8.29 |
دردشة DeepSeek-V2 (RL) | 开源 | 7.91 | 7.45 | 8.36 |
erniebot-4.0-202404 (文心一言) | 闭源 | 7.89 | 7.61 | 8.17 |
دردشة DeepSeek-V2 (SFT) | 开源 | 7.74 | 7.30 | 8.17 |
جي بي تي-4-0613 | 闭源 | 7.53 | 7.47 | 7.59 |
erniebot-4.0-202312 (文心一言) | 闭源 | 7.36 | 6.84 | 7.88 |
Moonshot-v1-32k-202404 (月之暗面) | 闭源 | 7.22 | 6.42 | 8.02 |
Qwen1.5-72B-دردشة (通义千问) | 开源 | 7.19 | 6.45 | 7.93 |
DeepSeek-67B-دردشة | 开源 | 6.43 | 5.75 | 7.11 |
Yi-34B-Chat (零一万物) | 开源 | 6.12 | 4.86 | 7.38 |
جي بي تي-3.5-توربو-0613 | 闭源 | 6.08 | 5.35 | 6.71 |
DeepSeek-V2-Lite 16B الدردشة | 开源 | 6.01 | 4.71 | 7.32 |
نقوم بتقييم نموذجنا على LiveCodeBench (0901-0401)، وهو معيار مصمم لمواجهة تحديات البرمجة المباشرة. كما هو موضح، يُظهر DeepSeek-V2 كفاءة كبيرة في LiveCodeBench، حيث حقق درجة Pass@1 متفوقة على العديد من النماذج المتطورة الأخرى. يسلط هذا الأداء الضوء على فعالية النموذج في معالجة مهام البرمجة المباشرة.
يعتمد DeepSeek-V2 بنيات مبتكرة لضمان التدريب الاقتصادي والاستدلال الفعال:
من أجل الاهتمام، قمنا بتصميم MLA (الانتباه الكامن متعدد الرؤوس)، والذي يستخدم ضغط اتحاد القيمة الرئيسية ذات المرتبة المنخفضة للتخلص من عنق الزجاجة في ذاكرة التخزين المؤقت لقيمة المفتاح في وقت الاستدلال، وبالتالي دعم الاستدلال الفعال.
بالنسبة لشبكات التغذية الأمامية (FFNs)، فإننا نعتمد بنية DeepSeekMoE، وهي بنية MoE عالية الأداء تتيح تدريب نماذج أقوى بتكاليف أقل.
يمكنك الدردشة مع DeepSeek-V2 على الموقع الرسمي لـ DeepSeek: chat.deepseek.com
نحن نوفر أيضًا واجهة برمجة التطبيقات المتوافقة مع OpenAI على منصة DeepSeek: Platform.deepseek.com. قم بالتسجيل للحصول على أكثر من ملايين الرموز المجانية. ويمكنك أيضًا الدفع أولاً بأول بسعر لا يهزم.
لاستخدام DeepSeek-V2 بتنسيق BF16 للاستدلال، يلزم وجود وحدات معالجة رسومات بسعة 80 جيجابايت*8.
يمكنك استخدام محولات Huggingface مباشرة للاستدلال على النموذج.
استيراد الشعلة من المحولات import AutoTokenizer, AutoModelForCausalLM, GenerationConfigmodel_name = "deepseek-ai/DeepSeek-V2"tokenizer = AutoTokenizer.from_pretrained(model_name, Trust_remote_code=True)# يجب تعيين `max_memory` بناءً على أجهزتكmax_memory = {i: "75GB" لـ أنا في النطاق (8)}# لا يمكن ضبط `device_map` على `auto`model = AutoModelForCausalLM.from_pretrained(model_name, Trust_remote_code=True, devices_map="sequential", torch_dtype=torch.bfloat16, max_memory=max_memory, attn_implementation="eager")model.generation_config = GenerationConfig.from_pretrained(model_name)model. Generation_config.pad_token_id = model. Generation_config.eos_token_idtext = "يمكن وصف وظيفة الانتباه على أنها تعيين استعلام ومجموعة من أزواج القيمة الرئيسية إلى الإخراج، حيث يتم الاستعلام والمفاتيح والقيم والقيم الإخراج جميع المتجهات الإخراج هو"inputs = tokenizer(text, return_tensors="pt")outputs = model.generate(**inputs.to(model.device), max_new_tokens=100)result = tokenizer.decode(outputs[0], Skip_special_tokens=True)print(result)
استيراد الشعلة من المحولات import AutoTokenizer, AutoModelForCausalLM, GenerationConfigmodel_name = "deepseek-ai/DeepSeek-V2-Chat"tokenizer = AutoTokenizer.from_pretrained(model_name, Trust_remote_code=True)# يجب تعيين `max_memory` بناءً على أجهزتكmax_memory = {i: "75 جيجابايت "لأني في range(8)}# لا يمكن ضبط `device_map` على `auto`model = AutoModelForCausalLM.from_pretrained(model_name, Trust_remote_code=True, devices_map="sequential", torch_dtype=torch.bfloat16, max_memory=max_memory, attn_implementation="eager") model.generation_config = GenerationConfig.from_pretrained(model_name)model. Generation_config.pad_token_id = model.generation_config.eos_token_idmessages = [ {"role": "user"، "content": "اكتب جزءًا من كود الفرز السريع في C++"} ]input_tensor = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt")outputs = model.generate(input_tensor.to(model.device), max_new_tokens=100)result = tokenizer.decode(outputs[0][input_tensor .الشكل[1]:]، Skip_special_tokens=صحيح)طباعة(نتيجة)
يمكن العثور على قالب الدردشة الكامل داخل tokenizer_config.json
الموجود في مستودع نماذج Huggingface.
مثال على قالب الدردشة هو كما يلي:
<|بداية الجملة|>المستخدم: {user_message_1} المساعد: {assistant_message_1<|نهاية الجملة|>المستخدم: {user_message_2} مساعد:
يمكنك أيضًا إضافة رسالة نظام اختيارية:
<|بداية الجملة|>{system_message} المستخدم: {user_message_1} المساعد: {assistant_message_1<|نهاية الجملة|>المستخدم: {user_message_2} مساعد:
تدعم SGLang حاليًا تحسينات MLA، وFP8 (W8A8)، وFP8 KV Cache، وTorch Compile، مما يوفر أفضل زمن وصول وإنتاجية بين الأطر مفتوحة المصدر. فيما يلي بعض الأمثلة على الأوامر لتشغيل خادم متوافق مع OpenAI API:
# BF16، توازي الموتر = 8python3 -m sglang.launch_server --model Deepseek-ai/DeepSeek-V2-Chat --tp 8 --trust-remote-code# BF16, w/ torch.compile (قد يستغرق التجميع عدة دقائق )python3 -m sglang.launch_server --model Deepseek-ai/DeepSeek-V2-Lite-Chat --trust-remote-code --enable-torch-compile# FP8، توازي الموتر = 8، FP8 KV Cachepython3 -m sglang.launch_server --model Deepseek-ai/DeepSeek- V2-Chat --tp 8 --trust-remote-code --quant fp8 --kv-cache-dtype fp8_e5m2
بعد تشغيل الخادم، يمكنك الاستعلام عنه باستخدام OpenAI API
import openai client = openai.Client( base_url="http://127.0.0.1:30000/v1", api_key="EMPTY") # Chat completion response = client.chat.completions.create( model="default", messages=[ {"role": "system", "content": "You are a helpful AI assistant"}, {"role": "user", "content": "List 3 countries and their capitals."}, ], temperature=0, max_tokens=64, ) print(response)
لاستخدام vLLM لاستدلال النموذج، يرجى دمج طلب السحب هذا في قاعدة بيانات vLLM الخاصة بك: vllm-project/vllm#4650.
من المحولات استيراد AutoTokenizerfrom vllm import LLM, SamplingParamsmax_model_len, tp_size = 8192, 8model_name = "deepseek-ai/DeepSeek-V2-Chat"tokenizer = AutoTokenizer.from_pretrained(model_name)llm = LLM(model=model_name, Tensor_parallel_size=tp_size, max_model_len=max_model_len, Trust_remote_code=True, force_eager=True)sampling_params = SamplingParams(درجة الحرارة=0.3, max_tokens=256, stop_token_ids=[tokenizer.eos_token_id])messages_list = [ [{"الدور": "المستخدم"، "المحتوى": "من أنت؟"}]، [{"role": "user"، "content": "ترجمة المحتوى التالي إلى اللغة الصينية مباشرة: يعتمد DeepSeek-V2 بنيات مبتكرة لضمان التدريب الاقتصادي والاستدلال الفعال."}], [{"role": "user"، "content": "اكتب جزءًا من كود الفرز السريع في C++."}], ]prompt_token_ids = [tokenizer.apply_chat_template(messages, add_generation_prompt=True) للرسائل الموجودة في messages_list]outputs = llm.generate(prompt_token_ids=prompt_token_ids, sampling_params=sampling_params)generated_text = [output.outputs[0].نص للإخراج في المخرجات]طباعة (generated_text)
نظرًا لأن واجهة برمجة التطبيقات الخاصة بنا متوافقة مع OpenAI، فيمكنك استخدامها بسهولة في langchain. هنا مثال:
from langchain_openai import ChatOpenAI llm = ChatOpenAI( model='deepseek-chat', openai_api_key=, openai_api_base='https://api.deepseek.com/v1', temperature=0.85, max_tokens=8000)
تم ترخيص مستودع الكود هذا بموجب ترخيص MIT. يخضع استخدام نماذج DeepSeek-V2 Base/Chat لترخيص النموذج. تدعم سلسلة DeepSeek-V2 (بما في ذلك Base وChat) الاستخدام التجاري.
@misc{deepseekv2, title={DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model}, author={DeepSeek-AI}, year={2024}, eprint={2405.04434}, archivePrefix={arXiv}, primaryClass={cs.CL} }
إذا كان لديك أي أسئلة، يرجى إثارة مشكلة أو الاتصال بنا على[email protected].