Chitu (Red Rabbit): el equipo de Tsinghua lanza un marco de razonamiento de alto rendimiento basado en grandes modelos lingüísticos

吐司AI

Introducción general

Chitu es un marco de razonamiento de código abierto desarrollado por el equipo PACMAN de la Universidad de Tsinghua, llamado "Red Rabbit", que está especialmente diseñado para ejecutar grandes modelos lingüísticos. Chitu es compatible con una gran variedad de hardware, como las GPU de NVIDIA y los chips domésticos, y puede utilizarse desde de forma autónoma hasta en clústeres a gran escala.Su punto fuerte es la inferencia con modelos FP8, que puede reducir drásticamente los costes, como la ejecución de DeepSeek-671B en un A800, que utiliza la mitad de GPU y es más de 3 veces más rápido que vLLM.El código está disponible públicamente en GitHub y puede ser descargado y utilizado gratuitamente por empresas o particulares. Se trata de una herramienta lista para usar en entornos de producción y es adecuada para equipos que quieren ahorrar dinero pero también quieren rendimiento.

Chitu(赤兔):清华团队推出的高性能大语言模型推理框架

 

Lista de funciones

  • Admite la inferencia de modelos FP8 y BF16, y puede funcionar en GPU antiguas y chips domésticos con bajo coste y alto rendimiento.
  • Se adapta a una amplia gama de hardware, desde CPU puras a GPU como NVIDIA A800, H20, etc., hasta clusters a gran escala.
  • Optimice la velocidad de inferencia con CUDA Graph para obtener resultados más rápidos en una sola solicitud.
  • Proporciona una interfaz de servicio que permite invocar modelos directamente a través de peticiones HTTP.
  • Admite el razonamiento distribuido multinodo, adecuado para el procesamiento de tareas de gran volumen.
  • Código fuente abierto que las empresas pueden modificar u optimizar según sus necesidades.

 

Utilizar la ayuda

Proceso de instalación

La instalación de Chitu no es complicada, pero requiere cierta preparación. A continuación se detallan los pasos a seguir:

  1. Preparar el entorno
    • Sistema: se recomienda Ubuntu 22.04, máquina con GPU NVIDIA (por ejemplo, A800 o H20).
    • Software: Instala Git, Python 3.10, CUDA 12.1 (ajustado a la versión de tu GPU), PyTorch 2.1.
    • Ejemplo de comando:
      sudo apt update && sudo apt install -y git python3.10 python3-pip
      pip install -U torch==2.1 --index-url https://download.pytorch.org/whl/cu121
      
  2. Descargar código
    • Clona el código de Chitu localmente usando Git:
      git clone --recursive https://github.com/thu-pacman/chitu
      cd chitu
      
  3. Instalación de dependencias
    • Instale los paquetes Python necesarios y el entorno de compilación:
      pip install -r requirements-build.txt
      pip install flash-attn
      
  4. compilar e instalar
    • Configura los parámetros de compilación (ajusta TORCH_CUDA_ARCH_LIST según tu GPU, por ejemplo 8.0 para A800) y compila:
      TORCH_CUDA_ARCH_LIST=8.0 CHITU_SETUP_JOBS=4 MAX_JOBS=4 pip install --no-build-isolation .
      
  5. Comprobación de la instalación
    • Haz una prueba para asegurarte de que está bien:
      torchrun --nproc_per_node 1 test/single_req_test.py
      

Cómo utilizarlo

Una vez cargado Chitu, puede iniciar el servicio desde la línea de comandos o ejecutar una única prueba. He aquí cómo hacerlo:

