다음을 통해 공유


Azure AI Foundry에서 Cohere Embed V3 모델을 사용하는 방법

Important

이 문서에 표시된 항목(미리 보기)은 현재 퍼블릭 미리 보기에서 확인할 수 있습니다. 이 미리 보기는 서비스 수준 계약 없이 제공되며, 프로덕션 워크로드에는 권장되지 않습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다. 자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.

이 문서에서는 Cohere Embed V3 모델에 대해 알아보고 Azure AI Foundry와 함께 사용하는 방법을 알아봅니다. Cohere 모델 제품군에는 채팅 완료, 포함 및 Rerank를 포함하여 다양한 사용 사례에 최적화된 다양한 모델이 포함되어 있습니다. Cohere 모델은 추론, 요약 및 질문 답변을 포함하는 다양한 사용 사례에 최적화되어 있습니다.

Important

미리 보기에 있는 모델은 모델 카탈로그의 모델 카드에서 미리 보기표시됩니다.

Cohere 포함 모델

포함 모델의 Cohere 제품군에는 다음 모델이 포함됩니다.

Cohere Embed English는 의미 체계 검색, RAG(검색 보강 세대), 분류 및 클러스터링에 사용되는 멀티모달(텍스트 및 이미지) 표현 모델입니다. Embed English는 HuggingFace(대규모 텍스트 임베드) MTEB 벤치마크와 재무, 법률, 범용 기업 등 다양한 업계의 사용 사례에서 좋은 성능을 보였습니다. Embed English에는 다음과 같은 특성이 있습니다.

  • 영어 포함 차원은 1,024개입니다.
  • 모델의 컨텍스트 창은 512개 토큰입니다.
  • Embed English는 이미지를 base64로 인코딩된 데이터 URL로 허용합니다.

이미지 포함은 이미지당 고정된 수의 토큰(이미지당 1,000개 토큰)을 사용하며 이는 포함된 이미지당 $0.0001의 가격으로 변환됩니다. 이미지가 허용되는 차원, 파일 크기 및 형식 내에 있는 경우 이미지의 크기 또는 해상도는 사용된 토큰 수에 영향을 주지 않습니다.

필수 조건

Azure AI Foundry에서 Cohere Embed V3 모델을 사용하려면 다음 필수 구성 요소가 필요합니다.

모델 배포

서버리스 API에 배포

Cohere Embed V3 모델은 종량제 청구를 사용하여 서버리스 API 엔드포인트에 배포할 수 있습니다. 이 종류의 배포를 활용하면 조직에 필요한 엔터프라이즈 보안 및 규정 준수를 유지하면서 구독에서 모델을 호스트하지 않고 API로 모델을 사용할 수 있습니다.

서버리스 API 엔드포인트에 배포해도 구독의 할당량이 필요하지 않습니다. 모델이 아직 배포되지 않은 경우 Azure AI Foundry 포털, Python용 Azure Machine Learning SDK, Azure CLI 또는 ARM 템플릿을 사용하여 모델을 서버리스 API로 배포합니다.

설치된 유추 패키지

Python과 함께 azure-ai-inference 패키지를 사용하여 이 모델의 예측을 사용할 수 있습니다. 이 패키지를 설치하려면 다음 필수 구성 요소가 필요합니다.

  • pip를 포함하여 Python 3.8 이상이 설치됨.
  • 엔드포인트 URL. 클라이언트 라이브러리를 생성하려면 엔드포인트 URL을 전달해야 합니다. 엔드포인트 URL에는 https://your-host-name.your-azure-region.inference.ai.azure.com 형식이 있습니다. 여기서 your-host-name은(는) 고유한 모델 배포 호스트 이름이고 your-azure-region은(는) 모델이 배포되는 Azure 지역입니다(예: eastus2).
  • 모델 배포 및 인증 기본 설정에 따라 서비스에 대해 인증할 키 또는 Microsoft Entra ID 자격 증명이 필요합니다. 키는 32자 문자열입니다.

이러한 필수 구성 요소가 있으면 다음 명령을 사용하여 Azure AI 유추 패키지를 설치합니다.

pip install azure-ai-inference

