我们很高兴向您展示我们的开发成果 -基于 Transformer 架构的 Discord 俄语聊天机器人。
该神经网络在一个 epoch ( GTX 1080上 5 天)内接受了来自最流行的俄语Discord服务器的3600 万条以上公开消息的训练。训练基于这样的原则:在字符三元组嵌入级别上,哪条消息最有可能在前 10 条消息之后发送。
该机器人不使用现成的消息数据库,而是生成新的独特消息,在 Transformer 架构上实现 seq2seq 概念。网络的基础取自TensorFlow 2教程。
这种模式在 2019 年很有意义,但很快就过时了。您可以通过关注这里找到更好、更现代的东西。
我们走吧!
在2 个 2.6 GHz CPU + 4 GB RAM上测试。
Install launcher for all users (recommended)
和Add Python 3.8 to PATH
scipy
所需Git Bash Here
打开Git Bashgit clone https://github.com/sergree/DolboNet
cd DolboNet
pip install -r requirements.txt
config.py
配置文件,将机器人令牌插入token = "..."
python bot.py
该机器人只能在64 位Windows和Python上运行。
在2 个 2.6 GHz CPU + 2 GB RAM上测试。
git clone https://github.com/sergree/DolboNet
cd DolboNet
pip3
,请安装它: sudo apt install python3-pip
pip3 install -r requirements.txt
nano config.py
,将bot token插入token = "..."
python3 bot.py
如果机器有NVIDIA显卡,那么您可以使用CUDA运行机器人,这将提高其速度。
tensorflow
: pip uninstall tensorflow
pip install tensorflow-gpu>=2.3.1
或pip install -r requirements_gpu.txt
在config.py
文件中,您可以编辑一些参数来更改机器人的性质和行为:
temperature
- 采样温度 - 调节生成文本的性质和多样性意义 | 描述 |
---|---|
0.01 | 我只知道你好这个词 |
0.3 | 重复鹦鹉 |
0.65 | 默认 |
1.3 | 醉诗人 |
3 | 趴在键盘上睡着了 |
为了便于实验,可以将!temp значение
命令发送到Discord以动态编辑该值。该命令仅适用于具有管理员权限的用户。
mention_prob
- 机器人响应提及它的消息的概率。可以取0
到1
之间的值。默认值: 1
,即100%no_mention_prob
- 机器人响应未提及的消息的概率。可以取0
到1
之间的值。默认值: 0.2
,即20%command_temperature_change
- 如果您不喜欢!temp значение
,可以使用命令更改温度?use_delay
- 模拟人类在键盘上打字的速度,默认为False
,因为在CPU上生成过程不够快discord_game_name
- Discord中的机器人状态最好不要编辑其余参数。
☕ 如果你对项目的开发感兴趣,可以请我喝杯咖啡。 ☕
谢谢你!
我有半个服务器都是这样的白痴,为什么我还需要另一个呢?
但说实话,只有一个原因。
您托管这个机器人吗?我可以使用公共版本吗?给我一个链接!
关联。该机器人并不总是可用,有时响应缓慢。我们不托管该机器人的公共版本。为了让它出现在您的Discord服务器上,必须安装它。
哪些服务器已经安装了这个机器人?
我们知道该机器人已经托管在这里:
请写信给我们以加入此名单。
他基本上是在发出语无伦次的废话。 ?
是的,有这样的事情。但有时结果很有趣。
这是无用的废话,明白吗?
当然。就像我们现代世界中的许多其他事物一样。
该机器人向我发送了侮辱或威胁!混乱! ?
机器人的神经网络仅反映进行训练的公共数据。也许这给我们的社会敲响了警钟。反正我们也不想。
英语呢?
在这个阶段,我们决定不在拉丁三字词上浪费网络容量。使用opendatakosovo/cyrillic-transliteration将拉丁语自动音译为西里尔语。我们测试了许多类似的库,这个是最快的。
为什么是卦象?
因为他伟大而强大。当然,这个想法不是我们的,而是取自本书。
也许使用词干分析会更好?
不是在这种情况下。因为聊天中的人们总是在谈论错误,有时甚至是胡言乱语。有时是translitom,ile fse vmesti。 ?
整理维基百科或新闻提要是另一回事。
他也可以发表情符号吗?
是的。暂时只是随机的。所有自定义表情符号都会在字典中分配一个标记。未来,有计划将CNN与分类器联系起来。
您刚刚复制了TensorFlow 2的指南,您自己做了什么?
LSTM呢?
我们就把它留在这里。
接下来怎么办?
?