Home
Login

Ein Open-Source-basierter Chat-KI-Assistent, der mit Reinforcement Learning aus menschlichem Feedback trainiert wurde und darauf abzielt, allen einen kostenlosen Zugang zu großen Sprachmodellen zu ermöglichen.

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

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