Aana SDK: инструмент с открытым исходным кодом для простого развертывания мультимодальных моделей ИИ

Общее введение

Aana SDK - это фреймворк с открытым исходным кодом, разработанный компанией Mobius Labs и названный в честь малаяламского слова "ആന" (слон). Он помогает разработчикам быстро развертывать и управлять мультимодальными моделями ИИ, которые поддерживают обработку текста, изображений, аудио и видео, а также других данных. Aana SDK основан на фреймворке распределенных вычислений Ray и разработан для обеспечения надежности, масштабируемости и эффективности. Разработчики могут использовать его для создания приложений от автономных до кластерных, таких как транскрипция видео, описание изображений или интеллектуальные чаты.

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

 

Список функций

  • Поддержка мультимодальных данных: возможность одновременной обработки текста, изображений, аудио и видео.
  • Развертывание и масштабирование моделей: модели машинного обучения могут быть развернуты на одной машине или на кластере.
  • Автоматически генерируемые API: автоматическое создание и проверка API на основе заданных конечных точек.
  • Потоковый вывод в реальном времени: поддержка потоковых результатов для приложений, работающих в реальном времени, и больших языковых моделей.
  • Предопределенные типы данных: встроенная поддержка распространенных типов данных, таких как изображения, видео и т. д.
  • Фоновая очередь задач: задачи конечной точки запускаются автоматически в фоновом режиме без дополнительной настройки.
  • Поддерживается интеграция нескольких моделей: Whisper, vLLM, Hugging Face Transformers и т.д.
  • Автоматическая генерация документации: автоматическая генерация документации приложения на основе конечных точек.

 

Использование помощи

Процесс установки

Есть два способа установить Aana SDK - PyPI и GitHub, вот шаги:

  1. Подготовка среды
    • Требуется Python 3.8 или более поздняя версия.
    • Рекомендуется установить PyTorch вручную (>= 2.1), выбрав подходящую версию для вашей системы (см. https://pytorch.org/get-started/locally/). В противном случае установка по умолчанию может не использовать все преимущества GPU.
    • Если вы используете графический процессор, рекомендуется установить библиотеку Flash Attention для повышения производительности (см. 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 лежат развертывания и конечные точки. Развертывания загружают модель, а конечные точки определяют функциональность. Ниже приведен пример транскрипции видео:

  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 (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: Доступ после бега http://127.0.0.1:8265Просмотр состояния кластера и журналов.
  • Развертывание Docker: См. https://mobiusml.github.io/aana_sdk/pages/docker/.

 

сценарий применения

  1. Составление видеоматериалов
    Создавайте субтитры и резюме к учебным видео для удобства архивирования и поиска.
  2. интеллектуальная система вопросов и ответов (Q&A)
    Пользователь загружает видео, затем задает вопрос, а система отвечает на него, основываясь на аудио- и видеоматериалах.
  3. Аналитика корпоративных данных
    Извлекайте ключевую информацию из записей совещаний и видеозаписей для создания отчетов.

 

QA

  1. Нужен графический процессор?
    Это не обязательно, процессор тоже может работать, но GPU (рекомендуется 40 Гб оперативной памяти) значительно повысит эффективность.
  2. Как справиться с ошибками установки?
    Проверьте соответствие версии Python и зависимостей, добавив --log-level DEBUG Просмотр подробных журналов.
  3. Какие языковые модели поддерживаются?
    Встроенные vLLM, Whisper и т.д. для большей интеграции модели Hugging Face через трансформеры.
© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...