Halaman ini menjelaskan opsi konfigurasi berikut untuk pengalaman hybrid:
Pastikan Anda telah menyelesaikan panduan memulai untuk membangun pengalaman hybrid.
Menetapkan mode inferensi
Contoh dalam panduan memulai menggunakan mode PREFER_ON_DEVICE, tetapi ini hanyalah salah satu dari empat mode inferensi yang tersedia.
Berikut adalah mode inferensi yang tersedia:
PREFER_ON_DEVICE: Mencoba menggunakan model di perangkat jika tersedia dan mendukung jenis permintaan. Jika tidak, catat error di perangkat, lalu otomatis kembali ke model yang dihosting di cloud.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE)Java
InferenceMode mode = InferenceMode.PREFER_ON_DEVICE; OnDeviceConfig config = new OnDeviceConfig(mode);ONLY_ON_DEVICE: Mencoba menggunakan model di perangkat jika tersedia dan mendukung jenis permintaan. Jika tidak, berikan pengecualian.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.ONLY_ON_DEVICE)Java
InferenceMode mode = InferenceMode.ONLY_ON_DEVICE; OnDeviceConfig config = new OnDeviceConfig(mode);PREFER_IN_CLOUD: Mencoba menggunakan model yang dihosting di cloud jika perangkat online dan jika model tersedia. Jika perangkat offline, kembalilah ke model di perangkat. Dalam semua kasus kegagalan lainnya, berikan pengecualian.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.PREFER_IN_CLOUD)Java
InferenceMode mode = InferenceMode.PREFER_IN_CLOUD; OnDeviceConfig config = new OnDeviceConfig(mode);ONLY_IN_CLOUD: Mencoba menggunakan model yang dihosting di cloud jika perangkat online dan jika model tersedia. Jika tidak, berikan pengecualian.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.ONLY_IN_CLOUD)Java
InferenceMode mode = InferenceMode.ONLY_IN_CLOUD; OnDeviceConfig config = new OnDeviceConfig(mode);
Menentukan apakah inferensi di perangkat atau di cloud yang digunakan
Jika mode inferensi Anda adalah PREFER_ON_DEVICE atau PREFER_IN_CLOUD, sebaiknya
ketahui mode mana yang digunakan untuk permintaan tertentu. Informasi ini
disediakan oleh properti inferenceSource dari setiap respons.
Saat Anda mengakses properti ini, nilai yang ditampilkan akan berupa ON_DEVICE atau
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());
Menentukan model yang akan digunakan
|
Klik penyedia Gemini API untuk melihat konten dan kode khusus penyedia di halaman ini. |
Anda dapat menentukan model yang akan digunakan saat membuat instance generativeModel
(Kotlin |
Java).
Menentukan model yang dihosting di cloud:
Jika mode inferensi Anda adalah
PREFER_ON_DEVICE,PREFER_IN_CLOUD, atauONLY_IN_CLOUD, Anda harus secara eksplisit menentukan model yang dihosting di cloud untuk digunakan. SDK tidak memiliki model default yang dihosting di cloud.Temukan nama model untuk semua model Gemini yang dihosting di cloud yang didukung.
Tentukan model di perangkat:
Jika mode inferensi Anda adalah
PREFER_ON_DEVICE,PREFER_IN_CLOUD, atauONLY_ON_DEVICE, Anda dapat secara opsional menentukan "kategori" model di perangkat yang akan digunakan dionDeviceConfig. Kategori adalah kombinasi dari tahap rilis dan karakteristik performa.Nilai kategori yang didukung tercantum di bawah.
AICore otomatis memilih model di perangkat yang memenuhi kondisi kategori yang ditentukan dan didukung oleh perangkat. Misalnya, jika Anda menentukanPREVIEWdan perangkatnya adalah Pixel 9, Gemini Nano 4 Full [Pratinjau] (nano-v4-full) kemungkinan akan dipilih secara otomatis.STABLE: Model di perangkat stabil terbaru.Telah diuji sepenuhnya dan di perangkat konsumen.
Misalnya, Gemini Nano 3 (
nano-v3) atau Gemini Nano 2 (nano-v2).Setelan default untuk model di perangkat jika tidak ada
OnDeviceModelOptionyang ditentukan.
PREVIEW: Model di perangkat pratinjau terbaru dengan kemampuan performa penuh.Dirancang untuk daya penalaran yang lebih tinggi dan tugas yang kompleks.
Misalnya, Gemini Nano 4 Full [Pratinjau] (
nano-v4-full, yang didasarkan pada Gemma 4 E4B).
PREVIEW_FAST: Model di perangkat pratinjau terbaru yang cepat.Dioptimalkan untuk kecepatan maksimum dan latensi yang lebih rendah.
Misalnya, Gemini Nano 4 Fast [Pratinjau] (
nano-v4-fast, yang didasarkan pada 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_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_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);
Menggunakan konfigurasi model untuk mengontrol respons
|
Klik penyedia Gemini API untuk melihat konten dan kode khusus penyedia di halaman ini. |
Dalam setiap permintaan ke model, Anda dapat mengirimkan konfigurasi model untuk mengontrol cara model menghasilkan respons. Model yang dihosting di cloud dan model di perangkat dikonfigurasi secara berbeda dan menawarkan opsi konfigurasi yang berbeda:
Model yang dihosting di cloud: Tetapkan konfigurasi menggunakan
generationConfig(Kotlin | Java). Pelajari parameter yang tersedia.Model di perangkat: Tetapkan konfigurasi menggunakan
onDeviceConfig(Kotlin | Java). Pelajari parameter yang tersedia (Kotlin | Java).
Konfigurasi dipertahankan selama masa aktif instance. Jika Anda ingin menggunakan konfigurasi yang berbeda, buat instance GenerativeModel baru dengan konfigurasi tersebut.
Berikut adalah contoh yang menetapkan konfigurasi untuk model yang dihosting di cloud dan di perangkat yang dapat digunakan jika mode inferensi PREFER_ON_DEVICE ditetapkan:
Kotlin
// Config for cloud-hosted model
val generationConfig = generationConfig {
maxOutputTokens = 200
stopSequences = listOf("red")
}
// Config for on-device model
val onDeviceConfig = OnDeviceConfig(
mode = InferenceMode.PREFER_ON_DEVICE,
maxOutputTokens = 200
)
val model = Firebase.ai(backend = GenerativeBackend.googleAI())
.generativeModel(
modelName = "CLOUD_MODEL_NAME",
generationConfig = generationConfig,
onDeviceConfig = onDeviceConfig
)
Java
// Config for cloud-hosted model
GenerationConfig generationConfig = new GenerationConfig.Builder()
.setMaxOutputTokens(200)
.setStopSequences(List.of("red"))
.build();
// Config for on-device model
OnDeviceConfig onDeviceConfig = new OnDeviceConfig(
/* mode = */ InferenceMode.PREFER_ON_DEVICE,
/* maxOutputTokens = */ 200,
/* temperature = */ null,
/* topK = */ null,
/* seed = */ null,
/* candidateCount = */ 1,
/* modelOption = */ null
);
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
.generativeModel(
"CLOUD_MODEL_NAME",
generationConfig,
/* safetySettings = */ null,
/* tools = */ null,
/* toolConfig = */ null,
/* systemInstruction = */ null,
/* requestOptions = */ new RequestOptions(),
onDeviceConfig
);
GenerativeModelFutures model = GenerativeModelFutures.from(ai);
Berikan masukan tentang pengalaman Anda menggunakan Firebase AI Logic