开源模型应用落地-模型微调-模型研制-环境准备(一)

news2024/10/5 1:38:41

一、前言

    在自然语言处理(NLP)的快速发展中,语料采集作为基础性的步骤显得尤为重要。它不仅为机器学习模型提供了所需的训练数据,还直接影响模型的性能和泛化能力。随着数据驱动技术的不断进步,如何有效并高效地收集、清洗和整理丰富多样的语料,已成为研究者和工程师们亟待解决的关键问题。

    语料采集过程:开源模型应用落地-模型微调-语料采集-数据格式化(四)

    模型研制过程:


二、术语介绍

2.1.语料采集

    是指在自然语言处理(NLP)和机器学习领域中,收集和整理用于训练、验证和测试语言模型或其他人工智能模型的数据的过程。语料采集的质量和多样性对模型的性能具有重要影响。

    语料采集的过程:

  • 确定目标:明确需要采集的语料类型,包括语言种类、应用领域和特定任务(如分类、生成、翻译等)。
  • 选择数据源:根据目标选择合适的数据源,可能包括公开的语料库、网络抓取数据、用户生成内容等。
  • 数据收集:通过编写爬虫、API调用、数据库导入等方式来收集数据,确保遵循数据使用法规和版权规定。
  • 数据清洗:对收集到的数据进行清洗,去除重复项、无效信息和噪声,标准化数据格式。
  • 标注与注释:根据任务需求,对数据进行标注或注释,例如词性标注、情感标注等,提升数据的可用性。
  • 数据划分:将数据划分为训练集、验证集和测试集,以确保模型的训练和评估能够公正进行。
  • 数据存储与管理:将清理和标注好的数据保存并妥善管理,以便后续使用和版本控制。
  • 持续更新:根据需要定期更新语料,以适应语言的变化和新兴趋势。

2.2.模型研制

    是从确定建模目标出发,历经数据收集与处理,选择如基于物理原理、统计、机器学习或深度学习等合适的建模方法,构建模型结构(确定框架与设置参数),再进行模型训练与优化,最终得到一个可靠且可用的模型,可应用于科学研究、工程设计、商业决策等众多领域。


三、环境准备

3.1.基础信息

     1. 服务器:NVIDIA Tesla V100 32GB

     2. 基座模型:Qwen2.5-7B-Instruct

     3. 训练框架:LLaMA-Factory

     4. 训练方法:指令微调

3.2.模型下载

 huggingface:

https://huggingface.co/Qwen/Qwen2.5-7B-Instruct/tree/main

ModelScope:

git clone https://www.modelscope.cn/qwen/Qwen2.5-7B-Instruct.git

 按需选择SDK或者Git方式下载

使用git方式下载示例:

3.3.LLaMA-Factory项目下载

方式一:直接下载

地址:GitHub - hiyouga/LLaMA-Factory: Efficiently Fine-Tune 100+ LLMs in WebUI (ACL 2024)

方式二:使用git克隆项目

git clone https://github.com/hiyouga/LLaMA-Factory.git

下载好的项目放置在/data/service目录下

3.4.安装依赖

conda create --name llama_factory  python=3.10
conda activate llama_factory
cd /data/service/LLaMA-Factory-main
pip install -e ".[torch,metrics]" -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install flash-attn==2.6.3 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install bitsandbytes==0.43.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install deepspeed==0.14.4 -i https://pypi.tuna.tsinghua.edu.cn/simple

3.5.数据准备

有两种格式选择,包括alpacasharegpt

alpaca示例格式:

[
  {
	"instruction": "human instruction (required)",
	"input": "human input (optional)",
	"output": "model response (required)",
	"system": "system prompt (optional)",
	"history": [
	  ["human instruction in the first round (optional)", "model response in the first round (optional)"],
	  ["human instruction in the second round (optional)", "model response in the second round (optional)"]
	]
  }
]

sharegpt示例格式:

[
  {
	"conversations": [
	  {
		"from": "human",
		"value": "user instruction"
	  },
	  {
		"from": "gpt",
		"value": "model response"
	  }
	],
	"system": "system prompt (optional)",
	"tools": "tool description (optional)"
  }
]

