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

【LLM系列】1.大模型简介

1. 基础

1.1 如何权衡模型的复杂度和性能?

├── a. 模型架构选择
│ ├── 简化架构
│ │ └── 选择较小的网络层数和宽度,降低复杂度;
│ │ 可使用高性能基础模型如 Transformers 作为起点,根据需求缩放模型。
│ └── 剪枝与量化
│ └── 通过剪枝去除不重要参数、量化降低精度,在不显著影响性能的前提下降低复杂度。

├── b. 正则化技术
│ └── 使用 L1/L2 正则化、Dropout、数据增强等手段控制过拟合,
│ 在模型复杂度较低时仍保持良好泛化能力。

├── c. 超参数优化
│ └── 使用网格搜索、随机搜索等方法优化学习率、批量大小、优化器等超参数,
│ 以提升训练效果和模型性能。

├── d. 模型蒸馏
│ └── 利用大模型训练出小模型,让小模型学习大模型的知识,
│ 实现“以小博大”的性能提升。

└── e. 数据集规模与质量
└── 高质量的数据和足够的数据量可以提高模型表现,
进而允许使用更简单的模型结构来达到较高性能。

1.2 大模型的 Scaling Law(扩展法则)

├── 定义:
│ └── 一种基于实验总结的经验规律,
│ 用于指导模型规模、数据量和计算量的合理配置。

├── 作用:
│ └── 在有限计算资源下,
│ 找到性能最优的模型规模与数据量组合。

├── 关键内容:
│ ├── 1. 模型规模与性能
│ │ └── 随着参数数量增加,模型性能通常提升,
│ │ 更大的模型能学习更复杂的数据特征。
│ │
│ ├── 2. 数据量与性能
│ │ └── 提供更多训练数据通常能提升模型性能,
│ │ 对小模型来说影响尤为显著。
│ │
│ ├── 3. 计算资源与性能
│ │ └── 投入更多计算资源(计算能力、训练时间),
│ │ 通常带来更好的模型性能。
│ │
│ └── 4. 表现的规律性
│ └── 性能提升常呈现幂律关系:
│ 如损失随参数数量、数据量呈幂函数下降,
│ 而非线性关系。
在这里插入图片描述

1.3 简述大模型,与传统模型的区别

├── 简介
│ ├── Qwen(大模型):
│ │ └── 追求通用性与生成能力,依赖海量数据和算力,适用于复杂开放任务
│ └── BERT(小模型):
│ └── 面向特定任务高效微调,资源友好,擅长结构化理解任务

├── 与传统模型的主要区别
│ ├── 1. 模型规模:
│ │ └── 大模型参数量远超传统模型,结构更复杂
│ ├── 2. 数据需求:
│ │ └── 大模型需要大量训练数据以避免过拟合,传统模型数据需求小
│ ├── 3. 表现能力:
│ │ └── 大模型具有更强的泛化与表现力,适合复杂任务
│ ├── 4. 计算资源:
│ │ └── 大模型需大量计算资源与训练时间,传统模型计算成本低
│ └── 5. 迁移学习:
│ └── 大模型可高效微调迁移,小模型通常需为任务重新训练

├── 1. 背景维度对比
│ ├── 提出时间:Qwen (2023) vs BERT (2018)
│ ├── 背景目标:
│ │ └── Qwen:生成、推理、多模态等通用任务
│ │ └── BERT:自然语言理解任务(分类、NER等)
│ └── 技术趋势:
│ └── Qwen:参数爆炸、追求零样本能力
│ └── BERT:预训练 + 微调范式,Transformer 早期应用

├── 2. 创新点对比
│ ├── 核心技术:
│ │ └── Qwen:千亿参数、多模态输入
│ │ └── BERT:双向 Transformer,MLM
│ ├── 训练方法:
│ │ └── Qwen:稀疏注意力、混合精度、分布式优化
│ │ └── BERT:掩码语言模型(MLM)+ 下一句预测(NSP)
│ └── 应用扩展:
│ └── Qwen:零/少样本、多轮对话、代码生成
│ └── BERT:长依赖建模、下游微调

├── 3. 训练数据对比
│ ├── 数据规模:
│ │ └── Qwen:数十 TB(多语言、多模态)
│ │ └── BERT:数十 GB(英文文本为主)
│ ├── 数据多样性:
│ │ └── Qwen:文本 + 结构化数据
│ │ └── BERT:英文文本,单语言
│ └── 数据清洗:
│ └── Qwen:复杂质量过滤、多语言对齐
│ └── BERT:规则式清洗

├── 4. 模型结构对比
│ ├── 参数量:
│ │ └── Qwen:千亿级(如 Qwen-72B)
│ │ └── BERT:亿级(BERT-base: 110M)
│ ├── 层数:
│ │ └── Qwen:80+ 层
│ │ └── BERT:12 层
│ ├── 注意力机制:
│ │ └── Qwen:稀疏注意力
│ │ └── BERT:标准多头注意力(12头)
│ └── 结构设计:
│ └── Qwen:Decoder-Only(自回归)
│ └── BERT:Encoder-Only(双向上下文)

├── 5. 训练方法对比
│ ├── 预训练方式:
│ │ └── Qwen:大规模分布式(千卡)
│ │ └── BERT:单机多卡(TPU/GPU)
│ ├── 训练目标:
│ │ └── Qwen:自回归预测下一个词
│ │ └── BERT:掩码语言模型(MLM)+ 下一句预测(NSP)
│ ├── 微调方式:
│ │ └── Qwen:无需微调,通过 Prompt 使用
│ │ └── BERT:必须微调适配任务
│ └── 资源消耗:
│ └── Qwen:百万美元级算力
│ └── BERT:千美元级算力

├── 6. 优缺点对比
│ ├── Qwen 优点:
│ │ └── 通用性强、零样本、多任务支持
│ ├── Qwen 缺点:
│ │ └── 成本高、幻觉风险、可控性差
│ ├── BERT 优点:
│ │ └── 高效轻量、易部署、资源友好
│ └── BERT 缺点:
│ └── 生成能力弱、任务局限、泛化差

└── 7. 应用场景对比
├── Qwen:
│ └── 场景:智能对话、代码生成、创作辅助
│ └── 领域:问答系统、教育、多模态交互
│ └── 适用对象:大型企业、云服务提供商
└── BERT:
└── 场景:分类、NER、语义相似度计算
└── 领域:搜索、推荐、金融风控
└── 适用对象:中小企业、科研用户

1.4 实际业务场景:使用 LLM 还是小模型?

├── 一、总体判断思路
│ └── 模型选择需综合考虑:
│ ├── 业务复杂度
│ ├── 数据规模
│ ├── 算力与预算
│ ├── 技术团队能力
│ └── 系统可扩展性

├── 二、大模型 vs 小模型对比

│ ├── 1. 大模型(如 Qwen)优势:
│ │ ├── 强泛化能力:处理复杂用户行为、非线性关系
│ │ ├── 并行处理能力强:适用于大规模、实时请求
│ │ ├── 深度特征学习:自动提取高阶特征,无需人工特工
│ │ └── 持续在线学习:实时优化,动态适应用户行为
│ │
│ ├── 2. 大模型劣势:
│ │ ├── 高资源消耗:对算力和存储需求高
│ │ ├── 架构复杂:运维成本高,需专业团队
│ │ ├── 可解释性差:为“黑盒”,难以输出推荐依据
│ │ └── 有过拟合风险:小数据场景下表现不稳
│ │
│ ├── 3. 多个小模型优势:
│ │ ├── 高资源效率:可在本地、边缘设备部署
│ │ ├── 灵活性强:支持按人群/场景定制化建模
│ │ ├── 易维护:可单独更新、替换,迭代快
│ │ ├── 高可解释性:推荐逻辑清晰、透明
│ │ └── 容错性强:部分模型出错不会影响整体系统
│ │
│ └── 4. 多个小模型劣势:
│ ├── 分布式协调成本高:统一管理和部署复杂
│ ├── 表达能力有限:处理复杂关系效果不如大模型
│ ├── 模型一致性挑战:协同逻辑难统一
│ └── 多模型训练耗时大:需分别调优与测试

├── 三、业务场景模型选择建议

│ ├── 1. 适合使用大模型的场景:
│ │ ├── 推荐逻辑复杂:如涉及多行为融合、高阶特征
│ │ ├── 实时大规模数据处理:如亿级用户、海量内容
│ │ └── 深度个性化推荐:如长文本生成、对话推荐
│ │
│ ├── 2. 适合使用多个小模型的场景:
│ │ ├── 细粒度差异化推荐:如不同地域、用户群、品类
│ │ ├── 资源受限部署:如边缘端、本地服务器
│ │ ├── 快速试错与更新:如敏捷产品迭代
│ │ └── 需高透明度:如政策监管、金融、医疗
│ │
│ └── 3. 混合部署策略:
│ ├── 大模型用于全局建模与特征抽取
│ ├── 小模型负责具体业务模块细化推荐
│ └── 兼顾性能 + 灵活性,是常见最佳实践

├── 四、模型选择的指导因素

│ ├── 1. 业务需求导向:
│ │ ├── 若追求高精度、高复杂度 → 大模型优先
│ │ └── 若需求灵活、响应迅速、可解释性强 → 小模型优先

│ ├── 2. 算力与预算约束:
│ │ ├── 有 GPU 集群/预算充足 → 支持大模型部署
│ │ └── 算力有限 → 多小模型更划算

│ ├── 3. 团队技术能力:
│ │ ├── 有大模型训练和运维经验 → 可支持大模型上线
│ │ └── 技术能力有限 → 小模型可快速落地

│ ├── 4. 系统扩展性与灵活性:
│ │ ├── 需快速扩展、组件可替换 → 小模型易模块化部署
│ │ └── 统一架构管理,追求极致性能 → 可集中大模型部署

│ ├── 5. 可解释性要求:
│ │ └── 有合规要求或需用户信任的业务 → 小模型占优

│ └── 6. 模型维护与更新频率:
│ ├── 高频迭代业务 → 小模型维护效率高
│ └── 低频更新场景 → 大模型稳定性更强

1.5 “零样本”和“少样本”学习

├── 一、基本定义

│ ├── 零样本学习(Zero-Shot Learning)
│ │ └── 模型在训练中从未见过目标任务/类别,也能正确识别与推理。
│ │
│ └── 少样本学习(Few-Shot Learning)
│ └── 模型仅在极少量示例支持下完成学习与推理任务。

├── 二、零样本学习详解

│ ├── 核心能力
│ │ ├── 强泛化能力
│ │ ├── 上下文理解能力
│ │ └── 概念关系推理能力
│ │
│ ├── 示例
│ │ └── ChatGPT 未接受过某类问题训练,但仍能回答新技术/新事件问题。
│ │
│ └── 实现基础
│ └── 基于大规模预训练模型 + 广泛知识学习 + 语言模式抽象能力

├── 三、少样本学习详解

│ ├── 场景特点
│ │ └── 每个类别仅提供少量样本,模型需快速学习并进行预测。
│ │
│ ├── 示例
│ │ └── 用户在提示中给出 2~3 个例子,模型学会如何生成对应输出。
│ │
│ ├── 主要技术路径
│ │ ├── 1. 数据增强(Data Augmentation)
│ │ │ └── 合成或变换样本,扩充训练数据。
│ │ ├── 2. 迁移学习(Transfer Learning)
│ │ │ └── 使用预训练模型参数,快速适配新任务。
│ │ └── 3. 原型网络(Prototypical Networks)
│ │ └── 基于类别原型计算样本距离进行分类。
│ │
│ └── 应用说明
│ └── ChatGPT 可通过少量对话示例(Prompt)进行任务适配和执行。

├── 四、对比总结

│ ├── 零样本学习:
│ │ └── 不依赖任何任务特定数据,完全靠已有知识推理。
│ └── 少样本学习:
│ └── 依赖极少量任务样本,需快速抽象出规律。

└── 五、应用价值(在 LLM 中的体现)
├── 提高模型灵活性与泛化能力
├── 降低标注数据依赖
├── 支持快速任务切换与指令理解
└── 支持Prompt Engineering、类任务式对话设计

1.6 大模型的涌现能力(Emergent Abilities)

├── 一、定义
│ └── 指大型预训练模型在特定输入下,表现出超出其原始训练目标或设计预期的复杂行为。
│ └── 这些能力通常是自发出现的,并非显式编码或人为指定。

├── 二、关键特性与表现

│ ├── a. 规模依赖性
│ │ └── 随着模型参数量和训练数据规模的增加,模型能力提升;
│ │ 在规模达到某一“临界点”后,开始展现新能力。

│ ├── b. 复杂任务处理
│ │ └── 能处理逻辑推理、编程、复杂对话等未直接训练过的任务;
│ │ 如 LLM 能生成代码、写论文、推理结论等。

│ ├── c. 少样本学习能力
│ │ └── 在只有少量示例的前提下,快速学习新任务;
│ │ 通过上下文和提示理解新任务而无需重训练。

│ ├── d. 行为多样性与适应性
│ │ └── 相同模型在不同任务/语境下表现出不同能力;
│ │ 能根据用户上下文动态调整行为。

│ └── e. 研究与应用价值
│ ├── 成为 AI 研究的热点方向;
│ ├── 被广泛用于自然语言处理、代码生成、多模态交互等;
│ └── 挖掘与引导“潜在能力”成为关键研究目标。

1.7 大模型迁移学习(Transfer Learning)

├── 一、定义
│ └── 将源领域中学到的知识迁移到目标领域中的技术;
│ 利用已有模型参数,减少目标任务对大数据和训练时间的依赖。

├── 二、应用场景
│ └── 数据不足或训练成本高时使用;
│ 通过已有模型进行微调,提高效率与性能。

├── 三、大模型中的迁移学习范式

│ ├── 1. 预训练(Pre-training)
│ │ ├── 在大规模通用语料(如互联网文本)上训练;
│ │ └── 获得具备广泛语言理解能力的通用模型。
│ │
│ ├── 2. 微调(Fine-tuning)
│ │ ├── 在特定任务的小数据集上进一步训练;
│ │ └── 使预训练模型适配具体任务。
│ │
│ └── 说明:
│ ├── 预训练需海量数据和高昂成本;
│ ├── 通常不从零训练;
│ └── 使用公开预训练模型 + 微调 → 成为主流做法。

├── 四、优点总结

│ ├── 1. 节省计算资源
│ │ └── 避免从头训练,节约训练时间与算力成本。

│ ├── 2. 降低数据需求
│ │ └── 即使目标任务样本少,也能取得好效果。

│ └── 3. 适应性强
│ └── 快速适配新任务、新领域,灵活性好。

1.8 文本输入到大模型的全过程(以 Transformer 架构文本摘要为例)

文本输入全过程
├── 1. 输入文本预处理
│ ├── 分词:将长句拆分为词/子词/Token
│ └── 清洗:去除标点、停用词等无效信息

├── 2. 向量化处理
│ └── 使用词嵌入模型(如 Word2Vec、BERT Embedding)
│ 将每个词/Token 转换为对应的向量表示

├── 3. 模型输入层
│ └── 将序列化向量输入至 Transformer 的第 1 层
│ 启动编码过程

├── 4. 模型主体处理(Transformer 编码器/解码器)
│ ├── 自注意力机制:
│ │ └── 学习词与词之间的依赖关系(支持长距离建模)
│ ├── 前馈神经网络:
│ │ └── 提供非线性变换能力
│ └── 残差连接 & LayerNorm:
│ └── 防止梯度消失,稳定训练

├── 5. 输出层处理
│ └── 输出潜在表示 → Softmax → 概率分布
│ (预测下一个最可能的词)

├── 6. 文本生成与后处理
│ ├── 词生成:
│ │ └── 根据概率选择 Token(如贪心/采样/Beam Search)
│ └── 后处理:
│ ├── 拼接句子、消除冗余
│ └── 语义优化,确保摘要自然流畅

└── 7. 性能监控与优化
├── 硬件监控:
│ └── 实时监测 GPU / CPU / 显存 使用率
└── 模型优化:
└── 微调参数、改进推理速度、提升摘要质量

2. Encoder-only & Decoder-only & Encoder-Decoder

2.1 架构类型总览

├── Encoder-Only
│ ├── 用途:理解任务(文本分类、问答、信息抽取)
│ ├── 注意力方向:双向
│ ├── 代表模型:BERT、RoBERTa
│ ├── 训练目标:MLM(掩码语言建模)、NSP
│ ├── 优点:语义理解强
│ └── 缺点:不适合生成任务

├── Decoder-Only
│ ├── 用途:生成任务(文本生成、对话、续写)
│ ├── 注意力方向:单向(因果掩码)
│ ├── 代表模型:GPT-3、LLaMA、PaLM
│ ├── 训练目标:因果语言建模
│ ├── 优点:生成流畅,Few-shot能力强
│ └── 缺点:上下文单向,可能偏离主题

└── Encoder-Decoder
├── 用途:输入-输出映射任务(翻译、摘要)
├── 注意力方向:编码器双向,解码器单向
├── 代表模型:T5、BART、原始Transformer
├── 训练目标:去噪建模、序列转换
├── 优点:处理输入/输出异构结构
└── 缺点:资源消耗大,训练复杂

───────────────────────────────

2.2 Encoder-Only 架构详解
├── 特点:仅使用编码器,对输入文本进行上下文建模
├── 典型模型:
│ ├── BERT:首个双向预训练模型,通过掩码语言建模(MLM)学习上下文表征。
│ ├── RoBERTa:BERT 的优化版,更大数据量、更长训练步长。
│ └── ALBERT:参数共享减少计算量,适合资源受限场景。
└── 应用场景:
├── 文本分类:根据输⼊的⽂本进⾏分类(如情感分析、新闻分类)。
├── 抽取式问答:通过输⼊问题和上下⽂,模型从上下⽂中抽取出准确的答案。
└── 命名实体识别(NER):标注⽂本中的特定实体(如⼈名、地名等)。

2.3 Decoder-Only 架构详解
├── 特点:仅使用解码器,自回归式地逐词生成文本
├── 典型模型:
│ ├── GPT-3 / GPT-4:通过海量数据预训练,Few-Shot 学习能力强
│ ├── PaLM:谷歌大规模模型,强调推理和代码生成能力。
│ └── LLaMA:Meta 开源模型,参数量高效。
└── 应用场景:
├── 文本生成:根据提⽰⽣成⼀段连贯的⽂本(如对话⽣成、⾃动写作)。
├── 对话系统:逐步⽣成⾃然语⾔响应,回答⽤户提问。
└── 翻译(逐词生成类):逐词⽣成⽬标语⾔的翻译结果。

2.4 Encoder-Decoder 架构详解
├── 特点:编码器处理输入 → 解码器生成输出
├── 典型模型:
│ ├── T5:将任务统一为文本到文本格式,适用翻译、摘要等。
│ ├── BART:结合双向编码器与自回归解码器,擅长文本重构任务。
│ └── Transformer:首个完全基于注意力的机器翻译模型。
└── 应用场景:
├── 机器翻译:将⼀个句⼦从源语⾔翻译成⽬标语⾔,编码器负责理解源语⾔句⼦,解码器负责⽣成⽬标语⾔句⼦。
├── 文本摘要:编码器处理⻓⽂本,解码器⽣成简短摘要。
└── 条件生成任务(如自动问答):如⽂本填空或根据输⼊⽣成对应的完整⽂本。

───────────────────────────────

2.5 主要区别总结

├── Encoder-Only:语义理解任务
├── Decoder-Only:文本生成任务
└── Encoder-Decoder:输入映射输出任务

2.6 为什么大模型偏好 Decoder-Only?

├── 1. 架构更简单:省去双结构,只聚焦生成
├── 2. 自回归机制:适合逐步生成文本
├── 3. 输入灵活性:适配任意 prompt,条件控制自由
├── 4. 大规模预训练:学习丰富语言知识,可迁移微调
└── 5. 长文本处理佳:可保持上下文连贯性

3.LLM模型

3.1 Gemma-3 模型

Gemma-3(第三代谷歌开源大模型)
├── 一、背景简介
│ ├── 来自谷歌,发布于“巴黎开发者日”
│ ├── 是 Gemma 系列第三代,支持图文多模态(文字+图像)
│ └── 最重要亮点:1块GPU/TPU 就能运行(对普通开发者更友好)

├── 二、核心参数规格(共4个版本)
│ ├── 1B:轻量模型,适合手机、小设备
│ ├── 4B:适合一般任务,轻量高效
│ ├── 12B:能力较强,支持复杂任务
│ └── 27B:旗舰模型,精度最强,能和Llama、GPT对比

├── 三、关键创新点(重点)
│ ├── ✅ 单设备运行强:跑得快,还省资源
│ ├── ✅ 多语言支持:支持140种语言
│ ├── ✅ 支持图文视频理解:不仅能读文字,还能“看图”
│ ├── ✅ 超长记忆力:一次处理 128K token 的超长文本(上下文窗口大)
│ ├── ✅ 函数调用支持:适合做 AI 助手和自动化
│ └── ✅ 量化优化:官方提供小模型版本,压缩后仍保持高精度

├── 四、训练数据规模(模型越大,训练数据越多)
│ ├── 1B → 使用 2 万亿 token 训练
│ ├── 4B → 使用 4T token
│ ├── 12B → 使用 12T token
│ └── 27B → 使用 14T token(T = 万亿)

├── 五、模型结构说明

│ ├── 1. 主体架构(语言模型 LLM)
│ │ ├── 解码器 Transformer 架构(同 GPT 类)
│ │ ├── 技术点:
│ │ │ ├── GQA(分组查询注意力)→ 更高效的注意力机制
│ │ │ ├── RMSNorm 归一化(提升稳定性)
│ │ │ ├── 局部+全局注意力交替排列(5层局部+1层全局)
│ │ │ ├── RoPE 频率提高到 1M(更好处理长文本)
│ │ │ └── 位置插值技术 → 保证对长文本理解效果

│ └── 2. 多模态部分(视觉编码器)
│ ├── 使用 SigLIP(一个视觉Transformer)
│ ├── 支持图片 896x896 像素输入
│ └── 能处理图像识别、图文理解任务(如识别图中元素)

├── 六、训练方法(模型如何“学会”的)
│ ├── Pre-train + Post-train 两阶段训练
│ ├── 核心训练技巧:
│ │ ├── 模型蒸馏:学“大模型”的知识
│ │ ├── 强化学习调优(提升理解、遵循指令能力)
│ │ └── 三种 RL 技术:
│ │ ├── RLHF:基于人类反馈训练
│ │ ├── RLMF:增强数学能力
│ │ └── RLEF:增强编程能力

├── 七、评估效果(表现好不好)
│ ├── 测试平台:Chatbot Arena(模型排行榜)
│ ├── 结果:
│ │ ├── Gemma-3 27B 超过 LLaMA-3-70B、DeepSeek-V3 等主流模型
│ │ └── 在数学、代码、对话能力等任务上均表现优秀
│ └── 特别说明:27B 模型只用单 GPU 就能跑 → 非常实用

3.2 DeepSeek 系列

├── 3.2.1 DeepSeek-V3(超大模型、智能强)

│ ├── 📌 简介
│ │ ├── 671B 超大参数量 → 意味着“超级聪明”
│ │ ├── 每个 token 激活 37B 参数 → MoE 架构(部分专家工作)
│ │ └── 属于最强开源大模型之一(性能强但运行高效)

│ ├── 📌 核心技术亮点
│ │ ├── ① MLA:多头潜在注意力(Multi-head Latent Attention)
│ │ │ └── 优化注意力机制,减少显存占用但保持效果
│ │ ├── ② DeepSeekMoE 架构(混合专家)
│ │ │ └── 每次预测只用少数专家 → 省算力
│ │ ├── ③ 无辅助损失的负载均衡(Free Load Balance)
│ │ │ └── 自动平衡每个专家被使用频率
│ │ └── ④ 多 Token 预测(Multi-token Prediction, MTP)
│ │ └── 一次预测多个词 → 提高推理速度

│ ├── 🔧 MLA 原理(理解优化注意力)
│ │ ├── 1. 把输入压缩为潜在向量(减少KV缓存)
│ │ ├── 2. 用矩阵投影生成压缩版 key/value
│ │ ├── 3. 使用 RoPE 做位置编码
│ │ └── 4. softmax 权重生成注意力输出
│ │ ✅ 优点:显存占用少,速度快,性能保持

│ ├── 🔧 DeepSeekMoE 原理(专家网络)
│ │ ├── 分为共享专家 + 路由专家(让不同专家负责不同内容)
│ │ ├── 使用门控机制激活最合适的专家
│ │ └── 自动平衡:通过调整偏置项,保证专家不被“偏心”使用

│ └── 🔧 MTP 原理(一次预测多个词)
│ ├── 每个位置不只预测一个词,而是多个词
│ ├── 提前生成多个词向量(加快推理)
│ └── 每个模块都有共享层 + Transformer + 投影层

├── 3.2.2 DeepSeek-R1 INT8(轻量部署版)

│ ├── 📌 背景
│ │ ├── 原版使用 FP8 精度 → 只支持高端 GPU(如 Hopper 架构)
│ │ ├── INT8 精度 → 主流 GPU 也能跑(如 A100)
│ │ └── INT8 推理快、显存少、部署更容易

│ ├── 📌 精度基本无损(测试准确率保持住)
│ │ ├── GSM8K:数学任务
│ │ └── MMLU:多领域知识问答

│ ├── 🔧 INT8 量化原理
│ │ ├── 将 FP16 高精度 → 转为 INT8 低精度
│ │ ├── 通过缩放 + 反缩放,尽量减少信息丢失
│ │ └── 优点:占用空间少、计算快

│ ├── ✅ 两种量化方式(实际应用)
│ │
│ │ ├── 1️⃣ 分块量化(Block-wise Quant)
│ │ │ ├── 把矩阵按小块切 → 精度高
│ │ │ └── 推理快 + 精度好(推荐)
│ │
│ │ └── 2️⃣ 通道量化(Channel-wise Quant)
│ │ ├── 把每列为一个通道
│ │ └── 极致加速,但精度略低

│ ├── 🧪 精度评估结果
│ │ ├── INT8 分块量化 ≈ 原始精度
│ │ └── 通道量化 → 略有波动,但仍可用

│ └── 🚀 吞吐测试(推理速度对比)
│ ├── 在 A100 上测试:
│ │ ├── BF16 原始模型 → 基线速度
│ │ ├── INT8(Block) → 提升 33%
│ │ └── INT8(Channel)→ 提升 50%
│ └── ✅ 减少显存,提升速度,适合大规模部署

└── ✅ 小白总结
👉 DeepSeek-V3:超大聪明模型,注意力优化,专家机制聪明分工,生成快。
👉 DeepSeek-R1 INT8:轻量化版本,适合部署在普通显卡上,速度快,精度也很好。

3.3 Baichuan 系列大模型

├── 3.3.1 Baichuan 2(两款主力型号)
│ ├── 版本:
│ │ ├── Baichuan 2-7B(70亿参数)
│ │ └── Baichuan 2-13B(130亿参数)
│ └── 特点:
│ ├── 使用 2.6 万亿 tokens 训练,远超 Baichuan 1
│ └── 在多个基准上性能提升高达 30%

├── 一、训练数据(🔍 基础知识来源)
│ ├── 数据来源:
│ │ ├── 40% 互联网网页
│ │ ├── 30% 图书
│ │ ├── 20% 学术论文
│ │ ├── 5% 代码
│ │ └── 5% 新闻、博客等
│ └── 数据处理:
│ ├── 去重技术:用 LSH(近似哈希)对段落/句子去重
│ └── 清洗 + 打分 → 只留下高质量内容参与训练

├── 二、模型结构(🏗️ 怎么搭的)
│ ├── 1️⃣ 位置编码
│ │ ├── 7B 模型:RoPE(旋转位置编码)
│ │ └── 13B 模型:ALiBi(线性偏移编码)→ 更强 extrapolation
│ ├── 2️⃣ 激活函数
│ │ └── 使用 SwiGLU(带门控机制的激活)→ 学习能力增强
│ ├── 3️⃣ 注意力机制
│ │ └── xFormers 内存优化注意力 → 适配 RoPE/ALiBi 高效训练
│ └── 4️⃣ Normalization 归一化
│ └── 使用 RMSNorm → 更快更稳,代替传统 LayerNorm

├── 三、训练方法(⚙️ 怎么训的)
│ ├── Optimizer:AdamW(带正则化,收敛快)
│ ├── 学习率策略:
│ │ ├── 预热(Warm-up 2000 步)
│ │ └── 余弦退火策略(Cosine Annealing)
│ ├── 精度:BFloat16 混合精度 → 节省内存 & 稳定训练
│ └── 特殊处理:
│ └── 某些计算用 float32 保精度(例如位置嵌入)

├── 四、对齐训练(🧠 奖励+强化)
│ ├── 🎯 奖励模型(Reward Model, RM)
│ │ ├── 设计了 3 层分类系统(200+种用户需求)
│ │ ├── 自己生成回答 → 自己打分(保持一致性)
│ │ └── RM 表现 ≈ LLaMA 2 级别
│ └── 🧠 PPO 强化学习优化
│ ├── actor(生成)+ critic(评估)+ RM(奖励)+ reference(对比)
│ └── 实现对输出质量的精细调控

├── 五、评估表现(📊 实力对比)
│ ├── 数据集:MMLU、GSM8K、AGIEval、C-Eval 等
│ ├── Baichuan 2-7B:
│ │ └── 普遍超越 Baichuan 1、ChatGLM2、MPT、Falcon 等
│ └── Baichuan 2-13B:
│ └── 多项指标优于 LLaMA 2-13B、Alpaca-Plus、XVerse 等

└── ✅ 总结(小白理解核心)
👉 模型训练数据多、干净、覆盖面广
👉 模型结构灵活(RoPE vs ALiBi),兼顾推理速度和效果
👉 支持 RLHF 微调,让回答更靠谱
👉 评估结果稳居国产开源模型第一梯队
👉 7B/13B 参数量适中 → 性能强且可部署(兼顾效果和资源)

3.4 Qwen 系列(通义千问)模型演进逻辑图

└─ Qwen(初代)【基础通用语言模型】
├─ 语言:中英文为主
├─ 架构:标准Transformer + SwiGLU + RoPE位置编码
├─ 特点:自然语言理解和生成能力强,支持基本对话与问答
└─ 演进 →

├─ Qwen1.5(过渡版本)
│   ├─ 上下文长度扩展到 32K
│   ├─ 引入新位置编码机制:NTK-aware RoPE 插值
│   └─ 主要为 Qwen2 做过渡准备
│
├─ Qwen2(第二代通用模型)
│   ├─ 多语言支持拓展:新增27种语言
│   │   └─ 覆盖:东亚、东南亚、欧洲、中东、南亚主流语言
│   ├─ 上下文能力:最长支持128K上下文(训练和推理均支持)
│   ├─ 关键技术:
│   │   ├─ YARN(Yet Another RoPE Extension)扩展位置编码
│   │   └─ DualChunkAttention:分块注意力计算,大幅降低长文本计算开销
│   └─ 应用场景:文档理解、长对话、多语言问答等
│
└─ Qwen2.5(第三代核心大模型)├─ 模型规模覆盖:0.5B、1.5B、3B、7B、14B、32B、72B├─ 预训练数据:│   ├─ Token总量:18T(大幅提升)│   ├─ 内容分布优化:知识、代码、数学为重点,社交/娱乐等领域降采样│   └─ 质量保障:使用 Qwen2-Instruct 做过滤评分├─ 上下文长度升级:│   ├─ 通用模型:最高128K│   └─ Turbo模型:支持最高1M tokens(YARN + 双块注意力 + ABF扩频)├─ 后训练阶段:│   ├─ SFT:两阶段微调(短32K + 长256K混合)│   ├─ DPO/GRPO:强化偏好与群体对齐│   └─ RLHF:分为离线RL(推理/执行)+ 在线RL(真实/有用/安全等维度)├─ 结构化输出能力:强化对 JSON、表格、长指令结构理解与生成└─ 衍生子模型(专精方向):│├─ Qwen2.5-Omni【全模态模型】│   ├─ 模态支持:文字 + 图像 + 音频 + 视频(输入)│   ├─ 输出形式:文本 + 实时语音│   ├─ 创新架构:│   │   ├─ Thinker-Talker:理解与表达解耦并并行│   │   └─ TMRoPE:时间对齐多模态位置编码(对齐视听模态)│   ├─ 场景应用:AI 语音助手、多模态对话、虚拟主播、音视频问答│   └─ 特点:边输入边输出、语音稳定自然│├─ Qwen-QwQ【自问自答推理模型】│   ├─ 全称:Qwen-with-Questions│   ├─ 技术突破:│   │   ├─ Structured Self-Questioning(结构化自我提问)│   │   └─ 两阶段强化学习(数学+编程 → 通用能力)│   ├─ Agent能力:动态调整推理路径,支持多轮规划│   └─ 应用场景:数学题推理、复杂指令链、AI agent规划执行│├─ Qwen2.5-Math【数学专用模型】│   ├─ 训练数据:│   │   ├─ 公开数据集 + 合成题(含解析) + 多语言数学题│   │   └─ 加入 CoT(Chain-of-Thought)链式推理格式│   ├─ 推理技术:拒绝采样 + 奖励建模选优路径│   └─ 表现:GSM8K、MATH 等基准任务超越大部分开源模型│├─ Qwen2.5-Code【代码专用模型】│   ├─ 语言覆盖:支持40+编程语言(Python、C++、Java、JS等)│   ├─ 训练流程:│   │   ├─ 精选代码预训练 + 指令微调(Code-Instruct)│   │   └─ 多语言沙箱环境静态/动态测试辅助质量提升│   ├─ 输出评估:单元测试验证+代码执行结果过滤│   └─ 表现:HumanEval、MBPP 等代码基准任务表现优异│└─ Qwen2.5-Turbo / Qwen2.5-Plus【通用强化模型】├─ Qwen2.5-Turbo:│   ├─ 超长上下文处理专家(最高1M tokens)│   ├─ ABF(频率扩展)+ 分阶段长序列训练│   └─ 场景:文档总结、合同分析、历史长对话跟踪└─ Qwen2.5-Plus:├─ 平衡版高精度模型(性能接近GPT-4)├─ 多领域泛化能力更强:数学/推理/翻译等└─ 表现优异于MMLU/GSM8K/HumanEval等任务上

3.5 LLAMA 系列

🔹 3.5.1 LLAMA 3.1 —— 新一代升级

LLAMA 3.1
│
├──▶ 🚀 性能大幅提升  
│      → 比以前的模型更聪明,甚至能和GPT-4比一比!
│
├──▶ 🔁 三阶段预训练流程  
│      ├─ 初始预训练 → 模型打基础,学习基本语言知识  
│      ├─ 长文本预训练 → 学习如何理解和处理长文档  
│      └─ 退火训练 → 像“回炉重造”,让模型更加稳健
│
├──▶ 🧹 数据质量优化  
│      ├─ 行级去重 → 删掉重复的句子,保证多样性  
│      ├─ 多层次过滤 → 清理低质量内容,比如错别字、乱码  
│      └─ 引入高质量数据 → 加入优质文章、书籍,补充知识
│
├──▶ 🧠 训练策略升级  
│      ├─ 拒绝采样 → 去掉模型胡说八道的回答  
│      ├─ SFT(监督微调)→ 模型学习怎么更像“助理”  
│      └─ DPO(偏好优化)→ 让模型更懂“人类喜好”
│
├──▶ ⚙️ 网络结构升级  
│      ├─ SwiGLU 激活函数 → 增强模型理解复杂问题的能力  
│      ├─ RoPE 位置编码 → 让模型知道“词语的顺序”  
│      ├─ RMSNorm 归一化 → 保证训练过程稳定、不崩  
│      └─ 残差连接 → 避免“越学越糊涂”,保持信息流畅
│
└──▶ 🎯 特定能力增强  → 专门优化代码生成、多语言处理能力,适配不同应用

🔹 3.5.2 LLAMA 系列总览

LLAMA 总体特征
│
├──▶ 🏗 模型架构:  
│      → 基于 Transformer 构建的框架,通用而强大
│
├──▶ 📏 参数规模多样化  
│      ├─ 7B → 适合中小规模  
│      ├─ 13B / 30B → 平衡性能和成本  
│      └─ 65B → 需要强大硬件,性能最强
│
├──▶ 📂 开源可用  
│      → 任何人都可以下载和使用,适合研究与开发
│
├──▶ 🧠 训练数据丰富  
│      → 使用各种各样的文本数据训练,包括网页、书籍、对话等
│
├──▶ 🔁 网络结构优化组件  
│      ├─ RoPE(旋转位置编码)→ 更好理解词语顺序  
│      ├─ SwiGLU 激活 → 让模型“反应更灵活”  
│      ├─ RMSNorm → 稳定模型训练过程
│
├──▶ 🛡 梯度问题应对措施  
│      ├─ 残差连接 → 保留关键信息  
│      ├─ 归一化 → 防止“计算爆炸”或“没信号”  
│      ├─ 合理激活函数 → 避免数学问题导致“脑抽”
│      └─ 自适应优化器(Adam)→ 像“教练”一样灵活调整训练节奏

🔹 3.5.2.1 如何提升 LLAMA 的中文能力(重点!)

LLAMA 中文增强
│
├──▶ ❓ 为什么LLAMA原生中文不好?  
│      ├─ 训练数据中文太少 → 英文占比高达99%  
│      ├─ 词表不适合中文 → 太多汉字被拆开处理  
│      ├─ 没训练中文任务 → 比如古诗、对联、问诊都没练过
│
├──▶ ✅ 解决方案一:继续预训练  
│      → 用大批高质量中文数据再“训练一遍”  
│      → 比如补上新闻、百科、法律、医疗内容等
│
├──▶ ✅ 解决方案二:扩充词表  
│      → 加入常用汉字、中文词语,解决分词问题  
│      → 让模型“认得更多中文词”
│
├──▶ ✅ 解决方案三:指令微调  
│      → 用中文指令数据(如:写一首诗、解释法规)来训练  
│      → 模型会更懂中文使用习惯
│
├──▶ ✅ 解决方案四:混合专家(MoE)  
│      → 中文专家专门处理中文,英文专家专门处理英文  
│      → 根据输入自动选择最懂的“老师”
│
└──▶ ✅ 解决方案五:人类反馈(RLHF)  → 给模型反馈什么回答更符合中国用户的习惯  → 不断优化回答质量,避免“中式英文”

3.6 T5:Text-to-Text Transfer Transformer


核心理念:所有 NLP 任务都转成 “文本 → 文本”

任务示例(统一格式):
├── 翻译:translate English to German: That is good. → Das ist gut.
├── 分类:cola sentence: The course is jumping well. → Not acceptable
├── 相似度:stsb sentence1: … sentence2: … → 3.8
├── 摘要:summarize: … → 精简内容

🌟 创新点
├── 1. 文本到文本统一框架(每个任务都是一个文本生成)
├── 2. Span Corruption预训练(掩码一整段连续文本)
├── 3. 架构系统探索(测试各种结构选择,找到最优方案)

📚 训练数据
├── 预训练数据:C4英文网页清洗大语料(750GB)
└── 微调数据:GLUE、CNN/DailyMail、WMT等多种任务集

🧠 模型结构(Encoder-Decoder)
├── 相对位置编码(不是用固定位置,而是学出来的位置偏移)
├── LayerNorm放在残差连接前(提高稳定性)
├── FFN使用GELU激活(更平滑更强)
└── 多个模型版本(从小到大)
├── T5-small:60M参数
├── T5-base:220M参数
├── T5-large:770M参数
├── T5-3B:3B参数

⚙️ 训练方法
├── 预训练阶段:
│ ├── 使用 span corruption 掩码训练
│ ├── 优化器:AdaFactor(显存省)
│ └── 大批量长时间训练(1M 步,34B tokens)
└── 微调阶段:
├── 每个任务前面加 prefix(任务前缀提示)
└── 多任务混合训练(翻译、分类、问答等一起训)

✅ 优点
├── 一个模型支持多种任务(统一简洁)
├── 泛化能力强(小样本也能学得不错)
└── 任务前缀让控制更清晰(可解释)

⚠️ 缺点
├── Encoder-Decoder结构导致生成速度慢(不如GPT快)
└── 模型越大越占资源(如T5-3B需要很多显存)

📌 应用场景
├── 文本生成(摘要、翻译、对话)
├── 序列标注(命名实体识别)
├── 问答系统(开放式回答)
└── 数据增强(合成训练样本)

🔧 改进方向
├── mT5:支持101种语言(多语种)
├── T5-UL2:混合预训练目标(更强大)
├── 蒸馏压缩:用大模型教小模型(如Distilled-T5)
└── 领域适配:在医学、法律等数据上继续预训练

💻 实现代码(用Transformers一行就能跑!)
├── 加载模型 tokenizer & model
├── 输入“任务前缀+文本” → 编码成token
├── model.generate() 生成 → decode() 得出结果
└── 支持自定义训练循环 + 优化器微调

相关文章:

【LLM系列】1.大模型简介

1. 基础 1.1 如何权衡模型的复杂度和性能? ├── a. 模型架构选择 │ ├── 简化架构 │ │ └── 选择较小的网络层数和宽度,降低复杂度; │ │ 可使用高性能基础模型如 Transformers 作为起点,根据需求缩放模型。 │ └──…...

从概念和设计哲学的角度详细解析工厂模式

从概念和设计哲学的角度详细解析工厂模式。 1. 工厂模式的核心目标 解耦:将对象的创建过程与使用过程分离,使用者无需关心对象如何被创建。 统一入口:通过一个接口或方法控制对象的生成,隐藏底层实现细节。 类比现实中的工厂&am…...

AI小白:机器学习VS深度学习

1 特征工程的范式革命 传统机器学习:手工特征工程的艺术 在传统机器学习中,特征工程是一个关键步骤,它涉及将原始数据转化为能够被机器学习模型高效利用的特征。这通常需要领域专家的经验和知识,以手动设计和提取特征。 例如&a…...

对应列表数据的分割和分组

要基于指定的流派列表分割数据,可以使用 布尔索引 或 groupby 结合筛选。以下是具体方法: 场景假设 数据列 genres 中的值可能是多流派的字符串,例如 "drama,action" 或 ["drama", "action"]。目标&#xff1…...

信息物理系统(CPS):中国 AI(DEEPSEEK)的未来路径

一、引言 人工智能(AI)的发展正从通用模型向垂直领域渗透,而信息物理系统(CPS)作为连接数字世界与物理世界的桥梁,为 AI 提供了新的发展方向。中国 AI 企业如 DEEPSEEK 通过开源策略和本土化优势&#xff…...

SEO长尾词优化实战技巧

内容概要 长尾关键词作为SEO策略的重要组成部分,能够有效捕捉细分领域的精准流量,降低竞争成本的同时提升转化效率。本文系统梳理了从关键词挖掘到流量转化的全链路优化方法,重点解析工具使用、布局策略及搜索意图匹配三大核心模块。通过结合…...

爬虫自动化工具:DrissionPage

1. DrissionPage初始 官网地址:🛰️ 概述 | DrissionPage官网 在当今互联网高速发展的时代,网页数据的获取和处理变得愈发重要。传统的自动化工具如 Selenium 在某些方面逐渐显露出一些局限性,而 DrissionPage 正是在这样的背景下…...

扩展库Scrapy:Python网络爬虫的利器

目录 一、扩展机制的核心原理 二、六大实用扩展库详解 1. 动态渲染神器:scrapy-playwright 2. 分布式架构:scrapy-redis 3. 反反爬利器:scrapy-zyte-smartproxy 4. 智能调度:scrapy-thunder 5. 数据管道:scrapy…...

L3-21

exer01 Message # 1.定义Message消息类和cmd,content,sender,to四个属性,其中to默认为None class Message:def __init__(self, cmd, content, sender, toNone):self.cmd cmdself.content contentself.sender senderself.to to # 2. 创建登录消息对象msg1,聊天消…...

04.游戏开发-unity编辑器详细-工具栏、菜单栏、工作识图详解

04.游戏开发,unity编辑器详细-工具栏、菜单栏、工作识图详解 提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是Python基础语法。前后每一小节的内容是存在的有:学习and理解的关联性,希…...

GRBL运动控制算法(二)圆弧插补

前言 GRBL 是一款高性能、开源的嵌入式 CNC(计算机数控)控制器固件,专为 Arduino 平台优化,广泛应用于雕刻机、激光切割机、3D 打印机及其他精密运动控制场景。自 2009 年发布以来,GRBL 凭借其高效的运动规划算法、稳…...

《P1072 [NOIP 2009 提高组] Hankson 的趣味题》

题目描述 Hanks 博士是 BT(Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson。现在,刚刚放学回家的 Hankson 正在思考一个有趣的问题。 今天在课堂上,老师讲解了如何求两个正整数 c1​ 和 c2​ 的最大公约数…...

矩阵分解中的梯度下降:详细实现方案(包含数学推导、代码实现和优化技巧)

矩阵分解中的梯度下降:详细实现方案(包含数学推导、代码实现和优化技巧) 矩阵分解是机器学习和数据科学中重要的技术,广泛应用于推荐系统、自然语言处理、图像处理等领域。梯度下降作为一种优化算法,在矩阵分解中常用于最小化目标函数以找到最佳的矩阵近似。本指南将详细…...

STM32F103C8T6实现 SG90 360 °电机转动

简介 基于上一篇 STM32F103C8T6实现 SG90 180 电机任意角度转动 本来想实现角度转动, 但靠舵机本身无法实现限位, 需要记录位置, 并且根据转速计算大概位置, 存在误差, 不实现角度转动了, 只实现正反转 代码 正向速度0.75为最大速度, 反向2.25, 接近1.5…...

RTDETR融合[CVPR2025]DnLUT中的MuLUTUnit模块

RT-DETR使用教程: RT-DETR使用教程 RT-DETR改进汇总贴:RT-DETR更新汇总贴 《DnLUT: Ultra-Efficient Color Image Denoising via Channel-Aware Lookup Tables》 一、 模块介绍 论文链接:https://arxiv.org/pdf/2503.15931 代码链接&#xf…...

大数据Spark(五十七):Spark运行架构与MapReduce区别

文章目录 Spark运行架构与MapReduce区别 一、Spark运行架构 二、Spark与MapReduce区别 Spark运行架构与MapReduce区别 一、Spark运行架构 Master:Spark集群中资源管理主节点,负责管理Worker节点。Worker:Spark集群中资源管理的从节点,负责任务的运行…...

二:python基础(黑马)

一:了解 1.1: python特点 python是完全面向对象的语言 函数,模块,数字,字符串都是对象,在python中一切皆对象 完全支持继承,重载,多重继承 支持重载运算符,也支持泛型设计 py…...

【马拉车 KMP 差分数组】P6216 回文匹配|省选-

本文涉及知识点 较难理解的字符串查找算法KMP C差分数组 马拉车算法 P6216 回文匹配 题目描述 对于一对字符串 ( s 1 , s 2 ) (s_1,s_2) (s1​,s2​),若 s 1 s_1 s1​ 的长度为奇数的子串 ( l , r ) (l,r) (l,r) 满足 ( l , r ) (l,r) (l,r) 是回文的&#…...

C/C++测试框架googletest使用示例

文章目录 文档编译安装示例参考文章 文档 https://github.com/google/googletest https://google.github.io/googletest/ 编译安装 googletest是cmake项目,可以用cmake指令编译 cmake -B build && cmake --build build将编译产物lib和include 两个文件夹…...

提高MCU的效率方法

要提高MCU(微控制器单元)的编程效率,需要从硬件特性、代码优化、算法选择、资源管理等多方面入手。以下是一些关键策略: 1. 硬件相关优化 时钟与频率: 根据需求选择合适的时钟源(内部/外部振荡器),避免过高的时钟频率导致功耗浪费。关闭未使用的外设时钟(如定时器、UA…...

Ansible 实战:Roles,运维的 “魔法函数”

一、介绍 你现在已经学过tasks和handlers,那么,最好的playbook组织方式是什么呢?答案很简单:使用roles!roles基于一种已知的文件结构,能够自动加载特定的vars_files、tasks以及handlers。通过roles对内容进…...

GO简单开发grpc

什么是grpc 首先我们需要了解,什么是grpc gRPC(全称:google remote procedure call)是由Google开发的一个高性能、开源的远程过程调用(RPC)框架。它基于 HTTP/2 协议,并且使用 Protocol Buffer…...

强引用,弱引用,软引用,虚引用,自旋锁,读写锁

强引用:强引用GC不会回收 软引用:内存够的话不回收,内存不够的话回收 弱引用:不管内存够不够,只要有GC就回收 虚引用:点get是null,但是GC后他会把引用放到引用队列里边 自旋锁:是指尝…...

C++异常处理 throw try catch

C 异常处理概述 C 异常处理机制提供了一种在程序运行时捕获错误或异常情况的方式。异常处理的目的是使得程序在遇到错误时能够优雅地终止或恢复,并防止程序出现崩溃。C 使用 try, throw, 和 catch 关键字来实现异常处理。 异常处理的基本结构: throw: …...

优化 Web 性能:管理第三方资源(Third-Party Summary)

在现代 Web 开发中,第三方资源(如分析工具、广告脚本、字体服务)为网站提供了丰富的功能,但也可能成为性能瓶颈。Google 的 Lighthouse 工具在性能审计中提供了“第三方资源概要”(Third-Party Summary)&am…...

第六章、 系统级 I/O

真题考点 考点一:Unix I/O 所有的 I/O 设备(例如网络、磁盘和终端)都被模型化为文件,而所有的输入和输出都被当作对相应文件的读和写来执行。这种将设备优雅地映射为文件的方式,允许 Linux 内核引出一个简单、低级的应用接口,称为…...

Jetpack Compose 自定义标题栏终极指南:从基础到高级实战

Jetpack Compose 自定义标题栏终极指南:从基础到高级实战 本文将带你彻底掌握 Compose 标题栏开发,涵盖 5 种专业级实现方案 性能优化技巧 完整可运行代码。 📚 核心方案对比 方案特点适用场景复杂度基础Row布局完全自定义,灵…...

晶晨S905-S905L-S905LB_S905M2通刷_安卓6.0.1_16S极速开机_线刷固件包

晶晨S905-S905L-S905LB_S905M2通刷_安卓6.0.1_16S极速开机_线刷固件包 线刷方法:(新手参考借鉴一下) 刷机工具版本请用2.2.0以上,导入固件后,刷机工具右侧两个擦除打勾,然后点开始。插上刷机神器&#xf…...

tkiner模块的初步学习

文章目录 一、前言二、概念2.1 安装2.2 窗口 三、小部件3.1 概述3.2 常用小部件3.2.1 Label3.2.2 Button3.2.3 Entry3.2.4 Text3.2.5 Listbox3.2.6 Checkbutton3.2.7 Radiobutton3.2.8 Scrollbar 3.3 更多小部件3.3.1 Scale3.3.2 Spinbox3.3.3. Progressbar 3.4 主题小部件 四、…...

Java常用数据结构操作方法全面总结

目录 一、List接口及其实现类二、Set接口及其实现类三、Map接口及其实现类四、Queue/Deque队列五、Stack栈六、树形结构七、注意事项与最佳实践总结 一、List接口及其实现类 核心实现类 ArrayList:基于动态数组LinkedList:基于双向链表 常用操作方法…...

Java的Selenium的特殊元素操作与定位之select下拉框

如果页面元素是一个下拉框,我们可以将此web元素封装为Select对象 Select selectnew Select(WebElement element); Select对象常用api select.getOptions();//获取所有选项select.selectBylndex(index);//根据索引选中对应的元素select.selectByValue(value);//选…...

STM32单片机入门学习——第15节: [6-3] TIM输出比较

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难,但我还是想去做! 本文写于:2025.04.05 STM32开发板学习——第15节: [6-3] TIM输出比较 前言开发板说明引用解答和科普一…...

力扣经典算法篇-9-跳跃游戏(贪心算法,反向递推)

题干: 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。 示例 …...

java面向对象 - 封装、继承和多态

1.封装 定义 封装是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节。通过访问控制修饰符(如private、protected、public)对属性和方法的访问进行限制,以此提升代码的安全性与可维护性。 要点 访问控制:运用private修饰属性,防止外部直…...

铁电液晶(FLC)与反铁电液晶(AFLC)

### **铁电液晶(FLC)与反铁电液晶(AFLC)的原理、区别及应用** --- ## **1. 基本原理** ### **(1)铁电液晶(Ferroelectric Liquid Crystal, FLC)** - **分子结构**: …...

经典算法 a^b

原题目链接 问题描述 求 a 的 b 次方对 p 取模的值,即计算: a^b mod p输入格式 输入一行,包含三个整数 a、b 和 p,中间用空格隔开。 输出格式 输出一个整数,表示 a^b mod p 的值。 数据范围 0 ≤ a, b ≤ 10^91 …...

Python解决“组成字符串ku的最大次数”问题

Python解决“组成字符串ku的最大次数”问题 问题描述测试样例解题思路代码 问题描述 给定一个字符串 s,该字符串中只包含英文大小写字母。你需要计算从字符串中最多能组成多少个字符串 “ku”。每次可以随机从字符串中选一个字符,并且选中的字符不能再使…...

ubuntu22使用TrinityCore搭建魔兽世界服务器

目录 一、Ubuntu22工具下载二、服务端编译配置1. 从 git 上拉取服务端代码2. 编译客户端3. 修改配置文件4. 加载sql语句5. 下载客户端6. 下载必要sql文件 三、客户端连接配置四、游戏启动 一、Ubuntu22工具下载 下载所有需要的工具 sudo apt-get update sudo apt-get install…...

LeetCode - 739.每日温度问题单调栈解法

目录 问题描述 方法思路:单调栈 核心思想 为什么用单调栈? 算法步骤 代码实现与逐行解析 示例解析 复杂度分析 总结 问题描述 给定一个整数数组 temperatures,表示每天的温度,返回一个数组 answer,其中 answe…...

GESP:2025-3月等级8-T1-上学

时间限制 : 1 秒 内存限制 : 128 MB C 城可以视为由 n个结点与 m条边组成的无向图。这些结点依次以1,2,....n标号&#xff0c;边依次以 1,2...m标号。第i条边&#xff08;1<i<m &#xff09;连接编号为ui 与vi的结点&#xff0c;长度为li米。 小 A 的学校坐落在 C 城中…...

宏碁笔记本电脑擎7PRO搭载的 NVIDIA RTX 5080 显卡安装pytorch

宏碁笔记本电脑擎7PRO搭载的 NVIDIA RTX 5080 显卡是一款高性能移动 GPU&#xff0c;基于 NVIDIA 最新的 Blackwell 架构设计&#xff0c;通过修正架构&#xff08;Blackwell&#xff09;、显存类型与带宽&#xff08;GDDR7、960GB/s&#xff09;、Tensor Core 与 RT Core 全面…...

Qwen-7B-Chat 本地化部署使用

通义千问 简介 通义千问是阿里云推出的超大规模语言模型&#xff0c;以下是其优缺点&#xff1a; 优点 强大的基础能力&#xff1a;具备语义理解与抽取、闲聊、上下文对话、生成与创作、知识与百科、代码、逻辑与推理、计算、角色扮演等多种能力。可以续写小说、编写邮件、解…...

数据结构,顺序存储线性表

//线性表顺序存储 #include<stdio.h> #include<stdlib.h> #define MAXSIZE 100 #define ElemType int //定义结构体 typedef struct LinearList{ElemType elem[MAXSIZE];int last; }LinearList; //初始化链表 void InitList(LinearList &L){L.last-1; };…...

Matlab轴承故障信号仿真与故障分析

1.摘要 本文介绍了一个基于Matlab的轴承故障信号仿真与分析程序&#xff0c;旨在模拟和分析轴承内圈故障信号的特征。程序首先通过生成故障信号、共振信号和调制信号&#xff0c;添加噪声和离散化处理&#xff0c;构建模拟的振动信号&#xff0c;并保存相关数据。通过快速傅里…...

Git三剑客:工作区、暂存区、版本库深度解析

一、引言&#xff1a;为什么需要理解Git的核心区域&#xff1f; 作为开发者&#xff0c;Git是日常必备的版本控制工具。但你是否曾因以下问题感到困惑&#xff1f; 修改了文件&#xff0c;但 git status 显示一片混乱&#xff1f; git add 和 git commit 到底做了什么&#x…...

stack和queue

1.stack的使用 函数说明接口说明 stack() 构造空的栈 empty 检测stack是否为空 size 返回stack中元素的个数 top 返回栈顶元素的引用 push 将元素val压入stack中 pop 将stack中尾部的元素弹出 void test_stack() {stack<int> st;st.push(1);st.push(2);st.push(3);s…...

【补题】Codeforces Round 1011 (Div. 2) C. Serval and The Formula

题意&#xff1a;给两个数&#xff0c;问你存不存在k使nmn异或m 思路&#xff1a; 为了让nmn异或m成功&#xff0c;很明显有两个数在同一位上最多只能有1个1。因为如果有两个就会导致数字变小&#xff0c;很明显nm是不可能成功的&#xff0c;因为你怎么搞都会有至少一个一模一…...

基于javaweb的SpringBoot汉服文化bbs系统设计与实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…...

Vision_Robot

import time import tkinter as tk from tkinter import messagebox from PIL import Image, ImageTk import socket import threading from datetime import datetime import logging import subprocess # 确保导入 subprocess 库 import os import pyautogu…...

爬虫练习案例

案例1&#xff1a; 爬取菜鸟教程左侧导航栏的分类内容&#xff1a; 在pycharm中书写代码。 先倒入相关模块。 import requests from bs4 import BeautifulSoup import lxml.etree as le这个案例写两种写法。 第一种&#xff1a; urlhttps://www.runoob.com/html/html-tuto…...