Herramienta de chat GPT local y privada, que admite preguntas y respuestas sobre documentos, procesamiento de imágenes y videos, y otras funciones, con implementación 100% privada.
Descripción Detallada del Proyecto h2oGPT
Resumen del Proyecto
h2oGPT es un proyecto de código abierto desarrollado por H2O.ai, diseñado para proporcionar una experiencia de chat GPT local y completamente privada, que soporta múltiples funciones como preguntas y respuestas de documentos, procesamiento de imágenes y video, entre otras. El proyecto se basa en la licencia Apache V2, lo que garantiza a los usuarios una implementación y uso 100% privados.
Dirección del Proyecto: https://github.com/h2oai/h2ogpt
Dirección de Demostración: https://gpt.h2o.ai/
Características Principales
1. Capacidad de Procesamiento de Documentos
h2oGPT soporta bases de datos privadas y offline para diversos tipos de documentos, incluyendo PDF, Excel, Word, imágenes, fotogramas de video, YouTube, audio, código, texto, MarkDown, entre otros. Las características principales incluyen:
- Base de Datos Persistente: Uso de Chroma, Weaviate o FAISS en memoria para el almacenamiento de documentos
- Incrustaciones Precisas: Soporte para modelos de incrustación como instructor-large, all-MiniLM-L6-v2, entre otros
- Utilización Eficiente del Contexto: Uso de LLMs ajustados por instrucciones, sin necesidad del método few-shot de LangChain
- Procesamiento Paralelo: Resumen y extracción paralelos, el modelo LLaMa2 de 13B puede alcanzar una velocidad de salida de 80 tokens por segundo
- Tecnología HYDE: Tecnología de incrustación de documentos hipotéticos basada en la respuesta del LLM, que mejora la capacidad de recuperación
- Fragmentación Semántica: Mejor segmentación de documentos (requiere soporte de GPU)
2. Soporte de Modelos
h2oGPT soporta una variedad de modelos, incluyendo LLaMa2, Mistral, Falcon, Vicuna, WizardLM, entre otros, y tecnologías como AutoGPTQ, cuantificación de 4-bit/8-bit, LORA, etc.:
- Soporte de GPU: Modelos de HuggingFace y LLaMa.cpp GGML
- Soporte de CPU: Uso de modelos HF, LLaMa.cpp y GPT4ALL
- Mecanismo de Atención: Soporte para generación de cualquier longitud (LLaMa-2, Mistral, MPT, Pythia, Falcon, etc.)
3. Interfaz de Usuario
- Interfaz de Usuario Gradio: Ofrece una interfaz web intuitiva, con soporte para salida en streaming
- CLI (Interfaz de Línea de Comandos): Interfaz de línea de comandos, soporta procesamiento en streaming para todos los modelos
- Carga y Visualización de Documentos: Carga y visualización de documentos a través de la UI (soporta múltiples colecciones colaborativas o personales)
4. Capacidades Multimodales
Modelos Visuales
Soporte para modelos visuales como LLaVa, Claude-3, Gemini-Pro-Vision, GPT-4-Vision, entre otros
Generación de Imágenes
Soporte para modelos de generación de imágenes como Stable Diffusion (sdxl-turbo, sdxl, SD3), PlaygroundAI (playv2) y Flux, entre otros
Procesamiento de Voz
- STT (Voz a Texto): Uso de Whisper para conversión de audio en streaming
- TTS (Texto a Voz):
- Microsoft Speech T5 con licencia MIT, soporta múltiples voces y conversión de audio en streaming
- TTS con licencia MPL2, incluyendo clonación de voz y conversión de audio en streaming
- Control por Voz del Asistente de IA: Soporte para el modo de chat h2oGPT con control manos libres
5. Funcionalidades de Nivel Empresarial
Autenticación y Gestión de Estado
- Autenticación de UI: Autenticación mediante nombre de usuario/contraseña o Google OAuth
- Persistencia de Estado: Mantenimiento del estado en la UI mediante nombre de usuario/contraseña
- Integración con Open Web UI: Uso de h2oGPT como backend a través de un proxy de OpenAI
API e Integraciones
- API Compatible con OpenAI: h2oGPT puede funcionar como una alternativa al servidor de OpenAI
- Soporte para Servidores de Inferencia: Soporte para oLLaMa, servidores HF TGI, vLLM, Gradio, ExLLaMa, Replicate, Together.ai, OpenAI, Azure OpenAI, Anthropic, MistralAI, Google y Groq, entre otros
Funcionalidades de API de Proxy de Servidor
- Chat y completado de texto (en streaming y no en streaming)
- Transcripción de audio (STT)
- Generación de audio (TTS)
- Generación de imágenes
- Incrustaciones (Embeddings)
- Llamada a herramientas de función y selección automática de herramientas
- Agente de ejecución de código AutoGen
6. Funcionalidades Avanzadas
Modo JSON y Salida Estructurada
- Control Estricto del Esquema: Control estricto del esquema utilizando outlines a través de vLLM
- Soporte Multiplataforma: Soporte para control estricto del esquema en modelos de OpenAI, Anthropic, Google Gemini, MistralAI
- Modo JSON: Proporciona modo JSON para algunos modelos más antiguos de OpenAI o Gemini
Búsqueda Web y Agentes
- Integración de Búsqueda Web: Búsqueda web integrada con chat y preguntas y respuestas de documentos
- Agentes Inteligentes: Soporte para agentes de búsqueda, preguntas y respuestas de documentos, código Python, marcos CSV, entre otros
- Agentes de Alta Calidad: Provisión de agentes de alta calidad a través de un servidor proxy de OpenAI en un puerto independiente
- Agentes Prioritarios de Código: Generación de gráficos, investigación, evaluación de imágenes a través de modelos visuales, etc.
Evaluación del Rendimiento
- Modelos de Recompensa: Uso de modelos de recompensa para evaluar el rendimiento
- Garantía de Calidad: Mantenimiento de la calidad a través de más de 1000 pruebas unitarias y de integración (más de 24 horas de GPU)
Instalación y Despliegue
Método de Despliegue Recomendado
Se recomienda usar Docker para un despliegue con todas las funcionalidades en Linux, Windows y MAC. Soporte por plataforma:
- Docker: Funcionalidad completa en Linux, Windows, MAC
- Scripts de Linux: Funcionalidad completa
- Scripts de Windows y MAC: Funcionalidad relativamente limitada
Métodos de Instalación Soportados
- Construcción y ejecución con Docker: Para Linux, Windows, MAC
- Instalación y ejecución en Linux: Soporte nativo para Linux
- Scripts de instalación para Windows 10/11: Soporte para plataforma Windows
- Instalación y ejecución en MAC: Soporte para plataforma macOS
- Inicio rápido: Para cualquier plataforma
Especificaciones Técnicas
Requisitos de Hardware
- Soporte de GPU: CUDA, AutoGPTQ, exllama
- Soporte de CPU: Soporte para ejecución solo con CPU
- Optimización de memoria: Ofrece modo de baja memoria
Instalación Offline
- Soporte para instalación completamente offline
- Capacidad de procesamiento de documentos offline
- Despliegue de modelos locales
Desarrollo y Extensión
Entorno de Desarrollo
- Creación de un entorno de desarrollo para entrenamiento y generación siguiendo las instrucciones de instalación
- Soporte para el ajuste fino de cualquier modelo LLM con datos personalizados
- Provisión de un conjunto completo de pruebas
Pruebas
pip install requirements-parser pytest-instafail pytest-random-order playsound==1.3.0
conda install -c conda-forge gst-python -y
sudo apt-get install gstreamer-1.0
pip install pygame
GPT_H2O_AI=0 CONCURRENCY_COUNT=1 pytest --instafail -s -v tests
# Para pruebas del servidor OpenAI en un servidor local ya en ejecución
pytest -s -v -n 4 openai_server/test_openai_server.py::test_openai_client
API de Cliente
- API de Cliente Gradio
- API de Cliente Compatible con OpenAI
- Librería Cliente de Python
Arquitectura Técnica
Pila Tecnológica Central
- Modelos Base: LLaMa2, Mistral, Falcon, etc.
- Tecnologías de Incrustación (Embeddings): instructor-large, all-MiniLM-L6-v2
- Bases de Datos Vectoriales: Chroma, Weaviate, FAISS
- Framework de UI: Gradio
- Tecnologías de Backend: Python, PyTorch, Transformers
Flujo de Procesamiento de Datos
- Ingesta de Documentos: Uso de tecnología OCR avanzada (DocTR)
- Segmentación de Documentos: Tecnología de fragmentación semántica
- Vectorización: Uso de modelos de incrustación precisos
- Mejora de la Recuperación: Recuperación mejorada con tecnología HYDE
- Generación de Respuestas: Respuestas inteligentes basadas en el contexto
Aplicaciones Comerciales
Soluciones de Nivel Empresarial
h2oGPT ofrece soluciones de IA generativa de nivel empresarial, con las siguientes características principales:
- Completamente privado: Despliegue 100% privado, los datos no salen de la empresa
- Escalabilidad: Soporte para despliegues a gran escala
- Seguridad: Garantías de seguridad de nivel empresarial
- Personalización: Soporte para ajuste fino y personalización de modelos
Escenarios de Aplicación
- Sistemas de preguntas y respuestas de documentos: Preguntas y respuestas de bases de conocimiento internas de la empresa
- Asistencia de código: Generación y revisión de código
- Análisis de datos: Procesamiento y análisis de datos CSV
- Procesamiento multimedia: Procesamiento de imágenes, video y audio
- Servicio al cliente: Sistemas inteligentes de atención al cliente
Ecosistema H2O.ai
h2oGPT forma parte de la plataforma completa de IA de H2O.ai. H2O.ai también ofrece:
- H2O-3: Plataforma de aprendizaje automático de código abierto
- H2O Driverless AI: Plataforma AutoML líder mundial
- H2O Hydrogen Torch: Plataforma de aprendizaje profundo sin código
- Document AI: Plataforma de aprendizaje profundo para procesamiento de documentos
- H2O MLOps: Plataforma de despliegue y monitoreo de modelos
- H2O Feature Store: Plataforma de almacenamiento de características
Conclusión
h2oGPT es una solución GPT potente, de código abierto y privada, especialmente adecuada para escenarios donde empresas y usuarios individuales necesitan un control total sobre la privacidad de sus datos. No solo ofrece funcionalidades similares a los servicios comerciales de GPT, sino que también añade características como procesamiento de documentos, soporte multimodal y seguridad de nivel empresarial, lo que lo convierte en una opción ideal para construir aplicaciones de IA privadas.