AI个人学习
和实操指南
豆包Marscode1

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

综合介绍

Aana SDK 是一个开源框架,由 Mobius Labs 开发,名字源于马拉雅拉姆语“ആന”(大象)。它帮助开发者快速部署和管理多模态 AI 模型,支持处理文本、图像、音频和视频等多种数据。Aana SDK 基于 Ray 分布式计算框架,设计上注重可靠性、可扩展性和效率。开发者可以用它轻松构建从单机到集群的应用,比如视频转录、图像描述或智能聊天工具。

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


 

功能列表

  • 支持多模态数据:能同时处理文本、图像、音频和视频。
  • 模型部署与扩展:可在单机或集群上部署机器学习模型。
  • 自动生成 API:根据定义的端点自动创建并验证 API。
  • 实时流式输出:支持实时应用和大语言模型的流式结果。
  • 预定义数据类型:内置图像、视频等常用数据类型支持。
  • 后台任务队列:端点任务自动后台运行,无需额外配置。
  • 集成多种模型:支持 Whisper、vLLM、Hugging Face Transformers 等。
  • 文档自动生成:根据端点自动生成应用文档。

 

使用帮助

安装流程

Aana SDK 的安装分为 PyPI 和 GitHub 两种方式,以下是详细步骤:

  1. 准备环境
  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)。部署加载模型,端点定义功能。以下以视频转录为例说明:

  1. 创建新应用
  2. 配置部署
    • 在 app.py 中加载 Whisper 模型:
      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
    
  • 集群扩展
    用 Ray 集群部署,修改 app.connect() 指定集群地址即可。

额外工具

  • Ray Dashboard:运行后访问 http://127.0.0.1:8265,查看集群状态和日志。
  • Docker 部署:见 https://mobiusml.github.io/aana_sdk/pages/docker/。

 

应用场景

  1. 视频内容整理
    为教学视频生成字幕和摘要,方便存档和搜索。
  2. 智能问答系统
    用户上传视频后提问,系统基于音视频内容回答。
  3. 企业数据分析
    从会议录音和视频中提取关键信息,生成报告。

 

QA

  1. 需要 GPU 吗?
    不强制要求。CPU 也能运行,但 GPU(建议 40GB 显存)会大幅提升效率。
  2. 如何处理安装错误?
    检查 Python 版本和依赖是否匹配,运行时加 --log-level DEBUG 查看详细日志。
  3. 支持哪些语言模型?
    内置 vLLM、Whisper 等,可通过 Transformers 集成更多 Hugging Face 模型。
未经允许不得转载:首席AI分享圈 » Aana SDK:简易部署多模态AI模型的开源工具
zh_CN简体中文