Introducción Detallada al Proyecto Open Assistant
Resumen del Proyecto
Open Assistant es un proyecto de asistente de IA conversacional de código abierto desarrollado por la organización LAION-AI. El proyecto tiene como objetivo proporcionar acceso a modelos de lenguaje grandes basados en chat de alta calidad para todos, creando una revolución en la tecnología del lenguaje a través del código abierto.
⚠️ Aviso Importante: El proyecto OpenAssistant ha finalizado y ahora está completo. El conjunto de datos final publicado se puede encontrar en OpenAssistant/oasst2 en HuggingFace.
Visión del Proyecto
Open Assistant cree que la colaboración de código abierto puede crear una revolución en el campo de la tecnología del lenguaje, al igual que Stable Diffusion ayudó al mundo a crear arte e imágenes de nuevas maneras. El objetivo final del proyecto no es solo replicar ChatGPT, sino construir el asistente del futuro, capaz de:
- Redactar correos electrónicos y cartas de presentación
- Realizar trabajos significativos
- Usar APIs
- Investigar información dinámicamente
- Apoyar la personalización y la expansión
Metodología Técnica
Pila Tecnológica Central
El objetivo principal del proyecto es tener un chatbot que pueda responder preguntas, adaptando modelos de lenguaje grandes (LLM) para seguir mejor las instrucciones. Para ello, el proyecto utilizó el método propuesto en el artículo de InstructGPT, que se basa en el aprendizaje por refuerzo con retroalimentación humana (RLHF).
Método de Entrenamiento en Tres Pasos
El proyecto sigue el método de tres pasos descrito en el artículo de InstructGPT:
Paso Uno: Recopilación de Datos
- Recopilar muestras de instrucciones-finalizaciones generadas por humanos de alta calidad (indicación + respuesta)
- Objetivo: Más de 50,000 muestras
- Diseñar un proceso de crowdsourcing para recopilar y revisar las indicaciones
- Evitar ataques de inundación de entrenamiento/datos tóxicos/basura/información personal
- Incentivar a la comunidad a través de tablas de clasificación, mostrando el progreso y los usuarios más activos
Paso Dos: Recopilación de Clasificaciones
- Muestrear múltiples finalizaciones para cada indicación recopilada
- Mostrar aleatoriamente las finalizaciones de la indicación a los usuarios para clasificarlas (de mejor a peor)
- Manejar usuarios poco confiables o maliciosos mediante crowdsourcing
- Recopilar votos de múltiples usuarios independientes para medir la coherencia general
- Utilizar los datos de clasificación recopilados para entrenar un modelo de recompensa
Paso Tres: Entrenamiento RLHF
- Fase de entrenamiento de aprendizaje por refuerzo con retroalimentación humana basada en indicaciones y modelos de recompensa
- Se puede utilizar el modelo resultante para continuar con los pasos de muestreo de finalización para la próxima iteración
Arquitectura del Proyecto
Configuración del Entorno de Desarrollo
El proyecto admite la implementación completa de la pila Docker, incluido el sitio web, el backend y los servicios de dependencia relacionados.
Comando de inicio básico:
docker compose --profile ci up --build --attach-dependencies
Los usuarios de MacOS con chip M1 deben usar:
DB_PLATFORM=linux/x86_64 docker compose ...
Acceso local:
Soporte de Contenedores de Desarrollo
El proyecto proporciona soporte de entorno de desarrollo estandarizado:
- Contenedor de desarrollo VSCode local
- Entorno de navegador web GitHub Codespaces
- Los archivos de configuración se encuentran en la carpeta
.devcontainer
Características Funcionales
Funcionalidad de Chat
- El frontend de chat está en línea, los usuarios pueden iniciar sesión y comenzar a chatear
- Soporte para dar "me gusta" o "no me gusta" a las respuestas del asistente
- Experiencia de interacción en tiempo real
Recopilación de Datos
- El frontend de recopilación de datos está en línea, los usuarios pueden iniciar sesión y comenzar a realizar tareas
- Ayudar directamente a mejorar las capacidades de Open Assistant enviando, clasificando y etiquetando indicaciones y respuestas del modelo
- Recopilación de datos de alta calidad mediante crowdsourcing
Sistema de Inferencia
El proyecto incluye un sistema de inferencia completo que admite:
- Implementación local de servicios de inferencia
- Capacidad de ejecución en hardware de consumo
- Diseño de arquitectura escalable
Características de Código Abierto
Participación de la Comunidad
- El proyecto está organizado por LAION e individuos de todo el mundo interesados en llevar esta tecnología a todos
- Los desarrolladores son bienvenidos a contribuir con código
- Se proporcionan guías de contribución detalladas
Estado del Proyecto
Recordatorio Importante: El proyecto OpenAssistant ha finalizado y está completo. Aunque el proyecto en sí ha terminado:
- El conjunto de datos final oasst2 está disponible en HuggingFace
- El código sigue siendo de código abierto y accesible
- La comunidad puede continuar desarrollando basándose en el trabajo existente
Requisitos Técnicos
Requisitos de Hardware
- La visión del proyecto es crear un modelo de lenguaje grande que pueda ejecutarse en una sola GPU de consumo de gama alta
- Soporte para la implementación de hardware de consumo
- Rendimiento de inferencia optimizado
Opciones de Implementación
- Implementación en contenedores Docker
- Entorno de desarrollo local
- Soporte de implementación en la nube
- Implementación independiente del servicio de inferencia
Recursos Relacionados