报告回顾丨模型进化狂飙,DetectGPT能否识别最新模型生成结果?

news2024/11/14 11:27:50

导读

语言模型给我们的生产生活带来了极大便利,但同时不少人也利用他们从事作弊工作。如何规避这些难辨真伪的文字所产生的负面影响也成为一大难题。

在3月9日智源Live第33期活动「DetectGPT:判断文本是否为机器生成的工具」中,主讲人Eric为我们讲解了DetectGPT工作背后的思路——一种基于概率曲率检测的用于检测模型生成文本的工具,它可以帮助我们更好地分辨文章的来源和可信度,对保护信息真实、防止欺诈等方面具有重要意义。本次报告主要围绕其功能,实现和效果等展开。(文末点击“阅读原文”,查看活动回放。)

d813b70566b2e2a83f71004e7c0b50c3.png

Eric mitchell

斯坦福大学计算机系四年级博士生,由Chelsea Finn 和 Christopher D. Manning 教授指导。研究目标是使神经网络中的知识更易于重用和更新,以适应这个持续变化的世界。研究兴趣为深度学习、元学习和持续学习,特别是在大语言模型的背景下。本科毕业于普林斯顿大学,曾在伦敦 DeepMind 担任研究实习生。曾担任纽约三星人工智能中心的一名研究工程师。空闲时间,他喜欢吉他和人声创作音乐,还喜欢户外活动,尤其是高尔夫和登山。

编辑:李灿

引子:ChatGPT时代下的新困境

阅读时,如果一篇文章辞藻华丽,或是包含许多「看似合理」的例证,我们的大脑就会在潜意识里认为它是可信的,这是人类大脑最普遍的运行逻辑,而大语言模型的一大缺点便是模仿了人类的这一风格。所以它们写出来的文字可能非常通顺,而且看似很有说服力,但却缺少事实佐证,仅仅是华而不实。

比如当我们让ChatGPT写一篇论文时,他会引经据典,分析的有理有据。但问题是,引用和证据都是他胡乱编写的。所以越来越多的人担心这些模型的出现会让网上充斥着各种错误信息,或是被学生利用来完成作业,阻碍他们的学习和写作能力。

纽约时报最近做了一份关于世界各地学生对ChatGPT看法的调查。调查显示,许多学生认为固然ChatGPT能够帮助学习,但是它并不总是正确,还会帮助作弊。

955ba37fc6187294c3d816fe971b5817.png

当然,语言模型的影响不只局限于教育界,就比如CNET(美国一家科技媒体)就发现,在其网站上,有包括个人理财,投资等在内的许多技术文章,都是由同一个模型生成的,这些文章很大一部分都有着巨大的事实错误。

89f291b8df9f391ea33ebb97e09a2a29.png

因此:我们迫切需要一项新的技术来判断一篇文章是否为语言模型所作。

正篇:如何开发用于检测语言模型的新模型

扬长避短:对减少样本量与提高精度的追求

那么该如何实现这项针对语言模型(LM)的检测技术呢?

首先,最简单的方法是直接训练另一个语言模型该方法可以分为以下三步: 

1. 收集大量的数据用于训练。

2. 训练一个二元分类器来区分人类文本和语言模型文本。

3. 最后我们便需要测试他的训练成果能否顺利泛化到测试集。

这种方法的优点是,检测模型可以非常灵活的学习各种强大的语言模型,从而在训练中展现出良好的分类效果。但其缺点也很明显。

首先,我们需要获取大量的数据样本和分类器模型。其次,该类模型很容易过拟合,模型可能在训练集中取得很好的效果,但是如果我们用一些真正的文章来测试他时,模型往往表现不佳。

另一种直观的方法是,基于源模型的零样本学习(zero-shot)检测方法。如果使用该方法,我们无须对需要判断的语言模型本身进行训练,只需要训练一个模型,然后对待检测文本计算每个词汇的对数概率(Log probability),如果语句的平均对数概率很高,或是他们的平均对数秩((log-)rank)很低,那么我们就有理由相信它是由AI所写。

Q&A:请问我们该如何计算词汇的对数概率和文本的平均对数概率? 

