LLM模型开发教程(二)内功筑基
深度学习开发环境配置与硬件指南 本文提供了深度学习开发环境配置的完整指南,包括: Python包安装:详细列出torch、transformers等核心包的版本及安装命令 硬件配置推荐:对比NVIDIA/AMD显卡、Intel/AMD处理器等硬件选择 免费GPU资源:阿里云、Kaggle和Google Colab的获取方式 效率工具:介绍国内外代码生成工具和主流AI模型平台 深度学习基础:解释人工
安装 pip
conda install pip
那么我们要开发模型前期需要哪些包(
| 包名 | 版本 | 用途 |
|---|---|---|
torch |
2.2.2 | Facebook 推出的深度学习开源框架 |
transformers |
4.39.3 | HuggingFace 社区推出的多种大语言模型包,包括 GPT2 |
tiktoken |
0.5.1 | ChatGPT 推出的分词器 |
tensorflow |
2.15.0 | Google 推出的深度学习开源框架 |
numpy |
1.26.4 | 著名的处理矩阵操作的库 |
matplotlib |
3.7.1 | Python 下著名的绘图库 |
tqdm |
4.66.1 | 用于显示进度条 |
安装指定版本的包(python=3.10.18)
# 确保已激活 conda 环境
conda activate llm
# 注意python版本此处是3.10.18
# 安装所有指定版本的包
pip install torch=2.2.2 transformers=4.39.3 tiktoken=0.5.1 tensorflow=2.15.0 numpy=1.26.4 matplotlib==3.7.1 tqdm==4.66.1
# 或者分别安装(如果遇到依赖冲突时使用)
pip install torch=2.2.2
pip install transformers==4.39.3
pip install tiktoken==0.5.1
pip install tensorflow==2.15.0
pip install numpy==1.26.4
pip install matplotlib==3.7.1
pip install tqdm==4.66.1
注意:
- 如果使用 conda 安装,某些包可能没有指定版本,建议使用 pip 安装
- 如果遇到版本冲突,可以尝试先安装基础依赖(numpy),再安装其他包
- PyTorch 和 TensorFlow 可以同时安装,但通常项目只使用其中一个
深度学习硬件配置推荐
硬件配置对比表
| 硬件 | 主流品牌 | 比较品牌 | 选择 |
|---|---|---|---|
| GPU (显卡) | Nvidia - RTX3090ti/RTX4090: 16000 - A100/H100: 50000 |
AMD - RX6900 XT/RX7900XTX: 7000 - MI100/MI300: 50000 |
RTX4090 海量资源: itazs. 成熟、资料多 |
| CPU (处理器) | Intel - i9 14th KF: 4000 |
AMD - R9 7950X: 4000 |
Intel |
| 主板 | 华硕 ROG Z790 Hero DDR5 微星 MEG Z790 暗影 DDR5 |
华硕 B650M-Plus 微星 B650M-Plus |
华硕 ROG |
| 内存 | 三星、芝奇… DDR5 6000M |
- | 芝奇 |
| 硬盘 | 三星 固态硬盘 PCIe 4.0 2T 以上 |
- | 三星 |
| 电源 | 航嘉、长城 1000W/1200W |
- | 航嘉 |
| 机箱 | ATX/E-ATX 支持 360 水冷 | AMD 的 MI100、MI300 | - |
深度学习软件配置推荐
阿里云的免费 GPU 资源https://free.aliyun.com/?product=1395&crowd=enterprise&userCode=rnbj0c1o
kaggle 免费 GPU 资源https://www.kaggle.com/code/hailiangsun/my-llm/edit
google 免费 GPU 资源https://colab.research.google.com/drive/1PDBwJD13btRp4zLQynIhS-Gs-lYH9yyj#scrollTo=xbM2drE3KvHn
提高工作效率的工具
代码生成工具
国内:
- 通义灵码-vscode-tongyilingma 插件
- 小浣熊(商汤科技)-vscode-Raccoon
国外
- github-copilot
- cursor
- cluade-code
模型:
- 智谱(国内)
- gpt
- gemini(https://aistudio.google.com/)
- claude
- New Bing
- 基于 openai
- 免费
- 但必须是美国代理节点
- 必须用 edge 浏览器,并且选择地区必须是美国
- 有微软账号
聚合平台
POE(poe.com)
提示词
- 所谓提示词工程化,即把一件复杂的事用提示词拆解把一条线拆成若干个点,循序渐进即可完成工程:如你要写一个项目,把项目功能从整体规划,到功能细节,以线性串联让大模型按照你的提示词规划逐步实现
- 保持会话单一性
提示词分类
- 任务指导型,即让模型做一件事,比如让大模型帮你翻译一段话
- 信息优化检索型
- 示例驱动型
- 角色扮演型:让大模型以什么角色回答你
- 思考过程型:比如做数学题
- 自我修正型:即当你质疑或反问大模型,大模型就就回去重新思考修正错误
- 多模态交互型:即不仅仅是文字,还有比如文档,图片,视频
- 任务拆分型:即将复杂任务进行工程拆分,拆分到大模型可以轻松完成的单元,然后按照拆分的内容逐步完成复杂工程
- 交互对话型:比如以聊天形式去获取你自己本身不了解的认知内的内容,比如你想了解核聚变,就可以跟大模型进行沟通
深度学习
人工智能,机器学习与深度学习
定义
- 人工智能:让机器可以像人一样完成任务的智能系统。
- 机器学习:让机器从数据中学习,实现人工智能。
- 深度学习:通过多层神经网络从数据中学习的人工智能。
总结
深度学习 ⊂ 机器学习 ⊂ 人工智能
深度学习是机器学习的一种方法,而机器学习是实现人工智能的重要途径之一
深度学习的本质
- 深度学习是由数据驱动的
本质是为了解决某个问题通过大量的数据对神经网络进行优化来找到的一个最优“函数”
- 函数由神经网络和模型构成的
- 神经网络由多层神经元构成:包括输入输出和隐藏层
注意:其实我们用大量数据通过神经网络进行训练,就是为了寻找最佳的 w 和 b 的值,而 w 和 b 值就是模型参数[就这点东西]
怎么找到这个函数?
- 大量数据给深度神经网络
- 找到每个神经元的权重(很复杂)
- 神经网络+神经元的权重就是函数
- 各神经元权重的集合称为模型
- 神经网络就类似 y=kx+b,权重就是其中的 k
理解直线函数:y=kx+b
理解:打车总付款=每公里的费用 x 跑了几公里+起步价
图解

辅助记忆
口诀:k 是单价,b 是底钱;x 是数量,y 是总钱。
总结
- y = kx + b 就是一条直线,描述“均匀变化”的关系。
- k 是变化速度(单价/效率/斜率),b 是起点(基础值)。
- 生活中所有“按量计费+基础费”的场景,都用它!
注意特例:b 为 0
这个时候公式成了:y=kx,此时这条直线是从 0,0 起点开始,换句话说兜底数据为 0
公式应用场景
你能用它做什么?(灵活运用)
算外卖配送费:
-
配送费 = 2 元/公里 × 距离 + 3 元基础费 → y = 2x + 3
算手机流量套餐: -
月费 = 0.1 元/MB × 超出流量 + 30 元月租 → y = 0.1x + 30
-
预测存钱:总存款 = 500 元/月 × 存了几个月 + 初始 1000 元 → y = 500x + 1000
公式演化
在理解数学中的直线函数 y=kx+b
在深度学习中的直线函数演变成:y=wx+b
其中 w 叫做权重
关于深度学习中的线性函数
y=wk+b
关于权重 w
即斜率,他指明朝哪个方向走
关于特征 x
即输入数据
关于偏置 b
当输入为 0,即 x 为 0 时
公式变成:y=b,换句话说,此时 b 就是最低保障。
关于预测值 y
根据之前计算出的权重以及用户的输入,预测到的结果
什么是神经元?
- 构成神经网络的基本单元
- 作用:接收,处理和传递信息
最简单的神经网络-线性回归
- 线性回归是只有一个神经元的神经网络,因此非常简单
- 所以解决复杂问题需要非线性神经网络
应用场景
-
来预测房屋价格

-
如图看公式
- y 上面的小帽子,表示这是个预测值,预测值和真实值之间是存在差距的
神经网络
- 神经元是构成神经网络的基本单元
- 神经网络有输入层,隐藏层,输出层
- 输入输出层只有一层,隐藏层有多层
监督学习和非监督学习
结构化数据
- 能通过表表达出来,能存储到数据库的数据
- 计算机擅长处理结构化数据
非结构化数据
- 比如音视频图片都是非结构化数据
- 人擅长处理非结构化数据
监督学习
- 即训练样本都有标签(答案)
- 训练时将预测值和标签进行比较
- 根据代价函数的结果调整参数权重
- 目标是训练模型预测未见过的数据的标签
主要应用:
图像识别(分类)
股票价格预测(回归
无监督学习
- 从未标注的数据中学习(无标签)
- 目标是发现数据中的结构,模式和分布
- 应用场景:图像去噪,社交网络分析(聚类)等场景
半监督学习
- 用少量的标注数据和大量的未标记数据进行训练
- 目标是利用未标注数据来提高训练效率
- 通过标注数据训练模型给未标注数据进行打标签
- 应用场景:文本分类,图像识别等
强化学习
- 通过交互来学习最佳行为或策略,如给某种奖励
- 大语言模型中的交互问询和人工点赞也属于强化学习
- 通过与人交互让大模型的输出更像人
数据集划分
- 深度学习是由数据驱动的
- 需要用大量数据来训练模型
数据集划分
- 训练数据集
- 验证数据集:评估模型性能,防止过拟合等行为
- 测试数据集:用于模型最终评估
数据集比例
8:1:1
或
6:2:2
注意点
- 数据集随机划分,避免存在偏差
- 确保每个数据集的样本都覆盖不同的类别和特征
- 不要数据集混用:各司其职,不要把验证或者测试数据集用在训练阶段
拟合与代价函数

如图:
- 蓝色蓝色线段 y 指的是真实值
- 另一个 y(hat)是预测值
- 中间蓝色距离就是损失那么损失对应就有一个损失函数
- 为什么是平方?是因为 y(hat)-y 有可能是个负的,我们这里取一个正差值更好观测
- i 指的是样本,第 i 份…
- 代价函数本质就是计算所有样本的平均损失
损失函数
即一份样本存在的损失
代价函数
所有样本进行求和然后除以样本数,计算所有样本的平均损失
过拟合
训练数据集表现的很好,测试机表现很差
原因:
- 网络过于复杂
- 数据量不够
欠拟合
在训练数据集上就表现很差
原因:
- 网络复杂性太低
模型与代价函数的关系
- 代价函数:其实就是一个抛物线,如下图
- 获得好的线性回归模型就是在求代价函数的最小值
- 获得函数的最小值即为获得最佳的 w 和 b 即模型最佳参数

如图
- 我们假设 y(hat)=wx,此时将 b 设为 0
- 我们假设 w 权重为 1,0.5,1.5…去尝试
- 那么左侧的图始终跟着 w 变化在变,可以拟合出一条不同位置的线,同时代入右侧的代价函数公式也会绘制出不同的点,那么这个时候在右侧也会有一个趋势线。当 J 的值靠近 x 轴时,我们认为模型状态最佳
通过代价函数(等高图)获得最佳模型

如上图:
- 右侧的一圈一圈的图,叫做等高图,即一个圈的高度是一样的,中心点最低,而最低点代表着模型最佳
- 如图左侧图就是根据等高图绘制拟合线,通过等高图外围的等高线确定一个点时,此时会发现左侧的拟合线效果很差,因为损失很大,但是当选择中心点时,拟合线损失就变得很小,此时模型效果才是最佳
如下图:
更多推荐



所有评论(0)