En esta página, se describen las siguientes opciones de configuración para las experiencias híbridas:
Determina si se usó la inferencia integrado 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 integrado en el dispositivo o en la nube
Si tu modo de inferencia es PREFER_ON_DEVICE o PREFER_IN_CLOUD, puede ser útil saber qué modo se usó para solicitudes específicas. 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());
Cómo especificar un modelo 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. |
Puedes especificar un modelo para usar cuando creas la instancia de generativeModel (Kotlin | Java).
Especifica un modelo alojado en la nube:
Si tu modo de inferencia es
PREFER_ON_DEVICE,PREFER_IN_CLOUDoONLY_IN_CLOUD, debes especificar de forma explícita un modelo alojado en la nube para usar. El SDK no tiene un modelo predeterminado alojado en la nube.Encuentra los nombres de los modelos para todos los modelos de Gemini alojados en la nube compatibles.
Especifica un modelo integrado en el dispositivo:
Si tu modo de inferencia es
PREFER_ON_DEVICE,PREFER_IN_CLOUDoONLY_ON_DEVICE, puedes especificar de forma opcional enonDeviceConfiguna "categoría" de modelo integrado en el dispositivo para usar. Las categorías son una combinación de la etapa de lanzamiento y las características de rendimiento.A continuación, se enumeran los valores de categoría admitidos.
AICore selecciona automáticamente el modelo integrado en el dispositivo que cumple con las condiciones de la categoría especificada y que es compatible con el dispositivo. Por ejemplo, si especificasPREVIEWy el dispositivo es un Pixel 9, es probable que se seleccione automáticamente Gemini Nano 4 Full [Preview] (nano-v4-full).STABLE: Es el modelo estable más reciente integrado en el dispositivo.Se probó por completo y está disponible en dispositivos para el consumidor.
Por ejemplo, Gemini Nano 3 (
nano-v3) o Gemini Nano 2 (nano-v2).Es el parámetro de configuración predeterminado para el modelo integrado en el dispositivo si no se especifica ningún
OnDeviceModelOption.
PREVIEW: La versión preliminar más reciente del modelo integrado en el dispositivo con capacidades de rendimiento completas.Diseñado para un mayor poder de razonamiento y tareas complejas.
Por ejemplo, Gemini Nano 4 Full [versión preliminar] (
nano-v4-full, que se basa en Gemma 4 E4B).
PREVIEW_FAST: Es el modelo integrado en el dispositivo de versión preliminar más reciente que es rápido.Está optimizado para ofrecer la máxima velocidad y una latencia más baja.
Por ejemplo, Gemini Nano 4 Fast [versión preliminar] (
nano-v4-fast, que se basa en Gemma 4 E2B).
Kotlin
val model = Firebase.ai(backend = GenerativeBackend.googleAI())
.generativeModel(
// Specify a cloud-hosted model.
// Required for `PREFER_ON_DEVICE`, `PREFER_IN_CLOUD`, and `ONLY_IN_CLOUD` inference modes.
modelName = "CLOUD_HOSTED_MODEL_NAME",
onDeviceConfig = OnDeviceConfig(
mode = InferenceMode.INFERENCE_MODE,
// (Optional) Specify an on-device model category.
// AICore will auto-select an on-device model based on this category.
// If not specified, AICore will auto-select the default stable on-device model.
modelOption = OnDeviceModelOption.ON-DEVICE_MODEL_CATEGORY)
)
Java
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
.generativeModel(
// Specify a cloud-hosted model.
// Required for `PREFER_ON_DEVICE`, `PREFER_IN_CLOUD`, and `ONLY_IN_CLOUD` inference modes.
"CLOUD_HOSTED_MODEL_NAME",
/* config = */ null,
/* safetySettings = */ null,
/* tools = */ null,
/* toolConfig = */ null,
/* systemInstruction = */ null,
/* requestOptions = */ new RequestOptions(),
new OnDeviceConfig(
/* mode = */ InferenceMode.INFERENCE_MODE,
/* maxOutputTokens = */ null,
/* temperature = */ null,
/* topK = */ null,
/* seed = */ null,
/* candidateCount = */ 1,
// (Optional) Specify an on-device model category.
// AICore will auto-select an on-device model based on this category.
// If not specified, AICore will auto-select the default stable on-device model.
/* modelOption = */ OnDeviceModelOption.ON-DEVICE_MODEL_CATEGORY)
);
GenerativeModelFutures model = GenerativeModelFutures.from(ai);
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 e integrados 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);