Ein leistungsstarkes Tool, das speziell für die Erstellung von Feinabstimmungsdatensätzen für große Sprachmodelle entwickelt wurde und intelligente Dokumentenverarbeitung, Fragengenerierung und den Export in verschiedenen Formaten unterstützt.
Easy Dataset - Tool zur Erstellung von Feinabstimmungs-Datensätzen für große Sprachmodelle
Projektübersicht
Easy Dataset ist ein professionelles Tool, das speziell für die Erstellung von Feinabstimmungs-Datensätzen für große Sprachmodelle (LLM) entwickelt wurde. Es bietet eine intuitive Benutzeroberfläche zum Hochladen von domänenspezifischen Dateien, zur intelligenten Segmentierung von Inhalten, zur Generierung von Fragen und zur Erstellung hochwertiger Trainingsdaten, wodurch der Modellfeinabstimmungsprozess einfach und effizient wird.
Mit Easy Dataset können Sie Ihr Domänenwissen in strukturierte Datensätze umwandeln, die mit allen LLM-APIs im OpenAI-Format kompatibel sind, wodurch der Feinabstimmungsprozess bequemer und effizienter wird.
Kernfunktionen
🧠 Intelligente Dokumentenverarbeitung
- Unterstützt das Hochladen von Markdown-Dateien und die automatische Segmentierung in sinnvolle Abschnitte
- Intelligente Erkennung von Dokumentstruktur und Inhaltshierarchie
❓ Intelligente Fragengenerierung
- Automatische Extraktion relevanter Fragen aus jedem Textabschnitt
- Unterstützung der Batch-Fragengenerierung zur Steigerung der Verarbeitungseffizienz
💬 Antwortgenerierung
- Verwendung der LLM-API zur Generierung umfassender Antworten auf jede Frage
- Unterstützung benutzerdefinierter System-Prompts zur Steuerung der Modellantwort
✏️ Flexible Bearbeitung
- Bearbeitung von Fragen, Antworten und Datensätzen in jeder Phase des Prozesses möglich
- Intuitive Benutzeroberfläche für die Inhaltsverwaltung
📤 Export in mehreren Formaten
- Unterstützung verschiedener Datensatzformate (Alpaca, ShareGPT)
- Unterstützung verschiedener Dateitypen (JSON, JSONL)
🔧 Breite Modellunterstützung
- Kompatibel mit allen LLM-APIs im OpenAI-Format
- Unterstützung der lokalen Ollama-Modellbereitstellung
👥 Benutzerfreundliche Oberfläche
- Intuitive Benutzeroberfläche für technische und nicht-technische Benutzer
- Vollständige Unterstützung der Internationalisierung in Chinesisch und Englisch
Technische Architektur
Technologiestack
- Frontend-Framework: Next.js 14.1.0
- UI-Bibliothek: React 18.2.0
- Komponentenbibliothek: Material UI 5.15.7
- Datenbank: Lokale Dateidatenbank
- Lizenz: Apache License 2.0
Projektstruktur
easy-dataset/
├── app/ # Next.js Anwendungsverzeichnis
│ ├── api/ # API-Routen
│ │ ├── llm/ # LLM-API-Integration
│ │ │ ├── ollama/ # Ollama-API-Integration
│ │ │ └── openai/ # OpenAI-API-Integration
│ │ └── projects/ # Projektverwaltungs-API
│ │ └── [projectId]/
│ │ ├── chunks/ # Textblockoperationen
│ │ ├── datasets/ # Datensatzgenerierung und -verwaltung
│ │ ├── questions/ # Fragenverwaltung
│ │ └── split/ # Textsegmentierungsoperationen
│ └── projects/ # Frontend-Projektseiten
│ └── [projectId]/
│ ├── datasets/ # Datensatzverwaltungs-Oberfläche
│ ├── questions/ # Fragenverwaltungs-Oberfläche
│ ├── settings/ # Projekteinstellungs-Oberfläche
│ └── text-split/ # Textverarbeitungs-Oberfläche
├── components/ # React-Komponenten
│ ├── datasets/ # Datensatzbezogene Komponenten
│ ├── home/ # Startseitenkomponente
│ ├── projects/ # Projektverwaltungskomponenten
│ ├── questions/ # Fragenverwaltungskomponenten
│ └── text-split/ # Textverarbeitungskomponenten
├── lib/ # Kernbibliothek und -tools
│ ├── db/ # Datenbankoperationen
│ ├── i18n/ # Internationalisierung
│ ├── llm/ # LLM-Integration
│ │ ├── common/ # LLM-Allgemeine Tools
│ │ ├── core/ # Kern-LLM-Client
│ │ └── prompts/ # Prompt-Vorlagen
│ └── text-splitter/ # Textsegmentierungstool
├── locales/ # Internationalisierungsressourcen
│ ├── en/ # Englische Übersetzung
│ └── zh-CN/ # Chinesische Übersetzung
└── local-db/ # Lokale Dateidatenbank
└── projects/ # Projektdatenspeicher
Installation und Bereitstellung
Systemanforderungen
- Node.js 18.x oder höher
- pnpm (empfohlen) oder npm
Lokale Entwicklung
- Repository klonen:
git clone https://github.com/ConardLi/easy-dataset.git
cd easy-dataset
- Abhängigkeiten installieren:
npm install
- Entwicklungsserver starten:
npm run build
npm run start
Docker-Bereitstellung
- Repository klonen:
git clone https://github.com/ConardLi/easy-dataset.git
cd easy-dataset
- Docker-Image erstellen:
docker build -t easy-dataset .
- Container ausführen:
docker run -d -p 1717:1717 -v {YOUR_LOCAL_DB_PATH}:/app/local-db --name easy-dataset easy-dataset
Hinweis: Ersetzen Sie
{YOUR_LOCAL_DB_PATH}
durch den tatsächlichen Pfad, in dem Sie die lokale Datenbank speichern möchten.
- Anwendung aufrufen:
Öffnen Sie einen Browser und navigieren Sie zu
http://localhost:1717
Desktop-App-Download
Windows | MacOS | Linux |
---|---|---|
Setup.exe | Intel / M | AppImage |
Verwendungsprozess
1. Projekt erstellen
- Klicken Sie auf der Startseite auf die Schaltfläche "Projekt erstellen".
- Geben Sie Projektname und -beschreibung ein.
- Konfigurieren Sie Ihre bevorzugten LLM-API-Einstellungen.
2. Text hochladen und segmentieren
- Laden Sie im Abschnitt "Textsegmentierung" Ihre Markdown-Datei hoch.
- Überprüfen Sie die automatisch segmentierten Textabschnitte.
- Passen Sie die Segmentierungsergebnisse nach Bedarf an.
3. Fragen generieren
- Navigieren Sie zum Abschnitt "Fragen".
- Wählen Sie die Textabschnitte aus, für die Fragen generiert werden sollen.
- Überprüfen und bearbeiten Sie die generierten Fragen.
- Verwenden Sie die Tag-Struktur, um Fragen zu organisieren.
4. Datensatz generieren
- Gehen Sie zum Abschnitt "Datensatz".
- Wählen Sie die Fragen aus, die in den Datensatz aufgenommen werden sollen.
- Verwenden Sie die konfigurierte LLM, um Antworten zu generieren.
- Überprüfen und bearbeiten Sie die generierten Antworten.
5. Datensatz exportieren
- Klicken Sie im Datensatzabschnitt auf die Schaltfläche "Exportieren".
- Wählen Sie Ihr bevorzugtes Format (Alpaca oder ShareGPT).
- Wählen Sie das Dateiformat (JSON oder JSONL).
- Fügen Sie bei Bedarf benutzerdefinierte System-Prompts hinzu.
- Exportieren Sie Ihren Datensatz.
Besondere Funktionen
Intelligentes Prompt-System
Das Projekt verfügt über integrierte professionelle Prompt-Vorlagen für verschiedene Sprachen:
- Chinesischer Prompt zur Fragengenerierung
- Englischer Prompt zur Fragengenerierung
- Chinesischer Prompt zur Antwortgenerierung
- Englischer Prompt zur Antwortgenerierung
Multi-LLM-Unterstützung
- Unterstützung der OpenAI-API
- Unterstützung der lokalen Ollama-Bereitstellung
- Kompatibel mit allen APIs im OpenAI-Format
Flexibles Datenformat
- Alpaca-Format: Geeignet für die Anweisungsfeinabstimmung
- ShareGPT-Format: Geeignet für das Dialogtraining
- Auswahl des JSON/JSONL-Ausgabeformats