Så här använder du Cohere Embed V3-modeller med Azure AI Studio

Viktigt!

Objekt markerade (förhandsversion) i den här artikeln är för närvarande i offentlig förhandsversion. Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.

I den här artikeln får du lära dig mer om Cohere Embed V3-modeller och hur du använder dem med Azure AI Studio. Cohere-serien med modeller innehåller olika modeller som är optimerade för olika användningsfall, inklusive chattavslut, inbäddningar och omrankning. Sammanhållna modeller är optimerade för olika användningsfall som inkluderar resonemang, sammanfattning och frågesvar.

Viktigt!

Modeller som är i förhandsversion markeras som förhandsversioner på sina modellkort i modellkatalogen.

Sammanhängande inbäddningsmodeller

Cohere-serien med modeller för inbäddningar innehåller följande modeller:

Cohere Embed English är en multimodal (text och bild) representationsmodell som används för semantisk sökning, hämtningsförhöjd generation (RAG), klassificering och klustring. Embed English presterar bra på HuggingFace (massiv textbäddning) MTEB-benchmark och i användningsfall för olika branscher, till exempel Finance, Legal och General-Purpose Corpora. Bädda in engelska har också följande attribut:

  • Bädda in engelska har 1 024 dimensioner
  • Kontextfönstret för modellen är 512 tokens
  • Bädda in engelska accepterar bilder som en base64-kodad data-URL

Inbäddningar av bilder förbrukar ett fast antal token per bild – 1 000 token per bild – vilket innebär ett pris på 0,0001 USD per inbäddad bild. Bildens storlek eller upplösning påverkar inte antalet förbrukade token, förutsatt att bilden ligger inom de godkända dimensionerna, filstorleken och formaten.

Förutsättningar

Om du vill använda Cohere Embed V3-modeller med Azure AI Studio behöver du följande förutsättningar:

En modelldistribution

Distribution till serverlösa API:er

Cohere Embed V3-modeller kan distribueras till serverlösa API-slutpunkter med betala per användning-fakturering. Den här typen av distribution ger ett sätt att använda modeller som ett API utan att vara värd för dem i din prenumeration, samtidigt som den företagssäkerhet och efterlevnad som organisationer behöver bevaras.

Distribution till en serverlös API-slutpunkt kräver inte kvot från din prenumeration. Om din modell inte redan har distribuerats använder du Azure AI Studio, Azure Machine Learning SDK för Python, Azure CLI eller ARM-mallar för att distribuera modellen som ett serverlöst API.

Inferenspaketet installerat

Du kan använda förutsägelser från den här modellen med hjälp azure-ai-inference av paketet med Python. För att installera det här paketet behöver du följande krav:

  • Python 3.8 eller senare installerat, inklusive pip.
  • Slutpunkts-URL:en. Om du vill skapa klientbiblioteket måste du skicka in slutpunkts-URL:en. Slutpunkts-URL:en har formuläret https://your-host-name.your-azure-region.inference.ai.azure.com, där your-host-name är värdnamnet för din unika modelldistribution och your-azure-region är den Azure-region där modellen distribueras (till exempel eastus2).
  • Beroende på din modelldistribution och autentiseringsinställning behöver du antingen en nyckel för att autentisera mot tjänsten eller autentiseringsuppgifter för Microsoft Entra-ID. Nyckeln är en sträng på 32 tecken.

När du har dessa förutsättningar installerar du Azure AI-slutsatsdragningspaketet med följande kommando:

pip install azure-ai-inference

Läs mer om Azure AI-slutsatsdragningspaketet och referensen.

Dricks

Dessutom stöder Cohere användning av ett skräddarsytt API för användning med specifika funktioner i modellen. Om du vill använda det specifika API:et för modellprovidern går du till dokumentationen för Cohere.

Arbeta med inbäddningar

I det här avsnittet använder du Azure AI-modellinferens-API :et med en inbäddningsmodell.

Skapa en klient för att använda modellen

Skapa först klienten för att använda modellen. I följande kod används en slutpunkts-URL och nyckel som lagras i miljövariabler.

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

Hämta modellens funktioner

Vägen /info returnerar information om den modell som distribueras till slutpunkten. Returnera modellens information genom att anropa följande metod:

model_info = model.get_model_info()

Svaret är följande:

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

Skapa inbäddningar

Skapa en inbäddningsbegäran för att se modellens utdata.

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

Dricks

Kontextfönstret för Cohere Embed V3-modeller är 512. Se till att du inte överskrider den här gränsen när du skapar inbäddningar.

