Partilhar via


Como implantar modelos Mistral com o estúdio Azure Machine Learning

Neste artigo, você aprenderá a usar o estúdio do Azure Machine Learning para implantar a família de modelos Mistral como APIs sem servidor com cobrança baseada em token pré-pago.

O Mistral AI oferece duas categorias de modelos no estúdio do Azure Machine Learning. Estes modelos estão disponíveis no catálogo de modelos.

  • Modelos premium: Mistral Large e Mistral Small. Esses modelos podem ser implantados como APIs sem servidor com faturamento baseado em token pré-pago.
  • Modelos abertos: Mixtral-8x7B-Instruct-v01, Mixtral-8x7B-v01, Mistral-7B-Instruct-v01 e Mistral-7B-v01. Esses modelos podem ser implantados em cálculos gerenciados em sua própria assinatura do Azure.

Você pode navegar pela família de modelos Mistral no catálogo de modelos filtrando a coleção Mistral.

Família de modelos Mistral

O Mistral Large é o modelo de linguagem grande (LLM) mais avançado da Mistral AI. Pode ser usado em qualquer tarefa baseada na linguagem, graças às suas capacidades de raciocínio e conhecimento de última geração.

Além disso, Mistral Large é:

  • Especializada em RAG. Informações cruciais não são perdidas no meio de longas janelas de contexto (até 32 K tokens).
  • Forte na codificação. Geração, revisão e comentários de código. Suporta todas as principais linguagens de codificação.
  • Multilingue por design. Melhor desempenho em francês, alemão, espanhol e italiano - além do inglês. Dezenas de outros idiomas são suportados.
  • Compatível com IA responsável. Guarda-corpos eficientes no modelo e camada de segurança extra com a safe_mode opção.

Importante

Esta funcionalidade está atualmente em pré-visualização pública. Esta versão de pré-visualização é fornecida sem um contrato de nível de serviço e não a recomendamos para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas.

Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

Implantar a família de modelos Mistral como uma API sem servidor

Certos modelos no catálogo de modelos podem ser implantados como uma API sem servidor com faturamento pré-pago. Esse tipo de implantação fornece uma maneira de consumir modelos como uma API sem hospedá-los em sua assinatura, mantendo a segurança e a conformidade corporativas de que as organizações precisam. Essa opção de implantação não exige cota da sua assinatura.

O Mistral Large e o Mistral Small podem ser implantados como uma API sem servidor com cobrança paga conforme o uso e são oferecidos pela Mistral AI por meio do Microsoft Azure Marketplace. A Mistral AI pode alterar ou atualizar os termos de uso e preços desses modelos.

Pré-requisitos

  • Uma subscrição do Azure com um método de pagamento válido. As subscrições gratuitas ou de avaliação do Azure não funcionarão. Se você não tiver uma assinatura do Azure, crie uma conta paga do Azure para começar.

  • Uma área de trabalho do Azure Machine Learning. Se você não tiver um espaço de trabalho, use as etapas no artigo Guia de início rápido: criar recursos do espaço de trabalho para criar um. A oferta de implantação de modelo de API sem servidor para modelos qualificados na família Mistral só está disponível em espaços de trabalho criados nestas regiões:

    • E.U.A. Leste
    • E.U.A. Leste 2
    • E.U.A. Centro-Norte
    • E.U.A. Centro-Sul
    • E.U.A. Oeste
    • EUA Oeste 3
    • Suécia Central

    Para obter uma lista de regiões disponíveis para cada um dos modelos que suportam implantações de ponto de extremidade de API sem servidor, consulte Disponibilidade de região para modelos em pontos de extremidade de API sem servidor

  • Os controlos de acesso baseado em funções (RBAC do Azure) são utilizados para conceder acesso às operações no Azure Machine Learning. Para executar as etapas neste artigo, sua conta de usuário deve receber a função de Desenvolvedor do Azure AI no grupo de recursos. Para obter mais informações sobre permissões, consulte Gerir o acesso a um espaço de trabalho do Azure Machine Learning.

Criar uma nova implantação

As etapas a seguir demonstram a implantação do Mistral Large, mas você pode usar as mesmas etapas para implantar o Mistral Small substituindo o nome do modelo.

