Compartir a través de


Implementación de modelos Mistral con el Estudio de Azure Machine Learning

En este artículo, aprenderá a usar Azure Machine Learning Studio para implementar la familia mistral de modelos como API sin servidor con facturación basada en tokens de pago por uso.

Mistral AI ofrece dos categorías de modelos en Azure Machine Learning Studio. Estos modelos están disponibles en el catálogo de modelos.

  • Modelos Premium: Mistral Large (2402), Mistral Large (2407), Mistral Small y Ministral-3B.
  • Modelos abiertos: Mistral Nemo, Mixtral-8x7B-Instruct-v01, Mixtral-8x7B-v01, Mistral-7B-Instruct-v01 y Mistral-7B-v01.

Todos los modelos Premium y Mistral Nemo (un modelo abierto) se pueden implementar como API sin servidor con facturación basada en tokens de pago por uso. Los otros modelos abiertos se pueden implementar en procesos administrados en su propia suscripción de Azure.

Puede examinar la familia Mistral de modelos en el catálogo de modelo filtrando por la colección Mistral.

Familia Mistral de modelos

Mistral Large es el modelo de lenguaje grande (LLM) más avanzado de Mistral AI. Se puede usar en cualquier tarea basada en lenguaje gracias a sus capacidades de razonamiento y conocimiento de última generación. Hay dos variantes disponibles para la versión del modelo Mistral Large:

  • Mistral Large (2402)
  • Mistral Large (2407)

Además, algunos atributos de Mistral Large (2402) incluyen:

  • Especializado en RAG. La información crucial no se pierde en medio de ventanas de contexto largas (hasta 32 K tokens).
  • Fuerte en la codificación. Generación de código, revisión y comentarios. Admite todos los lenguajes de codificación estándar.
  • Multilingüe por diseño. Mejor rendimiento en francés, alemán, español e italiano, además del inglés. Se admiten docenas de otros idiomas.
  • Compatible con la inteligencia artificial responsable. Barreras de protección eficientes simuladas mediante "bake" en el modelo y capa de seguridad adicional con la opción safe_mode.

Los atributos de Mistral Large (2407) incluyen:

  • Multilingüe por diseño. Admite docenas de idiomas, incluidos inglés, francés, alemán, español e italiano.
  • Experto en codificación. Entrenado en más de 80 lenguajes de codificación, incluidos Python, Java, C, C++, JavaScript y Bash. También se entrena en lenguajes más específicos, como Swift y Fortran.
  • Centrado en el agente. Posee funcionalidades de agente con llamadas de funciones nativas y salida JSON.
  • Avanzado en el razonamiento. Muestra capacidades matemáticas y de razonamiento de última generación.

Importante

Esta característica actualmente está en su versión preliminar pública. Esta versión preliminar se ofrece sin un Acuerdo de Nivel de Servicio y no se recomienda para cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas.

Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.

Implementación de la familia Mistral de modelos como una API sin servidor

Algunos modelos del catálogo de modelo se pueden implementar como una API sin servidor con la facturación de pago por uso. Este tipo de implementación proporciona una manera de consumir modelos como una API sin hospedarlos en la suscripción, a la vez que mantiene la seguridad empresarial y el cumplimiento que necesitan las organizaciones. Esta opción de implementación no requiere cuota de la suscripción.

Mistral Large (2402), Mistral Large (2407), Mistral Small y Mistral Nemo se pueden implementar como una API sin servidor con facturación de pago por uso y que ofrece Mistral AI a través de Microsoft Azure Marketplace. Mistral AI puede cambiar o actualizar los términos de uso y los precios de estos modelos.

Requisitos previos

  • Una suscripción de Azure con un método de pago válido. Las suscripciones gratuitas o de evaluación de Azure no funcionarán. Si no tiene una suscripción de Azure, cree una cuenta de Azure de pago para comenzar.

  • Un área de trabajo de Azure Machine Learning. Si no tiene un área de trabajo, siga los pasos descritos en el artículo Inicio rápido: Creación de recursos del área de trabajo para crear uno. La oferta de implementación de modelos de API sin servidor para los modelos aptos de la familia Mistral solo está disponible en las áreas de trabajo creadas en estas regiones:

    • Este de EE. UU.
    • Este de EE. UU. 2
    • Centro-Norte de EE. UU
    • Centro-sur de EE. UU.
    • Oeste de EE. UU.
    • Oeste de EE. UU. 3
    • Centro de Suecia

    Para obtener una lista de las regiones disponibles para cada uno de los modelos que admiten implementaciones de puntos de conexión de API sin servidor, vea Disponibilidad de región para modelos en puntos de conexión de API sin servidor

  • Los controles de acceso basado en rol de Azure (RBAC de Azure) se usan para conceder acceso a las operaciones en Azure Machine Learning. Para realizar los pasos descritos en este artículo, la cuenta de usuario debe tener asignado el rol Desarrollador de Azure AI en el grupo de recursos. Para obtener más información sobre los permisos, consulte Administración del acceso a un área de trabajo de Azure Machine Learning.

Crear una nueva implementación

Los pasos siguientes muestran la implementación de Mistral Large (2402), pero puede usar los mismos pasos para implementar Mistral Nemo o cualquiera de los modelos Mistral premium reemplazando el nombre del modelo.

Para crear una implementación:

  1. Vaya a Azure Machine Learning Studio.

  2. Seleccione el área de trabajo en la que desea implementar el modelo. Para usar la oferta de implementación del modelo de API sin servidor, el área de trabajo debe pertenecer a una de las regiones enumeradas en los requisitos previos.

  3. Elija el modelo que desea implementar, por ejemplo, el modelo Mistral Large (2402), en el catálogo de modelos.

    Como alternativa, puede iniciar la implementación si va al área de trabajo y selecciona Puntos de conexión>Puntos de conexión sin servidor>Crear.

  4. En la página de información general del modelo del catálogo de modelos, seleccione Implementar para abrir una ventana de implementación de API sin servidor para el modelo.

  5. Active la casilla para confirmar la directiva de compra de Microsoft.

    Captura de pantalla en la que se muestra cómo implementar un modelo como una API sin servidor.

  6. En el Asistente para la implementación, selecciona el vínculo a Términos de Azure Marketplace para obtener más información sobre los términos de uso.

  7. También puede seleccionar la pestaña Precios y términos para obtener información sobre los precios del modelo seleccionado.

  8. Si es la primera vez que implementa el modelo en el área de trabajo, debe suscribirse al área de trabajo para la oferta concreta (por ejemplo, Mistral Large (2402)). Este paso requiere que la cuenta tenga permisos de rol de desarrollador de Azure AI en el grupo de recursos, como se muestra en los requisitos previos. Cada área de trabajo tiene su propia suscripción a la oferta concreta de Azure Marketplace, lo que le permite controlar y supervisar los gastos. Seleccione Suscribir e implementar. Actualmente solo puedes tener una implementación para cada modelo dentro de un área de trabajo.

  9. Una vez que suscribas el área de trabajo para la oferta concreta de Azure Marketplace, las implementaciones posteriores de la misma oferta en la misma área de trabajo no requieren la suscripción de nuevo. Si este escenario le afecta, podrá seleccionar la opción Continuar para implementar.

    Captura de pantalla que muestra un área de trabajo que ya está suscrita a la oferta.

  10. Asigne un nombre a la implementación. Este nombre forma parte de la dirección URL de la API de implementación. Esta dirección URL debe ser única en cada región de Azure.

    Captura de pantalla que muestra cómo indicar el nombre de la implementación que desea crear.

  11. Seleccione Implementar. Espere hasta que finalice la implementación y se le redirigirá a la página de puntos de conexión sin servidor.

  12. Seleccione el punto de conexión para abrir su página de Detalles.

  13. Seleccione la pestaña Prueba para empezar a interactuar con el modelo.

  14. Puede encontrar los detalles, la dirección URL y las claves de acceso del punto de conexión; para ello, vaya a Área de trabajo>Puntos de conexión>Puntos de conexión sin servidor.

Para obtener información sobre la facturación de los modelos Mistral implementados como una API sin servidor con facturación basada en tokens de pago por uso, vea Consideraciones de costo y cuota para la familia mistral de modelos implementados como servicio.

Consumo de la familia Mistral de modelos como servicio