Svaret är följande, där du kan se modellens användningsstatistik:

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)

Det kan vara användbart att beräkna inbäddningar i indatabatch. Parametern inputs kan vara en lista över strängar, där varje sträng är olika indata. Svaret är i sin tur en lista över inbäddningar, där varje inbäddning motsvarar indata i samma position.

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

Svaret är följande, där du kan se modellens användningsstatistik:

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)

Dricks

Cohere Embed V3-modeller kan ta batchar på 1024 åt gången. När du skapar batchar kontrollerar du att du inte överskrider den här gränsen.

Skapa olika typer av inbäddningar

Cohere Embed V3-modeller kan generera flera inbäddningar för samma indata beroende på hur du planerar att använda dem. Med den här funktionen kan du hämta mer exakta inbäddningar för RAG-mönster.

I följande exempel visas hur du skapar inbäddningar som används för att skapa en inbäddning för ett dokument som ska lagras i en vektordatabas:

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

När du arbetar med en fråga för att hämta ett sådant dokument kan du använda följande kodfragment för att skapa inbäddningarna för frågan och maximera hämtningsprestandan.

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-modeller kan optimera inbäddningarna baserat på dess användningsfall.

Sammanhängande inbäddningsmodeller

Cohere-serien med modeller för inbäddningar innehåller följande modeller:

Cohere Embed English är en multimodal (text och bild) representationsmodell som används för semantisk sökning, hämtningsförhöjd generation (RAG), klassificering och klustring. Embed English presterar bra på HuggingFace (massiv textbäddning) MTEB-benchmark och i användningsfall för olika branscher, till exempel Finance, Legal och General-Purpose Corpora. Bädda in engelska har också följande attribut:

  • Bädda in engelska har 1 024 dimensioner
  • Kontextfönstret för modellen är 512 tokens
  • Bädda in engelska accepterar bilder som en base64-kodad data-URL

Inbäddningar av bilder förbrukar ett fast antal token per bild – 1 000 token per bild – vilket innebär ett pris på 0,0001 USD per inbäddad bild. Bildens storlek eller upplösning påverkar inte antalet förbrukade token, förutsatt att bilden ligger inom de godkända dimensionerna, filstorleken och formaten.

Förutsättningar

Om du vill använda Cohere Embed V3-modeller med Azure AI Studio behöver du följande förutsättningar:

En modelldistribution

Distribution till serverlösa API:er

Cohere Embed V3-modeller kan distribueras till serverlösa API-slutpunkter med betala per användning-fakturering. Den här typen av distribution ger ett sätt att använda modeller som ett API utan att vara värd för dem i din prenumeration, samtidigt som den företagssäkerhet och efterlevnad som organisationer behöver bevaras.

Distribution till en serverlös API-slutpunkt kräver inte kvot från din prenumeration. Om din modell inte redan har distribuerats använder du Azure AI Studio, Azure Machine Learning SDK för Python, Azure CLI eller ARM-mallar för att distribuera modellen som ett serverlöst API.

Inferenspaketet installerat

Du kan använda förutsägelser från den här modellen med hjälp @azure-rest/ai-inference av paketet från npm. För att installera det här paketet behöver du följande krav:

  • LTS-versioner av Node.js med npm.
  • Slutpunkts-URL:en. Om du vill skapa klientbiblioteket måste du skicka in slutpunkts-URL:en. Slutpunkts-URL:en har formuläret https://your-host-name.your-azure-region.inference.ai.azure.com, där your-host-name är värdnamnet för din unika modelldistribution och your-azure-region är den Azure-region där modellen distribueras (till exempel eastus2).
  • Beroende på din modelldistribution och autentiseringsinställning behöver du antingen en nyckel för att autentisera mot tjänsten eller autentiseringsuppgifter för Microsoft Entra-ID. Nyckeln är en sträng på 32 tecken.

När du har dessa förutsättningar installerar du Azure Inference-biblioteket för JavaScript med följande kommando:

npm install @azure-rest/ai-inference

Dricks

Dessutom stöder Cohere användning av ett skräddarsytt API för användning med specifika funktioner i modellen. Om du vill använda det specifika API:et för modellprovidern går du till dokumentationen för Cohere.

Arbeta med inbäddningar

I det här avsnittet använder du Azure AI-modellinferens-API :et med en inbäddningsmodell.

Skapa en klient för att använda modellen

Skapa först klienten för att använda modellen. I följande kod används en slutpunkts-URL och nyckel som lagras i miljövariabler.

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

