机械鹦鹉与真正的智能:大语言模型推理能力的迷思
编者按: 大语言模型真的具备推理能力吗?我们是否误解了"智能"的本质,将模式匹配误认为是真正的推理?
本文深入探讨了大语言模型(LLMs)是否真正具备推理能力这一前沿科学问题,作者的核心观点是:LLMs 本质上是高级的模式识别机器,而非真正具备逻辑推理能力。
首先,作者指出,尽管大语言模型在各类推理能力基准测试中表现出色,但其性能实际上高度依赖于训练数据中的模式识别,而非真正的逻辑推理。其次,文章质疑了目前广泛使用的思维链(Chain-of-Thought)提示词技术。再者,通过对数学推理的深入分析,作者指出 LLMs 实际上并不理解数学概念,而是在寻找和匹配模式。即便在复杂的数学问题中,模型也常常表现出对无关信息的过度敏感性。
本文作者并未贬低大语言模型的价值,而是客观地将其定位为拥有非凡记忆能力的系统,期待未来能够开发出真正具备推理能力的人工智能架构。
作者 | Salvatore Raieli
编译 | 岳扬
image generated by the author using DALL-E
我很少遇到能够进行推理的数学家。— 柏拉图
推理能够引导出结论,但这些结论是否确凿,还需通过经验的验证才能确定。— 罗杰·培根
大语言模型(LLMs)[1]展现出的性能惊人,特别是在自然语言处理[2]的传统领域(比如回答问题)方面表现突出。更令人惊讶的是,它们在那些需要逻辑推理的复杂任务(如编程和数学问题解决)上也取得了进步。长期以来,这些能力一直被认为是人类独有的。因此,当人们提出大语言模型(LLMs)能够解决那些需要推理的任务时,这个观点引发了激烈的讨论。
大语言模型(LLMs)真的能够进行推理吗?还是它们仅仅是比较高级的模式匹配器(pattern matchers)?
推理能力对于人工智能系统与人类的有效互动以及在执行关键任务时的应用具有决定性意义。这种能力要求系统能够逻辑性地推理(reason logically)、进行推断(conduct inference)、解决问题,并基于现有信息作出决策。在科学探索、医疗健康、金融领域以及教育行业中,能够为我们提供实质性帮助的模型,同样需要具备这些技能。
新模型的问世使得这场讨论愈发激烈。随着 OpenAI GPT-4o1[3] 的发布,人们对使用思维链(COT)训练模型来提高推理能力产生了浓厚的兴趣。经过这种训练的大语言模型(LLMs)所取得的成果让一些公司宣称,现在的 LLMs 已经具备了推理能力,AGI 离我们越来越近了。
因此,当前的我们正处于一场深刻的大辩论之中:一方面,有公司和研究人员坚称这些模型已经拥有了推理能力[4];而另一方面,也有人将 LLMs 贬称为“随机鹦鹉(stochastic parrots)”。
本文将着重探讨以下问题的答案:
- 何谓推理?
- 大语言模型(LLMs)是否具备真正的推理能力,还是仅仅在做鹦鹉学舌?
- 我们对于推理能力的评估方法是否准确无误?
01 何谓推理(reasoning)?
推理是根据现有信息、逻辑和分析内容得出结论或做出决定的基本认知过程。根据亚里士多德的观点,推理可分为两种类型:
- 演绎推理(Deductive reasoning) :从普遍原理中得出具体结论。
- 归纳推理(Inductive reasoning) :通过观察现象来形成一般性结论。
传统观念认为,推理是人类独有的能力。但现在我们发现,灵长类、章鱼甚至鸟类也展现出了一定的推理能力,它们能够进行决策和解决问题。
一般来说,推理被视为解决复杂问题或做出明智选择的过程。这要求识别问题、将其拆分为小问题、发现其中的规律,然后选择最佳解决方案。决策过程也相似,需要识别问题、寻找规律,并在做出选择前对备选方案进行评估。
然而,这些定义存在不明确之处。按照这些标准,LLM 也可以被视为具有推理能力。
02 LLM 能够推理吗?
在一系列评估推理能力的基准测试中(如 GLUE[5]、SuperGLUE[6] 和 Hellaswag[7]),大语言模型(LLMs)的表现甚至超越了人类。有人据此认为,LLMs 可以进行推理并得出合乎逻辑的结论。
LLMs 推理能力的提升主要得益于两个方面:
- LLMs 在所有针对推理能力评估设计的基准测试中都表现出了推理能力。
- 随着模型参数、token 数量和计算资源的增加,模型的新特性不断涌现。
采用思维链(CoT)等技巧,可以让模型发挥其潜力。如果我们认为 LLMs 不具备推理能力,那么我们就需要对上述观点提出质疑。
2.1 LLMs 在推理能力基准测试中的惊艳表现
当有人声称 LLM 不会推理时,AGI 的支持者会回应说:“看看推理能力基准测试[8]的结果。”这就像是“鸭子测试(duck test)”:如果它能像人一样解决问题,做出决策,甚至在推理能力基准测试中胜出,那么它很可能就具有人类拥有的推理能力。
然而,也有学者对此表示怀疑1。模型看似能够进行复杂的推理,但实际上它们依赖的是概率模式匹配,而非严谨的形式推理(formal reasoning)。
模型对特定 tokens 的过度依赖表明,它更多的是在利用输入数据的表面特征,而非深入理解背后推理任务的本质。—— source[9]
换言之,这些脆弱的表现揭示了 LLMs 在遇到与训练过程中所见模式不同的新案例时,缺乏泛化能力。一旦改变例子中的 tokens,就会导致逻辑错误(因为模型无法将新例子与训练数据中的模式相对应)。因此,模型对于测试案例极为敏感,容易受其影响(这也解释了为何模型有时看似推理能力惊人,有时却会以失败告终)。
通过扰动例子中的 tokens,我们可以看到模型的脆弱性,扰动导致 LLM 无法解决问题(说明其“推理”过于依赖特定的 tokens,并将它们与训练集中的内容相匹配)。这一点通过训练数据中例子的出现频率与测试表现之间的相关性得到了验证8。
“图论中经典的‘二十五匹马’问题。上面两幅子图由 GPT-4o 生成,仅供参考,通过将‘马’改为‘兔子’来演示这一概念,这与问题的基本逻辑无关。下面两幅子图显示的是 GPT-4 和 Claude 的实验结果,其中动物名称和数量的扰动导致性能显著下降”。图片来源:https://arxiv.org/pdf/2406.11050
这种现象被称为“提示词敏感性”(即模型对于语义上等价的不同提示词会有不同的反应)11-12。这意味着模型对于与训练文本更为贴近的提示词会有更好的响应。
大语言模型(Large Language Models,LLM)同样对噪声敏感2。实际上,这些模型很容易受到无关上下文的影响,导致其在进行推理时的表现大打折扣。此外,即便是那些专门用于提升推理能力的提示词技巧[10],也无法完全消除噪声的影响。这表明,噪声对模型记忆中模式识别能力的干扰是显著的。
2.2 智力被视为一种“涌现属性”
许多人认为,智力是随着生物系统自然趋向于复杂化和能力提升而逐渐涌现的[11]。如果生物不能适应这种变化,就会在进化压力下被淘汰。因此,进化过程会导致生物变得越来越聪明或越来越特化。智力就是在这样的压力下逐步进化而来的。智力的发展显然需要资源,因此大脑发展到了支持智力发展的水平。有些人认为,在模式训练(pattern training function)中的损失函数就如同一种进化压力。因此,一旦模型拥有了足够的“神经元”,它们就能够发展出推理能力(用专业术语来说,就是随着模型规模的扩大,推理能力逐渐显现)。
如前所述,这种推理能力的增强被认为是模型规模增加的结果(无论是参数的数量还是训练 tokens 的数量)。但是,在一些学者看来,推理能力是一种需要达到一定参数阈值才能显现的涌现属性。然而,后续的研究表明,大语言模型(Large Language Models,LLMs)中的涌现属性[12]可能是一种测量误差,因此,整个理论就与推理能力的突然出现3, 13有关了。
2.3 CoT is not all you need
其他学者认为,大语言模型(Large Language Models,LLMs)本身具备推理能力,但这种能力需要通过特定方式来激活。思维链(Chain-of-thought,CoT)提示词就是这样一种方法,它通过中间推理过程帮助模型释放其潜力,进而引导模型在解决算术问题时得出正确答案4。然而,几周前的一篇文章对 CoT 的实际效用提出了质疑5:
在 MMLU 基准测试中,CoT 带来的性能提升,多达 95% 是因为问题或生成的输出中包含了“=”符号。对于非数学问题,我们并未发现任何迹象表明 CoT 在什么情况下会有帮助。—— source[13]
由此可见,CoT 在解决数学问题上的确有所帮助,但它并不能真正激活 LLM 的推理潜力。尽管如此,CoT 仍被吹嘘为灵丹妙药,并被认为是最新一代 LLMs 推理能力的基础[14]。
通过对思维链(Chain-of-thought,CoT)相关文献的元分析发现,无论是在数学领域还是其他类型的符号推理领域,CoT 都能带来显著的性能提升(红色虚线所示为不同实验中 CoT 带来的平均改进效果)。图片来源:https://arxiv.org/pdf/2409.12183
这些发现似乎表明,LLMs 并不具备常识推理能力,但这并不意味着它们完全不具备其他类型的推理能力。
LLMs 真的能够进行数学推理吗?
尽管数学推理似乎是 LLMs 在推理方面的优势,但有研究表明,LLMs 可能只是在识别模式(patterns)。也就是说,它们在寻找模式(patterns)时,并不真正理解这些数学符号的含义。
一些研究者指出6,LLMs 在数学上无法进行形式推理(formal reasoning),因为它们不能制定出行动计划(这里所说的计划是指一系列行动策略,通过执行这些策略,可以从初始状态达到期望的最终状态)。没有这样的计划,模型就只能简单复现训练中遇到的模式(patterns)[15],而无法真正解决问题。在某些情况下,甚至可能是用户无意中引导 LLM 找到了答案7:
这就是所谓的“聪明的汉斯效应(The Clever Hans Effect)”,LLM 只是在进行猜测,而真正引导它的是处于环路中的人类,他们凭借对正确与错误解决方案的了解,无意中操控了 LLM 的输出 —— 即便他们并非有意为之。因此,确保准确性(如果有的话)的功过都应该归咎于这个环路中的人类。source:https://arxiv.org/pdf/2403.04121
LLMs 所声称的推理能力,有时实际上是由于参与其中的人类在不自觉中提供了有益的、连续的提示词。图片来源:https://arxiv.org/pdf/2403.04121
综上所述,支持大语言模型(LLM)存在推理能力的人们认为,我们之所以看到模型的这些行为,有多方面的原因。但是有几项研究表明,它们与这些观点存在冲突。
尽管那些研究坚称大语言模型(LLM)不具备推理能力,但它们在所有基准测试中都取得了惊人的成绩,甚至在一些复杂的测试中超越了人类的表现[16]。因此,我们提供的证据似乎更多是基于理论,而不是基于大语言模型(LLM)解决数学和复杂问题能力的实证研究。
是否是因为人类对于被大语言模型(LLM)超越而感到不满,还是其中确实存在问题呢?
2.4 发现一名学生在抄袭
无疑,看到有人声称大语言模型(LLM)的表现堪比博士生,这让人感到不悦:
o1-preview 模型的设计初衷是处理具有挑战性的任务,它通过像人一样花更多时间思考和优化回答来应对复杂问题。在测试中,这种方法使得模型在物理、化学和生物等领域的表现接近博士生水平。source:https://venturebeat.com/ai/forget-gpt-5-openai-launches-new-ai-model-family-o1-claiming-phd-level-performance/
暂且不提这种不快,问题在于我们如何衡量这些模型的能力。我们可能并没有用正确的方法来测试它们的推理能力,是时候采用新的评测体系了。
这些模型都在 GSM8K(Grade School Math 8K)[17]数据集上进行测试,这个数据集提供了复杂的算术问题,但由于训练 LLM 时使用了数十亿个数据 tokens,存在答案泄露的风险。此外,这个数据集只提供了一个固定问题集上的单一度量标准,对我们了解 LLM 的推理能力帮助有限(有趣的是,LLM 可能在推理完全错误的情况下仍然给出正确答案)。而且,这个数据集是静态的,不允许我们改变测试条件。
在这项研究中,研究者提出了一个新的基准测试数据集 GSM-Symbolic[18] 9,它通过使用符号模板生成不同的问题。通过该数据集,我们可以调整问题的难度,并在测试时提供更精确的控制。这个数据集实际上与之前用于推理测试的数据集相同,只是对问题进行了修改,使得简单的统计模式匹配(statistical pattern matching)变得困难。如果 LLM 真的具备推理能力,它应该能够轻松解决这些问题;但如果它无法进行泛化,那么它将无法完成任务。
GSM-Symbolic 模板创建过程示意图。图片来源:https://arxiv.org/pdf/2410.05229
在对最先进的 LLMs 进行测试时,研究者并未发现模型具备形式推理的能力。这些模型并不稳健,当数值发生变化时,性能就会下降,且在问题复杂性提升时,其处理能力会迅速衰退。
如果向问题中插入看似相关却实际上对推理和结论无影响的语句,模型便容易被误导。模型会将这些语句考虑在内,从而诱发错误。研究指出,模型并没有真正理解数学概念,而是试图将这些语句转化为数学操作。作者们推测,这可能是由于训练数据集中包含了类似需要转化为数学操作的例子。
比如,我们观察到的一种常见情况是,无论上下文如何,模型会将涉及“折扣”的语句理解为“乘法”。这不禁让人质疑,这些模型是否真正掌握了数学概念。来源:https://arxiv.org/pdf/2410.05229
图片来源:https://arxiv.org/pdf/2410.05229
这再次证明,模型甚至在模式(patterns)仅仅是背景噪声的情况下,也会试图寻找这些模式(patterns)。当噪声增强,寻找模式(patterns)的难度加大(或者难以一致性地将这些模式(patterns)映射到解决方案上),模型的性能就会大幅下滑10。这一点同样适用于那些经过 CoT 训练的 LLMs(比如 ChatGPT4-O1[3])。这进一步说明,CoT 并未真正提升模型的推理能力。
图片来源:https://www.arxiv.org/pdf/2409.13373
03 结束语
本文探讨了一个热门话题:LLMs 是否具备推理能力?或者至少是某种形式的推理能力?
我们所展示的研究成果给出了不同的观点,认为 LLMs 实质上是高级的模式匹配机器。 总结来说,这些研究指出:
- LLMs 通过海量 tokens 进行训练,因此存在主要基准测试数据集发生数据污染的风险。即便模型未曾直接见过某个数学问题,它也可能接触过众多类似的案例。
- 凭借其庞大的知识库和与生俱来的模式识别能力(归功于注意力机制和上下文学习[19]),它们能够解决大部分问题。
- 它们在应对问题变化、tokens 偏差以及噪声影响方面的脆弱性,强烈表明 LLMs 并不具备形式推理的能力。最新研究结果显示,即便采用先进的提示词技术,模型仍然容易受到噪声和不相关(甚至可能误导)信息的影响。
- 这些模型能够进行模式匹配,但似乎并不理解解决问题所依据的任何数学概念。
这些发现并未否定 LLMs 的实用性,而是对 LLMs 具备推理能力的观点提出了质疑。 这些结果表明,可以将 LLM 视为拥有非凡记忆力的机器,却无法进行推理(或者可以说是迄今为止最精巧的“机械鹦鹉”)。这并非贬低创造它们所需的卓越技术,而是对人类智慧结晶的赞叹。 为了更深入地理解 LLMs 的能力,以及开发能够进行推理的新模型架构,可能还需要进一步的研究。
Reference
- Jiang, 2024, A Peek into Token Bias: Large Language Models Are Not Yet Genuine Reasoners, https://arxiv.org/abs/2406.11050
- Shi, 2023, Large Language Models Can Be Easily Distracted by Irrelevant Context, https://proceedings.mlr.press/v202/shi23a.html
- Schaeffer, 2023, Are emergent abilities of large language models a mirage? https://arxiv.org/pdf/2304.15004
- Wei, 2022, Chain-of-Thought Prompting Elicits Reasoning in Large Language Models, https://arxiv.org/abs/2201.11903
- Sprague, 2024, To CoT or not to CoT? Chain-of-thought helps mainly on math and symbolic reasoning, https://arxiv.org/abs/2409.12183
- Valmeekam, 2023, PlanBench: An Extensible Benchmark for Evaluating Large Language Models on Planning and Reasoning about Change
- Kambhampati, 2024, Can Large Language Models Reason and Plan? https://arxiv.org/abs/2403.04121
- Razeghi, 2022, Impact of Pretraining Term Frequencies on Few-Shot Reasoning, https://arxiv.org/abs/2202.07206
- Mirzadeh, 2024, GSM-Symbolic: Understanding the Limitations of Mathematical Reasoning in Large Language Models, https://arxiv.org/abs/2410.05229
- Valmeekam, 2024, LLMs Still Can’t Plan; Can LRMs? A Preliminary Evaluation of OpenAI’s o1 on PlanBench, https://www.arxiv.org/abs/2409.13373
- Lu, 2022, Fantastically Ordered Prompts and Where to Find Them: Overcoming Few-Shot Prompt Order Sensitivity, https://aclanthology.org/2022.acl-long.556/
- Zhao, 2021, Calibrate Before Use: Improving Few-shot Performance of Language Models, https://proceedings.mlr.press/v139/zhao21c.html
- Rogers, 2024, Position: Key Claims in LLM Research Have a Long Tail of Footnotes, https://openreview.net/forum?id=M2cwkGleRL
Thanks for reading!
Hope you have enjoyed and learned new things from this blog!
About the authors
Salvatore Raieli
Senior data scientist | about science, machine learning, and AI. Top writer in Artificial Intelligence
END
本期互动内容 🍻
❓您对未来可能出现的、真正具备推理能力的 AI 系统有什么期待和想象?
🔗文中链接🔗
[1]https://github.com/SalvatoreRa/tutorial/blob/main/artificial%20intelligence/FAQ.md#large-language-models:~:text=Large%20Language%20Models,-What%20is%20a
[2]https://en.wikipedia.org/wiki/Natural_language_processing
[3]https://openai.com/index/introducing-openai-o1-preview/
[4]https://aibusiness.com/nlp/chatgpt-update-claims-reasoning-capabilities-industry-reacts
[5]https://gluebenchmark.com/
[6]https://super.gluebenchmark.com/
[7]https://deepgram.com/learn/hellaswag-llm-benchmark-guide
[8]https://paperswithcode.com/area/reasoning
[9]https://arxiv.org/pdf/2406.11050
[10]https://www.promptingguide.ai/techniques
[11]https://ngsf.in/2021/09/19/intelligence-as-an-emergent-property-in-biological-systems/
[12]https://github.com/SalvatoreRa/tutorial/blob/main/artificial%20intelligence/FAQ.md#large-language-models:~:text=What%20does%20it%20mean%20emergent%20properties%3F%20what%20it%20is%20the%20scaling%20law%3F
[13]https://arxiv.org/pdf/2409.12183
[14]https://openai.com/index/learning-to-reason-with-llms/
[15]https://www.lakera.ai/blog/what-is-in-context-learning
[16]https://www.technologyreview.com/2023/08/30/1078670/large-language-models-arent-people-lets-stop-testing-them-like-they-were/
[17]https://paperswithcode.com/dataset/gsm8k
[18]https://machinelearning.apple.com/research/gsm-symbolic
[19]http://ai.stanford.edu/blog/understanding-incontext/
原文链接:
https://towardsdatascience.com/the-savant-syndrome-is-pattern-recognition-equivalent-to-intelligence-242aab928152
相关文章:

