Options de configuration pour les expériences hybrides dans les applications Android


Cette page décrit les options de configuration suivantes pour les expériences hybrides :

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.

Si votre inférence principale ou de secours peut être effectuée par un modèle hébergé dans le cloud, vous devez spécifier explicitement un modèle cloud à utiliser lorsque vous créez l'instance.generativeModel

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);