Compartilhar via


Como usar modelos de inserção V3 da Cohere com o Estúdio de IA do Azure

Importante

Os itens marcados (versão prévia) neste artigo estão atualmente em versão prévia pública. Essa versão prévia é fornecida sem um contrato de nível de serviço e não recomendamos isso para cargas de trabalho de produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos. Para obter mais informações, consulte Termos de Uso Complementares de Versões Prévias do Microsoft Azure.

Neste artigo, você aprenderá sobre os modelos de inserção V3 da Cohere e como usar isso com o Estúdio de IA do Azure. A família Cohere de modelos inclui vários modelos otimizados para diferentes casos de uso, incluindo preenchimentos de chat, inserções e reclassificação. Os modelos do Cohere são otimizados para vários casos de uso que incluem raciocínio, resumo e resposta às perguntas.

Importante

Os modelos que estão em versão prévia são marcados como versão prévia em seus cartões de modelo no catálogo de modelos.

Modelos de inserção do Cohere

A família Cohere de modelos para inserções inclui os seguintes modelos:

O Cohere Embed English é um modelo de representação multimodal (texto e imagem) usado para pesquisa semântica, geração aumentada de recuperação (RAG), classificação e agrupamento. O modelo de Inserção em inglês tem bom desempenho no parâmetro de comparação MTEB HuggingFace (inserção de texto em massa) e em casos de uso para diversos setores, como financeiro, jurídico e corporativo de uso geral. O Embed English também tem os seguintes atributos:

  • Incorporar Inglês tem 1.024 dimensões
  • A janela de contexto do modelo é de 512 tokens
  • Incorporar Inglês aceita imagens como uma URL de dados codificada em base64

As incorporações de imagens consomem um número fixo de tokens por imagem—1.000 tokens por imagem—o que se traduz em um preço de US$ 0,0001 por imagem incorporada. O tamanho ou a resolução da imagem não afeta o número de tokens consumidos, desde que a imagem esteja dentro das dimensões, tamanho de arquivo e formatos aceitos.

Pré-requisitos

Para usar modelos de Inserção V3 do Cohere com o Estúdio de IA do Azure, você precisa dos seguintes pré-requisitos:

Uma implantação de modelo

Implantação em APIs sem servidor

Os modelos de Inserção V3 do Cohere podem ser implantados em pontos de extremidade de API sem servidor com cobrança paga conforme o uso. Esse tipo de implantação fornece uma maneira de consumir modelos como uma API sem hospedá-los em sua assinatura, ao mesmo tempo que mantém a segurança empresarial e a conformidade que as organizações precisam.

A implantação em um ponto de extremidade de API sem servidor não exige o uso de cotas da sua assinatura. Se ainda não estiver implantado, use o Estúdio de IA do Azure, o SDK do Azure Machine Learning para Python, a CLI do Azure ou os modelos do ARM para implantar o modelo como uma API sem servidor.

O pacote de inferência instalado

Você pode consumir previsões desse modelo usando o pacote azure-ai-inference com Python. Para instalar esse pacote, você precisa atender aos seguintes pré-requisitos:

  • Python 3.8 ou posterior instalado, incluindo o pip.
  • O URL do ponto de extremidade. Para criar a biblioteca de clientes, você precisa transmitir o URL do ponto de extremidade. O URL do ponto de extremidade tem o formulário https://your-host-name.your-azure-region.inference.ai.azure.com, em que your-host-name é o nome de host exclusivo da implantação do modelo e your-azure-region é a região do Azure em que o modelo é implantado (por exemplo, eastus2).
  • Dependendo da sua preferência de autenticação e implantação de modelos, você precisará de uma chave para autenticação no serviço ou de credenciais do Microsoft Entra ID. A chave é uma cadeia de caracteres de 32 caracteres.

Depois de atender aos pré-requisitos, instale o pacote de inferência da IA do Azure com o seguinte comando:

pip install azure-ai-inference

Leia mais sobre o pacote de inferência e a referência da IA do Azure.

