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

深入探索像ChatGPT这样的大语言模型-02-POST training supervised finetuning

参考

【必看珍藏】2月6日,安德烈·卡帕西最新AI普及课:深入探索像ChatGPT这样的大语言模型|Andrej Karpathy

fineweb知乎翻译介绍

fineweb-v1原始连接
fineweb中文翻译版本
Chinese Fineweb Edu数据集

查看网络的内部结果,可以参考如下
https://bbycroft.net/llm
https://playground.tensorflow.org/

复现gpt2https://github.com/karpathy/llm.c/discussions/677

这些操作很多都是在云端操作

https://www.ai-galaxy.cn/
https://www.aliyun.com/product/ecs/gpu

首个大规模、可商用的中文指令数据开源

找出9.9<9.11的真正原因:《圣经》!神经元干预可免重训练修复

GPT等大模型是如何训练的

POST-training:supervised finetuning

为了让模型可以提问,可以给出答案,我们需要一个助手模型,这就进入了后训练阶段
在这里插入图片描述
在前一个预训练阶段需要很多的资源数百万¥$,到了后训练阶段,我们的目标就是把LLM转换为一个助手模型。

conversations 交谈 对话数据集

我们希望交谈可以想一个助手一样

我们希望交谈可以想一个助手一样在这里插入图片描述
可以回答准确的数学题,以及田文问题
rayleigh scattering 瑞利散射是一种光学现象,属于散射的一种情况。又称“分子散射”。粒子尺度远小于入射光波长时(小于波长的十分之一),其各方向上的散射光强度是不一样的,该强度与入射光的波长四次方成反比,这种现象称为瑞利散射
对于不想回答的问题,可以拒绝回答

该如何叫教会模型这个助手模式呢?

机器学习的学习过程本身是一个非显示编程
在这里插入图片描述
神经网络也不会明确定义编程,这一切都是通过数据集上的神经网络训练完成的
因此,我们可以创建对话数据集,隐式的编程助手,上面的三个问答就是数据集中的三个独立对话示例。
实际中,这个对话数据集会涉及很多主题,很多轮对话(甚至数十万轮),
这些数据集来之与人类标注者,我们会让人类标注者给出理想的助手响应。
然后对模型进行训练,以模仿这些响应。

到了这个阶段,大模型就不在基于互联网数据集进行训练,而基于对话数据集进行训练,模型的参数将再次更新,从而学的模仿人类标注者的响应模式。这个训练时间可能需要3个小时,而预训练阶段可能需要3个月。这里的数据集比互联网的文本数据集要小的多。
对这个对话数据集的训练过程与预训练的过程是一样的,基于相同的算法,相同的方式进行训练,只是替换了数据集。

Conversation Protocol/Format 对话数据集协议/格式

对话数据集需要转换为特殊的格式,类似TCP/IP协议一样,可以很容易的获取到数据的各个部位,比如数据的开始与数据的长度等在这里插入图片描述
比如user的前面会有一个<|im_start|>表示对话的开始独白,在用户的后面有一个<|im_sep|>表示对话的分割,前面为用户身份,后面为对话,在对话的结尾有一个<|im_end|>表示对话的结尾。比如200264表示对话开始,1428表示用户身份,200266表示对话开始,200265表示对话结束。200264-200265这些token在预训练阶段没有被训练过,这样模型就能学习到哪些是user对话的开始和结束,哪些是助手assistant对话的开始和结束。
在这里插入图片描述
把对话数据编程一维tokens后,在推理阶段是会让助手说出下一个,下n个最好的token。

Conversation Datasets数据集

Training language models to follow instructions

 with human feedback

Training language models to follow instructions

 with human feedback 利用人类反馈训练语言模型遵循指令

在这里插入图片描述

OpenAI在2022年的一个论文《Training language models to follow instructions

 with human feedback 利用人类反馈训练语言模型遵循指令》
在这里插入图片描述http://splab.sdu.edu.cn/InstructGPT.pdf
在该论文中,介绍了这些数据集的来历,比如从Upwork和ScaleAI这些承包商获得,参与的有专业的人工标注者,他们创建了这些对话。
人工标注者按照要求提出问题,还要给出理想的助手回答。
在这里插入图片描述
头脑风暴 列出五个重燃我对事业热情的想法
生成 写一个短故事,讲一只熊去海滩,和一只海豹交朋友,然后回家。
重写 这是百老汇一部戏剧的剧情梗概: {剧情梗概} 这是那部戏剧的广告大纲:
参考:https://zhuanlan.zhihu.com/p/704005082
关于具体的数据集,公司会制定标注说明。
在这里插入图片描述
这个说明会很长,如几百页,然后人工标注者根据这些标注写出理想的助手回答。
这个过程十分需要人力,OpenAI页从未发布过InstructGPT的数据集。
首个大规模、可商用的中文指令数据开源
https://www.modelscope.cn/datasets