Para criar uma implantação:

  1. Vá para o estúdio do Azure Machine Learning.

  2. Selecione o espaço de trabalho no qual você deseja implantar seu modelo. Para usar a oferta de implantação de modelo de API sem servidor, seu espaço de trabalho deve pertencer a uma das regiões listadas nos pré-requisitos.

  3. Escolha o modelo que deseja implantar, por exemplo, Mistral-large, no catálogo de modelos.

    Como alternativa, você pode iniciar a implantação acessando seu espaço de trabalho e selecionando Pontos>de extremidade>sem servidor Criar.

  4. Na página de visão geral do modelo no catálogo de modelos, selecione Implantar para abrir uma janela de implantação de API sem servidor para o modelo.

  5. Marque a caixa de seleção para confirmar a política de compra da Microsoft.

    Uma captura de tela mostrando como implantar um modelo como uma API sem servidor.

  6. No assistente de implantação, selecione o link para Termos do Azure Marketplace para saber mais sobre os termos de uso.

  7. Você também pode selecionar a guia Preços e termos para saber mais sobre os preços do modelo selecionado.

  8. Se esta for a primeira vez que você implanta o modelo no espaço de trabalho, você precisa inscrever seu espaço de trabalho para a oferta específica (por exemplo, Mistral-large). Esta etapa requer que sua conta tenha as permissões da função Desenvolvedor do Azure AI no Grupo de Recursos, conforme listado nos pré-requisitos. Cada espaço de trabalho tem a sua própria subscrição para a oferta específica do Azure Marketplace, que lhe permite controlar e monitorizar os gastos. Selecione Inscrever-se e Implantar. Atualmente, você pode ter apenas uma implantação para cada modelo em um espaço de trabalho.

  9. Depois de inscrever o espaço de trabalho para a oferta específica do Azure Marketplace, as implantações subsequentes da mesma oferta no mesmo espaço de trabalho não exigem assinatura novamente. Se esse cenário se aplicar a você, você verá uma opção Continuar a implantar para selecionar.

    Uma captura de tela mostrando um espaço de trabalho que já está inscrito na oferta.

  10. Dê um nome à implantação. Esse nome se torna parte da URL da API de implantação. Essa URL deve ser exclusiva em cada região do Azure.

    Uma captura de tela mostrando como indicar o nome da implantação que você deseja criar.

  11. Selecione Implementar. Aguarde até que a implantação seja concluída e você seja redirecionado para a página de pontos de extremidade sem servidor.

  12. Selecione o ponto de extremidade para abrir a página Detalhes.

  13. Selecione a guia Teste para começar a interagir com o modelo.

  14. Você sempre pode encontrar os detalhes, a URL e as chaves de acesso do ponto de extremidade navegando até Pontos de extremidade sem servidor de pontos de extremidade de espaço de trabalho>>.

Para saber mais sobre o faturamento de modelos Mistral implantados como uma API sem servidor com faturamento baseado em token pré-pago, consulte Considerações de custo e cota para a família de modelos Mistral implantados como um serviço.

Consuma a família de modelos Mistral como um serviço

Você pode consumir o Mistral Large usando a API de chat.

  1. No espaço de trabalho, selecione Pontos de extremidade> sem servidor.
  2. Localize e selecione a implantação que você criou.
  3. Copie a URL de destino e os valores do token de chave .
  4. Faça uma solicitação de API usando a API de Inferência de Modelo de IA do Azure na rota /chat/completions e a API de Chat Mistral nativa no /v1/chat/completions.

Para obter mais informações sobre como usar as APIs, consulte a seção de referência .

Referência para a família de modelos Mistral implantados como um serviço

Os modelos Mistral aceitam a API de Inferência de Modelo do Azure AI na rota /chat/completions e a API Mistral Chat nativa em /v1/chat/completions.

API de Inferência de Modelos do Azure AI

O esquema da API de Inferência de Modelo do Azure AI está disponível no artigo Referência à conclusão de chats e é possível obter uma especificação da OpenAPI a partir do próprio ponto final.

API de bate-papo Mistral

Use o método POST para enviar a solicitação para a /v1/chat/completions rota:

Pedir

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

Esquema de solicitação

Payload é uma cadeia de caracteres formatada JSON que contém os seguintes parâmetros:

Chave Type Predefinido Description
messages string Sem predefinição. Este valor deve ser especificado. A mensagem ou o histórico de mensagens a serem usadas para solicitar o modelo.
stream boolean False O streaming permite que os tokens gerados sejam enviados como eventos enviados apenas pelo servidor de dados sempre que estiverem disponíveis.
max_tokens integer 8192 O número máximo de tokens a serem gerados na conclusão. A contagem de tokens do prompt plus max_tokens não pode exceder o comprimento de contexto do modelo.
top_p float 1 Uma alternativa à amostragem com temperatura, chamada amostragem de núcleo, onde o modelo considera os resultados dos tokens com top_p massa de probabilidade. Assim, 0,1 significa que apenas os tokens que compõem a massa de probabilidade superior de 10% são considerados. Geralmente recomendamos alterar top_p ou temperature, mas não ambos.
temperature float 1 A temperatura de amostragem a utilizar, entre 0 e 2. Valores mais altos significam que o modelo mostra de forma mais ampla a distribuição de tokens. Zero significa amostragem gananciosa. Recomendamos alterar este parâmetro ou top_p, mas não ambos.
ignore_eos boolean False Se o token EOS deve ser ignorado e continuar gerando tokens depois que o token EOS for gerado.
safe_prompt boolean False Se deve injetar um aviso de segurança antes de todas as conversas.