Hämta modellens funktioner

Vägen /info returnerar information om den modell som distribueras till slutpunkten. Returnera modellens information genom att anropa följande metod:

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

Svaret är följande:

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

Skapa inbäddningar

Skapa en inbäddningsbegäran för att se modellens utdata.

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

Dricks

Kontextfönstret för Cohere Embed V3-modeller är 512. Se till att du inte överskrider den här gränsen när du skapar inbäddningar.

Svaret är följande, där du kan se modellens användningsstatistik:

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

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

Det kan vara användbart att beräkna inbäddningar i indatabatch. Parametern inputs kan vara en lista över strängar, där varje sträng är olika indata. Svaret är i sin tur en lista över inbäddningar, där varje inbäddning motsvarar indata i samma 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",
        ],
    }
});

Svaret är följande, där du kan se modellens användningsstatistik:

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

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

Dricks

Cohere Embed V3-modeller kan ta batchar på 1024 åt gången. När du skapar batchar kontrollerar du att du inte överskrider den här gränsen.

Skapa olika typer av inbäddningar

Cohere Embed V3-modeller kan generera flera inbäddningar för samma indata beroende på hur du planerar att använda dem. Med den här funktionen kan du hämta mer exakta inbäddningar för RAG-mönster.

I följande exempel visas hur du skapar inbäddningar som används för att skapa en inbäddning för ett dokument som ska lagras i en vektordatabas:

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

När du arbetar med en fråga för att hämta ett sådant dokument kan du använda följande kodfragment för att skapa inbäddningarna för frågan och maximera hämtningsprestandan.

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

Cohere Embed V3-modeller kan optimera inbäddningarna baserat på dess användningsfall.

Sammanhängande inbäddningsmodeller

Cohere-serien med modeller för inbäddningar innehåller följande modeller:

Cohere Embed English är en multimodal (text och bild) representationsmodell som används för semantisk sökning, hämtningsförhöjd generation (RAG), klassificering och klustring. Embed English presterar bra på HuggingFace (massiv textbäddning) MTEB-benchmark och i användningsfall för olika branscher, till exempel Finance, Legal och General-Purpose Corpora. Bädda in engelska har också följande attribut:

  • Bädda in engelska har 1 024 dimensioner
  • Kontextfönstret för modellen är 512 tokens
  • Bädda in engelska accepterar bilder som en base64-kodad data-URL

Inbäddningar av bilder förbrukar ett fast antal token per bild – 1 000 token per bild – vilket innebär ett pris på 0,0001 USD per inbäddad bild. Bildens storlek eller upplösning påverkar inte antalet förbrukade token, förutsatt att bilden ligger inom de godkända dimensionerna, filstorleken och formaten.

Förutsättningar

Om du vill använda Cohere Embed V3-modeller med Azure AI Studio behöver du följande förutsättningar:

En modelldistribution

Distribution till serverlösa API:er

Cohere Embed V3-modeller kan distribueras till serverlösa API-slutpunkter med betala per användning-fakturering. Den här typen av distribution ger ett sätt att använda modeller som ett API utan att vara värd för dem i din prenumeration, samtidigt som den företagssäkerhet och efterlevnad som organisationer behöver bevaras.

Distribution till en serverlös API-slutpunkt kräver inte kvot från din prenumeration. Om din modell inte redan har distribuerats använder du Azure AI Studio, Azure Machine Learning SDK för Python, Azure CLI eller ARM-mallar för att distribuera modellen som ett serverlöst API.

En REST-klient

Modeller som distribueras med Azure AI-modellinferens-API :et kan användas med valfri REST-klient. Om du vill använda REST-klienten behöver du följande krav:

  • Om du vill skapa begäranden måste du skicka in slutpunkts-URL:en. Slutpunkts-URL:en har formuläret https://your-host-name.your-azure-region.inference.ai.azure.com, där your-host-name är värdnamnet för din unika modelldistribution och your-azure-region är den Azure-region där modellen distribueras (till exempel eastus2).
  • Beroende på din modelldistribution och autentiseringsinställning behöver du antingen en nyckel för att autentisera mot tjänsten eller autentiseringsuppgifter för Microsoft Entra-ID. Nyckeln är en sträng på 32 tecken.

Dricks

Dessutom stöder Cohere användning av ett skräddarsytt API för användning med specifika funktioner i modellen. Om du vill använda det specifika API:et för modellprovidern går du till dokumentationen för Cohere.

