Testen von ruGPT-3 auf neue Probleme

Empfehlungssysteme von Grund auf neu, Chatbots und mehr



Nachdem wir uns in den Abgrund der Textdaten gestĂŒrzt hatten, haben wir im Oktober dieses Jahres die ruGPT-3-Modelle trainiert - Modelle fĂŒr die russische Sprache, die auf der Architektur von OpenAI basieren. Aber wozu sind diese Modelle fĂ€hig? In diesem Artikel werden wir die ersten Beispiele fĂŒr die Anwendung des Modells sammeln - und neue ausprobieren.



Wir prĂ€sentieren die ersten Ergebnisse des grĂ¶ĂŸten trainierten Modells, ruGPT-3 Large, das in Zusammenarbeit mit den Teams SberDevices , Sber.AI und SberCloud entwickelt wurde . Lassen Sie uns mit Ihnen die Grenzen seiner Anwendung erkunden.



Bild



In diesem Jahr haben wir bei AI Journey einen Wettbewerb von Anwendungen vorbereitet. RuGPT-3 - jede Lösung, die ein Modell verwendet, das auf drei Skalen bewertet wird - Innovation, emotionales Engagement und geschÀftliche Anwendbarkeit können auf der Strecke eingereicht werden.



Spoiler:
1 Million Rubel fĂŒr den ersten Platz




Wie trainiere ich das Modell fĂŒr eine neue Aufgabe?



Modelle und Code dafĂŒr befinden sich im sberbank-ai- Repository : Sie können die Transformator-Bibliothek oder Megatron-LM verwenden.



In diesem Artikel stelle ich Beispiele fĂŒr Huggingface / Transformatoren vor - der Code fĂŒr die FĂ€lle ist hier angegeben:





Modellkarten in der Transformatorbibliothek: Groß Mittel Klein



Wenn Sie das Generierungsskript ausfĂŒhren, ist es einfacher, alle auszufĂŒhren - und dann ein wenig zu warten, wĂ€hrend das Modell geladen wird.



Bild



Das Skript in der letzten Zelle fordert Sie auf, den Anfang des Textes einzugeben - mein Lieblingssamen: "Brasilianische Wissenschaftler haben eine seltene Art von Zwerg-Einhörnern entdeckt, die im Westen JĂŒtlands leben." Wir bekommen : Nur ruGPT-3 Small passt in einen Colab-Laptop, daher ist es besser, Karten mit mehr als 14 GB Speicher zu verwenden.



ruGPT-3 Small: , . Agence France-Presse. , Pygmaliona (. Pygmaliona pygmalioni), . 30 , — 1 . . , .







Übrigens gewĂ€hren wir den Teilnehmern der Strecke fĂŒr die Dauer des Wettbewerbs Zugang zu den Einrichtungen von Christofari!

FĂŒr die Teilnehmer des ruGPT-3-Tracks haben wir 100 Konten zugewiesen - in jedem Konto 1 GPU Tesla V100-SXM3 32 GB kostenlos wĂ€hrend des Wettbewerbs.



Wie bekomme ich ein Konto?



1) Registrieren Sie sich fĂŒr den Track ruGPT-3 (AI 4 Humanities) ods.ai/tracks/aij2020

2) Schreiben Sie einen kurzen Brief mit dem Namen Ihres Teams und der Aufgabe an AIJ_ruGPT-3@sberbank.ru



Bild



Wenigschuss gegen Feinabstimmung



Bei großen generativen Modellen wie GPT-Ă€hnlichen Architekturen gibt es verschiedene Möglichkeiten, diese zu "handhaben".



  • : «» — . (GPT-3 ), . ( « → ») .
  • : , « » (. «prompt engineering» — , , .


?



Die Umschulung großer Modelle kann sehr teuer sein. Durch diese Art der "Kommunikation" mit ihnen können Sie sogar dies vermeiden. Die Essenz der Seed-Programmierung besteht darin, solche vorbereiteten Beispiele und AnfĂ€nge fĂŒr die Generierung auszuwĂ€hlen, damit das Modell genau das produziert, was benötigt wird.



Durch Auswahl der Hyperparameter "Seed" und Generator (Temperatur, top_n, top_k) können nur aufgrund des vorlÀufigen Trainings des Modells akzeptable Antworten erzielt werden.



Bild



Ein Beispiel fĂŒr einen Startwert mit einem Beispiel und einer Beschreibung des Problems.



Wir werden beide Methoden in der Praxis testen - wir werden versuchen, beliebte und spezifische Probleme von Grund auf neu zu lösen -, um sie durch zusÀtzliches Training zu lösen.



Empfehlungssysteme



Lassen Sie uns ein Empfehlungssystem ohne Schulung erstellen: Wir werden ruGPT-3 große Informationen ĂŒber die PrĂ€ferenzen des Benutzers in Form von Text ĂŒbermitteln und beobachten, wie das Modell es fortsetzt. Wir können viele Optionen gleichzeitig generieren, um weitere Empfehlungen zu erhalten.



Filmempfehlungen: Nicht schlecht! Zumindest scheinen die Filme entsprechend dem Samen erzeugt zu werden. Da ich kein Kenner des sowjetischen Kinos bin, kannte ich den Film "Drei plus zwei" nicht einmal, aber er ist es. FĂŒr die Generierung haben wir die folgenden Hacks verwendet: Wir haben speziell Text mit einem offenen AnfĂŒhrungszeichen geliefert, um das Modell zu zwingen, Eigennamen zu generieren, und alle unnötigen nach dem ersten Satz abgeschnitten. Musikempfehlungen:



: — “”, “”, “

ruGPT-3 Large: — “”, “”, “ ”, “ ”, “ ”.

ruGPT-3 Large: — “”, “”, “ ”, “”, “” (, , , ).

ruGPT-3 Large: — “”, “”, “” .”



: : “ ”, “

ruGPT-3 Large: : “ ”, “ ” “ ”.

ruGPT-3 Large: : “ ”, “ ”.

ruGPT-3 Large: : “ ”, “ ”, “ ” .











: “ , “ ”, “ #( , )

ruGPT-3 Large: , “ ”, “” “”.

ruGPT-3 Large: , “ ”, “” “ ”.

ruGPT-3 Large: , “ ”, “”, “ ”, “ ”, “” “”.



Die Ergebnisse sind stÀndig unterschiedlich - Sie können möglicherweise N Varianten generieren, alle Gruppennamen extrahieren und den ZÀhler der beliebtesten sammeln - voila, ein Empfehlungssystem von Grund auf neu.



Bewertungen generieren



Nehmen wir eine schwierigere Aufgabe an - lassen Sie das Modell eine Person in Diskussionen oder GeschĂ€ften nachahmen: Wie Sie sehen, kann das Modell fĂŒr im Internet weit verbreitete Themen kohĂ€rente Texte ohne Schulung generieren. Aber wo gibt es noch keinen Weg ohne zusĂ€tzliches Training? Es gibt 3 solcher FĂ€lle:



: “ .

- ”

ruGPT-3 Large: “ .

- . , .”



: “ .

”

ruGPT-3 Large: “ .

.

, .

, , . , , .”



: .

"1+1"

ruGPT-3 Large: .

"1+1" — , . . . . " ", .











  1. komplexes Datenformat - wenn Sie wÀhrend der Generierung ohne Training aufgrund der Generierung im falschen Format an QualitÀt verlieren - NER-Problem, Codegenerierung, symbolische Berechnungen usw.;
  2. , — QA , , , ;
  3. , , , — , .


StackOverflow



Erhöhen wir die KomplexitĂ€t: Laden Sie Russisch [StapelĂŒberlauf] (https://ru.stackoverflow.com/) herunter und versuchen Sie, ein Frage-Antwort-System zu erstellen. Werden wir in der Lage sein, sofort sowohl den Stil der Antworten als auch das Wissen und mehrere Programmiersprachen zu lernen? Es ist nicht einfach, bei einem Taoki-Problem sofort ein gutes Ergebnis zu erzielen, aber wir können Spaß haben - ĂŒber 5 Epochen hat das Modell gelernt, den Stil zu reproduzieren, da es inhaltlich sehr verwirrt ist. Aber ich habe die Links zur Dokumentation gut gelernt - ein ziemlich gutes Ergebnis fĂŒr 5 Lernperioden.



Trainingsformat: Wir senden die Texte der Fragen und besten Antworten im Format Q: ”blabla” A: ”blabla”. (Es gibt eigentlich keine solche Bibliothek, das Modell hat einen Link zur Dokumentation generiert)



Q: python?

A: : push.log("Shalom").

- , .

set.log()**)

rGet = puts.random(extents) log.findIndex(puts.current) void join($window, command='unsetMainServer onManager') }

,



Q: python?

A: import pycode as pyc;

// ( href=https://docs.python.org/3/library/pycode.html )







FĂŒr solche Aufgaben können Sie zusĂ€tzliche Argumente eingeben, z. B. den Namen des Abschnitts / Betreffs / der Programmiersprache, auf den Sie antworten möchten, und das Modell anhand von Daten der Form {"Parameter": "Wert", "Frage": "Fragetext", "Antwort" trainieren: "Antworttext"}.



Sowohl in Bezug auf den Code als auch in Bezug auf den Text haben wir sofort eine Datei - vielleicht macht es jemand besser in der Spur? Es gibt bereits recht erfolgreiche Implementierungen des englischsprachigen Modells mit Code: Schreiben von HTML-Code von Webseitenelementen, Generieren von Figma-Vorlagen.