Dica

Além disso, o Cohere dá suporte ao uso de uma API personalizada para usar com recursos específicos do modelo. Para usar a API específica do provedor de modelos, verifique a documentação do Cohere.

Trabalhar com inserções

Nesta seção, você usa a API de inferência do modelo de IA do Azure com um modelo de inserções.

Criar um cliente para consumir o modelo

Primeiro, crie o cliente para consumir o modelo. O código a seguir usa um URL de ponto de extremidade e uma chave que são armazenados em variáveis ​​de ambiente.

import os
from azure.ai.inference import EmbeddingsClient
from azure.core.credentials import AzureKeyCredential

model = EmbeddingsClient(
    endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
    credential=AzureKeyCredential(os.environ["AZURE_INFERENCE_CREDENTIAL"]),
)

Como obter os recursos do modelo

A rota /info retorna informações sobre o modelo que é implantado no ponto de extremidade. Retorne as informações do modelo chamando o seguinte método:

model_info = model.get_model_info()

A resposta é a seguinte:

print("Model name:", model_info.model_name)
print("Model type:", model_info.model_type)
print("Model provider name:", model_info.model_provider)
Model name: Cohere-embed-v3-english
Model type": embeddings
Model provider name": Cohere

Criar inserções

Crie uma solicitação de inserção para exibir a saída do modelo.

response = model.embed(
    input=["The ultimate answer to the question of life"],
)

Dica

A janela de contexto para modelos de Inserção V3 do Cohere é 512. Verifique se você não excede esse limite ao criar inserções.

A resposta é a seguinte, na qual você pode ver as estatísticas de uso do modelo:

import numpy as np

for embed in response.data:
    print("Embeding of size:", np.asarray(embed.embedding).shape)

print("Model:", response.model)
print("Usage:", response.usage)

Pode ser útil computar inserções em lotes de entrada. O parâmetro inputs pode ser uma lista de cadeias de caracteres, em que cada cadeia de caracteres é uma entrada diferente. Por sua vez, a resposta é uma lista de inserções, em que cada uma corresponde à entrada na mesma posição.

response = model.embed(
    input=[
        "The ultimate answer to the question of life", 
        "The largest planet in our solar system is Jupiter",
    ],
)

A resposta é a seguinte, na qual você pode ver as estatísticas de uso do modelo:

import numpy as np

for embed in response.data:
    print("Embeding of size:", np.asarray(embed.embedding).shape)

print("Model:", response.model)
print("Usage:", response.usage)

Dica

Os modelos de Inserção V3 da Cohere podem levar lotes de 1024 por vez. Ao criar lotes, verifique se você não excede esse limite.

Criar diferentes tipos de inserções

Os modelos de Inserção V3 da Cohere podem gerar várias inserções para a mesma entrada, dependendo de como você planeja usá-las. Essa funcionalidade permite recuperar inserções mais precisas para padrões de RAG.

O exemplo a seguir mostra como criar inserções usadas para criar uma inserção para um documento que será armazenado em um banco de dados de vetor:

from azure.ai.inference.models import EmbeddingInputType

response = model.embed(
    input=["The answer to the ultimate question of life, the universe, and everything is 42"],
    input_type=EmbeddingInputType.DOCUMENT,
)

Ao trabalhar em uma consulta para recuperar esse documento, você pode usar o trecho de código a seguir para criar as inserções para a consulta e maximizar o desempenho de recuperação.

from azure.ai.inference.models import EmbeddingInputType

response = model.embed(
    input=["What's the ultimate meaning of life?"],
    input_type=EmbeddingInputType.QUERY,
)

Os modelos de Inserção V3 do Cohere podem otimizar as inserções com base em seu caso de uso.

Modelos de inserção do Cohere

A família Cohere de modelos para inserções inclui os seguintes modelos:

