当前位置: 首页 > news >正文

【大模型深度学习】如何估算大模型需要的显存

一、模型参数量

参数量的单位
参数量指的是模型中所有权重和偏置的数量总和。在大模型中,参数量的单位通常以“百万”(M)或“亿”(B,也常说十亿)来表示。

百万(M):表示一百万个参数。例如,如果一个模型有110M个参数,那么它实际上有110,000,000(即1.1亿)个参数。
亿(B):表示十亿个参数。例如,GPT-3模型有175B个参数,即175,000,000,000(即1750亿)个参数。

二、内存数据量的单位


在大数据和机器学习的语境下,数据量通常指的是用于训练或测试模型的数据的大小。数据量的单位可以是字节(Byte)、千字节(KB)、兆字节(MB)、吉字节(GB)等。

字节(Byte):是数据存储的基本单位。一个字节由8个比特(bit)组成。
千字节(KB):等于1024个字节。
兆字节(MB):等于1024个千字节,也常用于表示文件或数据的大小。
吉字节(GB):等于1024个兆字节,是较大的数据存储单位。
在大模型中,由于模型参数通常是以浮点数(如float32)存储的,因此可以通过模型参数量来计算模型所需的存储空间大小。例如,如果一个模型有1.1亿个参数,并且每个参数用float32表示(即每个参数占4个字节),那么该模型所需的存储空间大约为44MB(1.1亿×4字节/1024/1024)。

bit(比特):bit是二进制数字中的位,是信息量的最小单位。在二进制数系统中,每个0或1就是一个bit。bit是计算机内部数据存储和传输的基本单位。在数据传输过程中,通常以bit为单位来表示数据的传输速率或带宽。

字节(Byte)定义:字节是计算机信息技术用于计量存储容量的一种单位,也表示一些计算机编程语言中的数据类型和语言字符。字节通常由8个bit组成。字节是计算机中数据处理的基本单位。在存储数据时,通常以字节为单位来表示数据的大小或容量。

bit和字节的关系:1字节(Byte)等于8比特(bit)。在计算机科学中,经常需要将数据的大小从字节转换为比特,或者从比特转换为字节。例如,在数据传输过程中,如果知道数据的传输速率是以比特每秒(bps)为单位的,那么可以通过除以8来将其转换为字节每秒(Bps)的单位。

三、模型参数精度

单精度浮点数 (32位) - float32:

含义:单精度浮点数用于表示实数,具有较高的精度,适用于大多数深度学习应用。
字节数:4字节(32位)
半精度浮点数 (16位) - float16:

含义:半精度浮点数用于表示实数,但相对于单精度浮点数,它的位数较少,因此精度稍低。然而,它可以在某些情况下显著减少内存占用并加速计算。
字节数:2字节(16位)
双精度浮点数 (64位) - float64:

含义:双精度浮点数提供更高的精度,适用于需要更高数值精度的应用,但会占用更多的内存。
字节数:8字节(64位)
整数 (通常为32位或64位) - int32, int64:

含义:整数用于表示离散的数值,可以是有符号或无符号的。在某些情况下,例如分类问题中的标签,可以使用整数数据类型来表示类别。
字节数:通常为4字节(32位)或8字节(64位)

int4 (4位整数):

含义:int4使用4位二进制来表示整数。在量化过程中,浮点数参数将被映射到一个有限的范围内的整数,然后使用4位来存储这些整数。
字节数:由于一个字节是8位,具体占用位数而非字节数,通常使用位操作存储。
int8 (8位整数):

含义:int8使用8位二进制来表示整数。在量化过程中,浮点数参数将被映射到一个有限的范围内的整数,然后使用8位来存储这些整数。
字节数:1字节(8位)

量化:在量化过程中,模型参数的值被量化为最接近的可表示整数,这可能会导致一些信息损失。因此,在使用量化技术时,需要平衡压缩效果和模型性能之间的权衡,并根据具体任务的需求来选择合适的量化精度。

1B int8的存储需要1GB的显存 

 

四、训练显存

模型参数

梯度

存储梯度所需的内存等于参数本身所需的内存。由于每个参数都有相应的梯度,因此它们的内存要求相同。

梯度内存 = 参数内存

优化器

优化器状态是某些优化算法(如 Adam、RMSprop)维护的附加变量,用于提高训练效率。这些状态有助于根据过去的梯度更新模型参数。

不同的优化器维护不同类型的状态。例如:

SGD(随机梯度下降):没有附加状态;仅使用梯度来更新参数。
Adam:为每个参数维护两个状态:一阶矩(梯度平均值)和二阶矩(梯度平方平均值)。这有助于动态调整每个参数的学习率。对于具有 100 万个参数的模型,Adam 需要为每个参数维护 2 个附加值(一阶矩和二阶矩),从而产生 200 万个附加状态。
优化器状态的内存 = 参数数量 x 精度大小 x 优化器乘数

激活

激活指的是什么

前向传递过程中计算得到的,并在后向传递过程中需要用到的所有张量。激活值大小与批次大小和序列长度有关。

输入数据和标签:

训练模型需要将输入数据和相应的标签加载到显存中。这些数据的大小取决于每个批次的样本数量以及每个样本的维度。

中间计算:

在前向传播和反向传播过程中,可能需要存储一些中间计算结果,例如激活函数的输出、损失值等。

临时缓冲区:

在计算过程中,可能需要一些临时缓冲区来存储临时数据,例如中间梯度计算结果等。减少中间变量也可以节省显存,这就体现出函数式编程语言的优势了。

没有固定的公式来计算激活的 GPU 内存。

以llama int 8 7B为例:

  • 数据类型:Int8

  • 模型参数: 7B * 1 bytes = 7GB

  • 梯度:同上7GB

  • 优化器参数: AdamW 2倍模型参数 7GB * 2 = 14GB

  • LLaMA的架构(hidden_size= 4096, intermediate_size(前馈网络神经元的个数)=11008, num_hidden_lavers= 32, context.length = 2048),所以每个样本大小:(4096 + 11008) * 2048 * 32 * 1byte = 990MB

  • A100 (80GB RAM)大概可以在int8精度下BatchSize设置为50

  • 综上总现存大小:7GB + 7GB + 14GB + 990M * 50/1024 ~= 77GB

五、推理显存 

  1. 模型加载: 计算模型中所有参数的大小,包括权重和偏差。

  2. 确定输入数据尺寸: 根据模型结构和输入数据大小,计算推理过程中每个中间计算结果的大小。

  3. 选择批次大小: 考虑批处理大小和数据类型对显存的影响。

大概是1.2倍的模型参数权重。

六、显卡以及zero优化显存

大模型在训练或者微调时需要的显卡个数其实与选择的分布式训练方法和微调方法有关。

比如大概120GB的内存如果单卡训练需要两张A100的显卡。

如果我们采用多卡训练同时运用zero的思想。那么显存变化情况可以参考下图:

如果采用数据并行。模型并行:如果模型被均匀分割,那么可能需要与模型层数成比例的显卡数量。

参考说明

开源大模型训练及推理所需显卡成本必读:也看大模型参数与显卡大小的大致映射策略_大模型 6b 13b是指什么-CSDN博客

大模型训练时的激活值显存占用 - 知乎 

相关文章:

【大模型深度学习】如何估算大模型需要的显存

一、模型参数量 参数量的单位 参数量指的是模型中所有权重和偏置的数量总和。在大模型中,参数量的单位通常以“百万”(M)或“亿”(B,也常说十亿)来表示。 百万(M):表示…...

[论文阅读]PMC-LLaMA: Towards Building Open-source Language Models for Medicine

PMC-LLaMA:构建医学开源语言模型 摘要 最近,大语言模型在自然语言理解方面展现了非凡的能力。尽管在日常交流和问答场景下表现很好,但是由于缺乏特定领域的知识,这些模型在需要精确度的领域经常表现不佳,例如医学应用…...

`use_tempaddr` 和 `temp_valid_lft ` 和 `temp_prefered_lft ` 笔记250405

use_tempaddr 和 temp_valid_lft 和 temp_prefered_lft 笔记250405 以下是 Linux 系统中与 IPv6 临时隐私地址相关的三个关键参数 use_tempaddr、temp_valid_lft 和 temp_prefered_lft 的详细说明及协作关系: 📜 参数定义与功能 参数作用默认值依赖关…...

如何设置 JVM 内存参数(-Xms、-Xmx、-Xss 等)?

JVM 内存参数用于控制 Java 虚拟机使用的内存大小和行为。以下是一些常用的 JVM 内存参数及其设置方法&#xff1a; 1. 堆内存 (Heap Memory): -Xms<size>: 设置 JVM 初始堆大小 (initial heap size)。 例如&#xff1a;-Xms2g (初始堆大小为 2GB)默认值&#xff1a;物…...

【MATLAB TCP/IP客户端与NetAssist上位机双向通信实战指南】

