Bu sayfada, hibrit deneyimlerle ilgili aşağıdaki yapılandırma seçenekleri açıklanmaktadır:
Cihaz üzerinde mi yoksa bulutta mı çıkarım yapıldığını belirleyin.
Yanıtları kontrol etmek için model yapılandırmasını kullanın (ör. sıcaklık).
Karma deneyimler oluşturmaya yönelik başlangıç kılavuzunu tamamladığınızdan emin olun.
Çıkarım modu ayarlama
Başlangıç kılavuzundaki örneklerde PREFER_ON_DEVICE modu kullanılmaktadır ancak bu, mevcut dört çıkarım modundan yalnızca biridir.
Kullanılabilir çıkarım modları şunlardır:
PREFER_ON_DEVICE: Kullanılabiliyorsa ve istek türünü destekliyorsa cihaz üzerinde modeli kullanmayı deneyin. Aksi takdirde, cihazda bir hata kaydedin ve ardından otomatik olarak bulutta barındırılan modele geri dönün.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE)Java
InferenceMode mode = InferenceMode.PREFER_ON_DEVICE; OnDeviceConfig config = new OnDeviceConfig(mode);ONLY_ON_DEVICE: Kullanılabiliyorsa ve istek türünü destekliyorsa cihaz üzerinde modeli kullanmayı deneyin. Aksi takdirde hata verin.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.ONLY_ON_DEVICE)Java
InferenceMode mode = InferenceMode.ONLY_ON_DEVICE; OnDeviceConfig config = new OnDeviceConfig(mode);PREFER_IN_CLOUD: Cihaz internete bağlıysa ve model kullanılabiliyorsa bulutta barındırılan modeli kullanmayı deneyin. Cihaz çevrimdışıysa cihaz üzerindeki modele geri dönün. Diğer tüm hata durumlarında istisna oluşturun.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.PREFER_IN_CLOUD)Java
InferenceMode mode = InferenceMode.PREFER_IN_CLOUD; OnDeviceConfig config = new OnDeviceConfig(mode);ONLY_IN_CLOUD: Cihaz internete bağlıysa ve model kullanılabiliyorsa bulutta barındırılan modeli kullanmayı deneyin. Aksi takdirde hata verin.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.ONLY_IN_CLOUD)Java
InferenceMode mode = InferenceMode.ONLY_IN_CLOUD; OnDeviceConfig config = new OnDeviceConfig(mode);
Cihaz üzerinde mi yoksa bulutta mı çıkarım yapıldığını belirleme
Çıkarım modunuz PREFER_ON_DEVICE veya PREFER_IN_CLOUD ise belirli istekler için hangi modun kullanıldığını bilmek faydalı olabilir. Bu bilgiler, her yanıtın inferenceSource özelliği tarafından sağlanır.
Bu özelliğe eriştiğinizde döndürülen değer ON_DEVICE veya IN_CLOUD olur.
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());
Kullanılacak modeli belirtme
|
Bu sayfada sağlayıcıya özel içerikleri ve kodu görüntülemek için Gemini API sağlayıcınızı tıklayın. |
generativeModel örneğini oluştururken kullanılacak bir model belirtebilirsiniz
(Kotlin |
Java).
Bulutta barındırılan bir model belirtin:
Çıkarım modunuz
PREFER_ON_DEVICE,PREFER_IN_CLOUDveyaONLY_IN_CLOUDise kullanılacak Cloud'da barındırılan bir modeli açıkça belirtmeniz gerekir. SDK'nın varsayılan bulutta barındırılan modeli yoktur.Desteklenen tüm bulutta barındırılan Gemini modellerinin model adlarını bulun.
Cihaz üzerinde bir model belirtin:
Çıkarım modunuz
PREFER_ON_DEVICE,PREFER_IN_CLOUDveyaONLY_ON_DEVICEiseonDeviceConfigiçinde kullanılacak cihaz üzerinde model "kategorisini" isteğe bağlı olarak belirtebilirsiniz. Kategoriler, yayın aşaması ve performans özelliklerinin bir kombinasyonudur.Desteklenen kategori değerleri aşağıda listelenmiştir.
AICore, belirtilen kategorinin koşullarını karşılayan ve cihaz tarafından desteklenen cihaz üzerinde modeli otomatik olarak seçer. Örneğin,PREVIEWbelirtirseniz ve cihaz Pixel 9 ise Gemini Nano 4 Full [Önizleme] (nano-v4-full) muhtemelen otomatik olarak seçilir.STABLE: Cihaz üzerinde çalışan en yeni kararlı model.Tamamen test edilmiş ve tüketici cihazlarında kullanıma sunulmuştur.
Örneğin, Gemini Nano 3 (
nano-v3) veya Gemini Nano 2 (nano-v2).OnDeviceModelOptionbelirtilmemişse cihaz üzerinde model için varsayılan ayar.
PREVIEW: Tam performans özelliklerine sahip, cihaz üzerinde çalışan en yeni önizleme modeli.Daha yüksek akıl yürütme gücü ve karmaşık görevler için tasarlanmıştır.
Örneğin, Gemini Nano 4 Full [Önizleme] (
nano-v4-full, Gemma 4 E4B'ye dayanır).
PREVIEW_FAST: Cihaz üzerinde çalışan, hızlı en yeni önizleme modeli.Maksimum hız ve daha düşük gecikme için optimize edilmiştir.
Örneğin, Gemini Nano 4 Fast [Önizleme] (
nano-v4-fast, Gemma 4 E2B'ye dayanır).
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);
Yanıtları kontrol etmek için model yapılandırmasını kullanma
|
Bu sayfada sağlayıcıya özel içerikleri ve kodu görüntülemek için Gemini API sağlayıcınızı tıklayın. |
Bir modele gönderdiğiniz her istekle birlikte, modelin nasıl yanıt oluşturacağını kontrol etmek için bir model yapılandırması gönderebilirsiniz. Bulutta barındırılan modeller ve cihaz üzerinde modeller farklı yapılandırma seçenekleri sunar (bulut ve cihaz üzerinde parametreleri).
Bulutta barındırılan modeller için yapılandırmayı doğrudan modelin yapılandırmasında ayarlayın. Ancak cihaz üzerinde modeller için yapılandırmalarını onDeviceConfig içinde ayarlayın.
Yapılandırma, örneğin kullanım ömrü boyunca korunur. Farklı bir yapılandırma kullanmak istiyorsanız bu yapılandırmayla yeni bir GenerativeModel örneği oluşturun.
PREFER_ON_DEVICE çıkarım modu ayarlanırsa kullanılabilecek, bulutta barındırılan ve cihaz üzerinde modellerin yapılandırmalarını ayarlayan bir örneği aşağıda bulabilirsiniz:
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);