Partager via


Comment utiliser des modèles Cohere Embed V3 avec Azure AI Foundry

Important

Les éléments marqués (préversion) dans cet article sont actuellement en préversion publique. Cette préversion est fournie sans contrat de niveau de service, nous la déconseillons dans des charges de travail de production. Certaines fonctionnalités peuvent être limitées ou non prises en charge. Pour plus d’informations, consultez Conditions d’Utilisation Supplémentaires relatives aux Évaluations Microsoft Azure.

Dans cet article, vous découvrez les modèles Cohere Embed V3 et leur utilisation avec Azure AI Foundry. La famille de modèles Cohere comprend différents modèles optimisés pour différents cas d’usage, y compris les complétions de conversation, les incorporations et le reclassement. Les modèles Cohere sont optimisés pour différents cas d’usage qui incluent le raisonnement, le résumé et la réponse aux questions.

Important

Les modèles qui sont en préversion comportent la mention préversion sur leur carte dans le catalogue de modèles.

Modèles d’incorporation de cohere

La famille de modèles Cohere pour les incorporations comprend les modèles suivants :

Cohere Embed English est un modèle de représentation multimodal (texte et image) utilisé pour la recherche sémantique, la génération augmentée de récupération (RAG), la classification et le clustering. Embed English fonctionne bien sur le benchmark MTEB (massive text embed) huggingFace et sur les cas d’usage pour diverses industries, telles que Finance, Legal et General-Purpose Corpora. Embed English dispose également des attributs suivants :

  • Embed English a 1 024 dimensions.
  • La fenêtre de contexte du modèle est de 512 jetons
  • Embed English accepte des images en tant qu’URL de données encodées en base64.

Les incorporations d’images consomment un nombre fixe de jetons par image (1 000 jetons par image), ce qui se traduit par un prix de 0,0001 USD par image incorporée. La taille ou la résolution de l’image n’affecte pas le nombre de jetons consommés, à condition que l’image ait les dimensions, la taille de fichier et les formats acceptés.

Prérequis

Pour utiliser des modèles Cohere Embed V3 avec Azure AI Foundry, vous avez besoin des prérequis suivants :

Un modèle de déploiement

Déploiement sur des API serverless

Les modèles Cohere Embed V3 peuvent être déployés sur des points de terminaison d’API serverless avec facturation de paiement à l’utilisation. Ce type de déploiement permet de consommer des modèles en tant qu’API sans les héberger sur votre abonnement, tout en conservant la sécurité et la conformité de l’entreprise dont les organisations ont besoin.

Le déploiement vers un point de terminaison API serverless ne nécessite pas de quota de votre abonnement. Si votre modèle n’est pas déjà déployé, utilisez le portail Azure AI Foundry, le kit de développement logiciel (SDK) Azure Machine Learning pour Python, l’interface de ligne de commande Azure ou des modèles ARM pour déployer le modèle en tant qu’API serverless.

Le package d’inférence installé

Vous pouvez utiliser des prédictions à partir de ce modèle à l’aide du package azure-ai-inference avec Python. Pour installer ce package, vous avez besoin des prérequis suivants :

  • Python 3.8 ou version ultérieure installée, y compris pip.
  • L’URL du point de terminaison. Pour construire la bibliothèque cliente, vous devez passer l’URL du point de terminaison. L’URL du point de terminaison est sous la forme https://your-host-name.your-azure-region.inference.ai.azure.com, où your-host-name est le nom d’hôte unique de votre modèle de déploiement et your-azure-region est la région Azure où le modèle est déployé (par exemple, eastus2).
  • En fonction de vos préférences de modèle de déploiement et d’authentification, vous aurez besoin d’une clé pour vous authentifier auprès du service ou des informations d’identification Microsoft Entra ID. La clé est une chaîne de 32 caractères.

Une fois ces conditions préalables remplies, installez le package d’inférence Azure AI avec la commande suivante :

pip install azure-ai-inference

En savoir plus sur le package d’inférence Azure AI et la référence.

