当前位置: 首页 > news >正文

织梦网站怎么做seo优化百度seo优化教程免费

织梦网站怎么做seo优化,百度seo优化教程免费,新网站建设咨询,wordpress样式复制不丢失1 构建中文tokenization 参考链接:https://zhuanlan.zhihu.com/p/639144223 1.1 为什么需要 构建中文tokenization? 原始的llama模型对中文的支持不太友好,接下来本文将讲解如何去扩充vocab里面的词以对中文进行token化。 1.2 如何对 原始数…

1 构建中文tokenization

参考链接:https://zhuanlan.zhihu.com/p/639144223

1.1 为什么需要 构建中文tokenization?

原始的llama模型对中文的支持不太友好,接下来本文将讲解如何去扩充vocab里面的词以对中文进行token化。

1.2 如何对 原始数据预处理?

每一行为一句或多句话。保存为语料corpus

1.3 如何构建中文的词库?

一般的,目前比较主流的是使用sentencepiece训练中文词库。
运行后会得到tokenizer.model和tokenizer.vocab两个文件。

1.4 如何使用transformers库加载sentencepiece模型?

它可以用transformers库里面的tokenizer对象加载读取。

1.5 如何合并英文词表和中文词表?

将原始词表中没有的新加入进去vocab.model。

for p in chinese_spm.pieces:piece = p.pieceif piece not in llama_spm_tokens_set:new_p = sp_pb2_model.ModelProto().SentencePiece()new_p.piece = piecenew_p.score = 0llama_spm.pieces.append(new_p)

1.6 怎么使用修改后的词表?

如果我们重新从头开始训练,那么其实使用起来很简单:

config = AutoConfig.from_pretrained(…)
tokenizer = LlamaTokenizer.from_pretrained(…)
model = LlamaForCausalLM.from_pretrained(…, config=config)
model_vocab_size = model.get_output_embeddings().weight.size(0)
model.resize_token_embeddings(len(tokenizer))

但是如果我们想要保留原始模型embedding的参数,那么我们可以这么做:

  1. 找到新词表和旧词表id之间的映射关系。
  2. 将模型里面新词表里面包含的旧词表用原始模型的embedding替换。
  3. 如果新词在旧词表里面没有出现就进行相应的初始化再进行赋值。
    具体怎么做可以参考一下这个:https://github.com/yangjianxin1/LLMPruner

1.7 总结一下 构建中文tokenization?

1、使用sentencepiece训练一个中文的词表。
2、使用transformers加载sentencepiece模型。
3、怎么合并中英文的词表,并使用transformers使用合并后的词表。
4、在模型中怎么使用新词表。

2 继续预训练篇

2.1 为什么需要进行继续预训练?

我们新增加了一些中文词汇到词表中,这些词汇是没有得到训练的,因此在进行指令微调之前我们要进行预训练。预训练的方式一般都是相同的,简单来说,就是根据上一个字预测下一个字是什么。

2.2 如何对 继续预训练 数据预处理?

先使用tokenizer()得到相关的输入,需要注意的是可能会在文本前后添加特殊的标记,比如bos_token_id和eos_token_id,针对于不同模型的tokneizer可能会不太一样。这里在input_ids前后添加了21134和21133两个标记。
然后将所有文本的input_ids、attention_mask, token_type_ids各自拼接起来(展开后拼接,不是二维数组之间的拼接),再设定一个最大长度block_size,这样得到最终的输入。

2.3 如何 构建模型?

我们可以使用同样的英文原模型,但是tokenizer换成我们新的tokenizer.由于tokenizer词表个数发生了变化,我们需要将模型的嵌入层和lm_head层的词表数目进行重新设置:
model_vocab_size = model.get_output_embeddings().weight.size(0)
model.resize_token_embeddings(len(tokenizer))

2.4 如何 使用模型?

按照transformer基本的使用模型的方法即可。可以用automodel, automodelforcasualLm等方法

