במאמר הזה מוסבר איך ליצור הטמעה של טקסט באמצעות Text embeddings API של Gemini Enterprise Agent Platform.
Gemini Enterprise Agent Platform text embeddings API משתמש בייצוגים של וקטורים צפופים: gemini-embedding-001, לדוגמה, משתמש בווקטורים תלת-ממדיים של 3072. מודלים של הטמעה של וקטורים צפופים משתמשים בשיטות של למידה עמוקה שדומות לשיטות שבהן משתמשים מודלים גדולים של שפה. בניגוד לווקטורים דלילים, שבדרך כלל ממפים מילים ישירות למספרים, וקטורים צפופים נועדו לייצג טוב יותר את המשמעות של קטע טקסט. היתרון בשימוש בהטמעות וקטוריות צפופות ב-AI גנרטיבי הוא שבמקום לחפש התאמות ישירות למילים או לתחביר, אפשר לחפש קטעי טקסט שתואמים למשמעות של השאילתה, גם אם בקטעי הטקסט לא נעשה שימוש באותה שפה.
הווקטורים מנורמלים, כך שאפשר להשתמש בדמיון קוסינוס, במכפלה סקלרית או במרחק אוקלידי כדי לקבל את אותם דירוגים של דמיון.
- מידע נוסף על הטמעות זמין בסקירה הכללית על ממשקי ה-API להטמעות.
- מידע על מודלים להטמעת טקסט זמין במאמר בנושא הטמעות טקסט.
- מידע על השפות שכל מודל הטמעה תומך בהן מופיע במאמר שפות טקסט נתמכות.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Agent Platform API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Agent Platform API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.- בוחרים סוג משימה לעבודת ההטמעה.
מגבלות על API
כל בקשה מוגבלת ל-250 טקסטים לקלט. ל-API יש מגבלת טוקנים של 20,000 לקלט. אם הקלט חורג מהמגבלה הזו, מוצגת שגיאה 400. כל טקסט קלט מוגבל ל-2,048 טוקנים. אם יש חריגה מהמגבלה, הטקסט נחתך ללא הודעה. אפשר גם להשבית את החיתוך השקט על ידי הגדרת autoTruncate ל-false.
מידע נוסף מופיע במאמר בנושא מגבלות על הטמעת טקסט.
קבלת הטמעות טקסט לקטע טקסט
אתם יכולים לקבל הטמעות טקסט לקטע טקסט באמצעות Agent Platform API או Agent Platform SDK ל-Python.
בחירת מאפיין להטמעה
כברירת מחדל, כל המודלים יוצרים וקטור הטמעה באורך מלא. במקרה של gemini-embedding-001, הווקטור הזה כולל 3,072 ממדים, ומודלים אחרים יוצרים וקטורים עם 768 ממדים. עם זאת, באמצעות הפרמטר output_dimensionality, המשתמשים יכולים לשלוט בגודל של וקטור ההטמעה של הפלט. בחירה בממדי פלט קטנים יותר יכולה לחסוך מקום באחסון ולשפר את יעילות החישוב באפליקציות במורד הזרם, בלי לפגוע באיכות.
בדוגמאות הבאות נעשה שימוש במודל gemini-embedding-001.
Python
התקנה
pip install --upgrade google-genai
מידע נוסף מופיע ב מאמרי העזרה בנושא SDK.
מגדירים משתני סביבה כדי להשתמש ב-Google Gen AI SDK עם Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
Go
מידע נוסף מופיע ב מאמרי העזרה בנושא SDK.
מגדירים משתני סביבה כדי להשתמש ב-Google Gen AI SDK עם Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
Node.js
התקנה
npm install @google/genai
מידע נוסף מופיע ב מאמרי העזרה בנושא SDK.
מגדירים משתני סביבה כדי להשתמש ב-Google Gen AI SDK עם Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
Java
כך מתקינים או מעדכנים את Java.
מידע נוסף מופיע ב מאמרי העזרה בנושא SDK.
מגדירים משתני סביבה כדי להשתמש ב-Google Gen AI SDK עם Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט. .
- TEXT: הטקסט שעבורו רוצים ליצור הטמעות. מגבלה: חמישה טקסטים של עד 2,048 טוקנים לכל טקסט בכל המודלים, למעט
textembedding-gecko@001. אורך הטוקן המקסימלי של הקלט עבורtextembedding-gecko@001הוא 3,072. במקרה שלgemini-embedding-001, כל בקשה יכולה לכלול רק טקסט קלט אחד. מידע נוסף מופיע במאמר בנושא מגבלות על הטמעת טקסט. - AUTO_TRUNCATE: אם הערך הוא
false, בקשות עם טקסט שחורג ממגבלת הטוקנים ייכשלו. ערך ברירת המחדל הואtrue.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-embedding-001:predict
גוף בקשת JSON:
{
"instances": [
{ "content": "TEXT"}
],
"parameters": {
"autoTruncate": AUTO_TRUNCATE
}
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
curl
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-embedding-001:predict"
PowerShell
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-embedding-001:predict" | Select-Object -Expand Content
אתם אמורים לקבל תגובת JSON שדומה לזו: שימו לב שהערך values
קוצר כדי לחסוך במקום.
דוגמה לפקודת curl
MODEL_ID="gemini-embedding-001"
PROJECT_ID=PROJECT_ID
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/${MODEL_ID}:predict -d \
$'{
"instances": [
{ "content": "What is life?"}
],
}'
מודלים נתמכים
בטבלאות הבאות מוצגים מודלים זמינים של הטמעת טקסט מבית Google וממקורות פתוחים.
המודלים של Google
אפשר לקבל הטמעות טקסט באמצעות המודלים הבאים:
| שם הדגם | תיאור | מידות הפלט | אורך מקסימלי של רצף | שפות טקסט נתמכות |
|---|---|---|---|---|
gemini-embedding-001 |
ביצועים מתקדמים במשימות באנגלית, במשימות רב-לשוניות ובמשימות קוד. הוא מאחד את המודלים שהיו בעבר מיוחדים, כמו text-embedding-005 ו-text-multilingual-embedding-002, ומשיג ביצועים טובים יותר בתחומים שלהם. אפשר לקרוא פרטים נוספים בדוח הטכני שלנו. |
עד 3,072 | 2,048 טוקנים | שפות טקסט נתמכות |
text-embedding-005 |
מתמחה במשימות שקשורות לאנגלית ולקוד. | עד 768 | 2,048 טוקנים | אנגלית |
text-multilingual-embedding-002 |
מתמחה במשימות רב-לשוניות. | עד 768 | 2,048 טוקנים | שפות טקסט נתמכות |
לשיבוץ באיכות גבוהה, מומלץ להשתמש ב-gemini-embedding-001, המודל הגדול שלנו שנועד לספק את הביצועים הכי טובים.
מודלים פתוחים
אפשר לקבל הטמעות טקסט באמצעות המודלים הבאים:
| שם הדגם | תיאור | מידות הפלט | אורך מקסימלי של רצף | שפות טקסט נתמכות |
|---|---|---|---|---|
multilingual-e5-small |
חלק ממשפחת מודלים להטמעת טקסט E5. הגרסה הקטנה מכילה 12 שכבות. | עד 384 | 512 טוקנים | שפות נתמכות |
multilingual-e5-large |
חלק ממשפחת מודלים להטמעת טקסט E5. הווריאנט Large מכיל 24 שכבות. | עד 1,024 | 512 טוקנים | שפות נתמכות |
כדי להתחיל, אפשר לעיין בכרטיס הדגם של משפחת E5. מידע נוסף על מודלים פתוחים זמין במאמר בנושא מודלים פתוחים ל-MaaS
הוספת הטמעה למאגר נתונים וקטורי
אחרי שיוצרים את ההטמעה, אפשר להוסיף הטמעות למסד נתונים וקטורי, כמו חיפוש וקטורי. כך אפשר לאחזר נתונים עם השהיה נמוכה, וזה חשוב במיוחד ככל שגודל הנתונים גדל.
מידע נוסף על Vector Search זמין במאמר סקירה כללית על Vector Search.
המאמרים הבאים
- מידע נוסף על מגבלות קצב זמין במאמר מכסות ומגבלות מערכת ב-Agent Platform.
- כדי לקבל חיזויים רבים בבת אחת להטמעות, אפשר לעיין במאמר בנושא קבלת מסקנות לגבי הטמעות של טקסטים רבים בבת אחת
- מידע נוסף על הטמעות מולטימודאליות זמין במאמר קבלת הטמעות מולטימודאליות
- מידע על כוונון הטמעות מופיע במאמר כוונון הטמעות של טקסט
- מידע נוסף על המחקר שמאחורי
text-embedding-005ו-text-multilingual-embedding-002זמין במאמר המחקר Gecko: Versatile Text Embeddings Distilled from Large Language Models.