En esta página, se describen las siguientes opciones de configuración para experiencias híbridas:
Determinar si se usó la inferencia integrado en el dispositivo o en la nube
Usar la configuración del modelo para controlar las respuestas (como la temperatura)
Asegúrate de completar la guía de introducción para crear experiencias híbridas.
Establecer un modo de inferencia
En los ejemplos de la guía de introducción, 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, lanza 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 el modelo está disponible. Si el dispositivo no tiene conexión, vuelve al modelo integrado en el dispositivo. En todos los demás casos de falla, lanza 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 el modelo está disponible. De lo contrario, lanza una excepción.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.ONLY_IN_CLOUD)Java
InferenceMode mode = InferenceMode.ONLY_IN_CLOUD; OnDeviceConfig config = new OnDeviceConfig(mode);
Determinar 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 las solicitudes determinadas. Esta información la proporciona 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());
Especificar un modelo para usar
|
Haz clic en tu proveedor de Gemini API para ver el contenido específico del proveedor y el código en esta página. |
Puedes especificar un modelo para usar cuando creas la instancia 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 alojado en la nube predeterminado.Encuentra nombres de modelos para todos los modelos alojados en la nube compatibles Gemini.
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 etapa de lanzamiento y 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: El modelo estable integrado en el dispositivo más reciente.Se probó por completo y está en dispositivos del consumidor.
Por ejemplo, Gemini Nano 3 (
nano-v3) o Gemini Nano 2 (nano-v2).Es la configuración predeterminada para el modelo integrado en el dispositivo si no se especifica
OnDeviceModelOption.
PREVIEW: El modelo en el dispositivo de vista previa más reciente con capacidades de rendimiento completas.Diseñado para una mayor capacidad de razonamiento y tareas complejas.
Por ejemplo, Gemini Nano 4 Full [Preview] (
nano-v4-full, que se basa en Gemma 4 E4B).
PREVIEW_FAST: El modelo integrado en el dispositivo de vista previa más reciente que es rápido.Optimizado para una velocidad máxima y una latencia más baja.
Por ejemplo, Gemini Nano 4 Fast [Preview] (
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);
Usar la configuración del modelo para controlar las respuestas
|
Haz clic en tu proveedor de Gemini API para ver el contenido específico del proveedor y el código en esta página. |
En cada solicitud a un modelo, puedes enviar una configuración del modelo para controlar cómo el modelo 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 y integrados en el dispositivo).
Para 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 la vida útil de la instancia. Si deseas usar una configuración diferente, crea una instancia nueva de GenerativeModel con esa configuración.
Este es un ejemplo que establece las configuraciones 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);