ดาวน์โหลดโมเดล | ผลการประเมิน | สถาปัตยกรรมแบบจำลอง | แพลตฟอร์ม API | ใบอนุญาต | การอ้างอิง
ลิงค์กระดาษ ⁉️
วันนี้ เรากำลังเปิดตัว DeepSeek-V2 ซึ่งเป็นโมเดลภาษาแบบ Mixture-of-Experts (MoE) ที่แข็งแกร่ง โดดเด่นด้วยการฝึกอบรมที่ประหยัดและการอนุมานที่มีประสิทธิภาพ ประกอบด้วยพารามิเตอร์ทั้งหมด 236B โดยที่ 21B ถูกเปิดใช้งานสำหรับแต่ละโทเค็น เมื่อเทียบกับ DeepSeek 67B แล้ว DeepSeek-V2 มีประสิทธิภาพที่ดีกว่า และในขณะเดียวกันก็ประหยัดค่าใช้จ่ายในการฝึกอบรมได้ 42.5% ลดแคช KV ลง 93.3% และเพิ่มปริมาณงานการสร้างสูงสุดเป็น 5.76 เท่า
เราได้ฝึกอบรม DeepSeek-V2 ไว้ล่วงหน้าบนคลังข้อมูลที่หลากหลายและมีคุณภาพสูงซึ่งประกอบด้วยโทเค็น 8.1 ล้านล้านโทเค็น การฝึกอบรมล่วงหน้าที่ครอบคลุมนี้ตามมาด้วยกระบวนการปรับแต่งแบบละเอียดภายใต้การดูแล (SFT) และการเรียนรู้แบบเสริมกำลัง (RL) เพื่อปลดปล่อยขีดความสามารถของโมเดลอย่างเต็มที่ ผลการประเมินจะตรวจสอบความมีประสิทธิผลของแนวทางของเรา เนื่องจาก DeepSeek-V2 บรรลุประสิทธิภาพที่โดดเด่นทั้งบนเกณฑ์มาตรฐานและการประเมินรุ่นปลายเปิด
16.05.2024: เราเปิดตัว DeepSeek-V2-Lite
2024.05.06: เราเปิดตัว DeepSeek-V2
แบบอย่าง | #พารามิเตอร์ทั้งหมด | #เปิดใช้งานพารามิเตอร์แล้ว | ความยาวบริบท | ดาวน์โหลด |
---|---|---|---|---|
DeepSeek-V2-Lite | 16B | 2.4B | 32k | - กอดใบหน้า |
DeepSeek-V2-Lite-แชท (SFT) | 16B | 2.4B | 32k | - กอดใบหน้า |
DeepSeek-V2 | 236B | 21B | 128k | - กอดใบหน้า |
DeepSeek-V2-แชท (RL) | 236B | 21B | 128k | - กอดใบหน้า |
เนื่องจากข้อจำกัดของ HuggingFace โค้ดโอเพ่นซอร์สในปัจจุบันจึงพบกับประสิทธิภาพที่ช้ากว่าโค้ดเบสภายในของเราเมื่อทำงานบน GPU ที่มี Huggingface เพื่ออำนวยความสะดวกในการดำเนินการโมเดลของเราอย่างมีประสิทธิภาพ เราขอเสนอโซลูชัน vllm เฉพาะที่เพิ่มประสิทธิภาพการทำงานสำหรับการรันโมเดลของเราอย่างมีประสิทธิภาพ
เกณฑ์มาตรฐาน | โดเมน | แอลลามา3 70บี | มิกซ์ทรัล 8x22B | DeepSeek-V1 (หนาแน่น-67B) | DeepSeek-V2 (MoE-236B) |
---|---|---|---|---|---|
มจล | ภาษาอังกฤษ | 78.9 | 77.6 | 71.3 | 78.5 |
บีบีเอช | ภาษาอังกฤษ | 81.0 | 78.9 | 68.7 | 78.9 |
ซี-อีวาล | ชาวจีน | 67.5 | 58.6 | 66.1 | 81.7 |
ซีเอ็มเอ็มแอลยู | ชาวจีน | 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 (หนาแน่น) | DeepSeekMoE 16B | DeepSeek-V2-Lite (MoE-16B) |
---|---|---|---|---|
สถาปัตยกรรม | - | MHA+หนาแน่น | มช.+โมอี | มลา+โมอี |
มจล | ภาษาอังกฤษ | 48.2 | 45.0 | 58.3 |
บีบีเอช | ภาษาอังกฤษ | 39.5 | 38.9 | 44.1 |
ซี-อีวาล | ชาวจีน | 45.0 | 40.6 | 60.3 |
ซีเอ็มเอ็มแอลยู | ชาวจีน | 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 ทำงานได้ดีกับหน้าต่างบริบททุกความยาวสูงสุด 128K
เกณฑ์มาตรฐาน | โดเมน | QWen1.5 72B แชท | มิกซ์ทรัล 8x22B | คำแนะนำ LLaMA3 70B | แชท DeepSeek-V1 (SFT) | แชท DeepSeek-V2 (SFT) | แชท DeepSeek-V2 (RL) |
---|---|---|---|---|---|---|---|
มจล | ภาษาอังกฤษ | 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 |
ซีเอ็มเอ็มแอลยู | ชาวจีน | 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 |
LiveCodeBench (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 แชท (SFT) |
---|---|---|---|---|
มจล | ภาษาอังกฤษ | 49.7 | 47.2 | 55.7 |
บีบีเอช | ภาษาอังกฤษ | 43.1 | 42.2 | 48.1 |
ซี-อีวาล | ชาวจีน | 44.7 | 40.0 | 60.1 |
ซีเอ็มเอ็มแอลยู | ชาวจีน | 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 |
gpt-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-Chat (通义千问) | เริ่มต้น | 7.19 | 6.45 | 7.93 |
DeepSeek-67B-แชท | เริ่มต้น | 6.43 | 5.75 | 7.11 |
Yi-34B-Chat (零一万物) | เริ่มต้น | 6.12 | 4.86 | 7.38 |
gpt-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 (Multi-head Latent Attention) ซึ่งใช้การบีบอัดคีย์-ค่าระดับต่ำเพื่อขจัดปัญหาคอขวดของแคชคีย์-ค่าเวลาการอนุมาน ซึ่งสนับสนุนการอนุมานที่มีประสิทธิภาพ
สำหรับ Feed-Forward Networks (FFN) เราใช้สถาปัตยกรรม DeepSeekMoE ซึ่งเป็นสถาปัตยกรรม MoE ประสิทธิภาพสูงที่ช่วยให้สามารถฝึกอบรมโมเดลที่แข็งแกร่งขึ้นด้วยต้นทุนที่ต่ำกว่า
คุณสามารถแชทกับ DeepSeek-V2 บนเว็บไซต์อย่างเป็นทางการของ DeepSeek: chat.deepseek.com
นอกจากนี้เรายังให้บริการ API ที่รองรับ OpenAI ได้ที่แพลตฟอร์ม DeepSeek: platform.deepseek.com ลงทะเบียนเพื่อรับโทเค็นฟรีมากกว่าล้านรายการ และคุณยังสามารถจ่ายตามที่ใช้งานในราคาที่ถูกที่สุดอีกด้วย
หากต้องการใช้ DeepSeek-V2 ในรูปแบบ BF16 สำหรับการอนุมาน จำเป็นต้องมี GPU ขนาด 80GB*8
คุณสามารถใช้ Transformers ของ Huggingface ได้โดยตรงสำหรับการอนุมานโมเดล
นำเข้า torchfrom Transformers นำเข้า 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, device_map="sequential", torch_dtype=torch.bfloat16, max_memory=max_memory, attn_implementation="eager")model.model_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)พิมพ์(ผลลัพธ์)
นำเข้า torchfrom Transformers นำเข้า AutoTokenizer, AutoModelForCausalLM, GenerationConfigmodel_name = "deepseek-ai/DeepSeek-V2-Chat"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, device_map="sequential", torch_dtype=torch.bfloat16, max_memory=max_memory, attn_implementation="eager")model.model_config = GenerationConfig.from_pretrained(model_name)model.eneration_config.pad_token_id = model.model_config.eos_token_idmessages = [ {"role": "user", "content": "เขียนโค้ด Quicksort ใน C++"} ]input_tensor = tokenizer.apply_chat_template(ข้อความ, add_generator_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=True)พิมพ์(ผลลัพธ์)
เทมเพลตการแชทที่สมบูรณ์สามารถพบได้ภายใน 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-แคช-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
จากหม้อแปลงนำเข้า AutoTokenizer จาก vllm นำเข้า 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, enforce_eager=True)sampling_params = SamplingParams(อุณหภูมิ=0.3, max_tokens=256, stop_token_ids=[tokenizer.eos_token_id])messages_list = [ [{"role": "user", "content": "คุณเป็นใคร?"}], [{"role": "user", "content": "แปลเนื้อหาต่อไปนี้เป็นภาษาจีนโดยตรง: DeepSeek-V2 ใช้สถาปัตยกรรมที่เป็นนวัตกรรมใหม่เพื่อรับประกันการฝึกอบรมที่ประหยัดและการอนุมานที่มีประสิทธิภาพ"}] [{"role": "user", "content": "เขียนโค้ด Quicksort ใน C++"}], ]prompt_token_ids = [tokenizer.apply_chat_template(ข้อความ, add_model_prompt=True) สำหรับข้อความใน Messages_list]outputs = llm.generate(prompt_token_ids=prompt_token_ids, sampling_params=sampling_params)generated_text = [output.outputs[0].text สำหรับเอาต์พุตใน เอาท์พุท] พิมพ์ (generated_text)
เนื่องจาก API ของเราเข้ากันได้กับ 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 อยู่ภายใต้ Model License ซีรีส์ 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]