Aprendizagem pessoal com IA
e orientação prática
豆包Marscode1

Aana SDK: uma ferramenta de código aberto para facilitar a implantação de modelos de IA multimodais

Introdução geral

O Aana SDK é uma estrutura de código aberto desenvolvida pela Mobius Labs, batizada com o nome da palavra malaiala "ആന" (elefante). Ele ajuda os desenvolvedores a implementar e gerenciar rapidamente modelos de IA multimodais que suportam o processamento de texto, imagens, áudio e vídeo, entre outros dados. O Aana SDK é baseado na estrutura de computação distribuída Ray e foi projetado para oferecer confiabilidade, escalabilidade e eficiência. Os desenvolvedores podem usá-lo para criar facilmente aplicativos, desde autônomos até agrupados, como transcrição de vídeo, descrição de imagens ou ferramentas de bate-papo inteligentes.

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


 

Lista de funções

  • Suporte a dados multimodais: a capacidade de processar texto, imagens, áudio e vídeo simultaneamente.
  • Implementação e dimensionamento de modelos: os modelos de aprendizado de máquina podem ser implementados em uma única máquina ou em um cluster.
  • APIs geradas automaticamente: crie e valide automaticamente as APIs com base em pontos de extremidade definidos.
  • Saída de streaming em tempo real: suporta resultados de streaming para aplicativos em tempo real e grandes modelos de linguagem.
  • Tipos de dados predefinidos: suporte integrado para tipos de dados comuns, como imagem, vídeo, etc.
  • Fila de tarefas em segundo plano: as tarefas de endpoint são executadas automaticamente em segundo plano sem configuração adicional.
  • Integração de vários modelos: Whisper, vLLM, Hugging Face Transformers, etc. são suportados.
  • Geração automática de documentação: gere automaticamente a documentação do aplicativo com base nos pontos de extremidade.

 

Usando a Ajuda

Processo de instalação

Há duas maneiras de instalar o SDK da Aana: PyPI e GitHub. Veja a seguir as etapas:

  1. Preparação do ambiente
    • Requer Python 3.8 ou posterior.
    • Recomenda-se instalar o PyTorch manualmente (>= 2.1), escolhendo a versão apropriada para seu sistema (consulte https://pytorch.org/get-started/locally/). Caso contrário, a instalação padrão poderá não tirar o máximo proveito da GPU.
    • Se você estiver usando uma GPU, é recomendável instalar a biblioteca Flash Attention para melhorar o desempenho (consulte https://github.com/Dao-AILab/flash-attention).
  2. Instalação via PyPI
    • Execute o seguinte comando para instalar as dependências do núcleo:
      pip install aana
      
    • Para obter funcionalidade total, instale todas as dependências adicionais:
      pip install aana[all]
      
    • Outras opções incluem vllm(Modelagem de linguagem),asr(reconhecimento de fala),transformers(modelo de conversor), etc., conforme necessário.
  3. Instalação via GitHub
    • Armazém de Clonagem:
      git clone https://github.com/mobiusml/aana_sdk.git
      cd aana_sdk
      
    • Instale usando o Poetry (recomenda-se o Poetry >= 2.0, consulte https://python-poetry.org/docs/#installation):
      poetry install --extras all
      
    • Os ambientes de desenvolvimento podem adicionar dependências de teste:
      poetry install --extras all --with dev,tests
      
  4. Verificar a instalação
    • importação python -c "import aana; print(aana.__version__)"Se o número da versão for retornado, ele será bem-sucedido.

Como usar

No centro do SDK da Aana estão as implantações e os pontos de extremidade. As implantações carregam o modelo e os pontos de extremidade definem a funcionalidade. A seguir, um exemplo de transcrição de vídeo:

  1. Criação de um novo aplicativo
  2. Implementação da configuração
    • existir app.py Carregamento Sussurro Modelos:
      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. Definição de pontos de extremidade
    • Adicionar pontos finais de transcrição:
      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. Executar o aplicativo
    • É executado no terminal:
      python app.py serve
      
    • ou com a CLI da Aana:
      aana deploy app:app --host 127.0.0.1 --port 8000
      
    • Quando o aplicativo é iniciado, o endereço padrão é http://127.0.0.1:8000.
  5. função de teste
    • Envia uma solicitação usando cURL:
      curl -X POST http://127.0.0.1:8000/transcribe_video -F body='{"url":"https://www.youtube.com/watch?v=VhJFyyukAzA"}'
      
    • Ou visite a interface do usuário do Swagger (http://127.0.0.1:8000/docs) Testes.

Operação da função em destaque

  • processamento multimodal
    Além da transcrição da fala, os modelos de imagem (por exemplo, Blip2) podem ser integrados para gerar descrições:

    captions = await self.blip2.generate_captions(video.frames)
  • saída de streaming
    Oferece suporte ao retorno de resultados em tempo real, por exemplo:

    @app.aana_endpoint(name="chat", streaming=True)
    async def chat(self, question: str):
    async for chunk in self.llm.generate_stream(question):
    yield chunk
    
  • Extensão do cluster
    Para implementar com um cluster Ray, modifique o app.connect() Basta especificar o endereço do cluster.

Ferramentas adicionais

  • Painel de controle do RayAcesso pós-corrida http://127.0.0.1:8265Visualize o status e os registros do cluster.
  • Implementação do Docker: Consulte https://mobiusml.github.io/aana_sdk/pages/docker/.

 

cenário do aplicativo

  1. Agrupamento de conteúdo de vídeo
    Gerar legendas e resumos para vídeos instrucionais para facilitar o arquivamento e a pesquisa.
  2. Sistema inteligente de perguntas e respostas (Q&A)
    O usuário faz upload de um vídeo e, em seguida, faz uma pergunta, e o sistema responde com base no conteúdo de áudio e vídeo.
  3. Análise de dados corporativos
    Extraia informações importantes de gravações de reuniões e vídeos para gerar relatórios.

 

QA

  1. Precisa de uma GPU?
    Não é obrigatório; a CPU também pode executá-lo, mas a GPU (recomenda-se 40 GB de RAM) aumentará significativamente a eficiência.
  2. Como faço para lidar com erros de instalação?
    Verifique se há correspondências de versão e dependência do Python adicionando o parâmetro --log-level DEBUG Veja os registros detalhados.
  3. Quais modelos de idioma são compatíveis?
    vLLM, Whisper, etc. incorporados para maior integração do modelo Hugging Face por meio de Transformers.
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " Aana SDK: uma ferramenta de código aberto para facilitar a implantação de modelos de IA multimodais
pt_BRPortuguês do Brasil