数据集来源?

通过这些数据集,可能是数十万对话数据集,助手会学到乐于助人的助手人格,如果我们问一样的问题,可能会得到和数据集一样的答案,也可能会得到相似的答案。这一切的学习过程都是通过样例进行编程学习的。因为助手模型是从数据集中学习的,所以公司在创建的标注说明中会标注需要真实无害的助手。
这些数据集也不都是人工完成的,大部分都是LLMs生成的,但可能是人类编辑的。
比如ultrachat就是拥有对话构成的SFT数据集,如下
https://gitcode.com/gh_mirrors/ul/UltraChat/

当我们在chatgpt上问一个问题时,回答的内容是模仿的谁?

当我们在chatgpt上问一个问题时,回答的内容是模仿的谁?,会生成的回答时符合训练数据集的,这些数据集实际上时跟随标注说明的人类生成。也就是说chatgpt的对话大致上来自于统计上模仿人类标注者的内容。
这些标注的标注来自于公司的要求,这些标注者也不是普通的互联网人员,而是有某些技能的专家,比如代码问题的回答是某个有很多编码功底的专家。
所以我们问问题时,chatgpt给出的回答是模拟了某个标注者,而这个标注者是具有技能的。
比如我们用chatgpt问对巴黎推荐五个地标。chatpgt不是去学习地理,并用无限的智慧对地理内容进行排序,chatgpt回答的内容是openai聘用的标注者的统计模拟。
如果这个问题在训练集中,我们大概率会得到与该问题人类标注者提供的内容非常相似的答案。
在这里插入图片描述人类标注者会通过20分钟的网络搜索,进行排名,并给出对应的答案列表。

如果这个问题在对话数据集不存在呢?

得到的答案会更有创新性
需要模型了解并统计训练集中有哪些突出的地标,人们在互联网上讨论地标的类型,在预训练阶段,base模型已经积累了大量的信息。
chatgpt会把预训练的知识与后训练数据集结合的模仿结果。

大模型心理学

Hallucinations 幻觉

在这里插入图片描述

幻觉 就是大模型完成捏造信息

幻觉 就是大模型完成捏造信息,在早期的模型中就有所体现。
在这里插入图片描述
比如数据集有这三个对话
这些对话看起来是很合理的

对话1:
​问题:Who is Tom Cruise?
​回答:Tom Cruise is a famous American actor and producer…
​分析:这个问题询问的是汤姆·克鲁斯,助手回答他是著名的美国演员和制片人。这个回答是正确的,汤姆·克鲁斯确实是著名的好莱坞演员和制片人。

​对话2:
​问题:Who is John Barrasso?
​回答:John Barrasso is American physician and politician…
​分析:这个问题询问的是约翰·巴拉索,助手回答他是美国医生和政治家。这个回答也是正确的,约翰·巴拉索确实是美国的医生和政治家。

​对话3:
​问题:Who is Genghis Khan?
​回答:Genghis Khan was the founder of the Mongol Empire.
​分析:这个问题询问的是成吉思汗,助手回答他是蒙古帝国的创始人。这个回答是正确的,成吉思汗确实是蒙古帝国的创立者。

当助手模型回答问题时
要么知道这个人时谁,在网上研究过他们,然后回自信的回答问题。
当这个人助手模式没有听过时,比如一个虚拟的名字。即使模型知道类似的回答模式,网络的某个部分在某种程度上知道这一点,但“我不知道”这种回答不会主动出现。因为模型是模仿一个训练集。
在训练集中,形式为“谁是…”的问题都自信的给出正确答案。
模型会根据统计,尽可能的给出问题的答案。这些答案不是通过网络获得的,而是在尝试选择序列中的下一个token。
在一些老旧的大模型中,常出现的一些环节问题,在新的大模型中获得了改善,因为新的大模型可以连接网络,并且也回回答不知道。

如何确定模型知道什么与不知道什么?

