En esta página, se describen las siguientes opciones de configuración para las experiencias híbridas:
Determina si se usó la inferencia en el dispositivo o en la nube.
Usa la configuración del modelo para controlar las respuestas (como la temperatura).
Asegúrate de haber completado la guía de introducción para crear experiencias híbridas.
Cómo establecer un modo de inferencia
En los ejemplos de la guía de inicio, se usa el modo PREFER_ON_DEVICE, pero este es solo uno de los cuatro modos de inferencia disponibles.
Estos son los modos de inferencia disponibles:
PREFER_ON_DEVICE: Intenta usar el modelo integrado en el dispositivo si está disponible y admite el tipo de solicitud. De lo contrario, registra un error en el dispositivo y, luego, vuelve automáticamente al modelo alojado en la nube.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE)Java
InferenceMode mode = InferenceMode.PREFER_ON_DEVICE; OnDeviceConfig config = new OnDeviceConfig(mode);ONLY_ON_DEVICE: Intenta usar el modelo integrado en el dispositivo si está disponible y admite el tipo de solicitud. De lo contrario, arroja una excepción.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.ONLY_ON_DEVICE)Java
InferenceMode mode = InferenceMode.ONLY_ON_DEVICE; OnDeviceConfig config = new OnDeviceConfig(mode);PREFER_IN_CLOUD: Intenta usar el modelo alojado en la nube si el dispositivo está en línea y si el modelo está disponible. Si el dispositivo no tiene conexión, se recurre al modelo integrado en el dispositivo. En todos los demás casos de falla, arroja una excepción.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.PREFER_IN_CLOUD)Java
InferenceMode mode = InferenceMode.PREFER_IN_CLOUD; OnDeviceConfig config = new OnDeviceConfig(mode);ONLY_IN_CLOUD: Intenta usar el modelo alojado en la nube si el dispositivo está en línea y si el modelo está disponible. De lo contrario, arroja una excepción.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.ONLY_IN_CLOUD)Java
InferenceMode mode = InferenceMode.ONLY_IN_CLOUD; OnDeviceConfig config = new OnDeviceConfig(mode);
Determina si se usó la inferencia en el dispositivo o en la nube
Si usas los modos de inferencia PREFER_ON_DEVICE o PREFER_IN_CLOUD, puede ser útil saber qué modo se usó para solicitudes determinadas. Esta información se proporciona en la propiedad inferenceSource de cada respuesta.
Cuando accedas a esta propiedad, el valor que se mostrará será ON_DEVICE o 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());
Especifica un modelo alojado en la nube para usar
|
Haz clic en tu proveedor de Gemini API para ver el contenido y el código específicos del proveedor en esta página. |
Si la inferencia principal o de respaldo se puede realizar con un modelo alojado en la nube, debes especificar de forma explícita un modelo de nube para usar cuando crees la instancia de 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);
Encuentra los nombres de los modelos para todos los modelos de Gemini compatibles.
Usa la configuración del modelo para controlar las respuestas
|
Haz clic en tu proveedor de Gemini API para ver el contenido y el código específicos del proveedor en esta página. |
En cada solicitud a un modelo, puedes enviar una configuración del modelo para controlar cómo este genera una respuesta. Los modelos alojados en la nube y los modelos integrados en el dispositivo ofrecen diferentes opciones de configuración (parámetros en la nube frente a integrados en el dispositivo).
En el caso de los modelos alojados en la nube, establece su configuración directamente en la configuración del modelo. Sin embargo, para los modelos integrados en el dispositivo, establece su configuración dentro de un onDeviceConfig.
La configuración se mantiene durante el ciclo de vida de la instancia. Si quieres usar una configuración diferente, crea una instancia de GenerativeModel nueva con esa configuración.
Este es un ejemplo que establece la configuración para los modelos alojados en la nube y en el dispositivo que se podrían usar si se establece el modo de inferencia 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);