高效深度学习lecture01

lecture01

零样本学习(Zero-Shot Learning, ZSL):

  1. 模型可以在没有见过某种特定任务或类别的训练样本的情况下,直接完成对应的任务

  2. 利用知识迁移

    1. 模型在一个任务上训练时学到的知识,能够迁移到其他任务上
    2. 比如,模型知道“狗”和“猫”都属于“动物”,因此,即使没见过“狐狸”的图片,也可以通过“动物”这个概念推测“狐狸”可能属于“动物”
  3. 借助语义信息

    1. 零样本学习通常依赖于额外的语义信息(如类标签的描述、文本嵌入、图像特征等)
    2. 例如,在分类任务中,类别名称的文本描述可以帮助模型理解新的类别
  4. 关键技术:

    1. 共享特征空间
      1. 模型通过将已知类别的特征和未知类别的语义描述映射到同一个特征空间来实现知识迁移
      2. 例如,将图片嵌入和文本嵌入映射到一个共同空间,模型可以比较图片特征和文本描述的相似性
    2. 使用预训练模型
      1. 许多预训练语言模型(如GPT、BERT)和多模态模型(如CLIP)对零样本学习效果非常好
      2. 这些模型在大量多任务数据上训练,可以理解广泛的语义信息
    3. 多模态方法
      1. 跨文本和图像的模型(如CLIP)在零样本任务中尤为突出,它们通过学习文本和图像的对应关系实现任务迁移

思维链(Chain of Thought, CoT):

  1. 一种用于大语言模型(LLM)的推理策略,通过让模型生成逐步的推理步骤,从而提高复杂任务(如数学推算、逻辑推理、问答等)的准确性和解释性

  2. 传统的模型往往直接给出答案,而思维链方法引导模型像人类一样,分步骤思考问题,提高了解决复杂问题的能力

  3. 主要策略:

    1. 逐步推理:将一个复杂问题分解成多个小的、容易解决的步骤,模型在推理过程中不仅生成答案,还给出详细的思路
    2. 显式中间步骤:思维链的中间步骤提供了解题过程的可解释性,便于诊断和改进模型的推理
    3. 提升模型性能:对于需要深度推理或多步骤计算的问题,思维链能显著提高模型的准确性
  4. 预训练语言模型生成

    1. 使用提示(Prompting)指导模型逐步推理

    2. eg:
      问题:如果一辆车以每小时60公里的速度行驶4小时,它行驶了多少公里?
      答案:
      1. 每小时行驶60公里。
      2. 行驶4小时。
      3. 总距离是 \(60 \times 4 = 240\) 公里。
      答案是:240公里。
      
  5. 少样本学习(Few-shot Learning)

    1. 在输入中加入几个例子,让模型学习如何分步骤回答

    2. 示例1:
      问题:如果小明有2个苹果,每个苹果价值3元,他总共有多少钱?
      答案:
      1. 每个苹果价值3元。
      2. 小明有2个苹果。
      3. 总价值是 \(3 \times 2 = 6\) 元。
      答案是:6元。问题:如果一辆车每小时行驶70公里,行驶3小时,它行驶了多少公里?
      答案:
      
  6. 微调模型:将逐步推理的标注数据用来微调模型,使其能够生成思维链


算法、硬件、数据