Puede consumir modelos Mistral mediante la API de chat.

  1. En el área de trabajo, seleccione Puntos de conexión>Puntos de conexión sin servidor.
  2. Busque y seleccione la implementación que ha creado.
  3. Copie la dirección URL de Destino y los valores del token de Clave.
  4. Realice una solicitud de API mediante la API Azure AI Model Inference en la ruta /chat/completions y la API nativa Mistral Chat en /v1/chat/completions.

Para obtener más información sobre el uso de las API, consulte la sección de referencia.

Referencia de la familia Mistral de modelos implementados como servicio

Los modelos Mistral aceptan tanto la API Azure AI Model Inference en la ruta /chat/completions y la nativaAPI Mistral Chat en /v1/chat/completions.

API de inferencia de modelos de Azure AI

El esquema de API de inferencia de modelos de Azure AI puede encontrarse en el artículo de Referencia para las finalizaciones de chat y puede obtenerse una Especificación OpenAPI del propio punto de conexión.

Mistral Chat API

Use el método POST para enviar la solicitud a la ruta /v1/chat/completions:

Solicitar

POST /v1/chat/completions HTTP/1.1
Host: <DEPLOYMENT_URI>
Authorization: Bearer <TOKEN>
Content-type: application/json

Esquema de solicitud

Payload es una cadena con formato JSON que contiene los parámetros siguientes:

Clave Tipo Valor predeterminado Descripción
messages string No hay valor predeterminado. Este valor debe especificarse. El mensaje o historial de mensajes con los que se solicitará al modelo.
stream boolean False El streaming permite que los tokens generados se envíen como eventos enviados por el servidor de solo datos cada vez que estén disponibles.
max_tokens integer 8192 El número máximo de tokens a generar en la finalización. El número de tokens de su pregunta más max_tokens no puede exceder la longitud del contexto del modelo.
top_p float 1 Alternativa al muestreo con temperatura, llamada muestreo de núcleo, donde el modelo considera los resultados de los tokens con masa de probabilidad top_p. Así, 0,1 significa que solo se consideran los tokens que comprenden la masa de probabilidad del 10% superior. Por lo general, recomendamos modificar top_p o temperature, pero no ambos.
temperature float 1 Temperatura de muestreo que se va a usar, entre 0 y 2. Los valores más altos significan que el modelo muestrea de forma más amplia la distribución de los tokens. Cero significa muestreo excesivo. Se recomienda modificar este parámetro o top_p, pero no ambos.
ignore_eos boolean False Si se omite el token EOS y continúa generando tokens después de que se genere el token EOS.
safe_prompt boolean False Si se inyecta un aviso de seguridad antes de todas las conversaciones.

El objeto messages tiene los siguientes campos:

Clave Tipo Valor
content string Contenido del mensaje. El contenido es necesario para todos los mensajes.
role string Rol del autor del mensaje. Uno desystem, user o assistant.

Ejemplo de solicitud

Cuerpo

{
    "messages":
    [
        { 
        "role": "system", 
        "content": "You are a helpful assistant that translates English to Italian."
        },
        {
        "role": "user", 
        "content": "Translate the following sentence from English to Italian: I love programming."
        }
    ],
    "temperature": 0.8,
    "max_tokens": 512,
}

Esquema de respuesta

La carga de respuesta es un diccionario con los campos siguientes.

Clave Tipo Descripción
id string Identificador único para la finalización.
choices array La lista de opciones de finalización que el modelo generó para los mensajes de entrada.
created integer Marca de tiempo de Unix (en segundos) de cuando se creó la finalización.
model string El model_id usado para la finalización.
object string Tipo de objeto, que siempre es chat.completion.
usage object Estadísticas de uso de la solicitud de finalización.

Sugerencia

En el modo de streaming, para cada fragmento de respuesta, finish_reason es siempre null, excepto a partir del último que está terminado por una carga [DONE]. En cada objeto choices, la clave de messages se cambia por delta.

El objeto choices es un diccionario con los campos siguientes.

