Baixar modelo | Resultados da avaliação | Arquitetura de Modelo | Plataforma API | Licença | Citação
Link de papel ?️
Hoje, estamos apresentando o DeepSeek-V2, um forte modelo de linguagem Mixture-of-Experts (MoE), caracterizado por treinamento econômico e inferência eficiente. É composto por um total de 236B de parâmetros, dos quais 21B são ativados para cada token. Comparado com o DeepSeek 67B, o DeepSeek-V2 alcança um desempenho mais forte e, ao mesmo tempo, economiza 42,5% dos custos de treinamento, reduz o cache KV em 93,3% e aumenta o rendimento máximo de geração para 5,76 vezes.
Pré-treinamos o DeepSeek-V2 em um corpus diversificado e de alta qualidade composto por 8,1 trilhões de tokens. Este pré-treinamento abrangente foi seguido por um processo de ajuste fino supervisionado (SFT) e aprendizado por reforço (RL) para liberar totalmente as capacidades do modelo. Os resultados da avaliação validam a eficácia da nossa abordagem, já que o DeepSeek-V2 alcança um desempenho notável tanto em benchmarks padrão quanto em avaliação de geração aberta.
16/05/2024: Lançamos o DeepSeek-V2-Lite.
2024.05.06: Lançamos o DeepSeek-V2.
Modelo | #Total de parâmetros | #Parâmetros ativados | Comprimento do contexto | Download |
---|---|---|---|---|
DeepSeek-V2-Lite | 16B | 2,4B | 32k | ? Abraçando o rosto |
DeepSeek-V2-Lite-Chat (SFT) | 16B | 2,4B | 32k | ? Abraçando o rosto |
DeepSeek-V2 | 236B | 21B | 128 mil | ? Abraçando o rosto |
Bate-papo DeepSeek-V2 (RL) | 236B | 21B | 128 mil | ? Abraçando o rosto |
Devido às restrições do HuggingFace, o código-fonte aberto atualmente apresenta desempenho mais lento do que nossa base de código interna ao ser executado em GPUs com Huggingface. Para facilitar a execução eficiente do nosso modelo, oferecemos uma solução vllm dedicada que otimiza o desempenho para executar o nosso modelo de forma eficaz.
Referência | Domínio | LLaMA3 70B | Mixtral 8x22B | DeepSeek-V1 (Dense-67B) | DeepSeek-V2 (MoE-236B) |
---|---|---|---|---|---|
MMLU | Inglês | 78,9 | 77,6 | 71,3 | 78,5 |
BBH | Inglês | 81,0 | 78,9 | 68,7 | 78,9 |
Avaliação C | chinês | 67,5 | 58,6 | 66,1 | 81,7 |
CMMLU | chinês | 69,3 | 60,0 | 70,8 | 84,0 |
Avaliação Humana | Código | 48,2 | 53.1 | 45,1 | 48,8 |
MBPP | Código | 68,6 | 64,2 | 57,4 | 66,6 |
GSM8K | Matemática | 83,0 | 80,3 | 63,4 | 79,2 |
Matemática | Matemática | 42,2 | 42,5 | 18,7 | 43,6 |
Referência | Domínio | DeepSeek 7B (denso) | DeepSeekMoE 16B | DeepSeek-V2-Lite (MoE-16B) |
---|---|---|---|---|
Arquitetura | - | MHA+Denso | MHA+MoE | AML+MoE |
MMLU | Inglês | 48,2 | 45,0 | 58,3 |
BBH | Inglês | 39,5 | 38,9 | 44,1 |
Avaliação C | chinês | 45,0 | 40,6 | 60,3 |
CMMLU | chinês | 47,2 | 42,5 | 64,3 |
Avaliação Humana | Código | 26.2 | 26,8 | 29,9 |
MBPP | Código | 39,0 | 39,2 | 43,2 |
GSM8K | Matemática | 17.4 | 18,8 | 41.1 |
Matemática | Matemática | 3.3 | 4.3 | 17.1 |
Para obter mais detalhes de avaliação, como configurações e avisos de poucas fotos, consulte nosso artigo.
Resultados da avaliação nos testes Needle In A Haystack
(NIAH). DeepSeek-V2 tem um bom desempenho em todos os comprimentos de janela de contexto de até 128K .
Referência | Domínio | Bate-papo QWen1.5 72B | Mixtral 8x22B | Instrução LLaMA3 70B | Bate-papo DeepSeek-V1 (SFT) | Bate-papo DeepSeek-V2 (SFT) | Bate-papo DeepSeek-V2 (RL) |
---|---|---|---|---|---|---|---|
MMLU | Inglês | 76,2 | 77,8 | 80,3 | 71,1 | 78,4 | 77,8 |
BBH | Inglês | 65,9 | 78,4 | 80,1 | 71,7 | 81,3 | 79,7 |
Avaliação C | chinês | 82,2 | 60,0 | 67,9 | 65,2 | 80,9 | 78,0 |
CMMLU | chinês | 82,9 | 61,0 | 70,7 | 67,8 | 82,4 | 81,6 |
Avaliação Humana | Código | 68,9 | 75,0 | 76,2 | 73,8 | 76,8 | 81,1 |
MBPP | Código | 52.2 | 64,4 | 69,8 | 61,4 | 70,4 | 72,0 |
LiveCodeBench (0901-0401) | Código | 18,8 | 25,0 | 30,5 | 18.3 | 28,7 | 32,5 |
GSM8K | Matemática | 81,9 | 87,9 | 93,2 | 84,1 | 90,8 | 92,2 |
Matemática | Matemática | 40,6 | 49,8 | 48,5 | 32,6 | 52,7 | 53,9 |
Referência | Domínio | Bate-papo DeepSeek 7B (SFT) | Bate-papo DeepSeekMoE 16B (SFT) | Bate-papo DeepSeek-V2-Lite 16B (SFT) |
---|---|---|---|---|
MMLU | Inglês | 49,7 | 47,2 | 55,7 |
BBH | Inglês | 43,1 | 42,2 | 48,1 |
Avaliação C | chinês | 44,7 | 40,0 | 60,1 |
CMMLU | chinês | 51.2 | 49,3 | 62,5 |
Avaliação Humana | Código | 45,1 | 45,7 | 57,3 |
MBPP | Código | 39,0 | 46,2 | 45,8 |
GSM8K | Matemática | 62,6 | 62,2 | 72,0 |
Matemática | Matemática | 14,7 | 15.2 | 27,9 |
Avaliamos nosso modelo no AlpacaEval 2.0 e MTBench, mostrando o desempenho competitivo do DeepSeek-V2-Chat-RL na geração de conversação em inglês.
Alignbench (https://arxiv.org/abs/2311.18743)
模型 | 开源/闭源 | 总分 | 中文推理 | 中文语言 |
---|---|---|---|---|
gpt-4-1106-visualização | 闭源 | 8.01 | 7,73 | 8.29 |
Bate-papo DeepSeek-V2 (RL) | 开源 | 7,91 | 7h45 | 8.36 |
erniebot-4.0-202404 (文心一言) | 闭源 | 7,89 | 7,61 | 8.17 |
Bate-papo DeepSeek-V2 (SFT) | 开源 | 7,74 | 7h30 | 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 (nova versão) | 闭源 | 7.22 | 6,42 | 8.02 |
Qwen1.5-72B-Chat (通义千问) | 开源 | 7.19 | 6h45 | 7,93 |
DeepSeek-67B-Bate-papo | 开源 | 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 |
Bate-papo DeepSeek-V2-Lite 16B | 开源 | 6.01 | 4,71 | 7.32 |
Avaliamos nosso modelo no LiveCodeBench (0901-0401), um benchmark projetado para desafios de codificação ao vivo. Conforme ilustrado, o DeepSeek-V2 demonstra proficiência considerável no LiveCodeBench, alcançando uma pontuação Pass@1 que supera vários outros modelos sofisticados. Este desempenho destaca a eficácia do modelo em lidar com tarefas de codificação ao vivo.
DeepSeek-V2 adota arquiteturas inovadoras para garantir treinamento econômico e inferência eficiente:
Para atenção, projetamos MLA (Multi-head Latent Attention), que utiliza compactação de união de valores-chave de baixa classificação para eliminar o gargalo do cache de valores-chave no tempo de inferência, apoiando assim uma inferência eficiente.
Para Redes Feed-Forward (FFNs), adotamos a arquitetura DeepSeekMoE, uma arquitetura MoE de alto desempenho que permite treinar modelos mais fortes a custos mais baixos.
Você pode conversar com o DeepSeek-V2 no site oficial do DeepSeek: chat.deepseek.com
Também fornecemos API compatível com OpenAI na plataforma DeepSeek: platform.deepseek.com. Inscreva-se para receber mais de milhões de tokens gratuitos. E você também pode pagar conforme o uso a um preço imbatível.
Para utilizar o DeepSeek-V2 no formato BF16 para inferência, são necessárias GPUs de 80 GB * 8.
Você pode empregar diretamente os Transformers do Huggingface para inferência de modelo.
importar tocha de transformadores importar AutoTokenizer, AutoModelForCausalLM, GenerationConfigmodel_name = "deepseek-ai/DeepSeek-V2"tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)# `max_memory` deve ser definido com base em seus dispositivosmax_memory = {i: "75GB" para i in range(8)}# `device_map` não pode ser definido para `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 = GenerationConfig.from_pretrained(model_name)model. geração_config.pad_token_id = model.generation_config.eos_token_idtext = "Uma função de atenção pode ser descrita como o mapeamento de uma consulta e um conjunto de pares de valores-chave para uma saída, onde a consulta, chaves, valores e saída são todos vetores. A saída é"inputs = tokenizer (texto, return_tensors="pt")outputs = model.generate(**inputs.to(model.device), max_new_tokens=100)resultado = tokenizer.decode(saídas[0], skip_special_tokens=True)print(resultado)
importar tocha de transformadores importar AutoTokenizer, AutoModelForCausalLM, GenerationConfigmodel_name = "deepseek-ai/DeepSeek-V2-Chat"tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)# `max_memory` deve ser definido com base em seus dispositivosmax_memory = {i: "75GB " for i in range(8)}# `device_map` não pode ser definido como `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 = GenerationConfig.from_pretrained(model_name )model.generação_config.pad_token_id = model.generação_config.eos_token_idmessages = [ {"role": "user", "content": "Escreva um trecho de código quicksort em 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 .forma[1]:], skip_special_tokens=True)imprimir(resultado)
O modelo de bate-papo completo pode ser encontrado em tokenizer_config.json
localizado no repositório do modelo huggingface.
Um exemplo de modelo de bate-papo é o seguinte:
<|início da frase|>Usuário: {user_message_1} Assistente: {assistant_message_1}<|fim da frase|>Usuário: {user_message_2} Assistente:
Você também pode adicionar uma mensagem de sistema opcional:
<|início da frase|>{system_message} Usuário: {user_message_1} Assistente: {assistant_message_1}<|fim da frase|>Usuário: {user_message_2} Assistente:
SGLang atualmente suporta otimizações MLA, FP8 (W8A8), FP8 KV Cache e Torch Compile, oferecendo a melhor latência e rendimento entre estruturas de código aberto. Aqui estão alguns exemplos de comandos para iniciar um servidor compatível com API OpenAI:
# BF16, paralelismo de tensor = 8python3 -m sglang.launch_server --model deepseek-ai/DeepSeek-V2-Chat --tp 8 --trust-remote-code# BF16, w/ torch.compile (A compilação pode levar vários minutos )python3 -m sglang.launch_server --model deepseek-ai/DeepSeek-V2-Lite-Chat --trust-remote-code --enable-torch-compile# FP8, paralelismo de tensor = 8, FP8 KV cachepython3 -m sglang.launch_server --model deepseek-ai/DeepSeek-V2-Chat --tp 8 --trust- código remoto --quant fp8 --kv-cache-dtype fp8_e5m2
Depois de iniciar o servidor, você pode consultá-lo com a API OpenAI
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)
Para utilizar o vLLM para inferência de modelo, mescle esta solicitação pull em sua base de código vLLM: vllm-project/vllm#4650.
de transformadores importar AutoTokenizerfrom vllm importar 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(temperatura=0,3, max_tokens=256, stop_token_ids=[tokenizer.eos_token_id])messages_list = [ [{"role": "user", "content": "Quem é você?"}], [{"role": "user", "content": "Traduza o seguinte conteúdo diretamente para o chinês: DeepSeek-V2 adota arquiteturas inovadoras para garantir treinamento econômico e inferência eficiente."}], [{"role": "user", "content": "Escreva um trecho de código quicksort em C++."}], ]prompt_token_ids = [tokenizer.apply_chat_template(messages, add_generation_prompt=True) para mensagens em messages_list]outputs = llm.generate(prompt_token_ids=prompt_token_ids, sampling_params=sampling_params)generated_text = [output.outputs[0].text para saída em saídas] imprimir (texto_gerado)
Como nossa API é compatível com OpenAI, você pode usá-la facilmente em langchain. Aqui está um exemplo:
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)
Este repositório de código está licenciado sob a licença MIT. O uso dos modelos DeepSeek-V2 Base/Chat está sujeito à Licença de Modelo. A série DeepSeek-V2 (incluindo Base e Chat) suporta uso comercial.
@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} }
Se você tiver alguma dúvida, levante um problema ou entre em contato conosco pelo e-mail [email protected].