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 queyour-host-name
é o nome de host exclusivo da implantação do modelo eyour-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
comnpm
. - 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 queyour-host-name
é o nome de host exclusivo da implantação do modelo eyour-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 queyour-host-name
é seu nome de host de implantação de modelo exclusivo eyour-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.
Conteúdo relacionado
- API de Inferência do Modelo de IA do Azure
- Como implantar modelos como APIs sem servidor
- Como consumir pontos de extremidade de API sem servidor de um projeto ou hub diferente do Estúdio de IA do Azure
- Disponibilidade de região para modelos em pontos de extremidade de API sem servidor
- Como planejar e gerenciar custos (marketplace)