Test de ruGPT-3 sur de nouveaux problĂšmes

SystÚmes de recommandation à partir de zéro, chatbots et plus



AprÚs avoir plongé dans l'abßme des données textuelles, nous avons formé en octobre de cette année les modÚles ruGPT-3 - des modÚles pour la langue russe basés sur l'architecture d'OpenAI. Mais de quoi ces modÚles sont-ils capables? Dans cet article, nous rassemblerons les premiers exemples d'application du modÚle - et en essayerons de nouveaux.



Nous présentons les premiers résultats du plus grand modÚle entraßné, ruGPT-3 Large, développé en collaboration avec les équipes SberDevices , Sber.AI et SberCloud . Explorons avec vous les limites de son application.



image



Lors de AI Journey de cette annĂ©e, nous avons prĂ©parĂ© un concours d' applications ruGPT-3 - toute solution utilisant un modĂšle, Ă©valuĂ©e Ă  trois Ă©chelles - innovation, engagement Ă©motionnel et applicabilitĂ© commerciale - peut ĂȘtre soumise Ă  la piste.



Divulgacher:
1




Comment recycler le modĂšle pour une nouvelle tĂąche?



Les modÚles et leur code se trouvent dans le référentiel sberbank-ai : vous pouvez utiliser la bibliothÚque de transformers ou Megatron-LM.



Dans cet article, je donne des exemples utilisant huggingface / transformers - le code des cas est donné ici:





Cartes de modĂšle dans la bibliothĂšque de transformateurs: Grand Moyen Petit



Lorsque vous exécutez le script de génération, il est plus facile de tout exécuter - puis d'attendre un peu le chargement du modÚle.



image



Le script dans la derniÚre cellule vous demandera d'entrer le début du texte - ma graine préférée: "Les scientifiques brésiliens ont découvert une espÚce rare de licornes naines qui vivent dans l'ouest du Jutland." Nous obtenons : Seul le ruGPT-3 Small s'intÚgre dans un ordinateur portable Colab, il est donc préférable d'utiliser des cartes avec plus de 14 Go de mémoire.



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







D'ailleurs, pendant toute la durée de la compétition, nous donnons aux participants de la piste accÚs aux installations de Christofari!

Pour les participants de la piste ruGPT-3, nous avons alloué 100 comptes - dans chaque compte 1 GPU Tesla V100-SXM3 32 Go gratuitement pendant la compétition.



Comment obtenir un compte?



1) Inscrivez-vous Ă  la piste ruGPT-3 (AI 4 Humanities) ods.ai/tracks/aij2020

2) Écrivez une courte lettre avec le nom de votre Ă©quipe et la tĂąche Ă  AIJ_ruGPT-3@sberbank.ru



image



Quelques coups vs réglage fin



Dans le cas de grands modÚles génératifs tels que les architectures de type GPT, il existe plusieurs façons de les «gérer».



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


?



Il peut ĂȘtre trĂšs coĂ»teux de recycler les grands modĂšles, donc cette façon de «communiquer» avec eux vous permet mĂȘme d'Ă©viter cela. L'essence de la programmation des semences est de sĂ©lectionner de tels exemples prĂ©parĂ©s et des dĂ©buts de gĂ©nĂ©ration, de sorte que le modĂšle produise exactement ce qui est nĂ©cessaire.



En choisissant les hyperparamÚtres "seed" et générateur (température, top_n, top_k), il est possible d'obtenir des réponses tout à fait tolérables grùce à un seul apprentissage préalable du modÚle.



image



Un exemple de départ avec 1 exemple et une description du problÚme.



Nous testerons les deux méthodes dans la pratique - nous essaierons de résoudre des problÚmes courants à partir de zéro et des problÚmes spécifiques - avec une formation supplémentaire.



SystĂšmes de recommandation



Faisons un systÚme de recommandation sans formation: nous soumettrons à ruGPT-3 De grandes informations sur les préférences de l'utilisateur sous forme de texte, et nous verrons comment le modÚle continue. Nous pouvons générer plusieurs options à la fois pour obtenir plus de recommandations.



Recommandations de films: pas mal! Au moins, les films semblent ĂȘtre gĂ©nĂ©rĂ©s en fonction de la graine. Comme je ne suis pas un connaisseur du cinĂ©ma soviĂ©tique, je ne connaissais mĂȘme pas le film "Trois plus deux", mais c'est le cas. Pour la gĂ©nĂ©ration, nous avons utilisĂ© les hacks suivants - nous avons spĂ©cialement fourni le texte avec un guillemet ouvert pour forcer le modĂšle Ă  gĂ©nĂ©rer des noms propres, et Ă©galement couper tout ce qui est inutile aprĂšs la premiĂšre phrase. Recommandations musicales:



: — “”, “”, “

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: , “ ”, “”, “ ”, “ ”, “” “”.



Les résultats sont différents tout le temps - vous pouvez potentiellement générer N variantes, extraire tous les noms de groupe et collecter le compteur des plus populaires - voilà, un systÚme de recommandation à partir de zéro.



Générer des avis



Prenons une tĂąche plus difficile - faisons en sorte que le modĂšle imite une personne dans des discussions ou des magasins: Comme vous pouvez le voir, pour des sujets rĂ©pandus sur Internet, le modĂšle peut gĂ©nĂ©rer des textes cohĂ©rents sans formation. Mais oĂč est-il toujours impossible sans formation supplĂ©mentaire? Il existe 3 cas de ce type:



: “ .

- ”

ruGPT-3 Large: “ .

- . , .”



: “ .

”

