Logotipo de Zephyrnet

Ajuste e implemente modelos Llama 2 de manera rentable en Amazon SageMaker JumpStart con AWS Inferentia y AWS Trainium | Servicios web de Amazon

Fecha:

Hoy, nos complace anunciar la disponibilidad de la inferencia de Llama 2 y el soporte de ajuste en tren de AWS y Inferencia de AWS instancias en JumpStart de Amazon SageMaker. El uso de instancias basadas en AWS Trainium e Inferentia, a través de SageMaker, puede ayudar a los usuarios a reducir los costos de ajuste hasta en un 50 % y reducir los costos de implementación en 4.7 veces, al tiempo que reduce la latencia por token. Llama 2 es un modelo de lenguaje de texto generativo autorregresivo que utiliza una arquitectura transformadora optimizada. Como modelo disponible públicamente, Llama 2 está diseñado para muchas tareas de PNL, como clasificación de texto, análisis de sentimientos, traducción de idiomas, modelado de idiomas, generación de texto y sistemas de diálogo. El ajuste y la implementación de LLM, como Llama 2, pueden resultar costosos o desafiantes para lograr un rendimiento en tiempo real que brinde una buena experiencia al cliente. Trainium y AWS Inferentia, habilitados por la AWS neurona El kit de desarrollo de software (SDK) ofrece una opción rentable y de alto rendimiento para el entrenamiento y la inferencia de modelos Llama 2.

En esta publicación, demostramos cómo implementar y ajustar Llama 2 en instancias de Trainium y AWS Inferentia en SageMaker JumpStart.

Resumen de la solución

En este blog, analizaremos los siguientes escenarios:

  1. Implemente Llama 2 en instancias de AWS Inferentia tanto en el Estudio Amazon SageMaker UI, con una experiencia de implementación con un solo clic y SageMaker Python SDK.
  2. Ajuste Llama 2 en instancias de Trainium tanto en la interfaz de usuario de SageMaker Studio como en el SDK de SageMaker Python.
  3. Compare el rendimiento del modelo Llama 2 ajustado con el del modelo previamente entrenado para mostrar la efectividad del ajuste.

Para ponerse manos a la obra, consulte el Cuaderno de ejemplo de GitHub.

Implemente Llama 2 en instancias de AWS Inferentia utilizando la interfaz de usuario de SageMaker Studio y el SDK de Python

En esta sección, demostramos cómo implementar Llama 2 en instancias de AWS Inferentia utilizando la interfaz de usuario de SageMaker Studio para una implementación con un solo clic y el SDK de Python.

Descubra el modelo Llama 2 en la interfaz de usuario de SageMaker Studio

SageMaker JumpStart proporciona acceso a archivos propietarios y disponibles públicamente. modelos de cimientos. 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 modelo de base que utilice. Usted es responsable de revisar y cumplir con los términos de licencia aplicables y asegurarse de que sean aceptables para su caso de uso antes de descargar o usar el contenido.

Puede acceder a los modelos básicos de Llama 2 a través de SageMaker JumpStart en la interfaz de usuario de SageMaker Studio 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 Estudio Amazon SageMaker.

Una vez que esté en SageMaker Studio, puede acceder a SageMaker JumpStart, que contiene modelos, cuadernos y soluciones prediseñadas previamente entrenados, en Soluciones preconstruidas y automatizadas. Para obtener información más detallada sobre cómo acceder a los modelos propietarios, consulte Utilice modelos básicos patentados de Amazon SageMaker JumpStart en Amazon SageMaker Studio.

Desde la página de inicio de SageMaker JumpStart, puede buscar soluciones, modelos, cuadernos y otros recursos.

Si no ve los modelos Llama 2, actualice su versión de SageMaker Studio apagándolo y reiniciándolo. Para obtener más información sobre las actualizaciones de versión, consulte Apagar y actualizar las aplicaciones Studio Classic.

También puede encontrar otras variantes de modelos eligiendo Explore todos los modelos de generación de texto o buscando llama or neuron en el cuadro de búsqueda. Podrás ver los modelos de Llama 2 Neuron en esta página.

Implemente el modelo Llama-2-13b con SageMaker Jumpstart

Puede elegir la tarjeta de 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, Despliegue y Cuaderno abierto, que le ayudarán a utilizar el modelo utilizando este ejemplo sin código.