机械鹦鹉与真正的智能:大语言模型推理能力的迷思
编者按: 大语言模型真的具备推理能力吗?我们是否误解了"智能"的本质,将模式匹配误认为是真正的推理? 本文深入探讨了大语言模型(LLMs)是否真正具备推理能力这一前沿科学问题,作者的核…...

本地电脑使用命令行上传文件至远程服务器
将本地文件上传到远程服务器,在本地电脑中cmd使用该命令: scp C:/Users/"你的用户名"/Desktop/environment.yml ws:~/environment.yml 其中,C:/Users/“你的用户名”/Desktop/environment.yml是本地文件的路径, ~/en…...

【系统】Windows11更新解决办法,一键暂停
最近的windows更新整的我是措不及防,干啥都要关注一下更新的问题,有的时候还关不掉,我的强迫症就来了,非得关了你不可! 经过了九九八十一难的研究之后,终于找到了一个算是比较靠谱的暂停更新的方法&#x…...

34. Three.js案例-创建球体与模糊阴影
34. Three.js案例-创建球体与模糊阴影 实现效果 知识点 WebGLRenderer WebGLRenderer 是 Three.js 中用于渲染 3D 场景的核心类。它负责将场景中的对象绘制到画布上。 构造器 new THREE.WebGLRenderer(parameters)参数类型描述parametersObject可选参数对象,包…...

