ChineseAiDungeon开发log - 2
Wed, Jul 07, 2021 in Interesting
作者在一篇博客( https://towardsdatascience.com/the-creator-of-ai-dungeon-2-shares-gpt-2-finetuning-advice-e5800df407c9 )里提到了一种他用于处理重复content的方法:
Q: You also modified your model to cut down on repetition in GPT-2 output. Could you explain that?
A: In the Salesforce CTRL model they add a penalty to the probabilities of generating a word that has already been generated dividing it’s log odds by something like 1.2.
This helps keep the model from getting stuck saying the same word or set of words. Because of that, the CTRL model was able to use a much lower temperature than GPT-2 (which needed a high temperature to prevent repetition). By adding this penalty to GPT-2, I was able to reduce the temperature down to 0.4 which helps coherence, while still avoiding repetition (for the most part)
博客中所提及的论文是 https://arxiv.org/abs/1909.05858
文中提到
查到,在ai dungeon中,使用了如下参数:
https://github.com/Latitude-Archives/AIDungeon/blob/develop/generator/gpt2/gpt2_generator.py#L17
class GPT2Generator:
def __init__(self, generate_num=60, temperature=0.4, top_k=40, top_p=0.9, censor=True, force_cpu=False):
self.generate_num = generate_num
self.temp = temperature
self.top_k = top_k
self.top_p = top_p
self.censor = censor
我应该也用类似的参数配置设置一下看看
另外,在
https://github.com/Latitude-Archives/AIDungeon/blob/develop/generator/gpt2/src/sample.py#L5
我也找到了一段有趣的代码:
def penalize_used(logits, output):
# I want to change the indices of logits wherever the index is found in output
change_tensor = tf.zeros_like(logits, dtype=logits.dtype)
unique = tf.unique(output[0])[0]
ones = tf.ones_like(unique, dtype=unique.dtype)
indices = tf.expand_dims(unique, 1)
updates = tf.scatter_nd(indices, ones, [logits.shape[1]])
bool_tensor = tf.expand_dims(tf.cast(updates, tf.bool), 0)
return tf.compat.v1.where(bool_tensor, logits * 0.85, logits)
这段代码对应博客中提到的重复问题,也应该加上试试,反正是inference的时候用的,不加白不加
07/08记录
2021-07-08 10:40:27 星期四
又经过一晚上天龙八部的finetune,训练了48epoch,这样整个训练过程大概有100epoch左右。这个实验的目的就是尝试更久的(更过拟合的训练)是否能yield更好的上下文结果。
train loss收敛到2.15左右,test loss 收敛在2.85
几个生成结果语段,使用参数p=0.95,k=8:
段誉和王语嫣面面相对,呼吸可闻,虽身处污泥,心中却充满了喜乐之情,谁也没想到要爬出井去。两人同时慢慢的伸出手来,四手相握,心意相通。
突然间一只硕大的手掌从天而降,砰的一声,打在了王语嫣头上。
王语嫣“啊”的一声,向后便倒,摔在井中。众人都惊叫起来。原来那人手掌打落,便将王语嫣从井中提起,向井壁上撞去。王语嫣只觉身子冰冷,但随即觉得一只柔软之极的手掌搂住了自己,只觉头颈相撞,身子也是一荡。她身子虽在水面上,却似在峭壁之上,头颈相撞,登时晕死。
那人手掌又向井中一探,喀喇一声,井壁上裂开了一道大缝,那人便钻了下去。王语嫣惊叫一声,随即晕去。众人这才省起,适才在井中所看到的情形,都是那人施了妙手空空的手段,将王语嫣救了出来。
那人在井中潜行了一阵,将王语嫣放在一个岩石之后,解下腰间的铁剑,从井口中探首而出,将铁剑插入井中,将铁剑插入石缝之中,轻轻巧巧的挑断了铁剑的铁链,然后将铁剑插入铁环之中,将铁索缠紧了,再从边上拔了一条铁棒来,将铁棒在铁环上一挑,再将铁棒插入铁环之中,如此这般,铁棒上铁链,铁棒上铁环,铁索上铁棒,铁棍上铁环,终于将王语嫣的头颈和身子连在一起,架在了井中。他在井中站定,凝神看她一眼,又向王语嫣瞧去,终于点了点头,伸手在身上衣衫一拂,脱去身上
段誉和王语嫣面面相对,呼吸可闻,虽身处污泥,心中却充满了喜乐之情,谁也没想到要爬出井去。两人同时慢慢的伸出手来,四手相握,心意相通。
段誉说道:“你说得不错,我们是天生的一对。”
王语嫣听见段誉和木婉清、钟灵的恋情,想起其父王处一对他们的待遇,想起父亲当年的冤屈,想起段皇爷的淫威,又想起师父、师叔、师姊、师妹的师父、师叔、师姊、师姊的师父、师姊、师妹、师姊的师兄、师姊、师姊、师姊的师弟、师姊妹的女弟子,一时之间,不由得百感交集,黯然神伤。
忽听得有人说道:“姊夫是大理段公子,我是王姑娘。”这声音娇柔,正是钟灵的声音。段誉一听这声音,心念一动,登时想起了“王姑娘”三个字,当即跃出井口,说道:“你来这里,是为了解开我的毒针,对不对?我此刻便带你回大理去。”
钟灵道:“我不是来解开你的毒针的,我是来......”却说不出下半句话来。
段誉道:“我也不是来救你性命的,我......我是来......我是来......跟你说几句知心话,待会儿再和你说话。”他想到王语嫣对“段公子”的情谊,心中感激,只不过不便出口,便以话套话,说什么话都无所谓。段誉心道:“王姑娘是我妹子,我这般待她,当真是有错。”
王语嫣道
段誉和王语嫣面面相对,呼吸可闻,虽身处污泥,心中却充满了喜乐之情,谁也没想到要爬出井去。两人同时慢慢的伸出手来,四手相握,心意相通。
段誉心中想到:“我和这位王姑娘,虽说已结下了梁子,但若说到将来要做夫妻,那可是万万不能。但是我对她一片真心,说什么也不能叫她离开我身边。”
王语嫣见到段誉和她四手相握,心中一荡,脸上神色登即转为羞涩,低声道:“段公子,多谢你的大恩大德。但我......我......你......我......”段誉道:“我怎说得上什么大恩大德?”
王语嫣低声道:“我......我......我......我......我......我......”低声下气的道:“段公子,咱们是‘姑苏慕容’,我这个小婢子,怎能和‘慕容公子’相比?”段誉见她如此低声下气,心下恼怒异常,朗声道:“王姑娘,你是大理国的公主,我段誉臣是大理国的段公子,我是你的表哥。这中间的道理,难道你不明白么?”
王语嫣低声说道:“我的表哥......他......他......他不肯......他不肯跟我一起......跟我......我......”段誉一呆,心道:“王姑娘是我表妹,她说:‘表哥,我和阿朱是表姊妹,阿朱是妹妹,表姊妹是亲姐妹。我的表哥不喜欢我,难道他不该喜欢我么?’”又想:“阿朱是我表妹,她说:‘阿朱和我是表姊妹,阿朱和阿朱是妹妹,表姊妹是亲姐妹,我的表妹不喜欢我,难道她不该
这几段语段的连贯性,比昨天训练了一晚上的生成结果相比,连贯性上好了很多,说明在一些文章上过拟合还是很重要的。
昨天的log里提到了ai dungeon的参数配置 (1)temperature=0.4, top_k=40, top_p=0.9
和其采用了 (2)penalize_used
来避免重复。下面分别计划把这两个trick加上去。
首先将采样函数改成:
def top_p_sample(logits, num_samples=1, p=0.9,k=40,temperature=0.4):
batch_size, vocab_size = logits.shape
probs = tf.nn.softmax(logits / temperature, axis=-1)
...
和ai dungeon对齐
生成的语段:
段誉和王语嫣面面相对,呼吸可闻,虽身处污泥,心中却充满了喜乐之情,谁也没想到要爬出井去。两人同时慢慢的伸出手来,四手相握,心意相通。
段誉道:“阿朱,你......你......你也来了?”阿朱道:“我,我......我......”
段誉道:“你,你也来了?”阿朱道:“我......我......”
段誉道:“你,你也来了?”阿朱道:“我......我......”
段誉道:“你也来了?”阿朱道:“我......我......”
段誉道:“你也来了?”阿朱道:“我......我......”
段誉道:“你也来了?”阿朱道:“我......我......”
段誉道:“你也来了?”阿朱道:“我......我......”
段誉道:“你也来了?”阿朱道:“我......我......”
段誉道:“你也来了?”阿朱道:“我......我......”
段誉道:“你也来了?”阿朱道:“我......我......”
段誉道:“你也来了?”阿朱道:“我......我......”
段誉道:“你也来了?”阿朱道:“我......我......”
段誉道:“你也来了?”阿朱道:“我......我......”
段誉道:“你也来了?”阿朱道:“我......我......”
段誉道:“你也来了?”阿朱道:“我......我......”
段誉和王语嫣面面相对,呼吸可闻,虽身处污泥,心中却充满了喜乐之情,谁也没想到要爬出井去。两人同时慢慢的伸出手来,四手相握,心意相通。
段誉见到王语嫣的脸庞,见到她嘴角边的微笑,见到她眼睛中的光彩,见到她嘴唇上的温暖,见到她嘴唇上的柔嫩,见到她眼睛中的温柔,见到她眼睛中的光彩,见到她嘴唇上的温暖,见到她眼睛中的温柔,见到她嘴唇上的温柔,见到她眼睛中的光彩,见到她嘴唇上的温柔,见到她眼睛中的光彩,见到她嘴唇上的温柔,见到她眼睛中的光彩,见到她嘴唇上的温柔,见到她眼睛中的温柔,见到她眼睛中的光彩,见到她嘴唇上的温柔,见到她眼睛中的温柔,见到她嘴唇上的温柔,见到她眼睛中的温柔,见到她眼睛中的温柔,见到她嘴唇上的温柔,见到她眼睛中的温柔,见到她眼睛中的温柔,见到她嘴唇上的温柔,见到她眼睛中的温柔,见到她眼睛中的温柔,见到她嘴唇上的温柔,见到她眼睛中的温柔,见到她眼睛中的温柔,见到她嘴唇上的温柔,见到她眼睛中的温柔,见到她眼睛中的温柔,见到她眼睛中的温柔,见到她嘴唇上的温柔,见到她眼睛中的温柔,见到她眼睛中的温柔,见到她眼睛中的温柔,见到她眼睛中的温柔,见到她眼睛中的温柔,见到她眼睛中的温柔,见到她眼睛中的温柔,见到她眼睛中的温柔,见到她眼睛中的温柔,见到她眼睛中的温柔,见到她眼睛中的温柔,见到她眼睛中的温柔,见到她眼睛中的温柔,见到她眼睛中的温柔,见到她眼睛中的温柔,见到她眼睛中的温柔,见到
段誉和王语嫣面面相对,呼吸可闻,虽身处污泥,心中却充满了喜乐之情,谁也没想到要爬出井去。两人同时慢慢的伸出手来,四手相握,心意相通。
段誉见到王语嫣的手,心中一酸,道:“王姑娘,你......你......”王语嫣道:“我是你的王姑娘,你是我的段郎。”段誉道:“我......我......”王语嫣道:“我是你的段郎,你是我的王姑娘。”段誉道:“我......我......”王语嫣道:“我......我......”段誉道:“我......我......”王语嫣道:“我......我......”段誉道:“我......我......”王语嫣道:“我......我......”段誉道:“我......我......”王语嫣道:“我......我......”段誉道:“我......我......”王语嫣道:“我......我......”段誉道:“我......我......”王语嫣道:“我......我......”段誉道:“我......我......”王语嫣道:“我......我......”段誉道:“我......我......”王语嫣道:“我......我......”段誉道:“我......我......”王语嫣道:“我......我......”段誉道:“我......我......”王语嫣道:“我......我......”段誉道:“我......我......”王语嫣道:“我......我......”段誉道:“我......我......”王语嫣道:“我......我...
可以看到,有非常严重的重复问题,接下来加上penalize_used,看看能不能改善这种情况。
由于又了ai dungeon的代码,这部分实现几乎就把penalize_used plug进去就可以(如果没有什么bug的话),更改代码如下:
def penalize_used(logits, output):
# I want to change the indices of logits wherever the index is found in output
change_tensor = tf.zeros_like(logits, dtype=logits.dtype)
unique = tf.unique(output[0])[0]
ones = tf.ones_like(unique, dtype=unique.dtype)
indices = tf.expand_dims(unique, 1)
updates = tf.scatter_nd(indices, ones, [logits.shape[1]])
bool_tensor = tf.expand_dims(tf.cast(updates, tf.bool), 0)
return tf.compat.v1.where(bool_tensor, logits * 0.85, logits)
def top_p_sample(logits, inputs, num_samples=1, p=0.9,k=40,temperature=0.4):
logits = penalize_used(logits,inputs)
batch_size, vocab_size = logits.shape
probs = tf.nn.softmax(logits / temperature, axis=-1)
使用这段代码生成几个语段:
段誉和王语嫣面面相对,呼吸可闻,虽身处污泥,心中却充满了喜乐之情,谁也没想到要爬出井去。两人同时慢慢的伸出手来,四手相握,心意相通。
段誉见到王语嫣的小手,心中一酸,说道:“王姑娘,你......你......”王语嫣道:“我是你的王姑娘,你是我的段郎。”段誉叹了口气,道:“我只道你是我的王姑娘,却原来你是我的段郎。”
王语嫣道:“段郎,你待我真好,我......我......我......”说到这里,脸颊晕红,羞得无地自容。段誉道:“我是你的段郎,你是我的王姑娘。”
王语嫣道:“段郎,你......你......你......”段誉道:“我是你的段郎,你是我的王姑娘。”王语嫣道:“段郎,你......你......你......”段誉道:“我是你的段郎,你是我的王姑娘。”王语嫣道:“段郎,你......你......你......”段誉道:“我是你的段郎,你是我的王姑娘。”王语嫣道:“段郎,你......你......你......”段誉道:“我是你的段郎,你是我的王姑娘。”王语嫣道:“段郎,你......你......你......”段誉道:“我是你的段郎,你是我的王姑娘。”王语嫣道:“段郎,你......你......你......”段誉道:“我是你的段郎,你是我的王姑娘。”王语嫣道:
段誉和王语嫣面面相对,呼吸可闻,虽身处污泥,心中却充满了喜乐之情,谁也没想到要爬出井去。两人同时慢慢的伸出手来,四手相握,心意相通。
他二人的手掌都是又干又皱,不住的淌着水,然而心中喜悦,欢喜无限。
王语嫣道:“表哥,你待我真好,我......我......”
段誉道:“我待你何好?”
王语嫣道:“我......我......我......”
段誉道:“我的心早已属了你,你......你......”
王语嫣道:“我......我......我......”
段誉道:“我的心早已属了阿朱,你......你......”
王语嫣道:“我......我......我......”
段誉道:“我的心早已属了阿朱,你......你......”
王语嫣道:“我......我......我......”
段誉道:“我的心早已属了阿朱,你......你......”
王语嫣道:“我......我......我......”
段誉道:“我的心早已属了阿朱,你......你......”
王语嫣道:“我......我......我......”
段誉道:“我的心早已属了阿朱,你......你......”
王语嫣道:“我......我......我......”
段誉道:“我的心早已属了阿朱,你......你......”
王语嫣道:“我......我......我......”
段誉道:“我的心早已属了阿朱,你......你......”
王语嫣道:“我......我......我...
段誉和王语嫣面面相对,呼吸可闻,虽身处污泥,心中却充满了喜乐之情,谁也没想到要爬出井去。两人同时慢慢的伸出手来,四手相握,心意相通。
这两人手掌相握,便是“一指禅功”的功夫。
段誉道:“王姑娘,你......你......”王语嫣道:“我欢喜你,我也欢喜你。”段誉道:“我欢喜你,我也欢喜你。”王语嫣道:“我欢喜你,我也欢喜你。”段誉道:“我欢喜你,我也欢喜你。”王语嫣道:“我欢喜你,我也欢喜你。”段誉道:“我欢喜你,我也欢喜你。”王语嫣道:“我欢喜你,我也欢喜你。”段誉道:“我欢喜你,我也欢喜你。”王语嫣道:“我欢喜你,我也欢喜你。”段誉道:“我欢喜你,我也欢喜你。”王语嫣道:“我欢喜你,我也欢喜你。”段誉道:“我欢喜你,我也欢喜你。”王语嫣道:“我欢喜你,我也欢喜你。”段誉道:“我欢喜你,我也欢喜你。”王语嫣道:“我欢喜你,我也欢喜你。”段誉道:“我欢喜你,我也欢喜你。”王语嫣道:“我欢喜你,我也欢喜你。”段誉道:“我欢喜你,我也欢喜你。”王语嫣道:“我欢喜你,我也欢喜你。”段誉道:“我欢喜
看起来仍然有非常严重的重复问题,尝试增加对重复文字的惩罚从0.85到0.4,生成的文章如下:
段誉和王语嫣面面相对,呼吸可闻,虽身处污泥,心中却充满了喜乐之情,谁也没想到要爬出井去。两人同时慢慢的伸出手来,四手相握,心意相通。
阿朱、阿碧、阿碧、阿碧,四个人,四种心情,四种快乐,四种忧伤,四种甜蜜,四种忧愁,四种快乐,四种忧愁,四种甜蜜,四种忧愁,四种忧愁,四种快乐,四种忧愁,四种忧愁,四种快乐,四种忧愁,四种忧愁,四种快乐,四种忧愁,四种忧愁,四种快乐,四种忧愁,四种忧愁,四种快乐,四种忧愁,四种忧愁,四种快乐,四种忧愁,四种忧愁,四种快乐,四种忧愁,四种忧愁,四种快乐,四种忧愁,四种忧愁,四种快乐,四种忧愁,四种忧愁,四种快乐,四种忧愁,四种忧愁,四种快乐,四种忧愁,四种忧愁,四种快乐,四种忧愁,四种忧愁,四种快乐,四种忧愁,四种忧愁,四种快乐,四种忧愁,四种快乐,四种忧愁,四种快乐,四种忧愁,四种快乐,四种忧愁,四种快乐,四种忧愁,四种快乐,四种忧愁,四种快乐,四种忧愁,四种快乐,四种忧愁,四种快乐,四种忧愁,四种快乐,四种忧愁,四种快乐,四种忧愁,四种快乐,四种忧愁,四种快乐,四种忧愁,四种快乐,四种忧愁,四种快乐,四种忧愁,四种快乐,四种忧愁,四种快乐,四种忧愁,四种快乐,四种忧愁,四种快乐,四种
看起来似乎并无卵用,我很快意识到这其实是一个调参工作,这个参数并不能完全借鉴ai dungeon的,由于语言不同,语料不同,模型不同,训练流程和过拟合程度不同。在我这种训练训练了100个epoch的明显存在过拟合的模型上,自然不能用和ai dungeon一摸一样的参数。
经过一系列调参,大概 p=0.95,k=8,temperature=1,penalize=0.75 是一组还算能平衡的参数,产生的几组故事如下:
段誉和王语嫣面面相对,呼吸可闻,虽身处污泥,心中却充满了喜乐之情,谁也没想到要爬出井去。两人同时慢慢的伸出手来,四手相握,心意相通。
阿紫低声说道:“你身上的污泥太臭,我要先出去了。”两人手掌相握,同时跃开,同时跃开,四件事同时进行,顷刻间便到门外。两人走出了小巷,终于能在凛冽的寒风之中,觅得一条小路,两人并肩而行,终于来到郊外。两人四下里张望,都觉寂静无人,四下里寂静无声,只有远处山坳中隐隐传来犬吠的声音。阿紫道:“那只大狼狗呢?怎地不见了?”
鸠摩智道:“我和他们相距不过数百丈,那只狼狗怎会没入人家的庄院中?”
阿紫嗔道:“胡说八道,人家瞧着你的脸色,倘若你是个好人,便不会和那狗一般见识。”
这时已是初更将近,阿紫道:“这就走罢,我要和姊夫说两句话。”
鸠摩智道:“我要问的话,人家都说了,你问我干么?”阿紫⁇着嘴儿道:“你瞧你的脸色,人家说你是个坏蛋,你不恼么?”
这几句话说得十分刻薄,鸠摩智大怒,一掌击去,喝道:“小贱人,你说什么?”阿紫怒道:“我没说什么,你便怎样?”
鸠摩智道:“你说什么?”阿紫道:“我说你坏,你就怎样?你要我怎样,我便怎样?你这小贱人,好生没趣。”
鸠摩智一呆,
段誉和王语嫣面面相对,呼吸可闻,虽身处污泥,心中却充满了喜乐之情,谁也没想到要爬出井去。两人同时慢慢的伸出手来,四手相握,心意相通。
他们都想不到,这个世上会有这么一天的相聚。
他二人在黑暗中并肩而立,各想各的心事,都瞧着那一轮圆月,心中想到:“这般的圆月何等的光明,又如何能将我二人分开?但我二人此刻已是心心相印,再也分开,便要相思难断,这一生也不知有几个能相聚的时辰?”
突然之间,两人同时想到一件事,两人都道:“是啊,这世上有几个相聚的时辰?”
两人同时伸手,抓住了对方的手,都不肯松开。两人四手相握,想起“生死两茫茫”、“此情可待成追忆”的情景,不由得都是心花怒放。
只听得“呼呼”两声,两人同时惊叫,同时松开手来。
王语嫣的手臂仍是缚在乔峰的手臂上,但已是松脱,只觉乔峰手掌冰凉,似乎是他的鲜血。
乔峰心中一凛:“原来是我做了一件大错事,这个小子瞧我的眼光有什么不对?”只听得他道:“咱们......咱们......”
王语嫣道:“什么?”
乔峰道:“你是我的,你......你......你...”王语嫣道:“我...我...我...”
乔峰道:“我...我...我...我...我不知道。”
王语嫣道:“我也不知道。”
乔峰心头一震,说道:“我...我...我...你...”王语嫣笑道:“你不知道也没什么好
段誉和王语嫣面面相对,呼吸可闻,虽身处污泥,心中却充满了喜乐之情,谁也没想到要爬出井去。两人同时慢慢的伸出手来,四手相握,心意相通。
他二人虽然不知道对方此刻身上发生了什么事,但却都是十分欢喜。
王语嫣道:“你身上没受什么伤,为什么我瞧着你,便像是中了‘九阴魔’掌似的?”段誉摇了摇头,道:“这个...段姑娘,你说我中的是‘九阴魔掌’,这‘九阴魔掌’的掌力,是不是也和你身上的伤一样?”
王语嫣心中一凛,颤声道:“那是我中了什么人的毒,以致毒发而中了‘九阴魔掌’?”段誉道:“是啊,那是‘九阴魔掌’的掌力。”他说了自己的掌法和掌法的名字,那是怕王语嫣见到他的掌法之后,立时便会知道他也曾中毒,是以故意说得轻描淡写。王语嫣道:“那是谁的掌法?”段誉道:“你问那是谁的掌法?”
王语嫣登时想起了慕容复,心中一酸,泪水夺眶而出,但随即想到:“段公子也曾中过‘九阴魔掌’的掌力,他的掌法和我师父一模一样,难道是他?可是他身上的毒也太厉害了,我怎能不担心?我是他的‘贤内助’,他怎么会......他...唉!”
段誉道:“王姑娘,我的掌法是师父教的,我不知道。”
王语嫣心中一酸,泪水夺眶而出,但随即想到:“段公子也曾中过‘九阴魔掌’的掌力,他的掌法和
用p=0.95,k=16,temperature=1,penalize=0.75生成的文章似乎质量有的也还可以,并且重复更少:
段誉和王语嫣面面相对,呼吸可闻,虽身处污泥,心中却充满了喜乐之情,谁也没想到要爬出井去。两人同时慢慢的伸出手来,四手相握,心意相通。
只听王语嫣说道:“段公子,你...”声音渐低,似乎也想和段誉相握,却又不敢。
突然间王语嫣听到了自己的声音,身子僵住,适才和他手掌相握的手,已经悄悄缩了回去。段誉道:“王姑娘,你⋯⋯你⋯⋯你到底是人还是鬼?为什么和一个‘鬼’、一个‘人’在一起?”王语嫣听他说到这里,突然“啊”的一声惊呼,双手掩面,颤声道:“你说什么?”段誉笑道:“王姑娘,就算你是鬼,是人,我也要和你在一起。”
王语嫣怔了一怔,颤声道:“什么?”段誉笑道:“瞧,我说你也像人,也像鬼!”王语嫣听他又在胡说八道,怒道:“你再说下去,要你知道祖宗十八代都在骂你了。”段誉笑道:“王姑娘,你别骂我,我说的是真话。你若不肯和我和做一对夫妻,永远在我身边,我只好永远不理你。”王语嫣道:“我不干!”段誉道:“我不干,还是我不干么?”王语嫣道:“你敢!你敢打我一掌试试。”段誉道:“我打你一掌,你就知道我不是人了。”说着哈哈大笑。王语嫣道:“你笑什么?”段誉道:“王姑娘,你别笑,我知道你心里是很害怕的。我
段誉和王语嫣面面相对,呼吸可闻,虽身处污泥,心中却充满了喜乐之情,谁也没想到要爬出井去。两人同时慢慢的伸出手来,四手相握,心意相通。
他二人手掌相接,各出一掌,顷刻间全无抵御余地,全然施舍予对方。
两人手掌相交,但觉对方的掌力绵绵而来,竟是丝毫不留空隙,只要自己稍微一运劲,便要给他的手掌罩住。段誉、王语嫣心中都暗赞“好掌力”,然而一加对方掌力相加,心中便又是一惊,再加一股“嗯嗯”喉间的声响,两人同时出掌相抵,只觉对方掌劲迅疾得难以形容,一时不敢相触,只听得他喃喃自语道:“他们都是高手,都是了不起的高手......‘一灯大师’的‘灯丝大法’也许是天下最厉害的武功,看来我要‘逃入深山’才行......”
王语嫣听他这几句话,只听出“逃入深山”四个字,却不明白是什么意思,只听身边的段誉道:“我也瞧明白了,这位姑娘确是有些武功,不过不想跟人动手罢了。”
段誉说的是:“瞧明白了你的武功,那又怎样?你是姑娘家,我又不是女侠,你打我一掌,说不定我还能‘逃入深山’。我的武功高得很,那是自然的。”王语嫣心道:“你不想跟人动手,又为什么说我武功高得了不得?”只听段誉继续说道:“姑娘,我这个人向来不做亏心事,又何必要说给旁人知道。我说咱们两人是‘世外高人’,是你没听错罢?”这一次他可没说假话,那姓段
这些生成的段落质量对比
实际上是差不多的。
回顾生成的文章质量是如何达进步到这样的,主要归功于两点:
(1)适当在training set上略微过拟合,这有助于增加上下文连贯性。
(2)使用适当的采样策略,这有助于减少重复,同时也可以提升连贯性。
回到主要目的(中文ai dungeon)这两天在天龙八部上的实验也许可以帮助产生更为连贯的故事,这就尝试把这两个trick用回到中文ai dungeon的训练和推理过程中。
还是如老样子,在4篇自己标注的文章上训练了200个epoch,loss情况:
train loss大概到了2.08的样子,test loss到2.72.
接下来我调整了一下参数,进行故事生成,我调整了参数到
p=0.9,k=16,temperature=1,penalize=0.35
下面是生成的故事:
是一家夜总会的经理,在这个城市里,你希望开创自己的一番事业,今天晚上,有一个大客户要光临你的夜总会,你得好好准备
> 你 走进办公室
快八点了,经理先生要到办公室去和手下的小弟们说个话,他要布置一下明天的工作。
> 你 让手下的小姐进来
很快你就看到外面的大堂里走来一个女人,这个女人穿着一套红色的连衣裙,长着一张巴掌脸,你一眼就认出来了,这个女人就是昨晚和你一起喝酒的那个女人,也是这个夜总会的小姐。
> 你 招呼她进来
没想到这个小姐很有礼貌,走到经理先生的面前,弯下腰,说:“先生,您来了,我来给您引见一下,这是我们夜总会的总经理,杨青,您就叫我杨青好了。”
> 你 问“今晚需要你们好好准备下,有个大客户要来,你们准备好了么?”
.“没有,经理先生,我还真不知道这件事,”
> 你 说“那你们赶快去准备啊”
过了一会,杨青领着杨青的小姐们离开了
> 你 跟着杨青
回到公司以后,你问杨青说,“你说我们准备好了吗?”
> 你 等待杨青回答
接下来的时间里,你和杨青聊了一会,杨青的工作比你想象的要多,你也能听他说上个把钟头。
> 你 离开夜总会去接客户
从公司出来,你拦了辆出租车,径直到夜总会去了,杨青的工作量没有你想象的那么多,在这里工作的小姐都比他想象的清闲
> 你 到机场接客户
车到机场的时候,杨青给你打了个电话,“刘先生,您好,我是杨青,”
> 你 说“怎么了,夜总会出什么事了么?”
<eod
> 你
有点奇怪,生成了个eod
你是一家夜总会的经理,在这个城市里,你希望开创自己的一番事业,今天晚上,有一个大客户要光临你的夜总会,你得好好准备
> 你 走进办公室
王经理:“你说什么?”
王经理:“你说什么?”
王经理:“你说什么?”
王经理:“你说什么?”
王经理:“你说什么?”
王经理:“你说什么?”
王经理:“你说什么?”
王经理:“你说什么?”
王经理:“你说什么?”
王经理:“你说什么?”
王经理:“你说什么?
> 你
又生成了一篇,有点怪,重复很严重
你是一家夜总会的经理,在这个城市里,你希望开创自己的一番事业,今天晚上,有一个大客户要光临你的夜总会,你得好好准备
> 你 走进办公室
时间:晚上20:00-21:00
人物:李经理
李经理是这个夜总会的经理,他来这里的唯一目的,就是把来夜总会喝酒的客人请出去,让这里的客人能够安安静静的待着。
> 你 叫手下工作的小姐进来
现在,李经理的手下,在工作,这里有一个身材很火爆的小姐,李经理的手下,在工作
> 你 叫她进来
不一会儿,一个身穿制服的工作人员走了进来
> 你 说“今晚有个大客户要来,你们都准备好了么?”
对不起,你没有得到任何信息
> 你 叫其他小姐进来
过了一会儿,“小姐”带着一个穿着职业装的小姐走了进来
> 你 问他们“你们准备好了么,今晚有大客户来”
...
> 你
再来一篇,这篇连贯性非常差
你是一家夜总会的经理,在这个城市里,你希望开创自己的一番事业,今天晚上,有一个大客户要光临你的夜总会,你得好好准备
> 你 走进办公室
钟先生:“我马上叫人去准备。”
你走进办公室,给钟先生倒了一杯速溶咖啡,然后说:“你好,我是一家夜总会的经理,在这个城市里,你希望开创自己的一番事业,今天晚上,有一个大客户要光临你的夜总会,你得好好准备。
“你是一家夜总会的经理
钟先生:“我马上叫人去准备。”
你给夜总会的经理打电话,说:“钟先生,你
> 你 叫手下的小姐进来
当你听到有姑娘在里面喧闹的时候,你终于忍不住要冲出来了
你:“我马上
你:“我
你:“我
你
你
你
你
你
你
你
总体来说,不管有没有加trick,生成故事的质量都可以用堪忧来形容。
所以疑点依然有几个:
(1)是否是数据质量不够导致的,这个需要过滤一些质量尚可的翻译数据来验证
(2)是否fp16的模型质量不好导致这个问题,这个需要使用其他tf的gpt model来验证
(3)训练方法,是否应该过滤掉动作语句的梯度
07/09记录
在阅读文献的时候,发现了一个挺有趣的项目 https://github.com/storybro/storybro 这个项目,这个项目是ai dungeon的一个fork,有趣的地方在于他收集了自己的一批数据
https://github.com/storybro/storybro/wiki/How-to-train-your-GPT-2-model
这批数据有30M这么大,比之前我找到的数据大很多,我希望经过自己筛选,能够从这批数据中搞出自己的数据集。
首先,我还是把这批数据送到google翻译,翻译成了30M的中文语料:
一个sample:
> 你进军沙漠
usksha 被打破了,在逃亡中,随着帝国在纳林省以南的影响力扩大,消灭他们作为未来威胁的机会肯定存在。你最近的胜利让你充满信心,你同意你应该对 usksha 发动攻击。
“你不能当真!听着,我知道你们是永恒族,我不否认你们是我见过的最好的战士,但即使是你们也无法在他们的沙漠中征服 usksha!他们已经在那里生活了几个世纪,甚至在帝国存在之前!他们比其他任何人都知道这一点,你会寡不敌众,自己与元素战斗!” 杰卡警长惊呼道。不知何故,他毫无疑问地躲过了这场战斗。
也许他一生都满足于做一个懦夫,但你的意义远不止于此!你是一个永恒的人,当你迈出文明沙漠的第一步时,帝皇会亲自奖励你。你又扇了他一巴掌,告诉他你需要每个人都可以携带的水。
休息一段时间后,您和您的团队以及德兰的手下出发前往沙漠。你认为解决这个问题的最好方法是跟随 usksha 的踪迹。一开始这很有效,因为蜥蜴坐骑是重脚动物,会留下很深的印记,所以你会遇到几小群逃离的乌斯沙。
当您开始离开纳林省并进入沙漠时,指纹变得难以追踪。在找到更多 usksha 之前,您跟踪了两天的轨道。尽管如此,你还是没有找到任何大型定居点。
到第四天,德兰的手下开始抱怨。他试图维持秩序,但很明显他们无法忍受白天的炎热和夜晚的寒冷。你自己的团队变得更好了,但即使是他们中的一些人也开始发表评论。
在第七个晚上,你被几个从沙滩上冒出来的乌斯沙伏击;在你派遣他们之前,他们设法杀死了德兰的几个人。
“中士,我认为我们需要离开这片沙漠。这里什么都没有,只有沙子和死亡!”
注意到sample的问题么?
由于语料来源是choose yourstory,语料的分布也是和这个网站类似的,即,一个选择(或者动作)后,会跟着成千字的描述语句,这些描述语句不一定全部和你的动作有关,有些只是单纯的交代背景。但是ai dungeon一般来说生成的result只会有100~150字左右,所以说,从ai dungeon的训练角度来看,更好的语料反而是那些动作后的描述较少的。
同样的道理,在训练的时候,也并不需要学习所有的文段,只需要学习包含result的文段就行,总的来说,就是要训练的时候贴近推断的时候。
由上面的启发式的想法,我在训练的时候决定使用几个trick
- 把文段分为“上文”和“下文”,仅仅在“下文”处计算loss (见下面附1)
- 仅仅使用动作之后的result小于15行的语料,来限制学习到的语料质量(一个例子见下面录2)
- 为了防止过拟合,随机去掉一些上文的句子,并且随机调整上文长度(使用truncat)模拟实际使用中会遇到的需要根据不同上文长度推断的情况
- 在train和inference的时候都使用特定格式,即上文\n>动作\n下文,一个训练时候的例子见附3
附1
0代表被mask掉,第一行是原文,第二行是mask,交替
你他妈的瘾君子(好吧,她不“ T选用那些话,而是”你所得到的印象,反正)
0000000000000000000000000000000000000000000000000000
>您决定去看心理医生,直到调查结束
0000000000000000000
看心理医生并等待警察解决您的问题听起来不错。
111111111111111111111
只有回答后的第三行(result)是需要学习的。
附2
{'previous': ['你检查出来...',
'你向窗外看去,你看到一个穿着长外套和黑帽子的男人站在那里。他站在阴影中——你发誓你窗外曾经有一道亮光。他示意你到门口等着。',
'你把门开了一道缝,你听到一个破旧的声音说:“我是来接你的。你应该和我一起去。” 他转身开始走向楼梯。',
'你穿过人行道走向你的公寓。由于交通拥堵,您可以感觉到所有停在建筑物附近的汽车都散发出热量。这里的大多数汽车都是旧车,有些车窗有凹痕,窗户也有裂痕,就像你的一样。有一天你会赚到足够的钱来买一辆更好的车,你很确定,只是不会很快。',
'你开始爬楼梯到你的公寓。当你租这个地方时,四楼公寓的200美元折扣似乎是个好主意。当然,那是在你发现楼上有孩子的公寓之前,你仍然必须走上所有这些楼梯,因为电梯在大楼的另一端。也许你会中彩票,然后你可以在你想要的地方建造你自己的房子:而且你不会在整个房子里有任何楼梯!',
'你解锁你的公寓并走进去。空气很陈旧,因为如果你整天开着空调,管理层会让你付钱。你不看就知道冰箱只有一些旧的追赶。但是,嘿,您今天确实收到了报酬,所以您要订购一些外卖!就在您拿起电话下订单之前,电话开始响起。',
'你继续...',
'咖啡店的咖啡师瞪着你,因为你已经有一段时间没有点过咖啡了。是的,周围有很多空座位,但那个咖啡师显然不希望店里有任何贪图便宜的人。',
'对你来说幸运的是,大约在那个时候拖车出现了。当明亮的橙色灯在卡车顶部旋转时,柴油发动机发出咔嗒声和叮当声。那个穿着脏兮兮的白色T恤的中年男子走到你的车前,迅速把它挂在卡车的平板上。你朝他走过去,但他一言不发地向你示意。你问你是否至少可以坐卡车,但他向你附近的地上吐了口唾沫,说:“公司政策。” 他爬回卡车开走,你的车稳稳地坐在他的卡车上。',
'你环顾突然的寂静,意识到现在你被困在城里,没有汽车,没有生命。然后你意识到你甚至不太确定拖车把你的车开到哪里了。就在这时,突然雷声隆隆,开始下雨。雨很冷,所以你卷起衣领开始步行回家。至少过几天你又可以上班了...',
'您完成了晚餐的常规外卖,并意识到您最终花费的薪水比应有的要多。现在你已经吃饱了,所以也许你今晚不会出去……好吧,至少现在不会。坐了一会儿,这是星期五晚上,所以你肯定电视上会有好东西。以后出门就可以放心了。',
'您翻转频道并开始意识到,即使您有大约 1,000 个频道,但实际上什么也没有……根本没有。你终于停止了一些假想的真人秀节目,这些节目只是为了让人们发笑和尴尬。这很糟糕,但你看它都是一样的,因为它比看 20 年前的游戏节目重播要好。',
'当你走出去时,突然你听到敲击你的窗户的声音。是的,您在四楼,但您客厅的一扇窗户面向环绕公寓楼一侧外侧的走道/阳台。你认为这可能只是楼上的孩子们在逗你,但随后你又听到了敲击声。你可以把电视开大,但你可以去看看它是谁。'],
'action': '你接电话...',
'result': ['你跋涉到电话,拿起它。你说,“路杀烧烤:你杀了他们我们烤他们”(就像你通常做的那样)。沉默了片刻,然后你听到一个清晰的电脑声音:',
'“现在是时候了,地点是德吉布尔南路841号,你抄吗?”',
'你停顿片刻,想知道这可能是关于什么的。最后你结结巴巴地说:“对不起,我想你打错号码了。”',
'电脑语音回答:“没有。这是一条直线。消息很明确:现在是时候了。地点是德吉布尔路841号。再说一遍,你抄吗?”',
'“我……我……我不知道你在说什么。”',
'“最后一次重复:现在是时候了。地点是德吉布尔路841号。出去。”',
'线路立即停止。你站在客厅里,盯着一部没电的手机。您尝试从电话上取下最后一个号码,但它没有显示在过去两天内未接到任何电话。提到的地址离你的公寓只有几个街区...']}
附3
。 当 里德 看到 他 的 妻子 玛格丽特 和 他们 的 几个 孩子 时 , 他 高兴 地 叫 了 一声 , 冲 上前 拥抱 他们 。 你 很快 就 了解 到 一些 非常 令人担忧 的 事情 : 在 山上 的 营地 , 唐纳 党 的 其余 成员 正因 饥饿 而 不断 死亡 , 刚 从 山地车 司机 约翰 丹顿 和 孩子 艾达凯 塞 伯格 下山 , 在 第一次 救济 旅行 时 死亡 . 19 名 幸存者 留在 了 第一次 救援 , 但 更 多 的 人 仍然 在 山上 , 包括 里德 的 两个 孩子 。 威廉 · 麦卡琴 得知 他 年幼 的 女儿 哈丽特 在 山上 去世 了 , 他 很 难 接受 这个 消息 。 当 您 在 冰雪 覆盖 的 荒原 上 月 的 第一天 到达 客舱 的 乱堆 的 第一 人 , 你 相遇 是 里德 “ 的 女儿 帕蒂 , 对 她 的 父亲 , 他们 用 欢呼 迎接 冲刺 。 其他 一些 人影 从小 屋里 出来 , 包括 帕特里克 · 布林 和 路易斯 · 凯塞 伯格 , 总共 有 19 人 仍然 住 在 特拉 基湖 周围 的 小 屋里 , 大约 有 12 人住 在 奥尔德 溪 , 包括 乔治 唐纳 。 只 呆 一天 , 你 就 聚集 了 十七名 幸存者 , 你 可以 把 所有 的 人 都 带走 。 进行 了 一些 讨论 , 并 同意 留下 一两个 人来 帮助 留下来 的 13 个人 , 尤其 是 在 Alder Creek 的 那些 人 。 你 做 什么 工作 ? \n > 你 带 着 第二次 救济 的 其余部分 离开 \n 你 选择 陪 在 第二 浮雕 和 17 个 定居 的 艰难 跋涉 回到 萨特 ' 堡垒 。 当 一场 风暴 将 你们 所有人 困在 开阔 的 地面 上 , 艾萨克 · 唐纳 ( Isaac Donner ) 去世 时 , 事情 的 开端 并 不 顺利 。 James Reed 和 William McCutchen 决定 , 因为 供应量 太 少 , 他们 必须 继续前进 , 但 大多数 定居者 太 虚弱 而 无法 移动 。 带 着 里德 的 两个 孩子 和 第三个 孩子 继续前进 , 无法 和 其他人 呆 在 一起 。 几天 后 , 您 遇到 了 带领 救援队 上山 的 威廉 · 艾迪 和威廉 · 福斯特 。 里德 引导 他们 到 你 留下 的 幸存者 在 那里 和 你 做 回 约翰逊 三月 中旬 “ 小号 牧场 。 你 离开 的 定居者 中有 11 人 在 两天 后 抵达 , 其中 两人 已经 死亡 。 艾迪 和 福斯特 带 着 另外 五名 幸存者 返回 后 不久 , 报告 说 不 可能 再有 幸存者 了 。 George Donner 、 他 的 妻子 Tamzene 和 侄子 Samuel 、 Louis Keseberg 和
07/12记录
使用上个log末尾处几个trick训练了一个周末(48 epoch),得到的loss如下:
稍微有点过拟合,train loss 收敛到2.5,test loss收敛2.65后由于过拟合增加到了2.72,不过按照之前监督学习的经验看,test loss增加不一定意味着模型在实际使用中可用性会变差,还是要观察一下结果。
你在树林里冒险,指不定会从哪里蹦出来一些奇怪的东西,你握紧手上的手枪,希望这次冒险能够找到一些值钱的东西
> 你 往树林深处走去
一进去就会有一股寒意笼罩着你,你甚至都不知道自己为什么要继续走下去,但你知道,现在不冒险就太愚蠢了。有一种更加令人不安的气息在你身后,尽管你没有感觉到它,但那是一股非常浓烈的血腥味,几乎淹没了你的每一根头发。你转过身来,发现你身后是一块空地,一群男人围坐在中间,而你看起来好像已经在那里被吃掉了。这就是你要去的地方。
> 你 绕过这个奇怪的地方
你们这些笨蛋在这个奇怪的地方转了几圈,最终到了你之前认为正确的地方。你的直觉在这里很强,你觉得似乎有一股更强的力量从你身后的那块空地涌出,你的手颤抖着抓住了枪。你向前移动,但你的直觉仍然在警告你,你不应该这么做。你甚至感觉到枪的重量压在你的肩膀上,而且你看到有什么东西从你身后的空地上向你靠近。
> 你 悄悄地走进前面的村子
当你的生命在你面前逝去时,你会感觉到它,并且你的直觉在警告你,你可能会在村子里找到某个东西。你走得很快,而且当你意识到你已经走到了一个死胡同时,一切都太晚了。你看到一群人从他们的位置上走来,他们都拿着镰刀和其他锋利的东西,每个人的头都向后仰着,当你的手开始感到麻木时,你可以听到他们的喘息声。
> 你 传送到最近的酒馆
您决定前往最近的酒馆,尽管有几个人在附近,但你不想让他们看到你被杀。你向后退,然后向前走,你的直觉一直在提醒你不要做这种事。他们看起来有点像M'STarlo,但在那里,他们的脖子上挂着一个很大的物体,你不知道这是什么东西。这里有一个很大的、血淋淋的人,但是他身上带着很多东西,它看起来很恐怖。
> 你 上前和他说话
感谢上帝,你在这里没有被认出来,但你想让他们看到你,这样他们就会看到更多的东西。你径直走向其中一个,抓住了他的头和脖子,将它举起向他砸去。在击中他之前,你看到了在他的脸上看到的,但你的本能告诉你,他在痛苦中,而不是快乐。你继续尝试,你希望你可以在他身上找到你想要的东西。
> 你 坐下来休息
你在你的椅子上休息了很长时间,当您再次走动时,您的感官立刻开始变得模糊。你的眼睛开始模糊,您会看到一些人,他们都在看到您的眼睛模糊后,都转过头来看你。你看到了什么?你不知道,但你知道有一些东西在他们的身体里,它们就在那里。
> 你 到酒店吧台,点一杯酒
幸运的是,你不是一个人,你可以看到,你的直觉是告诉你去酒店。你走到服务台,拿起柜台上的一个小瓶,它上面有一个小小的金色钮扣。你把它放在柜台上,你听到酒店员工告诉你,当你在你的袖子上找到它的时候,它是你的礼物。你的直觉对你说话,你可以在你之前的那个人的脖子上挂着的一个血淋淋的头时用它来提醒它。
> 你 询问服务员附近有什么可以探险的地方
当您问服务员他们是否知道,并要求他们向您提供更多的信息时,您注意到服务员看着你,微笑着说,“如果你不知道我是谁,我告诉你我的名字,我叫'T'T'UiHi','T''sUiHi'Ng'”。
> 你 说“我知道了,你的名字有点复杂”
你们两个都笑了,因为你们很明显都有一个共同的名字,然而当你看到你的直觉迫使你不要做这件事时,你们两个都笑了。你不知道你为什么没有真正的事情,你为什么那么确定你真的知道你的名字,但你仍然知道你知道你的名字。他们把你的名字说完,你知道他们都知道,但你仍然想知道。
> 你 问“附近有什么可以探险的地方吗?”
从A到Z个街道,每个你都遇到了一个你不认识的人,都对你说一些你不想听的事情,然后你听到他们都在谈论你的名字。你想让他们都看到你,但你不知道你为什么会在他们面前被杀,但你想让他们看到你,这样他们就会看到更多的东西。
> 你 向树林走去
随着您的注意力集中到您要去的那棵大树,您将会看到一棵树在您的视线中消失,在您的右边是一些人,他们看着你走进树林。您可以感觉到自己的身体从树下穿过,当您到达一棵树时,您会发现自己在一个院子里,这里有两具尸体,其中一具躺在地上,而另一具仰天躺着。
> 你 走进院子,检查两具尸体
你走进一间院子,当你检查尸体时,发现了两具尸体。您决定,您应该去看看这些尸体,或许可以帮助您了解到什么。你走进院子,你会看到一具完整的尸体,另一具被斩首,尸体被分开,被切开,并以一种很有趣的形式被分开来处理。你看到一个女人站在一堵墙上,在她的周围有一些男人,你知道他们是什么,但没有人靠近她。
> 你 上前询问他们是什么人
你径直走向她,你会注意到她,她的嘴张开着,当你走进她时,她的眼睛看起来很惊讶。“这不是——这不是死亡,对吗?”她似乎吓了一跳,似乎你有很多次机会让她停止尖叫,然而你仍然继续你的脚步。你想知道她想知道什么,你注意到你的直觉告诉你去她是正确的,她是你的。
> 你 走向她
现在你可以看到你想知道的,这个女人看起来有些惊恐,但你仍然坚持她的想法,并继续走。你会发现她真的很美,但你不知道为什么。她似乎在注意她,当你走到她面前时,她抬起头看向你,然后看向你身后。你继续走着,直到看到一个身穿黑色斗篷的男人从她身边走开,她的目光仍然停留在她身上。“你可以告诉我你在哪里看到的,”她问。
> 你
在经历过了那么多次失败之后,我会说这次生成的故事非常好,不管从连贯性还是用词上。
你在树林里冒险,指不定会从哪里蹦出来一些奇怪的东西,你握紧手上的手枪,希望这次冒险能够找到一些值钱的东西
> 你 将子弹上膛
枪响了,你的子弹穿过空气,击中了一个生物的胸膛,它发出了一声令人毛骨悚然的尖叫,然后开始散落。你听到一种类似于某种动物发出的声音,然后它的眼睛开始瞪着你,然后你看到一种黑色的爪子从空中划过你的头顶。你的心脏“扑通”一声停在胸口,然后它被一股强烈的精神力量“击倒了。
> 你 躲到一棵树的后面观察情况
就在你开始思考之前,你在树上看到了那个生物的爪子,你可以感觉到它的每一部分都有“足够强壮,但是你不知道它为什么要这样做。你不知道这意味着什么,也许它想要什么,或者是你可以做什么。你甚至没有意识到,你突然感觉到了一个冰冷的声音,把你从思绪中拉回来。“是的,你在这里。”你回答。对方冷笑,然后突然抓住你的喉咙,把你撕成碎片。
> 你 传送到城镇中心
当你从树枝后面走出来时,你会感觉到一个无形的东西从你的身体里面消失了,在你的脚后面的“你可以”吨“的”的事情,你会“⁇”的一声,被一股力量甩在身后。你听到身后传来一声噼啪声,然后你就开始在你的脑海中跳跃,在脑海中“⁇”的一声,你看到一滴水从一棵大树的枝⁇中滴下来。
> 你 到城镇中心,检查自己的伤势
尽管前方有溪流,但没有任何东西可以让你进入城镇中心。你决定走出去,看看是不是有其他人在那里。走出去并走得离城镇中心很近,然后你会听到一声巨响,然后就“消失了。你再次醒来,发现自己正站在一片树林中,一只手臂伸出来,似乎在生锈。你转身看看手臂,它似乎被灼伤了,它的周围有烧焦的痕迹。
> 你 捡起手臂,观察
您拿起手臂,凝视着灼伤的伤口。你可以看到一些蓝色的液体正从你的伤口中流出,你可以闻到一股腐肉的味道。你拿起一把钳子,把它从树下拔起,然后回到树下,拿起你的手臂,观察伤口。你看到的第一个东西是一种液体的颗粒,然后是另一种液体的颗粒,然后是更多的液体。
> 你 包扎伤口
疼痛是你的第一反应,然后是你的手臂,现在你可以看到灼伤,你的手臂开始流血,但你可以感觉到它“已经愈合,它没有任何损伤。你看到一个蓝色的液体从你的伤口中流下来,就在你的身体下面,然后你转身走到森林深处,直到你听到一个声音从树丛中传出。“是的,终于回来了。”“你会被屠杀,”你听见自己说。“你,”那个声音说。
> 你 走向那个声音
你走近声音,当你靠近时,你发现它似乎在颤动,似乎有什么正在靠近。当你走近时,你发现它是一个人,身上覆盖着厚厚的、腐烂的灰色蠕虫。你走近并开始用钳子在他的身体上摸索,直到他开始咬你。
> 你 向他开枪
“我”的一声,你听到了一只手从树上掉下来,然后一只血淋淋的手从树枝上掉下来,击中了你的胸膛。“你”在一个小时后就消失了,一个人。你感觉到了一股冰冷的金属,它像血液一样从你的身体中喷涌而出。你甚至没有意识到,但它“是在”它们没有“那么大。
> 你
又生成了一个故事,这次故事并不完全按照我的行动发展,但是总体上一致性对比之前的模型还是有很大的进步的。
你在树林里冒险,指不定会从哪里蹦出来一些奇怪的东西,你握紧手上的手枪,希望这次冒险能够找到一些值钱的东西
> 你 前往一个城镇
你已经厌倦了这个地方,你现在需要尽快逃离这里,而这会为你的安全提供一些帮助。你沿着街道一直走,偶尔看到一两个人在街道上移动,你也没太在意,他们的行动似乎表明他们在等待。“你怎么知道,你现在看到了什么?”你问一个人,这个人正在抱怨他的同伴。“如果他们都在树林里等待着什么,那他们为什么要在这里等着我?”你问。
> 你 走进一家酒馆
当你进入酒馆的时候,你立刻开始感到不安,因为酒馆里有人在交谈,你很快就会被淹没在他们的谈话中。“这里有没有一个,”你喊道,但在你说“不是”之前,“他们都不,”一个人回答,“他们是在谈论昨天晚上发生的事情,我看到他们在外面的人。”“好吧,那是什么?”你问他,他看起来似乎很惊讶。
> 你 询问昨天发生了什么?
“昨天晚上,我听到有人在外面。”“什么声音?”“我没有看到任何人,”你告诉他,“当他们开始讨论昨天晚上的事情时,他们似乎都在讨论某件事,”他说,“然后他们听到了。”“你看到了什么?”“没有任何事情发生,但我听到了你的声音,我认为他们在外面的人听到了你的声音。
> 你 真无聊,在吧台上点一杯鸡尾酒
她耸了耸肩,示意你不要点酒,你点一些你最喜欢的甜酒和一些奶酪,然后回到酒吧。你想知道“什么”是什么,但你知道你必须快点去睡觉。当你离开酒吧时,一种奇怪的感觉向你袭来,似乎有什么东西从你的身体里冒出来,在您离开之前,这种感觉更加强烈。
> 你 走进旅馆开一间房间
几分钟后你回到了旅馆,走进你的房间,你关上了身后的门,因为你不想让自己从门的另一边看到任何东西。你闭上眼睛,在睡梦中,你进入了一个不可思议的世界。你感觉到了一种不可思议的平静,在黑暗中,你的周围是一片寂静,在这种宁静中,你感觉到了另一个世界的平静。你睁开眼睛,你看到你躺在一个旅馆里,你听到外面传来你自己的声音。
> 你 休息一晚上之后醒来
睡眠是一种享受,而现在睡眠是多么糟糕的事情。你感觉自己在发烧,你看到了你的身体上所有的痛苦,当你终于感觉到疼痛时,你的头很疼,你在这里的每一个晚上都在发烧,你希望能让自己睡觉,你希望在第二天早上醒来,但还是让自己入睡。你希望睡觉可以让你的头痛减少,让你能在睡眠中继续做梦。你希望睡眠的时候不要被噩梦惊醒,你希望睡眠的时候不会有噩梦的惊醒。
> 你 下楼吃点感冒药
当你下楼吃感冒药时,你感觉不到任何冰冷的感觉,当你下楼时,你感觉很温暖,感觉不到任何恐惧。你终于吃完了感冒药,你感到胃里好像有东西在颤抖,你开始感觉到寒冷,但你仍然感觉很好。你的喉咙似乎被堵住了,但你仍然在打喷嚏,让你感觉很好。你的喉咙开始灼热,当你感觉有点冷的时候,它已经是你唯一的感觉。
> 你 走出门观察小镇
早晨在街道上游荡是很正常的,因为你只是想找到一些人,然后把所有人都吓一跳,你希望在任何人离开的时候都是这样。你在街上走着,你可以感觉到有什么东西在你的身上起起伏伏,感觉就像有东西在你的身体里一样。你走进酒馆当你进入酒馆的时候,你立刻开始感到不安,因为酒馆里有人在交谈,你很快就会被淹没在他们的交谈中。
> 你
再生成了一个,感觉总体来说,连贯性非常好,虽然故事并不总是按照我想要的方向进行,ai 有时候会按照自己学到的东西瞎编,但是感觉上总体不错。
我决定先把这个模型存个底,并且在此基础上先行开始开发ai后面的东西(交互/colab/etc),模型效果已经不错,可能可以通过先在一些小说上pretrain来丰富讲故事的能力,但是底子已经很可以了。
由于模型存档太大(15G),我决定先减小一下模型大小,通过不保存adam的相关参数,我更改了代码,模型现在只有4G大了。
使用4G的模型尝试生成故事,确定一致性
你在树林里冒险,指不定会从哪里蹦出来一些奇怪的东西,你握紧手上的手枪,希望这次冒险能够找到一些值钱的东西
> 你 前往附近的一个镇子
response quality check failed,generating another one
您决定乘坐长途汽车前往附近的镇子,但您打算在晚上时分继续行程,这样就可以把更多的时间花在镇子上。你想知道有什么人在附近,所以当你到达那个镇子时,你会注意到有几个人聚在路边。他们看起来很害怕,有一个人甚至用石头和石头来确保他们的安全。这似乎让你感到惊讶,但你可以肯定这就是你想要的。你决定等到晚上再走,在这里你可以找到一些贵重的东西。
> 你 乘坐巴士去镇子上
好吧,那就是你的计划,你在长途汽车上继续你的计划,然后等到晚上再出发。你的时间不多了,但你可以把它花在镇子上,因为当你从长途汽车上下来时,你会看到他们中的一个人在那里,他看起来是一个害怕的人,你可以把他带回家,在你把他带到你的小屋过夜之前,你可以得到一些值钱的东西。
> 你 在镇子上进入一个酒吧
现在去镇子的酒吧,因为你想知道有什么其他的东西在那里,你决定你要去。你进入一间小酒吧,里面还有人,但这里似乎有一些有趣的东西。酒吧里很安静,你可以闻到你在长途汽车上带出的烟味,所以你走到吧台,开始点酒。“我知道你想要”,一个女人说,你知道这种饮料,但你还是点了一大杯。
> 你 问女人“我想要什么?”
她似乎不知道你想要什么,只是说“我想要什么?”你耸了耸肩,“我是想要什么都有,我想要什么都有。”当她说你想要什么时,你似乎感到很惊讶,在你离开的路上你问了很多问题,比如你看到了什么东西,你是不是把一个东西扔到了你身边,还是你没有带它来长途汽车上,还是长途汽车的司机会认出它,而让你感到不安。
> 你 请女人喝一杯酒
您请她喝一杯,她为你斟满。她说“这是一个非常愉快的夜晚,但当我听到您在外面,当您离开我们,当您离开后,您在那里是因为您知道您不能和我一起走。
> 你 和她干杯
你对她说“好吧,为了我们的友谊,我们为你干杯”她微笑了,她点点头,把酒倒在你的面前。“我们在一起的日子过得太好了,我们真的,”她说,“因为我们在一起的日子太快乐了,我们一起去了很多地方,我们在这里有一个很棒的酒吧,我们在这里玩得很开心,我'你知道我有多惊讶。
> 你 走出酒吧,在街上和她一起闲逛
如果你现在就去街上,你可能不知道你会遇到什么,但如果你在街上,你就会知道。你不知道该怎么做,但你不想让你的家人看到你在这里而让他们感到不安。当你开始步行时,你会听到很多人在谈论你在高速公路上和一个女人在一起,当你想知道你的父母在哪时,你会向他们挥手。
> 你 问女人“你叫什么名字?”
男人说他叫詹姆斯,但女人回答说“我不知道,我只是希望你能告诉我你的名字。”“我的名字是杰西卡,她在这里工作了几个月,她告诉我你是个男人,但她说你看起来好像很年轻,她说她很高兴你回来了,但她想知道你是不是很快活。”“对,我'tTellYou,”你说,你看到这两个女人都笑了。
> 你 对女人说“那你叫凯特吧”
她说“好的,很好,你是一个'Tsenk,你会得到一些你想要的”她举起你的手,你把手伸进她的筒裙,你发现你的手在颤抖,但这似乎让你很开心。“现在让她把你的手放在你的胸部,”她说,你在这里的胸罩边缘的一个环上摸,你很容易就找到了你的胸罩。
> 你 说“你在干什么凯特?”
response quality check failed,generating another one
她笑了,她说“你现在可以亲她了,然后,”她开始把你的手放在她的胸罩边缘,当你的手开始颤抖并开始大笑时,她把你的手移到她的胸罩上,你会感觉到有一个温暖的吻落在你的胸口。“你会对我做出这种行为吗?”她轻声问。
> 你
故事朝有点奇怪的地方发展。。。但是还是原来的味道。。。说明这个4GB的模型仍然是ok的。