AI设备性能指标:

  1. FLOPS(Floating Point Operations Per Second): 浮点计算能力;FLOPS 是衡量设备计算能力的指标,表示设备每秒能执行的浮点运算次数

    1. 浮点数运算指的是计算机处理小数大数(比如 1.23、0.0005 或 3.14)的加减乘除等操作

    2. AI模型需要大量计算,比如神经网络中的矩阵乘法,FLOPS越大,计算能力越强,也就是能更快、更高效地处理任务

    3. AI 和深度学习领域,常见的位数包括 16位(FP16)32位(FP32)64位(FP64),它们代表浮点数的不同精度,位数越多:表示的数值范围越大,精度越高(更接近真实值)

      1. FP32(32位浮点数):单精度浮点数,每个数占用 4 字节(32 位),传统的深度学习主要使用 FP32,计算精度和速度较均衡,通用深度学习训练和推理任务
      2. FP16(16位浮点数): 半精度浮点数,每个数占用 2 字节(16 位),运算速度更快,因为每次操作处理的数据量更少,推理阶段更常用
      3. FLOPS 的计算能力会因为浮点数精度不同而变化:同一个GPU算力:
        1. FP32:10 TFLOPS(每秒 10 万亿次 FP32 运算)
        2. FP16:20 TFLOPS(每秒 20 万亿次 FP16 运算)
        3. FP64:2 TFLOPS(每秒 2 万亿次 FP64 运算)
      4. 混合精度训练(Mixed Precision Training):
        1. 如( PyTorch、TensorFlow)支持混合精度训练:
          1. 使用 FP16 处理大部分运算以提高速度和节省显存
          2. 在需要高精度的地方(如梯度累积),切换回 FP32
    4. 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

      1. CUDA 核心数:10496 个
      2. 时钟频率(Boost Clock):1.70 GHz
      3. 每个 CUDA 核心的运算能力(FP32):1 次浮点运算/周期
      4. Tensor Core 性能(FP16 混合精度):每个 Tensor Core 每周期可以处理 4 次浮点运算
      5. FP32 FLOPS = 10496 × 1.70GHz × 1OPC = 17843.2GFLOPS = 17.8TFLOPS
      6. FP16 是半精度浮点运算,使用 Tensor Core 时,每周期每个核心的运算能力为 FP32 的 4 倍:FP16 FLOPS=4×17.8=71.2TFLOPS
    5. Tensor Core 是 NVIDIA 针对 AI 和深度学习任务特别设计的硬件加速单元

      1. FP16(半精度浮点)模式下,Tensor Core 每个时钟周期可以执行 4 次浮点运算
      2. TF32FP32 精度下,Tensor Core 也具有加速作用,特别是在进行矩阵运算时
      3. Tensor Core 更像是 加速器,提升了 GPU 在特定任务(如深度学习)中的表现,ensor Core 提升了 CUDA 核心深度学习低精度运算 中的计算能力,尤其是处理矩阵运算时,通过并行处理提升了整体性能

  2. **显存(VRAM 或 Memory)😗*用于存储图形数据、纹理、渲染的帧和其他与显示相关的信息。显存对于 AI 设备(如 GPU)也非常重要,尤其是在 深度学习训练推理

    1. 显存通常用于存储图形渲染的 纹理帧缓冲区几何数据顶点信息

    2. 深度学习 中,显存用来存储训练过程中的 模型参数(如权重、偏置),以及 中间结果(例如在前向传播和反向传播过程中产生的激活值和梯度)

    3. 推理(inference)过程中,显存用于存储需要推理的数据批量以及网络结构和模型权重

    4. GPU 需要快速处理大量数据。显存提供了快速的数据存储和读取通道,减少了从 主内存(系统 RAM)到 GPU 的数据传输延迟,提高了整体性能

    5. 如果显存不足,GPU 可能会变得 受限,因为无法容纳足够的训练数据或模型参数。在这种情况下,GPU 的计算能力可能会受到限制,即使它的 FLOPS 很高

    6. 显存的大小和性能:更大的显存允许 GPU 同时处理更多的数据,从而提升计算效率。对于 AI 训练和推理,显存的大小对处理 大规模数据集复杂模型 的能力至关重要

    7. 批量大小(Batch Size):批量大小是深度学习训练中的一个重要参数。增加批量大小通常可以提升训练效率,但也需要更多的显存。如果显存不足,批量大小必须减少

    8. 显存容量和显存带宽:

      1. 训练复杂的深度神经网络时,模型的大小和数据的批量大小会占用大量显存。如果显存不足,可能会导致 内存溢出(Out of Memory)
      2. 显存带宽 是指显存能够在单位时间内读取或写入的数据量,通常以 GB/s(GB 每秒)为单位。高带宽显存可以提供更高的数据吞吐量,尤其是在需要处理大量并行数
    9. 设备显存类型显存大小显存带宽AI 算力(FLOPS)
      Jetson NanoLPDDR4(低功耗)4 GB25.6 GB/sFP32: 0.5 TFLOPS, FP16: 1 TFLOPS
      RTX 3090GDDR6X24 GB936.2 GB/sFP32: 35.6 TFLOPS, FP16: 71.2 TFLOPS
      RTX 4090GDDR6X24 GB1,008.0 GB/sFP32: 35.6 TFLOPS, FP16: 71.2 TFLOPS
      A100HBM240 GB 或 80 GB1,555 GB/s (40 GB 版本) 或 2,039 GB/s (80 GB 版本)FP32: 19.5 TFLOPS, FP16: 156 TFLOPS, Tensor Core FP16: 312 TFLOPS

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

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