Qt同步读取串口
头文件 #include "InsScpi.h" #include <QObject> #include <QSerialPort>class TestSerial : public QObject {Q_OBJECT public:explicit TestSerial(QObject *parent nullptr);//打开设备bool openDevice(const QString &portName);//关闭设备…...

如何用上AI视频工具Sora,基于ChatGPT升级Plus使用指南
没有GPT,可以参考这个教程:详情移步至底部参考原文查看哦~ 1.准备工作 详情移步至底部参考原文查看哦~ 详情移步至底部参考原文查看哦~ 4.Sora使用 详情移步至底部参考原文查看哦 参考文章:【包教包会】如何用上AI视频工具Soraÿ…...

对象的状态变化处理与工厂模式实现
一、引言 在 C 编程中,有效地处理对象的状态变化以及合理运用设计模式可以极大地提高代码的可维护性、可扩展性和可读性。本文将深入探讨 C 如何处理对象的状态变化以及如何实现工厂模式。 二、C 中对象的状态变化处理 使用成员变量表示状态 class GameCharacte…...

关于IP代理API,我应该了解哪些功能特性?以及如何安全有效地使用它来隐藏我的网络位置?
IP代理API是一种服务,允许用户通过访问经过中间服务器的网络连接来改变其公开的互联网协议地址(IP),从而达到隐藏真实地理位置的效果。以下是您在选择和使用IP代理API时应关注的一些功能和安全性考虑: 匿名度ÿ…...