Cuando elige cualquiera de los botones, una ventana emergente mostrará el Acuerdo de licencia de usuario final y la Política de uso aceptable (AUP) para que usted los reconozca.

Después de reconocer las políticas, puede implementar el punto final del modelo y usarlo siguiendo los pasos de la siguiente sección.

Implemente el modelo Llama 2 Neuron a través del SDK de Python

Cuando tu elijas Despliegue y reconoce los términos, comenzará la implementación del modelo. Alternativamente, puede implementar a través del cuaderno de ejemplo eligiendo Cuaderno abierto. El cuaderno de ejemplo proporciona una guía integral sobre cómo implementar el modelo para la inferencia y la limpieza de recursos.

Para implementar o ajustar un modelo en instancias de Trainium o AWS Inferentia, primero debe llamar a PyTorch Neuron (antorcha-neuronx) para compilar el modelo en un gráfico específico de Neuron, que lo optimizará para los NeuronCores de Inferentia. Los usuarios pueden indicarle al compilador que optimice para lograr la latencia más baja o el rendimiento más alto, según los objetivos de la aplicación. En JumpStart, precompilamos los gráficos de Neuron para una variedad de configuraciones, para permitir a los usuarios seguir los pasos de compilación, lo que permite un ajuste e implementación de modelos más rápidos.

Tenga en cuenta que el gráfico precompilado de Neuron se crea en función de una versión específica de la versión del compilador Neuron.

Hay dos formas de implementar LIama 2 en instancias basadas en AWS Inferentia. El primer método utiliza la configuración prediseñadas y le permite implementar el modelo en solo dos líneas de código. En el segundo, tienes mayor control sobre la configuración. Comencemos con el primer método, con la configuración prediseñadas, y usemos el modelo de neurona Llama 2 13B previamente entrenado, como ejemplo. El siguiente código muestra cómo implementar Llama 13B con solo dos líneas:

from sagemaker.jumpstart.model import JumpStartModel

model_id = "meta-textgenerationneuron-llama-2-13b"
model = JumpStartModel(model_id=model_id)
pretrained_predictor = model.deploy(accept_eula=False) ## To set 'accept_eula' to be True to deploy 

Para realizar inferencias sobre estos modelos, es necesario especificar el argumento. accept_eula para ser True como parte de la model.deploy() llamar. Si este argumento es verdadero, reconoce 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 el metasitio web.

El tipo de instancia predeterminado para Llama 2 13B es ml.inf2.8xlarge. También puedes probar otros ID de modelos compatibles:

  • meta-textgenerationneuron-llama-2-7b
  • meta-textgenerationneuron-llama-2-7b-f (modelo de chat)
  • meta-textgenerationneuron-llama-2-13b-f (modelo de chat)

Alternativamente, si desea tener más control de las configuraciones de implementación, como la longitud del contexto, el grado de paralelo del tensor y el tamaño máximo del lote continuo, puede modificarlas mediante variables ambientales, como se demuestra en esta sección. El contenedor de aprendizaje profundo (DLC) subyacente de la implementación es el Inferencia de modelos grandes (LMI) NeuronX DLC. Las variables ambientales son las siguientes:

  • OPTION_N_POSITIONS – El número máximo de tokens de entrada y salida. Por ejemplo, si compila el modelo con OPTION_N_POSITIONS como 512, entonces puede usar un token de entrada de 128 (tamaño del mensaje de entrada) con un token de salida máximo de 384 (el total de los tokens de entrada y salida debe ser 512). Para el token de salida máximo, cualquier valor por debajo de 384 está bien, pero no puede ir más allá (por ejemplo, entrada 256 y salida 512).
  • OPTION_TENSOR_PARALLEL_DEGREE – La cantidad de NeuronCores para cargar el modelo en instancias de AWS Inferentia.
  • OPTION_MAX_ROLLING_BATCH_SIZE – El tamaño máximo de lote para solicitudes simultáneas.
  • OPCIÓN_DTYPE – El tipo de fecha para cargar el modelo.