3 对预训练模型进行指令微调

3.1 为什么需要对预训练模型进行指令微调?

如果需要模型能够进行相应的下游任务,我们就必须也对模型进行下游任务的指令微调。
只经过上面的继续与训练,模型能够获得基本的知识,但是更加领域的,特别的精细的指令还需要指令微调来获得。
对数据处理到训练、预测的整个流程有所了解,其实,基本上过程是差不多的。我们在选择好一个大语言模型之后。比如chatglm、llama、bloom等,要想使用它,得了解三个方面:输入数据的格式、tokenization、模型的使用方式。

3.2 对预训练模型进行指令微调 数据 如何处理?

指令微调的数据处理和继续与训练的数据处理相同。
需要注意的是根据微调任务不同,
将原本的分类或者预测任务,直接转变为特定单词或者句子的生成任务。并且添加特殊的标记。来区分不同的任务以及不同的结果。

3.3 对预训练模型进行指令微调 tokenization 如何构建?

与与训练的基本一致。
如果有针对某些特殊的字或者语言需要扩充语料库。可以使用保留字符,或者重新进行上面的【构建tokenization】任务

3.4 对预训练模型进行指令微调 模型 如何构建?

使用原有的模型,进行全参数微调。
也可以使用adapter的结构,将模型固定住,只训练少量参数
还可以使用prompt等其他的方式。不进行参数调整。只改变输入数据的信息

3.5 是否可以结合 其他库 使用?

可以
其它的一些就是结合一些库的使用了,比如:
deepspeed
transformers
peft中使用的lora
datasets加载数据
需要注意的是, 我们可以把数据拆分为很多小文件放在一个文件夹下,然后遍历文件夹里面的数据,用datasets加载数据并进行并行处理后保存到磁盘上。如果中间发现处理数据有问题的话要先删除掉保存的处理后的数据,再重新进行处理,否则的话就是直接加载保存的处理好的数据。
在SFT之后其实应该还有对齐这部分,就是对模型的输出进行规范,比如使用奖励模型+基于人类反馈的强化学习等,这里就不作展开了。

http://www.hkea.cn/news/254809/

相关文章:

  • 阿里云认证网站建设题库seo助理
  • 凤岗网站仿做靠谱seo外包定制
  • xampp安装wordpress说明徐州seo外包
  • 啥网站都能看的浏览器下载百度收录查询工具
  • 福田附近公司做网站建设哪家效益快奶糖 seo 博客
  • 临沂免费自助建站模板品牌整合营销
  • iis做本地视频网站找客户资源的网站
  • 做调查用哪个网站网络推广有多少种方法
  • 开发一个交易网站多少钱在线工具
  • 网站平台怎么建立的软文范例
  • 移动应用开发专业学什么东莞seo软件
  • 做宣传网站的公司手机百度极速版app下载安装
  • 私人可以做慈善网站吗外贸如何推广
  • 网站页面模板页面布局如何成为百度广告代理商
  • 瑞安外贸网站建设曲靖百度推广
  • 先做网站还是服务器销售营销方案100例
  • 用卫生纸做的礼物街网站免费网页空间到哪申请
  • 手游网站做cpc还是cpm广告号厦门网页搜索排名提升
  • 人个做外贸用什么网站好宁波百度seo点击软件
  • 诈骗网站怎么做的企业网站seo案例分析
  • 如何做网站接口湖南营销型网站建设
  • 进入兔展网站做PPt软文营销ppt
  • app网站新闻危机公关
  • 东莞关键词优化实力乐云seo南宁seo外包服务商
  • 做网站都是用源码么免费注册个人网站不花钱
  • 建设网站需要两种服务支持官网设计公司
  • 安庆做网站seo建站收费地震
  • 绵阳住房和城市建设局网站官网seo排名优化联系13火星软件
  • 网站开发建设费用关键词异地排名查询
  • 网站建设企业电话广州优化疫情防控举措