Présentation détaillée du projet Open Assistant
Aperçu du projet
Open Assistant est un projet d'assistant IA de conversation open source développé par l'organisation LAION-AI. Ce projet vise à fournir à chacun un excellent accès à des modèles de langage de grande taille basés sur la conversation, en créant une révolution dans la technologie linguistique grâce à l'open source.
⚠️ Avis important: Le projet OpenAssistant est terminé et est maintenant clos. L'ensemble de données final publié est disponible sur OpenAssistant/oasst2 sur HuggingFace.
Vision du projet
Open Assistant croit que la collaboration open source peut créer une révolution dans le domaine de la technologie linguistique, tout comme Stable Diffusion a aidé le monde à créer de l'art et des images d'une nouvelle manière. L'objectif final du projet n'est pas seulement de reproduire ChatGPT, mais de construire l'assistant du futur, capable de :
- Rédiger des e-mails et des lettres de motivation
- Effectuer un travail significatif
- Utiliser des API
- Rechercher dynamiquement des informations
- Prendre en charge la personnalisation et l'extension
Méthode technique
Pile technologique principale
L'objectif principal du projet est d'avoir un chatbot capable de répondre aux questions, en adaptant les grands modèles de langage (LLM) pour mieux suivre les instructions. Pour ce faire, le projet a utilisé la méthode proposée dans l'article InstructGPT, qui est basée sur l'apprentissage par renforcement avec feedback humain (RLHF).
Méthode d'entraînement en trois étapes
Le projet suit la méthode en trois étapes décrite dans l'article InstructGPT :
Première étape : Collecte de données
- Collecter des échantillons d'instructions-complétions de haute qualité générés par des humains (invite + réponse)
- Objectif : plus de 50 000 échantillons
- Concevoir un processus de crowdsourcing pour collecter et examiner les invites
- Éviter les attaques de déluge d'entraînement / les données toxiques / les spams / les informations personnelles
- Motiver la communauté grâce à des classements, en montrant les progrès et les utilisateurs les plus actifs
Deuxième étape : Collecte des classements
- Échantillonner plusieurs complétions pour chaque invite collectée
- Afficher aléatoirement les résultats de la complétion de l'invite aux utilisateurs pour les classer (du meilleur au pire)
- Gérer les utilisateurs non fiables ou malveillants par le biais du crowdsourcing
- Collecter les votes de plusieurs utilisateurs indépendants pour mesurer la cohérence globale
- Utiliser les données de classement collectées pour entraîner un modèle de récompense
Troisième étape : Entraînement RLHF
- Phase d'entraînement par apprentissage par renforcement avec feedback humain basée sur le modèle d'invite et de récompense
- Le modèle de résultat peut être utilisé pour continuer à échantillonner les étapes pour la prochaine itération
Architecture du projet
Configuration de l'environnement de développement
Le projet prend en charge un déploiement complet de la pile Docker, y compris le site Web, le backend et les services de dépendance associés.
Commande de démarrage de base :
docker compose --profile ci up --build --attach-dependencies
Les utilisateurs de la puce MacOS M1 doivent utiliser :
DB_PLATFORM=linux/x86_64 docker compose ...
Accès local :
Prise en charge des conteneurs de développement
Le projet fournit une prise en charge standardisée de l'environnement de développement :
- Devcontainer VSCode local
- Environnement de navigateur Web GitHub Codespaces
- Les fichiers de configuration se trouvent dans le dossier
.devcontainer
Fonctionnalités
Fonction de chat
- Le frontend de chat est en ligne, les utilisateurs peuvent se connecter et commencer à chatter
- Prise en charge des commentaires positifs ou négatifs sur les réponses de l'assistant
- Expérience d'interaction en temps réel
Collecte de données
- Le frontend de collecte de données est en ligne, les utilisateurs peuvent se connecter et commencer à effectuer des tâches
- Aidez directement à améliorer les capacités d'Open Assistant en soumettant, en classant et en étiquetant les invites et les réponses du modèle
- Collecte de données de haute qualité par le biais du crowdsourcing
Système d'inférence
Le projet comprend un système d'inférence complet, prenant en charge :
- Déploiement local des services d'inférence
- Capacité à fonctionner sur du matériel grand public
- Conception d'architecture évolutive
Caractéristiques Open Source
Participation de la communauté
- Le projet est organisé par LAION et des personnes du monde entier intéressées à rendre cette technologie accessible à tous
- Les développeurs sont invités à contribuer au code
- Fournit un guide de contribution détaillé
État du projet
Rappel important : Le projet OpenAssistant est terminé et clos. Bien que le projet lui-même soit terminé, :
- L'ensemble de données final oasst2 est disponible sur HuggingFace
- Le code reste open source et accessible
- La communauté peut continuer à développer sur la base du travail existant
Exigences techniques
Besoins matériels
- La vision du projet est de créer un grand modèle de langage qui peut fonctionner sur un seul GPU grand public haut de gamme
- Prise en charge du déploiement de matériel grand public
- Performances d'inférence optimisées
Options de déploiement
- Déploiement de conteneurs Docker
- Environnement de développement local
- Prise en charge du déploiement dans le cloud
- Déploiement indépendant des services d'inférence
Ressources associées