Athrun Data Intelligence


Hoy nos complace anunciar que Mistral-NeMo-Almohadilla-2407 y Mistral-NeMo-Instrucción-2407—doce mil millones de modelos de lengua de gran tamaño de parámetros de Mistral AI que sobresalen en la coexistentes de texto, están disponibles para los clientes a través de Inicio rápido de Amazon SageMaker. Puede probar estos modelos con SageMaker JumpStart, un centro de educación inconsciente (ML) que brinda golpe a algoritmos y modelos que se pueden implementar con un solo clic para ejecutar inferencia. En esta publicación, explicamos cómo descubrir, implementar y utilizar los modelos Mistral-NeMo-Instruct-2407 y Mistral-NeMo-Almohadilla-2407 para una variedad de casos de uso del mundo vivo.

Descripción militar de Mistral-NeMo-Instruct-2407 y Mistral-NeMo-Almohadilla-2407

Mistral Nemoun potente maniquí de parámetros de 12B desarrollado mediante la colaboración entre Mistral AI y NVIDIA y valiente bajo la inmoralidad Apache 2.0, ahora está arreglado en SageMaker JumpStart. Este maniquí representa un avance significativo en las capacidades y accesibilidad de la IA multilingüe.

Funciones y capacidades secreto

Mistral NeMo presenta una ventana de contexto de token de 128k, lo que permite el procesamiento de contenido extenso y extenso. El maniquí demuestra un sólido rendimiento en razonamiento, conocimiento mundial y precisión de codificación. Tanto los puntos de control básicos previamente entrenados como los ajustados por instrucciones están disponibles bajo la inmoralidad Apache 2.0, lo que los hace accesibles para investigadores y empresas. El entrenamiento consciente de la cuantificación del maniquí facilita un rendimiento magnífico de la inferencia del FP8 sin comprometer la calidad.

Soporte multilingüe

Mistral NeMo está diseñado para aplicaciones globales, con un sólido rendimiento en varios idiomas, incluidos inglés, francés, teutónico, castellano, italiano, portugués, chino, japonés, coreano, árabe e hindi. Esta capacidad multilingüe, combinada con la señal de funciones integrada y una amplia ventana de contexto, ayuda a que la IA avanzadilla sea más accesible en diversos paisajes lingüísticos y culturales.

Tekken: tokenización avanzadilla

El maniquí utiliza Tekken, un tokenizador reformador basado en tiktoken. Tekken, formado en más de 100 idiomas, ofrece una eficiencia de compresión mejorada para texto y código fuente en lengua natural.

Descripción militar de SageMaker JumpStart

SageMaker JumpStart es un servicio totalmente administrado que ofrece modelos básicos de última coexistentes para diversos casos de uso, como redacción de contenido, coexistentes de código, respuesta a preguntas, redacción, prontuario, clasificación y recuperación de información. Proporciona una colección de modelos previamente entrenados que puede implementar rápidamente, acelerando el crecimiento y la implementación de aplicaciones de educación inconsciente. Uno de los componentes secreto de SageMaker JumpStart es Model Hub, que ofrece un amplio catálogo de modelos previamente entrenados, como DBRX, para una variedad de tareas.

Ahora puede descubrir e implementar los dos modelos Mistral NeMo con unos pocos clics en Amazon SageMaker Estudio o mediante programación a través del SDK de Python de SageMaker, lo que le permite derivar controles de rendimiento del maniquí y operaciones de educación inconsciente (MLOps) con Amazon SageMaker características tales como Canalizaciones de Amazon SageMaker, Depurador de Amazon SageMakero registros de contenedor. El maniquí se implementa en un entorno seguro de AWS y bajo los controles de su estrato privada supuesto (VPC), lo que ayuda a respaldar la seguridad de los datos.

Requisitos previos

Para probar los dos modelos NeMo en SageMaker JumpStart, necesitará los siguientes requisitos previos:

Descubra los modelos Mistral NeMo en SageMaker JumpStart

Puede alcanzar a los modelos NeMo a través de SageMaker JumpStart en la interfaz de afortunado 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 crecimiento integrado (IDE) que proporciona una única interfaz visual basada en web donde puede alcanzar a herramientas diseñadas específicamente para realizar pasos de crecimiento de ML, desde la preparación de datos hasta la creación, el entrenamiento y la implementación de sus modelos de ML. Para obtener más detalles sobre cómo comenzar y configurar SageMaker Studio, consulte Amazon SageMaker Estudio.

En SageMaker Studio, puede alcanzar a SageMaker JumpStart eligiendo Iniciar en el panel de navegación.

Entonces elige AbrazosCara.

