AI Personal Learning
und praktische Anleitung
讯飞绘镜

Aana SDK: Ein Open-Source-Tool für den einfachen Einsatz von multimodalen KI-Modellen

Allgemeine Einführung

Aana SDK ist ein von Mobius Labs entwickeltes Open-Source-Framework, benannt nach dem Malayalam-Wort "ആന" (Elefant). Es hilft Entwicklern bei der schnellen Bereitstellung und Verwaltung multimodaler KI-Modelle, die unter anderem die Verarbeitung von Text, Bildern, Audio und Video unterstützen.Aana SDK basiert auf dem Ray-Framework für verteiltes Rechnen und ist auf Zuverlässigkeit, Skalierbarkeit und Effizienz ausgelegt. Entwickler können damit auf einfache Weise Anwendungen von Standalone- bis hin zu Cluster-Anwendungen erstellen, wie z. B. Videotranskription, Bildbeschreibung oder intelligente Chat-Tools.

Aana SDK:简易部署多模态AI模型的开源工具-1


 

Funktionsliste

  • Unterstützung für multimodale Daten: die Fähigkeit, Text, Bilder, Audio und Video gleichzeitig zu verarbeiten.
  • Modellbereitstellung und Skalierung: Modelle für maschinelles Lernen können auf einer einzelnen Maschine oder in einem Cluster bereitgestellt werden.
  • Automatisch generierte APIs: Automatisches Erstellen und Validieren von APIs auf der Grundlage definierter Endpunkte.
  • Streaming-Ausgabe in Echtzeit: unterstützt Streaming-Ergebnisse für Echtzeitanwendungen und große Sprachmodelle.
  • Vordefinierte Datentypen: Integrierte Unterstützung für gängige Datentypen wie Bild, Video usw.
  • Warteschlange für Hintergrundaufgaben: Endpunktaufgaben laufen automatisch im Hintergrund ohne zusätzliche Konfiguration.
  • Integration mehrerer Modelle: Whisper, vLLM, Hugging Face Transformers, etc. werden unterstützt.
  • Automatische Dokumentationserstellung: Automatische Erstellung von Anwendungsdokumentation auf der Grundlage von Endpunkten.

 

Hilfe verwenden

Einbauverfahren

Es gibt zwei Möglichkeiten, Aana SDK zu installieren, PyPI und GitHub, hier sind die Schritte:

  1. Vorbereiten der Umgebung
    • Benötigt Python 3.8 oder höher.
    • Es wird empfohlen, PyTorch manuell zu installieren (>= 2.1) und dabei die passende Version für Ihr System zu wählen (siehe https://pytorch.org/get-started/locally/). Andernfalls kann es sein, dass die Standardinstallation die Vorteile des Grafikprozessors nicht voll ausschöpft.
    • Wenn Sie einen Grafikprozessor verwenden, empfiehlt es sich, die Flash Attention Bibliothek zu installieren, um die Leistung zu verbessern (siehe https://github.com/Dao-AILab/flash-attention).
  2. Installation über PyPI
    • Führen Sie den folgenden Befehl aus, um die Kernabhängigkeiten zu installieren:
      pip install aana
      
    • Installieren Sie alle zusätzlichen Abhängigkeiten, um die volle Funktionalität zu gewährleisten:
      pip install aana[all]
      
    • Weitere Optionen sind vllm(Sprachmodellierung),asr(Spracherkennung),transformers(Wandlermodell), usw., je nach Bedarf.
  3. Installation über GitHub
    • Klon-Lagerhaus:
      git clone https://github.com/mobiusml/aana_sdk.git
      cd aana_sdk
      
    • Installation mit Poetry (Poetry >= 2.0 empfohlen, siehe https://python-poetry.org/docs/#installation):
      poetry install --extras all
      
    • Entwicklungsumgebungen können Testabhängigkeiten hinzufügen:
      poetry install --extras all --with dev,tests
      
  4. Überprüfen der Installation
    • Einfuhr python -c "import aana; print(aana.__version__)"Wenn die Versionsnummer zurückgegeben wird, ist der Vorgang erfolgreich.

Wie zu verwenden

Das Herzstück des Aana SDK sind Deployments und Endpoints. Deployments laden das Modell und Endpunkte definieren die Funktionalität. Im Folgenden finden Sie ein Beispiel für die Videotranskription:

  1. Erstellen einer neuen Anwendung
  2. Bereitstellung der Konfiguration
    • existieren app.py Laden Flüstern Modelle:
      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")
      )
      )
      
  3. Definieren von Endpunkten
    • Transkriptionsendpunkte hinzufügen:
      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}
      
  4. Ausführen der Anwendung
    • Läuft im Terminal:
      python app.py serve
      
    • oder mit der Aana CLI:
      aana deploy app:app --host 127.0.0.1 --port 8000
      
    • Wenn die Anwendung startet, lautet die Standardadresse http://127.0.0.1:8000.
  5. Testfunktion
    • Sendet eine Anfrage mit cURL:
      curl -X POST http://127.0.0.1:8000/transcribe_video -F body='{"url":"https://www.youtube.com/watch?v=VhJFyyukAzA"}'
      
    • Oder besuchen Sie die Swagger-Benutzeroberfläche (http://127.0.0.1:8000/docs) Prüfung.

Featured Function Bedienung

  • multimodale Verarbeitung
    Neben der Sprachtranskription können auch Bildmodelle (z.B. Blip2) integriert werden, um Beschreibungen zu generieren:

    captions = await self.blip2.generate_captions(video.frames)
  • Streaming-Ausgang
    Unterstützt die Rückgabe von Ergebnissen in Echtzeit, zum Beispiel:

    @app.aana_endpoint(name="chat", streaming=True)
    async def chat(self, question: str):
    async for chunk in self.llm.generate_stream(question):
    yield chunk
    
  • Cluster-Erweiterung
    Um mit einem Ray-Cluster zu arbeiten, ändern Sie die app.connect() Geben Sie einfach die Adresse des Clusters an.

Zusätzliche Tools

  • Strahlen DashboardPost-Run-Zugang http://127.0.0.1:8265können Sie den Cluster-Status und die Protokolle einsehen.
  • Docker-Bereitstellung: Siehe https://mobiusml.github.io/aana_sdk/pages/docker/.

 

Anwendungsszenario

  1. Zusammenstellung von Videoinhalten
    Generieren Sie Untertitel und Zusammenfassungen für Lehrvideos zur einfachen Archivierung und Suche.
  2. intelligentes Frage- und Antwortsystem (Q&A)
    Der Nutzer lädt ein Video hoch und stellt dann eine Frage, die das System auf der Grundlage des Audio- und Videoinhalts beantwortet.
  3. Analyse von Unternehmensdaten
    Extrahieren Sie Schlüsselinformationen aus Meeting-Aufzeichnungen und Videos, um Berichte zu erstellen.

 

QA

  1. Brauchen Sie eine GPU?
    Es ist nicht zwingend erforderlich; die CPU kann es auch ausführen, aber die GPU (40 GB RAM empfohlen) wird die Effizienz erheblich verbessern.
  2. Wie gehe ich mit Installationsfehlern um?
    Prüfen Sie, ob die Python-Version und die Abhängigkeiten übereinstimmen, indem Sie die --log-level DEBUG Detaillierte Protokolle anzeigen.
  3. Welche Sprachmodelle werden unterstützt?
    Eingebautes vLLM, Whisper, etc. für mehr Integration von Hugging Face Modellen durch Transformers.
Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " Aana SDK: Ein Open-Source-Tool für den einfachen Einsatz von multimodalen KI-Modellen
de_DEDeutsch