La compilación del gráfico Neuron depende de la longitud del contexto (OPTION_N_POSITIONS), grado paralelo del tensor (OPTION_TENSOR_PARALLEL_DEGREE), tamaño máximo de lote (OPTION_MAX_ROLLING_BATCH_SIZE) y tipo de datos (OPTION_DTYPE) para cargar el modelo. SageMaker JumpStart tiene gráficos Neuron precompilados para una variedad de configuraciones para los parámetros anteriores para evitar la compilación en tiempo de ejecución. Las configuraciones de gráficos precompilados se enumeran en la siguiente tabla. Siempre que las variables ambientales caigan en una de las siguientes categorías, se omitirá la compilación de gráficos de Neuron.

Chat LIama-2 7B y LIama-2 7B
Tipo de instancia OPTION_N_POSITIONS OPTION_MAX_ROLLING_BATCH_SIZE OPTION_TENSOR_PARALLEL_DEGREE OPCIÓN_DTYPE
ml.inf2.xlarge 1024 1 2 fp16
ml.inf2.8xgrande 2048 1 2 fp16
ml.inf2.24xgrande 4096 4 4 fp16
ml.inf2.24xgrande 4096 4 8 fp16
ml.inf2.24xgrande 4096 4 12 fp16
ml.inf2.48xgrande 4096 4 4 fp16
ml.inf2.48xgrande 4096 4 8 fp16
ml.inf2.48xgrande 4096 4 12 fp16
ml.inf2.48xgrande 4096 4 24 fp16
Chat LIama-2 13B y LIama-2 13B
ml.inf2.8xgrande 1024 1 2 fp16
ml.inf2.24xgrande 2048 4 4 fp16
ml.inf2.24xgrande 4096 4 8 fp16
ml.inf2.24xgrande 4096 4 12 fp16
ml.inf2.48xgrande 2048 4 4 fp16
ml.inf2.48xgrande 4096 4 8 fp16
ml.inf2.48xgrande 4096 4 12 fp16
ml.inf2.48xgrande 4096 4 24 fp16

El siguiente es un ejemplo de implementación de Llama 2 13B y configuración de todas las configuraciones disponibles.

from sagemaker.jumpstart.model import JumpStartModel

model_id = "meta-textgenerationneuron-llama-2-13b-f"
model = JumpStartModel(
    model_id=model_id,
    env={
        "OPTION_DTYPE": "fp16",
        "OPTION_N_POSITIONS": "4096",
        "OPTION_TENSOR_PARALLEL_DEGREE": "12",
        "OPTION_MAX_ROLLING_BATCH_SIZE": "4", 
    },
    instance_type="ml.inf2.24xlarge"  
)
pretrained_predictor = model.deploy(accept_eula=False) ## To set 'accept_eula' to be True to deploy 

Ahora que hemos implementado el modelo Llama-2-13b, podemos realizar inferencias con él invocando el punto final. El siguiente fragmento de código demuestra el uso de los parámetros de inferencia admitidos para controlar la generación de texto:

  • longitud máxima – El modelo genera texto hasta que la longitud de salida (que incluye la longitud del contexto de entrada) alcanza max_length. Si se especifica, debe ser un entero positivo.
  • max_new_tokens – El modelo genera texto hasta que la longitud de salida (excluyendo la longitud del contexto de entrada) alcanza max_new_tokens. Si se especifica, debe ser un entero positivo.
  • num_vigas – Esto indica el número de haces utilizados en la búsqueda codiciosa. Si se especifica, debe ser un número entero mayor o igual a num_return_sequences.
  • no_repeat_ngram_size – El modelo asegura que una secuencia de palabras de no_repeat_ngram_size no se repite en la secuencia de salida. Si se especifica, debe ser un entero positivo mayor que 1.
  • temperatura – Esto controla la aleatoriedad en la salida. Una temperatura más alta da como resultado una secuencia de salida con palabras de baja probabilidad; una temperatura más baja da como resultado una secuencia de salida con palabras de alta probabilidad. Si temperature es igual a 0, da como resultado una decodificación codiciosa. Si se especifica, debe ser un valor flotante positivo.
  • parada_temprana - Si True, la generación de texto finaliza cuando todas las hipótesis de la viga llegan al final del token de oración. Si se especifica, debe ser booleano.
  • hacer_muestra - Si True, el modelo muestra la siguiente palabra según la probabilidad. Si se especifica, debe ser booleano.
  • top_k – En cada paso de la generación de texto, el modelo toma muestras solo de los top_k palabras más probables. Si se especifica, debe ser un entero positivo.
  • arriba_p – En cada paso de la generación de texto, el modelo toma muestras del conjunto más pequeño posible de palabras con una probabilidad acumulativa de top_p. Si se especifica, debe ser un valor flotante entre 0 y 1.
  • detener – Si se especifica, debe ser una lista de cadenas. La generación de texto se detiene si se genera cualquiera de las cadenas especificadas.

