Trainingskorpus
Wie die Dokumente als LoRA-fähige Trainingsmenge exportiert werden und wie sie neu generiert werden können.
Jede Seite in dieser Dokumentation ist auch ein Trainingsdatenpunkt. Nibiru bietet ein Skript, das einen sauberen JSONL-Korpus extrahiert, der für die LoRA-Fine-Tuning eines offenen Modells – wie Llama, Mistral, Qwen oder Gemma – auf spezifische Kenntnisse von Nibiru geeignet ist.
Führen Sie es aus
Abschnitt betitelt „Führen Sie es aus“cd docsnpm run build:corpusDies schreibt:
docs/dist/corpus/├── instructions.jsonl # instruction → response pairs├── chat.jsonl # OpenAI/Anthropic chat-message format├── completion.jsonl # plain prompt → completion (legacy)└── chunks.jsonl # raw Markdown chunks (one per H2/H3 section)Formate
Abschnitt betitelt „Formate“anweisungen.jsonl
Abschnitt betitelt „anweisungen.jsonl“LoRA-freundliche Anweisungsoptimierung:
{ "instruction": "How do I scaffold a new module in Nibiru?", "input": "", "output": "Run `./nibiru -m <name>`, optionally with `-g` for Graylog hooks. This creates `application/module/<name>/` with traits/, plugins/, interfaces/, settings/<name>.ini and the main `<name>.php` class implementing `IModule`."}Jede Eintragung wird aus einem Dokumentationsabschnitt generiert, der eine klare Frage (abgeleitet vom H2/H3-Titel) und den Abschnittstext als Antwort enthält.
chat.jsonl
Abschnitt betitelt „chat.jsonl“OpenAI Chat / Anthropic Nachrichtenformat:
{ "messages": [ {"role": "system", "content": "You are an expert on the Nibiru PHP framework."}, {"role": "user", "content": "How do I scaffold a new module?"}, {"role": "assistant", "content": "Run `./nibiru -m <name>`. …"} ]}Kompatibel mit OpenAI Fine-Tunes, der API von Anthropic zur Bewertung und den meisten LoRA-Tools, die Eingaben im Chat-Format erwarten (Vorlage sharegpt von Axolotl, Unsloth, LLaMA-Factory).
chunks.jsonl
Abschnitt betitelt „chunks.jsonl“Rohdaten für die Verwendung als RAG-Retrieval-Daten:
{ "id": "core/modules#observer-pattern", "title": "The observer pattern", "url": "/core/modules/#the-observer-pattern", "section": "core/modules", "language": "en", "tokens": 412, "content": "Modules implementing `SplSubject` can broadcast events…"}Dies ist genau die Datei, die intern von Oracle verwendet wird.
Wie Chunks abgeleitet werden
Abschnitt betitelt „Wie Chunks abgeleitet werden“Der Korpus-Bauer durchläuft jede .md / .mdx-Datei unter src/content/docs/, analysiert sie in einen AST und teilt sie an den Grenzen von H2/H3 auf. Er erfordert:
- Ein Abschnitt pro H2-Kapitel (oder H3, wenn das H2 leer ist).
- ~200–800 Token pro Abschnitt (teilen Sie es auf, wenn es länger ist, zusammenführen Sie es, wenn es kürzer ist).
- Codeblöcke bleiben unverändert — teilen Sie sie niemals in der Mitte.
- Jeder Abschnitt trägt seinen Quellpfad, seine Anker-URL und den Sprachcode bei.
Das Skript befindet sich in scripts/build-corpus.mjs und ist vollständig konfigurierbar.
Vorgeschlagene LoRA-Rezepte
Abschnitt betitelt „Vorgeschlagene LoRA-Rezepte“Ein pragmatischer Ausgangspunkt für ein 8-Billionen-Parameter-Grundmodell auf einer einzelnen A100 / 4090:
base_model: meta-llama/Llama-3.1-8B-Instructadapter: loralora_r: 16lora_alpha: 32lora_dropout: 0.05lora_target_modules: [q_proj, k_proj, v_proj, o_proj]
datasets: - path: docs/dist/corpus/chat.jsonl type: sharegpt
sequence_len: 4096sample_packing: truegradient_accumulation_steps: 4micro_batch_size: 2num_epochs: 3optimizer: adamw_bnb_8bitlearning_rate: 0.0002warmup_ratio: 0.05bf16: trueTrainen Sie dann die LoRA-Gewichte zusammen und stellen Sie sie über Ollama, vLLM oder text-generation-inference bereit. Ändern Sie den MODEL-Eintrag des Orakels auf Ihren lokalen Endpunkt, und Sie haben eine vollständig Nibiru-native Chat-Benutzererfahrung.
Erneut ausführen bei jeder Dokumentenänderung
Abschnitt betitelt „Erneut ausführen bei jeder Dokumentenänderung“Verbinden Sie es in Ihre CI ein:
- name: Build corpus run: cd docs && npm run build:corpus- name: Upload corpus artifact uses: actions/upload-artifact@v4 with: name: nibiru-corpus path: docs/dist/corpus/Wenn die Dokumentationen sich ändern, wird das Korpus neu erstellt; Consumer (Trainingspipelines, RAG-Indizes) haben immer die neuesten Daten.
Sprachen
Abschnitt betitelt „Sprachen“Der Korpus beachtet die Lokalisation. Seiten unter en/ sind mit language: en markiert, deutsche Seiten mit language: de und so weiter. Trainieren Sie monolinguale oder mehrsprachige LoRAs, indem Sie das JSONL nach dem Feld language filtern.
Die Dokumentation ist unter der gleichen BSD-4-Klausel lizenziert wie das Framework selbst. Der exportierte Korpus erbt diese Lizenz – Sie sind freigestellt, Modelle auf ihm für den kommerziellen Gebrauch zu feinabzustimmen, wobei eine Zitierung erforderlich ist.