במאמר הזה מוסבר איך ליצור הטמעת טקסט באמצעות 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.
מגדירים משתני סביבה כדי להשתמש ב-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.
מגדירים משתני סביבה כדי להשתמש ב-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.
מגדירים משתני סביבה כדי להשתמש ב-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.
מגדירים משתני סביבה כדי להשתמש ב-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: [מזהה הפרויקט](/resource-manager/docs/creating-managing-projects#identifiers). .
- 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 זמין במאמר סקירה כללית על Vector Search.
המאמרים הבאים
- מידע נוסף על מגבלות קצב זמין במאמר מגבלות קצב של Agent Platform.
- כדי לקבל חיזויים רבים בבת אחת להטמעות, אפשר לעיין במאמר בנושא קבלת מסקנות לגבי הטמעות של טקסטים רבים בבת אחת
- מידע על כוונון הטמעות מופיע במאמר כוונון הטמעות של טקסט
- מידע נוסף על המחקר שמאחורי
text-embedding-005ו-text-multilingual-embedding-002זמין במאמר המחקר Gecko: Versatile Text Embeddings Distilled from Large Language Models.