Gemini API의 임베딩

Gemini API의 임베딩 서비스는 최신 임베딩을 생성합니다. 단어, 구문 및 문장을 검색할 수 있습니다 결과 임베딩은 자연어 처리(NLP) 태스크(예: 의미론적 검색, 텍스트) 분류 및 클러스터링입니다.

이 페이지에서는 임베딩에 대해 간단히 설명하고 임베딩 서비스를 사용하면 도움이 됩니다.

임베딩이 무엇인가요?

텍스트 임베딩은 텍스트, 이미지, 오디오, 텍스트를 나타냅니다. 이 접근 방식을 사용하면 텍스트 조각을 모델을 학습시킬 수 있습니다.

임베딩은 의미론적 의미와 컨텍스트를 캡처하여 비슷한 의미를 갖는다는 것입니다. 예를 들어, "나는 CANNOT TRANSLATE '고양이를 수의사에게 데려갔습니다.' 다음과 같은 임베딩을 갖는 것입니다. 둘 다 유사한 특성을 설명하기 때문에 있습니다.

임베딩을 사용하여 다양한 텍스트를 비교하고 공감합니다. 예를 들어 'cat'이라는 텍스트의 임베딩이 및 'dog' 가깝습니다. 함께 사용하면 이러한 단어들이 의미나 문맥에서 비슷하다고 추론하거나 있습니다 이 기능을 사용하면 다음 섹션에서 설명하는 다양한 사용 사례가 가능합니다.

사용 사례

텍스트 임베딩은 다음과 같은 다양한 NLP 사용 사례에 사용됩니다.

  • 정보 검색: 임베딩을 사용하여 의미론적으로 검색할 수 있습니다. 유사한 텍스트를 생성합니다. 다양한 애플리케이션이 시맨틱 검색과 같은 정보 검색 시스템에서 지원하는 질문에 답하거나 요약하는 것입니다.
  • 분류: 임베딩을 사용하여 모델을 학습시켜 모델을 분류할 수 있습니다. 분류할 수 있습니다 예를 들어 사용자를 임베딩 서비스를 사용하여 각 코멘트의 벡터 표현을 사용하여 분류자를 학습시킵니다.
  • 클러스터링: 텍스트 벡터를 비교하면 있습니다. 이 기능은 그룹화된 클러스터링 모델을 데이터에서 이상치를 감지할 수 있습니다.
  • 벡터 데이터베이스: 생성한 임베딩을 벡터에 저장할 수 있습니다. NLP 애플리케이션의 정확성과 효율성을 높일 수 있습니다. 다음 튜토리얼을 참조하여 벡터 데이터베이스를 사용하여 텍스트 프롬프트를 숫자 벡터로 변환합니다.

Gemini 임베딩 모델

Gemini API는 텍스트 임베딩을 생성하는 두 가지 모델을 제공합니다. 텍스트 임베딩임베딩. 텍스트 임베딩은 탄력적 임베딩 크기를 제공하는 임베딩 모델의 업데이트된 버전 768개의 측정기준입니다. 탄력적 임베딩은 더 작은 출력 차원을 생성하고 잠재적으로 약간의 성능 손실로 컴퓨팅 및 스토리지 비용을 절약할 수 있습니다.

새 프로젝트나 애플리케이션에 텍스트 임베딩을 사용합니다. 애플리케이션은 텍스트 임베딩을 사용하도록 이전할 수 없는 경우에만 임베딩 모델을 사용하세요.

Gemini API로 임베딩 생성

텍스트 임베딩을 생성하려면 embedContent 메서드를 사용합니다.

Python

result = genai.embed_content(
    model="models/text-embedding-004",
    content="What is the meaning of life?",
    task_type="retrieval_document",
    title="Embedding of single string")

# 1 input > 1 vector output
print(str(result['embedding'])[:50], '... TRIMMED]')

시작하기 튜토리얼 를 참조하세요.

Go

ctx := context.Background()
// Access your API key as an environment variable (see our Getting Started tutorial)
client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("API_KEY")))
if err != nil {
    log.Fatal(err)
}
defer client.Close()
// For embeddings, use the Text Embeddings model
em := client.EmbeddingModel("text-embedding-004")
res, err := em.EmbedContent(ctx, genai.Text("The quick brown fox jumps over the lazy dog."))

if err != nil {
    panic(err)
}
fmt.Println(res.Embedding.Values)

시작하기 튜토리얼: 살펴봤습니다

Node.js

const { GoogleGenerativeAI } = require("@google/generative-ai");

// Access your API key as an environment variable (see our Getting Started tutorial)
const genAI = new GoogleGenerativeAI(process.env.API_KEY);

async function run() {
// For embeddings, use the Text Embeddings model
const model = genAI.getGenerativeModel({ model: "text-embedding-004"});

const text = "The quick brown fox jumps over the lazy dog."

const result = await model.embedContent(text);
const embedding = result.embedding;
console.log(embedding.values);
}

run();

시작하기 튜토리얼 를 참조하세요.

Dart (Flutter)

final model = GenerativeModel(model: 'text-embedding-004', apiKey: apiKey);
final content = Content.text('The quick brown fox jumps over the lazy dog.');
final result = await model.embedContent(content);
print(result.embedding.values);

시작하기 튜토리얼 를 참조하세요.

curl

curl "https://generativelanguage.googleapis.com/v1beta/models/text-embedding-004:embedContent?key=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model": "models/text-embedding-004",
     "content": {
     "parts":[{
     "text": "Hello world"}]}, }' 2> /dev/null | head

REST 설명서 삽입 빠른 시작 가이드: GitHub 를 참조하세요.

다음 단계