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

Список функций
- Поддержка мультимодальных данных: возможность одновременной обработки текста, изображений, аудио и видео.
- Развертывание и масштабирование моделей: модели машинного обучения могут быть развернуты на одной машине или на кластере.
- Автоматически генерируемые API: автоматическое создание и проверка API на основе заданных конечных точек.
- Потоковый вывод в реальном времени: поддержка потоковых результатов для приложений, работающих в реальном времени, и больших языковых моделей.
- Предопределенные типы данных: встроенная поддержка распространенных типов данных, таких как изображения, видео и т. д.
- Фоновая очередь задач: задачи конечной точки запускаются автоматически в фоновом режиме без дополнительной настройки.
- Поддерживается интеграция нескольких моделей: Whisper, vLLM, Hugging Face Transformers и т.д.
- Автоматическая генерация документации: автоматическая генерация документации приложения на основе конечных точек.
Использование помощи
Процесс установки
Есть два способа установить Aana SDK - PyPI и GitHub, вот шаги:
- Подготовка среды
- Требуется Python 3.8 или более поздняя версия.
- Рекомендуется установить PyTorch вручную (>= 2.1), выбрав подходящую версию для вашей системы (см. https://pytorch.org/get-started/locally/). В противном случае установка по умолчанию может не использовать все преимущества GPU.
- Если вы используете графический процессор, рекомендуется установить библиотеку Flash Attention для повышения производительности (см. 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 лежат развертывания и конечные точки. Развертывания загружают модель, а конечные точки определяют функциональность. Ниже приведен пример транскрипции видео:
- Создание нового приложения
- Новая папка (например.
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 (
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
- Расширение кластера
Чтобы развернуть кластер Ray, изменитеapp.connect()
Просто укажите адрес кластера.
Дополнительные инструменты
- Приборная панель Ray: Доступ после бега
http://127.0.0.1:8265
Просмотр состояния кластера и журналов. - Развертывание Docker: См. https://mobiusml.github.io/aana_sdk/pages/docker/.
сценарий применения
- Составление видеоматериалов
Создавайте субтитры и резюме к учебным видео для удобства архивирования и поиска. - интеллектуальная система вопросов и ответов (Q&A)
Пользователь загружает видео, затем задает вопрос, а система отвечает на него, основываясь на аудио- и видеоматериалах. - Аналитика корпоративных данных
Извлекайте ключевую информацию из записей совещаний и видеозаписей для создания отчетов.
QA
- Нужен графический процессор?
Это не обязательно, процессор тоже может работать, но GPU (рекомендуется 40 Гб оперативной памяти) значительно повысит эффективность. - Как справиться с ошибками установки?
Проверьте соответствие версии Python и зависимостей, добавив--log-level DEBUG
Просмотр подробных журналов. - Какие языковые модели поддерживаются?
Встроенные vLLM, Whisper и т.д. для большей интеграции модели Hugging Face через трансформеры.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...