0.大模型开发知识点需求综述
文章目录
- 一、机器学习与深度学习基础
- 二、自然语言处理(NLP)基础
- 三、大模型架构
- 四、训练优化技术
- 五、数据处理与预处理
- 六、分布式训练与并行化策略
- 七、微调方法与参数高效微调
- 八、训练框架、工具与自动化流程
- 九、评估与部署
- 十、前沿技术与未来趋势
已更新完到二章、自然语言处理(NLP)基础的细化版(1-7),其中还是省略了很多的基础公式细节,想来如果博客写的太详细,自己暂无精力,且理论太多,因此把大纲放在这里,读者自行学习即可。
从下篇博客(这个类型)开始,将以写实际为主。
一、机器学习与深度学习基础
微调大模型的第一步是夯实机器学习与深度学习的基本理论,只有在坚实的数学与理论基础上,才能更好地理解模型的运作机理和优化策略。
数学基础
- 线性代数:包括矩阵运算、矩阵分解、特征值与特征向量计算以及张量计算,所有这些数学工具在深度学习模型中均有广泛应用。掌握矩阵与向量的基本运算对于理解神经网络的前向传播、反向传播以及权重更新至关重要。
- 概率论与统计学:理解概率分布、贝叶斯定理、KL 散度、信息熵等概念,有助于设计合理的损失函数、正则化策略和模型评估指标,从而在训练过程中实现更好的模型泛化能力。
- 计算优化:梯度下降、牛顿法、L-BFGS 等优化算法是模型训练过程中不可或缺的技术手段,它们在不同场景下决定了收敛速度和训练稳定性。
- 计算图与自动微分:掌握 PyTorch Autograd 或 TensorFlow 的计算图机制,能够让开发者在复杂模型中轻松实现自动微分,进而优化模型参数更新过程。
深度学习理论
- 反向传播机制:了解神经网络中误差如何从输出层逐层传递回输入层,从而实现全网络参数的梯度计算,为后续优化算法的应用提供理论支撑。
- 激活函数:熟悉常见激活函数如 ReLU、GELU、Swish 等,它们决定了神经元非线性映射的效果,对模型性能和训练稳定性有直接影响。
- 归一化技术:包括 BatchNorm、LayerNorm、RMSNorm 等方法,通过归一化中间激活值来缓解梯度消失和梯度爆炸问题,是深度网络中必备的优化手段。
- 训练策略:掌握 Early Stopping、Warmup 策略、学习率衰减(Learning Rate Decay)等训练技巧,这些方法能够有效避免过拟合和欠拟合,提升模型收敛速度和最终性能。
- 过拟合处理:了解 Dropout、数据增强、L1/L2 正则化等方法,通过这些技术确保模型在训练集和测试集上都能保持较好的表现。
二、自然语言处理(NLP)基础
大模型微调应用场景主要集中于自然语言处理领域,因此系统掌握 NLP 的基础知识和核心技术尤为重要。
基本概念
- 词嵌入:包括 Word2Vec、GloVe、FastText 等方法,将离散的词语映射为连续的向量表示,为后续模型训练提供语义基础。
- 预训练与微调:理解预训练模型(如 BERT、GPT 系列)的基本原理以及如何通过微调适配特定任务,形成企业级应用解决方案。
- Prompt Engineering:针对大模型的输入提示工程,包括 Few-Shot、Zero-Shot 和 Chain-of-Thought 等方法,是引导模型生成高质量回答的关键技术。
核心技术
- 语言模型构建:从 n-gram 到 RNN、LSTM、GRU,再到 Transformer 架构,掌握语言模型发展演变的全过程及其在实际应用中的优缺点。
- 位置编码:包括绝对位置编码(如 Sinusoidal 编码)和相对位置编码(如 RoPE),这些方法帮助模型捕捉句子中单词的顺序信息,进而提高文本理解与生成能力。
- 长文本处理:针对长文本数据,掌握 Sliding Window Attention、Longformer、ALiBi 等方法,能够在有限显存条件下高效处理长序列问题。
三、大模型架构
在大模型微调中,理解模型架构对于选择合适的微调策略和优化手段至关重要。大模型的架构设计直接影响到模型的容量、推理速度以及资源需求。
Transformer 模型
- Self-Attention 机制:核心原理是通过 Query、Key 和 Value 的计算,实现全局信息的自适应聚合,这一机制是 Transformer 架构最重要的组成部分。
- 多头注意力:通过多头并行计算,实现不同子空间中的信息捕捉,提升模型对复杂语义关系的理解能力。
- Feedforward 网络:在自注意力模块后,通过前馈神经网络进一步处理特征信息,典型的激活函数和隐藏层设计决定了模型的非线性表达能力。
主流大模型
- 编码器架构:如 BERT、RoBERTa 等,主要应用于句子理解、分类等任务。
- 自回归模型:例如 GPT-3、GPT-4 和 DeepSeek 系列,适用于生成式任务和对话系统。
- 编码器-解码器架构:例如 T5、BART,具备翻译、摘要、问答等多种应用场景。
- 混合专家模型(MoE):如 DeepSeekMoE、Mixtral,通过专家路由机制,实现大规模参数的稀疏激活,提高模型计算效率和性能。
高效 Transformer 设计
- Flash Attention 2:一种降低显存消耗的高效注意力计算机制,在不牺牲精度的前提下显著提升训练和推理速度。
- Grouped Query Attention (GQA):通过分组方式降低计算量,同时保持多头注意力的并行计算优势。
- Sparse Attention:利用稀疏化策略减少不必要的计算量,适用于长文本场景下的高效建模。
四、训练优化技术
大模型的训练优化直接决定了模型在大规模数据上的收敛速度和最终效果,同时也是显存管理和硬件资源利用的重要环节。
显存优化技术
- Mixed Precision 训练:利用 FP16 或 BF16 数据格式进行混合精度训练,既保证计算精度,又显著降低显存占用。
- Activation Checkpointing:在前向传播时保存关键中间激活,反向传播时重新计算部分激活,从而降低整体显存消耗。
- CPU Offloading:借助 DeepSpeed ZeRO-Offload 等技术,将部分计算任务转移至 CPU,以减轻 GPU 显存压力。
- 低比特量化:采用 8-bit 甚至 4-bit 量化技术(如 QLoRA),在保持模型效果的前提下进一步降低存储和计算资源消耗。
梯度优化策略
- 常见优化器:如 SGD、AdamW、LAMB 等,根据任务场景选择最适合的优化算法,实现高效参数更新。
- 自适应学习率调度:采用 One-Cycle、Cosine Decay、Poly Decay 等调度策略,动态调整学习率,提高训练收敛速度。
- 动态批量调整:根据实际显存情况采用 Adaptive Batch Size 策略,保证在资源受限环境下仍能稳定训练。
加速训练方法
- Gradient Accumulation:通过累积多次小批量梯度,实现大批量训练效果,适用于显存受限场景。
- FSDP(Fully Sharded Data Parallel):全模型分片并行技术,将模型参数分布在多个 GPU 上,实现超大模型的高效训练。
- ZeRO Optimizer:通过分层优化策略,在 DeepSpeed 框架下实现高效的分布式训练,充分利用硬件资源。
五、数据处理与预处理
数据是大模型微调的燃料,只有高质量、结构化的数据才能确保微调效果达到预期。企业在数据处理阶段需要构建一整套数据清洗、预处理与增强流程。
数据格式与预处理
- 数据存储格式:常用格式包括 JSON、CSV、Parquet、TFRecord 等,不同格式各有优缺点,需根据任务需求进行选择。
- Hugging Face Datasets:利用这一工具集可以方便地加载、处理和管理大规模数据集,实现数据流化管理。
- Tokenization 技术:采用 BPE、WordPiece、SentencePiece 等分词技术,将原始文本转换为模型可识别的输入序列,保证模型输入的高效与准确。
数据增强方法
- Back Translation:通过反向翻译对文本进行语义增强,增加数据多样性。
- Synonym Replacement:使用同义词替换技术扩充语料库,提高模型的泛化能力。
- Online Data Augmentation:在训练过程中实时进行数据增强,动态生成多样化样本,优化模型训练效果。
增量训练与数据去重
- Streaming Dataset:针对超大规模数据,采用流式加载和训练,降低内存占用风险。
- 数据去重技术:利用 MinHash、Bloom Filter 等算法剔除重复数据,确保数据集多样性和有效性。
六、分布式训练与并行化策略
大模型的训练往往需要跨越多个 GPU 乃至多节点协同工作,分布式训练是实现超大规模模型训练的关键。
多 GPU 训练技术
- 数据并行(Data Parallelism):将数据切分到各个 GPU 上并行计算,利用 DDP 技术实现高效同步更新。
- 张量并行(Tensor Parallelism):将单个层的计算分布到多个 GPU 上,共同计算单层内复杂矩阵运算,适用于超大模型的计算加速。
- 流水线并行(Pipeline Parallelism):将模型层按顺序划分为多个阶段,在各个 GPU 上依次处理不同批次数据,实现流水线式训练加速。
跨节点分布式训练
- NCCL 与 Horovod:利用 NVIDIA 的 NCCL 库或 Horovod 框架,实现多节点之间高速数据传输和高效梯度同步。
- FSDP 分布式技术:通过全模型参数分片策略,将超大模型参数拆分到多个节点中,实现跨节点高效协同训练。
分布式训练优化
- 硬件互联技术:采用 NVLink、InfiniBand、RDMA 等高带宽低延迟互联技术,降低 GPU 间通信开销。
- Checkpoint Sharding:在分布式训练中,通过分片存储 Checkpoint,实现断点恢复和存储优化。
七、微调方法与参数高效微调
大模型微调方法多样,选择合适的微调方式能够在保证效果的前提下大幅降低训练成本和显存占用。
全参数微调(Full Fine-Tuning)
- 方法特点:对整个模型进行参数更新,适用于硬件资源充足且对模型性能要求极高的场景。
- 应用场景:企业级数据中心中常见,适用于需要极致精度和复杂任务的场景。
参数高效微调(PEFT)
- LoRA(Low-Rank Adaptation):仅对部分关键层(如自注意力层中的 q_proj、v_proj)进行低秩矩阵更新,极大减少更新参数量。
- QLoRA(4-bit 量化 LoRA):在 LoRA 基础上结合 4-bit 量化技术,将显存需求进一步降低,适合资源受限的 GPU 环境。
- Prefix-Tuning 与 P-Tuning v2:通过引入可训练的前缀向量或提示,适应不同任务需求,减少模型全量参数更新。
- 领域微调:利用 Instruction Tuning、Domain Adaptation 等技术,将模型微调到特定行业(如金融、医疗、法律)领域。
强化学习微调
- RLHF(Reinforcement Learning from Human Feedback):结合人类反馈数据,通过强化学习进一步调整模型生成策略,提升输出质量。
- DPO(Direct Preference Optimization):直接优化模型对人类偏好的响应,适用于生成任务中提升模型输出合理性与连贯性。
八、训练框架、工具与自动化流程
构建高效、自动化的训练流程是大模型研发和微调的重要环节,企业需依托成熟的框架和工具实现端到端自动化运维。
训练框架
- PyTorch 与 Hugging Face Transformers:主流的深度学习框架,提供灵活的模型定义与训练接口;同时具备丰富的预训练模型资源。
- DeepSpeed 与 ColossalAI:专为大模型训练设计的优化框架,支持分布式训练、显存优化和高效推理,适用于企业级超大规模模型训练。
- PEFT 库:提供 LoRA、Prefix-Tuning 等参数高效微调方法的封装,实现对大模型的快速适配与微调。
超参数优化与监控工具
- Optuna 与 Ray Tune:自动超参数调优框架,通过贝叶斯优化、随机搜索等方法自动探索最优超参数配置,降低人工调试成本。
- TensorBoard 与 WandB:提供实时训练过程监控与可视化,方便企业对训练指标进行实时追踪和问题定位。
MLOps 与 CI/CD
- 自动化训练与部署:构建从数据预处理、模型训练到部署推理的全流程自动化管道,实现模型版本管理、在线监控、A/B 测试以及灰度发布。
- 模型监控与更新:通过监控推理服务的实时指标,及时发现异常并自动触发模型更新策略,确保线上服务稳定可靠。
九、评估与部署
在模型微调完成后,全面评估与高效部署是确保模型商业化落地的关键环节。
模型评估
- 评估指标:包括语言建模评估指标(Perplexity)、生成质量指标(BLEU、ROUGE)、以及多任务评估基准(MMLU、TruthfulQA、HellaSwag),确保模型在多个维度上均能达到预期性能。
- 零/少样本评估:针对模型在真实场景下的泛化能力,通过零样本、少样本测试方式评估模型在未知领域的表现。
推理优化与部署方案
- 推理加速:采用 ONNX、TensorRT 等推理引擎将模型部署至生产环境,利用量化、剪枝和知识蒸馏等技术优化推理效率。
- 高效推理服务:利用 Triton Inference Server、vLLM 等方案,实现高吞吐量、低延迟的在线推理服务。
- 微服务部署:结合 FastAPI、Flask 等 Web 框架,将模型部署为独立微服务,实现灵活扩展和动态资源调度。
十、前沿技术与未来趋势
在大模型快速发展的背景下,前沿技术和趋势为企业提供了更广阔的应用场景和研发方向。
跨模态与检索增强生成
- 跨模态模型:如 CLIP、BLIP-2,通过融合文本、图像等多模态数据,实现复杂场景下的信息检索和生成任务。
- 检索增强生成(RAG):结合信息检索模块,将外部知识库与生成模型结合,提升模型在知识密集型任务中的表现。
模型安全性、隐私保护与公平性
- 对抗性训练:在模型训练过程中引入对抗样本,提高模型对恶意输入的鲁棒性。
- 差分隐私与联邦学习:确保数据在训练过程中得到有效保护,实现数据安全与隐私保护。
- 公平性与可解释性:研究模型决策过程,确保模型输出在各类群体中公平合理,并提供可解释性分析。
元学习与自适应优化
- 元学习:通过学习模型如何学习,实现跨任务的快速适应;为大模型在不断变化的业务场景下提供更强的泛化能力。
- 自适应优化:探索自适应学习率、动态损失函数等前沿优化技术,提高模型在多任务环境下的稳定性和训练效率。
企业级大模型研发战略
- 标准化流程:构建从数据采集、预处理、模型训练、评估到部署的全流程标准化体系,实现研发与运维闭环。
- 跨部门协作:整合研发、产品、运营等多部门资源,共同推动大模型在业务中的落地与商业化转化。
- 前瞻性研究:持续关注最新学术成果和工业界动向,提前布局未来技术方向,为企业构建长期竞争优势。
封面图:
相关文章:
0.大模型开发知识点需求综述
文章目录 一、机器学习与深度学习基础二、自然语言处理(NLP)基础三、大模型架构四、训练优化技术五、数据处理与预处理六、分布式训练与并行化策略七、微调方法与参数高效微调八、训练框架、工具与自动化流程九、评估与部署十、前沿技术与未来趋势 已更新…...
WHAT - 前端阻塞场景梳理
目录 前言场景梳理1. JavaScript 执行阻塞主线程场景优化思路具体代码示例1. 长时间运行的同步 JavaScript 代码2. 过多的主线程任务(如频繁的 setTimeout/setInterval)3. 未优化的第三方库或框架初始化逻辑总结 2. 样式计算与布局(Layout&am…...
微前端框架 Qiankun 的应用及问题分析
一、Qiankun 的核心应用场景与优势 多技术栈共存与灵活集成 Qiankun 支持主应用与子应用使用不同技术栈(如 Vue、React、Angular 等),通过 HTML Entry 方式接入子应用,无需深度改造子应用即可实现集成,降低了技术迁移成…...
bash: uwsgi: 未找到命令
针对你提出的“bash: uwsgi: command not found”问题,以下是一些可能的解决方案,请按照步骤逐一排查: 1、检查uwsgi命令是否正确: 确保你输入的命令是uwsgi,而不是uWSGI或其他变体。 2、确认uwsgi是否已安装&…...
HAL库,配置adc基本流程
1. 初始化阶段---cubemx (1) GPIO初始化 函数:HAL_GPIO_Init() 作用:配置ADC引脚为模拟输入模式。 代码示例: // 使能GPIOA时钟 __HAL_RCC_GPIOA_CLK_ENABLE();// 配置PA1为模拟输入 GPIO_InitTypeDef GPIO_InitStruct {0}; GPIO_InitStr…...
【Unity】 HTFramework框架(六十一)Project窗口文件夹锁定器
更新日期:2025年3月7日。 Github源码:[点我获取源码] Gitee源码:[点我获取源码] 索引 Project窗口文件夹锁定器框架文件夹锁定自定义文件夹锁定限制条件 Project窗口文件夹锁定器 在Project窗口中,文件夹锁定器能够为任何文件夹加…...
网络安全技术整体架构 一个中心三重防护
网络安全技术整体架构:一个中心三重防护 在信息技术飞速发展的今天,网络安全的重要性日益凸显。为了保护信息系统不受各种安全威胁的侵害,网络安全技术整体架构应运而生。本文将详细介绍“一个中心三重防护”的概念,并结合代码示…...
《AJAX:前端异步交互的魔法指南》
什么是AJAX AJAX(Asynchronous JavaScript and XML,异步 JavaScript 和 XML) 是一种用于创建异步网页应用的技术,允许网页在不重新加载整个页面的情况下,与服务器交换数据并局部更新页面内容。尽管名称中包含 XML&…...
Elasticsearch 2025/3/7
高性能分布式搜索引擎。 数据库模糊搜索比较慢,但用搜索引擎快多了。 下面是一些搜索引擎排名 Lucene是一个Java语言的搜索引擎类库(一个工具包),apache公司的顶级项目。 优势:易扩展、高性能(基于倒排索引…...
LLM论文笔记 19: On Limitations of the Transformer Architecture
Arxiv日期:2024.2.26机构:Columbia University / Google 关键词 Transformer架构幻觉问题数学谜题 核心结论 1. Transformer 无法可靠地计算函数组合问题 2. Transformer 的计算能力受限于信息瓶颈 3. CoT 可以减少 Transformer 计算错误的概率&#x…...
那年周五放学
2025年3月7日,周五,天气晴,脑子一瞬间闪过02-05年中学期间某个周五下午,17:00即将放学的场景,那种激动,那种说不上的欣喜感,放学后,先走一段316国道,再走一段襄渝铁路&am…...
002-SpringCloud-OpenFeign(远程调用)
SpringCloud-OpenFeign 1.引入依赖2.编写一个远程调用接口3.测试 1.引入依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId> </dependency><dependencyManageme…...
SAP 顾问的五年职业规划
SAP 顾问的职业发展受到技术进步、企业需求变化和全球经济环境的影响,因此制定长远规划充满挑战。面对 SAP 产品路线图的不确定性,如向 S/4HANA 和 Business Technology Platform (BTP) 的转变,顾问必须具备灵活性,以保持竞争力和…...
Pandas使用stack和pivot实现数据透视
Pandas的stack和pivot实现数据透视 经过统计得到多维度指标数据非常常见的统计场景,指定多个维度,计算聚合后的指标 案例:统计得到“电影评分数据集”,每个月份的每个分数被评分多少次:(月份,分…...
图像生成-ICCV2019-SinGAN: Learning a Generative Model from a Single Natural Image
图像生成-ICCV2019-SinGAN: Learning a Generative Model from a Single Natural Image 文章目录 图像生成-ICCV2019-SinGAN: Learning a Generative Model from a Single Natural Image主要创新点模型架构图生成器生成器源码 判别器判别器源码 损失函数需要源码讲解的私信我 S…...
c++ 操作符重载详解与示例
c 操作符重载详解与示例 操作符重载详解一、基本规则二、必须作为成员函数重载的运算符1. 赋值运算符 2. 下标运算符 []3. 函数调用运算符 ()4. 成员访问运算符 ->5. 转型运算符 三、通常作为非成员函数重载的运算符1. 算术运算符 2. 输入/输出运算符 << >> 四、…...
在Spring Boot项目中分层架构
常见的分层架构包括以下几层: 1. Domain 层(领域层) 作用:领域层是业务逻辑的核心,包含与业务相关的实体类、枚举、值对象等。它是对业务领域的抽象,通常与数据库表结构直接映射。 主要组件: 实体类(Entity):与数据库表对应的Java类,通常使用JPA或MyBatis等ORM框架…...
upload-labs详解(1-12)文件上传分析
目录 uploa-labs-main upload-labs-main第一关 前端防御 绕过前端防御 禁用js Burpsuite抓包改包 upload-labs-main第二关 上传测试 错误类型 upload-labs-env upload-labs-env第三关 上传测试 查看源码 解决方法 重命名,上传 upload-labs-env第四关…...
无人机应用探索:玻纤增强复合材料的疲劳性能研究
随着无人机技术的快速发展,轻量化已成为其结构设计的核心需求。玻纤增强复合材料凭借高强度、低密度和优异的耐环境性能,成为无人机机身、旋翼支架等关键部件的理想选择。然而,无人机在服役过程中需应对复杂多变的环境:高空飞行时…...
计算机毕业设计Python+DeepSeek-R1大模型空气质量预测分析(源码+文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
【渗透测试】基于时间的盲注(Time-Based Blind SQL Injection)
发生ERROR日志告警 查看系统日志如下: java.lang.IllegalArgumentException: Illegal character in query at index 203: https://api.weixin.qq.com/sns/jscode2session?access_token90_Vap5zo5UTJS4jbuvneMkyS1LHwHAgrofaX8bnIfW8EHXA71IRZwsqzJam9bo1m3zRcSrb…...
学习threejs,Animation、Core、CustomBlendingEquation、Renderer常量汇总
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️Animation常量汇总1.1.1 循…...
2、数据库的基础学习(中):分组查询、连接查询 有小例子
二、分组函数 功能:用作统计使用,又称为聚合函数或者统计函数或组函数 1、分类: sum 求和、avg 平均值、max最大值、min 最小值、count 计算个数 2、参数支持哪些类型 Sum\avg 一般处理数值型数据 max、min 可以数值型也可以字符型…...
Ubuntu搭建最简单WEB服务器
安装apache2 sudo apt install apache2 检查状态 $ sudo systemctl status apache2 ● apache2.service - The Apache HTTP ServerLoaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese>Active: active (running) since Thu 2025-03-06 09:51:10…...
如何学习编程?
如何学习编程? 笔记来源:How To Study Programming The Lazy Way 声明:该博客内容来自链接,仅作为学习参考 写在前面的话: 大多数人关注的是编程语言本身,而不是解决问题和逻辑思维。不要试图记住语言本身…...
OpenCV计算摄影学(14)实现对比度保留去色(Contrast Preserving Decolorization)的函数decolor()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 将彩色图像转换为灰度图像。它是数字印刷、风格化的黑白照片渲染,以及许多单通道图像处理应用中的基本工具。 cv::decolor 是 OpenCV…...
K8s 1.27.1 实战系列(七)Deployment
一、Deployment介绍 Deployment负责创建和更新应用程序的实例,使Pod拥有多副本,自愈,扩缩容等能力。创建Deployment后,Kubernetes Master 将应用程序实例调度到集群中的各个节点上。如果托管实例的节点关闭或被删除,Deployment控制器会将该实例替换为群集中另一个节点上的…...
Python第十五课:机器学习入门 | 从猜想到预测
🎯 本节目标 理解机器学习两大核心范式(监督/无监督学习)掌握特征工程的核心方法论实现经典算法:线性回归与K-Means聚类开发实战项目:房价预测模型理解模型评估与调优基础 一、机器学习核心概念(学生与老师…...
python 程序一次启动有两个进程的问题(flask)
0. 背景 写了一个使用 flask 作为服务框架的程序,发现每次启动程序的时候,使用 ps 都能观察到两个 python 进程。 此外,这个程序占用了 GPU 资源,我发现有两个 python 进程,分别占用了完全相同的 GPU 显存 1. 原因 …...
使用jcodec库,访问网络视频提取封面图片上传至oss
注释部分为FFmpeg(确实方便但依赖太大,不想用) package com.zuodou.upload;import com.aliyun.oss.OSS; import com.aliyun.oss.model.ObjectMetadata; import com.aliyun.oss.model.PutObjectRequest; import com.zuodou.oss.OssProperties;…...
MyBatis-Plus 与 Spring Boot 的最佳实践
在现代 Java 开发中,MyBatis-Plus 和 Spring Boot 的结合已经成为了一种非常流行的技术栈。MyBatis-Plus 是 MyBatis 的增强工具,提供了许多便捷的功能,而 Spring Boot 则简化了 Spring 应用的开发流程。本文将探讨如何将 MyBatis-Plus 与 Spring Boot 进行整合,并分享一些…...
python-51-使用最广泛的数据验证库Pydantic
文章目录 1 Pydantic2 models2.1 基本模型应用2.1.1 实例化2.1.2 访问属性2.1.3 修改属性2.2 嵌套模型【Optional】3 Fields3.1 Field()函数3.2 带注释的模式Annotated3.3 默认值3.3.1 default参数3.3.2 default_factory3.4 字段别名3.5 数字约束3.6 字符串约束3.7 严格模式4 A…...
Linux - 网络基础(应用层,传输层)
一、应用层 1)发送接收流程 1. 发送文件 write 函数发送数据到 TCP 套接字时,内容不一定会立即通过网络发送出去。这是因为网络通信涉及多个层次的缓冲和处理,TCP 是一个面向连接的协议,它需要进行一定的排队、确认和重传等处理…...
ADB、Appium 和 大模型融合开展移动端自动化测试
将 ADB、Appium 和 大模型(如 GPT、LLM) 结合,可以显著提升移动端自动化测试的智能化水平和效率。以下是具体的实现思路和应用场景: 1. 核心组件的作用 ADB(Android Debug Bridge): 用于与 Android 设备通信,执行设备操作(如安装应用、获取日志、截图等)。Appium: 用…...
【Pandas】pandas Series unstack
Pandas2.2 Series Computations descriptive stats 方法描述Series.argsort([axis, kind, order, stable])用于返回 Series 中元素排序后的索引位置的方法Series.argmin([axis, skipna])用于返回 Series 中最小值索引位置的方法Series.argmax([axis, skipna])用于返回 Series…...
rv1126交叉编译opencv+ffmpeg+x264
文章目录 🌕交叉编译x264🌙创建build_x264.sh(放在下载的x264目录下)🌙编译过程🌙查看编译后的so文件是否是arm版的 🌕下载编译ffmpeg🌙下载ffmpeg🌙创建编译脚本🌙创建ffmpeg编译路…...
【C++】ImGui:VSCode下的无依赖轻量GUI开发
本教程将手把手带您用纯原生方式构建ImGui应用,无需CMake/第三方库。您将全程明了自己每个操作的意义,特别适合首次接触GUI开发的新手。 环境配置 安装VSCode 作用:轻量级代码编辑器,提供智能提示操作: 官网下载安装…...
BUU44 [BJDCTF2020]ZJCTF,不过如此1 [php://filter][正则表达式get输入数据][捕获组反向引用][php中单双引号]
题目: 我仿佛见到了一位故人。。。也难怪,题目就是ZJCTF 按要求提交/?textdata://,I have a dream&filenext.php后: ......不太行,好像得用filephp://filter/convert.base64-encode/resourcenext.php 耶?那 f…...
Jetpack Compose — 入门实践
一、项目中使用 Jetpack Compose 从此节开始,为方便起见,如无特殊说明,Compose 均指代 Jetpack Compose。 开发工具: Android Studio 1.1 创建支持 Compose 新应用 新版 Android Studio 默认创建新项目即为 Compose 项目。 注意:在 Language 下拉菜单中,Kotlin 是唯一可…...
通过着装人体剪影预测关键点,以获取人体的二维尺寸数据。复现过程包括获取或生成3D人体数据集、生成轮廓图像、训练模型等步骤
根据文献《1_Clothes Size Prediction from Dressed-Human Silhouettes》复现方法,主要通过着装人体剪影预测关键点,以获取人体的二维尺寸数据。复现过程包括获取或生成3D人体数据集、生成轮廓图像、训练模型等步骤。 以下是进行复现的大致步骤…...
力扣HOT100之哈希:49. 字母异位词分组
这道题自己先想了一遍,定义了一个比较字符串的函数,用二重循环和一个数组来实现字符串的比较,若两个字符串是异位词,那么就返回true,否则返回false,在主函数中,同样用一个二重循环来遍历向量中的…...
基于单片机的智慧音乐播放系统研究
标题:基于单片机的智慧音乐播放系统研究 内容:1.摘要 随着科技的飞速发展,人们对音乐播放系统的智能化和个性化需求日益增长。本研究的目的是设计并实现一个基于单片机的智慧音乐播放系统。采用单片机作为核心控制单元,结合音频解码模块、存储模块和人机…...
pytest框架 核心知识的系统复习
1. pytest 介绍 是什么:Python 最流行的单元测试框架之一,支持复杂的功能测试和插件扩展。 优点: 语法简洁(用 assert 替代 self.assertEqual)。 自动发现测试用例。 丰富的插件生态(如失败重试、并发执…...
nginx 代理 redis
kubernetes 发布的redis服务端口为 31250 通过命令查询 [miniecs-88500735 /]$ minikube service redis --url http://192.168.49.2:31250[rootecs-88500735 /]# vi /etc/nginx/nginx.conf配置nginx.conf stream {upstream redis {server 192.168.49.2:31250;}server {liste…...
什么是:分布式贝叶斯推断
什么是:分布式贝叶斯推断 分布式贝叶斯推断(Distributed Bayesian Inference)是一种在分布式计算环境下进行贝叶斯统计推断的方法,旨在利用多节点或多设备的并行计算能力,高效处理大规模数据或复杂模型。其核心思想是将数据、模型或计算过程分解到多个节点上,通过协作完…...
C# 命名空间(Namespace)详解
在C#中,命名空间(Namespace)是一种封装和组织代码的方式,它允许将相关的类、接口、结构体和枚举等类型组织在一起,以避免命名冲突,并提供了一种逻辑上的分组方式。命名空间的使用有助于提高代码的可读性、可…...
ASP.NET Core JWT认证与授权
1.JWT结构 JSON Web Token(JWT)是一种用于在网络应用之间安全传输声明的开放标准(RFC 7519)。它通常由三部分组成,以紧凑的字符串形式表示,在身份验证、信息交换等场景中广泛应用。 2.JWT权限认证 2.1添…...
Docker参数,以及仓库搭建
一。Docker的构建参数 注释: 1.对于CMD,如果不想显示,而是使用交互界面:docker run -ti --rm --name test2 busybox:v5 sh 2.对于CMD,一个交互界面只可以使用一个,如果想多次使用CMD,则用ENTR…...
hooks useModule自定义hooks (二次封装AgGridReact ag-table)自定义表头,自定义表头搜索
场景业务: 多次运用AgGridReact的table 列表 思路: 运用自定义hooks进行二次封装: 通用配置例如:传参的参数,传参的url,需要缓存的key这些键值类 定制化配置例如:需要对table 的一些定制化传…...
机试准备第11天
第一题是浮点数加法,目前写过最长的代码。 #include <stdio.h> #include <string> #include <iostream> #include <vector> using namespace std; int main() {string str1;string str2;while (getline(cin, str1) && getline(cin…...