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