Auf dieser Seite werden die folgenden Konfigurationsoptionen für hybride Anwendungen beschrieben:
Bestimmen, ob die Inferenz auf dem Gerät oder in der Cloud verwendet wurde
Modellkonfiguration verwenden, um Antworten zu steuern (z. B. Temperatur)
Achten Sie darauf, dass Sie den Startleitfaden zum Erstellen hybrider Anwendungendurchgearbeitet haben.
Inferenzmodus festlegen
In den Beispielen im Startleitfaden wird der PREFER_ON_DEVICE Modus verwendet. Dies ist jedoch nur einer der vier verfügbaren
Inferenzmodi.
Folgende Inferenzmodi sind verfügbar:
PREFER_ON_DEVICE: Versuchen Sie, das Modell auf dem Gerät zu verwenden, wenn es verfügbar ist und den Anfragetyp unterstützt. Andernfalls wird ein Fehler auf dem Gerät protokolliert und dann automatisch auf das in der Cloud gehostete Modell zurückgegriffen.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE)Java
InferenceMode mode = InferenceMode.PREFER_ON_DEVICE; OnDeviceConfig config = new OnDeviceConfig(mode);ONLY_ON_DEVICE: Versuchen Sie, das Modell auf dem Gerät zu verwenden, wenn es verfügbar ist und den Anfragetyp unterstützt. Andernfalls wird eine Ausnahme ausgelöst.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.ONLY_ON_DEVICE)Java
InferenceMode mode = InferenceMode.ONLY_ON_DEVICE; OnDeviceConfig config = new OnDeviceConfig(mode);PREFER_IN_CLOUD: Versuchen Sie, das in der Cloud gehostete Modell zu verwenden, wenn das Gerät online und das Modell verfügbar ist. Wenn das Gerät offline ist, wird auf das Modell auf dem Gerät zurückgegriffen. In allen anderen Fehlerfällen wird eine Ausnahme ausgelöst.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.PREFER_IN_CLOUD)Java
InferenceMode mode = InferenceMode.PREFER_IN_CLOUD; OnDeviceConfig config = new OnDeviceConfig(mode);ONLY_IN_CLOUD: Versuchen Sie, das in der Cloud gehostete Modell zu verwenden, wenn das Gerät online und das Modell verfügbar ist. Andernfalls wird eine Ausnahme ausgelöst.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.ONLY_IN_CLOUD)Java
InferenceMode mode = InferenceMode.ONLY_IN_CLOUD; OnDeviceConfig config = new OnDeviceConfig(mode);
Bestimmen, ob die Inferenz auf dem Gerät oder in der Cloud verwendet wurde
Wenn Sie die Inferenzmodi PREFER_ON_DEVICE oder PREFER_IN_CLOUD verwenden, ist es möglicherweise hilfreich zu wissen, welcher Modus für bestimmte Anfragen verwendet wurde. Diese Informationen werden durch die Eigenschaft inferenceSource jeder Antwort bereitgestellt.
Wenn Sie auf diese Eigenschaft zugreifen, ist der zurückgegebene Wert entweder ON_DEVICE oder 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());
Ein in der Cloud gehostetes Modell angeben
|
Klicken Sie auf Ihren Gemini API Anbieter, um anbieterspezifische Inhalte und Code auf dieser Seite aufzurufen. |
Wenn Ihre primäre oder Fallback-Inferenz von einem in der Cloud gehosteten
Modell ausgeführt werden kann, müssen Sie beim Erstellen
der
generativeModel
Instanz explizit ein Cloud-Modell angeben.
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);
Modellnamen für alle unterstützten Gemini-Modelle finden.
Modellkonfiguration verwenden, um Antworten zu steuern
|
Klicken Sie auf Ihren Gemini API Anbieter, um anbieterspezifische Inhalte und Code auf dieser Seite aufzurufen. |
In jeder Anfrage an ein Modell können Sie eine Modellkonfiguration senden, um zu steuern, wie das Modell eine Antwort generiert. In der Cloud gehostete Modelle und Modelle auf dem Gerät bieten unterschiedliche Konfigurationsoptionen (Cloud-Parameter im Vergleich zu Parametern auf dem Gerät).
Für in der Cloud gehostete Modelle legen Sie die Konfiguration direkt in der Konfiguration des Modells fest. Für die Modelle auf dem Gerät legen Sie die Konfiguration jedoch in
einer
onDeviceConfig fest.
Die Konfiguration bleibt für die Lebensdauer der Instanz erhalten. Wenn Sie eine andere Konfiguration verwenden möchten, erstellen Sie eine neue GenerativeModel-Instanz mit dieser Konfiguration.
Hier ist ein Beispiel, in dem die Konfigurationen für die in der Cloud gehosteten Modelle und die Modelle auf dem Gerät festgelegt werden, die verwendet werden könnten, wenn der Inferenzmodus PREFER_ON_DEVICE festgelegt ist:
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);