はじめに
Aana SDKはMobius Labsが開発したオープンソースのフレームワークで、マラヤーラム語の「ആന」(象)にちなんで名付けられた。Aana SDKはRay分散コンピューティングフレームワークに基づいており、信頼性、拡張性、効率性を考慮して設計されています。開発者はこのSDKを使用して、ビデオ転写、画像説明、スマートチャットツールなど、スタンドアロンからクラスタ化されたアプリケーションを簡単に構築することができます。
機能一覧
- マルチモーダルデータのサポート:テキスト、画像、音声、動画を同時に処理する能力。
- モデルのデプロイとスケーリング:機械学習モデルは、1台のマシン上でもクラスタ上でもデプロイできる。
- 自動生成API:定義されたエンドポイントに基づいてAPIを自動的に作成し、検証します。
- リアルタイム・ストリーミング出力:リアルタイム・アプリケーションや大規模言語モデルのストリーミング結果をサポート。
- 定義済みデータ型:画像、ビデオなどの一般的なデータ型をビルトインでサポート。
- バックグラウンド・タスク・キュー:エンドポイント・タスクは、追加設定なしにバックグラウンドで自動的に実行される。
- 複数のモデルの統合:ウィスパー、vLLM、ハギング・フェイス・トランスフォーマーなどをサポート。
- ドキュメントの自動生成:エンドポイントに基づいてアプリケーションのドキュメントを自動的に生成します。
ヘルプの使用
設置プロセス
Aana SDKをインストールするには、PyPIとGitHubの2つの方法があります:
- 環境を整える
- Python 3.8以降が必要。
- PyTorch (>= 2.1)を手動でインストールすることを推奨します。 https://pytorch.org/get-started/locally/).そうしないと、デフォルトのインストールではGPUをフルに活用できない可能性があります。
- GPUを使用している場合は、パフォーマンスを向上させるためにフラッシュ・アテンション・ライブラリをインストールすることをお勧めします。 https://github.com/Dao-AILab/flash-attention).
- PyPI経由でのインストール
- 以下のコマンドを実行して、コアの依存関係をインストールする:
pip install aana
- すべての機能を使用するには、追加の依存関係をすべてインストールしてください:
pip install aana[all]
- その他のオプション
vllm
(言語モデリング)、asr
(音声認識)、transformers
(コンバーターモデル)など、必要に応じて。
- 以下のコマンドを実行して、コアの依存関係をインストールする:
- 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
- クローン倉庫
- インストールの確認
- 輸入
python -c "import aana; print(aana.__version__)"
バージョン番号が返されれば成功。
- 輸入
使用方法
Aana SDKの中心はDeploymentsとEndpointsです。Deploymentsはモデルをロードし、Endpointsは機能を定義します。以下はビデオ転写の例です:
- 新しいアプリケーションの作成
- 新しいフォルダ(例
my_app
)を作成する。app.py
. - 紹介可能なテンプレート https://github.com/mobiusml/aana_app_template クイックスタート
- 新しいフォルダ(例
- コンフィギュレーションの展開
- ある
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") ) )
- ある
- エンドポイントの定義
- 転写エンドポイントを追加する:
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}
- 転写エンドポイントを追加する:
- アプリケーションの実行
- ターミナルで実行:
python app.py serve
- またはAana CLIを使用します:
aana deploy app:app --host 127.0.0.1 --port 8000
- アプリケーションが起動すると、デフォルトのアドレスは
http://127.0.0.1:8000
.
- ターミナルで実行:
- テスト機能
- 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
) テスト。
- cURLを使用してリクエストを送信する:
注目の機能操作
- マルチモーダル処理
音声の書き起こしに加え、画像モデル(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/。
アプリケーションシナリオ
- ビデオ・コンテンツの照合
指導ビデオの字幕や要約を作成し、アーカイブや検索を容易にします。 - インテリジェント質疑応答システム(Q&A)
ユーザーがビデオをアップロードし、質問をすると、システムが音声とビデオの内容に基づいて回答する。 - 企業データ分析
会議の録画やビデオから重要な情報を抽出し、レポートを作成します。
品質保証
- GPUが必要ですか?
GPUは必須ではなく、CPUでも動作するが、GPU(40GBのRAMを推奨)は効率を大幅に向上させる。 - インストール・エラーにはどう対処すればよいですか?
Pythonのバージョンと依存関係の一致をチェックするには--log-level DEBUG
詳細なログを見る - どのような言語モデルに対応していますか?
vLLM、Whisperなどを内蔵し、Transformersを通じてより多くのHugging Faceモデルを統合。