MATLAB TCP/IP客户端与NetAssist上位机双向通信实战指南 一、前言 在工业控制和数据采集领域&#xff0c;TCP/IP通信是最常用的网络通信协议之一。MATLAB作为强大的科学计算软件&#xff0c;与各种上位机软件(如NetAssist)进行通信可以实现数据采集、设备控制和实时监控等功能…...

联合、枚举、类型别名

数据类型&#xff1a; 已学--整数、实数、字符、字符串、数组、指针、结构待学--向量&#xff08;vector&#xff09;类型&#xff1a;优于数组非主流的类型--联合&#xff08;union&#xff09;、枚举&#xff08;enum&#xff09; 一、联合 联合类似于结构&#xff0c;可以容…...

Array 和 ArrayList 有何区别?什么时候更适合用 Array?

面试官提问&#xff1a; 你能简要说明 Array 和 ArrayList 之间的主要区别吗&#xff1f;在什么场景下更适合使用 Array&#xff1f; 标准回答&#xff1a; 在 Java 中&#xff0c;Array&#xff08;数组&#xff09;和 ArrayList&#xff08;动态数组&#xff09;都可以用于存…...

对状态模式的理解

对状态模式的理解 一、场景二、不采用状态模式1、代码2、缺点 三、采用状态模式1、代码1.1 状态类1.2 上下文&#xff08;这里指&#xff1a;媒体播放器&#xff09;1.3 客户端 2、优点 一、场景 同一个东西&#xff08;例如&#xff1a;媒体播放器&#xff09;&#xff0c;有一…...

【学Rust写CAD】31 muldiv255函数(muldiv255.rs)

源码 // Calculates floor(a*b/255 0.5) #[inline] pub fn muldiv255(a: u32, b: u32) -> u32 {// The deriviation for this formula can be// found in "Three Wrongs Make a Right" by Jim Blinn.let tmp a * b 128;(tmp (tmp >> 8)) >> 8 }代…...

使用VSCode编写C#程序

目录 一、环境搭建&#xff1a;构建高效开发基础1. 安装VSCode2. 配置.NET SDK3. 安装核心扩展 二、项目开发全流程1. 创建项目2. 代码编辑技巧3. 调试配置4. 高级调试技巧5. 编译与运行 三、常见问题解决指南1. 项目加载失败2. IntelliSense失效3. 代码格式化4. 典型编译错误&…...

chromadb

chromadb是一个轻量化的向量数据库&#xff0c;可以和llama-index等RAG框架使用。底层基于sqllite。 Getting Started - Chroma Docs 1、安装 $pip install chromadb pip install chromadb-client --在CS模式下&#xff0c;如果机器A上只需要安装客户端 2、可以使用客户端…...

第十章: 可观测性_《凤凰架构:构建可靠的大型分布式系统》

第十章: 可观测性 可观测性是现代分布式系统监控和故障排查的核心能力。本章从事件日志、链路追踪、聚合度量三个维度构建完整的可观测性体系&#xff0c;以下是各部分的重点解析与实践要点&#xff1a; 一、事件日志&#xff08;Event Logging&#xff09; 1. 核心目标 全链…...

vscode和cursor对ubuntu22.04的remote ssh和X-Windows的无密码登录

这里写自定义目录标题 写在前面需求的描述问题的引出 昨天已使能自动登录上午我的改变UBUNTU 22.04关闭密码规则一&#xff1a;修改 /etc/pam.d/common-password 文件二&#xff1a;修改 /etc/security/pwquality.conf 文件方法三&#xff1a;禁用 pam_pwquality.so 模块 vscod…...

Mlivus Cloud SDK v2的革新:性能优化与实战解析

作为大禹智库的向量数据库高级研究员王帅旭,我在过去30多年的AI应用实战中见证了向量数据库技术的演进历程。今天,我将从专业角度深入剖析Mlivus Cloud SDK v2的架构革新,特别是针对性能瓶颈问题的突破性解决方案。本文不仅会详细解析技术原理,还将提供可操作的优化建议,帮…...

stl_list的模拟实现

文章目录 stl_list的模拟实现迭代器的介绍以及分类stl_list的基本接口介绍stl_list的模拟实现结点类迭代器类基本迭代器操作 链表类链表基本操作 结语 我们今天又见面啦&#xff0c;给生活加点impetus&#xff01;&#xff01;开启今天的编程之路 作者&#xff1a;٩( ‘ω’ …...

【蓝桥杯】十五届省赛B组c++

目录 前言 握手问题 分析 排列组合写法 枚举 小球反弹 分析 代码 好数 分析 代码 R 格式 分析 代码 宝石组合 分析 代码 数字接龙 分析 代码 拔河 分析 代码 总结 前言 主播这两天做了一套蓝桥杯的省赛题目&#xff08;切实感受到了自己有多菜&#x…...

变分自编码器(VAE)概念解析与用法实例:根据原图像生成新图像

目录 1. 前言 2. VAE原理 2.1 什么是VAE&#xff1f; 2.2 编码器&#xff08;Encoder&#xff09; 2.3 重参数化技巧&#xff08;Reparameterization Trick&#xff09; 2.4 解码器&#xff08;Decoder&#xff09; 2.5 损失函数 3. Pytorch实现&#xff1a;根据原图像…...

AI随身翻译设备:从翻译工具到智能生活伴侣

文章目录 AI随身翻译设备的核心功能1. 实时翻译2. 翻译策略3. 翻译流程4. 输出格式 二、AI随身翻译设备的扩展功能1. 语言学习助手2. 旅行助手3. 商务助手4. 教育助手5. 健康助手6. 社交助手7. 技术助手8. 生活助手9. 娱乐助手10. 应急助手 三、总结四、未来发展趋势&#xff0…...

基于大模型的重症肌无力的全周期手术管理技术方案

目录 技术方案文档1. 数据预处理模块2. 多任务预测模型架构3. 动态风险预测引擎4. 手术方案优化系统5. 技术验证模块6. 系统集成架构7. 核心算法清单8. 关键流程图详述实施路线图技术方案文档 1. 数据预处理模块 流程图 [输入原始数据] → [联邦学习节点数据对齐] → [多模态特…...

Linux常用命令详解:从基础到进阶

目录 一、引言 二、文件处理相关命令 &#xff08;一&#xff09;grep指令 &#xff08;二&#xff09;zip/unzip指令 ​编辑 &#xff08;三&#xff09;tar指令 &#xff08;四&#xff09;find指令 三、系统管理相关命令 &#xff08;一&#xff09;shutdown指…...

【全球首发】DeepSeek谷歌版1.1.5 - 免费GPT-4级别AI工具

【全球首发】DeepSeek谷歌版1.1.5 - 免费GPT-4级别AI工具 资源简介 DeepSeek谷歌版1.1.5是目前全球领先的免费AI助手&#xff0c;性能超越国内主流AI产品&#xff0c;提供类似GPT-4的智能体验。 版本信息 最新版本&#xff1a;1.1.5&#xff08;2024最新版&#xff09;应用…...

JWT认证服务

JSON Web Token&#xff08;JWT&#xff09;是一种用于在网络应用间安全地传递信息的紧凑、自包含的方式。以下是关于 JWT 认证服务器更详细的介绍&#xff0c;包括其意义、作用、工作原理、组成部分、时效性相关内容、搭建条件以及代码案例。 JWT 的意义与作用 意义&#xf…...

Raft算法

Raft算法用于保证分布式环境下多节点数据的一致性。 原理 Raft算法的主要思想是一个 选主(leader selection) 的算法思想&#xff0c;集群种每个节点都有可能成为三种角色。 三种角色 leader 对客户端通信的入口&#xff0c;对内数据同步的发起者&#xff0c;一个集群通常只…...

Kotlin 类委托深入解析:以 MMKV 为例看委托机制在 Android 中的巧妙应用

Kotlin 中的类委托&#xff08;class delegation&#xff09;是一个非常实用的特性&#xff0c;它允许我们将接口的实现交给另一个对象&#xff0c;从而简化代码&#xff0c;提升复用性和灵活性。本文将通过简单的 Demo 介绍类委托的基本用法&#xff0c;并以 Android 中的 MMK…...

2025年渗透测试面试题总结-某一线实验室实习扩展(题目+回答)

网络安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 某一线实验室实习扩展 一、流量分析深度实践 1. FTP反弹定时确认包流量检测 1.1 攻击原理与特征 1.…...

2025大唐杯仿真3——移动性管理

仅仅是1-2之间的信息交互...

云原生与微服务的关系

云原生&#xff08;Cloud Native&#xff09;和微服务&#xff08;Microservices&#xff09;是现代软件开发和部署中密切相关的两个概念&#xff0c;它们共同推动了应用程序的架构设计、开发模式和运维方式的变革。以下是两者的关系及核心要点&#xff1a; 定义与核心概念 云原…...

【百日精通JAVA | SQL篇 | 第三篇】 MYSQL增删改查

SQL得最核心就是增删改查 一个后端开发&#xff0c;在工作中&#xff0c;最常见的场景就是CRUD。 插入数据 insert into student values (1,zhangsan); 指定列插入数据 同时多个列明之间使用逗号&#xff0c;来分割 insert into student (name) values (zhaoliu); 这个黑框…...

【leetcode】记录与查找:哈希表的题型分析

前言 &#x1f31f;&#x1f31f;本期讲解关于力扣的几篇题解的详细介绍~~~ &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 &#x1f525; 你的点赞就是小编不断更新的最大动力 &#x1f386;那么废话不…...

如何在 Windows 10 上安装 PyGame

PyGame 是 Python 编程语言中的一组跨平台模块&#xff0c;这意味着您可以在任何操作系统上安装它&#xff0c;这篇文章告诉您如何在 Windows 10 上安装 PyGame。 如何在 Windows 10 上安装 PyGame&#xff1f; PyGame 依赖于 Python&#xff0c;这意味着您必须在安装 PyGame …...

LVGL修改标签文本,GUI Guider的ui不生效

一.问题背景 笔者最近在学习LVGL框架&#xff0c;同时准备使用该框架作为课程设计的一部分&#xff0c;于是需要从静态显示进阶到动态显示以及事件交互。一方面由于笔者是初次接触LVGL&#xff0c;对它并不熟悉&#xff0c;另一方面由于其网络上的针对性具体资料太少&a…...

制造装备物联及生产管理ERP系统设计与实现(代码+数据库+LW)

摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装制造装备物联及生产管理ERP系统软件来发挥其高效地信息处理…...

PowerPhotos:拯救你的Mac照片库,告别苹果原生应用的局限

如果你用Mac管理照片&#xff0c;大概率被苹果原生「照片」应用折磨过——无法真正并行操作多个图库。每次切换图库都要关闭重启&#xff0c;想合并照片得手动导出导入&#xff0c;重复文件更是无处可逃…… 直到我发现了 PowerPhotos&#xff0c;这款专为Mac设计的照片库管理…...

软件工程面试题(三十)

将ISO8859-1字符串转成GB2312编码&#xff0c;语句为&#xff1f; String snew String(text.getBytes(“iso8859-1”),”gb2312”). 说出你用过的J2EE标准的WEB框架和他们之间的比较&#xff1f; 答&#xff1a;用过的J2EE标准主要有&#xff1a;JSP&Servlet、JDBC、JNDI…...

Java面试黄金宝典35

1. A 和 B 两个表做等值连接 (Inner join) 怎么优化 索引优化&#xff1a;在连接字段上创建索引&#xff0c;让数据库在进行等值连接时&#xff0c;能够快速定位匹配的记录&#xff0c;减少全表扫描的开销。例如&#xff0c;若 A 表和 B 表通过 id 字段进行连接&#xff0c;可在…...

openssl-1.0.1e.tar.gz编译安装步骤

下载与验证 openssl-1.0.1e.tar.gz下载链接&#xff1a;https://pan.quark.cn/s/d682551565e8 校验文件完整性&#xff08;示例&#xff09;&#xff1a; # 检查 SHA256 哈希值 sha256sum openssl-1.0.1e.tar.gz # 对比官方发布的哈希值&#xff08;需从 OpenSSL 官网获取&a…...

供应链业务-供应链全局观(二)

概述 我们在供应链业务知识分享的第一篇供应链业务-供应链全局观&#xff08;一&#xff09;中大致聊了以下三点&#xff1a; 1、供应链的本质&#xff1a;环环相扣的增值网络。供应链是从供应商的供应商到客户的客户之间&#xff0c;通过采购、生产、运输、仓储、销售等环节…...

在 Flutter 中Navigator.push 用于实现页面之间的导航

在 Flutter 中&#xff0c;Navigator.push 是一个非常重要的方法&#xff0c;用于实现页面之间的导航。通过 Navigator.push&#xff0c;你可以将一个新的页面&#xff08;路由&#xff09;推送到导航栈中&#xff0c;从而显示新的内容。 以下是一个详细的教程&#xff0c;帮助…...

安永启用AI驱动SAP云ERP系统

安永&#xff08;EY&#xff09;宣布与 SAP 和微软展开战略合作&#xff0c;正式启动将其内部业务系统升级为基于 SAP S/4HANA Cloud 私有版的现代化 ERP 系统&#xff0c;并部署在 Microsoft Azure 云平台上。此次转型不仅涉及系统更新&#xff0c;还将通过引入人工智能&#…...

Augment Code:下一代AI编程助手,能否超越GitHub Copilot?

1. 背景介绍 近日&#xff0c;AI编程助手公司 Augment Code 宣布完成 2.27亿美元B轮融资&#xff0c;估值接近 9.77亿美元&#xff0c;距离独角兽企业仅一步之遥。本轮融资由 Sutter Hill Ventures、Index Ventures、Innovation Endeavors、Lightspeed Venture Partners 和 Me…...

图像处理之《直方图规定化和低失真数据隐藏的可逆对比度增强》论文阅读

全文目录 一、文章摘要二、直方图规定化三、提出的方法A.峰值和零点的选择B.数据序列扩展C. V L D E \mathrm{VLD_E} VLDE​: 带有扩展的极低失真D.提出的RCE-HS方案四、实现细节五、汇报PPT一、文章摘要 本文研究可逆对比度增强(RCE)。图像增强是通过直方图规定化实现的,直方…...

状态模式~

状态模式 在软件系统中,有些对象也像水一样具有多种状态,这些状态在某些情况下能够相互转换,而且对象在不同状态下也将具有不同的行为. 状态模式(state pattern)的定义: 允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。 状态模式就是用于解决系统…...

Latex入门之超详细的Latex环境配置教程

最近在学习Latex&#xff0c;顺便给大家分享一下Latex环境配置的心得。Latex作为一种高质量的排版系统&#xff0c;广泛应用于学术论文、书籍和报告的排版中。对于初学者来说&#xff0c;配置Latex环境可能是个挑战&#xff0c;但只要按照本文的步骤来&#xff0c;其实并不难。…...

[WUSTCTF2020]CV Maker1

进来是个华丽的界面&#xff0c;我们先跟随这个网页创造一个用户 发现了一个上传端口&#xff0c;尝试上传一个php文件并抓包 直接上传进不去&#xff0c;加个GIF89A uploads/d41d8cd98f00b204e9800998ecf8427e.php 传入 并且报告了 上传路径&#xff0c;然后使用蚁剑连接...

第1课:React开发环境搭建与第一个组件

第1课&#xff1a;React开发环境搭建与第一个组件 学习目标 搭建React开发环境创建第一个React项目了解项目基本结构编写并运行第一个React组件 一、环境准备 1. 安装Node.js React开发需要Node.js环境&#xff0c;它包含了npm&#xff08;Node Package Manager&#xff0…...

go垃圾回收机制

Go语言的垃圾回收&#xff08;GC&#xff09;机制旨在高效管理内存&#xff0c;同时最小化对程序性能的影响。其核心设计结合了并发标记清除、三色标记法和写屏障技术&#xff0c;显著减少了停顿时间&#xff08;Stop-The-World, STW&#xff09;。以下是Go垃圾回收机制的关键特…...

【GPT入门】第 34 课:深度剖析 ReAct Agent 工作原理及代码实现

【GPT入门】第 34 课&#xff1a;深度剖析 ReAct Agent 工作原理及代码实现 1. React Agent概述2. React Agent工作原理、关键特点、应用场景3. langchain的ReAct Agent代码实现3.1 Openai1.x 代码实现3.2 Openai 0.x的实现3.3 新旧版API异同比较 1. React Agent概述 定义与基…...

MySQL介绍及使用

1. 安装、启动、配置 MySQL 1. 安装 MySQL 更新软件包索引 sudo apt update 安装 MySQL 服务器 sudo apt install mysql-server 安装过程中可能会提示你设置 root 用户密码。如果没有提示&#xff0c;可以跳过&#xff0c;后续可以手动设置。 2. 配置 MySQL 运行安全脚本…...

九、重学C++—类和函数

上一章节&#xff1a; 八、重学C—动态多态&#xff08;运行期&#xff09;-CSDN博客https://blog.csdn.net/weixin_36323170/article/details/147004745?spm1001.2014.3001.5502 本章节代码&#xff1a; cpp/cppClassAndFunc.cpp CuiQingCheng/cppstudy - 码云 - 开源中国…...

C++·包装器

目录 function 包装各种可调用对象 包装类成员函数 应用举例 bind 一般形式 arg_list 调整参数顺序 调整参数个数&#xff08;绑死&#xff09; 应用举例 小知识 function 包含在<functional>头文件中&#xff0c;是一个类模版&#xff0c;但本质还是仿函数。…...