在Linux上将 `.sh` 脚本、`.jar` 包或其他脚本文件添加到开机自启动
在Linux上将 .sh 脚本、.jar 包或其他脚本文件添加到开机自启动 在Linux环境中,有时需要将一些程序、脚本或应用程序设置为开机时自动启动。这对于那些需要在系统启动时启动的服务或应用非常有用。本文将介绍如何将 .sh 脚本、.jar 包或其他脚本文件添加到Linux系统…...

[Maven]构建项目与高级特性
有关于安装配置可以看我的另一篇文章:Maven下载安装配置与简介。 构建项目的生命周期和常用命令 这一节的内容熟记即可,要用了认得出来即可。 在Maven出现之前,项目构建的生命周期就已经存在。对项目进行清理、编译、测试、部署等一系列工作…...

【系统架构设计师】真题论文: 论数据分片技术及其应用(包括解题思路和素材)
更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 真题题目(2020年 试题1)解题思路论文素材参考Hash 分片原理一致性 Hash 分片原理按照数据范围(Range Based)分片原理项目采用的分片方式的实现过程和效果真题题目(2020年 试题1) 数据分片就是按照一定的规则…...

【bWAPP】XSS跨站脚本攻击实战
别低头,皇冠会掉;别流泪,贱人会笑。 0x01、XSS - Reflected (GET) Low 输入的内容直接输出到页面中: 后台服务端没有对输入的参数进行过滤, 构造一个注入xss payload即可: <script>alert(1)</script> 成功弹窗 Medium 审查…...

