Open ScottishFold007 opened 4 years ago
文本参数的设置可有些门道,我摸索了好久才找到比较理想的参数,大家也可以试试哈
怎么转tensorRT
@ScottishFold007 方便分享一下调参经验吗
能留个联系方式交流下吗
个人微信:g18818233178,来时请备注
---原始邮件--- 发件人: "Halfwaygo"<notifications@github.com> 发送时间: 2020年2月27日(周四) 下午2:28 收件人: "Morizeyao/GPT2-Chinese"<GPT2-Chinese@noreply.github.com>; 抄送: "Mention"<mention@noreply.github.com>;"Scottish_Fold007"<gaochangkuan01@foxmail.com>; 主题: Re: [Morizeyao/GPT2-Chinese] 分享一个训练好的《鬼吹灯》文本生成模型 (#128)
能留个联系方式交流下吗
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.
感谢分享
感谢分享
这是huggingface哪个版本的transformers?或者能有个GPT2Tokenizer加载的例子吗?看新的v2.5.1词典文件,是个json而不是这种文本格式的
https://github.com/huggingface/transformers/blob/v2.5.1/src/transformers/tokenization_gpt2.py#L36
理解错LZ意思了。用pytorch_transformers
可以了 👍
import pytorch_transformers
from tokenizations import tokenization_bert
config_file = "config.json"
vocab_file = "vocab.txt"
config = pytorch_transformers.GPT2Config.from_json_file(config_file)
config.output_attentions = True
model = pytorch_transformers.GPT2LMHeadModel.from_pretrained(".", config=config)
tokenizer = tokenization_bert.BertTokenizer(vocab_file=vocab_file)
device = "cuda" if torch.cuda.is_available() else "cpu"
model.to(device)
model.eval()
模型也可以这样使用:
from transformers import BertTokenizer
tokenizer = BertTokenizer.from_pretrained(r'E:\GPT2_Text_generation\散文GPT2Model')
special_tokens_dict = {"bos_token": "<s>", "eos_token": "</s>", "unk_token": "<unk>", "sep_token": "<sep>", "pad_token": "<pad>", "mask_token": "<mask>"}
tokenizer.add_special_tokens(special_tokens_dict)
model = GPT2LMHeadModel.from_pretrained(r'E:\GPT2_Text_generation\散文GPT2Model')
model.eval()
generated = context
length = 50
import torch.nn.functional as F
with torch.no_grad():
for _ in range(length):
# run the model
outputs,_ = model(generated)
# get the logits for the next word prediction
next_token_logits = outputs[0, -1, :]
# sample from the distribution over vocab
next_token = torch.multinomial(F.softmax(next_token_logits, dim=-1), num_samples=1)
# concatenate the sampled token to generated
generated = torch.cat((generated, next_token.unsqueeze(0)), dim=1)
#text = tokenizer.decode(generated[0].tolist())
tokens = tokenizer.convert_ids_to_tokens(generated[0].tolist(), skip_special_tokens=False)
for i, item in enumerate(tokens):
if item == '<mask>':
tokens[i] = ''
elif item == '</s>' or item == '<sep>':
tokens[i] = '\n'
generated_text = ''.join(tokens).strip().replace(' ', '').replace('##', '')
print(generated_text)
感谢分享!
@ScottishFold007 有没有通过指定部分关键词生成短文本或长文本的计划?
@ScottishFold007 有没有通过指定部分关键词生成短文本或长文本的计划?
没标注数据。。。
你好,请问你的语料库的json文件是什么样的格式,方便发出来看看吗
同问,一直搞不懂语料库的格式,能以斗破那个txt文件讲解一下吗?train.json内容是["文章1","文章2","文章3"],如果是自己的语料库的话应该如何组织呢
同问,一直搞不懂语料库的格式,能以斗破那个txt文件讲解一下吗?train.json内容是["文章1","文章2","文章3"],如果是自己的语料库的话应该如何组织呢
因为只用过train_single.py的方法,我举个金庸小说的例子吧,14部小说经过处理后变成json的格式然后写入到train.json当中去。 于是train.json = ["射雕英雄传整篇内容", "神雕侠侣整篇内容", "倚天屠龙记整篇内容".......] 同理,斗破苍穹如果只有一部那就是train.json = ["斗破苍穹整篇内容"]
以weibo.txt语料库为例,总结一下如何训练自定义数据集(时间过得比较久,可能有些步骤忽略了)
lines=f.readlines()
;注意--vocab_size
参数,这个参数会在后面用到;lines=f.readlines()
;注意参数--model_config,默认使用的是model_config_test.json
这个配置,这里的vocab_size等于make_vocab.py中设置的vocab_size数量加5,一定要匹配,否则运行错误;不出意外的话可以正常训练了;注意模型默认保存在output_dir
,--tokenizer_path是前面生成的词汇表路径;output_dir/final_model
路径,所以这个参数改为·--model_dir·比较合适,--prefix是文字生成的开头部分,--length可以指定生成文本的长度;Q:为什么模型输入是一个文件夹而不是单独的权重文件?A:其实从生成的文件夹来看包含模型配置文件config.json和对应的权重文件pytorch_model.bin,一个模型肯定是需要这两个菜完整的。平时使用pytorch保存的模型torch.save()直接把这两个都同时保存至一个文件了,所以可以正常加载,如果知道网络结构的情况下,只保存权重就可以 了同问,一直搞不懂语料库的格式,能以斗破那个txt文件讲解一下吗?train.json内容是["文章1","文章2","文章3"],如果是自己的语料库的话应该如何组织呢
因为只用过train_single.py的方法,我举个金庸小说的例子吧,14部小说经过处理后变成json的格式然后写入到train.json当中去。 于是train.json = ["射雕英雄传整篇内容", "神雕侠侣整篇内容", "倚天屠龙记整篇内容".......] 同理,斗破苍穹如果只有一部那就是train.json = ["斗破苍穹整篇内容"]
训练效果怎么样呢
怎么转tensorRT
你好 你找到转tensorRT的途径了吗 最近考虑用triton部署gpt2
我想训练一个问答模型,应该准备一些什么样子的数据呢,用这个能训练吗?
Reference in n
我想训练一个问答模型,应该准备一些什么样子的数据呢,用这个能训练吗?
前两天用电脑训练了一个《鬼吹灯》的文本生成模型,不生用题主的代码,基于“抱抱脸(Huggingface)”发布的GPT2生成模型改的,文本组成:
5M多的语料,用CPU训练跑了40000 epoch。以下是效果:
链接:https://pan.baidu.com/s/1yjXUOqLDdvHV-XvGvhvAng 提取码:ihp2 复制这段内容后打开百度网盘手机App,操作更方便哦