Cette page décrit les options de configuration suivantes pour les expériences hybrides :
Déterminer si l'inférence sur l'appareil ou dans le cloud a été utilisée
Utiliser la configuration du modèle pour contrôler les réponses (comme la température)
Assurez-vous d'avoir suivi le guide de démarrage pour créer des expériences hybrides.
Définir un mode d'inférence
Les exemples du guide de démarrage utilisent le mode PREFER_ON_DEVICE, mais
il ne s'agit que de l'un des quatre modes d'inférence disponibles
.
Voici les modes d'inférence disponibles :
PREFER_ON_DEVICE: tente d'utiliser le modèle sur l'appareil s'il est disponible et compatible avec le type de requête. Sinon, enregistre une erreur sur l'appareil, puis revient automatiquement au modèle hébergé dans le 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: tente d'utiliser le modèle sur l'appareil s'il est disponible et compatible avec le type de requête. Sinon, génère une exception.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.ONLY_ON_DEVICE)Java
InferenceMode mode = InferenceMode.ONLY_ON_DEVICE; OnDeviceConfig config = new OnDeviceConfig(mode);PREFER_IN_CLOUD: tente d'utiliser le modèle hébergé dans le cloud si l'appareil est connecté et si le modèle est disponible. Si l'appareil est hors connexion, revient au modèle sur l'appareil. Dans tous les autres cas d'échec, génère une exception.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.PREFER_IN_CLOUD)Java
InferenceMode mode = InferenceMode.PREFER_IN_CLOUD; OnDeviceConfig config = new OnDeviceConfig(mode);ONLY_IN_CLOUD: tente d'utiliser le modèle hébergé dans le cloud si l'appareil est connecté et si le modèle est disponible. Sinon, génère une exception.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.ONLY_IN_CLOUD)Java
InferenceMode mode = InferenceMode.ONLY_IN_CLOUD; OnDeviceConfig config = new OnDeviceConfig(mode);
Déterminer si l'inférence sur l'appareil ou dans le cloud a été utilisée
Si vous utilisez les modes d'inférence PREFER_ON_DEVICE ou PREFER_IN_CLOUD, il peut être utile de savoir quel mode a été utilisé pour des requêtes données. Ces informations sont fournies par la propriété inferenceSource de chaque réponse.
Lorsque vous accédez à cette propriété, la valeur renvoyée est ON_DEVICE ou 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());
Spécifier un modèle hébergé dans le cloud à utiliser
|
Cliquez sur votre fournisseur Gemini API pour afficher le contenu spécifique au fournisseur et le code sur cette page. |
Kotlin
val model = Firebase.ai(backend = GenerativeBackend.googleAI())
.generativeModel(
modelName = "MODEL_NAME",
onDeviceConfig = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE)
)
Java
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
.generativeModel(
"MODEL_NAME",
new OnDeviceConfig(InferenceMode.PREFER_ON_DEVICE)
);
GenerativeModelFutures model = GenerativeModelFutures.from(ai);
Recherchez les noms de modèles pour tous les modèles Gemini compatibles.
Utiliser la configuration du modèle pour contrôler les réponses
|
Cliquez sur votre fournisseur Gemini API pour afficher le contenu spécifique au fournisseur et le code sur cette page. |
Dans chaque requête adressée à un modèle, vous pouvez envoyer une configuration de modèle pour contrôler la manière dont le modèle génère une réponse. Les modèles hébergés dans le cloud et les modèles sur l'appareil proposent différentes options de configuration (paramètres cloud ou sur l'appareil ).
Pour les modèles hébergés dans le cloud, définissez leur configuration directement dans la configuration du modèle. Toutefois, pour les modèles sur l'appareil, définissez leur configuration dans
un
onDeviceConfig.
La configuration est conservée pendant toute la durée de vie de l'instance. Si vous souhaitez utiliser une autre configuration, créez une instance GenerativeModel avec cette configuration.
Voici un exemple qui définit les configurations des modèles hébergés dans le cloud et sur l'appareil qui pourraient être utilisés si le mode d'inférence PREFER_ON_DEVICE est défini :
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);