Modell-Download | Bewertungsergebnisse | Modellarchitektur | API-Plattform | Lizenz | Zitat
Papierlink ?️
Heute stellen wir DeepSeek-V2 vor, ein starkes Mixture-of-Experts (MoE)-Sprachmodell, das sich durch wirtschaftliches Training und effiziente Inferenz auszeichnet. Es umfasst insgesamt 236B Parameter, von denen 21B für jeden Token aktiviert sind. Im Vergleich zu DeepSeek 67B erreicht DeepSeek-V2 eine stärkere Leistung und spart mittlerweile 42,5 % der Trainingskosten, reduziert den KV-Cache um 93,3 % und steigert den maximalen Generierungsdurchsatz auf das 5,76-fache.
Wir haben DeepSeek-V2 auf einem vielfältigen und hochwertigen Korpus mit 8,1 Billionen Token vorab trainiert. Auf dieses umfassende Vortraining folgte ein Prozess des Supervised Fine-Tuning (SFT) und des Reinforcement Learning (RL), um die Fähigkeiten des Modells voll auszuschöpfen. Die Bewertungsergebnisse bestätigen die Wirksamkeit unseres Ansatzes, da DeepSeek-V2 sowohl bei Standard-Benchmarks als auch bei der Bewertung der offenen Generation eine bemerkenswerte Leistung erzielt.
16.05.2024: Wir haben DeepSeek-V2-Lite veröffentlicht.
06.05.2024: Wir haben DeepSeek-V2 veröffentlicht.
Modell | #Gesamtparameter | #Aktivierte Parameter | Kontextlänge | Herunterladen |
---|---|---|---|---|
DeepSeek-V2-Lite | 16B | 2.4B | 32k | ? Umarmendes Gesicht |
DeepSeek-V2-Lite-Chat (SFT) | 16B | 2.4B | 32k | ? Umarmendes Gesicht |
DeepSeek-V2 | 236B | 21B | 128k | ? Umarmendes Gesicht |
DeepSeek-V2-Chat (RL) | 236B | 21B | 128k | ? Umarmendes Gesicht |
Aufgrund der Einschränkungen von HuggingFace weist der Open-Source-Code derzeit eine langsamere Leistung auf als unsere interne Codebasis, wenn er auf GPUs mit HuggingFace ausgeführt wird. Um die effiziente Ausführung unseres Modells zu erleichtern, bieten wir eine dedizierte VLLM-Lösung an, die die Leistung für die effektive Ausführung unseres Modells optimiert.
Benchmark | Domain | LLaMA3 70B | Mixtral 8x22B | DeepSeek-V1 (Dense-67B) | DeepSeek-V2 (MoE-236B) |
---|---|---|---|---|---|
MMLU | Englisch | 78,9 | 77,6 | 71.3 | 78,5 |
BBH | Englisch | 81,0 | 78,9 | 68,7 | 78,9 |
C-Bewertung | chinesisch | 67,5 | 58,6 | 66.1 | 81,7 |
CMMLU | chinesisch | 69,3 | 60,0 | 70,8 | 84,0 |
HumanEval | Code | 48.2 | 53.1 | 45.1 | 48,8 |
MBPP | Code | 68,6 | 64.2 | 57.4 | 66,6 |
GSM8K | Mathe | 83,0 | 80,3 | 63,4 | 79,2 |
Mathe | Mathe | 42.2 | 42,5 | 18.7 | 43,6 |
Benchmark | Domain | DeepSeek 7B (Dicht) | DeepSeekMoE 16B | DeepSeek-V2-Lite (MoE-16B) |
---|---|---|---|---|
Architektur | - | MHA+Dicht | MHA+MoE | MLA+MoE |
MMLU | Englisch | 48.2 | 45,0 | 58.3 |
BBH | Englisch | 39,5 | 38.9 | 44.1 |
C-Bewertung | chinesisch | 45,0 | 40.6 | 60.3 |
CMMLU | chinesisch | 47.2 | 42,5 | 64.3 |
HumanEval | Code | 26.2 | 26.8 | 29.9 |
MBPP | Code | 39,0 | 39.2 | 43.2 |
GSM8K | Mathe | 17.4 | 18.8 | 41.1 |
Mathe | Mathe | 3.3 | 4.3 | 17.1 |
Weitere Evaluierungsdetails, wie Einstellungen für wenige Aufnahmen und Eingabeaufforderungen, finden Sie in unserem Dokument.
Auswertungsergebnisse der Needle In A Haystack
(NIAH)-Tests. DeepSeek-V2 bietet eine gute Leistung bei allen Kontextfensterlängen bis zu 128 KB .
Benchmark | Domain | QWen1.5 72B Chat | Mixtral 8x22B | LLaMA3 70B Unterweisung | DeepSeek-V1-Chat (SFT) | DeepSeek-V2-Chat (SFT) | DeepSeek-V2-Chat (RL) |
---|---|---|---|---|---|---|---|
MMLU | Englisch | 76,2 | 77,8 | 80,3 | 71.1 | 78,4 | 77,8 |
BBH | Englisch | 65,9 | 78,4 | 80.1 | 71,7 | 81,3 | 79,7 |
C-Bewertung | chinesisch | 82.2 | 60,0 | 67,9 | 65.2 | 80,9 | 78,0 |
CMMLU | chinesisch | 82,9 | 61,0 | 70,7 | 67,8 | 82,4 | 81,6 |
HumanEval | Code | 68,9 | 75,0 | 76,2 | 73,8 | 76,8 | 81.1 |
MBPP | Code | 52.2 | 64,4 | 69,8 | 61.4 | 70.4 | 72,0 |
LiveCodeBench (0901-0401) | Code | 18.8 | 25.0 | 30.5 | 18.3 | 28.7 | 32.5 |
GSM8K | Mathe | 81,9 | 87,9 | 93,2 | 84.1 | 90,8 | 92,2 |
Mathe | Mathe | 40.6 | 49,8 | 48,5 | 32.6 | 52,7 | 53.9 |
Benchmark | Domain | DeepSeek 7B Chat (SFT) | DeepSeekMoE 16B Chat (SFT) | DeepSeek-V2-Lite 16B Chat (SFT) |
---|---|---|---|---|
MMLU | Englisch | 49,7 | 47.2 | 55,7 |
BBH | Englisch | 43.1 | 42.2 | 48.1 |
C-Bewertung | chinesisch | 44.7 | 40,0 | 60.1 |
CMMLU | chinesisch | 51.2 | 49.3 | 62,5 |
HumanEval | Code | 45.1 | 45,7 | 57.3 |
MBPP | Code | 39,0 | 46.2 | 45,8 |
GSM8K | Mathe | 62,6 | 62.2 | 72,0 |
Mathe | Mathe | 14.7 | 15.2 | 27.9 |
Wir evaluieren unser Modell auf AlpacaEval 2.0 und MTBench und zeigen die Wettbewerbsleistung von DeepSeek-V2-Chat-RL bei der Generierung von englischen Konversationen.
Alignbench (https://arxiv.org/abs/2311.18743)
模型 | 开源/闭源 | 总分 | 中文推理 | 中文语言 |
---|---|---|---|---|
gpt-4-1106-Vorschau | 闭源 | 8.01 | 7.73 | 8.29 |
DeepSeek-V2-Chat (RL) | 开源 | 7,91 | 7.45 | 8.36 |
erniebot-4.0-202404 (文心一言) | 闭源 | 7,89 | 7.61 | 8.17 |
DeepSeek-V2-Chat (SFT) | 开源 | 7,74 | 7.30 Uhr | 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-Chat | 开源 | 6.43 | 5,75 | 7.11 |
Yi-34B-Chat (零一万物) | 开源 | 6.12 | 4,86 | 7.38 |
gpt-3.5-turbo-0613 | 闭源 | 6.08 | 5.35 | 6.71 |
DeepSeek-V2-Lite 16B Chat | 开源 | 6.01 | 4.71 | 7.32 |
Wir bewerten unser Modell auf LiveCodeBench (0901-0401), einem Benchmark, der für Live-Coding-Herausforderungen entwickelt wurde. Wie gezeigt, demonstriert DeepSeek-V2 beträchtliche Kompetenz in LiveCodeBench und erreicht einen Pass@1-Score, der mehrere andere anspruchsvolle Modelle übertrifft. Diese Leistung unterstreicht die Wirksamkeit des Modells bei der Bewältigung von Live-Coding-Aufgaben.
DeepSeek-V2 nutzt innovative Architekturen, um wirtschaftliches Training und effiziente Inferenz zu gewährleisten:
Zur Beachtung entwerfen wir MLA (Multi-Head Latent Attention), das eine niedrigrangige Schlüsselwert-Union-Komprimierung nutzt, um den Engpass des Schlüsselwert-Cache zur Inferenzzeit zu beseitigen und so eine effiziente Inferenz zu unterstützen.
Für Feed-Forward-Netzwerke (FFNs) verwenden wir die DeepSeekMoE-Architektur, eine leistungsstarke MoE-Architektur, die das Training stärkerer Modelle zu geringeren Kosten ermöglicht.
Sie können mit DeepSeek-V2 auf der offiziellen Website von DeepSeek chatten: chat.deepseek.com
Wir bieten auch eine OpenAI-kompatible API auf der DeepSeek-Plattform an: platform.deepseek.com. Melden Sie sich für über Millionen kostenlose Token an. Und Sie können auch „Pay-as-you-go“ zu einem unschlagbaren Preis bezahlen.
Um DeepSeek-V2 im BF16-Format für Inferenzen zu nutzen, sind 80 GB*8 GPUs erforderlich.
Sie können die Transformers von Huggingface direkt für die Modellinferenz verwenden.
import Torchfrom Transformers Import AutoTokenizer, AutoModelForCausalLM, GenerationConfigmodel_name = "deepseek-ai/DeepSeek-V2"tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)# `max_memory` sollte basierend auf Ihren Geräten festgelegt werdenmax_memory = {i: "75GB" für i in range(8)}# `device_map` kann nicht auf „auto“ gesetzt sein 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.generation_config = GenerationConfig.from_pretrained(model_name) model.generation_config.pad_token_id = model.generation_config.eos_token_idtext = „Eine Aufmerksamkeitsfunktion kann als Zuordnung einer Abfrage und einer Reihe von Schlüssel-Wert-Paaren zu einer Ausgabe beschrieben werden, wobei Abfrage, Schlüssel, Werte und Ausgabe allesamt Vektoren sind. Die Ausgabe ist „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 Torchfrom Transformers Import AutoTokenizer, AutoModelForCausalLM, GenerationConfigmodel_name = "deepseek-ai/DeepSeek-V2-Chat"tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)# `max_memory` sollte basierend auf Ihren Geräten festgelegt werdenmax_memory = {i: "75GB " for i in range(8)}# „device_map“ kann nicht auf „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.generation_config = gesetzt werden GenerationConfig.from_pretrained(model_name)model.generation_config.pad_token_id = model.generation_config.eos_token_idmessages = [ {"role": "user", "content": "Einen Quicksort-Code in C++ schreiben"} ]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 .shape[1]:], skip_special_tokens=True)print(result)
Die vollständige Chat-Vorlage finden Sie in tokenizer_config.json
im Huggingface-Modell-Repository.
Ein Beispiel für eine Chat-Vorlage ist wie folgt:
<|Satzanfang|>Benutzer: {user_message_1} Assistent: {assistant_message_1}<|Ende des Satzes|>Benutzer: {user_message_2} Assistent:
Sie können auch eine optionale Systemmeldung hinzufügen:
<|Satzanfang|>{system_message} Benutzer: {user_message_1} Assistent: {assistant_message_1}<|Ende des Satzes|>Benutzer: {user_message_2} Assistent:
SGLang unterstützt derzeit MLA-Optimierungen, FP8 (W8A8), FP8 KV Cache und Torch Compile und bietet die beste Latenz und den besten Durchsatz unter den Open-Source-Frameworks. Hier sind einige Beispielbefehle zum Starten eines OpenAI API-kompatiblen Servers:
# BF16, Tensorparallelität = 8python3 -m sglang.launch_server --model deepseek-ai/DeepSeek-V2-Chat --tp 8 --trust-remote-code# BF16, w/ Torch.compile (Die Kompilierung kann mehrere Minuten dauern )python3 -m sglang.launch_server --model deepseek-ai/DeepSeek-V2-Lite-Chat --trust-remote-code --enable-torch-compile# FP8, Tensorparallelität = 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
Nachdem Sie den Server gestartet haben, können Sie ihn mit der OpenAI-API abfragen
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)
Um vLLM für die Modellinferenz zu nutzen, führen Sie bitte diese Pull-Anfrage in Ihre vLLM-Codebasis ein: vllm-project/vllm#4650.
from transformers import 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, Enforce_eager=True)sampling_params = SamplingParams(temperature=0.3, max_tokens=256, stop_token_ids=[tokenizer.eos_token_id])messages_list = [ [{"role": "user", "content": "Wer sind Sie?"}], [{"role": "user", "content": "Übersetzen Sie den folgenden Inhalt direkt ins Chinesische: DeepSeek-V2 übernimmt innovative Architekturen, um wirtschaftliches Training und effiziente Inferenz zu gewährleisten."}], [{"role": "user", "content": "Einen Quicksort-Code in C++ schreiben."}], ]prompt_token_ids = [tokenizer.apply_chat_template(messages, add_generation_prompt=True) für Nachrichten in messages_list]outputs = llm.generate(prompt_token_ids=prompt_token_ids, sampling_params=sampling_params)generated_text = [output.outputs[0].text für die Ausgabe in Ausgaben]print(generated_text)
Da unsere API mit OpenAI kompatibel ist, können Sie sie problemlos in Langchain verwenden. Hier ist ein Beispiel:
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)
Dieses Code-Repository ist unter der MIT-Lizenz lizenziert. Die Nutzung von DeepSeek-V2 Base/Chat-Modellen unterliegt der Modelllizenz. Die DeepSeek-V2-Serie (einschließlich Base und Chat) unterstützt die kommerzielle Nutzung.
@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} }
Wenn Sie Fragen haben, melden Sie bitte ein Problem oder kontaktieren Sie uns unter [email protected].