在这里插入图片描述

当前大模型发展正经历着一个关键的技术分水岭。虽然Transformer架构自2017年问世以来主导了整个AI领域,但我们正见证着多种创新架构的涌现,每种都在试图解决Transformer的固有局限。本指南将系统性地解析当前主流架构的技术原理、适用场景与发展趋势,帮助读者建立完整的认知框架。


一、技术背景与认知框架

1.1 架构选择的核心维度

在理解各种大模型架构之前,我们需要建立一个清晰的评估框架。所有架构设计都围绕着四个核心权衡点:

计算复杂度与序列长度:如何在处理长序列时保持合理的计算开销
推理速度与模型容量:如何在保持高性能的同时实现快速推理
训练效率与最终性能:如何在训练阶段和推理阶段之间找到最佳平衡
硬件适配与实际部署:如何充分利用现有硬件架构的特点

1.2 认知模型:两种计算范式

现代大模型架构可以归类为两种根本不同的计算范式:

全连接范式(以Transformer为代表):每个位置都能"看到"所有其他位置,提供最大的表达能力,但计算复杂度为O(n²)。

选择性计算范式(以Mamba、MoE为代表):只激活模型的相关部分,通过选择性计算实现效率提升,复杂度可降至O(n)或常数级。


二、主流架构技术解析

2.1 Transformer架构:奠基者的统治地位

> 核心技术原理

注意力机制(Attention Mechanism)是Transformer的核心创新。通过计算序列中每对位置之间的相关性,模型能够并行处理所有位置,突破了传统RNN的序列依赖限制。

Attention(Q,K,V) = softmax(QK^T/√d_k)V

自注意力(Self-Attention)使得每个位置都能直接访问序列中的任何其他位置,解决了长距离依赖问题。多头注意力(Multi-Head Attention)通过并行运行多个注意力函数,让模型能够关注不同类型的信息。

> 架构变体与演进

  • 编码器-解码器架构:原始Transformer设计,适用于机器翻译等序列到序列任务
  • 仅编码器架构:BERT系列,通过双向注意力实现更好的语言理解
  • 仅解码器架构:GPT系列,采用因果掩码实现自回归生成

> 技术优势与局限

优势

  • 强大的表达能力和上下文理解
  • 高度并行化,训练效率高
  • 在各种NLP任务上表现卓越

局限

  • O(n²)的计算和内存复杂度
  • 长序列处理能力受限
  • 推理时的KV-Cache内存占用大

2.2 Mamba架构:线性复杂度的革命者

> 状态空间模型基础

状态空间模型(State Space Model, SSM)源于控制论,通过维护一个固定大小的"状态"来总结历史信息。Mamba基于选择性状态空间模型(Selective SSM),实现了input-dependent的参数调整。

h(t) = Ah(t-1) + Bx(t)
y(t) = Ch(t)

其中A、B、C矩阵根据输入动态调整,这是Mamba相对于传统SSM的核心创新。

> 选择性机制与硬件优化

选择性机制允许模型根据当前输入决定保留或遗忘哪些信息,类似于人类的选择性注意。硬件感知并行扫描算法通过内核融合、并行扫描和重计算技术,在GPU上实现高效计算。

> 性能特点

  • 线性复杂度:O(n)的计算和内存复杂度
  • 无限上下文:理论上可处理任意长度序列
  • 推理加速:相比同等规模Transformer快5倍
  • 训练效率:在相同数据量下性能匹配或超越Transformer

2.3 混合专家(MoE)架构:智能的稀疏计算

> MoE核心概念

混合专家架构通过将大模型分解为多个专门的"专家"网络,只激活处理当前输入最相关的专家子集。每个MoE层包含:

  • 专家网络:通常是前馈神经网络(FFN)
  • 门控网络:决定哪些专家被激活
  • 负载平衡机制:确保专家使用的均衡性

> 路由策略与专家选择

Top-k路由是最常用的策略,为每个token选择得分最高的k个专家:

router_weights = softmax(x @ W_router)
selected_experts = top_k(router_weights, k=2)

专家专业化并非预定义的领域划分,而是在训练过程中自然涌现的模式,如语法结构、语义理解等。

> 计算效率与扩展性

MoE实现了稀疏激活:虽然模型总参数量巨大,但每次前向传播只使用其中一小部分,从而在保持高容量的同时控制计算开销。

2.4 混合架构:融合的智慧

> Transformer-Mamba混合

Jamba(AI21 Labs)和Bamba(IBM)等模型探索了在不同层交替使用Transformer和Mamba块的设计:

  • Transformer层处理短期、精细的上下文关系
  • Mamba层处理长期、全局的序列依赖
  • 实现了效率和性能的双重优化

> MoE-Transformer混合

Mixtral 8x7B等模型将MoE应用于Transformer的FFN层,在保持注意力机制的同时实现参数扩展。


三、架构对比与选择决策

3.1 综合技术对比

架构类型计算复杂度推理速度长序列处理训练难度部署复杂度适用场景
TransformerO(n²)中等受限通用语言任务、短中序列
Mamba/SSMO(n)优秀中等中等长序列处理、流式应用
MoEO(1)激活中等大规模多任务、计算受限环境
混合架构平衡较快良好中等需要平衡效率与性能的应用

3.2 决策框架:何时选择何种架构

> 基于应用场景的选择

选择Transformer当

  • 处理序列长度<4K的常规任务
  • 需要最高质量的语言理解和生成
  • 有充足的计算资源和训练经验
  • 部署环境相对简单

选择Mamba当

  • 处理长序列(>10K tokens)
  • 需要实时或流式处理
  • 计算资源受限
  • 推理延迟要求严格

选择MoE当

  • 需要在多个领域/任务间表现良好
  • 有大量训练数据但计算预算有限
  • 可以承受复杂的训练和部署流程
  • 需要极大的模型容量

选择混合架构当

  • 需要平衡各种性能指标
  • 愿意承担额外的工程复杂度
  • 有充足的研发资源进行优化
  • 处理复杂的多模态或多任务场景

3.3 工程实践考量

> 硬件适配性

GPU内存限制:Transformer的KV-Cache会随序列长度线性增长,而Mamba的状态大小固定。MoE需要将所有专家加载到内存中。

并行化特性:Transformer天然适合GPU并行,Mamba需要特殊的并行扫描算法,MoE需要动态负载平衡。

> 部署与维护

模型压缩:Transformer有成熟的量化和剪枝技术,Mamba对精度更敏感,MoE的稀疏性使压缩更复杂。

在线学习:Transformer支持增量学习,Mamba的状态更新机制天然支持在线场景,MoE需要考虑专家平衡。


四、前沿发展与技术趋势

4.1 架构融合的深度探索

> 多尺度混合设计

最新研究表明,在不同层次和粒度上混合不同架构可能是未来方向:

  • 层级混合:在不同transformer层使用不同的计算机制
  • 块内混合:在单个块内结合注意力和状态空间模型
  • 任务感知路由:根据输入类型动态选择架构组件

> 动态架构调整

自适应计算图技术允许模型根据输入复杂度动态调整使用的计算资源,这代表了从静态架构向动态架构的重大转变。

4.2 新兴架构方向

> 扩散变换器

Diffusion Transformer模型如Mercury Coder将扩散过程应用于语言生成,声称能实现10倍的生成速度提升。

> 递归专家混合

Mixture of Recursion (MoR) 架构通过递归调用专家网络,探索更深层的专业化模式。

> 量子启发架构

虽然还处于早期阶段,但量子计算启发的注意力机制和状态空间模型正在探索中。

4.3 硬件协同进化

> 专用硬件设计

  • Mamba专用芯片:针对状态空间模型的并行扫描优化
  • MoE加速器:支持动态路由和专家切换的硬件
  • 混合架构处理器:能够高效支持多种计算模式的芯片

> 软硬件协同优化

未来的架构设计将更深度地考虑硬件特性,实现算法-硬件的协同进化。


五、实践指导与工具生态

5.1 开发框架与工具链

> Transformer生态

核心框架

  • Transformers (HuggingFace):最完整的预训练模型库
  • DeepSpeed:大规模分布式训练优化
  • FasterTransformer:推理加速库
  • Flash Attention:内存高效的注意力实现

优化工具

  • TensorRT:NVIDIA推理优化
  • ONNX Runtime:跨平台推理加速
  • Quantization Toolkit:模型压缩工具

> Mamba/SSM生态

实现框架

  • state-spaces/mamba:官方PyTorch实现
  • Mamba-minimal:轻量级教学实现
  • Transformers集成:HuggingFace已支持Mamba模型

性能优化

  • Triton内核:自定义CUDA内核实现
  • FlashMamba:内存优化版本
  • vLLM支持:SSM推理服务框架

> MoE专用工具

训练框架

  • FairScale:Meta的MoE训练库
  • Tutel:微软的高效MoE实现
  • Switch Transformer:Google的官方实现

部署服务

  • TensorFlow Serving:支持MoE模型部署
  • Triton Inference Server:NVIDIA推理服务器
  • Ray Serve:分布式MoE服务

5.2 性能调优策略

> Transformer优化

注意力优化

  • Flash Attention 2:减少内存访问
  • Multi-Query Attention:共享Key-Value
  • Sliding Window Attention:限制注意力范围

推理加速

  • KV-Cache优化:压缩和量化
  • Speculative Decoding:投机解码
  • Parallel Sampling:并行采样

> Mamba调优

数值稳定性

  • 使用FP32精度进行状态计算
  • 初始化策略优化
  • 梯度裁剪技术

并行化策略

  • 序列并行:跨设备分割序列
  • 流水线并行:层间并行计算
  • 数据并行:批次间并行

> MoE调优

负载平衡

  • Auxiliary Loss:辅助损失函数
  • Expert Capacity:专家容量限制
  • Switch Routing:开关路由策略

通信优化

  • All-to-All通信优化
  • 专家放置策略
  • 梯度同步优化

六、成本效益分析与商业考量

6.1 训练成本对比

> 计算资源需求

Transformer模型

  • 训练:高GPU内存需求,但框架成熟
  • 优化:丰富的优化技术和工具
  • 人力:技术门槛相对较低

Mamba模型

  • 训练:更高的精度要求,特殊优化需求
  • 优化:需要自定义内核和优化
  • 人力:需要深度系统优化技能

MoE模型

  • 训练:复杂的分布式训练需求
  • 优化:负载平衡和通信优化挑战
  • 人力:需要分布式系统专家

> 推理成本效益

指标TransformerMambaMoE混合架构
吞吐量基准5-10倍提升2-3倍提升3-5倍提升
延迟基准显著降低中等降低中等降低
内存使用中等中等
部署复杂度中等中等

6.2 商业化路径选择

> 企业决策矩阵

初创公司

  • 优先选择:Transformer(成熟生态)
  • 考虑条件:有专门的AI基础设施团队
  • 风险评估:避免过早技术选型风险

中型企业

  • 混合策略:核心任务用Transformer,特定场景试验新架构
  • 投资重点:建立架构评估和迁移能力
  • 技术债务:平衡创新与稳定性

大型企业

  • 全面布局:同时投资多种架构
  • 自研能力:开发专用优化和工具
  • 生态建设:推动开源社区发展

七、学习路径与能力建设

7.1 技能树构建

> 基础理论掌握

数学基础

  • 线性代数:矩阵运算、特征值分解
  • 概率论:贝叶斯推理、信息论
  • 优化理论:梯度下降、约束优化
  • 控制理论:状态空间模型、动态系统

深度学习核心

  • 反向传播算法
  • 注意力机制原理
  • 正则化技术
  • 分布式训练

> 架构专门技能

Transformer专精

  • 多头注意力实现
  • 位置编码变体
  • 预训练-微调范式
  • 提示工程技术

Mamba/SSM专精

  • 状态空间模型数学
  • 硬件优化技术
  • 并行扫描算法
  • 数值稳定性处理

MoE专精

  • 路由机制设计
  • 负载平衡算法
  • 分布式通信优化
  • 专家专业化分析

7.2 实践项目建议

> 入门级项目

  1. Transformer从零实现:理解注意力机制
  2. 简化Mamba实现:掌握状态空间概念
  3. MoE玩具模型:体验专家路由机制

> 进阶级项目

  1. 混合架构实验:对比不同组合效果
  2. 性能优化实践:内核优化、分布式训练
  3. 特定领域适配:针对具体任务的架构调整

> 专家级项目

  1. 新架构设计:创新的架构组合方式
  2. 硬件协同优化:软硬件协同设计
  3. 大规模部署:生产级系统架构

八、风险评估与技术债务管理

8.1 技术风险识别

> 架构选择风险

过早采用风险

  • 新架构生态不够成熟
  • 调试和优化工具缺乏
  • 社区支持有限

技术锁定风险

  • 深度依赖特定架构特性
  • 迁移成本高昂
  • 供应商依赖

性能不确定性

  • 理论优势在实际场景中可能不显著
  • 特定任务的适配性未知
  • 长期维护成本难以预估

> 团队能力风险

技能差距

  • 新架构需要专门知识
  • 调试经验缺乏
  • 优化技能不足

知识传递

  • 关键人员流失风险
  • 文档和知识管理
  • 团队培训成本

8.2 技术债务管理策略

> 渐进式迁移

分阶段实施

  • 非关键模块先行试验
  • 建立性能基准和对比
  • 逐步扩大应用范围

双轨制运行

  • 新旧架构并行维护
  • 灰度发布和回退机制
  • 风险隔离和控制

投资组合方法

  • 在不同项目中试验不同架构
  • 建立架构选择决策流程
  • 积累多样化经验

九、未来展望与战略思考

9.1 技术演进趋势

> 架构统一化趋势

计算原语抽象

  • 注意力、状态更新、专家路由的统一抽象
  • 可组合的架构构建块
  • 自动架构搜索技术

硬件架构协同

  • 专用AI芯片的普及
  • 软硬件协同设计
  • 异构计算的深度集成

> 智能化架构设计

自适应架构

  • 根据任务自动调整架构
  • 动态计算图和资源分配
  • 在线架构优化

神经架构搜索

  • 自动发现新的架构组合
  • 多目标优化(性能、效率、成本)
  • 持续学习和改进

9.2 产业生态演进

> 开源生态发展

标准化趋势

  • 架构描述的标准化
  • 互操作性协议
  • 性能评估基准

工具链成熟

  • 一体化开发平台
  • 自动化优化工具
  • 云原生部署方案

> 商业模式创新

架构即服务

  • 专门的架构优化服务
  • 性能调优咨询
  • 定制架构设计

技术授权

  • 专利和算法授权
  • 硬件-软件打包方案
  • 端到端解决方案

9.3 社会影响与责任

> 计算资源民主化

降低准入门槛

  • 更高效的架构降低硬件需求
  • 开源工具的普及
  • 云服务的平民化

环境影响

  • 降低AI训练和推理的能耗
  • 提高计算效率的社会价值
  • 可持续AI发展

附录:专业术语表

Attention Mechanism(注意力机制):允许模型在处理序列时动态关注不同位置的计算机制,是Transformer的核心组件

Autoregressive(自回归):模型生成序列时每一步都基于之前生成的内容,如GPT系列模型的生成方式

Bidirectional(双向):模型能够同时利用序列中某位置前后的上下文信息,如BERT的训练方式

Causally Masked(因果掩码):在注意力计算中阻止模型看到未来位置的信息,确保生成的自回归特性

Encoder-Decoder(编码器-解码器):Transformer的原始架构,编码器处理输入序列,解码器生成输出序列

Expert(专家):MoE架构中的专门子网络,通常是前馈神经网络,负责处理特定类型的输入

Gating Network(门控网络):MoE中决定哪些专家被激活的路由组件,也称为Router

Hardware-Aware(硬件感知):在算法设计时考虑特定硬件特性以优化性能的方法

KV-Cache(键值缓存):Transformer推理时缓存键值对以避免重复计算的优化技术

Linear Complexity(线性复杂度):算法复杂度随输入大小线性增长,相对于Transformer的二次复杂度更高效

Mixture of Experts (MoE):包含多个专家子网络的架构,通过稀疏激活实现参数扩展

Multi-Head Attention(多头注意力):并行运行多个注意力函数,让模型关注不同类型的信息

Parallel Scan(并行扫描):Mamba中用于高效计算状态序列的并行算法

Quadratic Complexity(二次复杂度):Transformer注意力机制的计算复杂度,随序列长度平方增长

Recurrent(循环):像RNN一样按时间步骤依次处理序列的计算方式

Router(路由器):MoE中的组件,决定将输入分配给哪些专家处理

Selective SSM(选择性状态空间模型):Mamba的核心创新,允许模型参数根据输入动态调整

Self-Attention(自注意力):序列中每个位置都能直接关注到其他所有位置的注意力机制

Sparse Activation(稀疏激活):只激活模型参数的一个子集,如MoE中只激活部分专家

State Space Model (SSM):基于控制理论的序列建模方法,通过维护固定大小的状态来处理序列

Top-k Routing(Top-k路由):MoE中选择得分最高的k个专家的路由策略

Transformer:基于注意力机制的神经网络架构,目前大多数LLM的基础架构

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

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

相关文章

画世界笔刷合集(2000 + 款):含宫崎骏森系、鸭风人像、国潮等多风格 + 视频导入教程

预览&#xff1a; https://blog.csdn.net/2501_93092597/article/details/151330089?spm1011.2415.3001.5331 想在画世界创作却缺适配笔刷&#xff1f;手动绘制森系元素、人像细节耗时久&#xff0c;导入笔刷总失败&#xff0c;找配套背景 / 配色还得跨平台搜索&#xff1f;这…

03-Redis 安装指南:从版本选择到多系统部署(Windows+macOS+Linux)

目录引言一、安装 Redis 前必须明确的核心问题二、Redis 版本选择&#xff1a;稳定版 vs 开发版&#xff0c;该怎么选&#xff1f;2.1 版本规则&#xff1a;看 “次版本号” 辨稳定性2.2 稳定版与开发版核心差异2.3 版本选择建议三、多系统安装教程&#xff1a;step-by-step 实…

普通MYSQL数据库是怎么做sum操作的

MySQL 的 SUM()操作实现是一个结合​​执行引擎优化、存储结构利用和分组算法​​的高效过程。以下是其核心实现机制和优化策略&#xff1a;​​1. 执行流程概览​​以查询为例&#xff1a;SELECT department, SUM(salary) FROM employees GROUP BY department;​​执行步骤​​…

Claude-Flow AI协同开发:基础入门之 AI编排

1.1 引言&#xff1a;超越“代码生成器”的革命 在AI辅助开发的浪潮中&#xff0c;我们已经习惯了代码补全、函数生成等“代码生成器”工具。它们极大地提升了我们的编码效率&#xff0c;但通常仅限于解决孤立、单一的问题。当面对一个完整的项目或一个复杂的功能模块时&#x…

Linux中下载安装部署Redis7.4.5——并设置用户名、密码及其授权的保姆级教程

一、环境准备 环境准备 序号 说明 1 使⽤RHEL9或Almalinux9.1及其更高版本系统 #查看系统信息 cat /etc/os-release 2 Linux中需要Redis源码编译所需的gcc依赖 #1-检查是否已

健康度——设备健康续航条

在故障诊断与健康管理&#xff08;PHM&#xff09;领域和寿命预测领域中&#xff0c;健康度&#xff08;Health Index, HI&#xff09;是一个至关重要的概念&#xff0c;它旨在量化设备或系统的当前健康状态&#xff0c;并为预测其剩余使用寿命&#xff08;Remaining Useful Li…

【Python - 类库 - BeautifulSoup】(02)使用“BeautifulSoup“按类名获取内容

使用BeautifulSoup按类名获取内容 在本文中&#xff0c;我们将介绍如何使用BeautifulSoup按类名获取内容的方法。BeautifulSoup是一个用于解析HTML和XML文档的Python库。它可以方便地遍历和搜索文档树&#xff0c;使得我们能够轻松地提取想要的信息。 安装BeautifulSoup 首先&a…

36.Java序列化与反序列化是什么

36.Java序列化与反序列化是什么 序列化就是把Java对象转换成字节流&#xff08;二进制&#xff09;。 把对象保存到本地文件或网络传输。因为Java对象在JVM的堆内存中&#xff0c;JVM堆不存在了&#xff0c;对象也就不在了。 反序列化就是把字节流转换为对象 从文件或者网络里获…

c#泛型公共类示例

在C#中&#xff0c;泛型类是一种可以操作多种数据类型的类。这使得你可以编写更灵活、可重用的代码。泛型类通过在类名后使用尖括号<>和类型参数来定义。类型参数可以是具体的类型&#xff0c;如int或string&#xff0c;也可以是其他泛型类型&#xff0c;甚至是其他泛型类…

深入理解算法效率——时间和空间复杂度详解

目录 一、引言&#xff1a;为什么我们需要分析算法效率&#xff1f; 二、算法效率的维度 2.1 时间复杂度&#xff08;Time Complexity&#xff09; 2.2 空间复杂度&#xff08;Space Complexity&#xff09; 三、深入理解算法时间复杂度 3.1 时间复杂度的基础概念 3.2 大…

排序---冒泡排序(Bubble Sort)

一、算法核心概念 冒泡排序是一种简单的交换排序算法&#xff0c;其核心思想是&#xff1a;通过重复遍历待排序数组&#xff0c;每次比较相邻的两个元素&#xff0c;若它们的顺序错误&#xff08;如升序排序中前一个元素大于后一个&#xff09;&#xff0c;则交换它们的位置。经…

MCP(模型上下文协议)入门教程

MCP&#xff08;模型上下文协议&#xff09;入门教程&#xff1a;连接AI与外部世界的万能插座 1 MCP是什么&#xff1f; 1.1 基本概念 MCP&#xff08;Model Context Protocol&#xff0c;模型上下文协议&#xff09;是一个开放协议&#xff0c;专门用于AI模型与外部数据源和…

GO开发遇到的报错问题合集

本文将记录平时在go开发中遇到的一些错误信息&#xff0c;踩过的坑&#xff0c;并分析原因及提供解决方法&#xff0c;持续更新中...1、grpc 接口请求报错&#xff1a;Error: 13 INTERNAL: Response message parsing error: invalid wire type 7 at offset 316原因&#xff1a;…

Node.js 做 Web 后端优势为什么这么大?

Node.js自诞生以来&#xff0c;一步步演变变为现代Web后端开发的基石之一。无论是初创公司快速构建原型&#xff0c;还是大型企业支撑高并发业务&#xff0c;好像它哪儿哪儿都在&#xff0c;甚至还有人觉得它威胁到了PHP的地位。 那为什么Node.js 做 Web 后端优势那么大&#x…

JAVA:IO流之字节输入流InputStream基础

我们知道&#xff0c;文件是写在磁盘中的&#xff0c;而程序的运行又要借助于内存。那么怎么实现内存和磁盘的“互动”呢&#xff1f;这就要借助“流”来实现了。内存具体指的就是我们的java程序&#xff0c;而磁盘具体指的是我们的文件。从磁盘到内存叫输入&#xff0c;从内存…

23种设计模式——桥接模式 (Bridge Pattern)详解

✅作者简介&#xff1a;大家好&#xff0c;我是 Meteors., 向往着更加简洁高效的代码写法与编程方式&#xff0c;持续分享Java技术内容。 &#x1f34e;个人主页&#xff1a;Meteors.的博客 &#x1f49e;当前专栏&#xff1a;设计模式 ✨特色专栏&#xff1a;知识分享 &#x…

Python爬虫实战:研究Axes Grid模块,构建旅游平台酒店数据采集和分析系统

1. 引言 1.1 研究背景 随着互联网技术的飞速发展,全球数据总量呈现指数级增长。据国际数据公司(IDC)预测,到 2025 年全球数据圈将达到 175ZB,其中非结构化数据占比超过 80%。这些数据广泛分布于各类网站平台,包含着用户行为、市场趋势、产品特征等丰富信息。如何高效获…

光照边疆平台|面向边疆地区的现代化内容与信息服务系统

光照边疆平台&#xff5c;面向边疆地区的现代化内容与信息服务系统聚焦“边疆资讯 边疆风光 用户互动 后台可视化管控”的高颜值内容平台&#xff0c;适合展示、传播与运营边疆主题内容。系统定位与价值 主题聚焦&#xff1a;以“边疆”为核心&#xff0c;统一内容语义与视觉…

删除元素(不是删除而是覆盖)快慢指针 慢指针是覆盖位置,快指针找元素

&#x1f4dd; 题目&#xff1a;移除元素题目描述&#xff1a; 给定数组和值val&#xff0c;原地移除所有等于val的元素&#xff0c;返回新长度。例子&#xff1a; nums [3,2,2,3], val 3 → nums [2,2,_,_], return 2&#x1f525; 暴力法思路&#xff1a;暴力法想法&#…

10 【C++】泛型编程

文章目录前言泛型编程&#xff08;模板&#xff09;1. 函数模板1.1 函数模板格式1.2 函数模板的实例化隐式实例化显式指定模板参数实例化1.3 函数模板实例化的原理1.4 模板参数的匹配原则2. 类模板2.1 类模板的格式2.2 类模板的实例化2.3 类模板实例化的原理2.4 类模板的匹配原…