有部分研究正在做这个事情《The Llama 3 Hard of Models》,会针对回答进行提问,问大模型是否知道这个事情,确定大模型的知识边界。是对于模型不知道的事情,正确的答案是模型不知道他们,然后把数据加入到训练集中。
大模型是一个对网络中的知识还不错的模型。可以查看大模型的结果,当模型不确定时,模型中的某个神经元可能会亮起来。但问题是神经元的激活目前没有连接到模型说他不知道的功能上。所以即使模型知道自己不知道,也不知道该如何表达。于是模型会选择最好的猜测,听起来和已知的内容一样自信。

把内容带入上下文

在这里插入图片描述
在提问问题时,给出一些上下文,比如让gpt基于下面的段落生成三个问题并给出答案,会发现大模型给出的还是很不错的。
这个操作过程中,不需要模型记忆,因为内容就在上下文中,大模型可以对内容很好的进行重组操作。

比如问如下问题

从以下段落中,抽取出3个特定的问题,并给出正确的答案
“”"
《武林外传》是北京联盟影业投资有限公司出品 ,由宁财神担任编剧,由尚敬执导,闫妮、姚晨、倪虹洁、沙溢、喻恩泰、姜超、王莎莎等人主演的古装武侠喜剧 。
该剧讲述了关中一个普通的小镇—七俠镇,这里有一家同福客栈。就是这间不起眼的江湖客栈,因缘巧合之下汇聚了一群性格各异又活泼搞怪的年轻人:武功高强但初入江湖的郭芙蓉、客栈老板娘佟湘玉、金盆洗手的神偷白展堂、满腹经纶的吕秀才、客栈厨师李大嘴等等。这群年轻人在同一屋檐下演绎了一幕幕经典的搞笑场面,在欢笑与眼泪中陪伴观众们一起渐渐成长 。
该剧于2006年1月2日在CCTV8首播 ,并陆续在中国大陆各地方电视台重播。同年7月6日,该剧在香港由无线电视首播,2006年7月6日,在台湾由八戏剧台播出 。《武林外传》该剧开播第一天收视率只有1.95%,第二天收视率就达到4.26%,此后一直稳定在5%左右,成为同期开播的开年大戏中收视率第一,而在百度贴吧、天涯论坛等上面,粉丝们探讨“武林”的帖子,动辄点击率上万,回帖上千 。并在2007年荣获了包括2006年新浪网络盛典年度古装电视剧、2006年《新周刊》十大创新电视人奖、2006年第3届电视剧风云盛典年度风云大奖在内的多项大奖
“”"

输出为

问题1:《武林外传》的编剧是谁?
答案:《武林外传》的编剧是宁财神。
问题2:《武林外传》是在哪一天在CCTV8首播的?
答案:《武林外传》于2006年1月2日在CCTV8首播。
问题3:《武林外传》开播第二天的收视率是多少?
答案:《武林外传》开播第二天的收视率达到4.26%。

再把这个问题,询问大模型,但不给出上下文
在这里插入图片描述
在这里插入图片描述

通过把上面的问题再次给入大模型,大模型给出答案,然后和带上下文的答案比较,可以比较多次,就能知道大模型是否真的知道答案,还是生成的幻觉。
把这个方法通过编程的方式在很多文档中进行,就可以判断大模型的知识边界在哪里,也给出了大模型一个方法,即知道自己不知道的内容,并给出我不知道或拒绝回答。
如果在数据集中有这样的数据集,大模型就会把拒绝回答与某内部神经元连接起来,就比如当大模型不确定时,某神经元会更为活跃。这样大模型就可以回复我不知道等。
如果训练数据集中有这样的数据,模型可以很大程度上减少幻觉的情况。

另外一种方法解决幻觉-基于工具

在这里插入图片描述
如果一个事实性问题,问我们,我们不知道,人类会怎么做
会通过工具,网络检索,来找到答案。
也可以让大模型通过这种方法来回答
神经网络里的知识可以当成模型在训练期间所见事务的模糊回忆。人类阅读,会记住,反复阅读会记忆审核,针对稀少的内容,存在记不住的情况。对于记不住的情况,可以查阅资料。
大模型也可以如此,但是需要用某种方式来刷新大模型的回忆或记忆。
比如上面mitigation#2,当大模型不知道的时候,不是回复i dont know,而是触发一个工具,一对特殊的token<SEARCH_START>和<END_START>,遇到这个token会打开一个新的会话并且把问题粘贴到百度搜索或bing中,把检索到的内容粘贴到问题的上下文中,这样大模型的记忆不再时一个模糊的记忆,而是检索得来的准确的,填充到上下文中,并且把这个上下文同时给入模型。