Ubuntu 22.04,Rime / luna_pinyin.schema 输入法:外挂词库,自定义词库 (****) OK
测试平台: Ubuntu 22.04 sudo apt install ibus-rime 实例 1 :不实用的 实例 2 :实用的 文件使用说明:已经内嵌在文件中了。 ====================================== 实例 1 :不实用的 一共需要 3 个文件,放在用户文件夹下:~/.config/ibus/rime/ # Test A @ Fi…...

多协议视频监控汇聚/视频安防系统Liveweb搭建智慧园区视频管理平台
智慧园区作为现代化城市发展的重要组成部分,不仅承载着产业升级的使命,更是智慧城市建设的重要体现。随着产业园区竞争的逐渐白热化,将项目打造成完善的智慧园区是越来越多用户关注的内容。 然而我们往往在规划前期就开始面临众多难题&#…...

如何高效获取Twitter数据:Apify平台上的推特数据采集解决方案
引言 在数据分析和市场研究领域,Twitter(现在的X)数据一直是重要的信息来源。但是,自从Twitter更改API定价策略后,获取数据的成本大幅提升。本文将介绍一个经济实惠的替代方案。 为什么需要Twitter数据? …...

第二部分:进阶主题 15 . 安全管理 --[MySQL轻松入门教程]
MySQL 数据库的安全管理是一个多方面的工作,涉及到了解和配置数据库的访问控制、加密、备份与恢复策略、日志记录等多个方面。以下是一些关键点: 1. 用户权限管理 最小权限原则:每个用户应该只被授予完成其工作所需的最低限度的权限。定期审查权限:定期检查用户的权限,确…...

