大模型学习 一

https://www.bilibili.com/video/BV1Kz4y1x7AK/?spm_id_from=333.337.search-card.all.click

GPU 计算单元多 并行计算能力强

指数更重要

A100  80G

V100

A100

海外 100元/时 单卡

多卡并行:

单机多卡  

模型并行

有资源的浪费

反向传播

反向传播(Backpropagation,简称BP)是一种用于训练人工神经网络的关键算法,特别是在多层前馈神经网络中。该算法的核心作用是计算整个网络中每个参数对损失函数的梯度,这个过程通过应用链式法则(在微积分中用于求复合函数的导数)自后向前逐层进行。

在训练神经网络时,其过程可以分为以下几个主要步骤:

  1. 前向传播

    • 输入数据通过网络各层从输入层到输出层进行传递。
    • 每个神经元根据其权重和偏置计算输出值,并通过激活函数生成非线性转换后的结果。
  2. 计算损失

    • 网络的最终输出与真实标签相比较,计算出一个表示预测误差的损失函数值。
  3. 反向传播阶段

    • 从输出层开始,根据损失函数的梯度信息,按相反方向(即从输出层到输入层)逐层回传误差。
    • 在每一层,算法计算每个权重和偏置对损失函数的影响(梯度),这是通过将当前层的梯度与上一层的梯度结合来实现的。
    • 这个过程实质上是利用链式法则将输出层的误差逐步分解到每一层的参数上。
  4. 参数更新

    • 使用计算得到的梯度,通过优化算法(如梯度下降法、随机梯度下降、Adam等)更新网络中的权重和偏置。
    • 参数更新的目标是减少损失函数的值从而使得神经网络在下一次迭代时能够更好地拟合训练数据。

通过反复执行这些步骤,神经网络逐渐调整其内部参数以最小化损失函数,从而达到学习的目的,提高模型在未知数据上的泛化能力。

正向传播(Forward Propagation)是神经网络在训练和预测过程中,信息从输入层经过隐藏层到输出层的处理过程。具体步骤如下:

  1. 初始化

    • 对于给定的输入数据样本,将其作为输入层的激活值。
  2. 前向传播计算

    • 从输入层开始,每个神经元将接收到来自上一层(对于输入层来说则是输入数据)的所有输入信号,并根据其连接权重进行加权求和。
    • 加权求和的结果加上该神经元的偏置项后,通过激活函数(如Sigmoid、ReLU等)进行非线性转换得到新的输出值。
    • 这个过程在每一层重复进行,直到到达输出层。
  3. 计算损失

    • 输出层的最终结果与真实标签(在训练阶段提供)比较,计算模型的预测误差,通常使用交叉熵损失、均方误差等损失函数衡量。
  4. 评估预测结果

    • 在预测阶段,我们直接利用正向传播得到的输出层结果作为对输入样本的预测值。

简而言之,在神经网络中,正向传播是用来模拟从输入到输出的信息流动过程,用于实际预测以及为后续的反向传播计算损失函数关于各层权重的梯度做准备。在训练期间,正向传播的结果被用来确定模型预测的好坏,并启动反向传播算法以更新网络权重,从而优化模型性能。

列并行

列并行(Column Parallelism)是指在计算或存储过程中,将数据集的列分割到多个处理单元上进行并行处理的技术。这种技术在大规模数据分析、机器学习和高性能计算等领域中广泛应用。

特别是在训练深度神经网络时,列并行通常用于优化权重矩阵的更新过程:

  1. 权重矩阵分解

    • 当模型的权重矩阵过大时,可以将其按列拆分,每个部分分配给不同的计算资源(如GPU核心、CPU核或分布式系统中的不同节点)。
  2. 梯度更新

    • 在反向传播阶段,每个计算单元独立地计算它所负责的那一部分权重对应的梯度。
    • 各个单元同时完成梯度计算后,需要进行梯度的聚合操作以得到完整的权重梯度。
  3. 同步与通信

    • 为了保持整个模型的一致性,在每次参数更新之前,各个计算单元需要通过某种形式的通信机制(例如点对点通信、AllReduce操作等)来合并各自计算出的梯度。
    • 合并后的全局梯度用于更新所有计算单元上的相应权重部分。

列并行的主要优势在于它可以有效地利用多核处理器或多节点集群的计算能力,从而加快大型模型的训练速度。然而,它也面临一些挑战,比如如何高效地管理和调度通信开销,以及确保算法在并行化后仍能保持良好的收敛性能。

transformer 

2.大模型系列-Agent到底是什么?_哔哩哔哩_bilibili

不同模型有对应的prompt

babyapi

COT

3.大模型系列-GPU原理详解(上)_哔哩哔哩_bilibili

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习笔记】决策树

决策树 文章目录 决策树1 决策树学习基础2 经典决策树算法3 过拟合问题 1 决策树学习基础 适用决策树学习的经典目标问题 带有非数值特征的分类问题离散特征没有相似度概念特征无序 例子: SkyTempHumidWindWaterForecastEnjoySunnyWarmNormalStrongWarmSameYesSunny…

深入探究 HTTP 简化:httplib 库介绍