Eric:大语言模型可以给出下一个单词或是符号的概率分布,可以利用这个分布查询到待检验单词的对数概率,然后就可以求平均值获得平均对数概率。

这种方法的优点便是不需要收集大量数据,而且可以泛化应用到各个领域。然而这种模型的判断并不准确。

有了上面两种基本方案的铺垫,我们就自然而然的开始思考,是否有种模型,能够扬长避短,既能准确的给出检测结果,又能避免对大量数据的依赖呢?

如果我们选取一段由模型生成的文本,然后稍稍改变他的措辞,文段的意思并不会改变,但是在模型看来,这段新文本出现的概率却往往比原始文本低很多。所以模型有一种奇怪的思维方式,它们会喜欢对文本进行某种组合,而非语义相同的另一种组合。基于这种现象,Eric提出的一个解决方案是:探究模型在候选段落周围的概率函数结构,以提高检测的准确性。通俗来说,我们不只是关注待检测文本本身出现的概率有多大,而是关注我们这段文字和一些对它进行细微修改后的文字相比,其概率是否是最大。

扰动差异:对数概率局部结构的一种假设

对于模型生成的文本,我们假设x轴为我们所有可能的文本空间,也就是所有可能的单词序列组合;y轴为它对应的对数密度。如果我们取x轴上一点,然后移动它,从而从一个单词序列移动到另一个。如果这些序列是机器生成的,即使语义相似,只在组成上略有不同,其概率密度也会随着移动发生比较明显的变化,而且概率密度往往会明显降低。但是这种明显的变化只存在于模型输出的序列中,人类写出的文本往往没有这种特性。

下图中左边是模型生成序列的概率曲线,右边是人类文本的;其中红色五角星对应的序列是模型生成的文本,绿色五角星是人类所写的文本。只关注Y轴的话,我们可以看到这两段文字有着相同的绝对概率,这也导致如果使用上面提到的绝对概率判断方法,我们无法区分这两段文字,很容易造成判断失误;但是我们很明显可以看出他们附近曲线的差异非常明显,这也是关注周围概率的方法的显著优势。

b25bc241d00ec924f30e270e8f507603.png

当然,这种假设是否正确合理呢?我们只需要用很多个模型生成一些文本,同时收集许多人类完成的文本,然后使用T5模型来对这些文本进行细微的修改,就能轻松得到X轴对应的数据。然后我们计算原始文本和添加扰动后的文本的对数概率,就可以轻松判断假设是否正确。

Q&A:请问您具体是如何生成扰动样本的? 

答:我会先随机生成一段原始文本,然后随机屏蔽15%的单词,最后用T5生成填充,重复一百次即可。

下图为人类和模型样本的扰动文本的对数概率分布,其中X轴代表对数概率,且越往右概率越高。左右图中各有一条竖线分别表示模型和人类原始文本(Original)的对数概率。然后左右图各有100个使用T5模型添加干扰后的文本用原始模型计算得到的概率分布,每段文本与原始文本仅有几个单词的区别。作者用另一条竖线表示该分布的对数概率平均值(Avg perturbed)。可以明显看到平均值比原始值更小。然后我们把两条线之间的距离称做扰动差异,在模型样本中,扰动差异比较大,而在人类样本中的扰动差异则小很多。 

facb5b7fcbd06368012d4737527fe56d.png

上图我们清晰地看到了扰动差异,当我们对模型生成的文本添加扰动时,对数概率很明显的下降了。

随后Eric选取了300个人类所写的文字样本和模型生成的样本,用同样的方法添加扰动,然后计算了扰动后,原始模型输出的对数概率的变化。从下图我们可以看出,人类样本和模型样本有很好的分离,且模型生成的文本相对于人类编写的文本更容易受到扰动的影响,前者概率变化更大,且扰动对概率的消极影响更大。因此我们实际上可以以极高的精度对人类和模型样本进行分类。我们设置一个阈值,如果扰动差异小于零很多(Negative),便认定为机器所写,反之则视为人类所作。 

1bb6d5da1f9c47a3c3193cb0f91d85f5.png

总结一下就是:语言模型生成的样本倾向于对数概率的局部最大值,而人类文本却往往并非如此。

实现DetectGPT:基于概率曲率的检测

