高效深度学习lecture01
lecture01
零样本学习(Zero-Shot Learning, ZSL):
-
模型可以在没有见过某种特定任务或类别的训练样本的情况下,直接完成对应的任务
-
利用知识迁移
- 模型在一个任务上训练时学到的知识,能够迁移到其他任务上
- 比如,模型知道“狗”和“猫”都属于“动物”,因此,即使没见过“狐狸”的图片,也可以通过“动物”这个概念推测“狐狸”可能属于“动物”
-
借助语义信息
- 零样本学习通常依赖于额外的语义信息(如类标签的描述、文本嵌入、图像特征等)
- 例如,在分类任务中,类别名称的文本描述可以帮助模型理解新的类别
-
关键技术:
- 共享特征空间
- 模型通过将已知类别的特征和未知类别的语义描述映射到同一个特征空间来实现知识迁移
- 例如,将图片嵌入和文本嵌入映射到一个共同空间,模型可以比较图片特征和文本描述的相似性
- 使用预训练模型
- 许多预训练语言模型(如GPT、BERT)和多模态模型(如CLIP)对零样本学习效果非常好
- 这些模型在大量多任务数据上训练,可以理解广泛的语义信息
- 多模态方法
- 跨文本和图像的模型(如CLIP)在零样本任务中尤为突出,它们通过学习文本和图像的对应关系实现任务迁移
- 共享特征空间
思维链(Chain of Thought, CoT):
-
一种用于大语言模型(LLM)的推理策略,通过让模型生成逐步的推理步骤,从而提高复杂任务(如数学推算、逻辑推理、问答等)的准确性和解释性
-
传统的模型往往直接给出答案,而思维链方法引导模型像人类一样,分步骤思考问题,提高了解决复杂问题的能力
-
主要策略:
- 逐步推理:将一个复杂问题分解成多个小的、容易解决的步骤,模型在推理过程中不仅生成答案,还给出详细的思路
- 显式中间步骤:思维链的中间步骤提供了解题过程的可解释性,便于诊断和改进模型的推理
- 提升模型性能:对于需要深度推理或多步骤计算的问题,思维链能显著提高模型的准确性
-
预训练语言模型生成
-
使用提示(Prompting)指导模型逐步推理
-
eg: 问题:如果一辆车以每小时60公里的速度行驶4小时,它行驶了多少公里? 答案: 1. 每小时行驶60公里。 2. 行驶4小时。 3. 总距离是 \(60 \times 4 = 240\) 公里。 答案是:240公里。
-
-
少样本学习(Few-shot Learning)
-
在输入中加入几个例子,让模型学习如何分步骤回答
-
示例1: 问题:如果小明有2个苹果,每个苹果价值3元,他总共有多少钱? 答案: 1. 每个苹果价值3元。 2. 小明有2个苹果。 3. 总价值是 \(3 \times 2 = 6\) 元。 答案是:6元。问题:如果一辆车每小时行驶70公里,行驶3小时,它行驶了多少公里? 答案:
-
-
微调模型:将逐步推理的标注数据用来微调模型,使其能够生成思维链
算法、硬件、数据
AI设备性能指标:
-
FLOPS(Floating Point Operations Per Second): 浮点计算能力;FLOPS 是衡量设备计算能力的指标,表示设备每秒能执行的浮点运算次数
-
浮点数运算指的是计算机处理小数或大数(比如 1.23、0.0005 或 3.14)的加减乘除等操作
-
AI模型需要大量计算,比如神经网络中的矩阵乘法,FLOPS越大,计算能力越强,也就是能更快、更高效地处理任务
-
AI 和深度学习领域,常见的位数包括 16位(FP16)、32位(FP32) 和 64位(FP64),它们代表浮点数的不同精度,位数越多:表示的数值范围越大,精度越高(更接近真实值)
- FP32(32位浮点数):单精度浮点数,每个数占用 4 字节(32 位),传统的深度学习主要使用 FP32,计算精度和速度较均衡,通用深度学习
训练和推理任务 - FP16(16位浮点数): 半精度浮点数,每个数占用 2 字节(16 位),运算速度更快,因为每次操作处理的数据量更少,
推理阶段更常用 - FLOPS 的计算能力会因为浮点数精度不同而变化:同一个GPU算力:
- FP32:10 TFLOPS(每秒 10 万亿次 FP32 运算)
- FP16:20 TFLOPS(每秒 20 万亿次 FP16 运算)
- FP64:2 TFLOPS(每秒 2 万亿次 FP64 运算)
- 混合精度训练(Mixed Precision Training):
- 如( PyTorch、TensorFlow)支持混合精度训练:
- 使用 FP16 处理大部分运算以提高速度和节省显存
- 在需要高精度的地方(如梯度累积),切换回 FP32
- 如( PyTorch、TensorFlow)支持混合精度训练:
- FP32(32位浮点数):单精度浮点数,每个数占用 4 字节(32 位),传统的深度学习主要使用 FP32,计算精度和速度较均衡,通用深度学习
-
FLOPS 的计算依赖于硬件架构和运行的程序,基本公式如下:
FLOPS=Number of Cores × Clock Speed (GHz) × Operations Per Clock (OPC)Number of Cores:处理器(CPU/GPU)的计算核心数,越多并行能力越强
Clock Speed:每秒钟的时钟频率,单位是 GHz(10 亿次/秒)
Operations Per Clock:每个时钟周期能执行的浮点运算次数
eg : NVIDIA RTX 3090
- CUDA 核心数:10496 个
- 时钟频率(Boost Clock):1.70 GHz
- 每个 CUDA 核心的运算能力(FP32):1 次浮点运算/周期
- Tensor Core 性能(FP16 混合精度):每个 Tensor Core 每周期可以处理 4 次浮点运算
- FP32 FLOPS = 10496 × 1.70GHz × 1OPC = 17843.2GFLOPS = 17.8TFLOPS
- FP16 是半精度浮点运算,使用
Tensor Core 时,每周期每个核心的运算能力为 FP32 的 4 倍:FP16 FLOPS=4×17.8=71.2TFLOPS
-
Tensor Core 是 NVIDIA 针对 AI 和深度学习任务特别设计的硬件加速单元
- 在 FP16(半精度浮点)模式下,Tensor Core 每个时钟周期可以执行 4 次浮点运算
- 在 TF32 和 FP32 精度下,Tensor Core 也具有加速作用,特别是在进行矩阵运算时
- Tensor Core 更像是 加速器,提升了 GPU 在特定任务(如深度学习)中的表现,ensor Core 提升了 CUDA 核心 在 深度学习 和 低精度运算 中的计算能力,尤其是处理矩阵运算时,通过并行处理提升了整体性能
-
-
**显存(VRAM 或 Memory)😗*用于存储图形数据、纹理、渲染的帧和其他与显示相关的信息。显存对于 AI 设备(如 GPU)也非常重要,尤其是在 深度学习、训练 和 推理 中
-
显存通常用于存储图形渲染的 纹理、帧缓冲区、几何数据、顶点信息等
-
在 深度学习 中,显存用来存储训练过程中的 模型参数(如权重、偏置),以及 中间结果(例如在前向传播和反向传播过程中产生的激活值和梯度)
-
在 推理(inference)过程中,显存用于存储需要推理的数据批量以及网络结构和模型权重
-
GPU 需要快速处理大量数据。显存提供了快速的数据存储和读取通道,减少了从 主内存(系统 RAM)到 GPU 的数据传输延迟,提高了整体性能
-
如果显存不足,GPU 可能会变得 受限,因为无法容纳足够的训练数据或模型参数。在这种情况下,GPU 的计算能力可能会受到限制,即使它的 FLOPS 很高
-
显存的大小和性能:更大的显存允许 GPU 同时处理更多的数据,从而提升计算效率。对于 AI 训练和推理,显存的大小对处理 大规模数据集 或 复杂模型 的能力至关重要
-
批量大小(Batch Size):批量大小是深度学习训练中的一个重要参数。增加批量大小通常可以提升训练效率,但也需要更多的显存。如果显存不足,批量大小必须减少
-
显存容量和显存带宽:
- 训练复杂的深度神经网络时,模型的大小和数据的批量大小会占用大量显存。如果显存不足,可能会导致 内存溢出(Out of Memory)
- 显存带宽 是指显存能够在单位时间内读取或写入的数据量,通常以 GB/s(GB 每秒)为单位。高带宽显存可以提供更高的数据吞吐量,尤其是在需要处理大量并行数
-
设备 显存类型 显存大小 显存带宽 AI 算力(FLOPS) Jetson Nano LPDDR4(低功耗) 4 GB 25.6 GB/s FP32: 0.5 TFLOPS, FP16: 1 TFLOPS RTX 3090 GDDR6X 24 GB 936.2 GB/s FP32: 35.6 TFLOPS, FP16: 71.2 TFLOPS RTX 4090 GDDR6X 24 GB 1,008.0 GB/s FP32: 35.6 TFLOPS, FP16: 71.2 TFLOPS A100 HBM2 40 GB 或 80 GB 1,555 GB/s (40 GB 版本) 或 2,039 GB/s (80 GB 版本) FP32: 19.5 TFLOPS, FP16: 156 TFLOPS, Tensor Core FP16: 312 TFLOPS
-
相关文章:
高效深度学习lecture01
lecture01 零样本学习(Zero-Shot Learning, ZSL): 模型可以在没有见过某种特定任务或类别的训练样本的情况下,直接完成对应的任务 利用知识迁移 模型在一个任务上训练时学到的知识,能够迁移到其他任务上比如,模型知道“狗”和“…...
用ChatGPT-5自然语言描述生成完整ERP模块
一、技术实现原理 1.1 语义理解能力 理解维度技术指标典型应用业务术语识别准确率98.7%物料需求计划流程逻辑上下文关联度0.92生产排程设计数据关系实体识别F1值0.95财务科目设置约束条件规则匹配率89%库存警戒规则 1.2 模块生成流程 五阶段生成机制: 需求澄清…...
深度学习——深入解读各种卷积的应用场景优劣势与实现细节
前言 卷积操作在深度学习领域中占据着核心地位,其在多种神经网络架构中发挥着关键作用。然而,卷积的种类繁多,每种卷积都有其独特的定义、应用场景和优势。 对于那些对深度学习中不同卷积类型(例如 2D 卷积、3D 卷积、11 卷积、转…...
python大数据相关职位,还需要学习java哪些知识
一、核心需要掌握的 Java 知识 1. Java 基础语法 语法基础:变量、数据类型、流程控制、异常处理(对比 Python 的差异)。面向对象编程(OOP):类、继承、多态、接口(Java 的 OOP 比 Pyth…...
easyPan技术回顾day4
1.主页删除接口(移动到回收站) 流程: 1.先查询要删除的文件是否存在。 2.递归获取选中的内容,以及(状态为USING)的所有子目录将其放到(delFilePidList) 3.将delFilePidList的所有子…...
Pyinstaller 打包flask_socketio为exe程序后出现:ValueError: Invalid async_mode specified
Pyinstaller 打包flask_socketio为exe程序后出现:ValueError: Invalid async_mode specified 一、详细描述问题描述 Traceback (most recent call last): File "app_3.py", line 22, in <module> File "flask_socketio\__init__.py"…...
chromium魔改——navigator.webdriver 检测
chromium源码官网 https://source.chromium.org/chromium/chromium/src 说下修改的chromium源码思路: 首先在修改源码过检测之前,我们要知道它是怎么检测的,找到他通过哪个JS的API来做的检测,只有知道了如何检测,我们…...
【力扣hot100题】(048)二叉树的最近公共祖先
依旧只会用递归栈。 栈记录当前遍历的节点,如果有一个节点已经被找到,则不往栈中添加新节点,并且每次回溯删除栈顶节点,每次回溯判断另一个节点有没有在栈顶节点的右边。 /*** Definition for a binary tree node.* struct Tree…...
C 语言中的递归:概念、应用与实例解析
一、引言 在 C 语言编程领域中,递归是一个既强大又有趣的概念。它指的是在函数的定义中使用函数自身的方法。递归的思想在解决许多复杂问题时能够提供简洁而优雅的解决方案。就如同那个经典的故事:“从前有座山,山里有座庙,庙里有…...
FFmpeg录制屏幕和音频
一、FFmpeg命令行实现录制屏幕和音频 1、Windows 示例 #include <cstdlib> #include <string> #include <iostream>int main() {// FFmpeg 命令行(录制屏幕 麦克风音频)std::string command "ffmpeg -f gdigrab -framerate 3…...
爬虫:请求头,requests库基本使用
请求方式:get(向服务器要资源)和post(提交资源) user-agent:模拟正常用户的一种方式 cookie:登陆保持 referer:表示当前这一次请求是由哪个请求过来的 抓取数据包得到的内容才是判断依据elements中的源码是渲染之后的不能作为…...
[物联网iot]对比WIFI、MQTT、TCP、UDP通信协议
第一步:先理解最基础的关系(类比快递) 假设你要给朋友寄快递: Wi-Fi:相当于“公路和卡车”,负责把包裹从你家运到快递站。 TCP/UDP:相当于“快递公司的运输规则”。 TCP:顺丰快递&…...
CSDN自动设置vip文章的解除办法
文章目录 CSDN真的会将“全部可见”文章偷偷自动设置为“VIP可读”最省事的途径:联系客服,预计1-2个工作日可以取消新版“内容管理”内手工操作 CSDN真的会将“全部可见”文章偷偷自动设置为“VIP可读” 今天无意中发现之前一些公开的文章变为仅VIP可读…...
P4305 [JLOI2011] 不重复数字
使用stl中的动态数组和unordered_map #include<iostream> #include<iostream> #include<vector> #include<unordered_map> using namespace std; int t; int main(){cin>>t;while(t--){//每次处理一组数据.int n;cin>>n;vector<int&…...
Joomla教程—Joomla 模块管理与Joomla 模块类型介绍
Joomla 模块管理 原文:Joomla 模块管理_w3cschool 模块管理,从文字意面上理解,可想而知,就是管理网站中所有的模块,模块的增、删、改、查都会在模块管理进行。这一节将简单介绍joomla后台的模块管理 1、模块管理的界…...
安装gvm后普通用户模式下无法使用cd切换目录
安装gvm后普通用户模式下无法使用cd切换目录 今天装完gvm后发现无法使用cd来切换目录了。。。 1.使用type cd命令发现cd命令被定义为了函数 usrusr-pc:~$ type cd cd 是函数 cd () { if __gvm_is_function __gvm_oldcd; then__gvm_oldcd $*;fi;local dot_go_version dot_go_…...
Pyspark学习二:快速入门基本数据结构
写在前面:实际工作中其实不需要自己安装和配置,更重要的是会用。所以就不研究怎么安装配置了。 前面介绍过:简单来说,Spark是一款分布式的计算框架,用于调度成百上千的服务器集群,计算TB、PB乃至EB级别的海…...
Vue中虚拟DOM创建到挂载的过程
Vue中虚拟DOM创建到挂载的过程 流程概括下来基本上就是:模板 → AST → render函数 → 虚拟节点 → 挂载 AST:抽象语法树,它用于记录原始代码中所有的关键信息,根据AST可以将代码从一种语言转化为另一种语言。 虚拟DOM创建到挂载…...
选择网上购物系统要看几方面?
随着电子商务的迅猛发展,选择一个合适的网上购物系统已成为许多企业成功的关键。无论是初创企业还是已经成熟的公司,选择合适的购物系统都能显著提升用户体验、提高销售额和优化运营效率。本文将从几个重要方面探讨选择网上购物系统时需要考虑的关键因素…...
C++进阶知识复习 31~38
目的 写这一系列文章的目的主要是为了秋招时候应对计算机基础问题能够流畅的回答出来 (如果不整理下 磕磕绊绊的回答会被认为是不熟悉) 本文章题目的主要来源来自于 面试鸭 部分面试鸭上没有而牛客网上有的博主会进行查缺补漏 题目编号按照面试鸭官网…...
定制开发开源AI智能名片S2B2C商城小程序:技术赋能商业价值实现路径研究
摘要 在数字经济与社交新零售蓬勃发展的背景下,本研究聚焦"定制开发开源AI智能名片S2B2C商城小程序"这一创新技术解决方案,通过解析其技术架构、功能模块及业务应用场景,探讨其如何支持企业目标达成、补充技术栈短板、实现数据整合…...
美关税加征下,Odoo免费开源ERP如何助企业破局?
近期,美国特朗普政府推行的关税政策对全球供应链和进出口企业造成巨大冲击,尤其是依赖中美贸易的企业面临成本激增、利润压缩和合规风险。在此背景下,如何通过数字化转型优化管理效率、降低运营成本成为企业生存的关键。本文以免费开源ERP系统…...
高级:高并发架构面试题深度解析
一、引言 在现代互联网应用开发中,高并发架构设计是确保系统在高负载下仍能稳定、高效运行的关键。面试官通过相关问题,考察候选人对高并发系统设计的理解、架构模式的掌握以及在实际项目中解决问题的能力。本文将深入剖析高并发系统的设计原则、常见的…...
Unity中 JobSystem使用整理
Unity 的JobSystem允许创建多线程代码,以便应用程序可以使用所有可用的 CPU 内核来执行代码,这提供了更高的性能,因为您的应用程序可以更高效地使用运行它的所有 CPU 内核的容量,而不是在一个 CPU 内核上运行所有代码。 可以单独使…...
洛谷 P1032 [NOIP 2002 提高组] 字串变换
【题目链接】 洛谷 P1032 [NOIP 2002 提高组] 字串变换 【题目考点】 1. 广搜 2. 双向广搜 【解题思路】 解空间树中每个结点包含的状态为一个字符串s,该结点的子结点中的字符串为字符串s通过变换规则可以变化而成的字符串。求从起始字符串变换为最终字符串的…...
Python Websockets库深度解析:构建高效的实时Web应用
引言 在现代Web开发中,实时通信已经成为许多应用的核心需求。无论是聊天应用、在线游戏、金融交易平台还是协作工具,都需要服务器和客户端之间建立持久、双向的通信通道。传统的HTTP协议由于其请求-响应模式,无法有效满足这些实时交互需求。…...
42.C++11-右值引用与移动语义/完美转发
⭐上篇文章:41.C哈希6(哈希切割/分片/位图/布隆过滤器与海量数据处理场景)-CSDN博客 ⭐本篇代码:c学习/22.C11新特性的使用 橘子真甜/c-learning-of-yzc - 码云 - 开源中国 (gitee.com) ⭐标⭐是比较重要的部分 目录 一. 右值引用…...
LeetCode题二:判断回文
查阅资料我得到的结果远没有大佬们的做法更省时间,而且还很麻烦 我的代码(完整): class Solution:def isPalindrome(self, x: int) -> bool:# 若 x 为负数,由于负数不可能是回文数,直接返回 Falseif x < 0:return False# …...
[王阳明代数讲义]琴语言类型系统工程特性
琴语言类型系统工程特性 层展物理学组织实务与艺术与琴生生.物机.械科.技工.业研究.所软凝聚态物理开发工具包社会科学气质砥砺学人生意气场社群成员魅力场与心气微积分社会关系力学 意气实体过程图论信息编码,如来码导引 注意力机制道装Transformer架构的发展标度律…...
问题:tomcat下部署eureka双重路径
开发时在tomcat下启动eureka服务 客户端注册时需要地址需要注意 http://localhost:8761/eureka/eureka 后面一个eureka与tomcat context-path有关系按实际配置替换 如果不想要两个path可将tomcat context-path写为 / 建议使用 / 避免出现其他问题 如图...
