Opcje konfiguracji środowisk hybrydowych w aplikacjach na Androida


Na tej stronie opisujemy te opcje konfiguracji środowisk hybrydowych:

Upewnij się, że masz za sobą przewodnik dla początkujących po tworzeniu środowisk hybrydowych.

Ustawianie trybu wnioskowania

Przykłady w przewodniku dla początkujących korzystają z trybu PREFER_ON_DEVICE, ale jest to tylko jeden z 4 dostępnych trybów wnioskowania.

Dostępne tryby wnioskowania:

  • PREFER_ON_DEVICE: spróbuj użyć modelu na urządzeniu, jeśli jest dostępny i obsługuje dany typ żądania. W przeciwnym razie zarejestruj błąd na urządzeniu, a następnie automatycznie wróć do modelu hostowanego w chmurze.

    Kotlin

    val config = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE)
    

    Java

    InferenceMode mode = InferenceMode.PREFER_ON_DEVICE;
    OnDeviceConfig config = new OnDeviceConfig(mode);
    
  • ONLY_ON_DEVICE: spróbuj użyć modelu na urządzeniu, jeśli jest dostępny i obsługuje dany typ żądania. W przeciwnym razie zgłoś wyjątek.

    Kotlin

    val config = OnDeviceConfig(mode = InferenceMode.ONLY_ON_DEVICE)
    

    Java

    InferenceMode mode = InferenceMode.ONLY_ON_DEVICE;
    OnDeviceConfig config = new OnDeviceConfig(mode);
    
  • PREFER_IN_CLOUD: próba użycia modelu hostowanego w chmurze, jeśli urządzenie jest online i model jest dostępny. Jeśli urządzenie jest offline, wróć do modelu na urządzeniu. We wszystkich innych przypadkach niepowodzenia zgłoś wyjątek.

    Kotlin

    val config = OnDeviceConfig(mode = InferenceMode.PREFER_IN_CLOUD)
    

    Java

    InferenceMode mode = InferenceMode.PREFER_IN_CLOUD;
    OnDeviceConfig config = new OnDeviceConfig(mode);
    
  • ONLY_IN_CLOUD: próba użycia modelu hostowanego w chmurze, jeśli urządzenie jest online i model jest dostępny. W przeciwnym razie zgłoś wyjątek.

    Kotlin

    val config = OnDeviceConfig(mode = InferenceMode.ONLY_IN_CLOUD)
    

    Java

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

Określanie, czy użyto wnioskowania na urządzeniu czy w chmurze

Jeśli używasz trybów wnioskowania PREFER_ON_DEVICE lub PREFER_IN_CLOUD, warto wiedzieć, który tryb został użyty w przypadku poszczególnych żądań. Te informacje są podawane przez właściwość inferenceSource każdej odpowiedzi.

Gdy uzyskasz dostęp do tej właściwości, zwrócona wartość będzie wynosić ON_DEVICE lub 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());

Określanie modelu hostowanego w chmurze do użycia

Kliknij Gemini API dostawcę, aby wyświetlić na tej stronie treści i kod dostawcy.

Jeśli wnioskowanie podstawowe lub rezerwowe może być wykonywane przez model hostowany w chmurze, musisz wyraźnie określić model chmurowy, który ma być używany podczas tworzenia instancji 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);

Znajdź nazwy wszystkich obsługiwanych modeli Gemini.

Kontrolowanie odpowiedzi za pomocą konfiguracji modelu

Kliknij Gemini API dostawcę, aby wyświetlić na tej stronie treści i kod dostawcy.

W każdym żądaniu wysyłanym do modelu możesz przesłać konfigurację modelu, aby określić, jak ma on generować odpowiedź. Modele hostowane w chmurze i modele na urządzeniu oferują różne opcje konfiguracji (parametry chmuryurządzenia).

W przypadku modeli hostowanych w chmurze skonfiguruj je bezpośrednio w ich konfiguracji. W przypadku modeli na urządzeniu skonfiguruj je w ramach elementu onDeviceConfig.

Konfiguracja jest utrzymywana przez cały okres istnienia instancji. Jeśli chcesz użyć innej konfiguracji, utwórz nową GenerativeModel instancję z tą konfiguracją.

Oto przykład ustawień konfiguracji modeli hostowanych w chmurze i na urządzeniu, które mogą być używane, jeśli ustawiony jest PREFER_ON_DEVICE tryb wnioskowania:

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