Cohere Embed V3-modellen gebruiken met Azure Machine Learning-studio
In dit artikel leert u meer over Cohere Embed V3-modellen en hoe u deze kunt gebruiken met Azure Machine Learning-studio. De cohere-serie met modellen bevat verschillende modellen die zijn geoptimaliseerd voor verschillende gebruiksvoorbeelden, waaronder chatvoltooiingen, insluitingen en herrankering. Cohere-modellen zijn geoptimaliseerd voor verschillende gebruiksvoorbeelden, waaronder redenering, samenvatting en antwoord op vragen.
Belangrijk
Deze functie is momenteel beschikbaar als openbare preview-versie. Deze preview-versie wordt geleverd zonder een service level agreement en we raden deze niet aan voor productieworkloads. Misschien worden bepaalde functies niet ondersteund of zijn de mogelijkheden ervan beperkt.
Zie Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews voor meer informatie.
Cohere embedding models
De cohere-serie van modellen voor insluitingen bevat de volgende modellen:
Cohere Embed English is een multimodale (tekst- en afbeeldingsweergavemodel) dat wordt gebruikt voor semantische zoekopdrachten, ophalen van augmented generation (RAG), classificatie en clustering. Het insluiten van Engels presteert goed op de MTEB-benchmark voor HuggingFace (massive text embed) en op use cases voor verschillende branches, zoals Finance, Legal en General-Purpose Corpora. Engels insluiten heeft ook de volgende kenmerken:
- Engels insluiten heeft 1024 dimensies
- Contextvenster van het model is 512 tokens
- Engels insluiten accepteert afbeeldingen als een met base64 gecodeerde gegevens-URL
Afbeeldingen insluiten verbruiken een vast aantal tokens per afbeelding( 1000 tokens per afbeelding), wat resulteert in een prijs van $ 0,0001 per ingesloten afbeelding. De grootte of resolutie van de afbeelding heeft geen invloed op het aantal verbruikte tokens, mits de afbeelding binnen de geaccepteerde afmetingen, bestandsgrootte en indelingen valt.
Vereisten
Als u Cohere Embed V3-modellen wilt gebruiken met Azure Machine Learning-studio, hebt u de volgende vereisten nodig:
Een modelimplementatie
Implementatie naar serverloze API's
Cohere Embed V3-modellen kunnen worden geïmplementeerd op serverloze API-eindpunten met betalen per gebruik-facturering. Dit soort implementatie biedt een manier om modellen als API te gebruiken zonder deze te hosten in uw abonnement, terwijl de bedrijfsbeveiliging en -naleving die organisaties nodig hebben, behouden blijven.
Voor implementatie naar een serverloos API-eindpunt is geen quotum van uw abonnement vereist. Als uw model nog niet is geïmplementeerd, gebruikt u de Azure Machine Learning-studio, Azure Machine Learning-studio, Azure Machine Learning SDK voor Python, de Azure CLI of ARM-sjablonen om het model te implementeren als een serverloze API.
Het deductiepakket geïnstalleerd
U kunt voorspellingen van dit model gebruiken met behulp van het azure-ai-inference
pakket met Python. Als u dit pakket wilt installeren, hebt u de volgende vereisten nodig:
- Python 3.8 of hoger geïnstalleerd, inclusief pip.
- De eindpunt-URL. Als u de clientbibliotheek wilt maken, moet u de eindpunt-URL doorgeven. De eindpunt-URL heeft het formulier
https://your-host-name.your-azure-region.inference.ai.azure.com
, waaryour-host-name
de hostnaam van uw unieke modelimplementatie is enyour-azure-region
de Azure-regio is waar het model wordt geïmplementeerd (bijvoorbeeld eastus2). - Afhankelijk van uw modelimplementatie en verificatievoorkeur hebt u een sleutel nodig om te verifiëren bij de service of referenties voor Microsoft Entra ID. De sleutel is een tekenreeks van 32 tekens.
Zodra u aan deze vereisten voldoet, installeert u het Azure AI-deductiepakket met de volgende opdracht:
pip install azure-ai-inference
Lees meer over het Azure AI-deductiepakket en de naslaginformatie.
Tip
Daarnaast ondersteunt Cohere het gebruik van een op maat gemaakte API voor gebruik met specifieke functies van het model. Als u de specifieke API van de modelprovider wilt gebruiken, raadpleegt u de documentatie van Cohere.
Werken met insluitingen
In deze sectie gebruikt u de deductie-API van het Azure AI-model met een insluitingsmodel.
Een client maken om het model te gebruiken
Maak eerst de client om het model te gebruiken. De volgende code maakt gebruik van een eindpunt-URL en -sleutel die zijn opgeslagen in omgevingsvariabelen.
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"]),
)
De mogelijkheden van het model ophalen
De /info
route retourneert informatie over het model dat is geïmplementeerd op het eindpunt. Retourneer de gegevens van het model door de volgende methode aan te roepen:
model_info = model.get_model_info()
Het antwoord is als volgt:
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
Insluitingen maken
Maak een insluitingsaanvraag om de uitvoer van het model te bekijken.
response = model.embed(
input=["The ultimate answer to the question of life"],
)
Tip
Het contextvenster voor Cohere Embed V3-modellen is 512. Zorg ervoor dat u deze limiet niet overschrijdt bij het maken van insluitingen.
Het antwoord is als volgt, waar u de gebruiksstatistieken van het model kunt zien:
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)
Het kan handig zijn om insluitingen in invoerbatches te berekenen. De parameter inputs
kan een lijst met tekenreeksen zijn, waarbij elke tekenreeks een andere invoer is. Op zijn beurt is het antwoord een lijst met insluitingen, waarbij elke insluiting overeenkomt met de invoer op dezelfde positie.
response = model.embed(
input=[
"The ultimate answer to the question of life",
"The largest planet in our solar system is Jupiter",
],
)
Het antwoord is als volgt, waar u de gebruiksstatistieken van het model kunt zien:
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)
Tip
Cohere Embed V3-modellen kunnen batches van 1024 tegelijk in beslag nemen. Zorg er bij het maken van batches voor dat u deze limiet niet overschrijdt.
Verschillende typen insluitingen maken
Cohere Embed V3-modellen kunnen meerdere insluitingen genereren voor dezelfde invoer, afhankelijk van hoe u ze wilt gebruiken. Met deze mogelijkheid kunt u nauwkeurigere insluitingen voor RAG-patronen ophalen.
In het volgende voorbeeld ziet u hoe u insluitingen maakt die worden gebruikt om een insluiting te maken voor een document dat wordt opgeslagen in een vectordatabase:
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,
)
Wanneer u aan een query werkt om een dergelijk document op te halen, kunt u het volgende codefragment gebruiken om de insluitingen voor de query te maken en de prestaties van het ophalen te maximaliseren.
from azure.ai.inference.models import EmbeddingInputType
response = model.embed(
input=["What's the ultimate meaning of life?"],
input_type=EmbeddingInputType.QUERY,
)
Cohere Embed V3-modellen kunnen de insluitingen optimaliseren op basis van de use-case.
Cohere embedding models
De cohere-serie van modellen voor insluitingen bevat de volgende modellen:
Cohere Embed English is een multimodale (tekst- en afbeeldingsweergavemodel) dat wordt gebruikt voor semantische zoekopdrachten, ophalen van augmented generation (RAG), classificatie en clustering. Het insluiten van Engels presteert goed op de MTEB-benchmark voor HuggingFace (massive text embed) en op use cases voor verschillende branches, zoals Finance, Legal en General-Purpose Corpora. Engels insluiten heeft ook de volgende kenmerken:
- Engels insluiten heeft 1024 dimensies
- Contextvenster van het model is 512 tokens
- Engels insluiten accepteert afbeeldingen als een met base64 gecodeerde gegevens-URL
Afbeeldingen insluiten verbruiken een vast aantal tokens per afbeelding( 1000 tokens per afbeelding), wat resulteert in een prijs van $ 0,0001 per ingesloten afbeelding. De grootte of resolutie van de afbeelding heeft geen invloed op het aantal verbruikte tokens, mits de afbeelding binnen de geaccepteerde afmetingen, bestandsgrootte en indelingen valt.
Vereisten
Als u Cohere Embed V3-modellen wilt gebruiken met Azure Machine Learning-studio, hebt u de volgende vereisten nodig:
Een modelimplementatie
Implementatie naar serverloze API's
Cohere Embed V3-modellen kunnen worden geïmplementeerd op serverloze API-eindpunten met betalen per gebruik-facturering. Dit soort implementatie biedt een manier om modellen als API te gebruiken zonder deze te hosten in uw abonnement, terwijl de bedrijfsbeveiliging en -naleving die organisaties nodig hebben, behouden blijven.
Voor implementatie naar een serverloos API-eindpunt is geen quotum van uw abonnement vereist. Als uw model nog niet is geïmplementeerd, gebruikt u de Azure Machine Learning-studio, Azure Machine Learning SDK voor Python, de Azure CLI of ARM-sjablonen om het model te implementeren als een serverloze API.
Het deductiepakket geïnstalleerd
U kunt voorspellingen van dit model gebruiken met behulp van het @azure-rest/ai-inference
pakket van npm
. Als u dit pakket wilt installeren, hebt u de volgende vereisten nodig:
- LTS-versies van
Node.js
metnpm
. - De eindpunt-URL. Als u de clientbibliotheek wilt maken, moet u de eindpunt-URL doorgeven. De eindpunt-URL heeft het formulier
https://your-host-name.your-azure-region.inference.ai.azure.com
, waaryour-host-name
de hostnaam van uw unieke modelimplementatie is enyour-azure-region
de Azure-regio is waar het model wordt geïmplementeerd (bijvoorbeeld eastus2). - Afhankelijk van uw modelimplementatie en verificatievoorkeur hebt u een sleutel nodig om te verifiëren bij de service of referenties voor Microsoft Entra ID. De sleutel is een tekenreeks van 32 tekens.
Nadat u deze vereisten hebt, installeert u de Azure-deductiebibliotheek voor JavaScript met de volgende opdracht:
npm install @azure-rest/ai-inference
Tip
Daarnaast ondersteunt Cohere het gebruik van een op maat gemaakte API voor gebruik met specifieke functies van het model. Als u de specifieke API van de modelprovider wilt gebruiken, raadpleegt u de documentatie van Cohere.
Werken met insluitingen
In deze sectie gebruikt u de deductie-API van het Azure AI-model met een insluitingsmodel.
Een client maken om het model te gebruiken
Maak eerst de client om het model te gebruiken. De volgende code maakt gebruik van een eindpunt-URL en -sleutel die zijn opgeslagen in omgevingsvariabelen.
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)
);
De mogelijkheden van het model ophalen
De /info
route retourneert informatie over het model dat is geïmplementeerd op het eindpunt. Retourneer de gegevens van het model door de volgende methode aan te roepen:
await client.path("/info").get()
Het antwoord is als volgt:
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
Insluitingen maken
Maak een insluitingsaanvraag om de uitvoer van het model te bekijken.
var response = await client.path("/embeddings").post({
body: {
input: ["The ultimate answer to the question of life"],
}
});
Tip
Het contextvenster voor Cohere Embed V3-modellen is 512. Zorg ervoor dat u deze limiet niet overschrijdt bij het maken van insluitingen.
Het antwoord is als volgt, waar u de gebruiksstatistieken van het model kunt zien:
if (isUnexpected(response)) {
throw response.body.error;
}
console.log(response.embedding);
console.log(response.body.model);
console.log(response.body.usage);
Het kan handig zijn om insluitingen in invoerbatches te berekenen. De parameter inputs
kan een lijst met tekenreeksen zijn, waarbij elke tekenreeks een andere invoer is. Op zijn beurt is het antwoord een lijst met insluitingen, waarbij elke insluiting overeenkomt met de invoer op dezelfde positie.
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",
],
}
});
Het antwoord is als volgt, waar u de gebruiksstatistieken van het model kunt zien:
if (isUnexpected(response)) {
throw response.body.error;
}
console.log(response.embedding);
console.log(response.body.model);
console.log(response.body.usage);
Tip
Cohere Embed V3-modellen kunnen batches van 1024 tegelijk in beslag nemen. Zorg er bij het maken van batches voor dat u deze limiet niet overschrijdt.
Verschillende typen insluitingen maken
Cohere Embed V3-modellen kunnen meerdere insluitingen genereren voor dezelfde invoer, afhankelijk van hoe u ze wilt gebruiken. Met deze mogelijkheid kunt u nauwkeurigere insluitingen voor RAG-patronen ophalen.
In het volgende voorbeeld ziet u hoe u insluitingen maakt die worden gebruikt om een insluiting te maken voor een document dat wordt opgeslagen in een vectordatabase:
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",
}
});
Wanneer u aan een query werkt om een dergelijk document op te halen, kunt u het volgende codefragment gebruiken om de insluitingen voor de query te maken en de prestaties van het ophalen te maximaliseren.
var response = await client.path("/embeddings").post({
body: {
input: ["What's the ultimate meaning of life?"],
input_type: "query",
}
});
Cohere Embed V3-modellen kunnen de insluitingen optimaliseren op basis van de use-case.
Cohere embedding models
De cohere-serie van modellen voor insluitingen bevat de volgende modellen:
Cohere Embed English is een multimodale (tekst- en afbeeldingsweergavemodel) dat wordt gebruikt voor semantische zoekopdrachten, ophalen van augmented generation (RAG), classificatie en clustering. Het insluiten van Engels presteert goed op de MTEB-benchmark voor HuggingFace (massive text embed) en op use cases voor verschillende branches, zoals Finance, Legal en General-Purpose Corpora. Engels insluiten heeft ook de volgende kenmerken:
- Engels insluiten heeft 1024 dimensies
- Contextvenster van het model is 512 tokens
- Engels insluiten accepteert afbeeldingen als een met base64 gecodeerde gegevens-URL
Afbeeldingen insluiten verbruiken een vast aantal tokens per afbeelding( 1000 tokens per afbeelding), wat resulteert in een prijs van $ 0,0001 per ingesloten afbeelding. De grootte of resolutie van de afbeelding heeft geen invloed op het aantal verbruikte tokens, mits de afbeelding binnen de geaccepteerde afmetingen, bestandsgrootte en indelingen valt.
Vereisten
Als u Cohere Embed V3-modellen wilt gebruiken met Azure Machine Learning, hebt u de volgende vereisten nodig:
Een modelimplementatie
Implementatie naar serverloze API's
Cohere Embed V3-modellen kunnen worden geïmplementeerd op serverloze API-eindpunten met betalen per gebruik-facturering. Dit soort implementatie biedt een manier om modellen als API te gebruiken zonder deze te hosten in uw abonnement, terwijl de bedrijfsbeveiliging en -naleving die organisaties nodig hebben, behouden blijven.
Voor implementatie naar een serverloos API-eindpunt is geen quotum van uw abonnement vereist. Als uw model nog niet is geïmplementeerd, gebruikt u de Azure Machine Learning-studio, Azure Machine Learning SDK voor Python, de Azure CLI of ARM-sjablonen om het model te implementeren als een serverloze API.
Een REST-client
Modellen die zijn geïmplementeerd met de Deductie-API van het Azure AI-model kunnen worden gebruikt met behulp van een REST-client. Als u de REST-client wilt gebruiken, hebt u de volgende vereisten nodig:
- Als u de aanvragen wilt maken, moet u de eindpunt-URL doorgeven. De eindpunt-URL heeft het formulier
https://your-host-name.your-azure-region.inference.ai.azure.com
, waaryour-host-name
de hostnaam van uw unieke modelimplementatie is enyour-azure-region
de Azure-regio is waar het model wordt geïmplementeerd (bijvoorbeeld eastus2). - Afhankelijk van uw modelimplementatie en verificatievoorkeur hebt u een sleutel nodig om te verifiëren bij de service of referenties voor Microsoft Entra ID. De sleutel is een tekenreeks van 32 tekens.
Tip
Daarnaast ondersteunt Cohere het gebruik van een op maat gemaakte API voor gebruik met specifieke functies van het model. Als u de specifieke API van de modelprovider wilt gebruiken, raadpleegt u de documentatie van Cohere.
Werken met insluitingen
In deze sectie gebruikt u de deductie-API van het Azure AI-model met een insluitingsmodel.
Een client maken om het model te gebruiken
Maak eerst de client om het model te gebruiken. De volgende code maakt gebruik van een eindpunt-URL en -sleutel die zijn opgeslagen in omgevingsvariabelen.
De mogelijkheden van het model ophalen
De /info
route retourneert informatie over het model dat is geïmplementeerd op het eindpunt. Retourneer de gegevens van het model door de volgende methode aan te roepen:
GET /info HTTP/1.1
Host: <ENDPOINT_URI>
Authorization: Bearer <TOKEN>
Content-Type: application/json
Het antwoord is als volgt:
{
"model_name": "Cohere-embed-v3-english",
"model_type": "embeddings",
"model_provider_name": "Cohere"
}
Insluitingen maken
Maak een insluitingsaanvraag om de uitvoer van het model te bekijken.
{
"input": [
"The ultimate answer to the question of life"
]
}
Tip
Het contextvenster voor Cohere Embed V3-modellen is 512. Zorg ervoor dat u deze limiet niet overschrijdt bij het maken van insluitingen.
Het antwoord is als volgt, waar u de gebruiksstatistieken van het model kunt zien:
{
"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
}
}
Het kan handig zijn om insluitingen in invoerbatches te berekenen. De parameter inputs
kan een lijst met tekenreeksen zijn, waarbij elke tekenreeks een andere invoer is. Op zijn beurt is het antwoord een lijst met insluitingen, waarbij elke insluiting overeenkomt met de invoer op dezelfde positie.
{
"input": [
"The ultimate answer to the question of life",
"The largest planet in our solar system is Jupiter"
]
}
Het antwoord is als volgt, waar u de gebruiksstatistieken van het model kunt zien:
{
"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
}
}
Tip
Cohere Embed V3-modellen kunnen batches van 1024 tegelijk in beslag nemen. Zorg er bij het maken van batches voor dat u deze limiet niet overschrijdt.
Verschillende typen insluitingen maken
Cohere Embed V3-modellen kunnen meerdere insluitingen genereren voor dezelfde invoer, afhankelijk van hoe u ze wilt gebruiken. Met deze mogelijkheid kunt u nauwkeurigere insluitingen voor RAG-patronen ophalen.
In het volgende voorbeeld ziet u hoe u insluitingen maakt die worden gebruikt om een insluiting te maken voor een document dat wordt opgeslagen in een vectordatabase:
{
"input": [
"The answer to the ultimate question of life, the universe, and everything is 42"
],
"input_type": "document"
}
Wanneer u aan een query werkt om een dergelijk document op te halen, kunt u het volgende codefragment gebruiken om de insluitingen voor de query te maken en de prestaties van het ophalen te maximaliseren.
{
"input": [
"What's the ultimate meaning of life?"
],
"input_type": "query"
}
Cohere Embed V3-modellen kunnen de insluitingen optimaliseren op basis van de use-case.
Meer deductievoorbeelden
Beschrijving | Taal | Voorbeeld |
---|---|---|
Webaanvragen | Bash | cohere-embed.ipynb |
Azure AI-deductiepakket voor JavaScript | JavaScript | Koppeling |
Azure AI-deductiepakket voor Python | Python | Koppeling |
OpenAI SDK (experimenteel) | Python | Koppeling |
LangChain | Python | Koppeling |
Cohere SDK | Python | Koppeling |
LiteLLM SDK | Python | Koppeling |
Rag -voorbeelden (Augmented Generation) ophalen en hulpprogramma's gebruiken
Beschrijving | Pakketten | Voorbeeld |
---|---|---|
Een lokale FAISS-vectorindex (Facebook AI similarity search) maken met cohere embeddings - Langchain | langchain , langchain_cohere |
cohere_faiss_langchain_embed.ipynb |
Cohere Command R/R+ gebruiken om vragen te beantwoorden van gegevens in de lokale FAISS-vectorindex - Langchain | langchain , langchain_cohere |
command_faiss_langchain.ipynb |
Cohere Command R/R+ gebruiken om vragen te beantwoorden van gegevens in de AI-zoekvectorindex - Langchain | langchain , langchain_cohere |
cohere-aisearch-langchain-rag.ipynb |
Cohere Command R/R+ gebruiken om vragen te beantwoorden van gegevens in de AI-zoekvectorindex - Cohere SDK | cohere , azure_search_documents |
cohere-aisearch-rag.ipynb |
Opdracht R+ hulpprogramma/functie aanroepen, met behulp van LangChain | cohere , , langchain langchain_cohere |
command_tools-langchain.ipynb |
Kosten- en quotumoverwegingen voor Cohere-modellen die zijn geïmplementeerd als serverloze API-eindpunten
Cohere-modellen die zijn geïmplementeerd als een serverloze API, worden aangeboden door Cohere via Azure Marketplace en geïntegreerd met Azure Machine Learning-studio voor gebruik. U krijgt de prijzen voor de Azure Marketplace wanneer u het model implementeert.
Telkens wanneer een project zich abonneert op een bepaalde aanbieding vanuit Azure Marketplace, wordt er een nieuwe resource gemaakt om de kosten te traceren die zijn gekoppeld aan het verbruik. Dezelfde resource wordt gebruikt om de kosten te traceren die zijn gekoppeld aan deductie; er zijn echter meerdere meters beschikbaar om elk scenario onafhankelijk te traceren.
Zie Monitoring van kosten voor modellen die worden aangeboden in de Azure Marketplace voor meer informatie over het traceren van kosten.
Het quotum wordt beheerd per implementatie. Elke implementatie heeft een frequentielimiet van 200.000 tokens per minuut en 1000 API-aanvragen per minuut. Momenteel beperken we echter tot één implementatie per model per project. Neem contact op met de ondersteuning voor Microsoft Azure als de huidige frequentielimieten niet voldoende zijn voor uw scenario's.