Clave Tipo Descripción
index integer Índice de elección. Cuando best_of> 1, es posible que el índice de esta matriz no esté en orden y que no sea de 0 a n-1.
messages o delta string Resultado de la finalización del chat en objeto messages. Cuando se usa el modo streaming, se usa la clave de delta.
finish_reason string Motivo por el que el modelo dejó de generar tokens:
- stop: el modelo alcanza un punto de parada natural o una secuencia de detención proporcionada.
- length: si se ha alcanzado el número máximo de tokens.
- content_filter: cuando RAI modera y CMP fuerza la moderación
- content_filter_error: un error durante la moderación y no pudo tomar decisiones sobre la respuesta
- null: la respuesta de la API sigue en curso o incompleta.
logprobs object Probabilidades de registro de los tokens generados en el texto de salida.

El objeto usage es un diccionario con los campos siguientes.

Clave Tipo Valor
prompt_tokens integer Número de tokens en el símbolo del sistema.
completion_tokens integer Número de tokens generados en la finalización.
total_tokens integer Total de tokens.

El objeto logprobs es un diccionario con los siguientes campos:

Clave Tipo Valor
text_offsets array de integers Posición o índice de cada token en la salida de finalización.
token_logprobs array de float Seleccionado logprobs en el diccionario de la matriz top_logprobs.
tokens array de string Tokens seleccionados.
top_logprobs array de dictionary Matriz de diccionario. En cada diccionario, la clave es el token y el valor es la probabilidad.

Ejemplo de respuesta

El siguiente código JSON es una solicitud de ejemplo:

{
    "id": "12345678-1234-1234-1234-abcdefghijkl",
    "object": "chat.completion",
    "created": 2012359,
    "model": "",
    "choices": [
        {
            "index": 0,
            "finish_reason": "stop",
            "message": {
                "role": "assistant",
                "content": "Sure, I\'d be happy to help! The translation of ""I love programming"" from English to Italian is:\n\n""Amo la programmazione.""\n\nHere\'s a breakdown of the translation:\n\n* ""I love"" in English becomes ""Amo"" in Italian.\n* ""programming"" in English becomes ""la programmazione"" in Italian.\n\nI hope that helps! Let me know if you have any other sentences you\'d like me to translate."
            }
        }
    ],
    "usage": {
        "prompt_tokens": 10,
        "total_tokens": 40,
        "completion_tokens": 30
    }
}

Más ejemplos de inferencia

Tipo de ejemplo Cuaderno de ejemplo
CLI mediante CURL y solicitudes web de Python webrequests.ipynb
SDK de OpenAI (experimental) openaisdk.ipynb
LangChain langchain.ipynb
Mistral AI mistralai.ipynb
LiteLLM litellm.ipynb

Costo y cuotas

Consideraciones de coste y cuota para la familia Mistral de modelos implementados como servicio

Los modelos de Mistral implementados como servicio son ofrecidos por Mistral AI a través de Azure Marketplace e integrados con Inteligencia artificial del Estudio de Azure Machine Learning para su uso. Puedes ver los precios de Azure Marketplace al implementar los modelos.

Cada vez que un área de trabajo se suscribe a una oferta de modelo determinada de Azure Marketplace, se crea un nuevo recurso para realizar un seguimiento de los costos asociados a su consumo. El mismo recurso se usa para hacer un seguimiento de los costos asociados con la inferencia; sin embargo, hay varios medidores disponibles para hacer un seguimiento de cada escenario de forma independiente.

Para más información sobre cómo realizar un seguimiento de los costos, consulte Supervisión de los costos de los modelos ofrecidos en Azure Marketplace.

La cuota se administra por implementación. Cada implementación tiene un límite de velocidad de 200 000 tokens por minuto y 1000 solicitudes de API por minuto. Sin embargo, actualmente limitamos una implementación por modelo por área de trabajo. Póngase en contacto con el Soporte técnico de Microsoft Azure si los límites de velocidad actuales no son suficientes para sus escenarios.

Filtrado de contenido

Los modelos implementados como servicio con pago por uso están protegidos por Seguridad del contenido de Azure AI. Con la seguridad de contenido de Azure AI habilitada, tanto la solicitud como la finalización pasan por un conjunto de modelos de clasificación destinados a detectar y evitar la salida de contenido dañino. El sistema de filtrado de contenido (versión preliminar) detecta y toma medidas en categorías específicas de contenido potencialmente perjudicial tanto en solicitudes de entrada como en finalizaciones de salida. Obtenga más información sobre Seguridad del contenido de Azure AI.