O Cohere Embed English é um modelo de representação multimodal (texto e imagem) usado para pesquisa semântica, geração aumentada de recuperação (RAG), classificação e agrupamento. O modelo de Inserção em inglês tem bom desempenho no parâmetro de comparação MTEB HuggingFace (inserção de texto em massa) e em casos de uso para diversos setores, como financeiro, jurídico e corporativo de uso geral. O Embed English também tem os seguintes atributos:

  • Incorporar Inglês tem 1.024 dimensões
  • A janela de contexto do modelo é de 512 tokens
  • Incorporar Inglês aceita imagens como uma URL de dados codificada em base64

As incorporações de imagens consomem um número fixo de tokens por imagem—1.000 tokens por imagem—o que se traduz em um preço de US$ 0,0001 por imagem incorporada. O tamanho ou a resolução da imagem não afeta o número de tokens consumidos, desde que a imagem esteja dentro das dimensões, tamanho de arquivo e formatos aceitos.

Pré-requisitos

Para usar modelos de Inserção V3 do Cohere com o Estúdio de IA do Azure, você precisa dos seguintes pré-requisitos:

Uma implantação de modelo

Implantação em APIs sem servidor

Os modelos de Inserção V3 do Cohere podem ser implantados em pontos de extremidade de API sem servidor com cobrança paga conforme o uso. Esse tipo de implantação fornece uma maneira de consumir modelos como uma API sem hospedá-los em sua assinatura, ao mesmo tempo que mantém a segurança empresarial e a conformidade que as organizações precisam.

A implantação em um ponto de extremidade de API sem servidor não exige o uso de cotas da sua assinatura. Se ainda não estiver implantado, use o Estúdio de IA do Azure, o SDK do Azure Machine Learning para Python, a CLI do Azure ou os modelos do ARM para implantar o modelo como uma API sem servidor.

O pacote de inferência instalado

Você pode consumir previsões desse modelo usando o pacote @azure-rest/ai-inference de npm. Para instalar esse pacote, você precisa atender aos seguintes pré-requisitos:

  • Versões LTS de Node.js com npm.
  • O URL do ponto de extremidade. Para criar a biblioteca de clientes, você precisa transmitir o URL do ponto de extremidade. O URL do ponto de extremidade tem o formulário https://your-host-name.your-azure-region.inference.ai.azure.com, em que your-host-name é o nome de host exclusivo da implantação do modelo e your-azure-region é a região do Azure em que o modelo é implantado (por exemplo, eastus2).
  • Dependendo da sua preferência de autenticação e implantação de modelos, você precisará de uma chave para autenticação no serviço ou de credenciais do Microsoft Entra ID. A chave é uma cadeia de caracteres de 32 caracteres.

Depois de ter esses pré-requisitos, instale a biblioteca de inferência do Azure para JavaScript com o seguinte comando:

npm install @azure-rest/ai-inference

Dica

Além disso, o Cohere dá suporte ao uso de uma API personalizada para usar com recursos específicos do modelo. Para usar a API específica do provedor de modelos, verifique a documentação do Cohere.

Trabalhar com inserções

Nesta seção, você usa a API de inferência do modelo de IA do Azure com um modelo de inserções.

Criar um cliente para consumir o modelo

Primeiro, crie o cliente para consumir o modelo. O código a seguir usa um URL de ponto de extremidade e uma chave que são armazenados em variáveis ​​de ambiente.

import ModelClient from "@azure-rest/ai-inference";
import { isUnexpected } from "@azure-rest/ai-inference";
import { AzureKeyCredential } from "@azure/core-auth";

const client = new ModelClient(
    process.env.AZURE_INFERENCE_ENDPOINT, 
    new AzureKeyCredential(process.env.AZURE_INFERENCE_CREDENTIAL)
);

Como obter os recursos do modelo

A rota /info retorna informações sobre o modelo que é implantado no ponto de extremidade. Retorne as informações do modelo chamando o seguinte método:

await client.path("/info").get()

A resposta é a seguinte:

console.log("Model name: ", model_info.body.model_name);
console.log("Model type: ", model_info.body.model_type);
console.log("Model provider name: ", model_info.body.model_provider_name);
Model name: Cohere-embed-v3-english
Model type": embeddings
Model provider name": Cohere

