บริการฝังใน Gemini API จะสร้างการฝังคำ วลี และประโยคที่ล้ำสมัย จากนั้น การฝังที่ได้จะใช้สำหรับงานการประมวลผลภาษาธรรมชาติ (NLP) เช่น การค้นหาความหมาย การแยกประเภทข้อความ และการจับกลุ่ม และอื่นๆ อีกมากมาย
หน้านี้อธิบายเกี่ยวกับการฝังไว้คร่าวๆ และไฮไลต์กรณีการใช้งานที่สำคัญบางประการสำหรับบริการการฝังเพื่อช่วยให้คุณเริ่มต้นใช้งานได้
การฝังคืออะไร
การฝังข้อความเป็นเทคนิคการประมวลผลภาษาธรรมชาติ (NLP) ที่จะแปลงข้อความเป็นพิกัดตัวเลข (เรียกว่าเวกเตอร์) ซึ่งสามารถพล็อตในพื้นที่ n มิติได้ วิธีนี้ช่วยให้คุณถือว่าข้อความต่างๆ เป็นข้อมูลเชิงสัมพันธ์สั้นๆ ที่เราจะนำไปฝึกโมเดลได้
การฝังจะจับความหมายและบริบทที่ทําให้ข้อความที่มีความหมายคล้ายกันมีการฝังไว้ใกล้ตัวมากขึ้น เช่น ประโยคที่ว่า "ฉันพาหมาไปตรวจสัตวแพทย์" และ "ฉันพาแมวไปตรวจด้วย" จะมีการฝังที่อยู่ใกล้กันในพื้นที่เวกเตอร์ เนื่องจากทั้งคู่อธิบายบริบทที่คล้ายกัน
คุณสามารถใช้การฝังเพื่อเปรียบเทียบข้อความต่างๆ และทำความเข้าใจว่าข้อความเหล่านั้นเกี่ยวข้องกันอย่างไร เช่น หากการฝังข้อความ "แมว" และ "สุนัข" อยู่ใกล้กัน คุณสามารถอนุมานได้ว่าคำเหล่านี้มีความหมายหรือบริบทหรือทั้งคู่ ความสามารถนี้ช่วยให้สามารถใช้งานได้หลากหลายกรณีตามที่อธิบายไว้ในส่วนถัดไป
กรณีการใช้งาน
การฝังข้อความมีการใช้ในกรณีการใช้งาน NLP ที่หลากหลาย เช่น
- การดึงข้อมูล: คุณสามารถใช้การฝังเพื่อเรียกข้อความเชิงความหมายที่คล้ายกันจากข้อความอินพุตหนึ่งๆ ระบบเรียกข้อมูล เช่น การค้นหาความหมาย การตอบคำถาม หรือการสรุปรองรับแอปพลิเคชันต่างๆ ได้มากมาย
- บทแนะนำ: การค้นหาเอกสาร
- การแยกประเภท: คุณฝึกโมเดลโดยใช้การฝังเพื่อจำแนกเอกสารให้เป็นหมวดหมู่ได้ ตัวอย่างเช่น หากต้องการจัดประเภทความคิดเห็นของผู้ใช้เป็นความคิดเห็นเชิงลบหรือบวก คุณสามารถใช้บริการการฝังเพื่อดูการแสดงเวกเตอร์ของความคิดเห็นแต่ละรายการเพื่อฝึกตัวแยกประเภท
- บทแนะนำ: ฝึก ตัวแยกประเภทข้อความ
- การจัดกลุ่ม: การเปรียบเทียบเวกเตอร์ของข้อความจะแสดงให้เห็นว่าเวกเตอร์เหล่านั้นมีความคล้ายคลึงหรือแตกต่างกันอย่างไร ฟีเจอร์นี้สามารถใช้เพื่อฝึกโมเดลคลัสเตอร์ที่จัดกลุ่มข้อความหรือเอกสารที่คล้ายกันไว้ด้วยกัน และเพื่อตรวจจับความผิดปกติในข้อมูล
- ฐานข้อมูลเวกเตอร์: คุณจัดเก็บการฝังที่สร้างขึ้นในฐานข้อมูลเวกเตอร์เพื่อปรับปรุงความแม่นยำและประสิทธิภาพของแอปพลิเคชัน NLP ได้ ดูบทแนะนำต่อไปนี้เพื่อเรียนรู้วิธีใช้ฐานข้อมูลเวกเตอร์เพื่อแปลพรอมต์ข้อความเป็นเวกเตอร์ตัวเลข
Gemini ฝังโมเดล
Gemini API มี 2 โมเดลที่สร้างการฝังข้อความ ได้แก่ การฝังข้อความ และการฝัง การฝังข้อความเป็นเวอร์ชันอัปเดตของโมเดลการฝังที่มีการฝังแบบยืดหยุ่นในขนาดไม่เกิน 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();
ไปที่บทแนะนำการเริ่มต้นใช้งาน เพื่อดูตัวอย่างทั้งหมดที่เรียกใช้ได้
ลูกดอก (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 เพื่อดูตัวอย่างทั้งหมดที่เรียกใช้ได้
ขั้นตอนถัดไป
- หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับการฝัง โปรดไปที่โพสต์ของ Dale Markowitz ในบล็อก Google Cloud เพื่อดูข้อมูลเพิ่มเติม
- หากพร้อมที่จะเริ่มพัฒนา คุณสามารถหาโค้ดที่เรียกใช้ได้ทั้งหมดใน การเริ่มต้นใช้งานอย่างรวดเร็วสำหรับ Python, Go, Node.js และ Dart (Flutter)