O messages objeto tem os seguintes campos:

Chave Type valor
content string O conteúdo da mensagem. O conteúdo é necessário para todas as mensagens.
role string O papel do autor da mensagem. Um de system, userou assistant.

Exemplo de solicitação

Corpo

{
    "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 resposta

A carga útil de resposta é um dicionário com os seguintes campos.

Chave Tipo Description
id string Um identificador exclusivo para a conclusão.
choices array A lista de opções de conclusão que o modelo gerou para as mensagens de entrada.
created integer O carimbo de data/hora Unix (em segundos) de quando a conclusão foi criada.
model string O model_id usado para conclusão.
object string O tipo de objeto, que é sempre chat.completion.
usage object Estatísticas de utilização do pedido de conclusão.

Gorjeta

No modo de streaming, para cada parte da resposta, finish_reason é sempre null, exceto a última que é encerrada por uma carga [DONE]útil. Em cada choices objeto, a chave para messages é alterada por delta.

O choices objeto é um dicionário com os seguintes campos.

Chave Tipo Description
index integer Índice de escolha. Quando best_of> 1, o índice nessa matriz pode não estar em ordem e pode não estar 0 em n-1.
messages ou delta string Resultado da conclusão do bate-papo no messages objeto. Quando o modo de streaming é usado, delta a chave é usada.
finish_reason string A razão pela qual o modelo parou de gerar tokens:
- stop: o modelo atingiu um ponto de paragem natural ou uma sequência de paragem fornecida.
- length: se o número máximo de tokens tiver sido atingido.
- content_filter: Quando a RAI modera e a CMP força a moderação
- content_filter_error: um erro durante a moderação e não foi capaz de tomar uma decisão sobre a resposta
- null: Resposta da API ainda em andamento ou incompleta.
logprobs object As probabilidades de log dos tokens gerados no texto de saída.

O usage objeto é um dicionário com os seguintes campos.

Chave Type valor
prompt_tokens integer Número de tokens no prompt.
completion_tokens integer Número de tokens gerados na conclusão.
total_tokens integer Total de tokens.

O logprobs objeto é um dicionário com os seguintes campos:

Chave Type valor
text_offsets array de integers A posição ou índice de cada token na saída de conclusão.
token_logprobs array de float Selecionado logprobs do dicionário na top_logprobs matriz.
tokens array de string Tokens selecionados.
top_logprobs array de dictionary Matriz de dicionário. Em cada dicionário, a chave é o token e o valor é o prob.

Exemplo de resposta

O JSON a seguir é um exemplo de resposta:

{
    "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
    }
}

Mais exemplos de inferência

Tipo de amostra Bloco de notas de exemplo
CLI usando solicitações da Web CURL e Python webrequests.ipynb
OpenAI SDK (experimental) openaisdk.ipynb
LangChain langchain.ipynb
Mistral AI mistralai.ipynb
LiteLLM litellm.ipynb

Custo e quotas

Considerações de custo e cota para a família de modelos Mistral implantados como um serviço

Os modelos Mistral implantados como um serviço são oferecidos pela Mistral AI por meio do Azure Marketplace e integrados ao estúdio Azure Machine Learning para uso. Pode obter os preços do Azure Marketplace quando implementar os modelos.

Sempre que uma área de trabalho subscreve uma determinada oferta de modelo do Azure Marketplace, é criado um novo recurso para controlar os custos associados ao seu consumo. O mesmo recurso é usado para monitorizar os custos associados à inferência; no entanto, estão disponíveis vários medidores para monitorizar cada cenário de forma independente.

Para obter mais informações sobre como controlar os custos, consulte Monitorizar custos dos modelos oferecidos através do Azure Marketplace.

A quota é gerida por implementação. Cada implementação tem um limite de taxa de 200 000 tokens por minuto e 1000 pedidos de API por minuto. No entanto, atualmente, limitamos uma implementação por modelo por área de trabalho. Contacte o Suporte do Microsoft Azure se os limites de taxa atuais não forem suficientes para os seus cenários.

Filtragem de conteúdos

Os modelos implantados como um serviço com pagamento conforme o uso são protegidos pela segurança de conteúdo da IA do Azure. Com a segurança de conteúdo de IA do Azure habilitada, tanto o prompt quanto a conclusão passam por um conjunto de modelos de classificação destinados a detetar e prevenir a saída de conteúdo nocivo. O sistema de filtragem de conteúdo deteta e age em categorias específicas de conteúdo potencialmente nocivo em prompts de entrada e finalizações de saída. Saiba mais sobre a Segurança de Conteúdo do Azure AI.