Criar inserções

Crie uma solicitação de inserção para exibir a saída do modelo.

var response = await client.path("/embeddings").post({
    body: {
        input: ["The ultimate answer to the question of life"],
    }
});

Dica

A janela de contexto para modelos de Inserção V3 do Cohere é 512. Verifique se você não excede esse limite ao criar inserções.

A resposta é a seguinte, na qual você pode ver as estatísticas de uso do modelo:

if (isUnexpected(response)) {
    throw response.body.error;
}

console.log(response.embedding);
console.log(response.body.model);
console.log(response.body.usage);

Pode ser útil computar inserções em lotes de entrada. O parâmetro inputs pode ser uma lista de cadeias de caracteres, em que cada cadeia de caracteres é uma entrada diferente. Por sua vez, a resposta é uma lista de inserções, em que cada uma corresponde à entrada na mesma posição.

var response = await client.path("/embeddings").post({
    body: {
        input: [
            "The ultimate answer to the question of life", 
            "The largest planet in our solar system is Jupiter",
        ],
    }
});

A resposta é a seguinte, na qual você pode ver as estatísticas de uso do modelo:

if (isUnexpected(response)) {
    throw response.body.error;
}

console.log(response.embedding);
console.log(response.body.model);
console.log(response.body.usage);

Dica

Os modelos de Inserção V3 da Cohere podem levar lotes de 1024 por vez. Ao criar lotes, verifique se você não excede esse limite.

Criar diferentes tipos de inserções

Os modelos de Inserção V3 da Cohere podem gerar várias inserções para a mesma entrada, dependendo de como você planeja usá-las. Essa funcionalidade permite recuperar inserções mais precisas para padrões de RAG.

O exemplo a seguir mostra como criar inserções usadas para criar uma inserção para um documento que será armazenado em um banco de dados de vetor:

var response = await client.path("/embeddings").post({
    body: {
        input: ["The answer to the ultimate question of life, the universe, and everything is 42"],
        input_type: "document",
    }
});

Ao trabalhar em uma consulta para recuperar esse documento, você pode usar o trecho de código a seguir para criar as inserções para a consulta e maximizar o desempenho de recuperação.

var response = await client.path("/embeddings").post({
    body: {
        input: ["What's the ultimate meaning of life?"],
        input_type: "query",
    }
});

Os modelos de Inserção V3 do Cohere podem otimizar as inserções com base em seu caso de uso.

Modelos de inserção do Cohere

A família Cohere de modelos para inserções inclui os seguintes modelos:

O Cohere Embed English é um modelo de representação multimodal (texto e imagem) usado para pesquisa semântica, geração aumentada de recuperação (RAG), classificação e agrupamento. O modelo de Inserção em inglês tem bom desempenho no parâmetro de comparação MTEB HuggingFace (inserção de texto em massa) e em casos de uso para diversos setores, como financeiro, jurídico e corporativo de uso geral. O Embed English também tem os seguintes atributos:

  • Incorporar Inglês tem 1.024 dimensões
  • A janela de contexto do modelo é de 512 tokens
  • Incorporar Inglês aceita imagens como uma URL de dados codificada em base64

As incorporações de imagens consomem um número fixo de tokens por imagem—1.000 tokens por imagem—o que se traduz em um preço de US$ 0,0001 por imagem incorporada. O tamanho ou a resolução da imagem não afeta o número de tokens consumidos, desde que a imagem esteja dentro das dimensões, tamanho de arquivo e formatos aceitos.

Pré-requisitos

Para usar modelos de Inserção V3 do Cohere com o Estúdio de IA do Azure, você precisa dos seguintes pré-requisitos:

Uma implantação de modelo

Implantação em APIs sem servidor