Iniciar el servicio de razonamiento

  1. Configuración de las rutas del modelo
    • Prepare los archivos del modelo, por ejemplo DeepSeek-R1, en un directorio local (por ejemplo /data/DeepSeek-R1).
    • en el comando de edición models.ckpt_dir El parámetro señala la trayectoria del modelo.
  2. Inicio de los servicios
    • Inicie el servicio independiente con torchrun, escuchando en el puerto 21002:
      export WORLD_SIZE=1
      torchrun --nproc_per_node 1 chitu/serve.py \
      serve.port=21002 \
      models=DeepSeek-R1 \
      models.ckpt_dir=/data/DeepSeek-R1 \
      infer.use_cuda_graph=True \
      request.max_new_tokens=100
      
  3. Servicios de pruebas
    • Envía una petición con curl y comprueba si el modelo responde correctamente:
      curl localhost:21002/v1/chat/completions \
      -H "Content-Type: application/json" \
      -d '{"messages": [{"role": "user", "content": "你好,Chitu 是什么?"}]}'
      
    • El resultado devuelto estará en formato JSON y contendrá la respuesta del modelo.

Ejecutar un test de razonamiento único

  • Si no desea iniciar el servicio, puede limitarse a probar la salida del modelo:
    torchrun --nproc_per_node 1 test/single_req_test.py \
    models=DeepSeek-R1 \
    models.ckpt_dir=/data/DeepSeek-R1 \
    request.max_new_tokens=64
  • La salida se muestra en el terminal, indicándole lo que ha generado el modelo.

Razonamiento distribuido multinodo

  1. Preparar varias máquinas
    • Asegúrese de que Chitu y las dependencias se cargan en cada máquina y de que los archivos del modelo están en un almacenamiento compartido.
  2. Inicio de los servicios distribuidos
    • Ejecútalo en 2 máquinas con 8 GPUs cada una:
      torchrun --nnodes 2 --nproc_per_node 8 test/single_req_test.py \
      request.max_new_tokens=64 \
      infer.pp_size=2 \
      infer.tp_size=8 \
      models=DeepSeek-R1 \
      models.ckpt_dir=/data/DeepSeek-R1
      
  3. Comprobar el efecto
    • Tras una ejecución en varios nodos, el resultado será más rápido que en una sola máquina, lo que resulta adecuado para gestionar peticiones de gran volumen.

Función destacada Operación

Ahorre dinero y rapidez con los modelos FP8

  • Chitu admite modelos en formato FP8, que utilizan menos GPU y son más rápidos que BF16.
  • Funcionamiento: Añadir al inicio infer.soft_fp8=TruePor ejemplo, si el modelo está en formato FP8, el modelo debe estar en formato FP8. Por ejemplo:
    torchrun --nproc_per_node 1 chitu/serve.py \
    serve.port=21002 \
    models=DeepSeek-R1 \
    models.ckpt_dir=/data/DeepSeek-R1 \
    infer.soft_fp8=True
    

Aceleración con CUDA Graph

  • Las solicitudes individuales pueden acelerarse con CUDA Graph, añadiendo el parámetro infer.use_cuda_graph=True.
  • Efecto de prueba: ejecute una única inferencia y compare la diferencia de velocidad con y sin la adición.

pruebas de rendimiento

  • Chitu incluye herramientas de evaluación comparativa para medir el rendimiento y la latencia:
    python benchmarks/benchmark_serving.py \
    --model "deepseek-r1" \
    --iterations 10 \
    --seq-len 10 \
    --base-url http://localhost:21002
    
  • El resultado mostrará el número de ficha para ayudarle a optimizar su asignación.

advertencia

  • Si utilizas varios nodos, la red tiene que ser estable o se caerá.
  • Una memoria GPU insuficiente puede provocar un error OOM, bájela. infer.max_seq_len o con menos nodos.
  • La compatibilidad con chips domésticos aún está en proceso de optimización, puede que sea necesario cambiar el código para adaptarlo.

Chitu no es difícil de usar, sólo tienes que seguir los pasos y estarás listo. Su documentación y comunidad también están en GitHub, así que puedes plantear una incidencia si tienes dudas.

© declaración de copyright
AiPPT

Artículos relacionados

Sin comentarios

ninguno
Sin comentarios...