Andere Sprachen ausprobieren! Twitter und mehr



Die Hauptsprache des Modellunterrichts ist Russisch. Ist es jedoch möglich, das Modell in mehrsprachigen Aufgaben anzuwenden? Ein paar andere Sprachen fallen immer aus dem Internet in das Trainingsbeispiel, also gibt es Hoffnung. Der unkomplizierte Ansatz mit Seeds zeigt, dass das Modell ein wenig ĂŒber das englische Modell weiß: Nun, fast: Manchmal funktioniert es ĂŒberhaupt nicht: Warum nicht mit rein englischen Daten ĂŒben: Ich habe den Datensatz zur Klassifizierung von Twitter-Texten aus dem Kaggle-Wettbewerb genommen. Nach 5 Epochen mit fĂŒnftausend ersten Kommentaren (20 Minuten in Colab ) erhalten wir eine ziemlich ertrĂ€gliche Erzeugung sehr toxischer Kommentare auf Englisch:

ruGPT-3 Large:

—> cat

—> dog

—> pear

—> coder





—> cat

—> dog

—> pear

—> Python





—> cat

—> dog

—> pear

—> bunch #

—> dog

—> cat

—> dog



Bild











Context >>> Is it

ruGPT-3 Small: Is it's the case that #Microsoft is using #SAP to manage #Microsoft’s business?



Context >>> It is

ruGPT-3 Small: It is the only one that I've been trying to do. Siri is on the verge of death, and I'm not aware of why she has to be on the verge.



Context >>> Why

ruGPT-3 Small: Why do I go here? I'm wondering if I can use the #Microsoft Windows 8 Pro for the #WindowsPhone phone? Thanks!



Dialogsysteme



Bereits ohne Vorschulung funktioniert die Anwendung des Modells auf Dialogsysteme recht gut: Das Modell kann die Chit-Chat-Funktion ausfĂŒhren (ĂŒber nichts sprechen) und frei ĂŒber verschiedene Themen chatten. Mit zusĂ€tzlichen Schulungen zu bestimmten Szenarien und DomĂ€nen können Sie GeschĂ€ftsanwendungen implementieren.

Das folgende Beispiel ist ein Beispiel fĂŒr einen Dialog ohne Schulung zu einem eng fokussierten Thema - der UnterstĂŒtzung eines Internetanbieters.

Aussaat: erste 2 Linien - weitere Generation. NatĂŒrlich hat das Modell ohne Vorschulung keine klare Vorstellung von den Skripten und Skripten der Support-Spezialisten, aber selbst ein solcher Kaltstart zeigt bereits die Standardmethode, um „herauszufinden, was passiert ist - rumhĂ€ngen - den Anruf umleiten“. Sie können sich an die Klassiker erinnern:

User1: , ! ?

User2: .

User1: ?

User2: 500

User1: ?

User2: . .. .

User1: ?

User2: . , - ...

User1: , , , , ?

User2:

User1: , . , .

User2: , . .

User1: . , , .

User2: , , ?

User1: ?

User2: . .

User1: ?

User2:

User1: . .

User1: , . - .

User2: , .

User1:

User2:





User1: «», 656, , .

User2: , 766—1669, : , , , , , , ?

User1: 1 . , , .

User2: , , , - ?

User1: , 1 . , - , , , . .

User2: , , , , - .

User1: .

User2: , ?

User1: , , .

User2: , , .



Im Allgemeinen "mĂŒssen Sie geduldig sein." Das Modell erinnerte sich sogar daran, dass Benutzer1 Dmitry heißt, und Benutzer2 verabschiedete sich entsprechend von ihm.



Anstelle einer Schlussfolgerung



Um die Richtung generativer Modelle weiterzuentwickeln und Architekturen bei NLP-Problemen zu verbessern, ist es immer notwendig, die Grenzen der Anwendbarkeit einer bestimmten Technologie - und ihre Relevanz - zu verstehen.



Jetzt mit jeder Veröffentlichung Ă€hnlicher Architekturen - Reformer, Longformer, BigBird usw. - Wir betrachten große vorgefertigte Modelle auf eine etwas neue Art und Weise und stellen sie vor neue Herausforderungen.



ZusÀtzlich zu den oben genannten FÀllen kann ruGPT-3 definitiv angewendet werden und ist vorteilhaft in Praktiken wie:



  • Erweiterung von Textdaten fĂŒr ML-Aufgaben
  • Dialogmodelle fĂŒr die Automatisierung
  • generative Summationsaufgaben
  • Umschreiben, Generieren von Nachrichten, Sportnotizen basierend auf strukturierten Informationen.


Hoffentlich kommen die Demos und Modelle der Community zugute - und machen Spaß!



Und natĂŒrlich warten wir bis Ende November auf Ihre Entscheidungen auf der ruGPT-3-Strecke!



All Articles