ruGPT-3 Large: “ .

.

, .

, , . , , .”



: .

"1+1"

ruGPT-3 Large: .

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











  1. format de données complexe - si, pendant la génération sans formation, vous perdez de la qualité en raison d'une génération dans le mauvais format - problÚme NER, génération de code, calculs symboliques, etc.
  2. , — QA , , , ;
  3. , , , — , .


StackOverflow



Élevons la barre de la complexitĂ©: tĂ©lĂ©chargez le [stack overflow] russe (https://ru.stackoverflow.com/) et essayez de crĂ©er un systĂšme de questions-rĂ©ponses. Pourrons-nous apprendre immĂ©diatement le style des rĂ©ponses, des connaissances et plusieurs langages de programmation? Il n'est pas facile d'obtenir un bon rĂ©sultat dans un problĂšme de taoki tout de suite, mais nous pouvons nous amuser - sur 5 Ă©poques, le modĂšle a appris Ă  reproduire le style, devenant trĂšs confus dans le contenu. Mais j'ai bien appris les liens vers la documentation - un assez bon rĂ©sultat pour 5 Ă©poques d'apprentissage.



Format de la formation: nous soumettons les textes des questions et des meilleures réponses au format Q: «blabla» A: «blabla». (il n'existe en fait aucune bibliothÚque de ce type, le modÚle a généré un lien vers la documentation)



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 )







Pour de telles tùches, vous pouvez entrer des arguments supplémentaires - par exemple, le nom de la section / sujet / langage de programmation, à propos de laquelle vous voulez répondre, et entraßner le modÚle sur des données de la forme {"paramÚtre": "valeur", "question": "text_question", "réponse": "Answer_text"}.



En ce qui concerne Ă  la fois le code et le texte, nous avons un fichier tout de suite - peut-ĂȘtre que quelqu'un fera mieux dans la piste? Il existe dĂ©jĂ  des implĂ©mentations assez rĂ©ussies sur le modĂšle de langue anglaise avec code: Ă©criture de code html d'Ă©lĂ©ments de page Web, gĂ©nĂ©ration de modĂšles Figma.



Essayer d'autres langues! Twitter et plus



La langue principale d'enseignement du modÚle est le russe, mais est-il possible d'appliquer le modÚle à des tùches multilingues? Quelques autres langues font toujours partie de l'échantillon de formation sur le Web, il y a donc de l'espoir. Une approche simple avec des graines montre que le modÚle en sait un peu plus sur le modÚle anglais: Eh bien, presque: Parfois cela ne fonctionne pas du tout: Pourquoi ne pas pratiquer sur des données purement anglaises: j'ai pris le jeu de données de classification Twitter-text du concours Kaggle. AprÚs 5 époques sur 5000 premiers commentaires (20 minutes en Colab ), nous obtenons une génération assez tolérable de commentaires trÚs toxiques en anglais:

ruGPT-3 Large:

—> cat

—> dog

—> pear

—> coder





—> cat

—> dog

—> pear

—> Python





—> cat

—> dog

—> pear

—> bunch #

—> dog

—> cat

—> dog



image











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!



SystĂšmes de dialogue



Déjà, sans pré-formation, l'application du modÚle aux systÚmes de dialogue fonctionne plutÎt bien: le modÚle peut exécuter la fonction de bavardage (ne parler de rien), en discutant librement sur divers sujets. Avec une formation supplémentaire sur des scénarios et des domaines spécifiques, vous pouvez implémenter des applications métier.

L'exemple ci-dessous est un exemple de dialogue sans formation, sur un sujet étroitement ciblé - l'assistance d'un fournisseur Internet.

Semis: 2 premiĂšres lignes - gĂ©nĂ©ration supplĂ©mentaire. Bien sĂ»r, sans prĂ©-formation, le modĂšle n'a pas une idĂ©e claire des scripts et des scripts des spĂ©cialistes du support, cependant, mĂȘme un tel dĂ©marrage Ă  froid montre dĂ©jĂ  la maniĂšre standard de «dĂ©couvrir ce qui s'est passĂ© - traĂźner - rediriger l'appel». Vous vous souvenez des classiques:

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: , , .



En gĂ©nĂ©ral, «il faut ĂȘtre patient». Le modĂšle s'est mĂȘme souvenu que le nom de User1 est Dmitry, et User2 lui a dit au revoir en consĂ©quence.



Au lieu d'une conclusion



Pour continuer à développer l'orientation des modÚles génératifs et améliorer les architectures dans les problÚmes de PNL, il est toujours nécessaire de comprendre les limites d'applicabilité d'une technologie particuliÚre - et sa pertinence.



Désormais, avec chaque version d'architectures similaires - Reformer, Longformer, BigBird, etc. - nous regardons les grands modÚles pré-formés d'une maniÚre légÚrement nouvelle, leur posant de nouveaux défis.



En plus des cas mentionnĂ©s ci-dessus, ruGPT-3 peut certainement ĂȘtre appliquĂ© et bĂ©nĂ©fique dans des pratiques telles que:



  • augmentation des donnĂ©es texte pour les tĂąches ML
  • modĂšles de dialogue pour l'automatisation
  • tĂąches de sommation gĂ©nĂ©rative
  • rĂ©Ă©criture, gĂ©nĂ©ration d'actualitĂ©s, notes sportives basĂ©es sur des informations structurĂ©es.


Espérons que les démos et les modÚles profiteront à la communauté - et amusants!



Et, bien sûr, nous attendons vos décisions sur la piste ruGPT-3 jusqu'à la fin du 22 novembre!



All Articles