力扣hot100——双指针
283. 移动零 class Solution { public:void moveZeroes(vector<int>& nums) {for (int i 0, j 0; j < nums.size() || i < nums.size(); j) {if (j > nums.size()) {nums[i] 0;continue;}if (nums[j]) nums[i] nums[j];}} }; 双指针,一个指…...

【代码随想录day58】【C++复健】 117. 软件构建(拓扑排序);47. 参加科学大会(dijkstra(朴素版)精讲)
117. 软件构建(拓扑排序) 继续边看解析边做题,思考时的问题做个如下的总结: 1. 存边用什么数据结构? 在题目中,我们需要存储节点之间的依赖关系(边信息)。选择适合的数据结构非常重…...

【NLP 16、实践 ③ 找出特定字符在字符串中的位置】
看着父亲苍老的白发和渐渐老态的面容 希望时间再慢一些 —— 24.12.19 一、定义模型 1.初始化模型 ① 初始化父类 super(TorchModel, self).__init__(): 调用父类 nn.Module 的初始化方法,确保模型能够正确初始化。 ② 创建嵌入层 self.embedding n…...

费解的开关(bfs + 哈希表 or 递推)
题目描述: 25盏灯排成一个5x5的方形。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。 我们用数字“1”表示一盏开着的灯,用数字“0”表示关…...