下面介绍Eric的DetectGPT模型的整个检测流程。首先我们将原始文本(X)添加一系列轻微的扰动;然后,我们将添加扰动后的一系列文本传给原始模型(如GPT-3),从而计算得到原始文本和扰动后的文本的对数概率;接下来,我们将原始的概率密度和扰动文本的概率密度相除然后取对数,最后求得他们的均值,如果求得的均值大于某个阈值,就有理由相信他是GPT-3所写,否则就认为它的来源并不是GPT-3,比如他可能为人类所写,也可能来自于另一个模型。

9cde6ed5a3344aa6d681d409ef1feec7.png

上面提到的这种检测方式,在学术上称为:概率曲率检测(Detection with Probability Curvature)。关于DetectGPT的这种概率曲率检测,下面我们重点介绍具体实现。

  • 候选1:

为了减少计算压力,我们只需要通过有限差分求得近似,对概率曲率进行估算。举例来说,假定X(original)是原始文本,X(perturbed)是添加扰动后的文本,则二者的对数概率密度可以近似表示为:

1517a456844877b646e33cdea570e1a9.png

a0d21d8f68034fdf41eb884f3fd78091.png

简而言之,我们先用Hessian矩阵和以一个想象出的方向向量来估算概率密度,然后再用Hutchinson's Trace Estimator(哈钦森迹估计法)对式一的右式进行式二的化简,最后经过上面两次近似,我们就不需要通过复杂的计算获得准确的对数概率密度,只需计算Hessian矩阵的迹即可,这大大减少了我们模型的计算量。同如果H的迹是一个数值上低于阈值的负数,我们就可以近似认为这篇文章是由模型生成。

值得注意的是,v表征了在语义空间中,我们原始文本到扰动后文本的改变方向,他是一个只存在于理论中的虚拟量,并不能真的被观测到,但是它的存在可以帮助我们更好的理解模型。

Hessian矩阵是一个多元函数的二阶偏导数构成的方阵,描述了函数的局部曲率。Hessian矩阵体现了不同输入维之间相互加速的速率。常用于解决优化问题,利用海森矩阵可判定多元函数的极值问题。海森矩阵在图像处理中有广泛的应用,比如边缘检测、特征点检测等。

Hutchinson’s Trace Estimator源于随机取样的思想,主要应用于对大型矩阵迹的估算。其基本思路是通过从矩阵A中随机抽样列,来获得一个较小的矩阵B,并用B的迹来作为A的近似估计值。

0fee54cd52c8c00a4fc5ad4f76b169a2.png

  • 候选2:

为了减轻计算压力,我们只需要通过有限差分逼近模型对数概率函数方向二阶导数的方法,对概率曲率进行粗略近似。

74a33fa4062c31981e240fc690b43919.png结合上图,我们用H表示对数概率密度函数在我们要检测的文本处求得的海森矩阵,v是一个单位向量,代表着在文本空间中的一个方向。则扰动文本的方向二阶导数就可以表示为v的转秩乘以Hv。举例来说,假定X(original)是原始文本,X(perturbed)是添加扰动后的文本,则二者的对数概率密度可以近似表示为:

5efc080e2bb0add7bdaf19523eff2ff4.png

海森矩阵是一个多元函数的二阶偏导数构成的方阵,描述了函数的局部曲率。海森矩阵体现了不同输入维之间相互加速的速率。常用于解决优化问题,利用海森矩阵可判定多元函数的极值问题。海森矩阵在图像处理中有广泛的应用,比如边缘检测、特征点检测等。

实际上v表征了在语义空间中,我们原始文本到扰动后文本的改变方向,他是一个只存在于理论中的虚拟量,并不能真的被观测到,但是它的存在可以帮助我们更好的理解模型。

再使用Hutchinson's Trace Estimator(哈钦森迹估计法)对右式化简。我们可以对上面右式进行如下的估计,即上图右式的期望可以用Hessian矩阵的迹来估计:

2bb8bb33efd07b9b71b9a6cebd9e91ab.png

Hutchinson’s Trace Estimator源于随机取样的思想,主要应用于对大型矩阵迹的估算。其基本思路是通过从矩阵A中随机抽样列,来获得一个较小的矩阵B,并用B的迹来作为A的近似估计值。

