Descarga de modelos | Resultados de la evaluación | Arquitectura modelo | Plataforma API | Licencia | Citación
¿ Enlace de papel ? ️
Hoy presentamos DeepSeek-V2, un sólido modelo de lenguaje de mezcla de expertos (MoE) caracterizado por una capacitación económica y una inferencia eficiente. Consta de 236B de parámetros en total, de los cuales 21B se activan para cada token. En comparación con DeepSeek 67B, DeepSeek-V2 logra un rendimiento más sólido y, mientras tanto, ahorra un 42,5 % de los costos de capacitación, reduce el caché KV en un 93,3 % y aumenta el rendimiento máximo de generación a 5,76 veces.
Entrenamos previamente DeepSeek-V2 en un corpus diverso y de alta calidad que comprende 8,1 billones de tokens. A esta capacitación previa integral le siguió un proceso de ajuste fino supervisado (SFT) y aprendizaje por refuerzo (RL) para liberar completamente las capacidades del modelo. Los resultados de la evaluación validan la efectividad de nuestro enfoque, ya que DeepSeek-V2 logra un rendimiento notable tanto en los puntos de referencia estándar como en la evaluación de generación abierta.
2024.05.16: Lanzamos DeepSeek-V2-Lite.
06.05.2024: Lanzamos DeepSeek-V2.
Modelo | #Total de parámetros | #Parámetros activados | Longitud del contexto | Descargar |
---|---|---|---|---|
DeepSeek-V2-Lite | 16B | 2.4B | 32k | ? AbrazosCara |
DeepSeek-V2-Lite-Chat (SFT) | 16B | 2.4B | 32k | ? AbrazosCara |
DeepSeek-V2 | 236B | 21B | 128k | ? AbrazosCara |
DeepSeek-V2-Chat (RL) | 236B | 21B | 128k | ? AbrazosCara |
Debido a las limitaciones de HuggingFace, el código fuente abierto actualmente experimenta un rendimiento más lento que nuestro código base interno cuando se ejecuta en GPU con Huggingface. Para facilitar la ejecución eficiente de nuestro modelo, ofrecemos una solución vllm dedicada que optimiza el rendimiento para ejecutar nuestro modelo de manera efectiva.
Punto de referencia | Dominio | LLaMA3 70B | Mixtral 8x22B | DeepSeek-V1 (denso-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 |
Evaluación C | Chino | 67,5 | 58,6 | 66.1 | 81,7 |
CMLU | Chino | 69.3 | 60.0 | 70,8 | 84.0 |
evaluación humana | Código | 48.2 | 53.1 | 45.1 | 48,8 |
MBPP | Código | 68,6 | 64.2 | 57,4 | 66,6 |
GSM8K | Matemáticas | 83.0 | 80.3 | 63,4 | 79,2 |
Matemáticas | Matemáticas | 42.2 | 42,5 | 18.7 | 43,6 |
Punto de referencia | Dominio | DeepSeek 7B (denso) | DeepSeekMoE 16B | DeepSeek-V2-Lite (MoE-16B) |
---|---|---|---|---|
Arquitectura | - | MHA+denso | MHA+MoE | Asamblea Legislativa + Ministerio de Educación |
MMLU | Inglés | 48.2 | 45.0 | 58.3 |
BBH | Inglés | 39,5 | 38,9 | 44.1 |
Evaluación C | Chino | 45.0 | 40,6 | 60.3 |
CMLU | Chino | 47.2 | 42,5 | 64.3 |
evaluación humana | Código | 26.2 | 26,8 | 29,9 |
MBPP | Código | 39.0 | 39.2 | 43.2 |
GSM8K | Matemáticas | 17.4 | 18.8 | 41.1 |
Matemáticas | Matemáticas | 3.3 | 4.3 | 17.1 |
Para obtener más detalles de la evaluación, como configuraciones e indicaciones de algunos disparos, consulte nuestro artículo.
Resultados de la evaluación de las pruebas Needle In A Haystack
(NIAH). DeepSeek-V2 funciona bien en todas las longitudes de ventana de contexto hasta 128K .
Punto de referencia | Dominio | Chat QWen1.5 72B | Mixtral 8x22B | LLaMA3 70B Instrucción | Chat DeepSeek-V1 (SFT) | Chat DeepSeek-V2 (SFT) | Chat 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 |
Evaluación C | Chino | 82.2 | 60.0 | 67,9 | 65.2 | 80,9 | 78.0 |
CMLU | Chino | 82,9 | 61.0 | 70,7 | 67,8 | 82,4 | 81,6 |
evaluación 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áticas | 81,9 | 87,9 | 93.2 | 84.1 | 90,8 | 92.2 |
Matemáticas | Matemáticas | 40,6 | 49,8 | 48,5 | 32,6 | 52,7 | 53,9 |
Punto de referencia | Dominio | Chat DeepSeek 7B (SFT) | Chat DeepSeekMoE 16B (SFT) | Chat DeepSeek-V2-Lite 16B (SFT) |
---|---|---|---|---|
MMLU | Inglés | 49,7 | 47.2 | 55,7 |
BBH | Inglés | 43.1 | 42.2 | 48.1 |
Evaluación C | Chino | 44,7 | 40.0 | 60.1 |
CMLU | Chino | 51.2 | 49.3 | 62,5 |
evaluación humana | Código | 45.1 | 45,7 | 57,3 |
MBPP | Código | 39.0 | 46.2 | 45,8 |
GSM8K | Matemáticas | 62,6 | 62.2 | 72.0 |
Matemáticas | Matemáticas | 14.7 | 15.2 | 27,9 |
Evaluamos nuestro modelo en AlpacaEval 2.0 y MTBench, mostrando el desempeño competitivo de DeepSeek-V2-Chat-RL en la generación de conversaciones en inglés.
Alinear banco (https://arxiv.org/abs/2311.18743)
模型 | 开源/闭源 | 总分 | 中文推理 | 中文语言 |
---|---|---|---|---|
gpt-4-1106-vista previa | 闭源 | 8.01 | 7.73 | 8.29 |
Chat DeepSeek-V2 (RL) | 开源 | 7.91 | 7.45 | 8.36 |
erniebot-4.0-202404 (文心一言) | 闭源 | 7,89 | 7.61 | 8.17 |
Chat 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-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 |
Chat DeepSeek-V2-Lite 16B | 开源 | 6.01 | 4.71 | 7.32 |
Evaluamos nuestro modelo en LiveCodeBench (0901-0401), un punto de referencia diseñado para desafíos de codificación en vivo. Como se ilustra, DeepSeek-V2 demuestra un dominio considerable en LiveCodeBench, logrando una puntuación Pass@1 que supera a varios otros modelos sofisticados. Este desempeño resalta la efectividad del modelo para abordar tareas de codificación en vivo.
DeepSeek-V2 adopta arquitecturas innovadoras para garantizar una capacitación económica y una inferencia eficiente:
Para llamar la atención, diseñamos MLA (Atención latente de múltiples cabezas), que utiliza compresión de unión de valores clave de bajo rango para eliminar el cuello de botella del caché de valores clave en tiempo de inferencia, respaldando así una inferencia eficiente.
Para las redes Feed-Forward (FFN), adoptamos la arquitectura DeepSeekMoE, una arquitectura MoE de alto rendimiento que permite entrenar modelos más potentes a costos más bajos.
Puede chatear con DeepSeek-V2 en el sitio web oficial de DeepSeek: chat.deepseek.com
También proporcionamos API compatible con OpenAI en la plataforma DeepSeek: platform.deepseek.com. Regístrese para obtener más de millones de tokens gratis. Y también puedes pagar por uso a un precio inmejorable.
Para utilizar DeepSeek-V2 en formato BF16 para inferencia, se requieren GPU de 80 GB*8.
Puede emplear directamente los Transformers de Huggingface para la inferencia de modelos.
importar antorcha de transformadores importar AutoTokenizer, AutoModelForCausalLM, GenerationConfigmodel_name = "deepseek-ai/DeepSeek-V2"tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)# `max_memory` debe configurarse según sus dispositivosmax_memory = {i: "75GB" para i in range(8)}# `device_map` no se puede configurar a `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.generación_config = GenerationConfig.from_pretrained(model_name)model. generacion_config.pad_token_id = model.generación_config.eos_token_idtext = "Una función de atención se puede describir como mapear una consulta y un conjunto de pares clave-valor a una salida, donde la consulta, las claves, los valores y la salida son todos vectores. La salida es"inputs = tokenizer (texto, return_tensors="pt")salidas = model.generate(**inputs.to(model.device), max_new_tokens=100)resultado = tokenizer.decode(salidas[0], skip_special_tokens=True)print(resultado)
importar antorcha de transformadores importar AutoTokenizer, AutoModelForCausalLM, GenerationConfigmodel_name = "deepseek-ai/DeepSeek-V2-Chat"tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)# `max_memory` debe configurarse según sus dispositivosmax_memory = {i: "75GB "para i en el rango(8)}# `device_map` no se puede configurar en `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.generación_config = GenerationConfig.from_pretrained(model_name )model.generación_config.pad_token_id = model.generación_config.eos_token_idmessages = [ {"role": "usuario", "content": "Escribir un fragmento de código de clasificación rápida en C++"} ]input_tensor = tokenizer.apply_chat_template(messages, add_generación_prompt=True, return_tensors="pt")salidas = model.generate(input_tensor.to(model.device), max_new_tokens=100)resultado = tokenizer.decode(salidas[0][input_tensor .forma[1]:], skip_special_tokens=Verdadero)imprimir(resultado)
La plantilla de chat completa se puede encontrar en tokenizer_config.json
ubicado en el repositorio de modelos de huggingface.
Un ejemplo de plantilla de chat es el siguiente:
<|comienzo de oración|>Usuario: {user_message_1} Asistente: {assistant_message_1}<|fin de oración|>Usuario: {user_message_2} Asistente:
También puede agregar un mensaje del sistema opcional:
<|comienzo de oración|>{system_message} Usuario: {user_message_1} Asistente: {assistant_message_1}<|fin de oración|>Usuario: {user_message_2} Asistente:
Actualmente, SGLang admite optimizaciones MLA, FP8 (W8A8), FP8 KV Cache y Torch Compile, lo que ofrece la mejor latencia y rendimiento entre los marcos de código abierto. A continuación se muestran algunos comandos de ejemplo para iniciar un servidor compatible con API OpenAI:
# BF16, paralelismo tensorial = 8python3 -m sglang.launch_server --model deepseek-ai/DeepSeek-V2-Chat --tp 8 --trust-remote-code# BF16, w/ torch.compile (La compilación puede tardar varios minutos )python3 -m sglang.launch_server --modelo deepseek-ai/DeepSeek-V2-Lite-Chat --trust-remote-code --enable-torch-compile# FP8, paralelismo 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
Después de iniciar el servidor, puede consultarlo con la 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 vLLM para la inferencia de modelos, combine esta solicitud de extracción en su código base de vLLM: vllm-project/vllm#4650.
desde transformadores importe AutoTokenizer desde vllm importe 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": "usuario", "contenido": "¿Quién eres?"}], [{"role": "user", "content": "Traducir el siguiente contenido directamente al chino: DeepSeek-V2 adopta arquitecturas innovadoras para garantizar una capacitación económica y una inferencia eficiente."}], [{"role": "usuario", "content": "Escribe un fragmento de código de clasificación rápida en C++."}], ]prompt_token_ids = [tokenizer.apply_chat_template(messages, add_generación_prompt=True) para mensajes en message_list]outputs = llm.generate(prompt_token_ids=prompt_token_ids, sampling_params=sampling_params)generated_text = [output.outputs[0].texto para salida en salidas]print (texto_generado)
Dado que nuestra API es compatible con OpenAI, puede usarla fácilmente en langchain. Aquí hay un ejemplo:
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 repositorio de código tiene la licencia MIT. El uso de los modelos DeepSeek-V2 Base/Chat está sujeto a la Licencia del modelo. La serie DeepSeek-V2 (incluidos Base y Chat) admite 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} }
Si tiene alguna pregunta, plantee un problema o contáctenos en [email protected].