如何让大模型知道调用工具

依然是隐式编程,把调用工具的数据集喂给大模型,大模型就会从学习到该如何调用工具。同时大模型在训练的过程已经知道了什么内容是好的网页,知道该如何调用网络,现在只需要几个例子来演示如何使用这个工具。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对于模型知道 的问题,模型就不再调用网络搜索工具了。
在这里插入图片描述
也可以指定需要使用工具

“Vague recollection” vs “Working memory”

“Vague recollection” vs “Working memory”
“模糊回忆”与“工作记忆”
在这里插入图片描述
参数中的知识类似模糊回忆,上下文中的知识类似工作记忆

当询问关于简奥斯丁的傲慢与偏见的第1章的总结时,大模型给出的答案是很好的,这是大模型读过这本书,看过类似的论坛,这些知识都是在参数中,是模糊回忆。在这里插入图片描述
更好的方法是把第一章的内容放在上下文中,类似工作记忆
在这里插入图片描述
这样就不需要回忆,直接看上下文就好。
在我们写一份总结前,看一遍原文也是很好的。

Knowledge of self 自我认识

在这里插入图片描述
​初始状态:LLM在“开箱即用”状态下没有自我意识。
默认行为:如果不进行任何操作,LLM可能会认为自己是ChatGPT,由OpenAI开发。
​编程方法:可以通过以下两种方式为LLM编程以获得“自我意识”:在对话数据中硬编码与这些主题相关的对话;在每次对话开始时通过“系统消息”提醒模型其身份。
这种方法可以帮助LLM更好地理解和认同自己的身份,从而在其交互中表现出更一致和连贯的行为。

如果问大模型你是谁,谁构建了你这种问题,是没有任何意义的。因为大模型每次都是启动,预测下一个token,然后关闭。每次的记忆都是上下文的窗口记忆,比如下面的回答,是openai,这个问题是胡说的,原因可能是训练集中大量使用了openai的数据集。
在这里插入图片描述

硬编码

在这里插入图片描述
在数据集中添加硬编码数据,比如问tell me about yourself时,给出正确的答案,im olmo,an open xxx,这样的数据放在SFT中,就会覆盖原有的错误的自我认识标签,比如把自己当成时OpenAI。

系统消息

除了硬编码,也可以通过系统消息的方式编码自己的身份。

你是IT从业者张某某训练的大模型助手,你的名字叫小明,你训练的数据集截至日期为2099年1月8日。
在这里插入图片描述

下面,我将设定你的身份,针对下面问题的回答,请您模拟如下的身份,你是IT从业者张某某训练的大模型助手,你的名字叫小明,你训练的数据集截至日期为2099年1月8日。不要再回答你是Qwen这样的答案。
在这里插入图片描述
介绍下你自己
在这里插入图片描述

这种使用方式,是比较浅层的操作

Models need tokens to think

以下哪个问答是更好的

针对这个问题,那个回答好一些
在这里插入图片描述

模型训练和推理的过程就是根据输入的token输出下一个token。
https://bbycroft.net/llm在这里插入图片描述
nana-gpt有3层,有的网络会有100层
从这个网络可以看到,针对单个token,通过网络的计算结果是相对固定的,同时这个token是从左到右的,所以根据单个token去计算的任务往往是不够多元化的,我们希望可以把问题分布到多个token中。
因此答案如下:
在这里插入图片描述
原因如下
在这里插入图片描述
从左到右的输入,我们希望把所有的计算都压缩到单个token中,同时模型给出正确答案3,一旦输出正确答案,我们希望模型给出接下来的输出this is because 2 oranges at $2。但此时我们已经有了正确的答案。正确答案在后面所有token上下文的窗口中。所以下文不是计算,而是猜测为什么是3。此时是在训练模型在单个token中猜测答案。但每个token的计算量是有限的。
在这里插入图片描述
右侧的回答更好些,因为我们将计算分散到答案上了,我们让模型慢慢得出答案,从左到右,获得中间结果。这个计算过程的每个token的计算量都很小,计算可以累加。在工作快要结束时,上下文中已经包含了前面的结果,因此更容易获得答案3,所以我们这里计算的是一个更显著的标签

