[ad_1]
Hoy nos complace anunciar que los modelos fundamentales Code Llama de Meta están disponibles para los clientes a través de Amazon SageMaker JumpStart y se pueden implementar con un solo clic para ejecutar la inferencia. Code Llama es un modelo de lenguaje grande (LLM) de última generación capaz de generar código y lenguaje natural sobre el código a partir de indicaciones de código y lenguaje natural. Puede probar este modelo con SageMaker JumpStart, un centro de aprendizaje automático (ML) que brinda acceso a algoritmos, modelos y soluciones de ML para comenzar a utilizar ML rápidamente. En esta publicación, aprenderá cómo descubrir e implementar el modelo Code Llama a través de SageMaker JumpStart.
Código Llama
Code Llama es un modelo publicado por Meta que se basa en Llama 2. Este modelo de vanguardia está diseñado para mejorar la productividad de las tareas de programación de los desarrolladores ayudándoles a producir código bien documentado y de alta calidad. Los modelos cuentan con Python, C++, Java, PHP, C#, TypeScript y Bash y tienen el potencial de ahorrar tiempo a los desarrolladores y hacer que los flujos de trabajo del software sean más eficientes.
Hay tres variantes diseñadas para una variedad de aplicaciones: el modelo básico (Code Llama), un modelo especial de Python (Code Llama Python) y un modelo de secuencia de instrucciones para comprender instrucciones en lenguaje natural (Code Llama Instruct). Todas las variantes de Code Llama están disponibles en cuatro tamaños: Parámetro 7B, 13B, 34B y 70B. Las variantes Base e Instruct 7B y 13B admiten el llenado según el contenido circundante, lo que las hace ideales para aplicaciones de asistente de código. Los modelos se diseñaron en base a Llama 2 y luego se entrenaron con 500 mil millones de tokens de datos de código, con la versión especial de Python entrenada con 100 mil millones de tokens incrementales. Los modelos Code Llama ofrecen generaciones estables con hasta 100.000 tokens de contexto. Todos los modelos se entrenan en secuencias de 16.000 tokens y muestran mejoras en entradas de hasta 100.000 tokens.
El modelo está disponible bajo la misma licencia comunitaria que Llama 2.
Modelos de cimentación en SageMaker
SageMaker JumpStart brinda acceso a una variedad de modelos de centros de modelos populares, incluidos Hugging Face, PyTorch Hub y TensorFlow Hub, que puede usar en su flujo de trabajo de desarrollo de aprendizaje automático en SageMaker. Los avances recientes en ML han llevado a una nueva clase de modelos conocidos como Modelos de cimentacion, que normalmente se entrenan en miles de millones de parámetros y se adaptan a una amplia categoría de casos de uso, como por ejemplo: B. Resumen de textos, generación de arte digital y traducción de idiomas. Debido a que entrenar estos modelos es costoso, los clientes quieren utilizar modelos base previamente entrenados existentes y perfeccionarlos según sea necesario en lugar de entrenarlos ellos mismos. SageMaker proporciona una lista seleccionada de modelos para que usted elija en la consola de SageMaker.
En SageMaker JumpStart, puede encontrar modelos de base de varios proveedores de modelos para que pueda comenzar rápidamente con los modelos de base. Puede encontrar modelos básicos basados en diferentes tareas o proveedores de modelos y comprobar fácilmente las propiedades y los términos de uso del modelo. También puedes probar estas maquetas usando un widget de interfaz de usuario de prueba. Si desea utilizar un modelo básico a escala, puede hacerlo sin salir de SageMaker utilizando cuadernos prediseñados de proveedores de modelos. Debido a que los modelos están alojados e implementados en AWS, puede estar seguro de que sus datos, ya sea que se utilicen para la evaluación o el uso a gran escala del modelo, nunca se compartirán con terceros.
Explora el modelo Code Llama en SageMaker JumpStart
Para implementar el modelo Code Llama 70B, complete los siguientes pasos en Amazon SageMaker Studio:
- En la página de inicio de SageMaker Studio, seleccione Buen inicio en el área de navegación.
- Busque modelos Code Llama y seleccione el modelo Code Llama 70B de la lista de modelos que se muestran.
Para más información sobre el modelo, consultar la ficha del modelo Código Llama 70B.
La siguiente captura de pantalla muestra la configuración del punto final. Puede cambiar las opciones o utilizar las opciones predeterminadas.
- Acepte el Acuerdo de licencia de usuario final (EULA) y seleccione Insertar.
Esto iniciará el proceso de aprovisionamiento de puntos finales como se muestra en la siguiente captura de pantalla.
Implementar el modelo utilizando el SDK de SageMaker Python
Alternativamente, puede implementar desde el cuaderno de muestra seleccionando abre el cuaderno en la página de detalles del modelo Classic Studio. El cuaderno de muestra proporciona instrucciones completas para implementar el modelo para inferencia y limpieza de recursos.
Para implementar usando una computadora portátil, primero seleccionamos un modelo apropiado, indicado por model_id
. Puede implementar cualquiera de los modelos seleccionados en SageMaker usando el siguiente código:
Esto implementa el modelo en SageMaker con configuraciones predeterminadas, incluido el tipo de instancia predeterminado y las configuraciones de VPC predeterminadas. Puede cambiar estas configuraciones especificando valores no predeterminados en JumpStartModel. Tenga en cuenta que por defecto accept_eula
se establece en False
. tienes que contratar accept_eula=True
para implementar con éxito el punto final. Al hacerlo, acepta el Acuerdo de licencia de usuario y la Política de uso aceptable como se mencionó anteriormente. También puede descargar el acuerdo de licencia.
Invocar un punto final de SageMaker
Una vez implementado el punto final, puede realizar inferencias utilizando Boto3 o el SDK de SageMaker Python. En el siguiente código, utilizamos el SDK de SageMaker Python para invocar el modelo para inferencia e imprimir la respuesta:
La función print_response
Toma una carga útil que consta de la carga útil y la respuesta del modelo e imprime el resultado. Code Llama admite muchos parámetros al realizar inferencia:
- longitud máxima – El modelo genera texto hasta que se alcanza la longitud de salida (incluida la longitud del contexto de entrada)
max_length
. Si se especifica, debe ser un número entero positivo. - max_new_tokens – El modelo genera texto hasta que se alcanza la longitud de salida (excluyendo la longitud del contexto de entrada)
max_new_tokens
. Si se especifica, debe ser un número entero positivo. - num_vigas – Esto indica la cantidad de rayos 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 garantiza que una secuencia de palabras de
no_repeat_ngram_size
no se repite en la secuencia de salida. Si se especifica, debe ser un número entero positivo mayor que 1. - temperatura – Esto controla la aleatoriedad en la salida. Más alto
temperature
da como resultado una secuencia de salida con palabras de baja probabilidad y menortemperature
da como resultado una secuencia de salida con palabras de alta probabilidad. Sitemperature
es 0, esto conduce a una decodificación codiciosa. Si se especifica, debe ser un valor de coma flotante positivo. - parada_temprano – Si
True
La generación de texto se completa cuando todas las hipótesis de la barra llegan al token de final de oración. Si se especifica, debe ser booleano. - hacer_muestra – Si
True
, el modelo muestrea 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 solo utiliza las muestras.
top_k
palabras más probables. Si se especifica, debe ser un número entero positivo. - arriba_p – En cada paso de la generación de texto, el modelo selecciona muestras del conjunto más pequeño posible de palabras con probabilidad acumulativa.
top_p
. Si se especifica, debe ser un número de coma flotante entre 0 y 1. - retorno_texto_completo – Si
True
, el texto de entrada será parte del texto de salida generado. Si se especifica, debe ser booleano. El valor predeterminado para esto esFalse
. - para detener – Si se especifica, debe ser una lista de cadenas. La generación de texto se detiene cuando se genera una de las cadenas especificadas.
Puede especificar cualquier subconjunto de estos parámetros al llamar a un punto final. A continuación, mostraremos un ejemplo de cómo llamar a un punto final con estos argumentos.
Finalización de código
Los siguientes ejemplos demuestran la finalización del código donde la respuesta esperada del punto final es la continuación natural del mensaje.
Primero ejecutamos el siguiente código:
Obtenemos el siguiente resultado:
Para nuestro próximo ejemplo, ejecutaremos el siguiente código:
Obtenemos el siguiente resultado:
Codigo de GENERACION
Los siguientes ejemplos demuestran la generación de código Python usando Code Llama.
Primero ejecutamos el siguiente código:
Obtenemos el siguiente resultado:
Para nuestro próximo ejemplo, ejecutaremos el siguiente código:
Obtenemos el siguiente resultado:
Estos son algunos ejemplos de tareas relacionadas con el código que utilizan Code Llama 70B. Puede utilizar el modelo para generar código aún más complicado. ¡Le animamos a que lo pruebe con sus propios casos de uso y ejemplos relacionados con el código!
Limpiar
Después de probar los puntos finales, asegúrese de eliminar los puntos finales y el modelo de inferencia de SageMaker para evitar incurrir en cargos. Utilice el siguiente código:
Diploma
En esta publicación presentamos Code Llama 70B en SageMaker JumpStart. Code Llama 70B es un modelo de última generación para generar código a partir de indicaciones en lenguaje natural y código. Puede implementar el modelo en SageMaker JumpStart con unos sencillos pasos y luego usarlo para realizar tareas relacionadas con el código, como la generación y el llenado de código. Como siguiente paso, intente utilizar el modelo con sus propios casos de uso y datos relacionados con el código.
Sobre los autores
kyle ulrich es un científico aplicado del equipo JumpStart de Amazon SageMaker. Sus intereses de investigación incluyen algoritmos escalables de aprendizaje automático, visión por computadora, series temporales, procesos bayesianos no paramétricos y procesos gaussianos. Recibió su doctorado en la Universidad de Duke y ha publicado artículos en NeurIPS, Cell y Neuron.
Dr. Farooq Sabir es arquitecto senior de soluciones para inteligencia artificial y aprendizaje automático en AWS. Tiene un doctorado y una maestría en ingeniería eléctrica de la Universidad de Texas en Austin y una maestría en ciencias de la computación del Instituto de Tecnología de Georgia. Tiene más de 15 años de experiencia profesional y también disfruta enseñando y supervisando estudiantes. En AWS, ayuda a los clientes a formular y resolver sus problemas comerciales en ciencia de datos, aprendizaje automático, visión por computadora, inteligencia artificial, optimización numérica y áreas relacionadas. Él y su familia viven en Dallas, Texas, y les encanta viajar y realizar largos viajes por carretera.
junio ganó es gerente de producto en SageMaker JumpStart. Su objetivo es hacer que los modelos base sean fáciles de encontrar y utilizar para ayudar a los clientes a desarrollar aplicaciones de IA generativa. Su experiencia en Amazon también incluye aplicaciones de compra móvil y entrega de última milla.
[ad_2]