Arbeta med inbäddningar

I det här avsnittet använder du Azure AI-modellinferens-API :et med en inbäddningsmodell.

Skapa en klient för att använda modellen

Skapa först klienten för att använda modellen. I följande kod används en slutpunkts-URL och nyckel som lagras i miljövariabler.

Hämta modellens funktioner

Vägen /info returnerar information om den modell som distribueras till slutpunkten. Returnera modellens information genom att anropa följande metod:

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

Svaret är följande:

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

Skapa inbäddningar

Skapa en inbäddningsbegäran för att se modellens utdata.

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

Dricks

Kontextfönstret för Cohere Embed V3-modeller är 512. Se till att du inte överskrider den här gränsen när du skapar inbäddningar.

Svaret är följande, där du kan se modellens användningsstatistik:

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

Det kan vara användbart att beräkna inbäddningar i indatabatch. Parametern inputs kan vara en lista över strängar, där varje sträng är olika indata. Svaret är i sin tur en lista över inbäddningar, där varje inbäddning motsvarar indata i samma position.

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

Svaret är följande, där du kan se modellens användningsstatistik:

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

Dricks

Cohere Embed V3-modeller kan ta batchar på 1024 åt gången. När du skapar batchar kontrollerar du att du inte överskrider den här gränsen.

Skapa olika typer av inbäddningar

Cohere Embed V3-modeller kan generera flera inbäddningar för samma indata beroende på hur du planerar att använda dem. Med den här funktionen kan du hämta mer exakta inbäddningar för RAG-mönster.

I följande exempel visas hur du skapar inbäddningar som används för att skapa en inbäddning för ett dokument som ska lagras i en vektordatabas:

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

När du arbetar med en fråga för att hämta ett sådant dokument kan du använda följande kodfragment för att skapa inbäddningarna för frågan och maximera hämtningsprestandan.

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

Cohere Embed V3-modeller kan optimera inbäddningarna baserat på dess användningsfall.

Fler slutsatsdragningsexempel

beskrivning Språk Exempel
Webbbegäranden Bash cohere-embed.ipynb
Azure AI-slutsatsdragningspaket för JavaScript JavaScript Länk
Azure AI-slutsatsdragningspaket för Python Python Länk
OpenAI SDK (experimentell) Python Länk
LangChain Python Länk
Cohere SDK Python Länk
LiteLLM SDK Python Länk

Exempel på hämtning av utökad generation (RAG) och verktyg

beskrivning Paket Exempel
Skapa ett vektorindex för lokal Facebook AI-likhetssökning (FAISS) med hjälp av cohere-inbäddningar – Langchain langchain, langchain_cohere cohere_faiss_langchain_embed.ipynb
Använd Cohere Command R/R+ för att besvara frågor från data i det lokala FAISS-vektorindexet – Langchain langchain, langchain_cohere command_faiss_langchain.ipynb
Använd Cohere Command R/R+ för att besvara frågor från data i AI-sökvektorindex – Langchain langchain, langchain_cohere cohere-aisearch-langchain-rag.ipynb
Använd Cohere Command R/R+ för att besvara frågor från data i AI-sökvektorindex – Cohere SDK cohere, azure_search_documents cohere-aisearch-rag.ipynb
Kommando-R+-verktyg/funktionsanrop med Hjälp av LangChain cohere, , langchainlangchain_cohere command_tools-langchain.ipynb

Kostnads- och kvotöverväganden för cohere-serien med modeller som distribueras som serverlösa API-slutpunkter

Enhetliga modeller som distribueras som ett serverlöst API erbjuds av Cohere via Azure Marketplace och integreras med Azure AI Studio för användning. Du hittar prissättningen för Azure Marketplace när du distribuerar modellen.

Varje gång ett projekt prenumererar på ett visst erbjudande från Azure Marketplace skapas en ny resurs för att spåra de kostnader som är kopplade till förbrukningen. Samma resurs används för att spåra kostnader som är associerade med slutsatsdragning. Flera mätare är dock tillgängliga för att spåra varje scenario oberoende av varandra.

Mer information om hur du spårar kostnader finns i Övervaka kostnader för modeller som erbjuds i hela Azure Marketplace.

Kvot hanteras per distribution. Varje distribution har en hastighetsgräns på 200 000 token per minut och 1 000 API-begäranden per minut. För närvarande begränsar vi dock en distribution per modell per projekt. Kontakta Microsoft Azure Support om de aktuella hastighetsgränserna inte räcker för dina scenarier.