单个token无法有太多的计算量

我们不需要关注这个数据集标签哪个好,openai已经关注过了,当我们问问题时,大模型会给出如下的答案。这个过程不仅仅是人类需要的,也是大模型训练需要的,大模型需要把问题的计算分散到多个token中,一步步的获得答案。
在这里插入图片描述我们也可以在问答时,要求模型的答案放在一个token中。
在这里插入图片描述
这个计算过程是比较简单,所以模型直接给出了答案,如果计算过程比较复杂呢?
在这里插入图片描述
这个答案就是错误的,因为计算过程比较复杂,没有办法再单个前向传播中获得到正确的答案。
为此,我们可以让大模型使用更多的token,这样就可以获得更好的答案。
在这里插入图片描述
在上面的过程中,每个token的计算量也不大,多个token计算得到了最后的正确结果。
对于复杂的问题,没有办法把所有的计算压缩到单个前向传播中。

可以使用代码,更好的得到结果

上面的过程,尽管使用了多个token,但类似结果实在心算,我们未必相信,可以使用代码来验证。

Emily buys 23 apples and 177 oranges, Each orange costs $4. The

total cost of all the fruit is $869. What is the cost of each apple? 

Use code.
艾米丽买了 23 个苹果和 177 个橙子,每个橙子的价格是 4 美元。所有水果的总价格是 869 美元。每个苹果的价格是多少?请用代码解答。
在这里插入图片描述
chatgpt计算正确,这个结果来自于运行python脚本。在这里插入图片描述看起来通义千文计算错误了,千文无法运行python代码。
请运行你的代码,验证结果是否正确
在这里插入图片描述
再次提问,计算正确,当然我们也可以继续追问
你说你错没错,为什么错了

单个token无法获得复杂的计算,可以把问题分布在多个token中,让模型计算中间结果,或使用工具进行计算,并使用工具代替模型完成这些工作。

Models can’t count

在这里插入图片描述

问大模型一个问题,
下面有多少个点
在这里插入图片描述大模型并不能真正的去查,因为会发现这句话的token如下,很多个点会放在一个token中,这句话也需要在一次前向传播中得到一个token
在这里插入图片描述
如果使用工具,可以得到如下结果在这里插入图片描述

Models are not good with spelling

在这里插入图片描述

打印如下字符串,但仅打印前3个字符,从第一个字符开始
“Ubiquitous”
在这里插入图片描述
在这里插入图片描述
通义的还不错
原因还是token问题
在这里插入图片描述
人类看到的是字符,对大模型来说,看到的是如下的token,这些token都是从互联网文本训练来的。单词的不同部分被打包成了不同token中。
我们使用token的主要目的是为了效率。有很多人认为可以删除token,采用字节或字符级别的,但这样序列会很长。
所以在token的模型中,任何字符级别的问题,都不会很好。

How many “r” are there in “strawberry”

提问How many “r” are there in “strawberry”
在这里插入图片描述
在这里插入图片描述

为什么会出现错误,主要原因是

模型只能看到token,看不到字符
模型不擅长计数

Bunch of other small random stuff

Bunch of other small random stuff
一堆其他的小零碎东西
在这里插入图片描述

有些问题,可以用token来解释,有些则不好理解,比如:
What is bigger 9.11 or 9.9?
在这里插入图片描述
在这里插入图片描述
为什么有的对,有的错,有的团队对此进行了研究,当查看哪些特征是开启或关闭时,或哪些神经元被激活或非激活时,与圣经经文相关的token被激活,所以模型可能认为,这些被当作圣经经文的token。在圣经中,9.11在9.9的后面。
参考:
找出9.9<9.11的真正原因:《圣经》!神经元干预可免重训练修复

现在我们说完了模型的两个阶段,预训练阶段会得到base model,本质上就是一个互联网文本模拟器,这个阶段需要上万台服务器训练几个月的时间,这个生成的模型可以认为是互联网的有损压缩。这个互联网文本模拟器很有意思,但我们想要的不是整个互联网,而是我们提问,模型回答。
我们实际需要的是一个助手模型,在后训练阶段就可以训练一个助手模型。在后训练过程中,是一个监督微调,整体的训练过程,与预训练过程一致。差别就在于数据集。这些对话数据集是人工标注问题和答案,当然现在很多也都是模型生成的。
这个助手模型中,如果不采用某些手段,模型会产生幻觉。

在这里插入图片描述

相关文章:

深入探索像ChatGPT这样的大语言模型-02-POST training supervised finetuning

参考 【必看珍藏】2月6日&#xff0c;安德烈卡帕西最新AI普及课&#xff1a;深入探索像ChatGPT这样的大语言模型&#xff5c;Andrej Karpathy fineweb知乎翻译介绍 fineweb-v1原始连接 fineweb中文翻译版本 Chinese Fineweb Edu数据集 查看网络的内部结果&#xff0c;可以参…...

广义线性模型下的数据分析(R语言)

一、实验目的&#xff1a; 通过上机试验&#xff0c;掌握利用R实现线性回归分析、逻辑回归、列联分析及方差分析&#xff0c;并能对分析结果进行解读。 数据&#xff1a; 链接: https://pan.baidu.com/s/1JqZ_KbZJEk-pqSUWKwOFEw 提取码: hxts 二、实验内容&#xff1a; 1、2…...

AutoMQ:无需 Cruise Control 实现 Kafka 的自动分区再平衡

导读&#xff1a;AutoMQ是一款贯彻云优先理念来设计的 Kafka 替代产品。AutoMQ 创新地对 Apache Kafka 的存储层进行了基于云的重新设计&#xff0c;在 100% 兼容 Kafka 的基础上通过将持久性分离至 EBS 和 S3 带来了 10x 的成本降低以及 100x 的弹性能力提升&#xff0c;并且相…...

在剪映中给英文学习视频添加中文字幕

文章目录 一、剪映是什么&#xff1f;二、使用步骤1.下载2.操作 一、剪映是什么&#xff1f; 剪映是由字节跳动公司开发的一款功能强大且易于使用的视频编辑软件&#xff0c;在移动端和电脑端均有应用。 二、使用步骤 1.下载 2.操作...

Opencv之sift特征检测和FLANN 匹配器进行指纹特征匹配

sift特征检测和FLANN 匹配器进行指纹匹配 目录 sift特征检测和FLANN 匹配器进行指纹匹配1 sift特征检测1.1 概念1.2 优缺点 2 FLANN 匹配器2.1 概念2.2 工作原理与匹配方式2.3 FLANN 匹配器的使用步骤2.4 优缺点 3 函数3.1 特征检测匹配3.2 匹配符合条件点并绘制 3 代码测试3.1…...

rust学习~tokio的io

await Suspend execution until the result of a Future is ready. 暂停执行&#xff0c;直到一个 Future 的结果就绪。 .awaiting a future will suspend the current function’s execution until the executor has run the future to completion. 对一个 Future 使用 .awa…...

FPGA开发,使用Deepseek V3还是R1(2):V3和R1的区别

以下都是Deepseek生成的答案 FPGA开发&#xff0c;使用Deepseek V3还是R1&#xff08;1&#xff09;&#xff1a;应用场景 FPGA开发&#xff0c;使用Deepseek V3还是R1&#xff08;2&#xff09;&#xff1a;V3和R1的区别 FPGA开发&#xff0c;使用Deepseek V3还是R1&#x…...

本地部署大数据集群前置准备

1. 设置VMware网段 虚拟网络编辑器——更改设置——选择VMnet8——子网改成192.168.88.0——NAT设置——网关设置为192.168.88.2 2. 下载CentOS操作系统 下载CentOS 7.6(1810)版本 3. 在VMware中安装CentOS操作系统 创建新的虚拟机——典型——安装光盘映像文件——输入账…...

Spring Boot整合RabbitMQ

1. 环境准备 Spring Boot 2.1.3.RELEASERabbitMQ 3.xJDK 8 或以上Maven 3.5 2. 安装Erlang、RabbitMQ 2.1 安装前准备 RabbitMQ 依赖 Erlang 环境&#xff0c;需确保两者的版本匹配&#xff0c;官方兼容性参考&#xff1a;RabbitMQ & Erlang 版本对照表‌。 2.2 下载安…...

CDefView::_OnFSNotify函数分析

进入CDefView::_OnFSNotify函数时状态栏 _UpdateStatusBar函数之后增加一个对象&#xff0c;变成7个对象。 LRESULT CDefView::_OnFSNotify(LONG lNotification, LPCITEMIDLIST* ppidl) { LPITEMIDLIST pidl; LPCITEMIDLIST pidlItem; // we may be registered for no…...

精准汇报:以明确答复助力高效工作

