Delen via


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, waar your-host-name de hostnaam van uw unieke modelimplementatie is en your-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 met npm.
  • 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, waar your-host-name de hostnaam van uw unieke modelimplementatie is en your-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, waar your-host-name de hostnaam van uw unieke modelimplementatie is en your-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, , langchainlangchain_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.