בדף הזה נתאר את אפשרויות ההגדרה הבאות של חוויות היברידיות:
חשוב לוודא שסיימתם את מדריך תחילת העבודה ליצירת חוויות היברידיות.
הגדרת מצב הסקה
הדוגמאות במדריך לתחילת העבודה משתמשות במצב PREFER_ON_DEVICE, אבל זה רק אחד מארבעת מצבי ההסקה הזמינים.
אלה מצבי ההסקה שזמינים:
PREFER_ON_DEVICE: ניסיון להשתמש במודל במכשיר אם הוא זמין ותומך בסוג הבקשה. אחרת, תירשם שגיאה במכשיר ואז תתבצע חזרה אוטומטית למודל שמתארח בענן.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE)Java
InferenceMode mode = InferenceMode.PREFER_ON_DEVICE; OnDeviceConfig config = new OnDeviceConfig(mode);
ONLY_ON_DEVICE: ניסיון להשתמש במודל במכשיר אם הוא זמין ותומך בסוג הבקשה. אחרת, מוצג חריג.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.ONLY_ON_DEVICE)Java
InferenceMode mode = InferenceMode.ONLY_ON_DEVICE; OnDeviceConfig config = new OnDeviceConfig(mode);
PREFER_IN_CLOUD: ניסיון להשתמש במודל שמתארח בענן אם המכשיר מחובר לאינטרנט והמודל זמין. אם המכשיר אופליין, המודל במכשיר יופעל. בכל מקרה אחר של כשל, צריך להפעיל חריגה.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.PREFER_IN_CLOUD)Java
InferenceMode mode = InferenceMode.PREFER_IN_CLOUD; OnDeviceConfig config = new OnDeviceConfig(mode);
ONLY_IN_CLOUD: ניסיון להשתמש במודל שמתארח בענן אם המכשיר מחובר לאינטרנט והמודל זמין. אחרת, מוצג חריג.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.ONLY_IN_CLOUD)Java
InferenceMode mode = InferenceMode.ONLY_IN_CLOUD; OnDeviceConfig config = new OnDeviceConfig(mode);
איך בודקים אם נעשה שימוש בהסקת מסקנות במכשיר או בענן
אם מצב ההסקה הוא PREFER_ON_DEVICE או PREFER_IN_CLOUD, יכול להיות שיהיה לכם שימושי לדעת באיזה מצב נעשה שימוש בבקשות מסוימות. המידע הזה מופיע במאפיין inferenceSource של כל תגובה.
כשניגשים למאפיין הזה, הערך שמוחזר יהיה ON_DEVICE או IN_CLOUD.
Kotlin
// ...
print("You used: ${result.response.inferenceSource}")
print(result.response.text)
Java
// ...
System.out.println("You used: " + result.getResponse().getInferenceSource());
System.out.println(result.getResponse().getText());
ציון מודל לשימוש
|
לוחצים על הספק Gemini API כדי לראות בדף הזה תוכן וקוד שספציפיים לספק. |
אפשר לציין מודל לשימוש כשיוצרים את מופע generativeModel (Kotlin | Java).
מציינים מודל שמתארח בענן:
אם מצב ההסקה הוא
PREFER_ON_DEVICE,PREFER_IN_CLOUDאוONLY_IN_CLOUD, חובה לציין במפורש מודל שמתארח בענן לשימוש. ל-SDK אין מודל שמתארח בענן כברירת מחדל.כאן מפורטים שמות הדגמים של כל הדגמים של Gemini שמתארחים בענן.
מציינים מודל במכשיר:
אם מצב ההסקה הוא
PREFER_ON_DEVICE,PREFER_IN_CLOUDאוONLY_ON_DEVICE, אפשר באופן אופציונלי לציין ב-onDeviceConfig'קטגוריה' של מודל במכשיר לשימוש. הקטגוריות הן שילוב של שלב ההשקה ומאפייני הביצועים.ערכי הקטגוריות הנתמכים מפורטים בהמשך.
AICore בוחר באופן אוטומטי את המודל במכשיר שעומד בתנאים של הקטגוריה שצוינה ונתמך על ידי המכשיר. לדוגמה, אם מצייניםPREVIEWוהמכשיר הוא Pixel 9, סביר להניח שתיבחר אוטומטית האפשרות Gemini Nano 4 Full [Preview] (nano-v4-full).
STABLE: המודל העדכני ביותר יציב במכשיר.נבדק באופן מלא במכשירי צרכנים.
לדוגמה, Gemini Nano 3 (
nano-v3) או Gemini Nano 2 (nano-v2).הגדרת ברירת המחדל של המודל במכשיר אם לא מצוין
OnDeviceModelOption.
PREVIEW: תצוגה מקדימה של המודל העדכני ביותר במכשיר עם יכולות ביצוע מלאות.יכולת חשיבה רציונלית גבוהה יותר ויכולת התמודדות עם משימות מורכבות.
לדוגמה, Gemini Nano 4 Full [Preview] (
nano-v4-full, שמבוסס על Gemma 4 E4B).
PREVIEW_FAST: גרסת הטרום-השקה האחרונה של המודל במכשיר, שהיא מהירה.אופטימיזציה למהירות מקסימלית ולזמן אחזור נמוך יותר.
לדוגמה, Gemini Nano 4 Fast [תצוגה מקדימה] (
nano-v4-fast, שמבוסס על Gemma 4 E2B).
Kotlin
val model = Firebase.ai(backend = GenerativeBackend.googleAI())
.generativeModel(
// Specify a cloud-hosted model.
// Required for `PREFER_ON_DEVICE`, `PREFER_IN_CLOUD`, and `ONLY_IN_CLOUD` inference modes.
modelName = "CLOUD_HOSTED_MODEL_NAME",
onDeviceConfig = OnDeviceConfig(
mode = InferenceMode.INFERENCE_MODE,
// (Optional) Specify an on-device model category.
// AICore will auto-select an on-device model based on this category.
// If not specified, AICore will auto-select the default stable on-device model.
modelOption = OnDeviceModelOption.ON-DEVICE_MODEL_CATEGORY)
)
Java
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
.generativeModel(
// Specify a cloud-hosted model.
// Required for `PREFER_ON_DEVICE`, `PREFER_IN_CLOUD`, and `ONLY_IN_CLOUD` inference modes.
"CLOUD_HOSTED_MODEL_NAME",
/* config = */ null,
/* safetySettings = */ null,
/* tools = */ null,
/* toolConfig = */ null,
/* systemInstruction = */ null,
/* requestOptions = */ new RequestOptions(),
new OnDeviceConfig(
/* mode = */ InferenceMode.INFERENCE_MODE,
/* maxOutputTokens = */ null,
/* temperature = */ null,
/* topK = */ null,
/* seed = */ null,
/* candidateCount = */ 1,
// (Optional) Specify an on-device model category.
// AICore will auto-select an on-device model based on this category.
// If not specified, AICore will auto-select the default stable on-device model.
/* modelOption = */ OnDeviceModelOption.ON-DEVICE_MODEL_CATEGORY)
);
GenerativeModelFutures model = GenerativeModelFutures.from(ai);
שימוש בהגדרות המודל כדי לשלוט בתשובות
|
לוחצים על הספק Gemini API כדי לראות בדף הזה תוכן וקוד שספציפיים לספק. |
בכל בקשה למודל, אפשר לשלוח הגדרת מודל כדי לשלוט באופן שבו המודל יוצר תשובה. מודלים שמתארחים בענן ומודלים במכשיר מציעים אפשרויות הגדרה שונות (פרמטרים של cloud לעומת on-device).
במודלים שמארחים בענן, מגדירים את ההגדרה שלהם ישירות בהגדרה של המודל. עם זאת, במודלים במכשיר, צריך להגדיר את התצורה שלהם בתוך
onDeviceConfig.
ההגדרה נשמרת למשך מחזור החיים של המופע. אם רוצים להשתמש בהגדרה אחרת, צריך ליצור מופע GenerativeModel חדש עם ההגדרה הזו.
הנה דוגמה להגדרות של מודלים שמתארחים בענן ומודלים שפועלים במכשיר, שאפשר להשתמש בהם אם מוגדר מצב ההסקה PREFER_ON_DEVICE:
Kotlin
val model = Firebase.ai(backend = GenerativeBackend.googleAI())
.generativeModel("MODEL_NAME",
// Config for cloud-hosted model
generationConfig = generationConfig {
temperature = 0.8f,
topK = 10
},
// Config for on-device model
onDeviceConfig = onDeviceConfig {
mode = InferenceMode.PREFER_ON_DEVICE,
temperature = 0.8f,
topK = 5
})
Java
// Config for cloud-hosted model
GenerationConfig generationConfig = new GenerationConfig.Builder()
.setTemperature(0.8f)
.setTopK(10)
.build();
// Config for on-device model
OnDeviceConfig onDeviceConfig = new OnDeviceConfig.Builder()
.setMode(InferenceMode.PREFER_ON_DEVICE)
.setTemperature(0.8f)
.setTopK(5)
.build();
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
.generativeModel(
"MODEL_NAME",
generationConfig,
onDeviceConfig
);
GenerativeModelFutures model = GenerativeModelFutures.from(ai);