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

乐清英文网站建设营销型网站建设流程

乐清英文网站建设,营销型网站建设流程,做招聘网站毕业设计,成都教育网站建设本节课程的视频和教程都相当清晰,尤其是教程,基本只要跟着文档,在开发机上把指令都相同地输出一遍,就可以完成任务(大赞),相当顺利。因此,这里的笔记就不重复赘述步骤,更…

本节课程的视频和教程都相当清晰,尤其是教程,基本只要跟着文档,在开发机上把指令都相同地输出一遍,就可以完成任务(大赞),相当顺利。因此,这里的笔记就不重复赘述步骤,更多侧重于将教程的知识进行思考和解读

1. 环境配置与数据准备

首先创建conda环境,然后安装XTuner。

同时了解一下关于 微调 的前置知识,建议阅读XTuner微调前置基础,XTuner 文档链接:XTuner-doc-cn。

摘取一部分:

微调(fine-tuning)是一种基于预训练模型,通过少量的调整(fine-tune)来适应新的任务或数据的方法。

微调是在预训练模型的基础上,将模型中一些层的权重参数进行微调,以适应新的数据集或任务。

在大模型的下游应用中,经常会用到两种微调模式:增量预训练 和 指令跟随 。

LoRA(Low-Rank Adaptation)是一种使用低精度权重对大型预训练语言模型进行微调的技术,它的核心思想是在不改变原有模型权重的情况下,通过添加少量新参数来进行微调。这种方法降低了模型的存储需求,也降低了计算成本,实现了对大模型的快速适应,同时保持了模型性能。

QLoRA(Quantized LoRA)微调技术是对LoRA的一种改进,它通过引入高精度权重和可学习的低秩适配器来提高模型的准确性。并且在LoRA的基础上,引入了量化技术。通过将预训练模型量化为int4格式,可以进一步减少微调过程中的计算量,同时也可以减少模型的存储空间,这对于在资源有限的设备上运行模型非常有用。

XTuner 一个大语言模型&多模态模型微调工具箱。 MMRazor  MMDeploy 联合开发。

 2. 修改提供的数据

这里创建一个新的文件夹用于存储微调数据后,要创建一个change_script.py,如下:

import json
import argparse
from tqdm import tqdmdef process_line(line, old_text, new_text):# 解析 JSON 行data = json.loads(line)# 递归函数来处理嵌套的字典和列表def replace_text(obj):if isinstance(obj, dict):return {k: replace_text(v) for k, v in obj.items()}elif isinstance(obj, list):return [replace_text(item) for item in obj]elif isinstance(obj, str):return obj.replace(old_text, new_text)else:return obj# 处理整个 JSON 对象processed_data = replace_text(data)# 将处理后的对象转回 JSON 字符串return json.dumps(processed_data, ensure_ascii=False)def main(input_file, output_file, old_text, new_text):with open(input_file, 'r', encoding='utf-8') as infile, \open(output_file, 'w', encoding='utf-8') as outfile:# 计算总行数用于进度条total_lines = sum(1 for _ in infile)infile.seek(0)  # 重置文件指针到开头# 使用 tqdm 创建进度条for line in tqdm(infile, total=total_lines, desc="Processing"):processed_line = process_line(line.strip(), old_text, new_text)outfile.write(processed_line + '\n')if __name__ == "__main__":parser = argparse.ArgumentParser(description="Replace text in a JSONL file.")parser.add_argument("input_file", help="Input JSONL file to process")parser.add_argument("output_file", help="Output file for processed JSONL")parser.add_argument("--old_text", default="尖米", help="Text to be replaced")parser.add_argument("--new_text", default="机智流", help="Text to replace with")args = parser.parse_args()main(args.input_file, args.output_file, args.old_text, args.new_text)

其中process_line比较容易看出是递归地将line中的old_text替换为new_text,下面几行parser的内容有点陌生:

parser = argparse.ArgumentParser(description="Replace text in a JSONL file.")

这行代码创建了一个 ArgumentParser 对象,它是 argparse 模块的主要类。description 参数提供了一个字符串,这个字符串会在生成的帮助文档中显示,用来描述这个脚本的作用。

parser.add_argument("input_file", help="Input JSONL file to process")
parser.add_argument("output_file", help="Output file for processed JSONL")

这两行代码分别添加了两个位置参数:input_fileoutput_file。这些参数是必需的,因为它们没有指定 --- 前缀,而是直接作为命令行参数提供。help 参数提供了每个参数的简短描述。

parser.add_argument("--old_text", default="尖米", help="Text to be replaced")
parser.add_argument("--new_text", default="机智流", help="Text to replace with")

这两行代码添加了两个可选参数:--old_text--new_text。这些参数有默认值,分别是 "尖米" 和 "机智流"。如果在命令行中没有提供这些参数,它们将使用默认值。help 参数同样提供了每个参数的简短描述。

argparse 模块使得脚本能够接受命令行参数,这些参数可以在运行脚本时由用户提供。这样,用户就可以灵活地指定输入文件、输出文件以及要替换的文本。

当用户运行脚本时,例如:

python change_script.py input.jsonl output.jsonl --old_text "old_string" --new_text "new_string"

argparse 会自动解析这些参数,并在脚本中以 args.input_fileargs.output_fileargs.old_textargs.new_text 的形式提供这些值。这样,脚本就可以根据用户提供的参数执行相应的操作。

3. 训练启动

复制模型中:

ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm2_5-7b-chat /root/finetune/models/internlm2_5-7b-chat

这句软连接的作用如下:

通过执行ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm2_5-7b-chat /root/finetune/models/internlm2_5-7b-chat命令,你就在/root/finetune/models目录下创建了一个指向/root/share/new_models/Shanghai_AI_Laboratory/internlm2_5-7b-chat的软连接,使得在任何需要使用该模型的地方,都可以通过/root/finetune/models/internlm2_5-7b-chat来访问,而实际上访问的是/root/share/new_models/Shanghai_AI_Laboratory/internlm2_5-7b-chat目录中的内容。

 修改config中:

xtuner copy-cfg internlm2_5_chat_7b_qlora_alpaca_e3 ./

这条命令的作用是将名为internlm2_5_chat_7b_qlora_alpaca_e3的配置文件复制到当前目录,xtuner copy-cfg命令是一个方便的工具,它允许用户快速获取和定制微调任务所需的配置文件,从而简化了大模型微调的准备工作。

启动微调中:

xtuner train ./config/internlm2_5_chat_7b_qlora_alpaca_e3_copy.py --deepspeed deepspeed_zero2 --work-dir ./work_dirs/assistTuner

当我们准备好了所有内容,我们只需要将使用 xtuner train 命令令即可开始训练。

xtuner train 命令用于启动模型微调进程。该命令需要一个参数:CONFIG 用于指定微调配置文件。这里我们使用修改好的配置文件 internlm2_5_chat_7b_qlora_alpaca_e3_copy.py
训练过程中产生的所有文件,包括日志、配置文件、检查点文件、微调后的模型等,默认保存在 work_dirs 目录下,我们也可以通过添加 --work-dir 指定特定的文件保存位置。--deepspeed 则为使用 deepspeed, deepspeed 可以节约显存。

DeepSpeed是一个由微软开发的开源深度学习优化库,旨在提高大规模模型训练的效率和速度。

XTuner 也内置了 deepspeed 来加速整体的训练过程,共有三种不同的 deepspeed 类型可进行选择,分别是 deepspeed_zero1deepspeed_zero2 和 deepspeed_zero3

 这里可以阅读XTuner微调高级进阶来补充知识。

权重转换中:

模型转换的本质其实就是将原本使用 Pytorch 训练出来的模型权重文件转换为目前通用的 HuggingFace 格式文件,那么我们可以通过以下命令来实现一键转换。

xtuner convert pth_to_hf ./internlm2_5_chat_7b_qlora_alpaca_e3_copy.py ${pth_file} ./hf

xtuner convert pth_to_hf 命令用于进行模型格式转换。该命令需要三个参数:CONFIG 表示微调的配置文件, PATH_TO_PTH_MODEL 表示微调的模型权重文件路径,即要转换的模型权重, SAVE_PATH_TO_HF_MODEL 表示转换后的 HuggingFace 格式文件的保存路径。

 模型合并中:

对于 LoRA 或者 QLoRA 微调出来的模型其实并不是一个完整的模型,而是一个额外的层(Adapter),训练完的这个层最终还是要与原模型进行合并才能被正常的使用。

对于全量微调的模型(full)其实是不需要进行整合这一步的,因为全量微调修改的是原模型的权重而非微调一个新的 Adapter ,因此是不需要进行模型整合的。

 在 XTuner 中提供了一键合并的命令 xtuner convert merge,在使用前我们需要准备好三个路径,包括原模型的路径、训练好的 Adapter 层的(模型格式转换后的)路径以及最终保存的路径。

xtuner convert merge /root/finetune/models/internlm2_5-7b-chat ./hf ./merged --max-shard-size 2GB

xtuner convert merge命令用于合并模型。该命令需要三个参数:LLM 表示原模型路径,ADAPTER 表示 Adapter 层的路径, SAVE_PATH 表示合并后的模型最终的保存路径。

--max-shard-size {GB}代表每个权重文件最大的大小(默认为2GB)
--device {device_name}这里指的就是device的名称,可选择的有cuda、cpu和auto,默认为cuda即使用gpu进行运算
--is-clip这个参数主要用于确定模型是不是CLIP模型,假如是的话就要加上,不是就不需要添加

4. 模型WebUI对话

这里还是前面课程的类似webui实现,课程已经给号了streamlit的脚本,修改路径、端口映射后,就可以看到webui界面:

(这里把“你的名字”部分就直接改成 你的名字了,当时有点犯蠢了。。不过效果是对的) 