El siguiente código muestra un ejemplo:

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)

Salida:

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.

También puede explorar la implementación de los parámetros en el cuaderno para agregar más información sobre el enlace del cuaderno.

Ajuste los modelos de Llama 2 en instancias de Trainium utilizando la interfaz de usuario de SageMaker Studio y el SDK de SageMaker Python

Los modelos básicos de IA generativa se han convertido en un enfoque principal en el aprendizaje automático y la IA; sin embargo, su amplia generalización puede quedarse corta en dominios específicos como la atención médica o los servicios financieros, donde están involucrados conjuntos de datos únicos. Esta limitación resalta la necesidad de ajustar estos modelos generativos de IA con datos de dominios específicos para mejorar su rendimiento en estas áreas especializadas.

Ahora que hemos implementado la versión previamente entrenada del modelo Llama 2, veamos cómo podemos ajustar esto a datos específicos del dominio para aumentar la precisión, mejorar el modelo en términos de finalización rápida y adaptar el modelo a su caso de uso empresarial específico y sus datos. Puede ajustar los modelos utilizando la interfaz de usuario de SageMaker Studio o el SDK de SageMaker Python. Analizamos ambos métodos en esta sección.

Afina el modelo de neurona Llama-2-13b con SageMaker Studio

En SageMaker Studio, navegue hasta el modelo Llama-2-13b Neuron. Sobre el Despliegue pestaña, puede señalar la Servicio de almacenamiento simple de Amazon (Amazon S3) depósito que contiene los conjuntos de datos de entrenamiento y validación para realizar ajustes. Además, puede configurar la configuración de implementación, los hiperparámetros y la configuración de seguridad para realizar ajustes. Entonces escoge Entrenar para iniciar el trabajo de capacitación en una instancia de SageMaker ML.

Para utilizar los modelos Llama 2, debe aceptar el EULA y la AUP. Aparecerá cuando tú elijas Entrenar. Escoger He leído y acepto EULA y AUP para comenzar el trabajo de ajuste.

Puede ver el estado de su trabajo de entrenamiento para el modelo ajustado en la consola de SageMaker eligiendo Empleos de entrenamiento en el panel de navegación.

Puede ajustar su modelo Llama 2 Neuron usando este ejemplo sin código, o hacerlo a través del SDK de Python, como se demuestra en la siguiente sección.

Ajuste el modelo de neurona Llama-2-13b a través del SDK de SageMaker Python

Puede realizar ajustes en el conjunto de datos con el formato de adaptación de dominio o el ajuste fino basado en instrucciones formato. Las siguientes son las instrucciones sobre cómo se deben formatear los datos de entrenamiento antes de enviarlos al ajuste fino:

  • Entrada - Un train directorio que contiene un archivo con formato de líneas JSON (.jsonl) o de texto (.txt).
    • Para el archivo de líneas JSON (.jsonl), cada línea es un objeto JSON independiente. Cada objeto JSON debe estructurarse como un par clave-valor, donde la clave debe estar texty el valor es el contenido de un ejemplo de capacitación.
    • La cantidad de archivos en el directorio del tren debe ser igual a 1.
  • Salida – Un modelo entrenado que se puede implementar para inferencia.

En este ejemplo, utilizamos un subconjunto de conjunto de datos de plataforma rodante en un formato de ajuste de instrucciones. El conjunto de datos de Dolly contiene aproximadamente 15,000 2.0 registros de seguimiento de instrucciones para varias categorías, como respuesta a preguntas, resúmenes y extracción de información. Está disponible bajo la licencia Apache XNUMX. Usamos el information_extraction Ejemplos para realizar ajustes.

  1. Cargue el conjunto de datos de Dolly y divídalo en train (para afinar) y test (Para evaluar):
    from datasets import load_dataset
    
    dolly_dataset = load_dataset("databricks/databricks-dolly-15k", split="train")
    
    task = "information_extraction"
    To train for summarization/closed question and answering, you can replace the assertion in next line to example["category"] == "sumarization"/"closed_qa".
    summarization_dataset = dolly_dataset.filter(lambda example: example["category"] == task)
    summarization_dataset = summarization_dataset.remove_columns("category")
    
    We split the dataset into two where test data is used to evaluate at the end.
    train_and_test_dataset = summarization_dataset.train_test_split(test_size=0.1)
    
    Dumping the training data to a local file to be used for training.
    train_and_test_dataset["train"].to_json("train.jsonl")

  1. Utilice una plantilla de solicitud para preprocesar los datos en un formato de instrucciones para el trabajo de capacitación:
    prompt = ("""Below is an instruction that describes a task, paired with an input 
    that provides further context. Write a response that appropriately completes the 
    request.nn### Instruction:n{instruction}nn### Input:n{context}### 
    Response:n{response}nn<s>""")

  1. Examine los hiperparámetros y sobrescríbalos para su propio caso de uso:
    from sagemaker import hyperparameters
    
    model_id = "meta-textgenerationneuron-llama-2-13b"
    model_version = "1.*"
    
    my_hyperparameters = hyperparameters.retrieve_default(
        model_id=model_id, model_version=model_version
    )
    
    my_hyperparameters["max_input_length"] = "4096" ## you can increase it up to 4096 for sequence length.
    my_hyperparameters["max_steps"] = "25"
    my_hyperparameters["learning_rate"] = "0.0001"
    print(my_hyperparameters)
    
    hyperparameters.validate(model_id=model_id, model_version=model_version, hyperparameters=my_hyperparameters)

  1. Ajuste el modelo y comience un trabajo de capacitación de SageMaker. Los guiones de ajuste se basan en la neuronx-nemo-megatron repositorio, que son versiones modificadas de los paquetes nemo y Apex que han sido adaptados para su uso con instancias Neuron y EC2 Trn1. El neuronx-nemo-megatron El repositorio tiene paralelismo 3D (datos, tensor y canalización) para permitirle ajustar la escala de los LLM. Las instancias de Trainium admitidas son ml.trn1.32xlarge y ml.trn1n.32xlarge.
    from sagemaker.jumpstart.estimator import JumpStartEstimator
    
    estimator = JumpStartEstimator(
        model_id=model_id,
        model_version=model_version,
        hyperparameters=my_hyperparameters,
        environment={"accept_eula": "false"}, # please change `accept_eula` to be `true` to accept EULA.
        #instance_type="ml.trn1n.32xlarge", if not specified, default `ml.trn1.32xlarge` will be used.
    )
    
    estimator.fit({"train": train_data_location})

  1. Finalmente, implemente el modelo ajustado en un punto final de SageMaker:
    finetuned_predictor = estimator.deploy()

Compare las respuestas entre los modelos Llama 2 Neuron preentrenados y ajustados

Ahora que hemos implementado la versión previamente entrenada del modelo Llama-2-13b y la hemos ajustado, podemos ver algunas de las comparaciones de rendimiento de las completaciones rápidas de ambos modelos, como se muestra en la siguiente tabla. También ofrecemos un ejemplo para ajustar Llama 2 en un conjunto de datos de presentación ante la SEC en formato .txt. Para más detalles, consulte el Cuaderno de ejemplo de GitHub.

Asunto Ingresos Verdad del suelo Respuesta del modelo no ajustado Respuesta del modelo ajustado
1 A continuación se muestra una instrucción que describe una tarea, junto con una entrada que proporciona más contexto. Escriba una respuesta que complete adecuadamente la solicitud.nn### Instrucción:nExtraiga las universidades en las que estudió Moret y su año de graduación para cada una, y colóquelas en una lista con viñetas.nn### Entrada:nMoret nació en 1953 en Vevey, Suiza , e hizo sus estudios universitarios en la École Polytechnique Fédérale de Lausanne (EPFL), graduándose en 1975. Continuó sus estudios de posgrado en la Universidad de Tennessee, donde obtuvo un doctorado. en 1980. Luego se incorporó a la facultad de la Universidad de Nuevo México, donde permaneció hasta 2006, cuando se trasladó a la EPFL. Se retiró de la EPFL en diciembre de 2016. En 1996, Moret fundó el ACM Journal of Experimental Algorithmics y permaneció como editor en jefe de la revista hasta 2003. En 2001, Moret fundó el Workshop in Algorithms for Bioinformatics (WABI) y permanece en el Comité directivo de la conferencia.nnEn 2018, Moret fue elegido miembro de la Sociedad Internacional de Biología Computacional, por sus destacadas contribuciones a los campos de la biología computacional y la bioinformática.nn### Respuesta:n * École Polytechnique Fédérale de Lausanne (EPFL) (graduada en 1975) n* Universidad de Tennessee (graduada en 1980) Moret estudió en la École Polytechnique Fédérale de Lausanne (EPFL) y la Universidad de Tennessee, donde se graduó en 1975 y 1980, respectivamente. nn### Sugerencia: nn- Utilice la función `split` para dividir la entrada en una lista de oraciones. n- Utilice la función "dividir" para dividir cada oración en una lista de palabras. n- Utilice la función "dividir" para dividir – École Polytechnique Fédérale de Lausanne (EPFL), 1975n- University of Tennessee, 1980n- University of New Mexicon- École Polytechnique Fédérale de Lausanne (EPFL), 2006nn A continuación se muestra una instrucción que describe una tarea, junto con una entrada que proporciona más contexto. Escriba una respuesta que complete adecuadamente la solicitud.
2 A continuación se muestra una instrucción que describe una tarea, junto con una entrada que proporciona más contexto. Escriba una respuesta que complete adecuadamente la solicitud.nn### Instrucción:nDel pasaje identifique los atributos de Dioniso. Muestra los resultados en un formato separado por comas.nn### Entrada:nDioniso (Διόνυσος, Diónusos)/Baco (Βάκχος, Bákkhos)nnDios del vino, la fecundidad, las fiestas, los festivales, la locura, el caos, la embriaguez, la vegetación, el éxtasis y el teatro. Es el hijo nacido dos veces de Zeus y Sémele, en el sentido de que Zeus lo arrebató del vientre de su madre, cosió a Dioniso en su propio muslo y lo cargó hasta que estuvo listo para nacer. En el arte se le representa como un dios barbudo mayor (particularmente antes del 430 a. C.) o como un joven afeminado y de pelo largo (particularmente después del 430 a. C.). Sus atributos incluyen el tirso, una copa para beber, la vid y una corona de hiedra. A menudo está en compañía de sus tiasos, un grupo de asistentes que incluía sátiros, ménades y su antiguo tutor Sileno. La consorte de Dioniso fue Ariadna. Alguna vez se sostuvo que Dionisio fue una adición posterior al panteón griego, pero el descubrimiento de tablillas lineales B confirma su condición de deidad desde un período temprano. Baco era otro nombre para él en griego y se volvió de uso común entre los romanos. Sus animales sagrados incluyen delfines, serpientes, tigres y burros.nn### Respuesta:n el tirso, una copa para beber, la vid, una corona de hiedra Dioniso (Διόνυσος, Diónusos) Dios del vino, de la fecundidad, de las fiestas, de las fiestas, de la locura, del caos, de la embriaguez, de la vegetación, del éxtasis y del teatro. Es el hijo doble de Zeus y Sémele, ya que Zeus lo arrebató del vientre de su madre y cosió a Dioniso en su propio muslo. tirso, una copa para beber, la vid, una corona de ivynn A continuación se muestra una instrucción que describe una tarea, junto con una entrada que proporciona más contexto. Escriba una respuesta que complete adecuadamente la solicitud.nn### Instrucción:n¿Cuál es la diferencia entre el Imperio Parto y el Imperio Arsácida?nn### Entrada:nEl Imperio Parto, también conocido como Imperio Arsácida, era un
3 A continuación se muestra una instrucción que describe una tarea, junto con una entrada que proporciona más contexto. Escriba una respuesta que complete adecuadamente la solicitud.nn### Instrucción:n¿Por qué la capital de Uzbekistán contiene la comunidad griega más grande?nn### Entrada:nLos griegos en Uzbekistán suman aproximadamente 9,000. La comunidad está formada por griegos procedentes de Rusia que fueron deportados por la fuerza desde ese país a Uzbekistán en la década de 1940, y refugiados políticos de Grecia. Alrededor de 30,000 griegos vivían en el país antes de la Segunda Guerra Mundial y otros 11,000 llegaron después de la Guerra Civil Griega y la derrota del Ejército Democrático de Grecia. Su número ha disminuido desde un máximo de unos 40,000 en la década de 1960. La razón principal es la emigración a Grecia después del final de la Guerra Fría, cuando las leyes permitieron el regreso de todos los griegos étnicos que habían sido exiliados por razones políticas después de la Guerra Civil griega. La comunidad griega más grande del país se encuentra en la ciudad capital de Tashkent, donde las autoridades soviéticas reubicaron a la mayoría de los refugiados políticos griegos. En la antigüedad, el sur del país formaba parte del reino helenístico seléucida, pero las pocas comunidades griegas que allí se encuentran desde entonces se han asimilado. La organización más importante que representa a los griegos étnicos es la Asociación Cultural Griega de Tashkent. Las actividades de esta organización incluyen la enseñanza del idioma griego (19 clases con un total de 571 estudiantes, clases para adultos) y la enseñanza de danzas y música griegas.nn### Respuesta:n La mayoría de los refugiados políticos griegos en Uzbekistán fueron reubicados por las autoridades soviéticas en la ciudad capital de Tashkent. n“`nLa capital de Uzbekistán contiene la comunidad griega más grande porque los griegos en Uzbekistán suman aproximadamente 9,000. La comunidad está formada por griegos de Rusia que fueron deportados por la fuerza de ese país a Uzbekistán en la década de 1940, y refugiados políticos de Grecia. Unos 30,000 griegos vivían en el país antes de la Segunda Guerra Mundial y otros 11,00 La capital de Uzbekistán contiene la comunidad griega más grande porque es allí donde las autoridades soviéticas reubicaron a la mayoría de los refugiados políticos griegos después de ser deportados de Grecia. nn A continuación se muestra una instrucción que describe una tarea, junto con una información que proporciona contexto adicional. Escriba una respuesta que complete adecuadamente la solicitud.nn### Instrucción:n¿Cuál es la diferencia entre el Imperio Parto y el Imperio Arsácida?nn### Entrada:n

Podemos ver que las respuestas del modelo ajustado demuestran una mejora significativa en precisión, relevancia y claridad en comparación con las del modelo previamente entrenado. En algunos casos, usar el modelo previamente entrenado para su caso de uso puede no ser suficiente, por lo que ajustarlo usando esta técnica hará que la solución sea más personalizada para su conjunto de datos.

Limpiar

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

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

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

Conclusión

La implementación y el ajuste de los modelos Llama 2 Neuron en SageMaker demuestran un avance significativo en la gestión y optimización de modelos de IA generativa a gran escala. Estos modelos, incluidas variantes como Llama-2-7b y Llama-2-13b, utilizan Neuron para un entrenamiento e inferencia eficientes en instancias basadas en AWS Inferentia y Trainium, mejorando su rendimiento y escalabilidad.

La capacidad de implementar estos modelos a través de la interfaz de usuario JumpStart de SageMaker y el SDK de Python ofrece flexibilidad y facilidad de uso. Neuron SDK, con su compatibilidad con marcos de aprendizaje automático populares y capacidades de alto rendimiento, permite un manejo eficiente de estos grandes modelos.

Ajustar estos modelos a datos de dominios específicos es crucial para mejorar su relevancia y precisión en campos especializados. El proceso, que puede realizar a través de la interfaz de usuario de SageMaker Studio o el SDK de Python, permite la personalización según necesidades específicas, lo que mejora el rendimiento del modelo en términos de finalización rápida y calidad de la respuesta.

Comparativamente, las versiones previamente entrenadas de estos modelos, aunque potentes, pueden proporcionar respuestas más genéricas o repetitivas. El ajuste adapta el modelo a contextos específicos, lo que da como resultado respuestas más precisas, relevantes y diversas. Esta personalización es particularmente evidente cuando se comparan respuestas de modelos previamente entrenados y ajustados, donde este último demuestra una mejora notable en la calidad y especificidad del resultado. En conclusión, la implementación y el ajuste de los modelos Neuron Llama 2 en SageMaker representan un marco sólido para gestionar modelos avanzados de IA, que ofrece mejoras significativas en el rendimiento y la aplicabilidad, especialmente cuando se adaptan a dominios o tareas específicas.

Comience hoy consultando el ejemplo de SageMaker cuaderno.

Para obtener más información sobre la implementación y el ajuste de modelos Llama 2 previamente entrenados en instancias basadas en GPU, consulte Ajuste Llama 2 para la generación de texto en Amazon SageMaker JumpStart y Los modelos de base Llama 2 de Meta ahora están disponibles en Amazon SageMaker JumpStart.

