Compartir a través de


Implementación de modelos de Mistral con Inteligencia artificial de Azure Studio

Importante

Algunas de las características descritas en este artículo solo pueden estar disponibles en versión preliminar. Esta versión preliminar se ofrece sin acuerdo de nivel de servicio y no se recomienda para las 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.

En este artículo, aprenderá a usar Inteligencia artificial de Azure 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 la Azure AI Studio. Estos modelos están disponibles en el catálogo de modelos:

  • Modelos Premium: Mistral Large y Mistral Small. Estos modelos se pueden implementar como API sin servidor con facturación basada en tokens de pago por uso.
  • Modelos abiertos: Mixtral-8x7B-Instruct-v01, Mixtral-8x7B-v01, Mistral-7B-Instruct-v01 y Mistral-7B-v01. Estos modelos 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.

Además, Mistral Large es:

  • Especializado en RAG. La información crucial no se pierde en medio de ventanas de contexto largas (hasta tokens 32-K).
  • 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, italiano e 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.

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 y Mistral Small se pueden implementar como una API sin servidor con facturación de pago por uso y se ofrecen mediante Miatral 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 centro de AI Studio. La oferta de implementación de modelos de API sin servidor para los modelos aptos de la familia Mistral solo está disponible con centros creados 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, consulte Disponibilidad de región para modelos en puntos de conexión de API sin servidor.

  • Un proyecto de Azure AI Studio.

  • Los controles de acceso basado en rol de Azure (RBAC de Azure) se usan para conceder acceso a las operaciones en la inteligencia artificial de Azure Studio. 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 más información sobre los permisos, consulte control de acceso basado en rol en Inteligencia artificial de Azure Studio.

Crear una nueva implementación

Los pasos siguientes muestran la implementación de Mistral Large, pero puede usar los mismos pasos para implementar Mistral Small reemplazando el nombre del modelo.

Para crear una implementación:

  1. Inicie sesión en Azure AI Studio.

  2. Seleccione Catálogo modelo en la barra lateral de la izquierda.

  3. Busque y seleccione Mistral-large para abrir su página Detalles.

    Captura de pantalla en la que se muestra cómo acceder a la página de detalles del modelo desde el catálogo de modelo.

  4. Seleccione Implementar para abrir una ventana de implementación de API sin servidor para el modelo.

  5. Como alternativa, puedes iniciar una implementación empezando por el proyecto en AI Studio.

    1. En la barra lateral de la izquierda del proyecto, seleccione Componentes>Implementaciones.

    2. Seleccione + Crear implementación.

    3. Busque y seleccione Mistral-large. para abrir la página Detalles del modelo.

      Captura de pantalla en la que se muestra cómo acceder a la página de detalles del modelo desde la página Implementaciones del proyecto.

    4. Seleccione Confirmar para abrir una ventana de implementación de API sin servidor para el modelo.

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

  6. Selecciona el proyecto en el que deseas implementar el modelo. Para usar la oferta de implementación de modelos de API sin servidor, el área de trabajo debe pertenecer a una de las regiones enumeradas en la sección Requisitos previos.

  7. 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.

  8. Seleccione la pestaña Precios y términos para obtener información sobre los precios del modelo seleccionado.

  9. Seleccione el botón Suscribir e implementar. Si esta es la primera vez que implementas el modelo en el proyecto, debes suscribirte al proyecto para la oferta concreta. Para este paso es necesario que la cuenta tenga los permisos del rol Desarrollador de Azure AI en el grupo de recursos, como se muestra en los requisitos previos. Cada proyecto tiene su propia suscripción a la oferta concreta de Azure Marketplace del modelo, lo que te permite controlar y supervisar los gastos. Actualmente solo puede tener una implementación para cada modelo dentro de un proyecto.

  10. Una vez que suscribas el proyecto para la oferta concreta de Azure Marketplace, las implementaciones posteriores de la misma oferta en el mismo proyecto 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 proyecto que ya está suscrito a la oferta.

  11. 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.

  12. Seleccione Implementar. Espere hasta que la implementación esté lista y se le redirigirá a la página Implementaciones.

  13. Seleccione Abrir en el área de juegos para empezar a interactuar con el modelo.

  14. Vuelva a la página Implementaciones, seleccione la implementación y anote la URL de Objetivo del punto de conexión y la Clave secreta. Para obtener más información sobre el uso de las API, consulte la sección de referencia.

  15. Puede encontrar los detalles, la dirección URL y las claves de acceso del punto de conexión si navega a la página Información general del proyecto. Después, en la barra lateral de la izquierda del proyecto, seleccione Componentes>Implementaciones.

Para obtener información sobre la facturación del modelo de inteligencia artificial Mistral implementado como una API sin servidor con facturación basada en tokens de pago por uso, vea Consideraciones de costos y cuotas para la familia Mistral de modelos implementados como servicio.

Consumo de la familia Mistral de modelos como servicio

Puede consumir modelos de la familia Mistral mediante la API de chat.

  1. En la página Información general del proyecto, vaya a la barra lateral de la izquierda y seleccione Componentes>Implementaciones.

  2. Busque y seleccione la implementación que ha creado.

  3. Copia la dirección URL de destino y el valor clave.

  4. Realice una solicitud de API mediante la API de inferencia de modelos de Azure AI 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 siguientes campos:

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 siguientes campos:

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 Mistral implementados como API sin servidor son ofrecidos por Mistral AI a través de Azure Marketplace e integrados con Azure AI Studio para su uso. Puedes encontrar los precios de Azure Marketplace al implementar modelos.

Cada vez que un proyecto se suscribe a una oferta 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 Supervisar 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 proyecto. 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 una API sin servidor con facturación de pago por uso están protegidos por Seguridad del contenido de Azure AI. Con la seguridad de contenido de Azure AI, 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 detecta y toma medidas en categorías específicas de contenido potencialmente perjudicial tanto en solicitudes de entrada como en finalizaciones de salida. Puede encontrar más información sobre el filtrado de contenido aquí.