Esta página descreve as seguintes opções de configuração para experiências híbridas:
Determinar se a inferência no dispositivo ou na nuvem foi usada.
Usar a configuração do modelo para controlar respostas (como temperatura).
Conclua o guia para iniciantes sobre como criar experiências híbridas.
Definir um modo de inferência
Os exemplos no guia para iniciantes usam o modo PREFER_ON_DEVICE, mas
esse é apenas um dos quatro modos de inferência disponíveis
.
Estes são os modos de inferência disponíveis:
PREFER_ON_DEVICE: tenta usar o modelo no dispositivo se ele estiver disponível e oferecer suporte ao tipo de solicitação. Caso contrário, registre um erro no dispositivo e reverta automaticamente para o modelo hospedado na nuvem.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE)Java
InferenceMode mode = InferenceMode.PREFER_ON_DEVICE; OnDeviceConfig config = new OnDeviceConfig(mode);ONLY_ON_DEVICE: tenta usar o modelo no dispositivo se ele estiver disponível e oferecer suporte ao tipo de solicitação. Caso contrário, gere uma exceção.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.ONLY_ON_DEVICE)Java
InferenceMode mode = InferenceMode.ONLY_ON_DEVICE; OnDeviceConfig config = new OnDeviceConfig(mode);PREFER_IN_CLOUD: tenta usar o modelo hospedado na nuvem se o dispositivo estiver on-line e o modelo estiver disponível. Se o dispositivo estiver off-line, reverta para o modelo no dispositivo. Em todos os outros casos de falha, gere uma exceção.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.PREFER_IN_CLOUD)Java
InferenceMode mode = InferenceMode.PREFER_IN_CLOUD; OnDeviceConfig config = new OnDeviceConfig(mode);ONLY_IN_CLOUD: tenta usar o modelo hospedado na nuvem se o dispositivo estiver on-line e o modelo estiver disponível. Caso contrário, gere uma exceção.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.ONLY_IN_CLOUD)Java
InferenceMode mode = InferenceMode.ONLY_IN_CLOUD; OnDeviceConfig config = new OnDeviceConfig(mode);
Determinar se a inferência no dispositivo ou na nuvem foi usada
Se você usar os modos de inferência PREFER_ON_DEVICE ou PREFER_IN_CLOUD, pode ser útil saber qual modo foi usado para determinadas solicitações. Essas informações são fornecidas pela propriedade inferenceSource de cada resposta.
Ao acessar essa propriedade, o valor retornado será 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());
Especificar um modelo hospedado na nuvem para usar
|
Clique no provedor Gemini API para conferir o conteúdo específico do provedor e o código nesta página. |
Se a inferência principal ou de fallback puder ser realizada por um modelo hospedado na nuvem, você precisará especificar explicitamente um modelo de nuvem para usar ao criar
a
generativeModel
instância.
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);
Encontre nomes de modelos para todos os modelos Gemini com suporte.
Usar a configuração do modelo para controlar respostas
|
Clique no provedor Gemini API para conferir o conteúdo específico do provedor e o código nesta página. |
Em cada solicitação para um modelo, você pode enviar uma configuração de modelo para controlar como o modelo gera uma resposta. Os modelos hospedados na nuvem e os modelos no dispositivo oferecem opções de configuração diferentes (parâmetros de nuvem x parâmetros no dispositivo ).
Para modelos hospedados na nuvem, defina a configuração diretamente na configuração do modelo. No entanto, para os modelos no dispositivo, defina a configuração em
um
onDeviceConfig.
A configuração é mantida durante o ciclo de vida da instância. Se você quiser usar uma configuração diferente, crie uma nova instância GenerativeModel com essa configuração.
Confira um exemplo que define as configurações para os modelos hospedados na nuvem e no dispositivo que podem ser usados se o modo de inferência PREFER_ON_DEVICE estiver definido:
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);