Open Assistant Projekt – Detaillierte Beschreibung
Projektübersicht
Open Assistant ist ein Open-Source-Chat-KI-Assistentenprojekt, das von LAION-AI entwickelt wurde. Das Projekt zielt darauf ab, jedem Zugang zu exzellenten, auf Chat basierenden, großen Sprachmodellen zu ermöglichen und durch Open Source eine Revolution in der Sprachtechnologie zu schaffen.
⚠️ Wichtiger Hinweis: Das OpenAssistant-Projekt ist abgeschlossen und beendet. Der endgültige veröffentlichte Datensatz ist auf HuggingFace unter OpenAssistant/oasst2 zu finden.
Projektvision
Open Assistant glaubt, dass durch Open-Source-Zusammenarbeit eine Revolution im Bereich der Sprachtechnologie geschaffen werden kann, so wie Stable Diffusion der Welt geholfen hat, Kunst und Bilder auf neue Weise zu erschaffen. Das ultimative Ziel des Projekts ist nicht nur die Replikation von ChatGPT, sondern der Aufbau zukünftiger Assistenten, die:
- E-Mails und Bewerbungsschreiben verfassen
- Sinnvolle Arbeit verrichten
- APIs nutzen
- Informationen dynamisch recherchieren
- Personalisierung und Erweiterung unterstützen
Technischer Ansatz
Kerntechnologie-Stack
Das Hauptziel des Projekts ist ein Chatbot, der Fragen beantworten kann, indem er große Sprachmodelle (LLM) anpasst, um Anweisungen besser zu befolgen. Zu diesem Zweck verwendet das Projekt die im InstructGPT-Paper vorgeschlagene Methode, die auf Reinforcement Learning from Human Feedback (RLHF) basiert.
Drei-Schritte-Trainingsmethode
Das Projekt folgt der im InstructGPT Paper beschriebenen Drei-Schritte-Methode:
Schritt 1: Datenerfassung
- Sammeln hochwertiger, von Menschen erstellter Anweisungs-Vervollständigungs-Beispiele (Prompt + Antwort)
- Ziel: Mehr als 50.000 Beispiele
- Entwicklung eines Crowdsourcing-Prozesses zum Sammeln und Überprüfen von Prompts
- Vermeidung von Trainings-Flood-Angriffen/giftigen/Junk-/persönlichen Informationen
- Motivation der Community durch Bestenlisten, die Fortschritt und aktivste Benutzer zeigen
Schritt 2: Ranking-Erfassung
- Mehrfaches Sampling von Vervollständigungen für jeden gesammelten Prompt
- Zufällige Anzeige der Vervollständigungsergebnisse des Prompts für Benutzer zur Bewertung (von bester zu schlechtester)
- Crowdsourcing-Ansatz zur Behandlung unzuverlässiger oder böswilliger Benutzer
- Sammeln von Stimmen mehrerer unabhängiger Benutzer zur Messung der Gesamtübereinstimmung
- Verwendung der gesammelten Ranking-Daten zum Trainieren eines Belohnungsmodells
Schritt 3: RLHF-Training
- Reinforcement Learning from Human Feedback-Trainingsphase basierend auf Prompts und Belohnungsmodell
- Das resultierende Modell kann verwendet werden, um den Sampling-Schritt für die nächste Iteration fortzusetzen
Projektarchitektur
Entwicklungsumgebung einrichten
Das Projekt unterstützt eine vollständige Docker-Stack-Bereitstellung, einschließlich Website, Backend und zugehöriger abhängiger Dienste.
Grundlegender Startbefehl:
docker compose --profile ci up --build --attach-dependencies
MacOS M1 Chip-Benutzer müssen Folgendes verwenden:
DB_PLATFORM=linux/x86_64 docker compose ...
Lokaler Zugriff:
Entwicklungskontainer-Unterstützung
Das Projekt bietet standardisierte Entwicklungsumgebungsunterstützung:
- Lokaler VSCode-Devcontainer
- GitHub Codespaces Webbrowser-Umgebung
- Konfigurationsdateien befinden sich im Ordner
.devcontainer
Funktionsmerkmale
Chat-Funktion
- Das Chat-Frontend ist online, Benutzer können sich anmelden und mit dem Chatten beginnen
- Unterstützung für das Liken oder Disliken von Assistentenantworten
- Interaktives Echtzeit-Erlebnis
Datenerfassung
- Das Datenerfassungs-Frontend ist online, Benutzer können sich anmelden und mit der Ausführung von Aufgaben beginnen
- Direkte Hilfe bei der Verbesserung der Open Assistant-Fähigkeiten durch Einreichen, Bewerten und Markieren von Modell-Prompts und -Antworten
- Crowdsourcing-Ansatz zur Erfassung hochwertiger Daten
Inferenzsystem
Das Projekt enthält ein vollständiges Inferenzsystem, das Folgendes unterstützt:
- Lokale Bereitstellung von Inferenzdiensten
- Ausführungsfähigkeit auf Consumer-Hardware
- Skalierbares Architekturdesign
Open-Source-Merkmale
Community-Beteiligung
- Das Projekt wird von LAION und Einzelpersonen auf der ganzen Welt organisiert, die daran interessiert sind, diese Technologie jedem zugänglich zu machen
- Entwickler sind eingeladen, Code beizutragen
- Detaillierte Richtlinien für Beiträge sind verfügbar
Projektstatus
Wichtiger Hinweis: Das OpenAssistant-Projekt ist abgeschlossen und beendet. Obwohl das Projekt selbst beendet ist:
- Der endgültige Datensatz oasst2 ist auf HuggingFace verfügbar
- Der Code ist weiterhin Open Source und zugänglich
- Die Community kann die bestehende Arbeit weiterentwickeln
Technische Anforderungen
Hardwareanforderungen
- Die Projektvision ist die Erstellung eines großen Sprachmodells, das auf einer einzelnen High-End-Consumer-GPU ausgeführt werden kann
- Unterstützung für die Bereitstellung auf Consumer-Hardware
- Optimierte Inferenzleistung
Bereitstellungsoptionen
- Docker-Container-Bereitstellung
- Lokale Entwicklungsumgebung
- Cloud-Bereitstellungsunterstützung
- Unabhängige Bereitstellung von Inferenzdiensten
Verwandte Ressourcen