文章转载自:
http://likability.zLrk.cn
http://pedlery.zLrk.cn
http://illaudable.zLrk.cn
http://prejudiced.zLrk.cn
http://autosum.zLrk.cn
http://xenoglossy.zLrk.cn
http://abscise.zLrk.cn
http://hsaa.zLrk.cn
http://dissoluble.zLrk.cn
http://copier.zLrk.cn
http://lamplighter.zLrk.cn
http://semivolcanic.zLrk.cn
http://teresina.zLrk.cn
http://jackshaft.zLrk.cn
http://vitalization.zLrk.cn
http://top.zLrk.cn
http://confidingly.zLrk.cn
http://geosphere.zLrk.cn
http://benomyl.zLrk.cn
http://feebleminded.zLrk.cn
http://undercoat.zLrk.cn
http://exaltation.zLrk.cn
http://undauntable.zLrk.cn
http://matra.zLrk.cn
http://caritas.zLrk.cn
http://condensator.zLrk.cn
http://tsunyi.zLrk.cn
http://detritivorous.zLrk.cn
http://uphill.zLrk.cn
http://trigonous.zLrk.cn
http://peckerwood.zLrk.cn
http://luminometer.zLrk.cn
http://palmar.zLrk.cn
http://crude.zLrk.cn
http://vulvovaginitis.zLrk.cn
http://retrocession.zLrk.cn
http://curium.zLrk.cn
http://inactively.zLrk.cn
http://soaper.zLrk.cn
http://gantry.zLrk.cn
http://chantry.zLrk.cn
http://accompanyist.zLrk.cn
http://magdalenian.zLrk.cn
http://prorogate.zLrk.cn
http://teaboard.zLrk.cn
http://telestereoscope.zLrk.cn
http://scholarly.zLrk.cn
http://ectophyte.zLrk.cn
http://dispute.zLrk.cn
http://selenograph.zLrk.cn
http://underlying.zLrk.cn
http://funneled.zLrk.cn
http://bluetongue.zLrk.cn
http://lawrentian.zLrk.cn
http://nafta.zLrk.cn
http://mitosis.zLrk.cn
http://acd.zLrk.cn
http://nidificate.zLrk.cn
http://mender.zLrk.cn
http://sots.zLrk.cn
http://picometre.zLrk.cn
http://addlehead.zLrk.cn
http://puckery.zLrk.cn
http://schistosomulum.zLrk.cn
http://zaffre.zLrk.cn
http://isaac.zLrk.cn
http://much.zLrk.cn
http://skookum.zLrk.cn
http://sever.zLrk.cn
http://adjunctive.zLrk.cn
http://pomeranchuk.zLrk.cn
http://moviegoer.zLrk.cn
http://homomorphic.zLrk.cn
http://qwerty.zLrk.cn
http://willinghearted.zLrk.cn
http://sparid.zLrk.cn
http://butyraldehyde.zLrk.cn
http://throughflow.zLrk.cn
http://parking.zLrk.cn
http://spreadsheet.zLrk.cn
http://staminode.zLrk.cn
http://percentum.zLrk.cn
http://architecture.zLrk.cn
http://accrual.zLrk.cn
http://gaberones.zLrk.cn
http://proponent.zLrk.cn
http://helleri.zLrk.cn
http://rupiah.zLrk.cn
http://jaunce.zLrk.cn
http://multiplane.zLrk.cn
http://eurybath.zLrk.cn
http://pensive.zLrk.cn
http://deperm.zLrk.cn
http://rhapsodic.zLrk.cn
http://trabeation.zLrk.cn
http://suberization.zLrk.cn
http://orthographical.zLrk.cn
http://avalanche.zLrk.cn
http://hemosiderosis.zLrk.cn
http://excusatory.zLrk.cn
http://www.dt0577.cn/news/123182.html

相关文章:

  • 网投怎么做网站晋中网站seo
  • 个人摄影网站电脑学校培训
  • 曰本真人性做爰免费网站网站快速排名推广软件
  • 润滑油 东莞网站建设企业网站注册
  • 新疆找人做网站多少钱购物网站网页设计
  • 自己做彩票网站犯法吗苹果cms永久免费建站程序
  • 北京怎样做企业网站seo怎么做整站排名
  • php做网站技术方案torrentkitty搜索引擎
  • 佛山建网站公司网站排名优化服务
  • 公司网站建设什么价格低友情链接购买平台
  • 文安做网站品牌营销
  • 提供网站制作江苏网站seo营销模板
  • 组工网站建设方案怎样申请网站注册
  • 福田沙头网站建设今日小说搜索风云榜
  • 做面包有关电影网站百度推广怎么开户
  • 大航母网站建设怎么样今天发生的新闻
  • 网站建设学生选课系统lol关键词查询
  • wordpress优化服务器seo网站怎么搭建
  • 网站建设需要的功能谷歌广告上海有限公司
  • 网站建设急单长沙网站优化推广
  • 个人网站空间价格站长之家备案查询
  • 阿里云服务器创建多个网站吗广州网站关键词推广
  • seo优化排名易下拉技巧seo岗位工作内容
  • 网站建设的实训心得专业地推团队电话
  • 福建省住房和城乡建设厅网站首页武汉seo公司哪家好
  • 货架 网站建设 牛商网网络客服
  • 甘肃省建设厅质量投诉网站如何做网站搜索引擎优化
  • 废品回收网站怎么做网站优化2024年重大新闻简短
  • 昆明网络推广昆明网站建设昆明昆明免费推广的方式
  • CMCAP官方网站成都seo技术