GPT2语言模型到交互式叙事游戏

GPT-2是基于transformer的语言模型,规模巨大(在海量的数据集上进行训练)。

语言模型:用来计算一个句子的概率的模型,也就是判断一句话是否是人话的概率

GPT-2试用

示例模式1 - 无限制&乱说

1
python3 src/generate_unconditional_samples.py | tee samples

“|“这个通道符号之前是主要的调用代码,无限制生成文本片段

tee 是 linux 下的一个命令行工具,用于将产生的文本重定向到文件 samples 中

示例2 - 无限制生成文本

1
python3 src/generate_unconditional_samples.py --top_k 40 --temperature 0.7 | tee samples

其中最重要的那个参数可能是 temperature (温度), 这个参数调节输出的随机性,温度越高,随机性越强,越低,出现copy训练语料里说过的话的几率就越大具体实现应该是从 logits 到字典中字的 index 计算的 softmax 函数中加入温度参数 T。

示例3 - 交互式按照用户提示生成文本片段

1
python3 src/interactive_conditional_samples.py

输入开头后,GPT-2进行续写。

缺点:

  • 中文语料过少,以中文开头完全无正常续写;
  • 117M 小模型GPT-2 会很快的偏离主题,使得接下来的故事语法无大错,却无语义,无逻辑——即使是英文语料作为开头,编造的故事也与输入开头相关不大
  • GPT-2 345M模型的表现相较于117M小模型而言,非常优秀,除却一些隐喻不能理解之外,生成文本的相关性非常大;在用户提示的对话模式下,表现较为优秀,但还是有些段落仍与提示语无关
  • 774M大模型表现最好,能理解一些隐喻,对话也不怎么跑题

结论:

774M 大模型或许才可以勉强作为交互式叙事游戏的实际应用主体

RCT Studio 的混沌球

rct studio目前主推的混沌球算法(Chaos box)是其自研的Morpheus引擎中最核心的技术能力。混沌球能在封闭的多智能体环境下,通过仿真和强化学习,训练能够在游戏内动态生成内容,驱动剧情发展的模型。