C语言——实现求出最大值
问题描述:利用C语言自定义函数求出一维数组里边最大的数字 //利用函数找最大数#include<stdio.h>int search(int s[9]) //查找函数 {int i , max s[0] , max_xia 0;for(i0;i<9;i){if(s[i] > max){max_xia i;max s[max_xia];}}return max; } in…...

基于微信小程序的短视频系统(SpringBoot)+文档
💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…...

Flutter 中 Sliver 的各种装饰器介绍与使用
在 Flutter 中,Sliver 是一种可以在滚动视图中实现自定义效果的组件。Sliver 组件可以根据滚动位置动态改变其外观和行为。本文将介绍几种常用的 Sliver 装饰器及其使用方法。 1. SliverAppBar SliverAppBar 是一个可以随着滚动而变化的应用栏。它可以在用户向下滚…...
电感的基本概念
电感的定义: 电感一般是由导线绕成空芯线圈或带铁芯的线圈而制成。 当线圈中有电流通过时,线圈周围就会产生磁场,当线圈中流过的是直流电流时,线圆周围就会产生固定的磁场,线圈产生的物理现象就是电磁铁,当…...

linux基于systemd自启守护进程 systemctl自定义服务傻瓜式教程
系统服务 书接上文: linux自启任务详解 演示系统:ubuntu 20.04 开发部署项目的时候常常有这样的场景: 业务功能以后台服务的形式提供,部署完成后可以随着系统的重启而自动启动;服务异常挂掉后可以再次拉起 这个功能在ubuntu系统中通常由systemd提供 如果仅仅需要达成上述的场…...

