Aana SDK: una herramienta de código abierto para facilitar el despliegue de modelos multimodales de IA

Introducción general

Aana SDK es un marco de código abierto desarrollado por Mobius Labs, que toma su nombre de la palabra malayalam "ആന" (elefante). Ayuda a los desarrolladores a desplegar y gestionar rápidamente modelos de IA multimodal que admiten el procesamiento de texto, imágenes, audio y vídeo, etc. Basado en el marco de computación distribuida Ray, el SDK de Aana está diseñado para ofrecer fiabilidad, escalabilidad y eficiencia. Los desarrolladores pueden utilizarlo para crear fácilmente aplicaciones desde autónomas hasta agrupadas, como transcripción de vídeo, descripción de imágenes o herramientas de chat inteligente.

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

 

Lista de funciones

  • Soporte para datos multimodales: capacidad para procesar texto, imágenes, audio y vídeo simultáneamente.
  • Despliegue y escalado de modelos: los modelos de aprendizaje automático pueden desplegarse en una sola máquina o en un clúster.
  • API autogeneradas: cree y valide automáticamente API basadas en puntos finales definidos.
  • Salida de flujo en tiempo real: admite resultados de flujo para aplicaciones en tiempo real y modelos lingüísticos de gran tamaño.
  • Tipos de datos predefinidos: compatibilidad integrada con tipos de datos comunes como imagen, vídeo, etc.
  • Cola de tareas en segundo plano: las tareas de los extremos se ejecutan automáticamente en segundo plano sin configuración adicional.
  • Integración de múltiples modelos: se admiten Whisper, vLLM, Hugging Face Transformers, etc.
  • Generación automática de documentación: genere automáticamente la documentación de la aplicación en función de los puntos finales.

 

Utilizar la ayuda

Proceso de instalación

Hay dos maneras de instalar Aana SDK, PyPI y GitHub, aquí están los pasos:

  1. Preparar el entorno
    • Requiere Python 3.8 o posterior.
    • Se recomienda instalar PyTorch manualmente (>= 2.1), eligiendo la versión adecuada para su sistema (véase https://pytorch.org/get-started/locally/). De lo contrario, es posible que la instalación por defecto no aproveche al máximo la GPU.
    • Si utiliza una GPU, se recomienda instalar la biblioteca Flash Attention para mejorar el rendimiento (consulte https://github.com/Dao-AILab/flash-attention).
  2. Instalación a través de PyPI
    • Ejecute el siguiente comando para instalar las dependencias del núcleo:
      pip install aana
      
    • Para una funcionalidad completa, instale todas las dependencias adicionales:
      pip install aana[all]
      
    • Otras opciones son vllm(Modelización del lenguaje),asr(reconocimiento de voz),transformers(modelo de convertidor), etc., según sea necesario.
  3. Instalación a través de GitHub
    • Almacén de clonación:
      git clone https://github.com/mobiusml/aana_sdk.git
      cd aana_sdk
      
    • Realice la instalación con Poetry (se recomienda Poetry >= 2.0, consulte https://python-poetry.org/docs/#installation):
      poetry install --extras all
      
    • Los entornos de desarrollo pueden añadir dependencias de prueba:
      poetry install --extras all --with dev,tests
      
  4. Verificar la instalación
    • importación python -c "import aana; print(aana.__version__)"Si se devuelve el número de versión, tiene éxito.

Cómo utilizarlo

En el corazón del SDK de Aana están los Despliegues y los Puntos Finales. Los Deployments cargan el modelo y los Endpoints definen la funcionalidad. El siguiente es un ejemplo de transcripción de vídeo:

  1. Crear una nueva aplicación
  2. Despliegue de la configuración
    • existe app.py Cargando Susurro 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. Definición de puntos finales
    • Añadir puntos finales de transcripción:
      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. Ejecutar la aplicación
    • Se ejecuta en el terminal:
      python app.py serve
      
    • o con la CLI de Aana:
      aana deploy app:app --host 127.0.0.1 --port 8000
      
    • Cuando se inicia la aplicación, la dirección por defecto es http://127.0.0.1:8000.
  5. función de prueba
    • Envía una petición utilizando cURL:
      curl -X POST http://127.0.0.1:8000/transcribe_video -F body='{"url":"https://www.youtube.com/watch?v=VhJFyyukAzA"}'
      
    • O visite la interfaz de usuario de Swagger (http://127.0.0.1:8000/docs) Pruebas.

Función destacada Operación

  • procesamiento multimodal
    Además de la transcripción del habla, se pueden integrar modelos de imagen (por ejemplo, Blip2) para generar descripciones:

    captions = await self.blip2.generate_captions(video.frames)
  • salida de streaming
    Admite la devolución de resultados en tiempo real, por ejemplo:

    @app.aana_endpoint(name="chat", streaming=True)
    async def chat(self, question: str):
    async for chunk in self.llm.generate_stream(question):
    yield chunk
    
  • Ampliación del clúster
    Para desplegar con un clúster Ray, modifique el archivo app.connect() Basta con especificar la dirección del clúster.

Herramientas adicionales

  • Cuadro de mandos de RayAcceso después de la carrera http://127.0.0.1:8265Ver el estado y los registros del clúster.
  • Despliegue de Docker: Ver https://mobiusml.github.io/aana_sdk/pages/docker/.

 

escenario de aplicación

  1. Recopilación de contenidos de vídeo
    Genere subtítulos y resúmenes para los vídeos de instrucciones para facilitar su archivo y búsqueda.
  2. sistema inteligente de preguntas y respuestas (Q&A)
    El usuario sube un vídeo y luego hace una pregunta, y el sistema responde basándose en el contenido de audio y vídeo.
  3. Análisis de datos empresariales
    Extraiga información clave de grabaciones y vídeos de reuniones para generar informes.

 

CONTROL DE CALIDAD

  1. ¿Necesita una GPU?
    No es obligatorio; la CPU también puede ejecutarlo, pero la GPU (se recomiendan 40 GB de RAM) mejorará notablemente la eficiencia.
  2. ¿Cómo se gestionan los errores de instalación?
    Compruebe si la versión de Python y las dependencias coinciden añadiendo la directiva --log-level DEBUG Ver registros detallados.
  3. ¿Qué modelos lingüísticos son compatibles?
    Incorpora vLLM, Whisper, etc. para una mayor integración del modelo Hugging Face a través de Transformers.
© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...