במאמר הזה מוסבר איך ליצור הטמעת טקסט באמצעות Text embeddings API של Gemini Enterprise Agent Platform.
Gemini Enterprise Agent Platform text embeddings API משתמש בייצוגים של וקטורים דחוסים: לדוגמה, gemini-embedding-001 משתמש בווקטורים עם 3, 072 ממדים. מודלים של הטמעת וקטורים דחוסים משתמשים בשיטות למידה עמוקה שדומות לאלה שמשמשות מודלי שפה גדולים (LLM). בניגוד לווקטורים דלילים, שבדרך כלל ממפים מילים ישירות למספרים, וקטורים צפופים נועדו לייצג טוב יותר את המשמעות של קטע טקסט. היתרון של שימוש בהטמעות וקטורים דחוסים ב-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, if it is not already enabled.
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, if it is not already enabled.
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 |
ביצועים המתקדם ביותר (SOTA) במשימות באנגלית, במשימות בכמה שפות ובמשימות קוד. הוא מאחד את המודלים שהיו בעבר מודלים ייעודיים, כמו text-embedding-005 ו-text-multilingual-embedding-002, ומשיג ביצועים טובים יותר בתחומים שלהם. לפרטים נוספים, קראו את הדוח הטכני שלנו. |
עד 3,072 | 2,048 טוקנים | שפות נתמכות לטקסט |
gemini-embedding-2 |
הכי מתאים להטמעת מחרוזות ארוכות, כולל נתונים לא מובְנים ונתונים בכמה שפות. תמיכה בשילוב של טקסט, תמונות, אודיו, וידאו וקובצי PDF. | עד 3,072 | 8,192 טוקנים | שפות נתמכות לטקסט |
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 להטמעת טקסט. הגרסה הגדולה מכילה 24 שכבות. | עד 1,024 | 512 טוקנים | השפות הנתמכות |
כדי להתחיל, עיינו בכרטיס המודל של משפחת E5. מידע נוסף על מודלים פתוחים ל-MaaS
הוספת הטמעה למסד נתונים וקטורי
אחרי שיוצרים את ההטמעה, אפשר להוסיף הטמעות למסד נתונים וקטורי, כמו חיפוש וקטורי. כך אפשר לאחזר נתונים במהירות, וזה קריטי ככל שכמות הנתונים גדלה.
המאמרים הבאים
- מידע נוסף על הגבלת קצב של יצירת בקשות זמין במאמר מכסות ומגבלות מערכת של Agent Platform.
- כדי לקבל חיזויים רבים בבת אחת להטמעות, קראו את המאמר קבלת הסקות של הטמעות טקסט בכמות גדולה.
- כדי לכוונן הטמעה, קראו את המאמר כוונון הטמעות טקסט.
- למידע נוסף על המחקר שמאחורי
text-embedding-005ו-text-multilingual-embedding-002, קראו את המאמר Gecko: Versatile Text Embeddings Distilled from Large Language Models.