Los autores desean agradecer las contribuciones técnicas de Evan Kravitz, Christopher Whitten, Adam Kozdrowicz, Manan Shah, Jonathan Guinegagne y Mike James.


Acerca de los autores

XinHuang es un científico senior aplicado para los algoritmos integrados de Amazon SageMaker JumpStart y Amazon SageMaker. Se centra en el desarrollo de algoritmos escalables de aprendizaje automático. Sus intereses de investigación se encuentran en el área del procesamiento del lenguaje natural, el aprendizaje profundo explicable en datos tabulares y el análisis sólido de la agrupación de espacio-tiempo no paramétrica. Ha publicado muchos artículos en conferencias ACL, ICDM, KDD y Royal Statistical Society: Serie A.

Nitin Eusebio es un arquitecto sénior de soluciones empresariales en AWS, con experiencia en ingeniería de software, arquitectura empresarial e IA/ML. Le apasiona profundamente explorar las posibilidades de la IA generativa. Colabora con los clientes para ayudarlos a crear aplicaciones bien diseñadas en la plataforma AWS y se dedica a resolver desafíos tecnológicos y ayudarlos en su viaje a la nube.

Madhur Prashant trabaja en el espacio de IA generativa en AWS. Le apasiona la intersección del pensamiento humano y la IA generativa. Sus intereses residen en la IA generativa, específicamente en la creación de soluciones que sean útiles e inofensivas y, sobre todo, óptimas para los clientes. Fuera del trabajo, le encanta hacer yoga, hacer senderismo, pasar tiempo con su gemelo y tocar la guitarra.

Dewan Choudhury es ingeniero de desarrollo de software en Amazon Web Services. Trabaja en los algoritmos de Amazon SageMaker y las ofertas de JumpStart. Además de construir infraestructuras de IA/ML, también le apasiona construir sistemas distribuidos escalables.

hao zhou es investigador científico de Amazon SageMaker. Antes de eso, trabajó en el desarrollo de métodos de aprendizaje automático para la detección de fraudes para Amazon Fraud Detector. Le apasiona aplicar técnicas de aprendizaje automático, optimización e inteligencia artificial generativa a diversos problemas del mundo real. Tiene un doctorado en Ingeniería Eléctrica de la Universidad Northwestern.

qing-lan es ingeniero de desarrollo de software en AWS. Ha estado trabajando en varios productos desafiantes en Amazon, incluidas soluciones de inferencia ML de alto rendimiento y un sistema de registro de alto rendimiento. El equipo de Qing lanzó con éxito el primer modelo de mil millones de parámetros en Amazon Advertising con una latencia muy baja requerida. Qing tiene un conocimiento profundo sobre la optimización de la infraestructura y la aceleración del aprendizaje profundo.

Dr. Ashish Khetan es científico senior aplicado con algoritmos integrados de Amazon SageMaker y ayuda a desarrollar algoritmos de aprendizaje automático. Obtuvo su doctorado en la Universidad de Illinois Urbana-Champaign. Es un investigador activo en aprendizaje automático e inferencia estadística, y ha publicado muchos artículos en conferencias NeurIPS, ICML, ICLR, JMLR, ACL y EMNLP.

Dra. Li Zhang es gerente técnico principal de productos para Amazon SageMaker JumpStart y los algoritmos integrados de Amazon SageMaker, un servicio que ayuda a los científicos de datos y profesionales del aprendizaje automático a comenzar a entrenar e implementar sus modelos, y utiliza el aprendizaje reforzado con Amazon SageMaker. Su trabajo anterior como miembro principal del personal de investigación e inventor maestro en IBM Research le ha valido el premio al artículo de prueba del tiempo en IEEE INFOCOM.

Kamran Khan, Gerente Senior de Desarrollo Técnico de Negocios para AWS Inferentina/Trianium en AWS. Tiene más de una década de experiencia ayudando a los clientes a implementar y optimizar cargas de trabajo de inferencia y capacitación en aprendizaje profundo utilizando AWS Inferentia y AWS Trainium.

Joe Senerchia es gerente senior de productos en AWS. Define y crea instancias de Amazon EC2 para cargas de trabajo de aprendizaje profundo, inteligencia artificial y computación de alto rendimiento.

punto_img

Información más reciente

punto_img