Aana SDK : un outil open source pour faciliter le déploiement de modèles d'IA multimodaux
Introduction générale
Aana SDK est un framework open source développé par Mobius Labs, nommé d'après le mot malayalam "ആന" (éléphant). Il aide les développeurs à déployer et à gérer rapidement des modèles d'IA multimodaux qui prennent en charge le traitement du texte, des images, de l'audio et de la vidéo, entre autres données.Aana SDK est basé sur le cadre informatique distribué Ray et est conçu pour la fiabilité, l'évolutivité et l'efficacité. Les développeurs peuvent l'utiliser pour créer facilement des applications, qu'elles soient autonomes ou groupées, telles que la transcription de vidéos, la description d'images ou des outils de chat intelligents.

Liste des fonctions
- Prise en charge des données multimodales : capacité à traiter simultanément du texte, des images, du son et de la vidéo.
- Déploiement et mise à l'échelle des modèles : les modèles d'apprentissage automatique peuvent être déployés sur une seule machine ou sur une grappe.
- API générées automatiquement : créer et valider automatiquement des API basées sur des points d'extrémité définis.
- Sortie en continu en temps réel : prend en charge les résultats en continu pour les applications en temps réel et les modèles linguistiques de grande taille.
- Types de données prédéfinis : prise en charge intégrée des types de données courants tels que les images, les vidéos, etc.
- File d'attente des tâches en arrière-plan : les tâches des points d'extrémité s'exécutent automatiquement en arrière-plan sans configuration supplémentaire.
- Intégration de plusieurs modèles : Whisper, vLLM, Hugging Face Transformers, etc. sont pris en charge.
- Génération automatique de la documentation : Générer automatiquement la documentation de l'application en fonction des points d'extrémité.
Utiliser l'aide
Processus d'installation
Il y a deux façons d'installer Aana SDK, PyPI et GitHub, voici les étapes :
- Préparation de l'environnement
- Nécessite Python 3.8 ou une version ultérieure.
- Il est recommandé d'installer PyTorch manuellement (>= 2.1), en choisissant la version appropriée pour votre système (voir https://pytorch.org/get-started/locally/). Sinon, l'installation par défaut risque de ne pas tirer pleinement parti du GPU.
- Si vous utilisez un GPU, il est recommandé d'installer la bibliothèque Flash Attention pour améliorer les performances (voir https://github.com/Dao-AILab/flash-attention).
- Installation via PyPI
- Exécutez la commande suivante pour installer les dépendances de base :
pip install aana
- Pour une fonctionnalité complète, installez toutes les dépendances supplémentaires :
pip install aana[all]
- Les autres options sont les suivantes
vllm
(Modélisation linguistique),asr
(reconnaissance vocale),transformers
(modèle de convertisseur), etc., selon les besoins.
- Exécutez la commande suivante pour installer les dépendances de base :
- Installation via GitHub
- Entrepôt de clonage :
git clone https://github.com/mobiusml/aana_sdk.git cd aana_sdk
- Installer en utilisant Poetry (Poetry >= 2.0 recommandé, voir https://python-poetry.org/docs/#installation) :
poetry install --extras all
- Les environnements de développement peuvent ajouter des dépendances de test :
poetry install --extras all --with dev,tests
- Entrepôt de clonage :
- Vérifier l'installation
- importation
python -c "import aana; print(aana.__version__)"
Si le numéro de version est renvoyé, l'opération réussit.
- importation
Comment l'utiliser
Au cœur du SDK d'Aana se trouvent les déploiements et les points de terminaison. Les Deployments chargent le modèle et les Endpoints définissent la fonctionnalité. Voici un exemple de transcription vidéo :
- Création d'une nouvelle application
- Nouveau dossier (par exemple
my_app
), créerapp.py
. - Modèles référençables https://github.com/mobiusml/aana_app_template Démarrage rapide.
- Nouveau dossier (par exemple
- Déploiement de la configuration
- existent
app.py
Chargement Chuchotement Modèles :from aana.sdk import AanaSDK from aana.deployments.whisper_deployment import WhisperDeployment, WhisperConfig, WhisperModelSize, WhisperComputeType app = AanaSDK(name="video_app") app.register_deployment( "whisper", WhisperDeployment.options( num_replicas=1, ray_actor_options={"num_gpus": 0.25}, # 若无GPU可删除此行 user_config=WhisperConfig( model_size=WhisperModelSize.MEDIUM, compute_type=WhisperComputeType.FLOAT16 ).model_dump(mode="json") ) )
- existent
- Définir les points finaux
- Ajouter des points d'aboutissement de la transcription :
from aana.core.models.video import VideoInput @app.aana_endpoint(name="transcribe_video") async def transcribe_video(self, video: VideoInput): audio = await self.download(video.url) # 下载并提取音频 transcription = await self.whisper.transcribe(audio) # 转录 return {"transcription": transcription}
- Ajouter des points d'aboutissement de la transcription :
- Exécution de l'application
- S'exécute dans le terminal :
python app.py serve
- ou à l'aide de l'interface de programmation (CLI) d'Aana :
aana deploy app:app --host 127.0.0.1 --port 8000
- Au démarrage de l'application, l'adresse par défaut est
http://127.0.0.1:8000
.
- S'exécute dans le terminal :
- fonction de test
- Envoie une requête en utilisant cURL :
curl -X POST http://127.0.0.1:8000/transcribe_video -F body='{"url":"https://www.youtube.com/watch?v=VhJFyyukAzA"}'
- Ou visitez l'interface utilisateur Swagger (
http://127.0.0.1:8000/docs
) Test.
- Envoie une requête en utilisant cURL :
Fonction en vedette Fonctionnement
- traitement multimodal
En plus de la transcription de la parole, des modèles d'images (par exemple Blip2) peuvent être intégrés pour générer des descriptions :captions = await self.blip2.generate_captions(video.frames)
- sortie en continu
Permet de renvoyer les résultats en temps réel, par exemple :@app.aana_endpoint(name="chat", streaming=True) async def chat(self, question: str): async for chunk in self.llm.generate_stream(question): yield chunk
- Extension de la grappe
Pour déployer avec un cluster Ray, modifiezapp.connect()
Il suffit de spécifier l'adresse du cluster.
Outils supplémentaires
- Tableau de bord de RayAccès après la course
http://127.0.0.1:8265
Le système d'information sur les clusters permet d'afficher l'état et les journaux des clusters. - Déploiement DockerVoir https://mobiusml.github.io/aana_sdk/pages/docker/.
scénario d'application
- Collation du contenu vidéo
Générer des sous-titres et des résumés pour les vidéos pédagogiques afin de faciliter l'archivage et la recherche. - système intelligent de questions et réponses (Q&R)
L'utilisateur télécharge une vidéo, puis pose une question à laquelle le système répond en se basant sur le contenu audio et vidéo. - Analyse des données d'entreprise
Extraire des informations clés des enregistrements de réunions et des vidéos pour générer des rapports.
QA
- Besoin d'un GPU ?
Ce n'est pas obligatoire ; l'unité centrale peut également fonctionner, mais le GPU (40 Go de RAM recommandés) améliorera considérablement l'efficacité. - Comment gérer les erreurs d'installation ?
Vérifiez la version de Python et les correspondances de dépendances en ajoutant l'option--log-level DEBUG
Afficher les journaux détaillés. - Quels sont les modèles linguistiques pris en charge ?
vLLM, Whisper, etc. intégrés pour une meilleure intégration du modèle Hugging Face par le biais des Transformers.
© déclaration de droits d'auteur
Article copyright Cercle de partage de l'IA Tous, prière de ne pas reproduire sans autorisation.
Articles connexes
Pas de commentaires...