text-embedding-004
모델은 단어, 문구, 문장에 최신 임베딩을 생성합니다. 그러면 결과 임베딩을 시맨틱 검색, 텍스트 분류, 클러스터링과 같은 다양한 태스크에 사용할 수 있습니다. 임베딩에 관한 자세한 내용은 연구 논문을 참고하세요.
임베딩이란?
임베딩은 시맨틱 의미와 맥락을 캡처하므로 의미가 유사한 텍스트의 임베딩이 '더 가까운' 임베딩이 됩니다. 예를 들어 '강아지를 동물병원에 데려갔습니다'와 '고양이를 동물병원에 데려갔습니다'라는 문장은 모두 유사한 맥락을 설명하므로 벡터 공간에서 서로 가까운 임베딩을 갖습니다.
임베딩을 사용하여 여러 텍스트를 비교하고 서로 어떤 관련이 있는지 파악할 수 있습니다. 예를 들어 'cat'과 'dog' 텍스트의 임베딩이 서로 가까우면 이 단어의 의미, 맥락 또는 둘 다 유사하다고 추론할 수 있습니다. 이를 통해 다양한 일반적인 AI 사용 사례를 지원할 수 있습니다.
임베딩 생성
embedContent
메서드를 사용하여 텍스트 임베딩을 생성합니다.
Python
import google.generativeai as genai
import os
genai.configure(api_key=os.environ["GEMINI_API_KEY"])
result = genai.embed_content(
model="models/text-embedding-004",
content="What is the meaning of life?")
print(str(result['embedding']))
Node.js
const { GoogleGenerativeAI } = require("@google/generative-ai");
const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY);
const model = genAI.getGenerativeModel({ model: "text-embedding-004"});
async function run() {
const result = await model.embedContent("What is the meaning of life?");
console.log(result.embedding.values);
}
run();
curl
curl "https://generativelanguage.googleapis.com/v1beta/models/text-embedding-004:embedContent?key=$GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model": "models/text-embedding-004",
"content": {
"parts":[{
"text": "What is the meaning of life?"}]}
}'
Go
ctx := context.Background()
client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("GEMINI_API_KEY")))
if err != nil {
log.Fatal(err)
}
defer client.Close()
em := client.EmbeddingModel("text-embedding-004")
res, err := em.EmbedContent(ctx, genai.Text("What is the meaning of life?"))
if err != nil {
panic(err)
}
fmt.Println(res.Embedding.Values)
사용 사례
텍스트 임베딩은 다음과 같은 다양한 일반적인 AI 사용 사례에 사용됩니다.
정보 검색: 임베딩을 사용하여 입력 텍스트가 주어질 때 의미적으로 유사한 텍스트를 검색할 수 있습니다.
클러스터링: 임베딩 그룹을 비교하면 숨겨진 동향을 파악하는 데 도움이 될 수 있습니다.
벡터 데이터베이스: 다양한 임베딩 사용 사례를 프로덕션으로 가져갈 때는 일반적으로 벡터 데이터베이스에 임베딩을 저장합니다.
분류: 임베딩을 사용하여 모델을 학습하여 문서를 카테고리로 분류할 수 있습니다.
Gemini 임베딩 모델
Gemini API는 텍스트 임베딩을 생성하는 두 가지 모델을 제공합니다.
텍스트 임베딩은 768차원 미만의 탄력적 임베딩 크기를 제공하는 업데이트된 버전의 임베딩 모델입니다. 탄성 임베딩은 더 작은 출력 크기를 생성하고 약간의 성능 저하로 컴퓨팅 및 스토리지 비용을 절약할 수 있습니다.
새 프로젝트 또는 애플리케이션에 텍스트 임베딩을 사용합니다.