经过两次近似,我们在计算对数概率密度时,只需要计算Hessian矩阵的迹即可,这大大减少了我们模型的计算量。同时,如果我们计算得到的迹是一个数值上低于阈值的负数,我们就可以近似认为这篇文章是由模型生成。

d6f97624f55fbf45baca43231f0e589d.png

从实验结果出发:检验DetectGPT

首先,我们当然要对ChatGPT这一现象级的语言模型进行检验。这里Eric用DetectGPT同其他的模型进行比较,从而得到了下面的结果。表格的左边是四种不同方法,第一种log p(x)就是我们上面提及的第二种基本方法,通过比较对数概率的绝对值,判断人工与模型的文本;接下来的几种方法就不过多介绍。而XSum,SQuAD和WritingPrompts分别表示了新闻文章,维基百科和通过阅读数据集完成的故事创意文章,t和p代表了两种不同的取样方法。数字表示被成功分辨的样本占总样本的百分比。我们不难发现DetectGPT模型相较其他四个模型有较大的优势,且在不同的数据集上都有着很好的一致性。

06b82342c6bbd56095df3354a18b3939.png

接下来Eric专门对实验用到的模型进行了微调,确保我们的模型没有学习过这些模型生成的数据,我们可以看到DetectGPT依然有着相对一致的跨模型的表现,而其他模型则往往表现不佳。

6606023b30327dfacd2e1931bc3441ad.png

那么当我们使用更大的模型呢,下面是DetectGPT在GTP3.2的表现,我们可以发现它一如既往的稳健。

6e6d37d32fe471fbdcbc35629ce8cddb.png

如果对机器生成的文本进行一定的修改呢?下图中x轴是我们更改的百分比程度,y轴为准确率。可以看出,DetectGPT相比其他模型优势依旧明显。

53946b81d172432141ce56442d6e0315.png

局限性和未来展望

首先,最大的局限性就是我们需要使用待判断的模型来计算对数概率,那么如果使用不同的模型呢?下图中可以明显看出使用不同的模型计算对数概率密度会对我们模型的准确性产生较大的影响。所以Eric未来的一个研究方向就是让DetectGPT可以使用不同的模型来检测样本。

a5f48f3d37bd160467a4e03c95608af5.png

第二个缺点是DetectGPT计算成本很高,因为我们需要使用100个扰动来进行检测。

此外,DetectGPT模型也不是无法被破解,你可以通过巧妙地向模型提示,从而让他写出更人性化的文本,进而骗过检测模型。

最后,Eric再次强调,包括DetectGPT在内的检测模型现阶段的判断效果不可能达到百分百,人们不应该过分相信模型的结论。

小结

LM生成文本的数量正在爆发式的增长,相比于DetectGPT等检测模型,使用LM生成文本的人类作者应该负担起检查文本正确性的任务。最后,DetectGPT的成功开发也表明了语言模型大都有着自己独特的“语言模型水印”

如果你想要阅读Eric的Paper或者代码,可以访问:ericmitchell.ai/detectgpt 。

如果你想运行该模型在GPT-2上的demo,可以访问:detectgpt.ericmitchell.ai

 Q&A

1. 请问您的灵感来源是什么?

答:这听起来可能有些搞笑,不过我最初并非研究该领域的问题的,甚至在ChatGPT出现之前,该领域几乎并没有人研究。直到它推出几个星期后,人们才开始广泛的知道并开始探讨这个模型有多么神奇。当时我正在假期,我的朋友发短信询问我是否能建立起一个检测ChatGPT输出样本的算法。于是我窝在沙发上开始思考这个问题。最初我想到的便是上面提到的两种基本算法,虽然他们并不完善,但是我认为我的大方向是正确的。于是我开始阅读各方面的资料,然后开始不断在最初模型尝试和创新,最终完成了这个模型。

2. 你是如何平衡工作与生活的,你思路匮乏的时候是否会从生活里吸取灵感?