Azure AI 유추 패키지 및 참조에 대해 자세히 알아보세요.

또한 Cohere는 모델의 특정 기능과 함께 사용하기 위해 맞춤형 API의 사용을 지원합니다. 모델 공급자별 API를 사용하려면 Cohere 설명서를 확인 하세요.

포함이 있는 작업

이 섹션에서는 포함 모델과 함께 Azure AI 모델 유추 API를 사용합니다.

모델을 사용할 클라이언트 만들기

먼저 모델을 사용할 클라이언트를 만듭니다. 다음 코드는 환경 변수에 저장된 엔드포인트 URL 및 키를 사용합니다.

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

모델의 기능 가져오기

/info 경로는 엔드포인트에 배포된 모델에 대한 정보를 반환합니다. 다음 메서드를 호출하여 모델의 정보를 반환합니다.

model_info = model.get_model_info()

응답은 다음과 같습니다.

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

포함 만들기

포함 요청을 만들어 모델의 출력을 확인합니다.

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

Cohere Embed V3 모델의 컨텍스트 창은 512입니다. 포함을 만들 때 이 제한을 초과하지 않는지 확인합니다.

응답은 다음과 같습니다. 여기서 모델의 사용 통계를 볼 수 있습니다.

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)

입력 배치에서 포함을 계산하는 것이 유용할 수 있습니다. 매개 변수 inputs은/는 각 문자열이 다른 입력인 문자열 목록일 수 있습니다. 차례로 응답은 포함 목록으로, 각 포함은 동일한 위치에 있는 입력에 해당합니다.

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

응답은 다음과 같습니다. 여기서 모델의 사용 통계를 볼 수 있습니다.

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)

Cohere Embed V3 모델은 한 번에 1024개의 배치를 처리할 수 있습니다. 배치를 만들 때 이 제한을 초과하지 않는지 확인합니다.

다양한 유형의 포함 만들기

Cohere Embed V3 모델은 사용 계획에 따라 동일한 입력에 대해 여러 포함을 생성할 수 있습니다. 이 기능을 사용하면 RAG 패턴에 대해 좀 더 정확한 포함을 검색할 수 있습니다.

다음 예제에서는 벡터 데이터베이스에 저장될 문서에 대한 포함을 만드는 데 사용되는 포함을 만드는 방법을 보여 줍니다.

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

이러한 문서를 검색하는 쿼리를 실행할 때 다음 코드 조각을 사용하여 쿼리에 대한 포함을 만들고 검색 성능을 극대화할 수 있습니다.

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 모델은 사용 사례에 따라 포함을 최적화할 수 있습니다.

Cohere 포함 모델

포함 모델의 Cohere 제품군에는 다음 모델이 포함됩니다.

Cohere Embed English는 의미 체계 검색, RAG(검색 보강 세대), 분류 및 클러스터링에 사용되는 멀티모달(텍스트 및 이미지) 표현 모델입니다. Embed English는 HuggingFace(대규모 텍스트 임베드) MTEB 벤치마크와 재무, 법률, 범용 기업 등 다양한 업계의 사용 사례에서 좋은 성능을 보였습니다. Embed English에는 다음과 같은 특성이 있습니다.

  • 영어 포함 차원은 1,024개입니다.
  • 모델의 컨텍스트 창은 512개 토큰입니다.
  • Embed English는 이미지를 base64로 인코딩된 데이터 URL로 허용합니다.

이미지 포함은 이미지당 고정된 수의 토큰(이미지당 1,000개 토큰)을 사용하며 이는 포함된 이미지당 $0.0001의 가격으로 변환됩니다. 이미지가 허용되는 차원, 파일 크기 및 형식 내에 있는 경우 이미지의 크기 또는 해상도는 사용된 토큰 수에 영향을 주지 않습니다.

필수 조건

Azure AI Foundry에서 Cohere Embed V3 모델을 사용하려면 다음 필수 구성 요소가 필요합니다.

모델 배포

서버리스 API에 배포