Os modelos de Inserção V3 do Cohere podem ser implantados em pontos de extremidade de API sem servidor com cobrança paga conforme o uso. Esse tipo de implantação fornece uma maneira de consumir modelos como uma API sem hospedá-los em sua assinatura, ao mesmo tempo que mantém a segurança empresarial e a conformidade que as organizações precisam.

A implantação em um ponto de extremidade de API sem servidor não exige o uso de cotas da sua assinatura. Se ainda não estiver implantado, use o Estúdio de IA do Azure, o SDK do Azure Machine Learning para Python, a CLI do Azure ou os modelos do ARM para implantar o modelo como uma API sem servidor.

Um cliente REST

Os modelos implantados com a API de inferência de modelo da IA do Azure podem ser consumidos com qualquer cliente REST. Para usar o cliente REST, você precisa atender a estes pré-requisitos:

  • Para construir as solicitações, você precisa passar a URL do ponto de extremidade. A URL do ponto de extremidade tem o formulário https://your-host-name.your-azure-region.inference.ai.azure.com, em que your-host-name é seu nome de host de implantação de modelo exclusivo e your-azure-region é a região do Azure em que o modelo é implantado (por exemplo, eastus2).
  • Dependendo da sua preferência de autenticação e implantação de modelos, você precisará de uma chave para autenticação no serviço ou de credenciais do Microsoft Entra ID. A chave é uma cadeia de caracteres de 32 caracteres.

Dica

Além disso, o Cohere dá suporte ao uso de uma API personalizada para usar com recursos específicos do modelo. Para usar a API específica do provedor de modelos, verifique a documentação do Cohere.

Trabalhar com inserções

Nesta seção, você usa a API de inferência do modelo de IA do Azure com um modelo de inserções.

Criar um cliente para consumir o modelo

Primeiro, crie o cliente para consumir o modelo. O código a seguir usa um URL de ponto de extremidade e uma chave que são armazenados em variáveis ​​de ambiente.

Como obter os recursos do modelo

A rota /info retorna informações sobre o modelo que é implantado no ponto de extremidade. Retorne as informações do modelo chamando o seguinte método:

GET /info HTTP/1.1
Host: <ENDPOINT_URI>
Authorization: Bearer <TOKEN>
Content-Type: application/json

A resposta é a seguinte:

{
    "model_name": "Cohere-embed-v3-english",
    "model_type": "embeddings",
    "model_provider_name": "Cohere"
}

Criar inserções

Crie uma solicitação de inserção para exibir a saída do modelo.

{
    "input": [
        "The ultimate answer to the question of life"
    ]
}

Dica

A janela de contexto para modelos de Inserção V3 do Cohere é 512. Verifique se você não excede esse limite ao criar inserções.

A resposta é a seguinte, na qual você pode ver as estatísticas de uso do modelo:

{
    "id": "0ab1234c-d5e6-7fgh-i890-j1234k123456",
    "object": "list",
    "data": [
        {
            "index": 0,
            "object": "embedding",
            "embedding": [
                0.017196655,
                // ...
                -0.000687122,
                -0.025054932,
                -0.015777588
            ]
        }
    ],
    "model": "Cohere-embed-v3-english",
    "usage": {
        "prompt_tokens": 9,
        "completion_tokens": 0,
        "total_tokens": 9
    }
}

Pode ser útil computar inserções em lotes de entrada. O parâmetro inputs pode ser uma lista de cadeias de caracteres, em que cada cadeia de caracteres é uma entrada diferente. Por sua vez, a resposta é uma lista de inserções, em que cada uma corresponde à entrada na mesma posição.

{
    "input": [
        "The ultimate answer to the question of life", 
        "The largest planet in our solar system is Jupiter"
    ]
}

A resposta é a seguinte, na qual você pode ver as estatísticas de uso do modelo:

