Gemini API hỗ trợ một số mô hình nhúng tạo ra các phần nhúng cho từ, cụm từ, mã và câu. Sau đó, bạn có thể sử dụng các nội dung nhúng thu được cho các tác vụ như tìm kiếm ngữ nghĩa, phân loại văn bản và tạo cụm, cùng nhiều tác vụ khác.
Nhúng là gì?
Nội dung nhúng là nội dung đại diện bằng số của văn bản (hoặc các định dạng nội dung nghe nhìn khác) giúp ghi lại mối quan hệ giữa các dữ liệu đầu vào. Tính năng nhúng văn bản hoạt động bằng cách chuyển đổi văn bản thành các mảng số dấu phẩy động, được gọi là vectơ. Các vectơ này được thiết kế để nắm bắt ý nghĩa của văn bản. Độ dài của mảng nhúng được gọi là phương diện của vectơ. Một đoạn văn bản có thể được biểu thị bằng một vectơ chứa hàng trăm phương diện.
Các phần nhúng ghi lại ngữ nghĩa và ngữ cảnh, nhờ đó, văn bản có ý nghĩa tương tự sẽ có các phần nhúng "gần hơn". Ví dụ: câu "Tôi đưa chó đến bác sĩ thú y" và "Tôi đưa mèo đến bác sĩ thú y" sẽ có các phần nhúng gần nhau trong không gian vectơ.
Bạn có thể sử dụng tính năng nhúng để so sánh các văn bản khác nhau và tìm hiểu mối quan hệ giữa các văn bản đó. Ví dụ: nếu các phần nhúng của văn bản "mèo" và "chó" nằm gần nhau, bạn có thể suy luận rằng các từ này tương tự nhau về ý nghĩa, ngữ cảnh hoặc cả hai. Điều này cho phép nhiều trường hợp sử dụng AI phổ biến.
Tạo nội dung nhúng
Sử dụng phương thức embedContent
để tạo các văn bản nhúng:
Python
from google import genai
client = genai.Client(api_key="GEMINI_API_KEY")
result = client.models.embed_content(
model="gemini-embedding-exp-03-07",
contents="What is the meaning of life?")
print(result.embeddings)
JavaScript
import { GoogleGenAI } from "@google/genai";
async function main() {
const ai = new GoogleGenAI({ apiKey: "GEMINI_API_KEY" });
const response = await ai.models.embedContent({
model: 'gemini-embedding-exp-03-07',
contents: 'What is the meaning of life?',
});
console.log(response.embeddings);
}
main();
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("gemini-embedding-exp-03-07")
res, err := em.EmbedContent(ctx, genai.Text("What is the meaning of life?"))
if err != nil {
panic(err)
}
fmt.Println(res.Embedding.Values)
REST
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-embedding-exp-03-07:embedContent?key=$GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model": "models/gemini-embedding-exp-03-07",
"content": {
"parts":[{
"text": "What is the meaning of life?"}]}
}'
Bạn cũng có thể tạo các phần nhúng cho nhiều đoạn cùng một lúc bằng cách truyền các đoạn đó dưới dạng danh sách các chuỗi.
Loại việc cần làm
Khi xây dựng hệ thống Tạo dữ liệu tăng cường truy xuất (RAG), một thiết kế phổ biến là sử dụng các văn bản nhúng để thực hiện tìm kiếm tương đồng. Trong một số trường hợp, điều này có thể dẫn đến chất lượng giảm vì câu hỏi và câu trả lời không tương đồng về ngữ nghĩa. Ví dụ: một câu hỏi như "Tại sao trời lại xanh?" và câu trả lời "Sự tán xạ ánh sáng mặt trời tạo ra màu xanh dương" có ý nghĩa khác nhau rõ ràng khi là câu lệnh, nghĩa là hệ thống RAG sẽ không tự động nhận ra mối quan hệ giữa chúng.
Các loại tác vụ cho phép bạn tạo các mục nhúng được tối ưu hoá cho các tác vụ cụ thể, giúp bạn tiết kiệm thời gian và chi phí cũng như cải thiện hiệu suất.
Python
from google import genai
from google.genai import types
client = genai.Client(api_key="GEMINI_API_KEY")
result = client.models.embed_content(
model="gemini-embedding-exp-03-07",
contents="What is the meaning of life?",
config=types.EmbedContentConfig(task_type="SEMANTIC_SIMILARITY")
)
print(result.embeddings)
JavaScript
import { GoogleGenAI } from "@google/genai";
async function main() {
const ai = new GoogleGenAI({ apiKey: "GEMINI_API_KEY" });
const response = await ai.models.embedContent({
model: 'gemini-embedding-exp-03-07',
contents: 'What is the meaning of life?',
config: {
taskType: "SEMANTIC_SIMILARITY",
}
});
console.log(response.embeddings);
}
main();
REST
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-embedding-exp-03-07:embedContent?key=$GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model": "models/gemini-embedding-exp-03-07",
"content": {
"parts":[{
"text": "What is the meaning of life?"}]},
"taskType": "SEMANTIC_SIMILARITY"
}'
Các loại tác vụ được hỗ trợ
Loại việc cần làm | Mô tả |
---|---|
SEMANTIC_SIMILARITY |
Dùng để tạo các nội dung nhúng được tối ưu hoá để đánh giá mức độ tương đồng của văn bản. |
CLASSIFICATION |
Dùng để tạo các giá trị nhúng được tối ưu hoá để phân loại văn bản theo nhãn đặt trước. |
CLUSTERING |
Dùng để tạo các giá trị nhúng được tối ưu hoá để nhóm các văn bản dựa trên sự tương đồng của chúng. |
RETRIEVAL_DOCUMENT , RETRIEVAL_QUERY , QUESTION_ANSWERING và FACT_VERIFICATION |
Dùng để tạo các nội dung nhúng được tối ưu hoá cho việc tìm kiếm tài liệu hoặc truy xuất thông tin. |
CODE_RETRIEVAL_QUERY |
Dùng để truy xuất một khối mã dựa trên truy vấn bằng ngôn ngữ tự nhiên, chẳng hạn như sắp xếp một mảng hoặc đảo ngược một danh sách liên kết. Các phần nhúng của khối mã được tính toán bằng RETRIEVAL_DOCUMENT . |
Trường hợp sử dụng
Nội dung nhúng văn bản được dùng trong nhiều trường hợp sử dụng AI phổ biến, chẳng hạn như:
Truy xuất thông tin: Bạn có thể sử dụng các phần nhúng để truy xuất văn bản tương tự về ngữ nghĩa dựa trên một đoạn văn bản đầu vào.
Nhóm: Việc so sánh các nhóm nội dung nhúng có thể giúp xác định các xu hướng ẩn.
Cơ sở dữ liệu vectơ: Khi bạn đưa các trường hợp sử dụng nhúng khác nhau vào sản xuất, thường thì bạn sẽ lưu trữ các phần nhúng trong cơ sở dữ liệu vectơ.
Phân loại: Bạn có thể huấn luyện mô hình bằng cách sử dụng các giá trị nhúng để phân loại tài liệu thành các danh mục.
Nhúng mô hình
Gemini API cung cấp 3 mô hình tạo văn bản nhúng: