การฝังใน Gemini API

บริการฝังใน 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)