相关文章

使用 iPerf 测试内网两台机器之间的传输速度

在现代网络管理中,确保内部网络(内网)的高效运行是至关重要的。为了评估和优化网络性能,我们需要一种可靠的方法来测试内网中不同设备间的传输速率。iPerf 作为一款广泛使用的工具,能够帮助我们准确测量两个节点之间的…

视频设备轨迹回放平台EasyCVR如何搭建公共娱乐场所远程视频监控系统

一、背景介绍 由于KTV、酒吧、足疗店等服务场所人员流动频繁、环境复杂,一直是治安管理的重点区域。为有效打击 “黄赌毒”、打架斗殴、寻衅滋事等违法犯罪的活动,打造安全有序的娱乐消费环境,我国相关部门将加大对这类场所的清查与管控力度…

vue进度条组件

<div class"global-mask" v-if"isProgress"><div class"contentBox"><div class"progresstitie">数据加载中请稍后</div><el-progress class"progressStyle" :color"customColor" tex…

Css:如何解决绝对定位子元素内容被父级元素overflow:hidden属性剪裁

一、问题描述 今天小伙伴提了一个bug&#xff0c;在点击列表项的“…”按钮应该出现的悬浮菜单显示不完整&#xff1a; 二、问题排查 一般这种问题&#xff0c;是由于悬浮菜单采用的是绝对定位&#xff0c;而父级采用了overflow:hidden属性。但需要注意的是&#xff0c;这里的…

JavaScript基础--01-JS简介

字面量&#xff1a;数字、字符串、布尔值 前言JavaScript背景Web前端有三层&#xff1a;发展历史JavaScript的发展&#xff1a;蒸蒸日上 JavaScript介绍JavaScript入门易学性JavaScript是脚本语言JavaScript的组成 JavaScript 的特点特点1&#xff1a;解释型语言特点2&#xff…

[leetcode] 面试经典 150 题——篇9:二叉树(番外:二叉树的遍历方式)

二叉树的遍历是指按照某种顺序访问二叉树中的每个节点。常见的遍历方式有四种&#xff1a;前序遍历&#xff08;Pre-order Traversal&#xff09;、中序遍历&#xff08;In-order Traversal&#xff09;、后序遍历&#xff08;Post-order Traversal&#xff09;以及层序遍历&am…

es基本概念

Elasticsearch 的架构与基本概念 Elasticsearch&#xff08;简称 ES&#xff09;是一个开源的分布式搜索和分析引擎&#xff0c;基于 Apache Lucene 构建。它被广泛用于全文搜索、日志分析、实时数据分析等场景。以下是其架构概述及其基本概念的详细解释。 Elasticsearch 的架…

《星环之城:量子迷雾下的网络安全战记》

点击下面图片带您领略全新的嵌入式学习路线 &#x1f525;爆款热榜 88万阅读 1.6万收藏 序章&#xff1a;星环之陨 公元2145年&#xff0c;人类在火星轨道上建造了“星环之城”——一座由量子网络连接的太空城邦。它的中枢AI“盖娅”掌控着地球与殖民地的数据洪流&#xff…

《全栈+双客户端Turnkey方案》架构设计图

今天分享一些全栈双客户端Turnkey方案的架构与结构图。 1&#xff1a;三种分布式部署方案:网关方案&#xff0c;超级服务器单服方案&#xff0c;直连逻辑服方案 2: 单服多线程核心架构: 系统服务逻辑服服务 3: 系统服务的多线程池调度设计 4:LogicServer Update与ECS架构&…

打破界限:Android XML与Jetpack Compose深度互操作指南