Cohere Embed V3 모델은 종량제 청구를 사용하여 서버리스 API 엔드포인트에 배포할 수 있습니다. 이 종류의 배포를 활용하면 조직에 필요한 엔터프라이즈 보안 및 규정 준수를 유지하면서 구독에서 모델을 호스트하지 않고 API로 모델을 사용할 수 있습니다.

서버리스 API 엔드포인트에 배포해도 구독의 할당량이 필요하지 않습니다. 모델이 아직 배포되지 않은 경우 Azure AI Foundry 포털, Python용 Azure Machine Learning SDK, Azure CLI 또는 ARM 템플릿을 사용하여 모델을 서버리스 API로 배포합니다.

설치된 유추 패키지

@azure-rest/ai-inference 패키지를 npm으로부터 사용하여 이 모델의 예측을 사용할 수 있습니다. 이 패키지를 설치하려면 다음 필수 구성 요소가 필요합니다.

  • npm이(가) 있는 Node.js의 LTS 버전입니다.
  • 엔드포인트 URL. 클라이언트 라이브러리를 생성하려면 엔드포인트 URL을 전달해야 합니다. 엔드포인트 URL에는 https://your-host-name.your-azure-region.inference.ai.azure.com 형식이 있습니다. 여기서 your-host-name은(는) 고유한 모델 배포 호스트 이름이고 your-azure-region은(는) 모델이 배포되는 Azure 지역입니다(예: eastus2).
  • 모델 배포 및 인증 기본 설정에 따라 서비스에 대해 인증할 키 또는 Microsoft Entra ID 자격 증명이 필요합니다. 키는 32자 문자열입니다.

이러한 필수 구성 요소가 있으면 다음 명령을 사용하여 JavaScript용 Azure 유추 라이브러리를 설치합니다.

npm install @azure-rest/ai-inference

또한 Cohere는 모델의 특정 기능과 함께 사용하기 위해 맞춤형 API의 사용을 지원합니다. 모델 공급자별 API를 사용하려면 Cohere 설명서를 확인 하세요.

포함이 있는 작업

이 섹션에서는 포함 모델과 함께 Azure AI 모델 유추 API를 사용합니다.

모델을 사용할 클라이언트 만들기

먼저 모델을 사용할 클라이언트를 만듭니다. 다음 코드는 환경 변수에 저장된 엔드포인트 URL 및 키를 사용합니다.

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

모델의 기능 가져오기

/info 경로는 엔드포인트에 배포된 모델에 대한 정보를 반환합니다. 다음 메서드를 호출하여 모델의 정보를 반환합니다.

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

응답은 다음과 같습니다.

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

포함 만들기

포함 요청을 만들어 모델의 출력을 확인합니다.

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

Cohere Embed V3 모델의 컨텍스트 창은 512입니다. 포함을 만들 때 이 제한을 초과하지 않는지 확인합니다.

응답은 다음과 같습니다. 여기서 모델의 사용 통계를 볼 수 있습니다.

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

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

입력 배치에서 포함을 계산하는 것이 유용할 수 있습니다. 매개 변수 inputs은/는 각 문자열이 다른 입력인 문자열 목록일 수 있습니다. 차례로 응답은 포함 목록으로, 각 포함은 동일한 위치에 있는 입력에 해당합니다.

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

응답은 다음과 같습니다. 여기서 모델의 사용 통계를 볼 수 있습니다.

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

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

Cohere Embed V3 모델은 한 번에 1024개의 배치를 처리할 수 있습니다. 배치를 만들 때 이 제한을 초과하지 않는지 확인합니다.

다양한 유형의 포함 만들기

Cohere Embed V3 모델은 사용 계획에 따라 동일한 입력에 대해 여러 포함을 생성할 수 있습니다. 이 기능을 사용하면 RAG 패턴에 대해 좀 더 정확한 포함을 검색할 수 있습니다.

다음 예제에서는 벡터 데이터베이스에 저장될 문서에 대한 포함을 만드는 데 사용되는 포함을 만드는 방법을 보여 줍니다.

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

이러한 문서를 검색하는 쿼리를 실행할 때 다음 코드 조각을 사용하여 쿼리에 대한 포함을 만들고 검색 성능을 극대화할 수 있습니다.

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