答:你知道的,许多人都会认为研究人员就像是一个工作狂,每天都泡在实验室里,但是我依然是一个热爱生活的人,我喜欢旅行,喜欢听音乐,我会尽量平衡好工作与生活。此外,我会在生活中吸取灵感,比如当我工作到了一个难以突破的瓶颈时,与其冥思苦想,我更愿意听点音乐,我总是能沉浸在音乐中,然后慢慢感受音乐带给我的灵感。这很有意思。

3. 你未来的目标和计划是什么,你的导师对你完成该模型是否有帮助?

答:我正在完成我的博士毕业论文,内容也是关于检测问题的。不过我会尝试使用最近几个月的该领域的最新成果,以此提高检测的精度,完成更强大的监测模型。此外,我还在研究一些关于大模型的编辑问题。说到克里斯教授,我认为他是一个难得的好教授。大部分教授都不会直接参与你的工作,他们只会在大的方向上给你指导;但是克里斯教授是一个十分细致的人,他会在一些具体问题上给我启发,我非常感激他。

4. 请问您怎么看待ChatGPT等模型引发的道德问题?

答:这是个好问题,我也常常思考这些模型的出现是利大于弊还是弊大于利,甚至它们会不会引发一些道德问题。一方面,它们确实提高了我们的效率,另一方面,它们也限制了我们的创造力。不过这更多的取决于他的使用者,我们需要找到一个巧妙的临界点。不过综合来看,我依然是乐观的,在某些情况下,它们可以比如帮助我们学习外语,学习一些专业知识,它们已然成为了一个很有用的博学多才的老师,更重要的是,它们是完全私人和可以互动的导师。

5. 目前深度伪造是一个热门话题,比如如何鉴别合成视频或图片,请问您的方案能迁移到该领域吗?

答:当然,我认为很有可能,因为这些模型总是有着相似之处的,我的模型比较好的抓住了这种相似点。比如我们可以用图像的扩散模型来代替扰动文本。在迁移中,我认为最大的问题应该是图像模型并不会直接告诉你输出图片的概率,如果能重点解决这个问题后,我们的模型应该就能实现迁移。

6. 请问为什么使用对数概率差异而不是直接使用概率差异?

答:这更像是一种经验之谈。因为在某种意义上,这两种算法的概念是相似的,但是我们发现以1为单位的比例差异太大了,使用对数概率缩小了比例,能够更好的提高模型准确率。

7. 请问您是如何获取测试样本的?

答:我们先获取了在各个领域下人类文字的样本,然后取人类文本的大约20个单词作为对模型的提示,就可以得到大致相同主题的模型生成的文本样本了。

8. 请问对检测模型有什么常见的攻击方法吗?

答:首先,在文本中加入一些只有人类才会使用的流行语或语法错误等可能会骗过模型。其次,使用更多的提示,让模型根据这也刻意的提示生成文本可能是另一种方案。此外,使用DetectGPT等模型训练源语言模型,使他们的输出被识别为人类文本也是一种很可行的方案,但是问题在于这样计算成本很高。

9. 请问DetectGPT模型未来的改进方向是什么,随着语言模型的迭代,该模型在未来还会有优势吗?

答:这是一个开放性问题,像上面提到的,未来重点还是要提高模型的计算效率。我认为未来新的语言模型可能会使用重新措辞部分文本等方法来攻击我们的模型。老实说,这将会是全新的挑战,我可能会用全新的方法去重新设计模型。所以我认为这个领域还有很多工作要做。此外,我没提及但是最重要的工作是要完善基准测试,基准测试应该包含全面且有代表性的样本,而且好的基准测试应该是要包含有“攻击性”的样本的,这样才能全方位的检测出一个模型的好坏。一个好的基准测试是研究模型最重要的一点,可惜的是,我们的领域才刚刚起步,在这方面并不完善。

10. 你是如何看待语言模型试图欺骗检测模型这件事情的?

答:从技术的方面来说,这就像是一场猫鼠游戏,模型会通过训练来输出更为流畅和更接近人类语言的文本,甚至它们会用检测模型来训练他们的语言模型,虽然在现阶段这种方法并不好,因为检测模型依然需要大量的算力,这样会极大地增加训练的负担。从使用者的角度来说,更流畅的语言模型一方面确实会帮助人们更好的提高学习和工作效率;但是另一方面,如果模型能输出越来越通顺和流畅文本的话,肯定也会有更多的人试图用它做一些欺骗之类的行为,尽管现在我还不知道这些行为究竟会对我们社会带来多么大的影响,但是必须要警惕它们。

