Nhúng vào Gemini API

Dịch vụ nhúng trong Gemini API tạo ra các mục nhúng hiện đại cho từ, cụm từ và câu. Sau đó, các mục nhúng thu được có thể được dùng cho các tác vụ xử lý ngôn ngữ tự nhiên (NLP), chẳng hạn như tìm kiếm ngữ nghĩa, phân loại văn bản và phân cụm cùng nhiều hoạt động khác.

Trang này giải thích ngắn gọn về các tính năng nhúng và nêu bật một số trường hợp sử dụng chính của dịch vụ nhúng để giúp bạn bắt đầu.

Nhúng là gì?

Nhúng văn bản là một kỹ thuật xử lý ngôn ngữ tự nhiên (NLP) giúp chuyển đổi văn bản thành các toạ độ số (gọi là vectơ) có thể biểu diễn trong không gian n chiều. Phương pháp này cho phép bạn coi các đoạn văn bản là các bit dữ liệu quan hệ mà sau đó chúng tôi có thể huấn luyện mô hình trên đó.

Kỹ thuật nhúng nắm bắt ý nghĩa ngữ nghĩa và ngữ cảnh, nhờ đó, văn bản có ý nghĩa tương tự sẽ 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 mục nhúng gần nhau trong không gian vectơ vì cả hai đều mô tả một ngữ cảnh tương tự nhau.

Bạn có thể dùng các mục nhúng để so sánh các văn bản khác nhau và tìm hiểu mối liên hệ giữa các văn bản đó. Ví dụ: nếu các mục nhúng văn bản "mèo" và "chó" gần nhau, bạn có thể suy luận rằng những từ này tương tự nhau về ý nghĩa hoặc ngữ cảnh hoặc cả hai. Khả năng này hỗ trợ nhiều trường hợp sử dụng được mô tả trong phần tiếp theo.

Trường hợp sử dụng

Tính năng nhúng văn bản được dùng trong nhiều trường hợp sử dụng NLP, chẳng hạn như:

  • Truy xuất thông tin: Bạn có thể sử dụng các mục nhúng để truy xuất văn bản tương tự về mặt ngữ nghĩa dựa trên một đoạn văn bản đầu vào. Hệ thống truy xuất thông tin có thể hỗ trợ nhiều ứng dụng, chẳng hạn như tìm kiếm theo ngữ nghĩa, trả lời câu hỏi hoặc tóm tắt.
  • Phân loại: Bạn có thể huấn luyện một mô hình bằng cách dùng các mục nhúng để phân loại tài liệu thành các danh mục. Ví dụ: nếu muốn phân loại nhận xét của người dùng là tiêu cực hoặc tích cực, bạn có thể sử dụng dịch vụ nhúng để lấy giá trị biểu diễn bằng vectơ của từng nhận xét nhằm huấn luyện thuật toán phân loại.
  • Phân cụm: So sánh các vectơ của văn bản có thể cho biết chúng tương tự hoặc khác nhau như thế nào. Bạn có thể dùng tính năng này để huấn luyện một mô hình phân cụm giúp nhóm các văn bản hoặc tài liệu tương tự với nhau, đồng thời phát hiện điểm bất thường trong dữ liệu của bạn.
  • Cơ sở dữ liệu vectơ: Bạn có thể lưu trữ các mục nhúng đã tạo trong cơ sở dữ liệu vectơ để cải thiện độ chính xác và hiệu quả của ứng dụng NLP. Hãy tham khảo hướng dẫn sau để tìm hiểu cách sử dụng cơ sở dữ liệu vectơ nhằm dịch lời nhắc văn bản thành các vectơ.

Mô hình nhúng Gemini

Gemini API cung cấp 2 mô hình để tạo tính năng nhúng văn bản: Nhúng văn bảnNhúng. Nhúng văn bản là phiên bản cập nhật của mô hình Nhúng, giúp cung cấp các kích thước nhúng đàn hồi dưới kích thước 768. Các thành phần nhúng đàn hồi tạo ra các kích thước đầu ra nhỏ hơn và có thể giúp tiết kiệm chi phí tính toán và lưu trữ mà chỉ giảm hiệu suất một chút.

Sử dụng tính năng Nhúng văn bản cho các dự án hoặc ứng dụng mới. Ứng dụng của bạn chỉ nên sử dụng mô hình Nhúng nếu bạn không thể di chuyển mô hình đó để sử dụng tính năng Nhúng văn bản.

Tạo video nhúng bằng Gemini API

Dùng phương thức embedContent để tạo các mục nhúng văn bản:

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]')

Hãy truy cập hướng dẫn bắt đầu sử dụng của chúng tôi để xem ví dụ đầy đủ về khả năng chạy.

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)

Hãy truy cập hướng dẫn bắt đầu sử dụng của chúng tôi để xem ví dụ đầy đủ về khả năng chạy được.

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

Hãy truy cập hướng dẫn bắt đầu sử dụng của chúng tôi để xem ví dụ đầy đủ về khả năng chạy.

Phi tiêu (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);

Hãy truy cập hướng dẫn bắt đầu sử dụng của chúng tôi để xem ví dụ đầy đủ về khả năng chạy.

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

Hãy truy cập vào phần Nhúng nhanh bằng sổ tay nấu ăn REST trên GitHub để xem ví dụ đầy đủ có thể chạy.

Bước tiếp theo