Android アプリのハイブリッド エクスペリエンスの構成オプション


このページでは、ハイブリッド エクスペリエンスの次の構成オプションについて説明します。

ハイブリッド エクスペリエンスの構築の スタートガイドを完了していることを確認してください。

推論モードを設定する

スタートガイドの例では PREFER_ON_DEVICE モードを使用していますが、 これは使用可能な 4 つの 推論モードの 1 つにすぎません。

使用可能な推論モードは次のとおりです。

  • PREFER_ON_DEVICE: デバイス上のモデルが使用可能で、リクエストのタイプをサポートしている場合は、デバイス上のモデルを使用しようとします。それ以外の場合は、デバイスにエラーを記録し、自動的に クラウドホスト型モデルにフォールバックします。

    Kotlin

    val config = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE)
    

    Java

    InferenceMode mode = InferenceMode.PREFER_ON_DEVICE;
    OnDeviceConfig config = new OnDeviceConfig(mode);
    
  • ONLY_ON_DEVICE: デバイス上のモデルが使用可能で、リクエストのタイプをサポートしている場合は、デバイス上のモデルを使用しようとします。それ以外の場合は、 例外をスローします。

    Kotlin

    val config = OnDeviceConfig(mode = InferenceMode.ONLY_ON_DEVICE)
    

    Java

    InferenceMode mode = InferenceMode.ONLY_ON_DEVICE;
    OnDeviceConfig config = new OnDeviceConfig(mode);
    
  • PREFER_IN_CLOUD: デバイスがオンラインで、モデルが使用可能な場合は、クラウドホスト型モデルを使用しようとします。デバイスがオフラインの場合は、 デバイス上のモデルにフォールバックします。その他のすべてのエラーケースでは、 例外をスローします。

    Kotlin

    val config = OnDeviceConfig(mode = InferenceMode.PREFER_IN_CLOUD)
    

    Java

    InferenceMode mode = InferenceMode.PREFER_IN_CLOUD;
    OnDeviceConfig config = new OnDeviceConfig(mode);
    
  • ONLY_IN_CLOUD: デバイスがオンラインで、モデルが使用可能な場合は、クラウドホスト型モデルを使用しようとします。それ以外の場合は、 例外をスローします。

    Kotlin

    val config = OnDeviceConfig(mode = InferenceMode.ONLY_IN_CLOUD)
    

    Java

    InferenceMode mode = InferenceMode.ONLY_IN_CLOUD;
    OnDeviceConfig config = new OnDeviceConfig(mode);
    

デバイス上の推論とクラウド内の推論のどちらが使用されたかを判断する

PREFER_ON_DEVICE 推論モードまたは PREFER_IN_CLOUD 推論モードを使用する場合は、特定のリクエストにどのモードが使用されたかを知ることが役立ちます。この情報は、各レスポンスの inferenceSource プロパティによって提供されます。

このプロパティにアクセスすると、返される値は ON_DEVICE または 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());

使用するクラウドホスト型モデルを指定する

Gemini API プロバイダをクリックして、このページでプロバイダ固有のコンテンツとコードを表示します。

プライマリ推論またはフォールバック推論がクラウドホスト型 モデルによって実行される可能性がある場合は、`generativeModel` インスタンスを作成するときに使用するクラウドモデルを明示的に指定する必要があります。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);

サポートされているすべての Gemini モデルのモデル名を確認します。

モデル構成を使用してレスポンスを制御する

Gemini API プロバイダをクリックして、このページでプロバイダ固有のコンテンツとコードを表示します。

モデルへのリクエストごとに、モデル構成を送信して、モデルがレスポンスを生成する方法を制御できます。クラウドホスト型モデルとデバイス上のモデル では、異なる構成オプション (クラウド パラメータと デバイス上の パラメータ)が用意されています。

クラウドホスト型モデルの場合は、モデルの構成で直接構成を設定します。ただし、デバイス上のモデルの場合は、 an onDeviceConfig内で構成を設定します。

構成はインスタンスの有効期間中維持されます。別の構成を使用する場合は、その構成で新しい GenerativeModel インスタンスを作成します。

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