更多内容 尽在智源社区

53cc64224de6f0d21274917ae08475b5.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/443127.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

API Testing 一个基于 YAML 文件的开源接口测试工具

API Testing 一个基于 YAML 文件的开源接口测试工具,同时支持运行在本地、服务端。 在选择工具时,可以从很多方面进行考量、对比,以下几点是该工具的特色或者优点: 开源与否,atest 采用 MIT 开源协议,是最流…

传智教育“大同互联网职业技术学院”奠基仪式盛大举行,开拓高等职业教育发展新版图

2023年4月20日,大同市“数字经济职业教育发展论坛暨大同互联网职业技术学院奠基仪式”在大同隆重举行。论坛由中共大同市委、大同市人民政府主办,大同市教育局、传智教育承办,并全程在多平台进行线上直播。 大同市委副书记、市长张强&#x…

学生成绩管理系统winform+SqlServer

主要技术: 基于C#winform架构和sql server数据库 功能模块: 学生选课, 可以查询个学期各科成绩 查看或者选择选课信息 显示当前课表,管理员后台管理 开设课程 课程查询(上课时间和地点) 录入该课程下的…

【Java】jieba结巴分词器自定义分词词典 超详细完整版

发现一款很轻量好用的分词器->结巴分词器 分享给大家 不仅可以对常规语句分词,还可以自定义分词内容,很强大!! 源码地址👉:https://github.com/huaban/jieba-analysis 简单使用 如果是常规的语句&#…

transformer与vit

transformer结构,位置编码复现 https://wandb.ai/authors/One-Shot-3D-Photography/reports/-Transformer—Vmlldzo0MDIwMjc 训练部分 https://nlp.seas.harvard.edu/2018/04/03/attention.html#training transform训练代码从0构建 https://blog.csdn.net/BXD1…

全注解下的SpringIoc 续1

上篇文章介绍了ioc的基本用法和ComponentScan注解的使用,这篇文章我们来看看依赖注入的部分。 提起依赖注入,想必大家肯定会想到Autowired注解,的确,它是我们用的最多的一个。 还记得容器的顶级接口BeanFactory 吗,它定…

微信开发者工具使用git提交项目至gitee远程仓库(保姆级)

1. 开始 1.1. 点击进入gitee官网 进入主页之后,根据图片右上角点击新建仓库 输入自定义仓库名称, 访问路径点击创建仓库 这里不要点击初始化文件, 复制Git远程仓库路径 打开微信开发者工具,新建项目什么的就不多说了,打开项目,根据图片所示, 点击版本管理弹出窗口, 点击远程…

代码生涯冲常见的的bug.例如layui表格中日期自动生成、eacharts 报表的重复点击事件

1、layui表格中日期不受控制的自动生成&#xff0c;这种情况往往是你设置了日期类型的强转 例 对于这种情况你需要定义templet模板 1、 {field: outtime, title: 离开时间,templet : "#time"} 2、 <script type"text/html" id"time"> …

通过Salesforce考试 (考证) 后,如何在Trailhead上验证和维护证书?

随着Salesforce产品家族的不断壮大&#xff0c;学习者可以考的认证也在不断增多。从十几年前的几个认证&#xff0c;增长到现在的40多个认证。 在获得Salesforce认证之后&#xff0c;除了要将其放在LinkedIn和Trailblazer.me个人资料中&#xff0c;还有一种官方途径可以让其他…

野火STM32电机系列(五)Cubemx配置高级定时器TIM1

鸽了一段时间&#xff0c;放心不会断的哈&#xff0c;目前仅仅是显示屏坏了&#xff0c;不影响后面项目 前文已经配置了GPIO、编码器 本节讲解CubeMX高级定时器TIM1配置带死区的6路互补的PWM 同时配置信号触发后续ADC采集 板子引角的原理图如下 对应的&#xff1a; Motor1…

一文告诉你什么是无代码?无代码开发有什么好处

