大语言模型简史:从Transformer(2017)到DeepSeek-R1(2025)的进化之路
2025年初,中国推出了具有开创性且高性价比的「大型语言模型」(Large Language Model — LLM)DeepSeek-R1,引发了AI的巨大变革。本文回顾了LLM的发展历程,起点是2017年革命性的Transformer架构,该架构通过「自注意力机制」(Self-Attention)彻底重塑了自然语言处理。到2018年,BERT和GPT等模型崭露头角,显著提升了上下文理解和文本生成能力。2020年,拥有1750亿参数的GPT-3展示了卓越的「少样本」和「零样本」学习能力。然而,「幻觉」问题 — —即生成内容与事实不符,甚至出现「一本正经地胡说八道」的现象 — — 成为了一个关键挑战。2022年,OpenAI通过开发「对话式」的ChatGPT应对这一问题,采用了「监督微调」(SFT)和「基于人类反馈的强化学习」(RLHF)。到2023年,像GPT-4这样的「多模态模型」整合了文本、图像和音频处理能力,使LLM能够以更接近人类的「听」、「说」、「看」能力。近期推出的OpenAI-o1和DeepSeek-R1「推理模型」(Reasoning Model)在复杂问题解决方面取得突破,赋予LLM更接近人类「系统2思维」的深度推理能力,标志着人工智能在模拟人类思维模式上迈出了重要一步。此外,DeepSeek-R1模型以其「超成本效益」和「开源」设计挑战了AI领域的传统规范,推动了先进LLL的普及,并促进了各行业的创新。
1. 什么是语言模型 (Language Models)?
「语言模型」是一种「人工智能系统」,旨在处理、理解和生成类似人类的语言。它们从大型数据集中学习模式和结构,使得能够产生连贯且上下文相关的文本,应用于翻译、摘要、聊天机器人和内容生成等领域。
1.1 大型语言模型(LLMs)
「语言模型」(LMs)和「大型语言模型」(LLMs)这两个术语虽然经常被互换使用,但实际上它们基于规模、架构、训练数据和能力指代不同的概念。LLMs 是 LMs 的一个子集,其规模显著更大,通常包含数十亿个参数(例如,GPT-3 拥有 1750 亿个参数)。这种更大的规模使 LLMs 能够在广泛的任务中表现出卓越的性能。
“LLM”这一术语在 2018 至 2019 年间随着基于 Transformer 架构的模型(如 BERT 和 GPT-1)的出现开始受到关注。然而,在 2020 年 GPT-3 发布后,这个词才被广泛使用,展示了这些大规模模型的重大影响力和强大能力。
1.2 自回归语言模型 (Autoregressive Language Models)
大多数LLMs以「自回归方式」(Autoregressive)操作,这意味着它们根据前面的「文本」预测下一个「字」(或token/sub-word)的「概率分布」(propability distribution)。这种自回归特性使模型能够学习复杂的语言模式和依赖关系,从而善于「文本生成」。
在数学上,LLM 是一个概率模型(Probabilistic Model),根据之前的输入文本 ( w 1 , w 2 , … , w n − 1 ) (w₁, w₂, …, wₙ₋₁) (w1,w2,…,wn−1)预测下一个字$ (wₙ)$ 的概率分布。这可以表示为:
P ( w n ∣ w 1 , w 2 , … , w n − 1 ) P(wₙ|w₁,w₂,…,wₙ₋₁) P(wn∣w1,w2,…,wn−1)
在文本生成任时,LLM通过解码算法(Decoding Algorithm)来确定下一个输出的字。这一过程可以采用不同的策略:既可以选择概率最高的下个字(即贪婪搜索),也可以从预测的概率分布中随机采样一个字。后一种方法使得每次生成的文本都可能有所不同,这种特性与人类语言的多样性和随机性颇为相似。
1.3 生成能力
LLMs的自回归特性使其能够基于前文提供的上下文逐词生成文本。从「提示」(prompt)开始,如下图,模型通过迭代预测下一个词,直到生成完整的序列或达到预定的停止条件。为了生成对提示的完整回答,LLM通过将先前选择的标记添加到输入中进行迭代生成,尤如「文字接龙」游戏。
LLM的文本生成尤如「文字接龙」游戏。
这种生成能力推动了多种应用的发展,例如创意写作、对话式人工智能以及自动化客户支持系统。
2. Transformer革命 (2017)
Vaswani等人在2017年通过其开创性论文“Attention is All You Need”引入了Transformer架构,标志着NLP的一个分水岭时刻。它解决了早期模型如循环神经网络(RNNs)和长短期记忆网络(LSTMs)的关键限制,这些模型在长程依赖性和顺序处理方面存在困难。这些问题使得使用RNN或LSTM实现有效的语言模型变得困难,因为它们计算效率低下且容易出现梯度消失等问题。另一方面,Transformers克服了这些障碍,彻底改变了这一领域,并为现代大型语言模型奠定了基础。
自注意力和Transformer架构
2.1 Transformer架构的关键创新
- 自注意力机制 (Self-Attention):与按顺序处理标记并难以应对长程依赖性的RNN不同,Transformers使用自注意力来权衡每个标记相对于其他标记的重要性。这使得模型能够动态关注输入的相关部分。数学上:
这里,Q、K、V是查询(query)、键(key)和值(value)矩阵,dₖ是键的维度。自注意力允许并行计算,加快训练速度,同时提高全局上下文理解。
- 多头注意力:多个注意力头并行操作,每个头专注于输入的不同方面。它们的输出被连接并转换,从而实现更丰富的上下文表示。
-
前馈网络(FFN)和层归一化(Layer Norm):每个Transformer层包括应用于每个标记的前馈网络,以及层归一化和残差连接。这些稳定了训练并支持更深的架构。
-
位置编码:由于Transformers本身不编码标记顺序,因此添加了位置编码(位置和频率的正弦函数)以表示词序,在不牺牲并行化的情况下保留顺序信息。
2.2 对语言建模的影响
- 可扩展性:Transformers实现了完全并行化的计算,使得在大型数据集上训练大规模模型成为可能。
- 上下文理解:自注意力捕捉局部和全局依赖关系,提高了连贯性和上下文意识。
Transformer架构的引入为构建能够以前所未有的精确性和灵活性处理复杂任务的大规模高效语言模型奠定了基础。
3. 预训练Transformer模型时代 (2018–2020)
2017年Transformer架构的引入为NLP的新时代铺平了道路,其特点是预训练模型的兴起和对扩展的前所未有的关注。这一时期见证了两个有影响力的模型家族的出现:BERT和GPT,它们展示了大规模预训练和微调范式的强大功能。
3.1 BERT:双向上下文理解 (2018)
2018年,谷歌推出了BERT(Bidirectional Encoder Representations from Transformers),这是一种使用Transformer编码器(Encoder)的突破性模型,在广泛的NLP任务中取得了最先进的性能。与之前单向处理文本(从左到右或从右到左)的模型不同,BERT采用了双向训练方法,使其能够同时从两个方向捕获上下文。通过生成深层次的、上下文丰富的文本表示,BERT在文本分类、命名实体识别(NER)、情感分析等语言理解任务中表现出色。
BERT的关键创新包括:
- 掩码语言建模(Masker Language Modeling — MLM):BERT不是预测序列中的下一个词,而是被训练预测句子中随机掩码的标记。这迫使模型在进行预测时考虑整个句子的上下文 — — 包括前后词语。例如,给定句子“The cat sat on the [MASK] mat”,BERT会学习根据周围上下文预测“soft”。
- 下一句预测(Next Sentence Prediction — NSP):除了MLM之外,BERT还接受了称为下一句预测的次要任务训练,其中模型学习预测两个句子是否在文档中连续。这帮助BERT在需要理解句子之间关系的任务中表现出色,例如问答和自然语言推理。
BERT的影响:BERT的双向训练使其在GLUE(通用语言理解评估)和SQuAD(斯坦福问答数据集)等基准测试中取得了突破性的表现。它的成功证明了上下文嵌入的重要性 — — 这些表示根据周围词语动态变化 — — 并为新一代预训练模型铺平了道路。
3.2 GPT:生成式预训练和自回归文本生成(2018–2020)
虽然BERT优先考虑双向上下文理解,但OpenAI的GPT系列采用了不同的策略,专注于通过自回归预训练实现生成能力。通过利用Transformer的解码器(Decoder),GPT模型在自回归语言模型和文本生成方面表现出色。
GPT (2018)
GPT的第一个版本于2018年发布,是一个大规模的Transformer模型,经过训练以预测序列中的下一个词,类似于传统语言模型。
- 单向自回归训练:GPT使用因果语言建模目标进行训练,其中模型仅基于前面的标记预测下一个标记。这使得它特别适合于生成任务,如文本补全、摘要生成和对话生成。
- 下游任务的微调:GPT的一个关键贡献是它能够在不需要特定任务架构的情况下针对特定下游任务进行微调。只需添加一个分类头或修改输入格式,GPT就可以适应诸如情感分析、机器翻译和问答等任务。
GPT-2 (2019)
在原版GPT的成功基础上,OpenAI发布了GPT-2,这是一个参数量达15亿的更大模型。GPT-2展示了令人印象深刻的零样本(Zero-shot)能力,意味着它可以在没有任何特定任务微调的情况下执行任务。例如,它可以生成连贯的文章、回答问题,甚至在语言之间翻译文本,尽管没有明确针对这些任务进行训练。
GPT-3 (2020)
GPT-3的发布标志着语言模型规模扩展的一个转折点。凭借惊人的1750亿参数(175B parameters),GPT-3突破了大规模预训练的可能性界限。它展示了显著的少样本(Few-short)和零样本(Zero-short)学习能力,在推理时只需提供最少或无需示例即可执行任务。GPT-3的生成能力扩展到了创意写作、编程和复杂推理任务,展示了超大模型的潜力。
3.3 GPT的影响及规模的作用
GPT模型的引入,特别是GPT-3,标志着AI的一个变革时代,展示了自回归架构和生成能力的强大功能。这些模型为内容创作、对话代理和自动推理等应用开辟了新的可能性,在广泛的任务中达到了接近人类的表现。GPT-3凭借其1750亿参数证明了规模的深远影响,表明在大规模数据集上训练的更大模型可以树立新的AI能力标杆。
语言建模性能随着模型大小、数据集大小和训练使用的计算量的增加而平稳提升。https://arxiv.org/pdf/2001.08361
在2018年至2020年间,该领域由对规模的不懈追求驱动。研究人员发现,随着模型规模的增长 — — 从数百万到数十亿参数 — — 它们在捕捉复杂模式和泛化到新任务方面变得更好。这种规模效应得到了三个关键因素的支持:
- 数据集大小:更大的模型需要庞大的数据集进行预训练。例如,GPT-3是在大量互联网文本语料库上进行训练的,使其能够学习多样化的语言模式和知识领域。
- 计算资源:强大的硬件(如GPU和TPU)的可用性以及分布式训练技术,使得高效训练具有数十亿参数的模型成为可能。
- 高效架构:混合精度训练和梯度检查点等创新降低了计算成本,使得在合理的时间和预算内进行大规模训练更加实际。
这个规模扩展的时代不仅提升了语言模型的性能,还为未来的AI突破奠定了基础,强调了规模、数据和计算在实现最先进结果中的重要性。
4. 后训练对齐:弥合AI与人类价值观之间的差距 (2021–2022)
GPT-3(一个拥有1750亿参数的LLM)生成几乎无法与人类写作区分的文本的能力引发了关于AI生成内容的真实性和可信度的重大担忧。尽管这一成就标志着AI发展的一个重要里程碑,但也突显了确保这些模型与人类价值观、偏好和期望保持一致的关键挑战。一个主要问题是「幻觉」(Hallucination),即LLM生成与事实不符、无意义或与输入提示矛盾的内容,给人一种「一本正经地胡说八道」的印象。为了解决这些挑战,2021年和2022年的研究人员专注于改善与人类意图的一致性并减少幻觉,导致了监督微调(SFT)和基于人类反馈的强化学习(RLHF)等技术的发展。
4.1 监督微调 (SFT)
增强GPT-3对齐能力的第一步是监督微调(SFT),这是RLHF框架的基础组成部分。SFT类似于指令调优,涉及在高质量的输入-输出对或演示上训练模型,以教它如何遵循指令并生成所需的输出。
这些演示经过精心策划,以反映预期的行为和结果,确保模型学会生成准确且符合上下文的响应。
然而,SFT本身有局限性:
- 可扩展性:收集人类演示是劳动密集型且耗时的,尤其是对于复杂或小众任务。
- 性能:简单模仿人类行为并不能保证模型会超越人类表现或在未见过的任务上很好地泛化。
为了克服这些挑战,需要一种更具可扩展性和效率的方法,为下一步铺平了道路:基于人类反馈的强化学习(Reinforcement Learning from Human Feedback — RLHF)。
4.2 基于人类反馈的强化学习 (RLHF)
OpenAI在2022年引入的RLHF解决了SFT的可扩展性和性能限制。与需要人类编写完整输出的SFT不同,RLHF涉及根据质量对多个模型生成的输出进行排名。这种方法允许更高效的数据收集和标注,显著增强了可扩展性。
RLHF过程包括两个关键阶段:
- 训练奖励模型:人类注释者对模型生成的多个输出进行排名,创建一个偏好数据集。这些数据用于训练一个奖励模型,该模型学习根据人类反馈评估输出的质量。
- 使用强化学习微调LLM:奖励模型使用近端策略优化(Proximal Policy Optimization - PPO)(一种强化学习算法)指导LLM的微调。通过迭代更新,模型学会了生成更符合人类偏好和期望的输出。
这个两阶段过程 — — 结合SFT和RLHF — — 使模型不仅能够准确遵循指令,还能适应新任务并持续改进。通过将人类反馈整合到训练循环中,RLHF显著增强了模型生成可靠、符合人类输出的能力,为AI对齐和性能设定了新标准。
4.3 ChatGPT:推进对话式AI (2022)
2022年3月,OpenAI推出了GPT-3.5,这是GPT-3的升级版,架构相同但训练和微调有所改进。关键增强包括通过改进数据更好地遵循指令,减少了幻觉(尽管未完全消除),以及更多样化、更新的数据集,以生成更相关、上下文感知的响应。
ChatGPT
基于GPT-3.5和InstructGPT,OpenAI于2022年11月推出了ChatGPT,这是一种突破性的对话式AI模型,专门为自然的多轮对话进行了微调。ChatGPT的关键改进包括:
- 对话聚焦的微调:在大量对话数据集上进行训练,ChatGPT擅长维持对话的上下文和连贯性,实现更引人入胜和类似人类的互动。
- RLHF:通过整合RLHF,ChatGPT学会了生成不仅有用而且诚实和无害的响应。人类培训师根据质量对响应进行排名,使模型能够逐步改进其表现。
ChatGPT的推出标志着AI的一个关键时刻,通常被称为「ChatGPT时刻」(ChatGPT moment),因为它展示了对话式AI改变人机交互的潜力。
5. 多模态模型:连接文本、图像及其他 (2023–2024)
在2023年至2024年间,像GPT-4V和GPT-4o这样的多模态大型语言模型(MLLMs)通过将文本、图像、音频和视频整合到统一系统中重新定义了AI。这些模型扩展了传统语言模型的能力,实现了更丰富的交互和更复杂的问题解决。
5.1 GPT-4V:视觉遇见语言
2023年,OpenAI推出了GPT-4V,将GPT-4的语言能力与先进的计算机视觉相结合。它可以解释图像、生成标题、回答视觉问题,并推断视觉中的上下文关系。其跨模态注意力机制允许文本和图像数据的无缝集成,使其在医疗保健(如分析医学图像)和教育(如互动学习工具)等领域具有价值。
5.2 GPT-4o:全模态前沿
到2024年初,GPT-4o通过整合音频和视频输入进一步推进了多模态。它在一个统一的表示空间中运行,可以转录音频、描述视频或将文本合成音频。实时交互和增强的创造力 — — 如生成多媒体内容 — — 使其成为娱乐和设计等行业的多功能工具。
现实世界的影响: MLLMs革新了医疗保健(诊断)、教育(互动学习)和创意产业(多媒体制作)等领域。它们处理多种模态的能力解锁了创新的新可能性。
6. 开源和开放权重模型 (2023–2024)
在2023年至2024年间,开源和开放权重AI模型获得了动力,使先进AI技术的访问民主化。
- 开放权重LLMs:开放权重模型提供公开访问的模型权重,限制极少。这使得微调和适应成为可能,但架构和训练数据保持封闭。它们适合快速部署。例子:Meta AI的LLaMA系列和Mistral AI的Mistral 7B / Mixtral 8x7B
- 开源LLMs:开源模型使底层代码和结构公开可用。这允许全面理解、修改和定制模型,促进创新和适应性。例子:OPT和BERT。
- 社区驱动的创新:像Hugging Face这样的平台促进了协作,LoRA和PEFT等工具使高效的微调成为可能。
社区开发了专门针对医疗、法律和创意领域的模型,同时优先考虑道德AI实践。 开源社区目前处于一个激动人心的阶段,得益于尖端对齐技术的出现。这一进展导致越来越多的卓越开放权重模型发布。因此,闭源和开放权重模型之间的差距正在稳步缩小。LLaMA3.1–405B模型首次历史性地弥合了与闭源对应物的差距。
7. 推理模型:从「系统1」到「系统2」思维的转变 (2024)
2024年,AI开发开始强调增强「推理」(Reasoning),从简单的模式识别转向更逻辑化和结构化的思维过程。这一转变受到认知心理学双重过程理论的影响,区分了「系统1」(快速、直觉)和「系统2」(缓慢、分析)思维。虽然像GPT-3和GPT-4这样的早期模型在生成文本等「系统1」任务上表现出色,但在深度推理和问题解决方面却有所欠缺。
「系统1」与「系统2」思维
7.1 OpenAI-o1:推理能力的一大飞跃(2024)
OpenAI于2024年12月发布的o1模型旨在提高AI的推理能力,特别是在代码生成和调试等复杂任务上表现出色。o1模型的一个关键特征是通过「思维链」(Chain of Thought-CoT)过程增强推理能力,使其能够将复杂问题分解为更小、更易管理的步骤。
推理时间计算与能力
- 思维链:o1模型在提供答案之前花费额外时间「思考」(thinking),通过生成思维链来增强复杂推理,特别是在科学和数学领域。模型的准确性与在回答前用于思考的计算量的对数相关。
- :o1模型套件包括o1、o1-mini和o1 pro。o1-mini比o1-preview更快且更具成本效益,适用于编程和STEM相关任务,尽管它缺乏o1-preview的广泛世界知识。
- 性能:o1-preview在物理、化学和生物学的基准测试中达到了大约博士水平的表现。在美国数学邀请赛中,它解决了83%的问题,相比之下GPT-4o解决了13%。它还在Codeforces编程竞赛中排名在第89百分位。
OpenAI-o1的发布标志着AI开发的一个关键时刻,展示了结合生成和推理能力创造能够像人类一样思考和行动的模型的潜力。随着该领域的不断发展,推理模型有望解锁AI的新前沿,使机器能够应对人类面临的最具挑战性的问题。
8. 成本高效的推理模型:DeepSeek-R1 (2025)
LLMs通常需要极其庞大的计算资源来进行训练和推理。像GPT-4o和OpenAI-o1这样的最先进LLM模型的闭源性质限制了对尖端AI的「普及化」。
8.1 DeepSeek-V3 (2024–12)
2024年12月下旬,「深度求索-V3」(DeepSeek-V3)作为一种成本高效的开放权重LLM出现,为AI的可访问性设定了新标准。DeepSeek-V3与OpenAI的ChatGPT等顶级解决方案相媲美,但开发成本显著降低,估计约为560万美元,仅为西方公司投资的一小部分。该模型最多包含6710亿个参数,其中370亿个活跃参数,并采用专家混合(MoE)架构,将模型划分为专门处理数学和编码等任务的组件,以减轻训练负担。DeepSeek-V3采用了工程效率,例如改进Key-Value缓存管理和进一步推动专家混合方法。该模型引入了三个关键架构:
- 多头潜在注意力(Multi-head Latent Attention — MLA):通过压缩注意力键和值来减少内存使用,同时保持性能,并通过旋转位置嵌入(RoPE)增强位置信息。
- DeepSeek专家混合(DeepSeekMoE):在前馈网络(FFNs)中采用共享和路由专家的混合,以提高效率并平衡专家利用率。
- 多标记预测 (Multi-Token Prediction — MTP):增强模型生成连贯且上下文相关的输出的能力,特别是对于需要复杂序列生成的任务。
DeepSeek-V3的发布引发了全球科技抛售,危及1万亿美元的市值,并导致英伟达股票盘前下跌13%。DeepSeek-V3的价格为每百万输出标记2.19美元,约为OpenAI类似模型成本的1/30。
8.2 DeepSeek-R1-Zero 和 DeepSeek-R1 (2025–01)
仅仅一个月后,2025年1月下旬,DeepSeek通过发布DeepSeek-R1-Zero和DeepSeek-R1再次引起轰动,这些模型展示了卓越的推理能力,训练成本极低。利用先进的强化学习技术,这些模型证明了高性能推理可以在没有通常与尖端AI相关的巨额计算费用的情况下实现。这一突破巩固了DeepSeek作为高效和可扩展AI创新领导者的地位。
- DeepSeek-R1-Zero:一种基于DeepSeek-V3的推理模型,通过强化学习(RL)增强其推理能力。它完全消除了「监督微调」(SFT)阶段,直接从名为DeepSeek-V3-Base的预训练模型开始。它采用了一种基于「规则的强化学习方法」(Rule-based Reinforcement Learning),称为「组相对策略优化」(Group Relative Policy Optimization — GRPO),根据预定义规则计算奖励,使训练过程更简单且更具可扩展性。
- DeepSeek-R1:为了解决DeepSeek-R1-Zero的局限性,如低可读性和语言混杂,DeepSeek-R1纳入了一组有限的高质量冷启动数据和额外的RL训练。该模型经历了多个微调和RL阶段,包括拒绝采样和第二轮RL训练,以提高其通用能力和与人类偏好的一致性。
- 蒸馏DeepSeek模型:DeepSeek开发了较小的、蒸馏版的DeepSeek-R1,参数范围从15亿到700亿,将先进的推理能力带到较弱的硬件上。这些模型使用原始DeepSeek-R1生成的合成数据进行微调,确保在推理任务中表现出色,同时足够轻量化以便本地部署。
DeepSeek 蒸馏DeepSeek模型
DeepSeek-R1在各种基准测试中表现出竞争力,包括数学、编码、常识和写作。根据使用模式,它相比OpenAI的o1模型等竞争对手提供了显著的成本节省,使用成本便宜20到50倍。
8.3 对AI行业的影响
DeepSeek-R1的引入挑战了AI领域的既定规范,使先进LLMs得以「普及化」,并促进了一个更具竞争力的生态系统。其可负担性和可访问性预计将推动各行各业的采用和创新增加。最近,领先的云服务提供商如AWS、微软和谷歌云已在其平台上提供DeepSeek-R1。较小的云提供商和DeepSeek母公司以竞争性定价提供它。
结论
从2017年Transformer架构的引入到2025年DeepSeek-R1的发展,大型语言模型(LLMs)的演变标志着人工智能领域的一个革命性篇章。LLMs的崛起由四个里程碑式的成就标示:
- Transformers (2017):Transformer架构的引入为构建能够以前所未有的精确性和灵活性处理复杂任务的大规模高效模型奠定了基础。
- GPT-3 (2020):该模型展示了规模在AI中的变革力量,证明了在大规模数据集上训练的巨大模型可以在广泛的应用中实现接近人类的表现,为AI所能完成的任务设立了新的基准。
- ChatGPT (2022):通过将对话式AI带入主流,ChatGPT使高级AI对普通用户来说更加可访问和互动。它还引发了关于广泛采用AI的伦理和社会影响的关键讨论。
- DeepSeek-R1 (2025):代表了成本效率的一大飞跃,DeepSeek-R1利用专家混合架构(MoE)和优化算法,与许多美国模型相比,运营成本降低了多达50倍。其开源性质加速尖端AI应用的普及化,赋予各行业创新者权力,并强调了可扩展性、对齐性和可访问性在塑造AI未来中的重要性
原文来自:https://medium.com/@lmpo/%E5%A4%A7%E5%9E%8B%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B%E7%AE%80%E5%8F%B2-%E4%BB%8Etransformer-2017-%E5%88%B0deepseek-r1-2025-cc54d658fb43
相关文章:
大语言模型简史:从Transformer(2017)到DeepSeek-R1(2025)的进化之路
2025年初,中国推出了具有开创性且高性价比的「大型语言模型」(Large Language Model — LLM)DeepSeek-R1,引发了AI的巨大变革。本文回顾了LLM的发展历程,起点是2017年革命性的Transformer架构,该架构通过「…...
14-H指数
给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。 根据维基百科上 h 指数的定义:h 代表“高引用次数” ,一名科研人员的 h 指数 是指他(她)至少发…...
Param ‘serviceName‘ is illegal, serviceName is blank
今天测试nacos服务配置拉取时报了这样一个错误,发现是spring.application.name空值造成的,但是我的bootstrap.yml文件明明配置了,难不成是没有加载bootstrap.yml文件?于是我引入了下面的依赖 <dependency><groupId>o…...
深入剖析Spring MVC
一、Spring MVC 概述 1. 什么是 Spring MVC? Spring MVC 是基于 Spring 框架的 Web 框架,它实现了 MVC 设计模式,将应用程序分为三个核心部分: Model:封装应用程序的数据和业务逻辑。 View:负责渲染数据…...
LLM:RAG
原文链接:LLM:RAG 1、RAG 概览 RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合了信息检索(IR)和 LLM 的技术。它的核心思想是在 LLM 生成回答之前,通过检索相关文档…...
Linux 信号量
Linux 信号量 一、信号量基础概念1.1 同步机制的核心需求1.2 信号量的核心原理1.3 信号量类型对比 二、实战代码解析2.1 共享内存与信号量结合示例2.2 信号量类实现要点 三、关键实现细节分析3.1 初始化三步骤3.2 SEM_UNDO机制3.3 原子操作保证 四、进阶应用场景4.1 生产者-消费…...
如何优化Spark作业的性能
优化Spark作业的性能是一个综合性的任务,涉及多个方面的调整和优化。以下是一些关键的优化策略: 一、开发调优 避免创建重复的RDD: 对于同一份数据,只应该创建一个RDD,避免多次创建RDD来增加性能开销。在对不同的数据…...
ERP对制造业务有何价值?
ERP 的定义 在定义 ERP 之前,我们先从其首字母缩写说起,ERP 代表企业资源规划。我们可以将 ERP 定义为一种企业软件,它帮助组织管理日常业务。从根本上讲,ERP 将客户管理、人力资源、商业智能、财务管理、库存以及供应链功能整合…...
python和pycharm 和Anaconda的关系
好的,下面我会详细说明 Python、PyCharm 和 Anaconda 三者的关系,并逐一解释它们的功能和作用。 1. Python(编程语言) 定义:Python 是一种高级编程语言,设计简洁,易于学习,且功能强…...
网络安全“挂图作战“及其场景
文章目录 一、网络安全挂图作战来源与定义1、网络安全挂图作战的来源2、网络安全挂图作战的定义 二、挂图作战关键技术三、挂图作战与传统态势感知的差异四、挂图作战主要场景五、未来趋势结语 一、网络安全挂图作战来源与定义 1、网络安全挂图作战的来源 网络安全挂图作战的…...
【对比】Pandas 和 Polars 的区别
Pandas vs Polars 对比表 特性PandasPolars开发语言Python(Cython 实现核心部分)Rust(高性能系统编程语言)性能较慢,尤其在大数据集上(内存占用高,计算效率低)极快,利用…...
投资组合风险管理
投资组合风险管理 市场风险 信用风险流动性风险风险指标收益率波动率最大回撤 α \alpha α(詹森指数), β \beta β卡玛比率月胜率上/下行捕获比夏普比率索提诺比率经风险调整的收益率(𝑀2)特雷诺比率信息…...
用 WOW.js 和 animate.css 实现动画效果
用 wow.js 就可以实现动画效果,但由于里面的动画样式太少,一般还会引入 animated.css 第一步:下载 选择合适的包管理器下载对应的内容 pnpm i wow.js animated.css --save 第二步:引入 在main.js中加入: import …...
2024年职高单招或高考计算机类投档线
问题: 这些学校2024年职高单招或高考计算机类投档线分别是多少 回答: 部分学校2024年职高单招或高考计算机类投档线如下: 湖南工业职业技术学院 职高单招:未查询到2024年职高单招计算机类专业明确的录取分数线信息。但在2024年…...
洛谷P11042 [蓝桥杯 2024 省 Java B] 类斐波那契循环数
像是这种填空题的话,就直接暴力还更加省时间,在本地算完后直接提交答案即可 #include<bits/stdc.h> using namespace std;const int N 10000000;bool isnumber(int n) {vector<int> a;int m n;while (n > 0) {a.push_back(n % 10);n / …...
[LeetCode]day25 151.翻转字符串里的单词
题目链接 题目链接 给你一个字符串 s ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 注意:输入字符串 s中可能…...
2026考研趋势深度解析:政策变化+高效工具指南
2026考研深度解析:趋势洞察高效工具指南,助你科学备战上岸 从政策变化到工具实战,这份千字攻略解决99%考生的核心焦虑 【热点引入:考研赛道进入“高难度模式”】 2025年全国硕士研究生报名人数突破520万,报录比预计扩…...
【软考】【2025年系统分析师拿证之路】【啃书】第十一章 软件需求工程(十二)
目录 需求的层次需求工程的主要活动需求的记录技术需求分析需求定义 需求的层次 业务需求用户需求系统需求 需求工程的主要活动 需求获取需求分析形成需求规格需求确认和验证需求管理 需求的记录技术 任务卡片场景说明用户故事 需求分析 方法: 结构化分析&a…...
Cherry Studio 接入本地ollama 搭建可视化deepseek
本文介绍本地下载ollama 后,在cherry studio 中添加本地ollama 查看本地deepseek 模型列表 ollama list 运行模型 ollama run deepseek-r1 验证可以选用ollama 模型...
MapReduce远程调试
个人博客地址:MapReduce远程调试 | 一张假钞的真实世界 MR的远程调试分为两个方面: MapReduce Task远程调试AM(Application Master)远程调试MapReduce Task远程调试 Map Task远程调试 修改mapred-site.xml中的配置项: mapreduce.map.java.opts:Map Task JVM参数设置。…...
知识拓展:设计模式之装饰器模式
装饰器模式拓展 1. 什么是装饰器模式? 装饰器模式(Decorator Pattern)是一种结构型设计模式,允许向一个现有的对象添加新的功能,同时又不改变其结构。装饰器模式通过创建一个装饰类来包装原始类,从而在不修…...
【深度学习】计算机视觉(CV)-目标检测-DETR(DEtection TRansformer)—— 基于 Transformer 的端到端目标检测
1.什么是 DETR? DETR(DEtection TRansformer) 是 Facebook AI(FAIR)于 2020 年提出的 端到端目标检测算法,它基于 Transformer 架构,消除了 Faster R-CNN、YOLO 等方法中的 候选框(…...
C++ Primer 访问控制与封装
欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…...
LSTM细胞状态门控设计详解:数学原理、代码实现与工业级优化方案
一、数学原理深度解析 1.1 细胞状态更新方程 LSTM通过三个门控机制精确控制细胞状态: 遗忘门:f_t σ(W_f[h_{t-1}, x_t] b_f)输入门: i_t σ(W_i[h_{t-1}, x_t] b_i) C̃_t tanh(W_C[h_{t-1}, x_t] b_C)状态更新:C_t f_…...
hive(hdfs)补数脚本
pb级别迁移通常要持续1个月以上。一般的过程是,全量迁移,追平数据,增量同步,校验,补数。 这里的指定补数脚本: 输入需要补数的表,如Input.txt,如果有分区则加补此分区,没…...
Python学习心得函数
一、函数的定义及调用 1.函数的定义: 函数的定义:函数是将一段能实现某种特定功能的代码,使用函数名进行封装,并通过函数名称进行调用。从而达到一次编写,多次调用的目的。 2.函数类型分为两类: &#…...
RabbitMQ服务异步通信
消息队列在使用过程中,面临着很多实际问题需要思考: 1. 消息可靠性 消息从发送,到消费者接收,会经理多个过程: 其中的每一步都可能导致消息丢失,常见的丢失原因包括: 发送时丢失: 生…...
适用于 Windows 仅 0.6MB 且免费无广告的绿色截图工具
软件介绍 YasoCut 可是一款源自 GitHub 的宝藏截图软件,专为 Windows 系统打造,亮点十足。它体积超小,仅有 0.6MB,并且简单易用、免费无广告,还贴心地提供了绿色版本。 这款软件的独特之处在于,和常见截图…...
three.js+WebGL踩坑经验合集(8.2):z-fighting叠面问题和camera.near的坑爹关系
本篇延续上篇内容: three.jsWebGL踩坑经验合集(8.1):用于解决z-fighting叠面问题的polygonOffset远没我们想象中那么简单-CSDN博客 笔者在上篇提到,叠面的效果除了受polygonOffset影响以外,还跟相机的近裁剪面camera.near密切相关ÿ…...
[LeetCode力扣hot100]-链表
相交链表 160. 相交链表 - 力扣(LeetCode) 思路就是遍历两个链表,有相同的部分就可以视为相交。 但是长度不一样,比如两个会相交的链表,headA 的长度为 a c,headB 的长度为 b c,其中 c 是公…...
Deepseek官方整理的13类提示词推荐
最近 deepseek 实在是太火了,网上出现了各种大神教你怎么用好它的免费教程,当然也还有各种需要付费才教你怎么用提示词的课程。但我觉得对于使用 AI 来说,根本就不需要教,关键是要理解一条和 AI 沟通的核心原则:和人交…...
hystrix超详细教学
1、什么是hystrix? 是一个做熔断的框架,当程序被高并发访问时可能会造成微服务的宕机,hystrix可以熔断微服务之间通信。防止后台服务发生雪崩。 2、Hystrix作用 熔断查看微服务请求状态 3、Hystrix使用场景 是在微服务架构下才有意义&am…...
Linux的基础指令和环境部署,项目部署实战(下)
目录 上一篇:Linxu的基础指令和环境部署,项目部署实战(上)-CSDN博客 1. 搭建Java部署环境 1.1 apt apt常用命令 列出所有的软件包 更新软件包数据库 安装软件包 移除软件包 1.2 JDK 1.2.1. 更新 1.2.2. 安装openjdk&am…...
250217-数据结构
1. 定义 数据结构是数据的存储结构,即数据是按某些结构来存储的,比如线性结构,比如树状结构等。 2. 学习意义 数据结构是服务于算法的,为了实现算法的高效计算,所以将数据按特定结构存储。比如使用快速插入或删除的…...
【Java基础】Java数组
前言 在Java编程中,数组是一种非常基础且重要的数据结构。无论你是新手还是有经验的开发者,理解如何有效地使用数组对于编写高效和可维护的代码至关重要。 数组的静态初始化 静态初始化是指在声明数组的同时为其元素赋值。这种方式非常适合于你已经知…...
【拥抱AI】GPT Researcher如何自定义配置LLM
GPT Researcher默认的 LLM(大型语言模型)和嵌入式模型是 OpenAI,因为其卓越的性能和速度。不过,GPT Researcher 支持各种开源和闭源的 LLM 和嵌入式模型,你可以通过更新 SMART_LLM、FAST_LLM 和 EMBEDDING 环境变量轻松…...
网工项目理论1.7 设备选型
本专栏持续更新,整一个专栏为一个大型复杂网络工程项目。阅读本文章之前务必先看《本专栏必读》。 一.交换机选型要点 制式:盒式交换机/框式交换机。功能:二层交换机/三层交换机。端口密度:每交换机可以提供的端口数量。端口速率:百兆/千兆/万兆。交换容量:交换矩阵…...
扩散模型中的马尔可夫链设计演进:从DDPM到Stable Diffusion全解析
一、技术原理与数学推导(附核心公式) 1.1 扩散过程数学建模 马尔可夫链前向过程定义: q(x_{1:T}|x_0) \prod_{t1}^T q(x_t|x_{t-1})噪声调度函数(以余弦调度为例): \beta_t \frac{1 - \cos(\pi t/T)}…...
游戏引擎学习第112天
黑板:优化 今天的内容是关于优化的,主要讨论了如何在开发中提高代码的效率,尤其是当游戏的帧率出现问题时。优化并不总是要将代码做到最快,而是要确保代码足够高效,以避免性能问题。优化的过程是一个反复迭代的过程&a…...
国鑫DeepSeek 671B本地部署方案:以高精度、高性价比重塑AI推理新标杆
随着DeepSeek大模型应用火爆全球,官方服务器总是被挤爆。而且基于企业对数据安全、网络、算力的更高需求,模型本地化部署的需求日益增长,如何在有限预算内实现高效、精准的AI推理能力,成为众多企业的核心诉求。国鑫作为深耕AI领域…...
【YOLOv8】
文章目录 1、yolov8 介绍2、创新点3、模型结构设计3.1、backbone3.2、head 4、正负样本匹配策略5、Loss6、Data Augmentation7、训练、推理8、分割 Demo附录——V1~V8附录——相关应用参考 1、yolov8 介绍 YOLOv8 是 ultralytics 公司在 2023 年 1 月 10 号开源的 YOLOv5 的下…...
Android - Handler使用post之后,Runnable没有执行
问题:子线程创建的Handler。如果 post 之后,在Handler.removeCallbacks(run)移除了,下次再使用Handler.postDelayed(Runnable)接口或者使用post时,Runnable是没有执行。导致没有收到消息。 解决办法:只有主线程创建的…...
深入解析 Flutter 性能优化:从原理到实践
深入解析 Flutter 性能优化:从原理到实践的全面指南 Flutter 是一个高性能的跨平台框架,但在开发复杂应用时,性能问题仍然可能出现。性能优化是开发高质量 Flutter 应用的关键。本篇博客将从 Flutter 的渲染原理出发,结合实际场景…...
springcloud的组件及作用
Spring Cloud是一个用于构建分布式系统的工具集,它提供了一系列组件来简化微服务架构的开发和部署。以下是一些关键的Spring Cloud组件及其作用: 1. 服务注册与发现 Eureka:Eureka是Spring Cloud中的核心组件之一,用于实现服务注…...
认识Vue3
目录 1. Vue3的优势 2. Vue2 选项式 API vs Vue3 组合式API 使用create-vue搭建Vue3项目 1. 认识create-vue 2. 使用create-vue创建Vue3项目 熟悉Vue3项目目录和关键文件 组合式API - setup选项 1. setup选项的写法和执行时机 2. setup中写代码的特点 组合式API - re…...
Node.js 中的 Event 模块详解
Node.js 中的 Event 模块是实现事件驱动编程的核心模块。它基于观察者模式,允许对象(称为“事件发射器”)发布事件,而其他对象(称为“事件监听器”)可以订阅并响应这些事件。这种模式非常适合处理异步操作和…...
【JavaEE进阶】MyBatis通过注解实现增删改查
目录 🍃前言 🍀打印日志 🌴传递参数 🎋增(Insert) 🚩返回主键 🎄删(Delete) 🌲改(Update) 🌳查(Select) 🚩起别名 🚩结果映射 🚩开启驼…...
【GESP C++三级考试考点详细解读】
GESP C三级考试考点解读及洛谷OJ练习题单 1. 数据编码(原码、反码、补码) 考点解读: 理解计算机中数值的二进制表示方式,包括原码(符号位绝对值)、反码(符号位不变,其余位取反&…...
算法——舞蹈链算法
一,基本概念 算法简介 舞蹈链算法(Dancing Links,简称 DLX)是一种高效解决精确覆盖问题的算法,实际上是一种数据结构,可以用来实现 X算法,以解决精确覆盖问题。由高德纳(Donald E.…...
Java状态机
目录 1. 概念 2. 定义状态机 3. 生成一个状态机 4. 使用 1. 概念 在Java的应用开发里面,应该会有不少的人接触到一个业务场景下,一个数据的状态会发生多种变化,最经典的例子例如订单,当然还有像用户的状态变化(冻结…...