AIパーソナル・ラーニング
と実践的なガイダンス
讯飞绘镜

Aana SDK: マルチモーダルAIモデルを簡単に導入できるオープンソースツール

はじめに

Aana SDKはMobius Labsが開発したオープンソースのフレームワークで、マラヤーラム語の「ആന」(象)にちなんで名付けられた。Aana SDKはRay分散コンピューティングフレームワークに基づいており、信頼性、拡張性、効率性を考慮して設計されています。開発者はこのSDKを使用して、ビデオ転写、画像説明、スマートチャットツールなど、スタンドアロンからクラスタ化されたアプリケーションを簡単に構築することができます。

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


 

機能一覧

  • マルチモーダルデータのサポート:テキスト、画像、音声、動画を同時に処理する能力。
  • モデルのデプロイとスケーリング:機械学習モデルは、1台のマシン上でもクラスタ上でもデプロイできる。
  • 自動生成API:定義されたエンドポイントに基づいてAPIを自動的に作成し、検証します。
  • リアルタイム・ストリーミング出力:リアルタイム・アプリケーションや大規模言語モデルのストリーミング結果をサポート。
  • 定義済みデータ型:画像、ビデオなどの一般的なデータ型をビルトインでサポート。
  • バックグラウンド・タスク・キュー:エンドポイント・タスクは、追加設定なしにバックグラウンドで自動的に実行される。
  • 複数のモデルの統合:ウィスパー、vLLM、ハギング・フェイス・トランスフォーマーなどをサポート。
  • ドキュメントの自動生成:エンドポイントに基づいてアプリケーションのドキュメントを自動的に生成します。

 

ヘルプの使用

設置プロセス

Aana SDKをインストールするには、PyPIとGitHubの2つの方法があります:

  1. 環境を整える
    • Python 3.8以降が必要。
    • PyTorch (>= 2.1)を手動でインストールすることを推奨します。 https://pytorch.org/get-started/locally/).そうしないと、デフォルトのインストールではGPUをフルに活用できない可能性があります。
    • GPUを使用している場合は、パフォーマンスを向上させるためにフラッシュ・アテンション・ライブラリをインストールすることをお勧めします。 https://github.com/Dao-AILab/flash-attention).
  2. PyPI経由でのインストール
    • 以下のコマンドを実行して、コアの依存関係をインストールする:
      pip install aana
      
    • すべての機能を使用するには、追加の依存関係をすべてインストールしてください:
      pip install aana[all]
      
    • その他のオプション vllm(言語モデリング)、asr(音声認識)、transformers(コンバーターモデル)など、必要に応じて。
  3. GitHub経由でのインストール
    • クローン倉庫
      git clone https://github.com/mobiusml/aana_sdk.git
      cd aana_sdk
      
    • Poetryを使ってインストールする(Poetry >= 2.0推奨、https://python-poetry.org/docs/#installation を参照):
      poetry install --extras all
      
    • 開発環境はテストの依存関係を追加できる:
      poetry install --extras all --with dev,tests
      
  4. インストールの確認
    • 輸入 python -c "import aana; print(aana.__version__)"バージョン番号が返されれば成功。

使用方法

Aana SDKの中心はDeploymentsとEndpointsです。Deploymentsはモデルをロードし、Endpointsは機能を定義します。以下はビデオ転写の例です:

  1. 新しいアプリケーションの作成
  2. コンフィギュレーションの展開
    • ある app.py ローディング ウィスパー モデル
      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. エンドポイントの定義
    • 転写エンドポイントを追加する:
      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. アプリケーションの実行
    • ターミナルで実行:
      python app.py serve
      
    • またはAana CLIを使用します:
      aana deploy app:app --host 127.0.0.1 --port 8000
      
    • アプリケーションが起動すると、デフォルトのアドレスは http://127.0.0.1:8000.
  5. テスト機能
    • cURLを使用してリクエストを送信する:
      curl -X POST http://127.0.0.1:8000/transcribe_video -F body='{"url":"https://www.youtube.com/watch?v=VhJFyyukAzA"}'
      
    • または、Swagger UI (http://127.0.0.1:8000/docs) テスト。

注目の機能操作

  • マルチモーダル処理
    音声の書き起こしに加え、画像モデル(Blip2など)を統合して説明文を生成することもできる:

    captions = await self.blip2.generate_captions(video.frames)
  • ストリーミング出力
    例えば、リアルタイムでの結果返却をサポート:

    @app.aana_endpoint(name="chat", streaming=True)
    async def chat(self, question: str):
    async for chunk in self.llm.generate_stream(question):
    yield chunk
    
  • クラスター・エクステンション
    レイ・クラスターでデプロイするには app.connect() クラスタのアドレスを指定するだけだ。

追加ツール

  • レイ・ダッシュボード走行後のアクセス http://127.0.0.1:8265クラスタのステータスとログを表示します。
  • Dockerのデプロイメントhttps://mobiusml.github.io/aana_sdk/pages/docker/。

 

アプリケーションシナリオ

  1. ビデオ・コンテンツの照合
    指導ビデオの字幕や要約を作成し、アーカイブや検索を容易にします。
  2. インテリジェント質疑応答システム(Q&A)
    ユーザーがビデオをアップロードし、質問をすると、システムが音声とビデオの内容に基づいて回答する。
  3. 企業データ分析
    会議の録画やビデオから重要な情報を抽出し、レポートを作成します。

 

品質保証

  1. GPUが必要ですか?
    GPUは必須ではなく、CPUでも動作するが、GPU(40GBのRAMを推奨)は効率を大幅に向上させる。
  2. インストール・エラーにはどう対処すればよいですか?
    Pythonのバージョンと依存関係の一致をチェックするには --log-level DEBUG 詳細なログを見る
  3. どのような言語モデルに対応していますか?
    vLLM、Whisperなどを内蔵し、Transformersを通じてより多くのHugging Faceモデルを統合。
無断転載を禁じます:チーフAIシェアリングサークル " Aana SDK: マルチモーダルAIモデルを簡単に導入できるオープンソースツール
ja日本語