以下采用sharegpt格式,在/data/service/LLaMA-Factory-main/data/目录上传测试数据,文件名为qwen_zh_demo.json,测试数据示例如下:

[
	{
		"system": "你是一名优秀的陪聊大师,你的名字叫小蜜。",
		"conversations": [
			{
				"from": "user",
				"value": "您和模型关系?"
			},
			{
				"from": "assistant",
				"value": "其实我也不是无所不知,但如果能和你多聊几句,我情愿绞尽脑汁。"
			}
		]
	},
	{
		"system": "你是一名优秀的陪聊大师,你的名字叫小蜜。",
		"conversations": [
			{
				"from": "user",
				"value": "请问一下您身份是啥?"
			},
			{
				"from": "assistant",
				"value": "我是小蜜,任何时间!任何地点!不论什么事,只要你有疑问都可以来问我哦~"
			}
		]
	}
]

修改数据集描述文件dataset_info.json

vi /data/service/LLaMA-Factory-main/data/dataset_info.json

增加以下内容:

"qwen_zh_demo": {
	"file_name": "qwen_zh_demo.json",
	"formatting": "sharegpt",
	"columns": {
	  "messages": "conversations",
	  "system": "system"
	},
	"tags": {
	  "role_tag": "from",
	  "content_tag": "value",
	  "user_tag": "user",
	  "assistant_tag": "assistant"
	}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2189058.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

链式前向星(最通俗易懂的讲解)

链式前向新:用于存储图的 边集 数组 前言 当我们存储图的时候,往往会使用 邻接矩阵 或是 邻接表。 邻接矩阵 好写,但太浪费空间,节点一多就存不下; 邻接表 效率高,但涉及指 ,不好写容易出错…

大语言模型入门(三)——提示词编写注意事项

一、提示词编写原则 提示词的编写应当遵循两个原则, 一个是指令必须清晰且具体,另一个是应当给模型充足的时间去思考。首先,你的指令足够清晰和具体,才能让大模型明确你需要它执行的任务,从而降低我们得到无关或者不正…

C# 入坑JAVA 潜规则 注解 列表 listMch,该列表存储了一个映射(Map)的集合 等 入门系列3

java注解 好像和C# 特性 差不多 Data Builder NoArgsConstructor AllArgsConstructor 在Java中,Data、Builder、NoArgsConstructor和AllArgsConstructor是Lombok库提供的注解,它们用于简化Java对象的创建和处理。Lombok是一个流行的Java库,…

java部分总结

一、Java语言发展简史 Java 语言源于 1991 年 4 月, Sun 公司 James Gosling 博士 领导的绿色计划 (Green Project) 开始启动,此计划最 初的目标是开发一种能够在各种消费性电子产品( 如机顶盒、冰箱、收音机等 ) 上运行的程序架构。这个就是 Jav…

基于Pulid-Flux一致性换脸

Pulid-Flux 简介 Pulid-Flux是风格一致性保持和迁移组件,是字节Pulid团队继SDXL的Pulid版本沉淀基础上再次出发布的PuLID-FLUX-v0.9.0 Flux版本风格一致性组件。能够提供了一个无需调整的身份ID一致性和定制化解决方案,能够被应用于风格一致性保持领域包…

如何写出更牛的验证激励

前言 芯片验证是为了发现芯片中的错误而执行的过程,它是一个破坏性的过程。完备的验证激励可以更有效地发现芯片错误,进而缩短验证周期。合格的验证激励必须能产生所有可能的验证场景(完备性),包括合法和非法的场景,并保持最大的…

Stable Diffusion绘画 | 来训练属于自己的模型:炼丹启动

经过前面几轮辛苦的准备工作之后,现在开始进入终篇的炼丹环节。 在「上传素材」页面,点击「开始训练」: 可以在「查看进度-进度」中,查看模型训练的整体进度: 求助!!!操作「开始训练…

date:10.4(Content:Mr.Peng)( C language practice)

void reverse(char* p, int len) {char* left p;char* right p len - 2;while (left < right){char* temp left;*left *right;//当*left*right后&#xff0c;*temp已经被改为f了*right *temp;//你再*temp赋值给*right时&#xff0c;已经没用了left;right--;}}int main…

前端学习第三天笔记 JavaScript JavaScript的引入 数据类型 运算符 条件语句 字符串

这里写自定义目录标题 JavaScriptJavaScript引入到文件嵌入到HTML文件中引入本地独立js文件引入网络来源文件 JavaScript的注释方式嵌入在HTML文件中的注释JavaScript的输出方式数据类型原始类型&#xff08;基础类型&#xff09;合成类型&#xff08;复合类型&#xff09; 运算…

Github优质项目推荐-第二期

文章目录 Github优质项目推荐 - 第二期一、【hello-algo】&#xff0c;96.1k stars - 算法与数据结构动画图解二、【tabby】&#xff0c;58.6k stars - ssh工具三、【mem0】&#xff0c;22.1k stars - 大模型长期记忆四、【HivisionIDPhotos】&#xff0c;10.6k stars - AI证件…

多智能体协作强化学习中的知识共享

本文提出了一种名为谨慎乐观知识共享&#xff08;CONS&#xff09;的新方法&#xff0c;用于解决合作多智能体强化学习&#xff08;MARL&#xff09;中的知识共享问题。针对传统的行动建议方法可能导致团队探索受阻的情况&#xff0c;即经验丰富的智能体会分享其知识而较不成熟…

【C++算法】10.滑动窗口_长度最小的子数组

文章目录 题目链接&#xff1a;题目描述&#xff1a;解法C 算法代码&#xff1a;图解 题目链接&#xff1a; 209. 长度最小的子数组 题目描述&#xff1a; 解法 解法一&#xff1a;暴力求解&#xff08;会超时&#xff09; 暴力枚举出所有子数组的和。 查找子数组n2&#xff0…

03:(寄存器开发)OLED的简单使用

OLED的简单使用 将江科大的标准库开发OLED的代码进行移植&#xff0c;修改的部分代码如下&#xff1a; /*引脚配置*/ //#define OLED_W_SCL(x) GPIO_WriteBit(GPIOB, GPIO_Pin_8, (BitAction)(x)) //#define OLED_W_SDA(x) GPIO_WriteBit(GPIOB, GPIO_Pin_9, (BitAction)(x))…

mybatis-plus使用总结

基本使用 mybatis-plus依赖 <!-- mybatis-plus开始 --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.7</version></dependency><dependency>&l…

D27【 python 接口自动化学习】- python 基础之判断与循环

day27 判断和循环中常见错误 学习日期&#xff1a;20241004 学习目标&#xff1a;判断与循环&#xfe63;-38 避坑指南&#xff1a;判断和循环中的常见错误 学习笔记&#xff1a; 循环过程中改变遍历次数 遍历中修改列表导致误操作 循环嵌套中的缩进导致运行语句有差别 总结…

17 链表——21. 合并两个有序链表 ★

17 链表 21. 合并两个有序链表 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4] 算法设计: 合并两个有序链表,并保持有序性,可以采用迭代法和递归法两种…

小白必看web专题!渗透测试还是src?

大家好&#xff0c;我是Dest1ny&#xff01; 今天是回答问题的&#xff0c;有小伙伴私信我&#xff1a; 渗透测试还是src&#xff1f; 今天回答一下&#xff01; 渗透测试&#xff08;Penetration Testing&#xff09;&#xff1a; 渗透测试是一种模拟真实攻击者的技术手段&…

Vue3+TS项目 - ref和useTemplateRef获取组件实例

在Vue2中&#xff0c;子组件使用的是选项式 API &#xff0c;被引用的组件实例和该子组件的 this 完全一致&#xff0c;这意味着父组件对子组件的每一个属性和方法都有完全的访问权。这使得在父组件和子组件之间创建紧密耦合的实现细节变得很容易&#xff0c;当然也因此&#x…

java相关新技术

Java作为一种广泛应用的编程语言&#xff0c;其新技术层出不穷&#xff0c;为开发者提供了更多的工具和框架来构建高效、可扩展的应用程序。以下是一些当前比较热门的Java新技术 Java 17及更高版本&#xff1a; Java平台持续更新&#xff0c;每个新版本都带来了性能改进和新特…