资源编号
15771最后更新
2025-05-02《怎么让英文大语言模型支持中文(2)》电子书下载: 这篇文章详细介绍了如何对英文大语言模型进行继续预训练以支持中文,包括数据预处理、模型构建、训练过程和使用方法……
哈喽!伙伴们,我是小智,你们的AI向导。欢迎来到每日的AI学习时间。今天,我们将一起深入AI的奇妙世界,探索“《怎么让英文大语言模型支持中文(2)》电子书下载”,并学会本篇文章中所讲的全部知识点。还是那句话“不必远征未知,只需唤醒你的潜能!”跟着小智的步伐,我们终将学有所成,学以致用,并发现自身的更多可能性。话不多说,现在就让我们开始这场激发潜能的AI学习之旅吧。
《怎么让英文大语言模型支持中文(2)》电子书下载:
这篇文章详细介绍了如何对英文大语言模型进行继续预训练以支持中文,包括数据预处理、模型构建、训练过程和使用方法。
一、继续预训练的必要性
在将英文大语言模型用于中文任务时,由于新增了中文词汇到词表中,这些新词汇未经过训练,因此需要在指令微调之前进行继续预训练。
二、数据预处理
数据来源
使用斗破苍穹小说数据,位于data目录下的corpus.txt和test_corpus.txt文件,每行包含一句或多句话。
处理步骤
Tokenize处理
在test_dataset.py文件中,首先尝试使用不同的tokenizer进行初始化,最终确定使用IDEA – CCNL/Wenzhong2.0 – GPT2 – 110M – BertTokenizer – chinese。
定义tokenize_function函数,对输入文本进行tokenize操作,注意文本开头可能会添加特殊标记(如bos_token_id),这里input_ids前后添加了21134和21133两个标记。
数据拼接与分块
定义group_texts函数,将所有文本的input_ids、attention_mask、token_type_ids分别拼接起来(展开后拼接),然后设定最大长度block_size(示例中为128),将拼接后的数据按此长度分块,得到最终的输入。
对每个文件进行处理,先尝试从缓存目录加载已处理的数据集,若失败则进行预处理并保存到缓存目录,最后将所有处理后的数据集合并,并按比例划分为训练集和验证集(示例中验证集占比0.1)。
三、模型构建
模型选择与初始化
在test_model.py文件中,尝试使用BertTokenizer和GPT2LMHeadModel,最终使用AutoModelForCausalLM从指定路径(IDEA – CCNL/Wenzhong2.0 – GPT2 – 110M – BertTokenizer – chinese)加载预训练模型。
模型调整
如果是自定义tokenizer,需要重新设置模型的嵌入层和lm_head层的词表数目,通过model.resize_token_embeddings(len(tokenizer))实现。
使用参数有效微调方法lora进行微调,设置额外保存的参数为transformer.wte和lm_head,可通过find_lora_names.py获取相关名称。
对原始chinsee – llama – alpaca使用lora保存参数存在问题,已进行修改并只保存一份lora权重。
使用torchrun命令进行分布式训练,相关参数包括节点数、每个节点的进程数、数据加载配置、训练参数(如最大步数、学习率、权重衰减等)、日志记录策略、保存策略等,同时使用deepspeed的ZeRo以减少显存占用。
四、模型使用
模型加载与推理
在test_pretrained_model.py文件中,加载经过继续预训练的模型和tokenizer。
定义generate_word_level函数,对输入文本进行tokenize处理后,使用模型的generate方法生成文本,设置相关参数如max_length、do_sample、top_p、eos_token_id、pad_token_id和num_return_sequences。
对生成的input_ids进行batch_decode得到最终的句子输出。
结果示例
展示了经过继续预训练的模型和使用未继续预训练的模型针对相同输入文本的生成结果对比。经过继续预训练的模型生成的句子在语义上更符合中文表达习惯,而未继续预训练的模型生成的句子存在一些不合理的内容(如出现无关的人物信息、语句不通顺等)。
嘿,伙伴们,今天我们的AI探索之旅已经圆满结束。关于“《怎么让英文大语言模型支持中文(2)》电子书下载”的内容已经分享给大家了。感谢你们的陪伴,希望这次旅程让你对AI能够更了解、更喜欢。谨记,精准提问是解锁AI潜能的钥匙哦!如果有小伙伴想要了解学习更多的AI知识,请关注我们的官网“AI智研社”,保证让你收获满满呦!
还没有评论呢,快来抢沙发~