El repositorio de 'Llama-Recipes' es un compañero de los modelos Meta Llama. Apoyamos la última versión, Llama 3.2 Vision and Llama 3.2 Text, en este repositorio. Este repositorio contiene scripts de ejemplo y cuadernos para comenzar con los modelos en una variedad de casos de uso, incluido el ajuste fino para la adaptación de dominio y las aplicaciones basadas en LLM con LLAMA y otras herramientas en el ecosistema LLM. Los ejemplos aquí usan LLAMA localmente, en la nube y en el proceso.
Consejo
Comience con Llama 3.2 con estas nuevas recetas:
Nota
Llama 3.2 sigue la misma plantilla de inmediato que Llama 3.1, con un nuevo token especial <|image|> que representa la imagen de entrada para los modelos multimodales.
Se pueden encontrar más detalles sobre las plantillas de solicitud para el razonamiento de imágenes, la llamada de herramientas e intérprete de código en el sitio web de documentación.
recipes/src/Estas instrucciones le darán una copia del proyecto en funcionamiento en su máquina local para fines de desarrollo y prueba. Consulte la implementación de notas sobre cómo implementar el proyecto en un sistema en vivo.
Si desea usar Nightlies de Pytorch en lugar de la versión estable, vaya a esta guía para recuperar el parámetro --extra-index-url URL para los comandos pip install en su plataforma.
Llama-Recipes proporciona una distribución PIP para una fácil instalación y uso en otros proyectos. Alternativamente, se puede instalar desde la fuente.
Nota
Asegúrese de utilizar la versión CUDA correcta (de nvidia-smi ) al instalar las ruedas Pytorch. Aquí estamos usando 11.8 como cu118 . Las GPU H100 funcionan mejor con CUDA> 12.0
pip install llama-recipes
Llama-Recipes ofrece la instalación de paquetes opcionales. Hay tres grupos de dependencia opcionales. Para ejecutar las pruebas unitarias podemos instalar las dependencias requeridas con:
pip install llama-recipes[tests]
Para el ejemplo de VLLM, necesitamos requisitos adicionales que se puedan instalar con:
pip install llama-recipes[vllm]
Para usar los temas sensibles, la instalación del verificador de seguridad con:
pip install llama-recipes[auditnlg]
Algunas recetas requieren la presencia de Langchain. Para instalar los paquetes, siga la descripción de la receta o instale con:
pip install llama-recipes[langchain]
Las dependencias opcionales también se pueden combinar con [Opción1, opción2].
Para instalar desde la fuente, por ejemplo, para el desarrollo, use estos comandos. Estamos usando la cría como nuestro backend de compilación que requiere un paquete PIP actualizado y SetupTools.
git clone [email protected]:meta-llama/llama-recipes.git
cd llama-recipes
pip install -U pip setuptools
pip install -e .
Para el desarrollo y la contribución de los recipientes de llama, instale todas las dependencias opcionales:
git clone [email protected]:meta-llama/llama-recipes.git
cd llama-recipes
pip install -U pip setuptools
pip install -e .[tests,auditnlg,vllm]
Puede encontrar modelos de llama en abrazando a Face Hub aquí, donde los modelos con hf en el nombre ya se convierten para abrazar los puntos de control de la cara, por lo que no se necesita más conversión . El paso de conversión a continuación es solo para pesos del modelo original de Meta que también se alojan en el Hub Model Model Hub también.
Si tiene los puntos de control modelo descargados del meta sitio web, puede convertirlo en el formato de cara de abrazo con:
# # Install Hugging Face Transformers from source
pip freeze | grep transformers # # verify it is version 4.45.0 or higher
git clone [email protected]:huggingface/transformers.git
cd transformers
pip install protobuf
python src/transformers/models/llama/convert_llama_weights_to_hf.py
--input_dir /path/to/downloaded/llama/weights --model_size 3B --output_dir /output/path La mayor parte del código que trata sobre el uso de LLAMA está organizado en 2 carpetas principales: recipes/ y src/ .
recipes/Contiene ejemplos organizados en carpetas por tema:
| Subcarpeta | Descripción |
|---|---|
| inicio rápido | El "Hello World" de usar LLAMA, comience aquí si eres nuevo en usar LLAMA. |
| use_cases | Scripts que muestran aplicaciones comunes de Meta Llama3 |
| 3p_integraciones | Carpeta de propiedad asociada que muestra aplicaciones comunes de Meta Llama3 |
| responsable_ai | Scripts para usar Purplellama para proteger las salidas de los modelos |
| experimental | Implementaciones de metalama de técnicas LLM experimentales |
src/Contiene módulos que admiten las recetas de ejemplo:
| Subcarpeta | Descripción |
|---|---|
| configuraciones | Contiene los archivos de configuración para métodos PEFT, FSDP, conjuntos de datos, pesas y sesgos, seguimiento del experimento. |
| conjuntos de datos | Contiene scripts individuales para cada conjunto de datos para descargar y procesar. Nota |
| inferencia | Incluye módulos para la inferencia para los modelos ajustados. |
| model_checkpointing | Contiene controladores de punto de control FSDP. |
| políticas | Contiene scripts FSDP para proporcionar diferentes políticas, como precisión mixta, política de envoltura de transformadores y punto de control de activación junto con cualquier optimizador de precisión (utilizado para ejecutar FSDP con modo BF16 puro). |
| tensiones | Archivos de utilidad para: - train_utils.py proporciona bucle de capacitación/evaluación y más utilidades de trenes.- dataset_utils.py para obtener conjuntos de datos preprocesados.- config_utils.py para anular las configuraciones recibidas de CLI.- fsdp_utils.py proporciona una política de envoltura FSDP para métodos PEFT.- memory_utils.py Context Manager para rastrear diferentes estadísticas de memoria en el bucle de trenes. |
Las recetas y módulos en este repositorio admiten las siguientes características:
| Característica | |
|---|---|
| Soporte de HF para la inferencia | ✅ |
| Soporte de HF para Finetuning | ✅ |
| Peft | ✅ |
| Inicialización diferida (meta init) | ✅ |
| Modo CPU bajo para Multi GPU | ✅ |
| Precisión mixta | ✅ |
| Cuantificación de un solo nodo | ✅ |
| Atención | ✅ |
| Punta de control de activación FSDP | ✅ |
| Datos fragmentados híbridos paralelos (HSDP) | ✅ |
| Embalaje y relleno de conjuntos de datos | ✅ |
| BF16 Optimizer (puro BF16) | ✅ |
| Perfil y seguimiento de MFU | ✅ |
| Acumulación de gradiente | ✅ |
| Descarga de CPU | ✅ |
| Conversión de punto de control FSDP a HF para inferencia | ✅ |
| Rastreador de experimentos W&B | ✅ |
Lea Contriping.MD para obtener detalles sobre nuestro código de conducta y el proceso para enviarnos solicitudes de extracción.
Consulte el archivo de licencia para Meta Llama 3.2 aquí y Política de uso aceptable aquí
Consulte el archivo de licencia para Meta Llama 3.1 aquí y Política de uso aceptable aquí
Consulte el archivo de licencia para Meta Llama 3 aquí y Política de uso aceptable aquí
Consulte el archivo de licencia para Meta Llama 2 aquí y Política de uso aceptable aquí