Home
Login

Assistant IA open source basé sur la conversation, entraîné avec l'apprentissage par renforcement à partir de la rétroaction humaine, conçu pour offrir un accès gratuit aux grands modèles de langage à tous.

Apache-2.0Python 37.4kLAION-AI Last Updated: 2024-08-17

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