Skip to main content

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

pir

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

pir

Vamos a ejecutarlo

ejecutar Llama sin cuantizar sin MLC LLM cuantizado

cd /data/MLC-LLM-on-Jetson && python3 Llama-2-7b-chat-hf.py 

pir

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:

pir

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.

Loading Comments...