从头开始推荐系统,聊天机器人等
陷入文本数据的深渊之后,今年10月,我们训练了ruGPT-3模型-基于OpenAI架构的俄语模型。但是这些模型能做什么?在本文中,我们将收集应用模型的第一个示例-并尝试新的示例。
我们展示了与SberDevices,Sber.AI和SberCloud团队合作开发的最大训练模型ruGPT-3 Large的初步结果。让我们一起探索它的应用范围。
在今年的AI之旅,我们准备了一个竞争的应用ruGPT-3 -创新,情感投入和业务应用- -使用模型,评估了三个尺度的任何解决方案可以提交给轨道。
扰流板:
一百万卢布
如何为新任务训练模型?
模型及其代码在sberbank-ai存储库中:您可以使用转换器库或Megatron-LM。
在本文中,我提供了使用huggestface / translators的示例-案例代码在此处给出:
- 微调的Colab笔记本电脑型号
- 刚刚生成Colab笔记本电脑
模卡在变压器库:大 中 小
当您运行生成脚本,这是容易做到运行所有-然后等待一小会儿模型被加载。
最后一个单元格中的脚本将要求您输入文本的开头-我最喜欢的种子:“巴西科学家发现了一种稀有的侏儒独角兽物种,它们生活在日德兰半岛的西部。”我们 得到:只有ruGPT-3 Small可以装入Colab笔记本电脑,因此最好使用内存超过14Gb的卡。
ruGPT-3 Small: , . Agence France-Presse. , Pygmaliona (. Pygmaliona pygmalioni), . 30 , — 1 . . , .
顺便说一下,在比赛进行期间,我们为赛道参与者提供使用Christofari设施的机会!
对于ruGPT-3赛道的参与者,我们在比赛中免费分配了100个帐户-每个帐户中免费分配了1个GPU Tesla V100-SXM3 32 Gb GPU。
我如何获得帐户?
1)注册ruGPT-3(AI 4人文学科)轨道ods.ai/tracks/aij2020
2)写一封简短的信,写上您的团队名称和任务到AIJ_ruGPT-3@sberbank.ru
微调与微调
对于大型生成模型(如类似GPT的体系结构),有几种“处理”它们的方法。
?
重新训练大型模型可能非常昂贵,因此通过这种与它们“通信”的方式甚至可以避免这种情况。种子编程的本质是选择此类准备好的示例和生成的起点,以便使模型进一步产生所需的内容。
选择“种子”和生成器超参数(温度,top_n,top_k),由于仅对模型进行初步训练,就有可能获得完全可接受的答案。
一个种子的例子,并带有一个例子和问题的描述。
我们将在实践中测试这两种方法-我们将尝试通过额外的培训从头解决流行的问题以及特定问题。
推荐系统
让我们建立一个未经培训的推荐系统:我们将以文本形式向ruGPT-3提交有关用户首选项的大量信息,并且我们将观察模型如何继续下去。我们可以一次生成许多选项以获得更多建议。
电影推荐: 还不错!至少薄膜似乎是根据种子产生的。由于我不是苏联电影鉴赏家,所以我什至都不知道电影《三加二》,但事实并非如此。在这一代中,我们使用了以下技巧-我们特别为文本提供了一个引号,以强制模型生成专有名称,并在第一句之后删除所有不必要的名称。音乐推荐:
: — “”, “”, “
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: , “ ”, “”, “ ”, “ ”, “” “”.
结果始终是不同的-您可能会生成N个变体,提取所有组名并收集最受欢迎的Counter-voila,这是从头开始的推荐系统。
产生评论
让我们承担一个更加艰巨的任务-让我们的模型在讨论或商店中模仿一个人: 如您所见,对于Internet上广泛传播的主题,该模型无需培训即可生成连贯的文本。但是,如果没有其他培训,仍然没有办法? 共有3种情况:
: “ .
- ”
ruGPT-3 Large: “ .
- . , .”
: “ .
”
ruGPT-3 Large: “ .
.
, .
, , . , , .”
: .
"1+1"
ruGPT-3 Large: .
"1+1" — , . . . . " ", .
- 复杂的数据格式-如果在未经培训的生成过程中由于生成格式错误而导致质量下降-NER问题,代码生成,符号计算等;
- , — QA , , , ;
- , , , — , .
StackOverflow
让我们提高复杂度:下载俄语[stack stackover](https://ru.stackoverflow.com/)并尝试制作一个问答系统。我们是否能够立即学习答案和知识以及几种编程语言?马上要解决taoki问题并不容易,但是我们可以从中获得乐趣-历经5个世纪,模型学会了重现样式,内容非常混乱。但是我很好地了解了与文档的链接-在5个学习时代中都取得了不错的成绩。
培训格式:我们以Q:“ blabla”答:“ blabla”格式提交问题和最佳答案。 (实际上没有这样的库,该模型生成了到文档的链接)
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 )
对于此类任务,您可以输入其他参数-例如,您要回答的部分/主题/编程语言的名称,并以{“ parameter”:“ value”,“ question”:“ question_text”,“ answer”形式的数据训练模型: “ Answer_text”}。
就代码和文本而言,我们马上就有一个文件-也许有人会在赛道上做得更好?在使用代码的英语模型上已经有相当成功的实现:编写网页元素的html代码,生成Figma模板。
尝试其他语言!Twitter等
教授模型的主要语言是俄语,但是可以将模型应用于多语言任务吗?网路上的训练样本总是有其他几种语言出现,所以很有希望。带有种子的简单方法表明该模型对英语模型有所了解: 嗯,几乎: 有时它根本不起作用: 为什么不对纯英语数据进行练习:我从Kaggle竞赛中获取了twitter-text-classification数据集。 在5千个第一批评论之后(在Colab中为20分钟),我们得到了可以忍受的非常有毒的英文评论:
ruGPT-3 Large:
—> cat
—> dog
—> pear
—> coder
—> cat
—> dog
—> pear
—> Python
—> cat
—> dog
—> pear
—> bunch #
—> dog
—> cat
—> dog
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!
对话系统
在没有预训练的情况下,将模型应用于对话系统已经可以很好地工作:模型可以执行聊天功能(不讨论任何内容),可以自由讨论各种主题。通过对特定方案和领域的额外培训,您可以实施业务应用程序。
下面的示例是一个对话的示例,该对话未经培训,只针对一个狭窄的主题-Internet提供商支持。
播种:前两行-进一步的繁殖。 当然,在没有预训练的情况下,该模型对支持专家的脚本和脚本没有清晰的想法,但是,即使这样的冷启动也已经显示出``找出发生了什么-挂断-重定向呼叫''的标准方法。您可以记住经典:
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: , , .
通常,“您必须要有耐心”。该模型甚至还记得User1的名字是Dmitry,因此User2跟他说了再见。
而不是结论
为了继续发展生成模型的方向并改善NLP问题中的体系结构,始终有必要了解特定技术的适用范围及其相关性。
现在,随着类似体系结构的每个发行版-Reformer,Longformer,BigBird等。-我们以一种稍微新颖的方式看待大型的预训练模型,这给他们带来了新的挑战。
除上述情况外,ruGPT-3绝对可以应用在以下实践中并从中受益:
- ML任务的文本数据扩充
- 自动化对话模型
- 生成求和任务
- 基于结构化信息的重写,新闻生成,运动记录。
希望演示和模型可以使社区受益,而且很有趣!
而且,当然,我们正在等待您在ruGPT-3轨道上做出的决定,直到11月22日为止!