Vous pouvez créer des applications et des fonctionnalités Apple optimisées par l'IA avec l'inférence hybride à l'aide de Firebase AI Logic. L'inférence hybride permet d'exécuter l'inférence à l'aide de modèles sur l'appareil (en particulier le framework Foundation Models d'Apple) lorsqu'ils sont disponibles, et de revenir de manière transparente aux modèles Google hébergés dans le cloud dans le cas contraire (et vice versa).
Cette page explique comment commencer à utiliser le SDK client, et présente des options et des fonctionnalités de configuration supplémentaires, comme la température.
Notez que l'inférence sur l'appareil via Firebase AI Logic est compatible avec les applications Apple utilisant le SDK Firebase AI Logic v12.13.0+ et s'exécutant sur des appareils sur lesquels Apple Intelligence est activé. Elle est régie par les exigences d'utilisation acceptable du framework Foundation Models d'Apple.
Cas d'utilisation recommandés
L'utilisation d'un modèle sur l'appareil pour l'inférence offre les avantages suivants :
- Confidentialité renforcée
- Inférence sans frais
- Fonctionnalités hors connexion
L'utilisation de la fonctionnalité hybride offre les avantages suivants :
- Offrir à tous les clients une expérience d'application similaire, quel que soit l'appareil de l'utilisateur final
- Améliorer la disponibilité des fonctionnalités d'IA générative, quelle que soit la connectivité Internet, les limites de quota ou les capacités de l'appareil
Fonctionnalités, API et appareils compatibles
Avant d'implémenter l'inférence hybride et sur l'appareil à l'aide de Firebase AI Logic, consultez cette section pour comprendre ce qui est compatible avec les applications Apple.
Fonctionnalités compatibles avec l'inférence sur l'appareil
L'inférence sur l'appareil n'est compatible qu'avec la génération de texte, en particulier les fonctionnalités de génération de texte suivantes :
Veillez à consulter la liste détaillée des inférences hybrides ou sur l'appareil qui ne sont pas encore compatibles en bas de cette page.
API et appareils compatibles
L'inférence dans le cloud utilise le fournisseur Gemini API que vous avez choisi (l' Gemini Developer API ou le Vertex AI Gemini API).
L'inférence sur l'appareil utilise le framework Foundation Models d'Apple, qui n'est disponible que sur les appareils sur lesquels Apple Intelligence est activé. Le modèle sur l'appareil est téléchargé automatiquement lorsque Apple Intelligence est activé.
Commencer
Assurez-vous d'avoir consulté la section ci-dessus décrivant les fonctionnalités, les API et les appareils compatibles.
Ces étapes de démarrage décrivent la configuration générale requise pour toute requête de prompt compatible que vous souhaitez envoyer.
Étape 1 : Configurez un projet Firebase et associez votre application à Firebase
Connectez-vous à la Firebase console, puis sélectionnez votre projet Firebase.
Dans la console Firebase, accédez à Services d'IA > AI Logic.
Cliquez sur Premiers pas pour lancer un workflow guidé qui vous aidera à configurer les API requises et les ressources pour votre projet.
Configurez votre projet pour qu'il utilise un fournisseur "Gemini API".
Nous vous recommandons de commencer à utiliser le Gemini Developer API. Vous pouvez toujours configurer l'Vertex AI Gemini API (et son exigence de facturation) à tout moment.
Pour le Gemini Developer API, la console active les API requises et crée une clé API Gemini dans votre projet.
N'ajoutez pas cette clé API Gemini dans le code de votre application. En savoir plusSi vous y êtes invité dans le workflow de la console, suivez les instructions à l'écran pour enregistrer votre application et l'associer à Firebase.
Passez à l'étape suivante de ce guide pour ajouter le SDK à votre application.
Étape 2 : Ajoutez les SDK requis
Utilisez Swift Package Manager (SPM) pour installer et gérer les dépendances Xcode. La compatibilité hybride n'est disponible que lorsque vous utilisez SPM.
La bibliothèque Firebase AI Logic permet d'accéder aux API pour interagir
avec les modèles génératifs. La bibliothèque est incluse dans le SDK Firebase pour les plates-formes Apple (firebase-ios-sdk).
Si vous utilisez déjà Firebase, assurez-vous que votre package Firebase est la version 12.13.0 ou une version ultérieure.
Dans Xcode, à partir de votre projet d'application ouvert, accédez à File > Add Package Dependencies (Fichier > Ajouter des dépendances de package).
Lorsque vous y êtes invité, ajoutez le dépôt du SDK des plates-formes Firebase pour Apple :
https://github.com/firebase/firebase-ios-sdkSélectionnez la dernière version du SDK.
Sélectionnez la bibliothèque
FirebaseAILogic.
Lorsque vous avez terminé, Xcode commence à résoudre et à télécharger automatiquement vos dépendances en arrière-plan.
Étape 3 : Initialisez le service et créez une instance de session de modèle
|
Cliquez sur votre fournisseur Gemini API pour afficher le contenu spécifique au fournisseur et le code sur cette page. |
Configurez les éléments suivants avant d'envoyer une requête de prompt au modèle.
Initialisez le service pour le fournisseur Gemini API que vous avez choisi.
Créez une instance
GenerativeModelSessionavec unHybridModel.Définissez les modèles
primaryetsecondaryen fonction de vos préférences. Vous pouvez définir l'ordre des tentatives d'inférence :Tenter d'abord l'inférence sur l'appareil, mais autoriser le retour au cloud : définissez
primarysur un modèle "système" etsecondarysur un modèle cloud.Tenter d'abord l'inférence dans le cloud, mais autoriser le retour sur l'appareil: définissez
primarysur un modèle cloud etsecondarysur un modèle "système".
Notez que le SDK n'est compatible qu'avec la définition d'un seul
modelce qui signifie que le SDK ne tentera que l'inférence sur l'appareil ou dans le cloud. Toutefois, pour une expérience hybride, vous devez créer unHybridModelet définir les modèlesprimaryetsecondary.Pour en savoir plus sur le comportement des "modes d'inférence" (l'ordre des tentatives d'inférence) , consultez Options de configuration.
L'exemple suivant montre comment tenter d'abord l'inférence sur l'appareil, mais autoriser le retour au modèle hébergé dans le cloud :
// Initialize the Gemini Developer API backend service
let ai = FirebaseAI.firebaseAI(backend: .googleAI())
// Initialize a cloud model that supports your use case
let cloudModel = ai.geminiModel(name: "GEMINI_MODEL_NAME")
// Initialize an on-device model that supports your use case
let systemModel = FirebaseAI.SystemLanguageModel.default
// Create a Hybrid Model
// Provide your preferred model as `primary` and your fallback model as `secondary`
// In this example, attempt to use on-device model; otherwise, fall back to cloud.
let hybridModel = HybridModel(
primary: systemModel,
secondary: cloudModel
)
// Create a GenerativeModelSession with the HybridModel created earlier.
let session = firebaseAI.generativeModelSession(
model: hybridModel,
)
Étape 4 : Envoyez une requête de prompt à un modèle
Cette section explique comment effectuer les opérations suivantes :
- Générer du texte à partir d'une entrée textuelle uniquement
- Diffuser du texte en streaming à partir d'une entrée textuelle uniquement
Générer du texte à partir d'une entrée textuelle uniquement
| Avant d'essayer cet exemple, assurez-vous d'avoir suivi la section Premiers pas de ce guide. |
Pour générer du texte à partir d'un prompt contenant du texte, utilisez respond(to:) comme suit :
// Imports + initialization of Gemini API backend service + creation of model session
// Provide a prompt that contains text
let prompt = "Write a story about a magic backpack."
// To generate text output, call `respond(to:)` with the text input
let response = try await session.respond(to: prompt)
print(response.content)
Diffuser du texte en streaming à partir d'une entrée textuelle uniquement
| Avant d'essayer cet exemple, assurez-vous d'avoir suivi la section Premiers pas de ce guide. |
Vous pouvez accélérer les interactions en n'attendant pas le résultat complet de la génération du modèle et en utilisant plutôt le streaming pour gérer les résultats partiels. Pour diffuser en streaming du texte généré à partir d'un prompt contenant du texte, utilisez streamResponse(to:) comme suit :
// Imports + initialization of Gemini API backend service + creation of model session
// Provide a prompt that contains text
let prompt = "Write a story about a magic backpack."
// To stream generated text output, call `streamResponse(to:)` with the text input
let stream = session.streamResponse(to: prompt)
for try await snapshot in stream {
print(snapshot.content)
}
Qu'est-ce que tu sais faire d'autre ?
Vous pouvez utiliser différentes options et fonctionnalités de configuration supplémentaires pour vos expériences hybrides :
Déterminer si l'inférence sur l'appareil ou dans le cloud a été utilisée
Utiliser la configuration du modèle pour contrôler les réponses (comme la température)
Fonctionnalités qui ne sont pas encore compatibles avec l'inférence hybride ou sur l'appareil
En tant que version expérimentale, toutes les fonctionnalités de Firebase AI Logic ou des modèles hébergés dans le cloud ne sont pas compatibles.
Les éléments suivants ne sont pas compatibles avec les implémentations hybrides ou sur l'appareil : les modèles Imagen, l'API Gemini Live et les modèles de prompt . De plus, il ne faut pas se fier au nombre de jetons, car il diffère entre les modèles hébergés dans le cloud et sur l'appareil. Il n'y a donc pas de retour intuitif.
Les fonctionnalités suivantes ne sont pas encore compatibles avec l'inférence sur l'appareil. Si vous souhaitez utiliser l'une de ces fonctionnalités, nous vous recommandons d'utiliser uniquement un modèle hébergé dans le cloud pour une expérience plus cohérente.
Générer du texte à partir d'entrées multimodales, telles que des images, des fichiers audio, des vidéos et des documents (PDF)
Générer des contenus multimédias, tels que des images, des fichiers audio ou des vidéos
Envoyer des requêtes dépassant 4 096 jetons (soit environ 3 000 mots en anglais)
Fournir au modèle sur l'appareil des outils intégrés pour l'aider à générer sa réponse (comme l'exécution de code, le contexte d'URL et l'ancrage avec la recherche Google)
La surveillance de l'IA dans la console Firebase n'affiche pas de données pour l'inférence sur l'appareil (y compris les journaux sur l'appareil). Toutefois, toute inférence qui utilise un modèle hébergé dans le cloud peut être surveillée comme les autres inférences via Firebase AI Logic.
Autres limites
En plus de ce qui précède, l'inférence sur l'appareil présente les limites suivantes :
L'utilisateur final de votre application doit utiliser un appareil sur lequel Apple Intelligence est activé.
Votre application ne peut exécuter l'inférence sur l'appareil que lorsqu'elle est au premier plan.
Envoyer des commentaires sur votre expérience avec Firebase AI Logic