Llama2-7B cuantificado con MLC LLM en la Jetson
Introducción
En los últimos años, LLM's como GPT-3 han revolucionado las tareas de procesamiento del lenguaje natural. Sin embargo, la mayoría de estos modelos están entrenados en conjuntos de datos a gran escala, que requieren potentes recursos informáticos y no son adecuados para su implementación en dispositivos de borde. Para abordar este problema, los investigadores han desarrollado técnicas de cuantificación para comprimir modelos grandes en otros más pequeños sin sacrificar el rendimiento.
En este proyecto, presentamos una versión cuantificada de Llama2-7B, un LLM entrenado con 1,5 TB de datos, y lo implementamos en la Jetson Orin. También aprovechamos el módulo de LLM del compilador de aprendizaje automático(MLC LLM) para acelerar la velocidad de inferencia del modelo. Al implementar Llama2-7B cuantificado con MLC LLM en la Jetson Orin NX, los desarrolladores pueden crear potentes aplicaciones de procesamiento de lenguaje natural que ofrecen alta precisión y baja latencia en dispositivos de borde.

Componentes de Hardware
reComputer(U otros dispositivos basados en Jetson) |
---|
![]() |
Instalación de 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 correr contenedor
Primer paso: instalar imágen
./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 cuantificar 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 e ingresar a la ventana acoplable
./run.sh <YOUR IMAGE NAME>
#for me dustynv/mlc:51fb0f4-builder-r35.4.1 check result of first step
Ejecutar el programa
ejecutar Llama sin cuantificar sin MLC LLM cuantificado
cd /data/MLC-LLM-on-Jetson && python3 Llama-2-7b-chat-hf.py
Puedes ver sin cuantificar con MLC, Jetson Nano de 16GB puede cargar el modelo pero no puede ejecutarlo.
ejecutar Llama con cuantificación con MLC LLM cuantificado
cd /data/MLC-LLM-on-Jetson && python3 Llama-2-7b-chat-hf-q4f16_ft.py
El resultado se muestra a continuación:
Video de cómo ejecutar Llama con MLC en la Jetson Orin NX 16GB:
Perspectivas del proyecto
En este proyecto, hemos demostrado cómo implementar una versión cuantificada de Llama2-7B con MLC LLM en la Jetson Orin. Con las potentes capacidades informáticas de la Jetson Orin, los desarrolladores pueden crear aplicaciones de procesamiento de lenguaje natural que ofrezcan alta precisión y baja latencia en dispositivos periféricos. En el futuro, continuaremos explorando el potencial de implementar LLM's en dispositivos de borde y desarrollaremos métodos de implementación más eficientes y optimizados.