HTTP协议和接口测试详解
介绍接口测试前我们先来介绍一下HTTP协议,为什么先要介绍HTTP协议呢因为因为我们做接口测试其实就是用测试工具(postman,fiddler,jmeter等等)或代码来模拟用户使用软件的场景,在我们模拟的时候不像平时功能测试时我们有已经开发完…...

vue3【实战】定义全局方法(两种方案)
以全局方法 calculate 为例 src/utils/calculate.ts export default {sum: function (a: number, b: number) {return a b} }方案1: 依赖注入 provide inject main.ts import calculate from ./utils/calculateapp.provide(calculate, calculate)页面中 // esl…...

基于JavaScript的DBUtils增删改查操作实验
1、实验目的 学习和掌握数据库连接池的配置与管理。使用DBUtils进行增删改查操作。按照步骤,掌握并实现使用DBUtils实现增删改查的全过程。 2、实验所用方法 上机实践 3、实验步骤及截图 创建一个数据库表,使用下面sql语句创建数据库表并插入数据&#x…...

初学stm32 --- 系统时钟配置
众所周知,时钟系统是 CPU 的脉搏,就像人的心跳一样。所以时钟系统的重要性就不言而喻了。 STM32 的时钟系统比较复杂,不像简单的 51 单片机一个系统时钟就可以解决一切。于是有人要问,采用一个系统时钟不是很简单吗?为…...

实现星星评分系统
使用HTML、CSS和JavaScript实现星星评分系统 本文将详细讲解如何使用 HTML、CSS 和 JavaScript 实现一个简单的星星评分系统。用户可以通过点击星星进行评分,并且还能够看到星星的悬浮效果和已选中状态。 1. HTML 结构 我们首先在 HTML 中定义了一个星星评分的结…...