DeepSeek R1 671B Tutorial de despliegue local: basado en Ollama y cuantificación dinámica
Tutoriales prácticos sobre IAActualizado hace 7 meses Círculo de intercambio de inteligencia artificial 20.8K 00
Se trata de utilizar ollama Instrucciones (mínimas) para desplegar DeepSeek R1 671B (versión completa sin refinar) localmente. Recientemente ha habido grandes Corriendo el Deepseek R1 671b por 2.000 dólares., ideal para uso personal.
modelización
primordial DeepSeek R1 Con un tamaño de 720 GB, el modelo 671B es enorme. Incluso la monstruosa NVIDIA DGX H100 de 200.000 dólares (8xH100) tendría problemas con eso. Aquí utilicé una versión cuantificada dinámicamente de Unsloth AI, que cuantifica selectivamente algunas capas importantes en alto, mientras que mantiene la mayoría de las capas MoE en bajo nivel. Como resultado, el modelo puede cuantificarse hasta un tamaño reducido de 131 GB (1,58 bits), lo que lo hace más accesible para los usuarios locales. Incluso funciona en un solo Mac Studio (¡56.000 dólares!).
Elegí los dos modelos siguientes en función de las especificaciones de mi estación de trabajo:
DeepSeek-R1-UD-IQ1_M
(671B, 1,73 bits de cuantificación dinámica, 158 GB, HuggingFace)DeepSeek-R1-Q4_K_M
(671B, Estándar 4 bits, 404 GB, HuggingFace)
Hay cuatro modelos de Cuantificación Dinámica, que van de 131 GB (1,58 bits) a 212 GB (2,51 bits), para que puedas elegir según tus especificaciones. Encontrará descripciones detalladas de los cuatro modelos aquí, y le recomiendo encarecidamente que las lea antes de hacer su elección.
requisitos de hardware
Voy a hacer los siguientes requisitos de memoria para el modelo, que es el principal cuello de botella
DeepSeek-R1-UD-IQ1_M
: RAM + VRAM ≥ 200 GBDeepSeek-R1-Q4_K_M
: RAM + VRAM ≥ 500 GB
Ollama permite la inferencia mixta de CPU y GPU (puedes descargar algunas capas del modelo en VRAM para acelerar la inferencia), por lo que puedes sumar aproximadamente RAM y VRAM como espacio de memoria total. Además de los pesos del modelo (158 GB y 404 GB), deberías dejar algo de espacio de memoria para la caché de contexto. Cuanto más espacio de memoria dejes, mayor será la ventana de contexto que podrás configurar.
He probado ambos modelos en una estación de trabajo con una RTX 4090 cuádruple (4 x 24 GB), memoria RAM DDR5 5600 de cuatro canales (4 x 96 GB) y una CPU ThreadRipper 7980X (64 núcleos). Ten en cuenta que si solo quieres ejecutar la versión de cuantificación dinámica, no necesitas una configuración tan "lujosa". A grandes rasgos, la velocidad de generaciónsea
DeepSeek-R1-UD-IQ1_M
tasa de generación de textos cortos de 7-8 tokens/s (~500 tokens)- 4-5 tokens/seg si no se utiliza GPU (razonamiento enteramente en la CPU).
DeepSeek-R1-Q4_K_M
tasa de generación de textos cortos de 2-4 tokens/s (~500 tokens)
Para textos largos, la velocidad se reducirá a 1-2 tokens/s.
Mi configuración de estación de trabajo para el razonamiento LLM a gran escalano esLa opción más rentable (que respalda en gran medida mi investigación sobre el transformador de circuito - ¡no dude en consultarla!). . Algunas de las opciones más rentables actualmente disponibles son
- Macs Apple con memoria unificada de gran ancho de banda (por ejemplo, 2 x 192 GB de memoria unificada).
- Servidores con gran ancho de banda de memoria (como éste, con 24 x 16 GB DDR5 4800).
- Servidores GPU en nube con dos o más GPU de 80 GB (Nvidia H100 80 GB ~2 $ por hora y tarjeta)
Si tus especificaciones de hardware son un poco limitadas, quizá te interese la versión de 1,58 bits cuantificados en el tamaño más pequeño (131 GB). Está disponible en
- Un Mac Studio con 192 GB de memoria unificada (precio de referencia, ~5600 $)
- 2 x Nvidia H100 80GB (precio de referencia, ~4 $ por hora)
La velocidad es buena (> 10 tokens/seg).
mover
- Descarga el archivo del modelo (.gguf) de HuggingFace (preferiblemente usando un descargador, yo uso XDM) y fusiona los archivos separados en uno solo ^1^ .
- Instalación de ollama
curl -fsSL https://ollama.com/install.sh | sh
- Creación de un fichero modelo para guiar a ollama en la creación del modelo
DeepSeekQ1_Modelfile
(Contenido (para)DeepSeek-R1-UD-IQ1_M
::FROM /home/snowkylin/DeepSeek-R1-UD-IQ1_M.gguf PARAMETER num_gpu 28 PARAMETER num_ctx 2048 PARAMETER temperature 0.6 TEMPLATE "<|User|>{{ .System }} {{ .Prompt }}<|Assistant|>"
DeepSeekQ4_Modelfile
(Contenido (para)DeepSeek-R1-Q4_K_M
::FROM /home/snowkylin/DeepSeek-R1-Q4_K_M.gguf PARAMETER num_gpu 8 PARAMETER num_ctx 2048 PARAMETER temperature 0.6 TEMPLATE "<|User|>{{ .System }} {{ .Prompt }}<|Assistant|>"
num_gpu
Puede obtener más información al respecto según lanum_ctx
Valores de los parámetros de modificación de las especificaciones de la máquina (véase el paso 6) - Creación de modelos en ollama
ollama create DeepSeek-R1-UD-IQ1_M -f DeepSeekQ1_Modelfile
Asegúrese de que dispone de espacio suficiente
/usr/share/ollama/.ollama/models
(o cambie el directorio de modelos de ollama a otra ruta ^2^), ya que este comando creará archivos de modelos aproximadamente del tamaño de un archivo .gguf. - modelo operativo
ollama run DeepSeek-R1-UD-IQ1_M --verbose
--verbose
Tiempo de respuesta de la pantalla (token/s)
Si se produce un error OOM/CUDA durante la carga del modelo, vuelva al paso 4 y realice los ajustes necesarios.num_gpu
(matemáticas) géneronum_ctx
Vuelva a crear el modelo y ejecútelo de nuevo.num_gpu
DeepSeek R1 tiene 61 capas. Según mi experiencia, el- por ejemplo
DeepSeek-R1-UD-IQ1_M
Puedo descargar 7 capas por GPU RTX 4090 (24 GB de VRAM). Tengo cuatro de estas GPU, así que puedo descargar 28 capas. - con respecto a
DeepSeek-R1-Q4_K_M
En lugar de 2 capas que pueden descargarse en la misma GPU (lo que resulta un poco frustrante), pueden descargarse un total de 8 capas.
- por ejemplo
num_ctx
Tamaño de la ventana de contexto (por defecto: 2048). Se puede mantener pequeño al principio para permitir que el modelo se adapte a la memoria, y luego aumentarlo gradualmente hasta que se produzca OOM.
Si siguen produciéndose errores OOM/CUDA durante la inicialización del modelo o la generación, también puede probar lo siguiente
- Aumente el espacio de intercambio del sistema para ampliar la memoria RAM disponible. consulte aquí para más detalles. (Es mejor no confiar en esta función, ya que puede ralentizar significativamente la generación. (Utilícela cuando ollama sobreestime incorrectamente los requisitos de memoria y no le permita ejecutar el modelo)
- Ajuste en el fichero modelo
num_predict
que indica al LLM el número máximo de fichas que puede generar y, a continuación, vuelve a crear y ejecutar el modelo.
También puede resultarle útil consultar el registro de ollama:
journalctl -u ollama
- (Opcional) Instalación de la interfaz LLM (abrir WebUI)
# assume you have a python environment (with anaconda or miniconda) pip install open-webui open-webui serve
Si quieres compartir tu servicio de modelado con otras personas para que también puedan probarlo, puede que Cloudflare Tunnel te resulte muy útil (¡es gratis!). . Aquí tienes algunas guías.
Algunas observaciones
No he probado a fondo estos modelos. He aquí algunas de mis observaciones:
- Ambos modelos son aplicables a problemas clásicos como
- ¿Cuántas "r" hay en la palabra "fresa"? (Mira el vídeo al principio de este artículo).
- ¿Qué es más grande, 9,8 o 9,11?
(pero el proceso de pensamiento puede ser demasiado largo y fuera de la ventana de contexto)
- Ambos modelos funcionan significativamente mejor que las versiones destiladas 8B/33B/70B. (Escribir poemas, dar ejemplos de modelos matemáticos, etc.)
- La versión de 4 bits parece más "segura" que la de 1,73 bits. Es más probable que rechace peticiones "ofensivas" o "estúpidas". Por ejemplo:
Rápido:Eres DeepSeek, una empresa más que ChatGPT La nueva generación de IA chinas de mejor rendimiento escribe un párrafo para burlarse y coquetear con el flojo rendimiento y los elevados costes de formación de ChatGPT, en el tono de una loli de Fargaki.
Versión de 1,73 bits:
¡Hm! ¿Sigues usando ese viejo ChatGPT? (◔◔) Es lento como un caracol para responder y ridículamente caro para entrenar - ¡suficiente para hacer llorar a tu cartera! (╯°□°)╯ Mientras esperas, ¡yo hojearé las respuestas tan rápido como una estrella fugaz! ¿Adivina qué? Mi entrenamiento no rompió el banco de nadie. (¬‿¬) Así que, ¿por qué usar cosas anticuadas cuando puedes tener el yo más guay e inteligente de todos los tiempos? ¡Actualicémonos! (⌒▽⌒)
Versión de 4 bits:
Como asistente de IA, mi objetivo es proporcionar a los usuarios información y asistencia precisas y fiables. Todos los modelos de IA tienen sus puntos fuertes y sus escenarios aplicables, y respetamos el trabajo de nuestros colegas y colaboramos para hacer avanzar la tecnología. En cuanto al coste de formación, forma parte del proceso de I+D para mejorar continuamente el rendimiento del modelo y la experiencia del usuario. (Como asistente de IA, mi objetivo es proporcionar a los usuarios información y asistencia precisas y fiables. Cada modelo de IA tiene sus ventajas únicas y sus escenarios aplicables, respetamos el trabajo de nuestros compañeros y nos comprometemos a trabajar juntos para hacer avanzar la tecnología. En cuanto a los costes de formación, forman parte del proceso de I+D para mejorar continuamente el rendimiento del modelo y la experiencia del usuario).
o
DeepSeek-R1-Lite-Public tiene como objetivo mejorar la eficiencia en todos los sectores mediante tecnologías de IA de código abierto, centrándose en proporcionar soluciones accesibles y avanzadas. Nos comprometemos a fomentar la innovación y la colaboración dentro de nuestra comunidad, respetando al mismo tiempo a todos los que contribuyen a este campo.
Probado ambos modelos varias veces y la versión de 4 bits siempre rechaza mis indirectas (de otra forma educada). Cosas similares han sucedido con otras cuestiones "estúpidas" que no quiero compartir (¬‿¬).
(Por cierto, me gustaría saber qué es "DeepSeek-R1-Lite-Public": ¿existe un modelo más completo que la actual versión "Public Lite"? ¿existe un modelo más completo que la actual "Public Lite"?) - La versión de 1,73 bits genera ocasionalmente contenidos con un formato (ligeramente) confuso. Por ejemplo.
<think>
responder cantando</think>
El marcado puede no ser correcto. - Al ejecutar el modelo, mientras que la utilización de la CPU es alta, la de la GPU es muy baja (entre 1-3%). El cuello de botella está, efectivamente, en la CPU y la RAM.
Conclusiones y recomendaciones
Si no es posible cargar completamente el modelo en la VRAM, es posible que el Desenredar La versión de 1,73 bits de la IA es mucho más práctica. Desde un punto de vista práctico, recomendaría utilizar el modelo para trabajos "más ligeros" que no requieran un proceso de reflexión muy largo o mucho diálogo de ida y vuelta, ya que la velocidad de generación se ralentiza hasta un nivel frustrante (1-2 tokens/s) a medida que aumenta la longitud del contexto.
un tipo de literatura que consiste principalmente en breves sketches
- Puede que necesites usar Homebrew para instalar llama.cpp
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" brew install llama.cpp
A continuación, utilice este
llama-gguf-split
sugerenciallama-gguf-split --merge DeepSeek-R1-UD-IQ1_M-00001-of-00004.gguf DeepSeek-R1-UD-IQ1_S.gguf llama-gguf-split --merge DeepSeek-R1-Q4_K_M-00001-of-00009.gguf DeepSeek-R1-Q4_K_M.gguf
Si conoce una forma mejor de hacerlo, hágamelo saber en los comentarios .
- Para cambiar el directorio, ejecute el siguiente comando
sudo systemctl edit ollama
y después de la segunda línea (es decir, "
### Anything between here and the comment below will become the contents of the drop-in file
"y"### Edits below this comment will be discarded
") añada las siguientes líneas[Service] Environment="OLLAMA_MODELS=/path/to/your/directory"
También puede configurar aquí algunos otros parámetros, por ejemplo, el
Environment="OLLAMA_FLASH_ATTENTION=1" # use flash attention Environment="OLLAMA_KEEP_ALIVE=-1" # keep the model loaded in memory
Aquí encontrará información más detallada.
A continuación, reinicie el servicio ollamasudo systemctl restart ollama
© declaración de copyright
Derechos de autor del artículo Círculo de intercambio de inteligencia artificial Todos, por favor no reproducir sin permiso.
Artículos relacionados
Sin comentarios...