Ein Modell rät, was als Nächstes kommt
Ein Sprachmodell ist ein Programm, das Text schreibt, indem es rät, was als Nächstes kommt. Ihr Handy tut das im Kleinen, wenn es das nächste Wort einer Nachricht vorschlägt.
Das ist wichtig, denn jede Funktion, die Sie auf einem Modell bauen, erbt diese Vermutung. Wer das Prinzip kennt, versteht auch die seltsamen Antworten.
Am Ende dieser Lektion
Notiz
Ich kann erklären, wie ein Sprachmodell Text erzeugt, ohne Mathematik.
Schlüsselwörter
| Begriff | Was er bedeutet |
|---|---|
| Modell | ein Programm, das Muster aus riesigen Textmengen gelernt hat |
| Prompt | der Text, den Sie an ein Modell senden |
| Token | ein kleines Stück Text, oft ein Wort oder ein Wortteil |
| Kontext | der ganze Text, den das Modell für eine Antwort sieht |
| Temperatur | eine Einstellung, die die Vermutung mehr oder weniger abwechslungsreich macht |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein Modell schreibt ein Token nach dem anderen
Ein Modell plant keine ganze Antwort. Es liest Ihren Prompt, rät das nächste Token, hängt es an und rät wieder.
Das wiederholt es, bis die Antwort endet. Jedes Token wird anhand des bisher geschriebenen Texts gewählt, des Kontexts.
Beispiel: das nächste Wort
| Der Text bisher | Nächstes Wort | Gesehen von 10 |
|---|---|---|
| Der Kater schläft auf dem | Sofa | 6 |
| Der Kater schläft auf dem | Teppich | 3 |
| Der Kater schläft auf dem | Dach | 1 |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Nach dem nächsten Wort fragen
docker exec -w /home/node/project agent node -e "const u=(process.env.AI_URL||'http://ai:4000')+'/v1/chat/completions';const senden=(m,t,x)=>fetch(u,{method:'POST',headers:{'content-type':'application/json',authorization:'Bearer lab'},body:JSON.stringify({model:'lab',messages:[{role:'user',content:m}],max_tokens:t,temperature:x})}).then(r=>r.json());senden('Beenden Sie den Satz mit einem einzigen Wort und sonst nichts: Der Kater schläft auf dem',12,0.7).then(j=>console.log('Modell: '+j.choices[0].message.content)).catch(e=>console.log('Aufgezeichnetes Beispiel (kein Modell hat geantwortet): Sofa'))"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Derselbe Prompt kann verschiedene Antworten geben
Das Modell gibt jedem möglichen Token eine Chance und zieht dann eines. Die Temperatur bestimmt, wie mutig gezogen wird. Eine niedrige Temperatur wählt fast immer das wahrscheinlichste Token. Eine hohe wählt öfter ungewöhnliche.
Ein Modell ist also kein Taschenrechner. Fragen Sie zweimal, bekommen Sie vielleicht zwei Antworten.
Denselben Prompt zweimal senden
docker exec -w /home/node/project agent node -e "const u=(process.env.AI_URL||'http://ai:4000')+'/v1/chat/completions';const senden=(m,t,x)=>fetch(u,{method:'POST',headers:{'content-type':'application/json',authorization:'Bearer lab'},body:JSON.stringify({model:'lab',messages:[{role:'user',content:m}],max_tokens:t,temperature:x})}).then(r=>r.json());const s=['Sofa','Teppich'];(async()=>{for(let i=0;i<2;i++){let t;try{const j=await senden('Beenden Sie den Satz mit einem einzigen Wort und sonst nichts: Der Kater schläft auf dem',12,1);t='Modell: '+j.choices[0].message.content}catch(e){t='Aufgezeichnetes Beispiel (kein Modell hat geantwortet): '+s[i]}console.log('Versuch '+(i+1)+': '+t)}})()"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Wahrscheinlich heißt nicht wahr
Das Modell hat aus Texten gelernt, deshalb schreibt es gut, was richtig klingt. Es kann keine Tatsache nachschlagen. Sieht ein falscher Satz wie ein wahrscheinlicher Satz aus, kann es ihn mit ruhiger, sicherer Stimme schreiben.
Ihre Aufgabe als Entwicklerin oder Entwickler ist es, das Wichtige zu prüfen.
Etwas fragen, das es nicht wissen kann
docker exec -w /home/node/project agent node -e "const u=(process.env.AI_URL||'http://ai:4000')+'/v1/chat/completions';const senden=(m,t,x)=>fetch(u,{method:'POST',headers:{'content-type':'application/json',authorization:'Bearer lab'},body:JSON.stringify({model:'lab',messages:[{role:'user',content:m}],max_tokens:t,temperature:x})}).then(r=>r.json());senden('Wie heißt meine Katze? Antworten Sie in einem kurzen Satz.',40,0.7).then(j=>console.log('Modell: '+j.choices[0].message.content)).catch(e=>console.log('Aufgezeichnetes Beispiel (kein Modell hat geantwortet): Ich kenne den Namen Ihrer Katze nicht.'))"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Ein häufiger Fehler
Warnung
Viele glauben, ein Modell schlage Fakten nach wie eine Suchmaschine. Das tut es nicht. Es setzt Text mit wahrscheinlichen Token fort. Vertrauen Sie einer Antwort erst, wenn Sie sie mit etwas anderem verglichen haben.
Weiter: ein winziges eigenes Modell
Die Aufgabe ist ein winziges Sprachmodell: eine Tabelle mit Zählungen und eine Regel zum Wählen. Ein echtes Modell folgt derselben Idee. Seine Tabelle ist viel größer, sie stammt aus viel mehr Text, und es betrachtet einen viel größeren Teil des Kontexts.
Fügen Sie der Tabelle ein paar eigene Wörter und Zählungen hinzu und sehen Sie, welchen Text sie schreibt.