全球知名IT研究机构曾预测&#xff1a;到2025年&#xff0c;企业机构开发的新应用中&#xff0c;有70&#xff05;将会使用无代码技术&#xff0c;并会使用至少四种低代码或无代码开发工具。甚至有人预言&#xff1a;“代码—低代码—无代码”&#xff0c;将是编程历史上的一种…

2022年中国广义数据智能市场规模为442亿元

数据智能是当前市场上的热点应用。但业界对于数据智能的发展状况&#xff0c;缺乏深入探讨与研究。为了系统梳理中国数据智能行业市场全景&#xff0c;厘清行业发展脉络&#xff0c;为从业者提供有价值的借鉴&#xff0c;海比研究院联合中国软件网、中国软件行业协会应用软件产…

Zabbix“专家坐诊”第188期问答汇总

问题一 Q&#xff1a;zabbix能监控waf日志针对告警么&#xff1f; A&#xff1a;可以通过snmp trap的方式。 Q&#xff1a;snmp trap在zabbix端怎么配置呢&#xff1f;我配置的不生效&#xff0c;zabbix服务器端。 A&#xff1a;trap要先在设备开启&#xff0c;设备有告警会…

绒毛/短毛渲染

文章目录 多层毛发模型123 代码实现cgincshader refer&#xff1a; 腾讯游戏学堂 主要来自这里&#xff0c;感谢讲解&#xff01; 首先说一点&#xff0c;很多文章都把毛发和头发弄混&#xff0c;根本就不是一回事好吧&#xff0c;为了区分&#xff0c;我的两篇文章分别用了长…

数值分析(四) Hermite(埃尔米特)插值法及matlab代码

目录 前言一、Hermite插值1. Hermite定理2. 重节点差商3. 重节点Newton插值4. Hermite 插值公式4.1 三点三次 Hermite插值4.2 两点三次 Hermite插值4.3 2 n 1 2n1 2n1次Hermite插值多项式 二、Hermite插值算法及matlab代码1. 2 n 1 2n1 2n1次Hermite插值matlab代码实现2. 例…

2.1寸黑白TFT电子标签【基站版】

ESL_TFT_2.1_V4 产品参数 产品型号 ESL_TFT_2.1_V4 尺寸(mm) 69.5*35*14.8mm 显示技术 TFT 反射式 显示区域(mm) 23.71(H) * 48.55(V) 分辨率(像素) 250*122 像素尺寸(mm) 0.194*0.194 显示颜色 黑/白 视觉角度 45/45/60/60 工作温度 -20-70℃ 产品重量 …

Mysql第一章 字符集

字符集修改 一 在mysql5.7中输入汉字报错二 修改针对修改后创建的数据库&#xff0c;过去创建的数据库不算三 想要单独修改四 基本的mysql命令五 各级别的字符集 一 在mysql5.7中输入汉字报错 # 在5,7中&#xff0c;默认字符集为latin1,开发人员在数据库设计时&#xff0c;需要…

Python用curve_fit进行多元拟合

文章目录 入门参数多元拟合 入门 scipy.optimize中&#xff0c;curve_fit函数可调用非线性最小二乘法进行函数拟合&#xff0c;例如&#xff0c;现在有一个高斯函数想要被拟合 y a exp ⁡ − ( x − b c ) 2 y a\exp-(\frac{x-b}{c})^2 yaexp−(cx−b​)2 则调用方法如下 …

Zookeeper源码分析——Follower和Leader状态同步源码

Follower和Leader状态同步源码 当选举结束后&#xff0c;每个节点都需要根据自己的角色更新自己的状态。选举出的Leader更新自己状态为 Leader&#xff0c;其他节点更新自己状态为 Follower Leader更新状态入口&#xff1a; leader.lead() Follower更新状态入口&#xff1a; f…

VUE3 学习笔记(九)使用富文本编辑器tinymce最新版

目录 1、安装相关依赖 2、下载中文包 3. 引入皮肤和汉化包 4. 封装组件:在src/components下新建TEditor.vue&#xff0c;并写入以下代码 5. 注册及使用组件 6. Tinymce 版本&#xff08;截至2023-04-18&#xff09; 1、安装相关依赖 npm install tinymce -S npm install ti…