Cohere Embed V3 모델은 사용 사례에 따라 포함을 최적화할 수 있습니다.

Cohere 포함 모델

포함 모델의 Cohere 제품군에는 다음 모델이 포함됩니다.

Cohere Embed English는 의미 체계 검색, RAG(검색 보강 세대), 분류 및 클러스터링에 사용되는 멀티모달(텍스트 및 이미지) 표현 모델입니다. Embed English는 HuggingFace(대규모 텍스트 임베드) MTEB 벤치마크와 재무, 법률, 범용 기업 등 다양한 업계의 사용 사례에서 좋은 성능을 보였습니다. Embed English에는 다음과 같은 특성이 있습니다.

  • 영어 포함 차원은 1,024개입니다.
  • 모델의 컨텍스트 창은 512개 토큰입니다.
  • Embed English는 이미지를 base64로 인코딩된 데이터 URL로 허용합니다.

이미지 포함은 이미지당 고정된 수의 토큰(이미지당 1,000개 토큰)을 사용하며 이는 포함된 이미지당 $0.0001의 가격으로 변환됩니다. 이미지가 허용되는 차원, 파일 크기 및 형식 내에 있는 경우 이미지의 크기 또는 해상도는 사용된 토큰 수에 영향을 주지 않습니다.

필수 조건

Azure AI Foundry에서 Cohere Embed V3 모델을 사용하려면 다음 필수 구성 요소가 필요합니다.

모델 배포

서버리스 API에 배포

Cohere Embed V3 모델은 종량제 청구를 사용하여 서버리스 API 엔드포인트에 배포할 수 있습니다. 이 종류의 배포를 활용하면 조직에 필요한 엔터프라이즈 보안 및 규정 준수를 유지하면서 구독에서 모델을 호스트하지 않고 API로 모델을 사용할 수 있습니다.

서버리스 API 엔드포인트에 배포해도 구독의 할당량이 필요하지 않습니다. 모델이 아직 배포되지 않은 경우 Azure AI Foundry 포털, Python용 Azure Machine Learning SDK, Azure CLI 또는 ARM 템플릿을 사용하여 모델을 서버리스 API로 배포합니다.

REST 클라이언트

Azure AI 모델 유추 API를 사용하여 배포된 모델은 REST 클라이언트를 사용하여 사용할 수 있습니다. REST 클라이언트를 사용하려면 다음 필수 구성 요소가 필요합니다.

  • 요청을 생성하려면 엔드포인트 URL을 전달해야 합니다. 엔드포인트 URL에는 https://your-host-name.your-azure-region.inference.ai.azure.com 형식이 있습니다. 여기서 your-host-name은(는) 고유한 모델 배포 호스트 이름이고 your-azure-region은(는) 모델이 배포되는 Azure 지역입니다(예: eastus2).
  • 모델 배포 및 인증 기본 설정에 따라 서비스에 대해 인증할 키 또는 Microsoft Entra ID 자격 증명이 필요합니다. 키는 32자 문자열입니다.

또한 Cohere는 모델의 특정 기능과 함께 사용하기 위해 맞춤형 API의 사용을 지원합니다. 모델 공급자별 API를 사용하려면 Cohere 설명서를 확인 하세요.

포함이 있는 작업

이 섹션에서는 포함 모델과 함께 Azure AI 모델 유추 API를 사용합니다.

모델을 사용할 클라이언트 만들기

먼저 모델을 사용할 클라이언트를 만듭니다. 다음 코드는 환경 변수에 저장된 엔드포인트 URL 및 키를 사용합니다.

모델의 기능 가져오기

/info 경로는 엔드포인트에 배포된 모델에 대한 정보를 반환합니다. 다음 메서드를 호출하여 모델의 정보를 반환합니다.

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

응답은 다음과 같습니다.

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

포함 만들기

포함 요청을 만들어 모델의 출력을 확인합니다.

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

Cohere Embed V3 모델의 컨텍스트 창은 512입니다. 포함을 만들 때 이 제한을 초과하지 않는지 확인합니다.

응답은 다음과 같습니다. 여기서 모델의 사용 통계를 볼 수 있습니다.

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

