Llama2-7B Cuantizado con MLC LLM en Jetson
Introducción
En los últimos años, los modelos de lenguaje grandes como GPT-3 han revolucionado las tareas de procesamiento de lenguaje natural. Sin embargo, la mayoría de estos modelos están entrenados en conjuntos de datos a gran escala, que requieren recursos computacionales potentes y no son adecuados para el despliegue en dispositivos edge. Para abordar este problema, los investigadores han desarrollado técnicas de cuantización para comprimir modelos grandes en otros más pequeños sin sacrificar el rendimiento.
En este proyecto, introducimos una versión cuantizada de Llama2-7B, un modelo de lenguaje grande entrenado en 1.5TB de datos, y lo desplegamos en el Jetson Orin. También aprovechamos el Machine Learning Compiler Large Language Modle(MLC LLM) para acelerar la velocidad de inferencia del modelo. Al desplegar el Llama2-7B cuantizado con MLC LLM en el Jetson Orin NX, los desarrolladores pueden construir aplicaciones potentes de procesamiento de lenguaje natural que ofrecen alta precisión y baja latencia en dispositivos edge.

Componentes de hardware
reComputer(O otros dispositivos basados en Jetson) |
---|
![]() |
Instalar dependencias
sudo apt-get update && sudo apt-get install git python3-pip
git clone --depth=1 https://github.com/dusty-nv/jetson-containers
cd jetson-containers pip3 install -r requirements.txt
cd ./data && git clone https://github.com/LJ-Hao/MLC-LLM-on-Jetson-Nano.git && cd ..
Instalar y ejecutar contenedor
primer paso: instalar imagen
./run.sh --env HUGGINGFACE_TOKEN=<YOUR-ACCESS-TOKEN> $(./autotag mlc) /bin/bash -c 'ln -s $(huggingface-downloader meta-llama/Llama-2-7b-chat-hf) /data/models/mlc/dist/models/Llama-2-7b-chat-hf'
usa sudo docker images
para verificar si la imagen está instalada o no
segundo paso: Instalar Llama2-7b-chat-hf y Usar MLC para cuantizar el modelo
./run.sh $(./autotag mlc) \
python3 -m mlc_llm.build \
--model Llama-2-7b-chat-hf \
--quantization q4f16_ft \
--artifact-path /data/models/mlc/dist \
--max-seq-len 4096 \
--target cuda \
--use-cuda-graph \
--use-flash-attn-mqa
Tercer paso: Ejecutar y entrar a docker
./run.sh <YOUR IMAGE NAME>
#para mí dustynv/mlc:51fb0f4-builder-r35.4.1 verificar resultado del primer paso
Vamos a ejecutarlo
ejecutar Llama sin cuantizar sin MLC LLM cuantizado
cd /data/MLC-LLM-on-Jetson && python3 Llama-2-7b-chat-hf.py
puedes ver que sin cuantizar con MLC, Jetson Nano 16GB puede cargar el modelo pero no puede ejecutarse.
ejecutar Llama con cuantización con MLC LLM cuantizado
cd /data/MLC-LLM-on-Jetson && python3 Llama-2-7b-chat-hf-q4f16_ft.py
aquí está el resultado:
Video de ejecutar Llama con MLC en Jetson Orin NX 16GB
Perspectivas del Proyecto
En este proyecto, hemos demostrado cómo desplegar una versión cuantizada de Llama2-7B con MLC LLM en el Jetson Orin. Con las potentes capacidades computacionales del Jetson Orin, los desarrolladores pueden construir aplicaciones de procesamiento de lenguaje natural que ofrecen alta precisión y baja latencia en dispositivos edge. En el futuro, continuaremos explorando el potencial de desplegar modelos de lenguaje grandes en dispositivos edge y desarrollar métodos de despliegue más eficientes y optimizados.