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. Các mục nhúng thu được sau đó có thể được sử dụng cho nhiệm vụ xử lý ngôn ngữ tự nhiên (NLP), chẳng hạn như tìm kiếm ngữ nghĩa, văn bản phân loại và phân cụm cùng nhiều tiêu chí khác.

Trang này giải thích ngắn gọn về 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 để 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ố (được gọi là vectơ) có thể vẽ được theo không gian n chiều. Phương pháp này cho phép bạn coi đoạn văn bản là các đoạn dữ liệu quan hệ mà sau đó chúng tôi có thể huấn luyện mô hình.

Nội dung nhúng nắm bắt ý nghĩa ngữ nghĩa và ngữ cảnh, dẫn đến văn bản có ý nghĩa tương tự nhưng có phần nhúng gần hơn. Ví dụ: câu "Tôi lấy chó đến bác sĩ thú y" và "Tôi đã đưa con mèo của mình đến bác sĩ thú y" sẽ có các video nhúng gần nhau trong không gian vectơ vì cả hai đều mô tả một ngữ cảnh.

Bạn có thể dùng các tính năng nhúng để so sánh nhiều văn bản và tìm hiểu cách các văn bản đó liên quan. Ví dụ: nếu văn bản nhúng "mèo" và "chó" gần 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. 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 tính năng nhúng để truy xuất theo ngữ nghĩa văn bản tương tự dựa vào một đoạn văn bản đầu vào. Có thể có nhiều ứng dụng khác nhau được hỗ trợ bởi hệ thống truy xuất thông tin như tìm kiếm 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 theo các danh mục. Ví dụ: nếu bạn muốn phân loại người dùng là nhận xét tiêu cực hoặc tích cực, bạn có thể sử dụng dịch vụ nhúng để đại diện vectơ của từng nhận xét để 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 mức độ tương tự hoặc khác nhau chúng. 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 mà nhóm văn bản hoặc tài liệu tương tự với nhau và để phát hiện các đ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 một vectơ cơ sở dữ liệu để cải thiện độ chính xác và hiệu quả của ứng dụng NLP. Tham khảo hướng dẫn sau để tìm hiểu cách sử dụng cơ sở dữ liệu vectơ để chuyển câu lệnh bằng văn bản thành vectơ số.

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: Văn bản NhúngNhúng. Nhúng văn bản là một phiên bản cập nhật của mô hình Nhúng cung cấp các kích thước nhúng đàn hồi trong Phương diện 768. Các nhúng đàn hồi tạo ra 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à không làm giảm hiệu suấ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 nên chỉ sử dụng mô hình Nhúng nếu bạn không thể di chuyển mô hình đó sang 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]')

Truy cập vào trang bắt đầu sử dụng hướng dẫn để xem ví dụ hoàn chỉnh có thể 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)

Truy cập vào trang bắt đầu sử dụng hướng dẫn cho ví dụ hoàn chỉnh có thể chạy.

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

Truy cập vào trang bắt đầu sử dụng hướng dẫn để xem ví dụ hoàn chỉnh có thể 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);

Truy cập vào trang bắt đầu sử dụng hướng dẫn để xem ví dụ hoàn chỉnh có thể 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

Truy cập vào phần Nhúng nhanh bằng sổ tay nấu ăn REST của chúng tôi trên GitHub để xem ví dụ hoàn chỉnh có thể chạy.

Các bước tiếp theo