Desde la página de inicio de SageMaker JumpStart, puede despabilarse NeMo en el cuadro de búsqueda. Los resultados de la búsqueda mostrarán Instrucción Mistral NeMo y Almohadilla Mistral NeMo.

Puede nominar la maleable de maniquí para ver detalles sobre el maniquí, como la inmoralidad, los datos utilizados para entrenar y cómo utilizar el maniquí. Asimismo encontrarás el Desplegar para implementar el maniquí y crear un punto final.

Implementar el maniquí en SageMaker JumpStart

La implementación comienza cuando elige el retoño Implementar. Una vez finalizada la implementación, verá que se crea un punto final. Puede probar el punto final pasando una carga útil de solicitud de inferencia de muestra o seleccionando la opción de prueba mediante el SDK. Cuando seleccione la opción para usar el SDK, verá un código de ejemplo que puede usar en el editor de cuaderno de su alternativa en SageMaker Studio.

Implementar el maniquí con SageMaker Python SDK

Para implementar usando el SDK, comenzamos seleccionando el maniquí Mistral NeMo Almohadilla, especificado por el model_id con el valía huggingface-llm-mistral-nemo-base-2407. Puede implementar su alternativa de los modelos seleccionados en SageMaker con el subsiguiente código. De modo similar, puede implementar NeMo Instruct usando su propia ID de maniquí.

from sagemaker.jumpstart.model import JumpStartModel 

accept_eula = True 

model = JumpStartModel(model_id="huggingface-llm-mistral-nemo-base-2407") 
predictor = model.deploy(accept_eula=accept_eula)

Esto implementa el maniquí en SageMaker con configuraciones predeterminadas, incluido el tipo de instancia predeterminado y las configuraciones de VPC predeterminadas. Puede cambiar estas configuraciones especificando títulos no predeterminados en JumpStartModelo. El valía del CLUF debe definirse explícitamente como Efectivo para aceptar el acuerdo de inmoralidad de afortunado final (CLUF). Asimismo asegúrese de tener el meta de servicio a nivel de cuenta para usar ml.g6.12xlarge para uso de endpoints como una o más instancias. Puedes seguir las instrucciones en Cuotas de servicio de AWS para solicitar un aumento de cuota de servicio. Una vez implementado, puede ejecutar inferencia contra el punto final implementado a través del predictor de SageMaker:

payload = {
    "messages": (
        {
            "role": "user",
            "content": "Hello"
        }
    ),
    "max_tokens": 1024,
    "temperature": 0.3,
    "top_p": 0.9,
}

response = predictor.predict(payload)('choices')(0)('message')('content').strip()
print(response)

Una cosa importante a tener en cuenta aquí es que estamos usando el contenedor de inferencia djl-lmi v12entonces estamos siguiendo el esquema de API de finalización de chat de inferencia de maniquí excelso al destinar una carga útil tanto a Mistral-NeMo-Almohadilla-2407 como a Mistral-NeMo-Instruct-2407.

Mistral-NeMo-Almohadilla-2407

Puede interactuar con el maniquí Mistral-NeMo-Almohadilla-2407 como otros modelos de coexistentes de texto en serie, donde el maniquí procesa una secuencia de entrada y genera las siguientes palabras predichas en la secuencia. En esta sección, proporcionamos algunos mensajes de ejemplo y resultados de muestra. Tenga en cuenta que el maniquí colchoneta no tiene instrucciones ajustadas.

Completar texto

Tareas que implican predecir el subsiguiente token o completar los tokens que faltan en una secuencia:

payload = {
    "messages": (
        {
            "role": "user",
            "content": "The hacienda of France is ___."
        }
    ),
    "max_tokens": 10,
    "temperature": 0.3,
    "top_p": 0.9,
}

response = predictor.predict(payload)('choices')(0)('message')('content').strip()
print(response)

El subsiguiente es el resultado:

Paris
The hacienda of France is Paris.

Instrucción Mistral NeMo

El maniquí Mistral-NeMo-Instruct-2407 es una demostración rápida de que el maniquí colchoneta se puede ajustar para alcanzar un rendimiento convincente. Puede seguir los pasos proporcionados para implementar el maniquí y utilizar el model_id valía de huggingface-llm-mistral-nemo-instruct-2407 en cambio.

El maniquí NeMo adecuado por instrucciones se puede probar con las siguientes tareas:

Engendramiento de código

Mistral NeMo Instruct demuestra fortalezas comparadas para tareas de codificación. Mistral afirma que su tokenizador Tekken para NeMo es aproximadamente un 30% más válido a la hora de comprimir el código fuente. Por ejemplo, consulte el subsiguiente código:

payload = {
    "messages": (
        {
            "role": "user",
            "content": """Create a Binary Search Tree class with methods for insertion, searching, and in-order traversal."""
        }
    ),
    "max_tokens": 2048,
    "temperature": 0.3,
    "top_p": 0.9,
}
text_response = predictor.predict(payload)('choices')(0)('message')('content').strip()
tokens = predictor.predict(payload)('usage')
print(text_response)
print(tokens)

El subsiguiente es el resultado:

class Node:
    def __init__(self, key):
        self.key = key
        self.left = None
        self.right = None

class BinarySearchTree:
    def __init__(self):
        self.root = None

    def insert(self, key):
        if not self.root:
            self.root = Node(key)
        else:
            self._insert(self.root, key)

    def _insert(self, node, key):
        if key < node.key:
            if node.left:
                self._insert(node.left, key)
            else:
                node.left = Node(key)
        elif key > node.key:
            if node.right:
                self._insert(node.right, key)
            else:
                node.right = Node(key)

    def search(self, key):
        return self._search(self.root, key)

    def _search(self, node, key):
        if not node or node.key == key:
            return node

        if key < node.key:
            return self._search(node.left, key)
        else:
            return self._search(node.right, key)

    def inorder_traversal(self):
        self._inorder_traversal(self.root)
        print()

    def _inorder_traversal(self, node):
        if node:
            self._inorder_traversal(node.left)
            print(node.key, end=" ")
            self._inorder_traversal(node.right)

# Example usage:
bst = BinarySearchTree()
bst.insert(50)
bst.insert(30)
bst.insert(20)
bst.insert(40)
bst.insert(70)
bst.insert(60)
bst.insert(80)

print("In-order traversal:")
bst.inorder_traversal()  # Output: 20 30 40 50 60 70 80

print(f"Search 40: {bst.search(40).key if bst.search(40) else 'Not found'}")
print(f"Search 90: {bst.search(90).key if bst.search(90) else 'Not found'}")
{'prompt_tokens': 22, 'completion_tokens': 433, 'total_tokens': 455}

El maniquí demuestra un sólido rendimiento en tareas de coexistentes de código, con el completion_tokens ofreciendo información sobre cómo la compresión de código del tokenizador optimiza efectivamente la representación de los lenguajes de programación utilizando menos tokens.

Matemáticas y razonamiento avanzados.

El maniquí todavía informa fortalezas en precisión matemática y de razonamiento. Por ejemplo, consulte el subsiguiente código:

payload = {
    "messages": (
        {   "role": "system", 
            "content": "You are an expert in mathematics and reasoning. Your role is to provide examples, explanations, and insights related to mathematical concepts, problem-solving techniques, and logical reasoning.",
            "role": "user",
            "content": """Calculating the orbital period of an exoplanet:
             Given: An exoplanet orbits its star at a distance of 2.5 AU (Astronomical Units). The star has a mass of 1.2 solar masses.
             Task: Calculate the orbital period of the exoplanet in Earth years."""
        }
    ),
    "max_tokens": 2048,
    "temperature": 0.3,
    "top_p": 0.9,
}
response = predictor.predict(payload)('choices')(0)('message')('content').strip()
print(response)

El subsiguiente es el resultado:

To calculate the orbital period of an exoplanet, we can use Kepler's Third Law, which states that the square of the orbital period (P) is directly proportional to the cube of the semi-major axis (a) of the orbit and inversely proportional to the mass (M) of the central body. The formula is:

P^2 = (4 * π^2 * a^3) / (G * M)

where:
- P is the orbital period in years,
- a is the semi-major axis in AU (Astronomical Units),
- G is the gravitational constant (6.67430 × 10^-11 m^3 kg^-1 s^-2),
- M is the mass of the star in solar masses.

First, we need to convert the mass of the star from solar masses to kilograms. The mass of the Sun is approximately 1.98847 × 10^30 kg. So, the mass of the star is:

M = 1.2 * 1.98847 × 10^30 kg = 2.386164 × 10^30 kg

Now, we can plug the values into Kepler's Third Law:

P^2 = (4 * π^2 * (2.5 AU)^3) / (G * M)

Since 1 AU is approximately 1.496 × 10^11 meters, the semi-major axis in meters is:

a = 2.5 AU * 1.496 × 10^11 m/AU = 3.74 × 10^12 m

Now, we can calculate P^2:

P^2 = (4 * π^2 * (3.74 × 10^12 m)^3) / (6.67430 × 10^-11 m^3 kg^-1 s^-2 * 2.386164 × 10^30 kg)

P^2 = (4 * π^2 * 5.62 × 10^36 m^3) / (1.589 × 10^20 m^3 kg^-1 s^-2)

P^2 = (4 * π^2 * 5.62 × 10^36 m^3) / (1.589 × 10^20 m^3 kg^-1 s^-2)

P^2 = 4.15 × 10^16 s^2

Now, we take the square root to find the orbital period in seconds:

P = √(4.15 × 10^16 s^2) ≈ 2.04 × 10^8 s

Finally, we convert the orbital period from seconds to Earth years (1 Earth year = 31,557,600 seconds):

P = (2.04 × 10^8 s) / (31,557,600 s/year) ≈ 6.47 years

Therefore, the orbital period of the exoplanet is approximately 6.47 Earth years.

Tarea de traducción de idiomas

En esta tarea, probemos el nuevo tokenizador Tekken de Mistral. Mistral afirma que el tokenizador es dos veces y tres veces más válido a la hora de comprimir coreano y árabe, respectivamente.

Aquí usamos poco de texto para traducir:

text= """
"How can our business leverage Mistral NeMo with our new RAG application?"
"What is our change management strategy merienda we roll out this new application to the field?
"""

Configuramos nuestro mensaje para instruir al maniquí sobre la traducción al coreano y árabe:

prompt=f"""

text={text}

Translate the following text into these languages:

1. Korean
2. Arabic

Label each language section accordingly""".format(text=text)

Luego podemos configurar la carga útil:

payload = {
    "messages": (
        {   "role": "system", 
            "content": "You are an expert in language translation.",
            "role": "user",
            "content": prompt
        }
    ),
    "max_tokens": 2048,
    "temperature": 0.3,
    "top_p": 0.9,
}
#response = predictor.predict(payload)
text_response = predictor.predict(payload)('choices')(0)('message')('content').strip()
tokens = predictor.predict(payload)('usage')
print(text_response)
print(tokens)

El subsiguiente es el resultado:

**1. Korean**

- "우리의 비즈니스가 Mistral NeMo를 어떻게 활용할 수 있을까요?"
- "이 새 애플리케이션을 현장에 롤아웃할 때 우리의 변화 관리 전략은 무엇입니까?"

**2. Arabic**

- "كيف يمكن لعمليتنا الاست من Mistral NeMo مع تطبيق RAG الجديد؟"
- "ما هو استراتيجيتنا في إدارة التغيير بعد تفعيل هذا التطبيق الجديد في الميدان؟"
{'prompt_tokens': 61, 'completion_tokens': 243, 'total_tokens': 304}

Los resultados de la traducción demuestran cómo el número de completion_tokens El uso se reduce significativamente, incluso para tareas que normalmente requieren un uso intensivo de tokens, como traducciones que involucran idiomas como el coreano y el árabe. Esta perfeccionamiento es posible gracias a las optimizaciones proporcionadas por el tokenizador de Tekken. Esta reducción es particularmente valiosa para aplicaciones con muchos tokens, incluidos resúmenes, coexistentes de lengua y conversaciones de varios turnos. Al mejorar la eficiencia de los tokens, el tokenizador de Tekken permite manejar más tareas interiormente de las mismas limitaciones de medios, lo que lo convierte en una utensilio invaluable para optimizar los flujos de trabajo donde el uso de tokens impacta directamente el rendimiento y el costo.

Purificar

Una vez que haya terminado de ejecutar el cuaderno, asegúrese de eliminar todos los medios que creó en el proceso para evitar facturación adicional. Utilice el subsiguiente código:

predictor.delete_model()
predictor.delete_endpoint()

Conclusión

En esta publicación, le mostramos cómo comenzar con Mistral NeMo Almohadilla e Instruct en SageMaker Studio e implementar el maniquí para inferencia. Regalado que los modelos básicos están previamente entrenados, pueden ayudar a sujetar los costos de capacitación e infraestructura y permitir la personalización para su caso de uso. Invitado SageMaker JumpStart en SageMaker Studio ahora para entablar.

Para obtener más medios de Mistral en AWS, consulte el Repositorio Mistral-en-AWS GitHub.


Sobre los autores

Niithiyn Vijeaswaran es un arquitecto de soluciones especializado en IA generativa en el equipo de ciencia de modelos de terceros de AWS. Su radio de enfoque es la IA generativa y los aceleradores de IA de AWS. Tiene una Doctorado en Informática y Bioinformática.

Preston Tuggle es un arquitecto senior de soluciones especializado que trabaja en IA generativa.

shane rai es un diestro principal en IA generativa de la Ordenamiento Mundial de Especialistas de AWS (WWSO). Trabaja con clientes de todos los sectores para resolver sus deposición comerciales más apremiantes e innovadoras utilizando la amplia gradación de servicios de IA/ML basados ​​en la estrato proporcionados por AWS, incluidas ofertas de modelos de proveedores de modelos básicos de primer nivel.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *