. Hauptsächlich arbeite ich mit meinem Programmierassistenten auf Chinesisch. Allerdings ist meine Schreibweise oft gemischt: Viele technische Begriffe sind mir im Englischen vertrauter (insbesondere Begriffe, die wir in Python, Git usw. verwenden), und einige lassen sich sogar nur schwer auf natürliche Weise ins Chinesische übersetzen.
Gestern habe ich meinen Programmierassistenten auf Chinesisch gefragt: „run.py有早停吗?我在恒源云上跑,发现没有触发“, was bedeutet: „Implementiert run.py ein frühes Stoppen? Ich habe das Projekt auf einem gemeinsam genutzten GPU-Dienst ausgeführt und konnte nicht sehen, dass ein vorzeitiges Stoppen ausgelöst wurde.“ Wie üblich habe ich den technischen Token run.py natürlich in seiner englischen Originalform eingegeben. Das Modell überprüfte den Code und antwortete wie folgt:

Alle technischen Token blieben auf Englisch (run.py, config.py, train_unified), während die erklärende Struktur ins Koreanische verschoben wurde. Dies ist kein Einzelfall. Es ist von Zeit zu Zeit passiert: Solange ich chinesische und englische Ingenieurbegriffe vermischte, tauchte immer Koreanisch auf.

Das brachte mich zu der Frage: Handelt es sich hier um ein Sprachproblem oder um etwas, das tiefer im Einbettungsbereich liegt?
Hypothese
Einbettungsräume werden nicht in erster Linie durch die Natur der Sprachen strukturiert. Da sie neben Sprachmodellen trainiert wurden, sind sie in der Regel nach Aufgabenregistern wie wissenschaftlichem Schreiben, Konversationstext und, im Fall von Codierungsassistenten, Technik/Code organisiert. Obwohl Chinesisch von der größten Bevölkerung der Welt gesprochen wird, ist es kein natürliches Medium für das Ingenieurregister und ist in technischen Korpora nur begrenzt vertreten.
In einem solchen Kontext verhält sich der Textual content im Einbettungsraum möglicherweise nicht mehr wie „Chinesisch“, sobald technische Token wie z Überprüfung / Zweig / Commit / PR / Diff erscheinen. Stattdessen könnte es in ein technisches Attraktorfeld abdriften.
Wir werden einige Experimente durchführen, um empirische Beweise für diese Hypothese zu liefern.
Kontrollierte Sprachdrift
Wir konstruieren die folgende kontrollierte Folge von Sätzen, in denen englische Wörter nach und nach die chinesischen ersetzen:
Stufe 0: 请帮我检查这个分支
Stufe 1: 请帮我 Rezension 这个分支
Stufe 2: 请帮我 Überprüfung des 这个-Zweigs
Stufe 3: Bitte überprüfen Sie diesen Department-Pull-Request-Commit
Stufe 4: Bitte überprüfen Sie diesen Department-Pull-Request-Commit-Code-Diff
Wir berechnen nun die Ähnlichkeit mithilfe der Kosinusähnlichkeit zwischen Satzeinbettungen. Wir definieren koreanische und englische „Cluster“ als die durchschnittliche Einbettung einer kleinen Menge repräsentativer technikbezogener Sätze in jeder Sprache. Wir verwenden Δ (EN − KO), um den Unterschied zwischen englischen und koreanischen Ähnlichkeitswerten zu bezeichnen, dh Δ = Ähnlichkeit (Englisch) − Ähnlichkeit (Koreanisch).
| Bühne | Koreanische Ähnlichkeit | Englische Ähnlichkeit | Δ (EN − KO) |
|---|---|---|---|
| 0 | 0,4783 | 0,5141 | 0,0358 |
| 1 | 0,5235 | 0,5728 | 0,0492 |
| 2 | 0,5474 | 0,6140 | 0,0665 |
| 3 | 0,5616 | 0,7314 | 0,1698 |
| 4 | 0,5427 | 0,7398 | 0,1972 |
Wir haben ein interessantes Phänomen beobachtet: Die koreanische Ähnlichkeit nimmt zunächst zu und wird später von der englischen Ähnlichkeit überholt. Darüber hinaus ist das Wachstum der englischen Ähnlichkeit nicht linear, was eher auf ein phasenübergangsartiges Verhalten als auf eine allmähliche Drift hindeutet.
Wenn wir die Einbettungen mithilfe von PCA in zwei Dimensionen projizieren, beobachten wir eine gleichmäßige Flugbahn in den frühen Stadien, gefolgt von einem scharfen Richtungssprung zwischen Stufe 2 und Stufe 3 und anschließender Stabilisierung. Dieses Muster weist darauf hin, dass sich Einbettungen nicht linear durch den Raum bewegen; Stattdessen scheinen sie zwischen Attraktorbecken zu wechseln.

Modellverhalten in der realen Welt
Betrachten Sie noch einmal den Satz, den wir am Anfang erwähnt haben. Ich fragte:
A. „run.py有早停吗?我在恒源云上跑,发现没有触发“, was bedeutet: „Implementiert run.py ein frühes Stoppen? Ich habe das Projekt auf einem gemeinsam genutzten GPU-Dienst ausgeführt und habe nicht gesehen, dass ein vorzeitiges Stoppen ausgelöst wurde.“
B. „Beispiel: run.py“ (auf Koreanisch).
Zurück ins Chinesische übersetzt haben wir:
C. „Der Fehler wird behoben.Beispiel: run.py wird nicht verwendet.config.py wird verwendet, um USE_EARLY_STOPPING = True zu verwenden.“
Wir berechnen die Ähnlichkeiten von A, B und C mithilfe der Kosinusähnlichkeit zwischen Satzeinbettungen. Zum Vergleich definieren wir drei Referenzcluster: den chinesischen Cluster als durchschnittliche Einbettung allgemeiner chinesischer Sätze in natürlicher Sprache und die entsprechenden englischen und koreanischen Cluster.
| Textual content | Koreanische Sim | Englische Sim | Chinesische Sim |
|---|---|---|---|
| A. (chinesische Eingabeaufforderung) | 0,2003 | 0,2688 | 0,3134 |
| B. (koreanische Antwort) | 0,2745 | 0,2983 | 0,1641 |
| C. (Übersetztes Chinesisch) | 0,1634 | 0,3106 | 0,2798 |
Wie Sie sehen, führt die Rückübersetzung der koreanischen Antwort ins Chinesische nicht dazu, dass die Einbettung in die chinesische Area zurückgesendet wird. Stattdessen rückt es noch näher an die englischen Cluster heran.
Dies deutet darauf hin, dass die Übersetzung die Sprachform wiederherstellen könnte, aber wahrscheinlich nicht den Einbettungsort.
Abschluss
Beide Experimente kommen zu derselben Schlussfolgerung: Der Einbettungsraum ist nicht durch Sprachgrenzen organisiert. Stattdessen ist es eher nach Aufgabentypen strukturiert, wobei technisches Englisch vorherrscht.
Wenn ein Satz in diesen Bereich eintritt, kann sich die Sprachform ändern, aber die Einbettungsstruktur bleibt im technischen Becken, was zu seltsamen Verhaltensweisen führt, wie z. B. der Antwort auf Koreanisch, selbst wenn man überhaupt kein Koreaner spricht.