Conseil

En outre, Cohere prend en charge l’utilisation d’une API personnalisée à utiliser avec des fonctionnalités spécifiques du modèle. Pour utiliser l’API spécifique du fournisseur de modèles, consultez la documentation Cohere.

Utiliser des incorporations

Dans cette section, vous utilisez l’API d’inférence de modèle Azure AI avec un modèle d’incorporation.

Créer un client pour consommer le modèle

Tout d’abord, créez le client pour consommer le modèle. Le code suivant utilise une URL de point de terminaison et une clé qui sont stockées dans les variables d’environnement.

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"]),
)

Obtenir les fonctionnalités du modèle

L’itinéraire /info retourne des informations sur le modèle déployé sur le point de terminaison. Renvoyez les informations du modèle en appelant la méthode suivante :

model_info = model.get_model_info()

La réponse est comme suit :

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

Créer des incorporations

Créez une demande d’incorporation pour afficher la sortie du modèle.

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

Conseil

La fenêtre de contexte pour les modèles Cohere Embed V3 est 512. Assurez-vous que vous ne dépassez pas cette limite lors de la création d’incorporations.

La réponse est la suivante, où vous pouvez voir les statistiques d'utilisation du modèle :

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)

Il peut être utile de calculer des incorporations dans des lots d’entrée. Le paramètre inputs peut être une liste de chaînes, où chaque chaîne est une entrée différente. À son tour, la réponse est une liste d’incorporations, où chaque incorporation correspond à l’entrée dans la même position.

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

La réponse est la suivante, où vous pouvez voir les statistiques d'utilisation du modèle :

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)

Conseil

Les modèles Cohere Embed V3 peuvent prendre des lots de 1024 à la fois. Lors de la création de lots, assurez-vous que vous ne dépassez pas cette limite.

Créer différents types d’incorporations

Les modèles Cohere Embed V3 peuvent générer plusieurs incorporations pour la même entrée en fonction de la façon dont vous envisagez de les utiliser. Cette fonctionnalité vous permet de récupérer des incorporations plus précises pour les modèles RAG.

L’exemple suivant montre comment créer des incorporations utilisées pour créer un incorporation pour un document qui sera stocké dans une base de données vectorielle :

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,
)

Lorsque vous travaillez sur une requête pour récupérer un tel document, vous pouvez utiliser l’extrait de code suivant pour créer les incorporations de la requête et optimiser les performances de récupération.

from azure.ai.inference.models import EmbeddingInputType

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

Les modèles Cohere Embed V3 peuvent optimiser les incorporations en fonction de son cas d’usage.

Modèles d’incorporation de cohere

La famille de modèles Cohere pour les incorporations comprend les modèles suivants :

Cohere Embed English est un modèle de représentation multimodal (texte et image) utilisé pour la recherche sémantique, la génération augmentée de récupération (RAG), la classification et le clustering. Embed English fonctionne bien sur le benchmark MTEB (massive text embed) huggingFace et sur les cas d’usage pour diverses industries, telles que Finance, Legal et General-Purpose Corpora. Embed English dispose également des attributs suivants :

  • Embed English a 1 024 dimensions.
  • La fenêtre de contexte du modèle est de 512 jetons
  • Embed English accepte des images en tant qu’URL de données encodées en base64.

Les incorporations d’images consomment un nombre fixe de jetons par image (1 000 jetons par image), ce qui se traduit par un prix de 0,0001 USD par image incorporée. La taille ou la résolution de l’image n’affecte pas le nombre de jetons consommés, à condition que l’image ait les dimensions, la taille de fichier et les formats acceptés.

Prérequis

Pour utiliser des modèles Cohere Embed V3 avec Azure AI Foundry, vous avez besoin des prérequis suivants :

Un modèle de déploiement

Déploiement sur des API serverless