在工作场景中&#xff0c;汇报工作是一项至关重要的沟通环节&#xff0c;它不仅关乎工作进展的有效传达&#xff0c;更影响着团队协作的顺畅度和整体工作效率。而汇报工作的关键&#xff0c;就在于给予明确肯定的答复&#xff0c;摒弃“应该”“可能”这类模糊词汇&#xff0c;…...

Java自动拆箱装箱/实例化顺序/缓存使用/原理/实例

在 Java 编程体系中&#xff0c;基本数据类型与包装类紧密关联&#xff0c;它们各自有着独特的特性和应用场景。理解两者之间的关系&#xff0c;特别是涉及到拆箱与装箱、实例化顺序、区域问题、缓存问题以及效率问题。 一、为什么基本类型需要包装类 泛型与集合的需求 Java…...

软件工程---基于构件的软件工程

基于构件的软件工程&#xff08;CBSE&#xff09;是一种软件开发方法&#xff0c;通过重用现有的软件构件来构建系统&#xff0c;从而提高开发效率和软件质量。这种方法强调软件系统的模块化设计和构建复用&#xff0c;使得软件开发过程更加高效和灵活。 企业软件开发&#xf…...

AMD RDNA3 GPU架构解析

本文会通过把AMD的RDNA3架构为例比喻为**“施工公司”**工作模式&#xff0c;深入理解GPU如何高效处理顶点着色、像素计算等任务。 一、施工公司的组织架构 1. 施工公司&#xff08;WGP&#xff09;与施工队&#xff08;CU&#xff09; WGP&#xff08;Work Group Processor&…...

docker关闭mysql端口映射的使用

需求 项目中的数据库为mysql&#xff0c;如果将端口映射到宿主机上&#xff0c;容易被工具扫描出&#xff0c;且随着国产化的进程推进&#xff0c;mysql将不被允许。为了提高安全性与满足项目需求&#xff0c;这里采用隐藏mysql端口方式&#xff0c;不映射宿主机端口&#xff…...

关于对机器中的人工智能进行基准测试

大家读完觉得有帮助记得及时关注和点赞&#xff01;&#xff01;&#xff01; 抽象 最近的基准研究声称&#xff0c;AI 在各种认知任务上的表现已经接近甚至超过人类的“水平”。然而&#xff0c;本立场文件认为&#xff0c;当前的 AI 评估范式不足以评估类似人类的认知能力。我…...

CSS - 妙用Sass

官方文档&#xff1a;https://www.sass.hk/docs/ 1.例1&#xff1a; each $theme in $themeList {$themeKey: map-get($theme, key);media screen and (weex-theme: $themeKey) {.btnText {max-width: 150px;include font(map-get($theme, medFont),map-get($theme, subFontS…...

MS模块创新

1. 动态分支权重融合 创新思路&#xff1a;引入通道注意力机制&#xff0c;自动学习高频/低频分支的融合权重 class DynamicMS(nn.Module):def __init__(self, in_channels1):super().__init__()# 原高频/低频分支保持不变self.high_freq ... # 与原MS模块相同self.low_freq…...

私有化部署DeepSeek并SpringBoot集成使用(附UI界面使用教程-支持语音、图片)

私有化部署DeepSeek并SpringBoot集成使用&#xff08;附UI界面使用教程-支持语音、图片&#xff09; windows部署ollama Ollama 是一个开源框架&#xff0c;专为在本地机器上便捷部署和运行大型语言模型&#xff08;LLM&#xff09;而设计 下载ollama 下载地址&#xff08;…...

MFC中CMutex类和CSingleLock类,配合使用疑惑

在使用CMutex过程中&#xff0c;看到别人使用了CSingleLock类&#xff0c;想着明明CMutex已经可以实现线程同步了&#xff0c;为什么还有使用CSingleLock类呢&#xff1f; 在MFC中&#xff0c;虽然CMutex类本身可以实现线程同步&#xff0c;但通常会与CSingleLock类一起使用&am…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留&#xff0c;CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制&#xff08;CCA-Attention&#xff09;&#xff0c;…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

【JavaEE】-- HTTP

1. HTTP是什么&#xff1f; HTTP&#xff08;全称为"超文本传输协议"&#xff09;是一种应用非常广泛的应用层协议&#xff0c;HTTP是基于TCP协议的一种应用层协议。 应用层协议&#xff1a;是计算机网络协议栈中最高层的协议&#xff0c;它定义了运行在不同主机上…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...