Ta strona zawiera opis tych opcji konfiguracji hybrydowych rozwiązań:
Upewnij się, że masz za sobą przewodnik dla początkujących dotyczący tworzenia hybrydowych rozwiązań.
Ustaw tryb wnioskowania
Przykłady w przewodniku dla początkujących używają trybu PREFER_ON_DEVICE, ale
jest to tylko jeden z 4 dostępnych
trybów wnioskowania.
Oto dostępne tryby wnioskowania:
PREFER_ON_DEVICE: spróbuj użyć modelu na urządzeniu, jeśli jest dostępny i obsługuje typ żądania. W przeciwnym razie zaloguj błąd na urządzeniu, a następnie automatycznie przejdź na model hostowany w chmurze.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE)Java
InferenceMode mode = InferenceMode.PREFER_ON_DEVICE; OnDeviceConfig config = new OnDeviceConfig(mode);ONLY_ON_DEVICE: spróbuj użyć modelu na urządzeniu, jeśli jest dostępny i obsługuje typ żądania. W przeciwnym razie zgłoś wyjątek.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.ONLY_ON_DEVICE)Java
InferenceMode mode = InferenceMode.ONLY_ON_DEVICE; OnDeviceConfig config = new OnDeviceConfig(mode);PREFER_IN_CLOUD: spróbuj użyć modelu hostowanego w chmurze, jeśli urządzenie jest online i model jest dostępny. Jeśli urządzenie jest offline, przejdź na model na urządzeniu. We wszystkich innych przypadkach niepowodzenia zgłoś wyjątek.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.PREFER_IN_CLOUD)Java
InferenceMode mode = InferenceMode.PREFER_IN_CLOUD; OnDeviceConfig config = new OnDeviceConfig(mode);ONLY_IN_CLOUD: spróbuj użyć modelu hostowanego w chmurze, jeśli urządzenie jest online i model jest dostępny. W przeciwnym razie zgłoś wyjątek.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.ONLY_IN_CLOUD)Java
InferenceMode mode = InferenceMode.ONLY_IN_CLOUD; OnDeviceConfig config = new OnDeviceConfig(mode);
Określ, czy użyto wnioskowania na urządzeniu czy w chmurze
Jeśli tryb wnioskowania to PREFER_ON_DEVICE lub PREFER_IN_CLOUD, warto wiedzieć, który tryb został użyty w przypadku danego żądania. Te informacje są dostępne w przypadku każdej odpowiedzi w postaci właściwości inferenceSource.
Gdy uzyskasz dostęp do tej właściwości, zwrócona wartość będzie ON_DEVICE lub 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());
Określ model, którego chcesz użyć
|
Kliknij swojego dostawcę Gemini API, aby wyświetlić na tej stronie treści i kod specyficzne dla dostawcy. |
Możesz określić model, którego chcesz użyć, podczas tworzenia instancji generativeModel
(Kotlin |
Java).
Określ model hostowany w chmurze:
Jeśli tryb wnioskowania to
PREFER_ON_DEVICE,PREFER_IN_CLOUDlubONLY_IN_CLOUD, musisz wyraźnie określić model hostowany w chmurze, którego chcesz użyć. Pakiet SDK nie ma domyślnego modelu hostowanego w chmurze.Znajdź nazwy modeli wszystkich obsługiwanych modeli hostowanych w chmurze Geminimodels.
Określ model na urządzeniu:
Jeśli tryb wnioskowania to
PREFER_ON_DEVICE,PREFER_IN_CLOUDlubONLY_ON_DEVICE, możesz opcjonalnie określić wonDeviceConfig„kategorię” modelu na urządzeniu, którego chcesz użyć. Kategorie to połączenie etapu wydania i charakterystyki wydajności.Obsługiwane wartości kategorii są wymienione poniżej.
AICore automatycznie wybiera model na urządzeniu, który spełnia warunki określonej kategorii i jest obsługiwany przez urządzenie. Jeśli na przykład określiszPREVIEWi urządzenie to Pixel 9, prawdopodobnie zostanie automatycznie wybrany model Gemini Nano 4 Full [Preview] (nano-v4-full).STABLE: najnowszy stabilny model na urządzeniu.W pełni przetestowany na urządzeniach konsumenckich.
Na przykład Gemini Nano 3 (
nano-v3) lub Gemini Nano 2 (nano-v2).Domyślne ustawienie modelu na urządzeniu, jeśli nie określono
OnDeviceModelOption.
PREVIEW: najnowszy model w wersji przedpremierowej na urządzeniu z pełnymi możliwościami.Zaprojektowany z myślą o większej mocy rozumowania i złożonych zadaniach.
Na przykład Gemini Nano 4 Full [Preview] (
nano-v4-full, który jest oparty na Gemma 4 E4B).
PREVIEW_FAST: najnowszy model w wersji przedpremierowej na urządzeniu, który jest szybki.Zoptymalizowany pod kątem maksymalnej szybkości i mniejszych opóźnień.
Na przykład Gemini Nano 4 Fast [Preview] (
nano-v4-fast, który jest oparty na 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);
Użyj konfiguracji modelu, aby kontrolować odpowiedzi
|
Kliknij swojego dostawcę Gemini API, aby wyświetlić na tej stronie treści i kod specyficzne dla dostawcy. |
W każdym żądaniu wysyłanym do modelu możesz wysłać konfigurację modelu, aby kontrolować sposób generowania odpowiedzi przez model. Modele hostowane w chmurze i modele na urządzeniu oferują różne opcje konfiguracji (parametry chmury i urządzenia ).
W przypadku modeli hostowanych w chmurze skonfiguruj je bezpośrednio w konfiguracji modelu. W przypadku modeli na urządzeniu skonfiguruj je w
an
onDeviceConfig.
Konfiguracja jest zachowywana przez cały okres istnienia instancji. Jeśli chcesz użyć innej konfiguracji, utwórz nową instancję GenerativeModel z tą konfiguracją.
Oto przykład, który ustawia konfiguracje modeli hostowanych w chmurze i na urządzeniu, które mogą być używane, jeśli ustawiony jest tryb wnioskowania 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);