입력 배치에서 포함을 계산하는 것이 유용할 수 있습니다. 매개 변수 inputs은/는 각 문자열이 다른 입력인 문자열 목록일 수 있습니다. 차례로 응답은 포함 목록으로, 각 포함은 동일한 위치에 있는 입력에 해당합니다.

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

응답은 다음과 같습니다. 여기서 모델의 사용 통계를 볼 수 있습니다.

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

Cohere Embed V3 모델은 한 번에 1024개의 배치를 처리할 수 있습니다. 배치를 만들 때 이 제한을 초과하지 않는지 확인합니다.

다양한 유형의 포함 만들기

Cohere Embed V3 모델은 사용 계획에 따라 동일한 입력에 대해 여러 포함을 생성할 수 있습니다. 이 기능을 사용하면 RAG 패턴에 대해 좀 더 정확한 포함을 검색할 수 있습니다.

다음 예제에서는 벡터 데이터베이스에 저장될 문서에 대한 포함을 만드는 데 사용되는 포함을 만드는 방법을 보여 줍니다.

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

이러한 문서를 검색하는 쿼리를 실행할 때 다음 코드 조각을 사용하여 쿼리에 대한 포함을 만들고 검색 성능을 극대화할 수 있습니다.

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

Cohere Embed V3 모델은 사용 사례에 따라 포함을 최적화할 수 있습니다.

더 많은 유추 예

설명 언어 Sample
웹 요청 Bash cohere-embed.ipynb
JavaScript용 Azure AI 유추 패키지 JavaScript 링크
Python용 Azure AI 유추 패키지 Python 링크
OpenAI SDK(실험용) Python 링크
LangChain Python 링크
Cohere SDK Python 링크
LiteLLM SDK Python 링크

RAG(검색 증강 생성) 및 도구 사용 샘플

설명 패키지 Sample
Cohere embeddings를 사용하여 로컬 Facebook FAISS(AI 유사성 검색) 벡터 인덱스 만들기 - Langchain langchain, langchain_cohere cohere_faiss_langchain_embed.ipynb
Cohere 명령 R/R+을 사용하여 로컬 FAISS 벡터 인덱스의 데이터 질문에 답변 - Langchain langchain, langchain_cohere command_faiss_langchain.ipynb
Cohere 명령 R/R+을 사용하여 AI 검색 벡터 인덱스의 데이터 질문에 답변 - Langchain langchain, langchain_cohere cohere-aisearch-langchain-rag.ipynb
Cohere 명령 R/R+을 사용하여 AI 검색 벡터 인덱스의 데이터 질문에 답변 - Cohere SDK cohere, azure_search_documents cohere-aisearch-rag.ipynb
LangChain을 사용하여 R+ 도구/함수 호출 명령 cohere, , langchainlangchain_cohere command_tools-langchain.ipynb

서버리스 API 엔드포인트로 배포된 Cohere 모델 제품군에 대한 비용 및 할당량 고려 사항

서버리스 API로 배포된 Cohere 모델은 Cohere에서 Azure Marketplace를 통해 제공하고 사용할 Azure AI Foundry와 통합됩니다. 모델을 배포할 때 Azure Marketplace 가격 책정을 확인할 수 있습니다.

프로젝트가 Azure Marketplace에서 지정된 제품을 구독할 때마다 사용에 연결된 비용을 추적하기 위해 새 리소스가 만들어집니다. 유추와 관련된 비용을 추적하는 데 동일한 리소스가 사용됩니다. 그러나 여러 미터를 사용하여 각 시나리오를 독립적으로 추적할 수 있습니다.

비용을 추적하는 방법에 대한 자세한 내용은 Azure Marketplace를 통해 제공되는 모델에 대한 비용 모니터링을 참조하세요.

할당량은 배포당 관리됩니다. 각 배포에는 분당 200,000개의 토큰과 분당 1,000개의 API 요청의 속도 제한이 있습니다. 그러나 현재는 프로젝트별 모델당 하나의 배포로 제한됩니다. 현재 속도 제한이 시나리오에 충분하지 않은 경우 Microsoft Azure 지원에 문의하세요.