大语言模型训练的两个阶段
先说结论:第一阶段在云平台训练至收敛 第二阶段本地GPU微调
一、阶段划分的核心逻辑
| 阶段 | 目标 | 资源特点 | 典型耗时占比 | 成本敏感度 |
|---|---|---|---|---|
| 预训练 | 获取通用表征能力 | 需要大规模分布式计算 | 70-90% | 高(追求每美元算力) |
| 微调 | 适配特定任务 | 需要领域数据安全/低延迟 | 10-30% | 中(需平衡效率与隐私) |
二、第一阶段:云平台预训练至收敛
1. 实施步骤
-
步骤1:配置云训练环境
bash
# 以AWS为例创建EC2实例 aws ec2 run-instances \--image-id ami-0c94855ba95c71c99 \ # Deep Learning AMI--instance-type p4d.24xlarge \ # 8×A100 40GB--volume-size 1000 \ # 1TB存储--security-group-ids sg-xxxxxx
-
步骤2:启动分布式训练
python
# 使用HuggingFace Trainer配置 training_args = TrainingArguments(output_dir="./gpt2-pretrained",num_train_epochs=100,per_device_train_batch_size=32,gradient_accumulation_steps=8,learning_rate=6e-5,fp16=True, # 启用混合精度deepspeed="configs/deepspeed_z3.json", # ZeRO-3优化logging_dir="./logs",save_strategy="steps",save_steps=10_000 )
-
步骤3:监控收敛状态
-
指标判断:当验证集loss连续5个epoch下降幅度<0.5%时判定收敛
-
断点续训:将checkpoint定期保存至S3存储桶
python
trainer.train(resume_from_checkpoint=True,cloud_checkpointing=s3://my-bucket/checkpoints )
-
2. 关键技术点
-
弹性算力管理:使用Kubernetes自动扩展集群规模
-
成本优化:采用Spot Instance节省60-70%费用
-
数据流水线:通过AWS Snowball传输PB级原始数据
三、第二阶段:本地GPU微调
1. 环境迁移流程
-
步骤1:模型下载与验证
bash
# 从S3下载预训练模型 aws s3 cp s3://my-bucket/gpt2-pretrained ./local-model/ --recursive# 验证模型完整性 sha256sum ./local-model/pytorch_model.bin
-
步骤2:构建本地训练环境
python
复制
下载
# 微调代码示例(使用QLoRA) from peft import LoraConfig, get_peft_modellora_config = LoraConfig(r=8,lora_alpha=32,target_modules=["q_proj","v_proj"],lora_dropout=0.05,bias="none" ) model = get_peft_model(model, lora_config)
2. 本地微调实施
-
硬件配置建议
组件 推荐配置 备注 GPU RTX 4090 (24GB) 支持int4量化 内存 64GB DDR5 处理长序列必备 存储 2TB NVMe SSD 加速数据加载 -
微调参数设置
python
training_args = TrainingArguments(output_dir="./gpt2-finetuned",per_device_train_batch_size=4,gradient_accumulation_steps=2,learning_rate=2e-5, # 比预训练低1-2个量级max_steps=1000,optim="adamw_torch_fused", report_to="none" # 本地不连接MLflow等 )
-
安全增强措施
-
数据加密:使用AES-256加密微调数据集
-
网络隔离:断开外网连接进行air-gapped训练
-
模型脱敏:
model.strip_private_weights()移除敏感信息
-
相关文章:
大语言模型训练的两个阶段
先说结论:第一阶段在云平台训练至收敛 第二阶段本地GPU微调 一、阶段划分的核心逻辑 阶段目标资源特点典型耗时占比成本敏感度预训练获取通用表征能力需要大规模分布式计算70-90%高(追求每美元算力)微调适配特定任务需要领域数据安全/低延迟…...
显示的图标跟UI界面对应不上。
图片跟UI界面不符合。 要找到对应dp的值。UI的dp要跟代码里的xml文件里的dp要对应起来。 蓝湖里设置一个宽度给对应上。然后把对应的值填入xml. 一个屏幕上的图片到底是用topmarin来设置,还是用bottommarin来设置。 因为第一节,5,7 车厢的…...
OJ判题系统第6期之判题逻辑开发——设计思路、实现步骤、代码实现(策略模式)
在看这期之前,建议先看前五期: Java 原生实现代码沙箱(OJ判题系统第1期)——设计思路、实现步骤、代码实现-CSDN博客 Java 原生实现代码沙箱之Java 程序安全控制(OJ判题系统第2期)——设计思路、实现步骤…...
css中的 vertical-align与line-height作用详解
一、vertical-align 详解 作用对象:行内元素(inline/inline-block)或表格单元格内容核心功能:控制元素在行框内的垂直对齐方式常用取值: baseline(默认):基线与父元素基线对齐top&a…...
vue数据可视化开发echarts等组件、插件的使用及建议-浅看一下就行
在 Vue 项目中使用 ECharts 进行数据可视化开发时,可以结合 Vue 的响应式特性和 ECharts 的强大功能,实现动态、交互式的图表展示。 一、ECharts 基础使用 1. 安装 ECharts npm install echarts2. 在 Vue 组件中使用 ECharts <template><div…...
高并发内存池(三):TLS无锁访问以及Central Cache结构设计
目录 前言: 一,thread cache线程局部存储的实现 问题引入 概念说明 基本使用 thread cache TLS的实现 二,Central Cache整体的结构框架 大致结构 span结构 span结构的实现 三,Central Cache大致结构的实现 单例模式 thr…...
在Taro中开发一个跨端Svg组件,同时支持小程序、H5、React Native
Taro系列中一直没有跨端的绘图工具,小程序端支持canvas但是不支持svg,RN端有 react-native-svg 支持svg,但是没有很好原生的canvas插件,社区的canvas都是基于WebView实现的,或者skia,这个插件的书写方式和c…...
【办公类-100-01】20250515手机导出教学照片,自动上传csdn+最大化、最小化Vs界面
背景说明: 每次把教学照片上传csdn,都需要打开相册,一张张截图,然后ctrlV黏贴到CSDN内,我觉得太烦了。 改进思路: 是否可以先把所有照片都上传到csdn,然后再一张张的截图(去掉幼儿…...
SIP协议栈--osip源码梳理
文章目录 osiposip主体结构体code main函数 状态机转化结构体code状态转换 sip事务结构体code osip_dialog结构体code 创建并发送200 OK响应 osip_message结构体code osip_eventcode 打印接收到的SIP消息 osip OSIP(Open Source Implementation of SIP)…...
Python零基础入门到高手8.4节: 元组与列表的区别
目录 8.4.1 不可变数据类型 8.4.2 可变数据类型 8.4.3 元组与列表的区别 8.4.4 今天彩票没中奖 8.4.1 不可变数据类型 不可变数据类型是指不可以对该数据类型进行原地修改,即只读的数据类型。迄今为止学过的不可变数据类型有字符串,元组。 在使用[]…...
深度学习入门:深度学习(完结)
目录 1、加深网络1.1 向更深的网络出发1.2 进一步提高识别精度1.3 加深层的动机 2、深度学习的小历史2.1 ImageNet2.2 VGG2.3 GoogleNet2.4 ResNet 3、深度学习的高速化3.1 需要努力解决的问题3.2 基于GPU的高速化3.3 分布式学习3.4 运算精度的位数缩减 4、深度学习的应用案例4…...
OpenCV CUDA模块中矩阵操作------矩阵元素求和
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在OpenCV的CUDA模块中,矩阵元素求和类函数主要用于计算矩阵元素的总和、绝对值之和以及平方和。这些操作对于图像处理中的特征提取、…...
使用Scrapeless Scraping Browser的自动化和网页抓取最佳实践
引言:人工智能时代浏览器自动化和数据收集的新范式 随着生成性人工智能、人工智能代理和数据密集型应用程序的快速崛起,浏览器正在从传统的“用户互动工具”演变为智能系统的“数据执行引擎”。在这一新范式中,许多任务不再依赖单一的API端点…...
java数组题(5)
(1): 思路: 1.首先要对数组nums排序,这样两数之间的差距最小。 2.题目要求我们通过最多 k 次递增操作,使数组中某个元素的频数(出现次数)最大化。经过上面的排序,最大数…...
使用Thrust库实现异步操作与回调函数
文章目录 使用Thrust库实现异步操作与回调函数基本异步操作插入回调函数更复杂的回调示例注意事项 使用Thrust库实现异步操作与回调函数 在Thrust库中,你可以通过CUDA流(stream)来实现异步操作,并在适当的位置插入回调函数。以下是如何实现的详细说明&a…...
物联网无线传感方向专业词汇解释
涡旋电磁波(VEMW):一种具有轨道角动量的电磁波,其特性在于能够在传播过程中携带额外的相位信息,从而增加通信系统的容量和灵活性。波前:波动传播过程中,同一时刻振动相位相同的所有点构成的几何曲面,代表波…...
Maven 插件参数注入与Mojo开发详解
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…...
C++中void*知识详解和注意事项
一、void* 是什么? 在 C/C 中,void* 表示一个通用指针类型(generic pointer),可以指向任意类型的对象,但 不能直接解引用或进行算术运算,必须先进行类型转换。 void* ptr; // 可以指向任意类型…...
2024年全国青少年信息素养大赛——算法创意实践挑战赛复赛真题(小学组)——玫瑰花地的面积
2024年全国青少年信息素养大赛——算法创意实践挑战赛复赛真题(小学组)——玫瑰花地的面积 上面试卷可点下方,支持在线编程,在线测评~ 2024年全国信息素养大赛 算法创意实践挑战赛复赛(小学组)_c_少儿编程题库学习中心-嗨信奥 5月17号 全国青…...
【补充笔记】修复“NameError: name ‘ZhNormalizer‘ is not defined”的直接方法
#工作记录 一、问题描述 在运行CosyVoice_For_Windows项目时,出现以下报错: File "F:\PythonProjects\CosyVoice_For_Windows\cosyvoice\cli\frontend.py", line 74, in __init__ self.zh_tn_model ZhNormalizer(remove_erhuaFalse, fu…...
预训练模型实战手册:用BERT/GPT-2微调实现10倍效率提升,Hugging Face生态下的迁移学习全链路实践
更多AI大模型应用开发学习内容,尽在聚客AI学院。 一. 预训练模型(PTM)核心概念 1.1 什么是预训练模型? 预训练模型(Pre-trained Model, PTM)是在大规模通用数据上预先训练的模型,通过自监督学…...
并发笔记-给数据上锁(二)
文章目录 核心挑战 (The CRUX)29.1 并发计数器 (Concurrent Counters)1. 简单非并发计数器 (Figure 29.1)2. 同步计数器(单锁版本 - Coarse-Grained Lock, Figure 29.2)3. 可伸缩计数:近似/懒惰计数器 (Approximate/Sloppy Counter, Figure 2…...
mac docker弹窗提示Docker 启动没有响应
一、原因分析 这台笔记电脑是Mac M3操作系统,安装Docker之后,Docker应用程序一直启动不起来。 二、解决办法 sudo rm /Library/PrivilegedHelperTools/com.docker.vmnetd sudo cp /Applications/Docker.app/Contents/Library/LaunchServices/com.docker.vmnetd /Library/Pri…...
每日算法刷题计划Day7 5.15:leetcode滑动窗口4道题,用时1h
一.定长滑动窗口 【套路】教你解决定长滑窗!适用于所有定长滑窗题目! 模版套路 1.题目描述 1.计算所有长度恰好为 k 的子串中,最多可以包含多少个元音字母 2.找出平均数最大且 长度为 k 的连续子数组,并输出该最大平均数。 3.…...
如何利用 Python 爬虫按关键字搜索京东商品:实战指南
在电商领域,京东作为国内知名的电商平台,拥有海量的商品数据。通过 Python 爬虫技术,我们可以高效地按关键字搜索京东商品,并获取其详细信息。这些信息对于市场分析、选品上架、库存管理和价格策略制定等方面具有重要价值。本文将…...
Ubuntu 22.04搭建OpenStreeMap地址解析服务(保姆级教程)
1.数据准备 1.1.全球数据 下载地址:https://planet.openstreetmap.org/ 1.2.特定区域的数据 下载地址:Geofabrik Download Server 2.安装必要的软件包 2.1.更新系统软件包 sudo apt updatesudo apt upgrade 2.2.安装所需要的软件包 执行下面的命…...
sqli—labs第五关——报错注入
一:判断输入类型 首先测试 ?id1 回显You are in... 渐进测试?id1 报错分析: 出现引号提示——“”,可能是字符型 继续测试?id1--(用注释符修复了语法错误) 回显You are in... 说明就是字符型 因为能用注释符…...
从海洋生物找灵感:造个机器人RoboPteropod,它能在水下干啥?
大家好!在如今人类对水下环境探索不断深入的时代,从水下考古到珊瑚礁考察,各种任务都离不开水下机器人的助力。但传统水下机器人尺寸较大,在狭窄的水下空间施展不开。今天,我们就来认识一款受海洋小生物启发而设计的仿…...
FastAPI系列16:从API文档到TypeScript 前端客户端(SDKs)
从API文档到TypeScript 前端客户端(SDKs) 快速入门生成一个TypeScript 客户端测试生成的TypeScript 客户端 API标签与客户端生成生成带有标签的 TypeScript 客户端 自定义Operation ID使用自定义Operation ID生成TypeScript客户端 在 FastAPI系列15&…...
为什么 Redis 设计为单线程?6.0 版本为何引入多线程?
Redis 6.0引入多线程的核心目的是优化网络I/O处理,通过分离I/O操作与命令执行,在保持数据一致性的前提下,充分利用多核CPU资源提升高并发场景下的性能,同时保持向后兼容性。以下是对Redis单线程设计与6.0版本引入多线程的详细解析…...
