Was es ist
Ein Chat hat drei Rollen: user, assistant und system. Die Systemnachricht steht an erster Stelle und wird von keinem der Gesprächspartner geäußert; sie ist eine dauerhafte Anweisung — wer der Assistent ist, was er tun und lassen soll, wie lang und in welchem Format er antwortet. Im täglichen Einsatz steuern Sie so ein Modell, ohne es neu trainieren zu müssen.
Bei der Datenaufbereitung ist der System-Prompt eine optionale Einstellung, die am Anfang jedes Trainingsdatensatzes eingefügt wird. Er verwandelt eine Menge einzelner Chats in Beispiele für einen konsistenten Assistenten.
Wie es während des Trainings funktioniert
Wie die Nachricht des Nutzers ist der System-Prompt Kontext: Das Modell liest ihn bei der Vorhersage der Zielantwort, aber der Fehler wird nur an den Ziel-Token gemessen. Das Training bringt dem Modell also nicht bei, den Prompt zu schreiben; es bringt dem Modell bei, wie Antworten aussehen, wenn dieser Prompt vorhanden ist.
Diese Konditionierung ist der wichtige Teil. Bevor ein Chat das Modell erreicht, wird er mithilfe des Chat-Templates des Modells in eine einzige Token-Sequenz abgeflacht, wobei spezielle Token markieren, wo die System-, Nutzer- und Assistententeile beginnen. Das erlernte Verhalten des Modells ist mit genau dieser Sequenz verknüpft. Wenn Sie später einen anderen System-Prompt verwenden — oder gar keinen —, sieht die Eingabe nicht mehr so aus wie das, worauf das Modell trainiert wurde, und das erlernte Verhalten überträgt sich nur teilweise. Aus demselben Grund betont die Hugging Face-Dokumentation, dass Trainingsdaten mit demselben Chat-Template formatiert werden müssen, das das Modell im Einsatz sehen wird.
{"messages": [
{"role": "system", "content": "You are the support assistant for Acme Billing. Answer in two to four short sentences. Name the exact menu path. If you are not sure, say so and offer to connect a human."},
{"role": "user", "content": "How do I download last month's invoice?"},
{"role": "assistant", "content": "Go to Billing → Invoices, pick last month and choose Download PDF. Invoices appear on the 2nd of each month."}
]}Was hineingehört
- Identität und Zuständigkeitsbereich: wessen Assistent er ist und wobei er hilft.
- Antwortstil: Länge, Struktur, ob Listen verwendet werden sollen, was zu tun ist, wenn er unsicher ist.
- Strikte Regeln, die in den Beispielen möglicherweise nicht abgedeckt werden, wie z. B. niemals Preise zu nennen oder immer einen menschlichen Mitarbeiter anzubieten.
- Kein Wissen. Fakten gehören in die Beispiele (oder in das Retrieval zur Laufzeit); ein Prompt voller Produktdetails ist lang, teuer und veraltet schnell.
Stellen Sie sicher, dass der Prompt und die Zielantworten übereinstimmen. Wenn der Prompt lautet „antworte in zwei Sätzen“, aber die Hälfte der Zielantworten aus langen Schritt-für-Schritt-Anleitungen besteht, lernt das Modell, dass die Anweisung nicht viel bedeutet — und ignoriert sie möglicherweise auch an anderen Stellen.
- Ein Modell wird mit 1.500 Support-Chats und dem obigen Prompt von etwa 50 Token trainiert. Seine Antworten sind kurz, nennen den Menüpfad und bieten einen menschlichen Mitarbeiter an, wenn es unsicher ist.
- Im Einsatz ersetzt jemand den Prompt durch eine 400-Token-Version, die jede Produktfunktion auflistet. Die Antworten werden länger und die Gewohnheit, einen menschlichen Mitarbeiter anzubieten, tritt seltener auf: Die Eingabe entspricht nicht mehr den Trainingsdaten.
- Die Wiederherstellung des ursprünglichen Prompts bringt das trainierte Verhalten zurück. Wenn die neuen Anweisungen wirklich benötigt werden, fügen Sie diese dem Trainings-Prompt hinzu und trainieren Sie das Modell erneut.
- Kosten: 50 Token × 1.500 Datensätze × 3 Epochen = 225.000 Trainings-Token allein für den Prompt. Bei der 400-Token-Version wären es 1,8 Millionen.
Optionaler Text, der vor jeder Unterhaltung hinzugefügt wird. Ein paar Sätze zu Identität, Umfang und Antwortstil sind meist ausreichend; lassen Sie ihn nur leer, wenn das Modell immer ohne einen solchen Text verwendet wird.
Häufige Fehler
- Mit einem System-Prompt trainieren und mit einem anderen bereitstellen, um dann zu dem Schluss zu kommen, dass das Fine-Tuning „nicht funktioniert hat“.
- Fakten in den Prompt packen, die in die Beispiele oder in das Retrieval gehören.
- Ein Prompt, der den Zielantworten widerspricht und dem Modell so beibringt, dass seine Anweisungen optional sind.
- Die Token-Kosten vergessen: Ein langer Prompt wird in jedem Datensatz, jeder Epoche und jeder späteren Anfrage bezahlt.
Quellen und weiterführende Literatur
Externe Quellen werden in einem neuen Tab geöffnet.
- 01Chat templatesHugging Face Transformers docs · huggingface.coWie System-, Nutzer- und Assistentennachrichten zu einer Token-Sequenz werden und warum Training und Einsatz übereinstimmen sollten.
- 02Supervised fine-tuningOpenAI API docs · developers.openai.comTrainingsbeispiele im Chat-Format, einschließlich der Systemnachricht.
- 03Prepare data for fine-tuning your modelsAmazon Bedrock User Guide · docs.aws.amazon.comEin Format mit einem separaten Systemfeld pro Datensatz.