הטמעות ב-Gemini API

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

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

מהן הטמעות?

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

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

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

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

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

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

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

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

המאמרים הבאים