Inferentia Trainium Deploy Llama 3.jpg

Hoy, nos complace anunciar la disponibilidad de la inferencia de Meta Llama 3 en Capacitación en AWS y AWS Inferencia instancias basadas en Inicio rápido de Amazon SageMaker. Los modelos Meta Llama 3 son una colección de modelos de texto generativo previamente entrenados y ajustados. Nube informática elástica de Amazon (Amazon EC2) Las instancias Trn1 e Inf2, impulsadas por AWS Trainium y AWS Inferentia2, proporcionan la forma más rentable de implementar modelos Llama 3 en AWS. Ofrecen un costo de implementación hasta un 50 % menor que las instancias Amazon EC2 comparables. No solo reducen el tiempo y los gastos involucrados en la capacitación y la implementación de grandes modelos de lenguaje (LLM), sino que también brindan a los desarrolladores un acceso más fácil a aceleradores de alto rendimiento para satisfacer las necesidades de escalabilidad y eficiencia de las aplicaciones en tiempo real, como los chatbots y la IA. asistentes.

En esta publicación, demostramos lo fácil que es implementar Llama 3 en instancias basadas en AWS Trainium y AWS Inferentia en SageMaker JumpStart.

Modelo Meta Llama 3 en SageMaker Studio

SageMaker JumpStart brinda acceso a archivos patentados y disponibles públicamente modelos de cimentación (FM). Los modelos Foundation son incorporados y mantenidos por proveedores propietarios y externos. Como tales, se publican bajo diferentes licencias según lo designado por la fuente del modelo. Asegúrese de revisar la licencia de cualquier FM que utilice. Usted es responsable de revisar y cumplir los términos de licencia aplicables y asegurarse de que sean aceptables para su caso de uso antes de descargar o utilizar el contenido.

Puede acceder a Meta Llama 3 FM a través de SageMaker JumpStart en el Amazon SageMaker Estudio consola y el SDK de SageMaker Python. En esta sección, repasamos cómo descubrir los modelos en SageMaker Studio.

SageMaker Studio es un entorno de desarrollo integrado (IDE) que proporciona una única interfaz visual basada en web donde puede acceder a herramientas diseñadas específicamente para realizar todos los pasos de desarrollo del aprendizaje automático (ML), desde la preparación de datos hasta la creación, el entrenamiento y la implementación de su ML. modelos. Para obtener más detalles sobre cómo comenzar y configurar SageMaker Studio, consulte Comience con SageMaker Studio.

En la consola de SageMaker Studio, puede acceder a SageMaker JumpStart eligiendo Buen inicio en el panel de navegación. Si está utilizando SageMaker Studio Classic, consulte Abra y use JumpStart en Studio Classic para navegar a los modelos SageMaker JumpStart.

Desde la página de inicio de SageMaker JumpStart, puede buscar «Meta» en el cuadro de búsqueda.

Elija la tarjeta de modelo Meta para enumerar todos los modelos de Meta en SageMaker JumpStart.

También puede encontrar variantes de modelos relevantes buscando «neurona». Si no ve los modelos de Meta Llama 3, actualice su versión de SageMaker Studio cerrando y reiniciando SageMaker Studio.

Implementación sin código del modelo Llama 3 Neuron en SageMaker JumpStart

Puede elegir la tarjeta del modelo para ver detalles sobre el modelo, como la licencia, los datos utilizados para entrenar y cómo usarlo. También puedes encontrar dos botones, Desplegar y Vista previa de cuadernosque le ayudarán a implementar el modelo.

cuando tu eliges Desplegar, aparece la página que se muestra en la siguiente captura de pantalla. La sección superior de la página muestra el acuerdo de licencia de usuario final (EULA) y la política de uso aceptable que usted debe reconocer.

Después de reconocer las políticas, proporcione la configuración de su punto final y elija Desplegar para implementar el punto final del modelo.

Alternativamente, puede implementar a través del cuaderno de ejemplo eligiendo Cuaderno abierto. El cuaderno de ejemplo proporciona orientación integral sobre cómo implementar el modelo para inferencia y limpieza de recursos.

Implementación de Meta Llama 3 en AWS Trainium y AWS Inferentia utilizando el SDK SageMaker JumpStart

En SageMaker JumpStart, hemos precompilado el modelo Meta Llama 3 para una variedad de configuraciones para evitar la compilación en tiempo de ejecución durante la implementación y el ajuste. El Preguntas frecuentes sobre el compilador de neuronas tiene más detalles sobre el proceso de compilación.

Hay dos formas de implementar Meta Llama 3 en instancias basadas en AWS Inferentia y Trainium utilizando el SDK SageMaker JumpStart. Puede implementar el modelo con dos líneas de código para simplificar o concentrarse en tener más control de las configuraciones de implementación. El siguiente fragmento de código muestra el modo de implementación más simple:

from sagemaker.jumpstart.model import JumpStartModel

model_id = "meta-textgenerationneuron-llama-3-8b"
accept_eula = True
model = JumpStartModel(model_id=model_id)
predictor = model.deploy(accept_eula=accept_eula) ## To set 'accept_eula' to be True to deploy 

Para realizar inferencias sobre estos modelos, es necesario especificar el argumento. accept_eula tan verdadero como parte del model.deploy() llamar. Esto significa que ha leído y aceptado el CLUF del modelo. El EULA se puede encontrar en la descripción de la tarjeta modelo o en https://ai.meta.com/resources/models-and-libraries/llama-downloads/.

El tipo de instancia predeterminado para Meta LIama-3-8B es ml.inf2.24xlarge. Los otros ID de modelo admitidos para la implementación son los siguientes:

  • meta-textgenerationneuron-llama-3-70b
  • meta-textgenerationneuron-llama-3-8b-instruct
  • meta-textgenerationneuron-llama-3-70b-instruct

SageMaker JumpStart tiene configuraciones preseleccionadas que pueden ayudarlo a comenzar, que se enumeran en la siguiente tabla. Para obtener más información sobre cómo optimizar aún más estas configuraciones, consulte configuraciones de implementación avanzadas

Instrucción LIama-3 8B y LIama-3 8B
tipo de instancia

OPTION_N_POSITI

ONS

OPTION_MAX_ROLLING_BATCH_SIZE OPTION_TENSOR_PARALLEL_DEGREE OPCIÓN_DTYPE
ml.inf2.8xgrande 8192 1 2 bf16
ml.inf2.24xlarge (predeterminado) 8192 1 12 bf16
ml.inf2.24xgrande 8192 12 12 bf16
ml.inf2.48xgrande 8192 1 24 bf16
ml.inf2.48xgrande 8192 12 24 bf16
Instrucción LIama-3 70B y LIama-3 70B
ml.trn1.32xgrande 8192 1 32 bf16
ml.trn1.32xgrande
(Por defecto)
8192 4 32 bf16

El siguiente código muestra cómo puede personalizar las configuraciones de implementación, como la longitud de la secuencia, el grado de paralelo del tensor y el tamaño máximo del lote continuo:

from sagemaker.jumpstart.model import JumpStartModel

model_id = "meta-textgenerationneuron-llama-3-70b"
model = JumpStartModel(
    model_id=model_id,
    env={
        "OPTION_DTYPE": "bf16",
        "OPTION_N_POSITIONS": "8192",
        "OPTION_TENSOR_PARALLEL_DEGREE": "32",
        "OPTION_MAX_ROLLING_BATCH_SIZE": "4", 
    },
    instance_type="ml.trn1.32xlarge"  
)
## To set 'accept_eula' to be True to deploy 
pretrained_predictor = model.deploy(accept_eula=False)

Ahora que ha implementado el modelo de neuronas Meta Llama 3, puede ejecutar inferencias a partir de él invocando el punto final:

payload = {
    "inputs": "I believe the meaning of life is",
    "parameters": {
        "max_new_tokens": 64,
        "top_p": 0.9,
        "temperature": 0.6,
    },
}

response = pretrained_predictor.predict(payload)

Output: 

I believe the meaning of life is
>  to be happy. I believe that happiness is a choice. I believe that happiness 
is a state of mind. I believe that happiness is a state of being. I believe that 
happiness is a state of being. I believe that happiness is a state of being. I 
believe that happiness is a state of being. I believe

Para obtener más información sobre los parámetros de la carga útil, consulte Parámetros detallados.

Referirse a Ajuste e implemente modelos Llama 2 de manera rentable en Amazon SageMaker JumpStart con AWS Inferentia y AWS Trainium para obtener detalles sobre cómo pasar los parámetros para controlar la generación de texto.

Limpiar

Una vez que haya completado su trabajo de capacitación y ya no desee utilizar los recursos existentes, puede eliminarlos usando el siguiente código:

# Delete resources
# Delete the fine-tuned model
predictor.delete_model()

# Delete the fine-tuned model endpoint
predictor.delete_endpoint()

Conclusión

La implementación de modelos Meta Llama 3 en AWS Inferentia y AWS Trainium utilizando SageMaker JumpStart demuestra el costo más bajo para implementar modelos de IA generativa a gran escala como Llama 3 en AWS. Estos modelos, incluidas variantes como Meta-Llama-3-8B, Meta-Llama-3-8B-Instruct, Meta-Llama-3-70B y Meta-Llama-3-70B-Instruct, utilizan Neurona AWS para inferencias en AWS Trainium e Inferentia. AWS Trainium e Inferentia ofrecen un costo de implementación hasta un 50 % menor que instancias EC2 comparables.

En esta publicación, demostramos cómo implementar modelos Meta Llama 3 en AWS Trainium y AWS Inferentia utilizando SageMaker JumpStart. La capacidad de implementar estos modelos a través de la consola SageMaker JumpStart y el SDK de Python ofrece flexibilidad y facilidad de uso. Estamos entusiasmados de ver cómo se utilizan estos modelos para crear interesantes aplicaciones de IA generativa.

Para comenzar a utilizar SageMaker JumpStart, consulte Introducción a Amazon SageMaker JumpStart. Para obtener más ejemplos de implementación de modelos en AWS Trainium y AWS Inferentia, consulte la repositorio de GitHub. Para obtener más información sobre la implementación de modelos Meta Llama 3 en instancias basadas en GPU, consulte Los modelos Meta Llama 3 ya están disponibles en Amazon SageMaker JumpStart.


Sobre los autores

Xin Huang es un científico aplicado senior
Rachna Chadha es arquitecto principal de soluciones – AI/ML
Qinglan es un SDE senior – Sistema ML
Panigrahi rosa es arquitecto senior de soluciones Annapurna ML
Christopher Whitten es ingeniero de desarrollo de software
Kamran Khan es director de BD/GTM Annapurna ML
ashish khetan es un científico aplicado senior
Pradeep Cruz es un SDM senior