? Modelos en la cara abrazada | Blog |
Estamos desatando el poder de los grandes modelos lingüísticos. Nuestra última versión de Llama ahora está disponible para individuos, creadores, investigadores y empresas de todos los tamaños para que puedan experimentar, innovar y escalar sus ideas de manera responsable.
Esta versión incluye pesos de modelo y código inicial para modelos de lenguaje Llama 3 previamente entrenados y ajustados por instrucciones, incluidos tamaños de parámetros de 8B a 70B.
Este repositorio pretende ser un ejemplo mínimo de cómo cargar un modelo Llama 3 y ejecutar inferencia. Consulte recetas de llamas para obtener ejemplos más detallados.
Para descargar los pesos del modelo y el tokenizador, visite el sitio web de Meta Llama y acepte nuestro acuerdo de licencia.
Después de enviar su solicitud, recibirá una URL firmada por correo electrónico. Luego ejecute el script download.sh, pasando la URL proporcionada cuando se le solicite iniciar la descarga.
Requisito previo: asegúrese de tener instalados wget
y md5sum
. Luego ejecute el script: ./download.sh
.
Tenga en cuenta que el enlace caducará después de 24 horas y una determinada cantidad de descargas. Si empiezas a ver errores como 403: Forbidden
, siempre puedes volver a solicitar el enlace.
También ofrecemos descargas en Hugging Face, incluidos transformadores y formatos nativos llama3
. Para descargar pesas de Hugging Face, siga estos pasos:
original
. También puedes descargarlos desde la línea de comando si instalaste pip install huggingface-hub
: huggingface-cli download meta-llama/Meta-Llama-3-8B-Instruct --include " original/* " --local-dir meta-llama/Meta-Llama-3-8B-Instruct
import transformers
import torch
model_id = "meta-llama/Meta-Llama-3-8B-Instruct"
pipeline = transformers . pipeline (
"text-generation" ,
model = "meta-llama/Meta-Llama-3-8B-Instruct" ,
model_kwargs = { "torch_dtype" : torch . bfloat16 },
device = "cuda" ,
)
Puede comenzar a utilizar rápidamente el modelo Llama 3 siguiendo los pasos a continuación. Estos pasos le permitirán realizar inferencias rápidas localmente. Para ver más ejemplos, consulte el repositorio de recetas de Llama.
Clona y descarga este repositorio en un entorno conda con PyTorch/CUDA instalado.
Ejecute en el directorio superior:
pip install -e .
Visita el sitio web de Meta Llama y regístrate para descargar modelos.
Después de registrarte, recibirás un correo electrónico con la URL para descargar el modelo. Necesitará esta URL cuando ejecute el script download.sh.
Una vez que reciba el correo electrónico, navegue hasta el repositorio de llama que descargó y ejecute el script download.sh.
Después de descargar el modelo requerido, puede ejecutar el modelo localmente usando el siguiente comando:
torchrun --nproc_per_node 1 example_chat_completion.py
--ckpt_dir Meta-Llama-3-8B-Instruct/
--tokenizer_path Meta-Llama-3-8B-Instruct/tokenizer.model
--max_seq_len 512 --max_batch_size 6
Aviso
Meta-Llama-3-8B-Instruct/
con la ruta del directorio de su punto de control y Meta-Llama-3-8B-Instruct/tokenizer.model
con la ruta del modelo de su tokenizador.–nproc_per_node
debe establecerse en el valor MP del modelo que está utilizando.max_seq_len
y max_batch_size
según sea necesario.Diferentes modelos requieren diferentes valores de paralelismo del modelo (MP):
Modelo | diputado |
---|---|
8B | 1 |
70B | 8 |
Todos los modelos admiten longitudes de secuencia de hasta 8192 tokens, pero asignamos previamente el caché en función de los valores de max_seq_len
y max_batch_size
. Por lo tanto, configura estos valores según tu hardware.
Estos modelos no están optimizados para chatear o preguntas y respuestas. Las indicaciones deben configurarse de manera que la respuesta esperada sea una continuación natural de la indicación.
Consulte example_text_completion.py
para ver algunos ejemplos. A modo de ilustración, consulte el siguiente comando para ejecutarlo utilizando el modelo llama-3-8b ( nproc_per_node
debe configurarse en MP
):
torchrun --nproc_per_node 1 example_text_completion.py --ckpt_dir Meta-Llama-3-8B/ --tokenizer_path Meta-Llama-3-8B/tokenizer.model --max_seq_len 128 --max_batch_size 4
Los modelos ajustados están entrenados para aplicaciones conversacionales. Para obtener las características y el rendimiento esperados, deben seguir un formato específico definido en ChatFormat
: los mensajes comienzan con el token especial <|begin_of_text|>
, seguido de uno o más mensajes. Cada mensaje comienza con la etiqueta <|start_header_id|>
, tiene el rol de system
, user
o assistant
y termina con la etiqueta <|end_header_id|>
. Después de la doble nueva línea nn
nsigue el contenido del mensaje. El final de cada mensaje está marcado por el token <|eot_id|>
.
También puede implementar clasificadores adicionales para filtrar las entradas y salidas que se consideren inseguras. Vea un ejemplo en el repositorio llama-recipes sobre cómo agregar verificadores de seguridad a la entrada y salida de su código de inferencia.
Ejemplo usando llama-3-8b-chat:
torchrun --nproc_per_node 1 example_chat_completion.py --ckpt_dir Meta-Llama-3-8B-Instruct/ --tokenizer_path Meta-Llama-3-8B-Instruct/tokenizer.model --max_seq_len 512 --max_batch_size 6
Llama 3 es una tecnología nueva y conlleva riesgos potenciales. Las pruebas realizadas hasta ahora no cubren (ni pueden cubrir) todas las situaciones. Para ayudar a los desarrolladores a abordar estos riesgos, hemos creado Pautas de uso responsable.
Informe "errores" de software u otros problemas con el modelo mediante uno de los siguientes métodos:
Consulte MODEL_CARD.md.
Nuestros modelos y pesas tienen licencia para investigadores y entidades comerciales, adhiriéndose a principios abiertos. Nuestra misión es empoderar a las personas y las industrias a través de esta oportunidad y al mismo tiempo promover un entorno de descubrimiento y avance ético de la IA.
Revise el documento de LICENCIA, así como nuestra Política de uso aceptable.
Para preguntas frecuentes, las preguntas frecuentes se pueden encontrar aquí https://llama.meta.com/faq, y se actualizarán continuamente a medida que surjan nuevas preguntas.