在现有XML布局项目中逐步引入Jetpack Compose是现代Android开发的常见需求。本指南将全面介绍混合使用的最佳实践、技术细节和完整解决方案。 一、基础配置 1.1 Gradle配置 android {buildFeatures {compose true}composeOptions {kotlinCompilerExtensionVersion "1.5.3…

React-narice安卓打包流程

**1. 生成签名密钥 在项目的 android/app 目录下生成签名密钥的步骤&#xff1a; 打开终端或命令提示符&#xff1a;导航到您的 React Native 项目的 android/app 目录。 运行以下命令生成密钥库文件&#xff1a; keytool -genkeypair -v -keystore my-release-key.keystor…

嵌入式AI开源生态指南:从框架到应用的全面解析

嵌入式AI开源生态指南&#xff1a;从框架到应用的全面解析 引言 随着人工智能技术的迅速发展&#xff0c;将AI能力部署到边缘设备上的需求日益增长。嵌入式AI通过在资源受限的微控制器上运行机器学习模型&#xff0c;实现了无需云连接的本地智能处理&#xff0c;大幅降低了延…

深度学习中模型量化那些事

在深度学习中模型量化可以分为3块知识点&#xff0c;数据类型、常规模型量化与大模型量化。本文主要是对这3块知识点进行浅要的介绍。其中数据类型是模型量化的基本点。常规模型量化是指对普通小模型的量化实现&#xff0c;通常止步于int8的量化&#xff0c;绝大部分推理引擎都…

Redis-list类型

这里只是介绍命令使用 列表是用来存储多个有序的字符串 可以用来充当栈和队列的角色 列表特点: 列表中的元素是有序的,可以通过索引下标来获取某个元素或者某个范围的元素 获取和删除有区别 元素可以重复 命令 LPUSH 将一个或者多个元素从左侧放入到list中(头插法) lp…

Business English Certificates (BEC) 高频词汇背诵

Business English Certificates {BEC} 高频词汇背诵 References Cambridge English: Business Certificates, also known as Business English Certificates (BEC), are a suite of three English language qualifications for international business. abandon /əˈbndən/ …

第十四届蓝桥杯省赛真题解析(含C++详细源码)

第十四届蓝桥杯省赛 整数删除满分思路及代码solution1 &#xff08;40% 双指针暴力枚举&#xff09;solution 2&#xff08;优先队列模拟链表 AC&#xff09; 冶炼金属满分代码及思路 子串简写满分思路及代码solution 1&#xff08;60% 双指针&#xff09;solution 2&#xff0…

AI Agent开发大全第二十一课-如何开发一个MCP(从0开发一个MCP Client)

开篇 上一章《AI Agent开发大全第二十课-如何开发一个MCP(从0开发一个MCP Server)》里我们讲了如何从0开始开发一个MCP Server。可以看到文中大量细节为MCP发明者官网Claude都不曾或者是遗漏的,而且还有那么多点遗漏,想要真正要在企业生产级环境使用MCP是需要做分布式开发的…

TypeScript面试题集合【初级、中级、高级】

初级面试题 什么是TypeScript&#xff1f; TypeScript是JavaScript的超集&#xff0c;由Microsoft开发&#xff0c;它添加了可选的静态类型和基于类的面向对象编程。TypeScript旨在解决JavaScript的某些局限性&#xff0c;比如缺乏静态类型和基于类的面向对象编程&#xff0c…

无锡无人机驾驶证培训费用

无锡无人机驾驶证培训费用&#xff0c;随着科技的迅速发展&#xff0c;无人机在众多行业中发挥着举足轻重的作用。从影视制作到农业监测&#xff0c;再到物流运输与城市规划&#xff0c;无人机的应用场景不断扩展&#xff0c;因此越来越多的人开始意识到学习无人机驾驶技能的重…

2181、合并零之间的节点

2181、[中等] 合并零之间的节点 1、问题描述&#xff1a; 给你一个链表的头节点 head &#xff0c;该链表包含由 0 分隔开的一连串整数。链表的 开端 和 末尾 的节点都满足 Node.val 0 。 对于每两个相邻的 0 &#xff0c;请你将它们之间的所有节点合并成一个节点&#xff…