הטמעות ב-Gemini API

שירות ההטמעה ב-Gemini API יוצר הטמעות מתקדמות למילים, לביטויים ולמשפטים. לאחר מכן אפשר להשתמש בהטמעות שנוצרות כדי לבצע משימות של עיבוד שפה טבעית (NLP) כמו חיפוש סמנטי, סיווג טקסט וקיבוץ לאשכולות, ועוד.

בדף הזה מוסבר בקצרה על הטמעות, ומדגישים בו כמה תרחישים חשובים לדוגמה של שירות ההטמעה, כדי לעזור לכם להתחיל.

מהן הטמעות?

הטמעות טקסט הן שיטת עיבוד שפה טבעית (NLP) שממירה טקסט לקואורדינטות מספריות (שנקראות וקטורים) שאפשר להציג במרחב n-ממדי. הגישה הזו מאפשרת להתייחס לקטעי טקסט בתור פיסות של נתונים יחסיים, ואנחנו יכולים לאמן מודלים לפיהם.

הטמעות משקפות משמעות והקשר סמנטיים, שהתוצאה של טקסט עם משמעויות דומות היא עם הטמעות קרובות יותר. לדוגמה, במשפט "לקחתי את הכלב שלי לווטרינר" ו "לקחתי את החתול שלי לווטרינר" יהיו הטמעות שקרובות זו לזו במרחב הווקטורים, כי שניהם מתארים הקשר דומה.

אפשר להשתמש בהטמעות כדי להשוות בין טקסטים שונים ולהבין את הקשר ביניהם. לדוגמה, אם הטמעות הטקסט 'חתול' ו'כלב' קרובות זו לזו, אפשר להסיק שהמילים האלה דומות במשמעות או בהקשר או בשתיהן. היכולת הזו מאפשרת מגוון של תרחישים לדוגמה שמתוארים בקטע הבא.

תרחישים לדוגמה

אפשר להשתמש בהטמעות טקסט במגוון תרחישים לדוגמה של NLP, למשל:

  • אחזור מידע: אפשר להשתמש בהטמעות כדי לאחזר טקסט דומה מבחינה סמנטית לפי קטע טקסט קלט. מערכת לאחזור מידע יכולה לתמוך במגוון אפליקציות, כמו חיפוש סמנטי, מענה על שאלות או סיכום.
  • סיווג: אפשר לאמן מודל באמצעות הטמעות כדי לסווג מסמכים לקטגוריות. לדוגמה, אם רוצים לסווג תגובות של משתמשים כשליליות או כחיוביות, אפשר להשתמש בשירות ההטמעות כדי לקבל ייצוג בווקטור של כל תגובה כדי לאמן את המסווג.
  • אשכולות: השוואת וקטורים של טקסט יכולה להראות עד כמה הם דומים או שונים. אפשר להשתמש בתכונה הזו כדי לאמן מודל קיבוץ באשכולות שמקבץ טקסט או מסמכים דומים יחד, ולזהות חריגות בנתונים.
  • מסד נתונים וקטורי: תוכלו לאחסן את ההטמעות שנוצרו על ידי מסד נתונים וקטורי כדי לשפר את הדיוק והיעילות של אפליקציית ה-NLP. במדריך הבא תלמדו איך להשתמש במסד נתונים וקטורי כדי לתרגם הנחיות טקסט לווקטורים מספריים.

מודלים של הטמעה ב-Gemini

ב-Gemini API יש שני מודלים ליצירת הטמעות טקסט: הטמעת טקסט והטמעות. התכונה 'הטמעות טקסט' היא גרסה מעודכנת של מודל ההטמעה, עם גדלים של הטמעה אלסטית בגודל של עד 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 עם REST ב-GitHub.

מה עושים אחר כך