安装 pip

conda install pip

那么我们要开发模型前期需要哪些包(

包名版本用途
torch2.2.2Facebook 推出的深度学习开源框架
transformers4.39.3HuggingFace 社区推出的多种大语言模型包,包括 GPT2
tiktoken0.5.1ChatGPT 推出的分词器
tensorflow2.15.0Google 推出的深度学习开源框架
numpy1.26.4著名的处理矩阵操作的库
matplotlib3.7.1Python 下著名的绘图库
tqdm4.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
    1. 基于 openai
    2. 免费
    3. 但必须是美国代理节点
    4. 必须用 edge 浏览器,并且选择地区必须是美国
    5. 有微软账号

聚合平台

POE(poe.com)

提示词

  • 所谓提示词工程化,即把一件复杂的事用提示词拆解把一条线拆成若干个点,循序渐进即可完成工程:如你要写一个项目,把项目功能从整体规划,到功能细节,以线性串联让大模型按照你的提示词规划逐步实现
  • 保持会话单一性

提示词分类

  1. 任务指导型,即让模型做一件事,比如让大模型帮你翻译一段话
  2. 信息优化检索型
  3. 示例驱动型
  4. 角色扮演型:让大模型以什么角色回答你
  5. 思考过程型:比如做数学题
  6. 自我修正型:即当你质疑或反问大模型,大模型就就回去重新思考修正错误
  7. 多模态交互型:即不仅仅是文字,还有比如文档,图片,视频
  8. 任务拆分型:即将复杂任务进行工程拆分,拆分到大模型可以轻松完成的单元,然后按照拆分的内容逐步完成复杂工程
  9. 交互对话型:比如以聊天形式去获取你自己本身不了解的认知内的内容,比如你想了解核聚变,就可以跟大模型进行沟通

深度学习

总纲:现在看不懂不要紧即!但这是总纲,我们在开始之前要知道工作流和优化策略,我们到底在做什么?怎么做的?
在这里插入图片描述

人工智能,机器学习与深度学习

定义

  • 人工智能:让机器可以像人一样完成任务的智能系统。
  • 机器学习:让机器从数据中学习,实现人工智能。
  • 深度学习:通过多层神经网络从数据中学习的人工智能。

总结

深度学习 ⊂ 机器学习 ⊂ 人工智能
深度学习是机器学习的一种方法,而机器学习是实现人工智能的重要途径之一

深度学习的本质

  • 深度学习是由数据驱动的

本质通过大量数据,对神经网络的参数进行优化,使给定的损失函数的值尽可能小

  • 函数由神经网络和模型构成的
  • 神经网络由多层神经元构成:包括输入输出和隐藏层

注意:其实我们用大量数据通过神经网络进行训练,就是为了寻找最佳的 w 和 b 的值,而 w 和 b 值就是模型参数[就这点东西],那怎么做呢?用的梯度下降。那什么是梯度?就是模型可变参数的导数的合称,如果参数只有 w 和 b,那就是 w 和 b 的导数的合称就叫梯度,参数更多那就是更多可变参数导数的合称。越小越好,理论上等于 0 时则可以理解为梯度不变了,在二维平滑曲线(即低纬数据)的探索我们认为达到了最低点。那可变参数哪来的?一般都是给定的,然后通过前向传播完成完成训练,然后根据前向传播工作流同步生成的计算图的链式法则进行反向传播(最所有的可变参数进行求导)根据所有的导数的值即梯度决定下一步优化参数的方向,即梯度的走向

怎么找到这个函数?

  1. 大量数据给深度神经网络
  2. 找到每个神经元的权重(很复杂)
  3. 神经网络+神经元的权重就是函数
  4. 各神经元权重的集合称为模型
  5. 神经网络就类似 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

根据之前计算出的权重以及用户的输入,预测到的结果

什么是神经元?

  • 构成神经网络的基本单元
  • 作用:接收,处理和传递信息

最简单的神经网络-线性回归

  • 线性回归是只有一个神经元的神经网络,因此非常简单
  • 所以解决复杂问题需要非线性神经网络

应用场景

  1. 来预测房屋价格
    在这里插入图片描述

  2. 如图看公式

    • y 上面的小帽子,表示这是个预测值,预测值和真实值之间是存在差距的

神经网络

  • 神经元是构成神经网络的基本单元
  • 神经网络有输入层,隐藏层,输出层
  • 输入输出层只有一层,隐藏层有多层

监督学习和非监督学习

结构化数据

  • 能通过表表达出来,能存储到数据库的数据
  • 计算机擅长处理结构化数据

非结构化数据

  • 比如音视频图片都是非结构化数据
  • 人擅长处理非结构化数据

监督学习

  • 即训练样本都有标签(答案)
  • 训练时将预测值和标签进行比较
  • 根据代价函数的结果调整参数权重
  • 目标是训练模型预测未见过的数据的标签

主要应用:
图像识别(分类)
股票价格预测(回归

无监督学习

  • 从未标注的数据中学习(无标签)
  • 目标是发现数据中的结构,模式和分布
  • 应用场景:图像去噪,社交网络分析(聚类)等场景

半监督学习

  • 用少量的标注数据和大量的未标记数据进行训练
  • 目标是利用未标注数据来提高训练效率
  • 通过标注数据训练模型给未标注数据进行打标签
  • 应用场景:文本分类,图像识别等

强化学习

  • 通过交互来学习最佳行为或策略,如给某种奖励
  • 大语言模型中的交互问询和人工点赞也属于强化学习
  • 通过与人交互让大模型的输出更像人

数据集划分

  • 深度学习是由数据驱动的
  • 需要用大量数据来训练模型
数据集划分
  1. 训练数据集
  2. 验证数据集:评估模型性能,防止过拟合等行为
  3. 测试数据集:用于模型最终评估
数据集比例

8:1:1

6:2:2

注意点
  • 数据集随机划分,避免存在偏差
  • 确保每个数据集的样本都覆盖不同的类别和特征
  • 不要数据集混用:各司其职,不要把验证或者测试数据集用在训练阶段

拟合与代价函数

在这里插入图片描述

如图:

  1. 蓝色蓝色线段 y 指的是真实值
  2. 另一个 y(hat)是预测值
  3. 中间蓝色距离就是损失那么损失对应就有一个损失函数
  4. 为什么是平方?是因为 y(hat)-y 有可能是个负的,我们这里取一个正差值更好观测
  5. i 指的是样本,第 i 份…
  6. 代价函数本质就是计算所有样本的平均损失

损失函数

即一份样本存在的损失

代价函数

所有样本进行求和然后除以样本数,计算所有样本的平均损失

过拟合

训练数据集表现的很好,测试机表现很差

原因:

  1. 网络过于复杂(模型容量过大)
  2. 数据量不足
  3. 数据噪声过多
  4. 训练时间过长(Epoch过多)

欠拟合

在训练数据集上就表现很差
原因:

  1. 网络复杂性太低(模型能力不足)
  2. 训练不充分,如:Epoch 太少,学习提前结束,参数还没有收敛

模型与代价函数的关系

  • 代价函数:其实就是一个抛物线,如下图
  • 获得好的线性回归模型就是在求代价函数的最小值
  • 获得函数的最小值即为获得最佳的 w 和 b 即模型最佳参数
    在这里插入图片描述

如图

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

通过代价函数(等高图)获得最佳模型

在这里插入图片描述

如上图:

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

如下图:
在这里插入图片描述

Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