Les modèles Cohere Embed V3 peuvent être déployés sur des points de terminaison d’API serverless avec facturation de paiement à l’utilisation. Ce type de déploiement permet de consommer des modèles en tant qu’API sans les héberger sur votre abonnement, tout en conservant la sécurité et la conformité de l’entreprise dont les organisations ont besoin.

Le déploiement vers un point de terminaison API serverless ne nécessite pas de quota de votre abonnement. Si votre modèle n’est pas déjà déployé, utilisez le portail Azure AI Foundry, le kit de développement logiciel (SDK) Azure Machine Learning pour Python, l’interface de ligne de commande Azure ou des modèles ARM pour déployer le modèle en tant qu’API serverless.

Le package d’inférence installé

Vous pouvez consommer des prédictions depuis ce modèle en utilisant le package @azure-rest/ai-inference de npm. Pour installer ce package, vous avez besoin des prérequis suivants :

  • Versions LTS de Node.js avec npm.
  • L’URL du point de terminaison. Pour construire la bibliothèque cliente, vous devez passer l’URL du point de terminaison. L’URL du point de terminaison est sous la forme https://your-host-name.your-azure-region.inference.ai.azure.com, où your-host-name est le nom d’hôte unique de votre modèle de déploiement et your-azure-region est la région Azure où le modèle est déployé (par exemple, eastus2).
  • En fonction de vos préférences de modèle de déploiement et d’authentification, vous aurez besoin d’une clé pour vous authentifier auprès du service ou des informations d’identification Microsoft Entra ID. La clé est une chaîne de 32 caractères.

Une fois ces prérequis remplis, installez la bibliothèque Azure Inference pour JavaScript avec la commande suivante :

npm install @azure-rest/ai-inference

Conseil

En outre, Cohere prend en charge l’utilisation d’une API personnalisée à utiliser avec des fonctionnalités spécifiques du modèle. Pour utiliser l’API spécifique du fournisseur de modèles, consultez la documentation Cohere.

Utiliser des incorporations

Dans cette section, vous utilisez l’API d’inférence de modèle Azure AI avec un modèle d’incorporation.

Créer un client pour consommer le modèle

Tout d’abord, créez le client pour consommer le modèle. Le code suivant utilise une URL de point de terminaison et une clé qui sont stockées dans les variables d’environnement.

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)
);

Obtenir les fonctionnalités du modèle

L’itinéraire /info retourne des informations sur le modèle déployé sur le point de terminaison. Renvoyez les informations du modèle en appelant la méthode suivante :

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

La réponse est comme suit :

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

Créer des incorporations

Créez une demande d’incorporation pour afficher la sortie du modèle.

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

Conseil

La fenêtre de contexte pour les modèles Cohere Embed V3 est 512. Assurez-vous que vous ne dépassez pas cette limite lors de la création d’incorporations.

La réponse est la suivante, où vous pouvez voir les statistiques d'utilisation du modèle :

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

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

Il peut être utile de calculer des incorporations dans des lots d’entrée. Le paramètre inputs peut être une liste de chaînes, où chaque chaîne est une entrée différente. À son tour, la réponse est une liste d’incorporations, où chaque incorporation correspond à l’entrée dans la même position.

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",
        ],
    }
});

La réponse est la suivante, où vous pouvez voir les statistiques d'utilisation du modèle :

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

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

Conseil

Les modèles Cohere Embed V3 peuvent prendre des lots de 1024 à la fois. Lors de la création de lots, assurez-vous que vous ne dépassez pas cette limite.

Créer différents types d’incorporations

Les modèles Cohere Embed V3 peuvent générer plusieurs incorporations pour la même entrée en fonction de la façon dont vous envisagez de les utiliser. Cette fonctionnalité vous permet de récupérer des incorporations plus précises pour les modèles RAG.

L’exemple suivant montre comment créer des incorporations utilisées pour créer un incorporation pour un document qui sera stocké dans une base de données vectorielle :

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",
    }
});

Lorsque vous travaillez sur une requête pour récupérer un tel document, vous pouvez utiliser l’extrait de code suivant pour créer les incorporations de la requête et optimiser les performances de récupération.

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

