Skip to main content

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

pir

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

pir

Ejecutar el programa

ejecutar Llama sin cuantificar sin MLC LLM cuantificado

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

pir

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:

pir

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.

Loading Comments...