{
    "id": "0ab1234c-d5e6-7fgh-i890-j1234k123456",
    "object": "list",
    "data": [
        {
            "index": 0,
            "object": "embedding",
            "embedding": [
                0.017196655,
                // ...
                -0.000687122,
                -0.025054932,
                -0.015777588
            ]
        },
        {
            "index": 1,
            "object": "embedding",
            "embedding": [
                0.017196655,
                // ...
                -0.000687122,
                -0.025054932,
                -0.015777588
            ]
        }
    ],
    "model": "Cohere-embed-v3-english",
    "usage": {
        "prompt_tokens": 19,
        "completion_tokens": 0,
        "total_tokens": 19
    }
}

Dica

Os modelos de Inserção V3 da Cohere podem levar lotes de 1024 por vez. Ao criar lotes, verifique se você não excede esse limite.

Criar diferentes tipos de inserções

Os modelos de Inserção V3 da Cohere podem gerar várias inserções para a mesma entrada, dependendo de como você planeja usá-las. Essa funcionalidade permite recuperar inserções mais precisas para padrões de RAG.

O exemplo a seguir mostra como criar inserções usadas para criar uma inserção para um documento que será armazenado em um banco de dados de vetor:

{
    "input": [
        "The answer to the ultimate question of life, the universe, and everything is 42"
    ],
    "input_type": "document"
}

Ao trabalhar em uma consulta para recuperar esse documento, você pode usar o trecho de código a seguir para criar as inserções para a consulta e maximizar o desempenho de recuperação.

{
    "input": [
        "What's the ultimate meaning of life?"
    ],
    "input_type": "query"
}

Os modelos de Inserção V3 do Cohere podem otimizar as inserções com base em seu caso de uso.

Mais exemplos de inferência

Descrição Idioma Amostra
Solicitações da Web Bash cohere-embed.ipynb
Pacote de inferência da IA do Azure para JavaScript JavaScript Link
Pacote de inferência da IA do Azure para Python Python Link
SDK do OpenAI (experimental) Python Link
LangChain Python Link
SDK da Cohere Python Link
SDK do LiteLLM Python Link

Recuperação de Geração Aumentada (RAG) e exemplos de uso de ferramentas

Descrição Pacotes Amostra
Crie um índice de vetor local da Pesquisa de Similaridade de IA do Facebook (FAISS), usando as inserções do Cohere - Langchain langchain, langchain_cohere cohere_faiss_langchain_embed.ipynb
Use o Comando Cohere R/R+ para responder às perguntas dos dados no índice de vetores FAISS local - Langchain langchain, langchain_cohere command_faiss_langchain.ipynb
Use o Comando Cohere R/R+ para responder às perguntas dos dados no índice do vetor de pesquisa de IA - Langchain langchain, langchain_cohere cohere-aisearch-langchain-rag.ipynb
Use o Comando Cohere R/R+ para responder às perguntas dos dados no índice vetorial de pesquisa de IA - SDK do Cohere cohere, azure_search_documents cohere-aisearch-rag.ipynb
Comando R+ ferramenta/chamada de função, usando o LangChain cohere, langchain, langchain_cohere command_tools-langchain.ipynb

Considerações de custo e cota para a família de modelos do Cohere implantados como pontos de extremidade de API sem servidor

Os modelos do Cohere implantados como uma API sem servidor são oferecidos pelo Cohere por meio do Azure Marketplace e integrados ao Estúdio de IA do Azure para uso. Você pode encontrar preços do Azure Marketplace ao implantar o modelo.

Sempre que um projeto se inscreve em determinada oferta do Azure Marketplace, um recurso é criado para acompanhar os custos associados ao consumo dele. O mesmo recurso é usado para acompanhar os custos associados à inferência. No entanto, vários medidores estão disponíveis para acompanhar cada cenário de modo independente.

Para obter mais informações sobre como acompanhar os custos, consulte Monitorar os custos dos modelos oferecidos por meio do Azure Marketplace.

A cota é gerenciada por implantação. Cada implantação tem um limite de taxa de 200.000 tokens por minuto e 1.000 solicitações de API por minuto. No entanto, atualmente, limitamos uma implantação por modelo e projeto. Entre em contato com o Suporte do Microsoft Azure se os limites de taxa atuais não forem suficientes para seus cenários.