Nesta página, descrevemos as seguintes opções de configuração para experiências híbridas:
Determine se a inferência no dispositivo ou na nuvem foi usada.
Use a configuração do modelo para controlar as respostas (como a temperatura).
Confira se você concluiu o guia para iniciantes sobre como criar experiências híbridas.
Definir um modo de inferência
Os exemplos no guia de início rápido 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: tente usar o modelo no dispositivo se ele estiver disponível e for compatível com o 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: tente usar o modelo no dispositivo se ele estiver disponível e for compatível com o 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: tente usar o modelo hospedado na nuvem se o dispositivo estiver on-line e se o modelo estiver disponível. Se o dispositivo estiver off-line, use 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: tente usar o modelo hospedado na nuvem se o dispositivo estiver on-line e se 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ê usa 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());
Especifique um modelo hospedado na nuvem para usar
|
Clique no seu provedor de Gemini API para conferir o conteúdo e o código específicos do provedor nesta página. |
Se a inferência principal ou de substituição puder ser realizada por um modelo hospedado na nuvem, especifique explicitamente um modelo de nuvem para usar ao criar a instância 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);
Encontre os nomes de todos os modelos do Gemini compatíveis.
Usar a configuração do modelo para controlar as respostas
|
Clique no seu provedor de Gemini API para conferir o conteúdo e o código específicos do provedor nesta página. |
Em cada solicitação a um modelo, é possível enviar uma configuração para controlar como ele gera uma resposta. Os modelos hospedados na nuvem e no dispositivo oferecem diferentes opções de configuração (parâmetros cloud x on-device).
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 deles em um
onDeviceConfig.
A configuração é mantida durante toda a vida útil 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 for
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);