✏️心若有所向往,何惧道阻且长 文章目录 简介特性主要类介绍httplib::Server类httplib::Client类httplib::Request类httplib::Response类 示例服务器客户端 总结 简介 在当今的软件开发中,与网络通信相关的任务变得日益普遍。HTTP(Hypertext…

Electron基本介绍

Electron基本介绍 Electron 官方网站:https://www.electronjs.org/zh/ Electron安装方法:npm install electron -g 全局安装 Electron简介:Electron提供了丰富的本地(操作系统)API,使你能够使用纯JavaScr…

【Iceberg学习四】Evolution和Maintenance在Iceberg的实现

Evolution Iceberg 支持就底表演化。您可以像 SQL 一样演化表结构——即使是嵌套结构——或者当数据量变化时改变分区布局。Iceberg 不需要像重写表数据或迁移到新表这样耗费资源的操作。 例如,Hive 表的分区布局无法更改,因此从每日分区布局变更到每小…

JVM 性能调优- 五种内存溢出(5)

在介绍之前先简单介绍下 直接内存(Direct Memory)和堆内存(Heap Memory): 关系: 直接内存并不是Java虚拟机的一部分,它是通过Java的NIO库中的ByteBuffer来分配和管理的。直接内存通常由操作系统的本地内存(Native Memory)提供支持。堆内存是Java虚拟机的一部分,用于存…

【VSTO开发-WPS】下调试

重点2步: 1、注册表添加 Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\kingsoft\Office\WPP\AddinsWL] "项目名称"""2、visual studio 运行后,要选中附加到调试,并指定启动项目。 如PPT输入WPP搜…

【数据结构】二叉树的三种遍历(非递归讲解)

目录 1、前言 2、二叉树的非递归遍历 2.1、先序遍历 2.2、中序遍历 2.3、后序遍历 1、前言 学习二叉树的三种非递归遍历前,首先来了解一下递归序: 递归序就是按照先序遍历的顺序,遇到的所有结点按顺序排列,重复的结点也必须记…

【数据结构】链表OJ面试题5(题库+解析)

1.前言 前五题在这http://t.csdnimg.cn/UeggB 后三题在这http://t.csdnimg.cn/gbohQ 给定一个链表,判断链表中是否有环。http://t.csdnimg.cn/Rcdyc 给定一个链表,返回链表开始入环的第一个结点。 如果链表无环,则返回 NULLhttp://t.cs…

大厂的供应链域数据中台设计

关注我,紧跟本系列专栏文章,咱们下篇再续! 作者简介:魔都技术专家兼架构,多家大厂后端一线研发经验,各大技术社区头部专家博主,编程严选网创始人。具有丰富的引领团队经验,深厚业务架…

Linux 软件管理(YUM RPM)

1 YUM yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次…

算法学习——LeetCode力扣栈与队列篇1

算法学习——LeetCode力扣栈与队列篇1 232. 用栈实现队列 232. 用栈实现队列 - 力扣(LeetCode) 描述 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQu…

ChatGPT4 教你如何完成SQL的实践应用

对数据库的各项应用与操作都离不开SQL来对数据进行增删改查。 例如 : 有一张某公司职员信息表如下: 需求1:在公司职员信息表中,请统计各部门,各岗位下的员工人数。 如果这个SQL语句不会写或者不知道怎么操作可以交给…

Unity入门学习

目录 Unity环境搭建Unity引擎是什么软件下载和安装工程文件夹 Unity界面基础Scene场景和Hierarchy层级窗口Game游戏和Project工程Inspector和Console工具栏和父子关系 Unity工作原理反射机制和游戏场景预设体和资源包的导入导出 Unity脚本基础脚本基本规则生命周期函数Inspecto…

产品效果图为何要用渲染100农场?渲染100邀请码1a12

产品效果图很重要,它能帮助设计人员和消费者理解产品特点,是不可或缺的一步。产品效果图渲染耗时耗力,不仅慢而且容易出错,在这种情况下,使用渲染农场就成了必备选择,以目前国内最好的渲染农场渲染100为例&…

JAVA设计模式之原型模式详解

原型模式 1 原型模式介绍 定义: 原型模式(Prototype Design Pattern)用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。 西游记中的孙悟空 拔毛变小猴,孙悟空这种根据自己的形状复制出多个身外化身的技巧,在面向对象软件设计领…

Antd+React+react-resizable实现表格拖拽功能

1、先看效果 2、环境准备 在package.json 引入相关的依赖 "dependencies": {"antd": "^5.4.0","react-resizable": "^3.0.4",},"devDependencies": {"types/react": "^18.0.33","types…

github和gitee

github GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。 github可以给提交的代码打上标签,方便版本的迭代和回退,也是一个存储代码的仓库 github工作区 gitee是gitHub的…

Oracle数据表ID自增操作

一、Oracle ID自增长功能介绍 Oracle数据库默认不支持像 SQLServer、MySQL中的自增长(auto increment)功能,即自动为每一行记录的自增长字段生成下一个值。 二、Oracle ID自增长方法 第一种,通过序列(sequence&#…

第四篇:SQL语法-DDL-数据定义语言

大年初一限定篇😀 (祝广大IT学习者、工作者0 error 0 warning!) 一,DDL数据库操作 (一)库的查询操作 1.列出所有已定义数据库 show databases; 2.查询当前所处数据库 select database(); &…

【Spring】Bean 的生命周期

一、Bean 的生命周期 Spring 其实就是一个管理 Bean 对象的工厂,它负责对象的创建,对象的销毁等 所谓的生命周期就是:对象从创建开始到最终销毁的整个过程 什么时候创建 Bean 对象?创建 Bean 对象的前后会调用什么方法&#xf…