Les modèles Cohere Embed V3 peuvent optimiser les incorporations en fonction de son cas d’usage.

Modèles d’incorporation de cohere

La famille de modèles Cohere pour les incorporations comprend les modèles suivants :

Cohere Embed English est un modèle de représentation multimodal (texte et image) utilisé pour la recherche sémantique, la génération augmentée de récupération (RAG), la classification et le clustering. Embed English fonctionne bien sur le benchmark MTEB (massive text embed) huggingFace et sur les cas d’usage pour diverses industries, telles que Finance, Legal et General-Purpose Corpora. Embed English dispose également des attributs suivants :

  • Embed English a 1 024 dimensions.
  • La fenêtre de contexte du modèle est de 512 jetons
  • Embed English accepte des images en tant qu’URL de données encodées en base64.

Les incorporations d’images consomment un nombre fixe de jetons par image (1 000 jetons par image), ce qui se traduit par un prix de 0,0001 USD par image incorporée. La taille ou la résolution de l’image n’affecte pas le nombre de jetons consommés, à condition que l’image ait les dimensions, la taille de fichier et les formats acceptés.

Prérequis

Pour utiliser des modèles Cohere Embed V3 avec Azure AI Foundry, vous avez besoin des prérequis suivants :

Un modèle de déploiement

Déploiement sur des API serverless

Les modèles Cohere Embed V3 peuvent être déployés sur des points de terminaison d’API serverless avec facturation de paiement à l’utilisation. Ce type de déploiement permet de consommer des modèles en tant qu’API sans les héberger sur votre abonnement, tout en conservant la sécurité et la conformité de l’entreprise dont les organisations ont besoin.

Le déploiement vers un point de terminaison API serverless ne nécessite pas de quota de votre abonnement. Si votre modèle n’est pas déjà déployé, utilisez le portail Azure AI Foundry, le kit de développement logiciel (SDK) Azure Machine Learning pour Python, l’interface de ligne de commande Azure ou des modèles ARM pour déployer le modèle en tant qu’API serverless.

Un client REST

Les modèles déployés avec l’API Inférence de modèle Azure AI peuvent être consommés en utilisant tout client REST. Pour utiliser le client REST, vous avez besoin des prérequis suivants :

  • Pour construire les requêtes, vous devez transmettre l’URL du point de terminaison. L’URL du point de terminaison a la forme https://your-host-name.your-azure-region.inference.ai.azure.com, où your-host-name est le nom d’hôte de déploiement de votre modèle unique et your-azure-region est la région Azure dans laquelle le modèle est déployé (par exemple, eastus2).
  • En fonction de vos préférences de modèle de déploiement et d’authentification, vous aurez besoin d’une clé pour vous authentifier auprès du service ou des informations d’identification Microsoft Entra ID. La clé est une chaîne de 32 caractères.

Conseil

En outre, Cohere prend en charge l’utilisation d’une API personnalisée à utiliser avec des fonctionnalités spécifiques du modèle. Pour utiliser l’API spécifique du fournisseur de modèles, consultez la documentation Cohere.

Utiliser des incorporations

Dans cette section, vous utilisez l’API d’inférence de modèle Azure AI avec un modèle d’incorporation.

Créer un client pour consommer le modèle

Tout d’abord, créez le client pour consommer le modèle. Le code suivant utilise une URL de point de terminaison et une clé qui sont stockées dans les variables d’environnement.

Obtenir les fonctionnalités du modèle

L’itinéraire /info retourne des informations sur le modèle déployé sur le point de terminaison. Renvoyez les informations du modèle en appelant la méthode suivante :

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

La réponse est comme suit :

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

Créer des incorporations

Créez une demande d’incorporation pour afficher la sortie du modèle.

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

Conseil

La fenêtre de contexte pour les modèles Cohere Embed V3 est 512. Assurez-vous que vous ne dépassez pas cette limite lors de la création d’incorporations.

La réponse est la suivante, où vous pouvez voir les statistiques d'utilisation du modèle :

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

