Questa pagina descrive le seguenti opzioni di configurazione per le esperienze ibride:
Determina se è stata utilizzata l'inferenza sul dispositivo o nel cloud.
Utilizza la configurazione del modello per controllare le risposte.
Assicurati di aver completato la guida introduttiva alla creazione di esperienze ibride.
Imposta una modalità di inferenza
Gli esempi nella guida introduttiva utilizzano la modalità PREFER_ON_DEVICE, ma
questa è solo una delle quattro modalità di inferenza disponibili
.
Ecco le modalità di inferenza disponibili:
PREFER_ON_DEVICE: tenta di utilizzare il modello sul dispositivo se è disponibile e supporta il tipo di richiesta. In caso contrario, registra un errore sul dispositivo e poi esegui automaticamente il fallback al modello ospitato nel 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: tenta di utilizzare il modello sul dispositivo se è disponibile e supporta il tipo di richiesta. In caso contrario, genera un'eccezione.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.ONLY_ON_DEVICE)Java
InferenceMode mode = InferenceMode.ONLY_ON_DEVICE; OnDeviceConfig config = new OnDeviceConfig(mode);PREFER_IN_CLOUD: tenta di utilizzare il modello ospitato nel cloud se il dispositivo è online e se il modello è disponibile. Se il dispositivo è offline, esegui il fallback al modello sul dispositivo. In tutti gli altri casi di errore, genera un'eccezione.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.PREFER_IN_CLOUD)Java
InferenceMode mode = InferenceMode.PREFER_IN_CLOUD; OnDeviceConfig config = new OnDeviceConfig(mode);ONLY_IN_CLOUD: tenta di utilizzare il modello ospitato nel cloud se il dispositivo è online e se il modello è disponibile. In caso contrario, genera un'eccezione.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.ONLY_IN_CLOUD)Java
InferenceMode mode = InferenceMode.ONLY_IN_CLOUD; OnDeviceConfig config = new OnDeviceConfig(mode);
Determina se è stata utilizzata l'inferenza sul dispositivo o nel cloud
Se la modalità di inferenza è PREFER_ON_DEVICE o PREFER_IN_CLOUD, potrebbe essere utile sapere quale modalità è stata utilizzata per determinate richieste. Queste informazioni sono fornite dalla proprietà inferenceSource di ogni risposta.
Quando accedi a questa proprietà, il valore restituito sarà ON_DEVICE o 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());
Specifica un modello da utilizzare
|
Fai clic sul tuo fornitore Gemini API per visualizzare contenuti specifici del fornitore e codice in questa pagina. |
Puoi specificare un modello da utilizzare quando crei l'generativeModel istanza
(Kotlin |
Java).
Specifica un modello ospitato nel cloud:
Se la modalità di inferenza è
PREFER_ON_DEVICE,PREFER_IN_CLOUDoONLY_IN_CLOUD, devi specificare esplicitamente un modello ospitato nel cloud da utilizzare. L'SDK non ha un modello ospitato nel cloud predefinito.Trova i nomi dei modelli per tutti i modelli ospitati nel cloud supportati Gemini.
Specifica un modello sul dispositivo:
Se la modalità di inferenza è
PREFER_ON_DEVICE,PREFER_IN_CLOUDoONLY_ON_DEVICE, puoi facoltativamente specificare inonDeviceConfiguna "categoria" di modello sul dispositivo da utilizzare. Le categorie sono una combinazione di fase di rilascio e caratteristiche delle prestazioni.I valori delle categorie supportati sono elencati di seguito.
AICore seleziona automaticamente il modello sul dispositivo che soddisfa le condizioni della categoria specificata ed è supportato dal dispositivo. Ad esempio, se specifichiPREVIEWe il dispositivo è un Pixel 9, è probabile che venga selezionato automaticamente Gemini Nano 4 Full [Anteprima] (nano-v4-full).STABLE: l'ultimo modello sul dispositivo stabile.Completamente testato e sui dispositivi consumer.
Ad esempio, Gemini Nano 3 (
nano-v3) o Gemini Nano 2 (nano-v2).Impostazione predefinita per il modello sul dispositivo se non viene specificato
OnDeviceModelOption.
PREVIEW: l'ultimo modello sul dispositivo in anteprima con funzionalità di prestazioni complete.Progettato per una maggiore capacità di ragionamento e attività complesse.
Ad esempio, Gemini Nano 4 Full [Anteprima] (
nano-v4-full, basato su Gemma 4 E4B).
PREVIEW_FAST: l'ultimo modello sul dispositivo in anteprima che è veloce.Ottimizzato per la massima velocità e una latenza inferiore.
Ad esempio, Gemini Nano 4 Fast [Anteprima] (
nano-v4-fast, basato su 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);
Utilizza la configurazione del modello per controllare le risposte
|
Fai clic sul tuo fornitore Gemini API per visualizzare contenuti specifici del fornitore e codice in questa pagina. |
In ogni richiesta a un modello, puoi inviare una configurazione del modello per controllare il modo in cui il modello genera una risposta. I modelli ospitati nel cloud e i modelli sul dispositivo sono configurati in modo diverso e offrono opzioni di configurazione diverse:
Modelli ospitati nel cloud: imposta la configurazione utilizzando
generationConfig(Kotlin | Java). Scopri di più sui parametri disponibili.Modelli sul dispositivo: imposta la configurazione utilizzando
onDeviceConfig(Kotlin | Java). Scopri di più sui parametri disponibili (Kotlin | Java).
La configurazione viene mantenuta per la durata dell'istanza. Se vuoi utilizzare una configurazione diversa, crea una nuova istanza GenerativeModel con quella configurazione.
Ecco un esempio che imposta le configurazioni per i modelli ospitati nel cloud e sul dispositivo che potrebbero essere utilizzati se è impostata la modalità di inferenza PREFER_ON_DEVICE:
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);
Invia feedback sulla tua esperienza con Firebase AI Logic