Il peut être utile de calculer des incorporations dans des lots d’entrée. Le paramètre inputs peut être une liste de chaînes, où chaque chaîne est une entrée différente. À son tour, la réponse est une liste d’incorporations, où chaque incorporation correspond à l’entrée dans la même position.

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

La réponse est la suivante, où vous pouvez voir les statistiques d'utilisation du modèle :

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

Conseil

Les modèles Cohere Embed V3 peuvent prendre des lots de 1024 à la fois. Lors de la création de lots, assurez-vous que vous ne dépassez pas cette limite.

Créer différents types d’incorporations

Les modèles Cohere Embed V3 peuvent générer plusieurs incorporations pour la même entrée en fonction de la façon dont vous envisagez de les utiliser. Cette fonctionnalité vous permet de récupérer des incorporations plus précises pour les modèles RAG.

L’exemple suivant montre comment créer des incorporations utilisées pour créer un incorporation pour un document qui sera stocké dans une base de données vectorielle :

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

Lorsque vous travaillez sur une requête pour récupérer un tel document, vous pouvez utiliser l’extrait de code suivant pour créer les incorporations de la requête et optimiser les performances de récupération.

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

Les modèles Cohere Embed V3 peuvent optimiser les incorporations en fonction de son cas d’usage.

Autres exemples d’inférence

Description Langage Exemple
Requêtes web Bash cohere-embed.ipynb
Package Azure AI Inference pour JavaScript JavaScript Lien
Package Azure AI Inference pour Python Python Lien
Kit de développement logiciel (SDK) OpenAI (expérimental) Python Lien
LangChain Python Lien
Kit de développement logiciel (SDK) Cohere Python Lien
LiteLLM SDK Python Lien

Génération augmentée de récupération (RAG) et exemples d’utilisation d’outils

Description Paquets Exemple
Créer un index vectoriel de recherche de similarité Facebook IA (FAISS) local à l’aide d’incorporations Cohere - Langchain langchain, langchain_cohere cohere_faiss_langchain_embed.ipynb
Utiliser Cohere Command R/R+ pour répondre aux questions des données dans l’index vectoriel FAISS local - Langchain langchain, langchain_cohere command_faiss_langchain.ipynb
Utiliser Cohere Command R/R+ pour répondre aux questions des données dans l’index vectoriel de recherche IA - Langchain langchain, langchain_cohere cohere-aisearch-langchain-rag.ipynb
Utiliser Cohere Command R/R+ pour répondre aux questions des données dans l’index vectoriel de recherche IA - Kit de développement logiciel (SDK) Cohere cohere, azure_search_documents cohere-aisearch-rag.ipynb
Outil/appel de fonction commande R+, à l’aide de LangChain cohere, langchain, langchain_cohere command_tools-langchain.ipynb

Considérations relatives au coût et au quota pour la famille de modèles Cohere déployés en tant que points de terminaison d’API serverless

Les modèles Cohere déployés en tant qu’API serverless sont proposés par Cohere via la place de marché Azure et sont intégrés à Azure AI Foundry pour pouvoir être utilisés. Vous trouverez la tarification de la Place de marché Azure lors du déploiement du modèle.

Chaque fois qu’un projet s’abonne à une offre donnée à partir de la Place de marché Azure, une nouvelle ressource est créée pour suivre les coûts associés à sa consommation. La même ressource est utilisée pour suivre les coûts associés à l’inférence; plusieurs compteurs sont cependant disponibles pour suivre chaque scénario indépendamment.

Pour plus d’informations sur le suivi des coûts, consultez Surveiller les coûts des modèles proposés dans la Place de marché Azure.

Le quota est géré par déploiement. Chaque déploiement a une limite de débit de 200 000 jetons par minute et 1 000 requêtes d’API par minute. Toutefois, nous limitons actuellement un déploiement par modèle par projet. Contactez le Support Microsoft Azure si les limites de débit actuelles ne suffisent pas pour vos scénarios.