self-supervised learning(BERT和GPT)

1芝麻街与NLP模型

我們接下來要講的主題呢叫做Self-Supervised Learning,在講self-supervised learning之前呢,就不能不介紹一下芝麻街,為什麼呢因為不知道為什麼self-supervised learning的模型都是以芝麻街的人物命名。

image-20241021142639755

因為Bert是一個非常巨大的模型,有多大 它有340個million的參數, B E R T b a s e BERT_{base} BERTbase也有110M

image-20241021142926213

但是其實你可能覺得Bert已經很大了
但是還有更多更巨大的模型

image-20241021143336106

這個時代就像是被發動的地名一樣,有很多超巨大的巨人從地底湧出

最早的是ELMO,ELMO也有94個million,這邊用這些角色的身高來代表它的參數量,Bert大了一點 340個million,遠比你在作業裡面做的大了一千倍以上,但是它還不算是特別大的,GPT-2它有一千五百個million的參數

image-20241021143452455

但就算是GPT-2它也不算是太大的,這個Megatron有8個billion的參數,GPT-2的8倍左右

image-20241021143715450

後來又有T5,T5就是有一款福特汽車叫T5,雖然T5是Google做的跟車子也沒有什麼關係,那這邊就放一個福特汽車,T5有11個billion,但這也不算什麼,Turing NLG有17個billion,那這也不算什麼,GPT-3有Turing NLG的10倍那麼大,它有10倍那麼大,到底GPT-3有多大呢,如果我們把它具象化的話,它有這麼大

image-20241021144523711

2BERT简介

那在等一下的課程裡面我們會講兩個東西,我們會講Bert跟GPT

image-20241021144632562

首先解释自监督

image-20241021145552224

一大堆无标签的x,分为两部分, x ′ , x ′ ′ x',x'' x,x′′。输入 x ′ x' x ,让输出的y与 x ′ ′ x'' x′′越接近越好。

bert其实就是transformer的encoder

image-20241021150415350

这里的输入是一个序列,不只可以是文字,可以是语音,甚至是图像。

随机遮盖一些输入的文字,比如输入100个token (token就是你在处理一段文字的时候的单位)token的大小是你自己决定的,处理中文的时候,token通常是一个方块字。

image-20241021150928715

随机的mask就是,有一个特殊的token ,或者随机换成一个其他词

image-20241021151126466

论文附录有给例子。

image-20241021151312285

那我们希望遮住部分的输出湾的概率越大越好

image-20241021151438992

训练的时候,就最小化交叉熵。Bert训练同时还会做另一方法

image-20241021152225214

从语料库sample两个句子,为了分割这两句子,会有一个特殊的符号[SEP],这样Bert才知道这是两个不同的句子。还会在整个sequence的最前面加一个特殊的符号[CLS]

image-20241021152522201

现在我们只看cls对应的输出,其他位置的输出不去管它,

image-20241021153236081

但是后面有人发文章说next sentence prediction并不是很有用。人们发现sentence order prediction比较有用,就是把文章里挨着的两个句子的前后顺序打乱,让model判断哪个在前哪个在后。

那这样训练的模型可以做完形填空有什么用呢,其实Bert的用处在于可以解决很多的下游任务,这些任务和完形填空没有太大的关系。

image-20241021153837549

不过拿来做你感兴趣的下游任务时需要一些有标签的数据,对模型进行微调。

今天你要测试一个self supervised learning model的能力,通常会在多个任务上测试,看看在每个任务上的正确率是多少,然后取平均值。任务集里最知名的标杆就是glue

image-20241021154654225

里面有九个任务,你会在九个任务上分别微调,得到九个模型,然后计算平均正确率

image-20241021155021156

横轴是不同的模型,这些五颜六色的点就是不同的任务。黑线是人类在这个任务上的准确率,因为不同任务的评估标准不同,不能直接放在一起比较,所以是和人类做对比。

那具体要怎么使用Bert

image-20241021155928096

这里是需要有标签的下游任务数据集。为什么要用预训练的参数初始化呢,随机初始化和使用预训练的对比如下

image-20241021160220256

BERT的第二个例子是词性标注

image-20241021161901567

第三个例子

image-20241021162319134

给出前提和推论,判断是不是可以从前提得到推论。 这样的任务可以用在,文章下的评论是反对还是支持,把文章和评论丢给模型。BERT怎么解这个问题呢

image-20241021163755806

输入两个句子,判断他们的关系,是不是矛盾。这些例子中bert都是用预训练的参数初始化,然后linear是随机初始化,然后在有标签的数据集上进行训练

image-20241021164049881

第四个例子是问答,但是这个问答是有限制的,答案一定在文章里

image-20241021164214326

输入是两个序列,如果是中文,{d1,d2,d3…}每一个d就是一个中文字,{q1,q2…}每个q代表一个中文字。D和Q丢入模型,输出两个正整数,s,e ,从文字中截取s到e的部分就是答案。

image-20241021164724035

怎么训练呢

image-20241021164958367

把橙色的部分和document的输出做inner product,接下来通过softmax得到三个值,这部分和self-attention很像,把橙色部分想成query,黄色部分想成key,那这就是做一个attention。

蓝色的部分也做一样的事情,蓝色的部分代表答案结束的位置

image-20241021165701710

所以这个时候答案就d2到d3,

实际上由于硬件的限制(运算量)bert的输入长度会限制,训练的时候一篇文章往往很长,我们会把文章截成一小段一小段的,每次只拿一个段出来训练

image-20241021170537601

那么bert的厉害之处在哪里,自己也可以训练一个做完形填空的model,厉害之处就在你没法自己做,你自己训练不起来。我们实验室(李宏毅)试着训练bert看能不能得到和google一样的结果。3billion的资料看起来很多,但是是unlabel的,可以从网上爬,不是很难,难的是训练过程。横轴就是训练过程的参数update1000000次。用TPU跑了8天,你用conlab可能200天都不一定

image-20241021192359552

那么google已经训练了bert,而且这些pre-training model都是公开的,为什么还要训练一个和谷歌结果差不多的bert,这里想要做的事情是建立bert胚胎学,因为bert的训练非常的花费计算资源,那有没有可能加速训练,想知道怎么训练的更快也许就要从观察训练过程开始,过去是没有人观察bert的训练过程,因为google的paper直接说这个bert在各个任务上都很好,但实际上在训练bert这个学填空题的过程中到底bert学到了什么,他什么时候会填动词,什么时候会填名词,什么时候会填代名词,没有人去研究过这件事。所以自己train一个bert就可以观察bert在什么时候学会填什么样的词汇,他填空的能力 是怎么增进的

image-20241021194814920

结果可能和你想的不太一样。

再补充一个事情,前面讲的任务都没包括seq2seq的model,我们要解seq2seq的问题怎么办?BERT只有Encoder,有没有办法pre-traing seq2seq model的Decoder呢,可以的,

image-20241021200022840

你有个transformer,输入是一串句子,输出是一串句子。

给encoder输入故意做一些扰动,把输入弄坏,Decoder输出的就是弄坏前的结果。encoder看到弄坏的结果,decoder要输出,还原弄还前的结果,train下去就是pre-train一个seq2seq的model。

怎么把输入弄坏,就有各种不同的方法

image-20241021200717587

把一些地方mask,或者删掉一下词汇,把词汇顺序弄乱,词汇顺序旋转,或者即插入mask有删掉一些词汇

image-20241021201403985

有一篇paper叫BART使用了所有方法

你可能会问,这么多种方法,哪种比较好,可能需要做一些实验尝试一下,google已经帮你做了

image-20241021201741893

T5是在C4上训练的,C4数据集是公开的,但是有7T,你可能很难下载下来,下载下来也不知放在哪里,而且网站有提示前处理用一张GPU要花355天

3BERT的奇闻轶事

为什么BERT有用,先提供一个最常见的解释

image-20241021202845214

输出的embeding代表这个词的意思

image-20241021203055160

BERT考虑了上下文,计算它们的相似度

这边选了10个句子

image-20241021203238442

所以我们可以说,BERT在训练做填空的时候,学会了每个中文词的意思,所以可以在接下来的任务做的更好

image-20241021203415198

那BERT为什么会有这样的能力呢,为什么他输出的向量就代表那个词的意思。

基于一个语言学假设,一个词的意思要看常常和他一起出现的词汇,也就是上下文。苹果的果上下文常常是树,吃等等,而苹果手机的果常常跟的是专利,电。所以一个词汇的意思可以从他的上下文看出来。

而bert在做完形填空的时候也许学的就是从上下文抽取资讯

image-20241021204030177

因为训练的时候只给w1,w3,w4预测w2,怎么预测w2,他就是看上下文。其实这样的想法在bert前就有了,word embedding的CBOW

image-20241021204302905

CBOW是个很简单的模型。

BERT其实相当于deep版的CBOW,BERT可以做到同一个词汇,根据不同的上下文,Embeding不一样

image-20241021204910139

所以BERT抽出的这些向量就叫Contextualized word embedding

这是你最常见的BERT有效的解释,但是真的是这样吗

image-20241021205155989

做个实验

image-20241021205342820

A T C G对应一个word,对应什么不重要,随便对应什么,然后训练,你可能觉得怪怪的,不知道这样有什么意思

image-20241021205537949

但是你就这样去做,BERT竟然比不使用BERT(蓝色)要好,这样实验说明,BERT为什么要好还有很多需要研究的地方。

这里并不是否认BERT学到语义,从embeding来看,BERT确实学到了语义,知道哪些词汇比较像,这里想要表达的意思是你就算给他一些乱七八糟的句子,竟然也可以分类的不错,所以他的能力不完全来自于他看的懂文章这件事,可能有其他理由。比如说bert本身是一个初始化比较好的参数,不见得和语义有关,这种初始化好的参数就是适合拿来做大型模型的训练。是不是这样还尚待商榷。

之所以告诉你这个实验的结果只是想说,今天这些模型都是非常新的模型,他们为什么能够成功还有很大的研究空间

image-20241021210356767

接下来要将多语言的BERT,你在训练的时候会拿各种各样的语言,中英法等拿去做完形填空

image-20241021210554730

multi -lingual BERT的优点在于

image-20241021210715347

拿英文训练,自动就会学习中文的QA问题

image-20241021211225373

在104个语言预训练填空,在English资料训练问答,然后直接在中文测试问答,它竟然可以回答中文问题,虽然预训练的104种语言有中文,但是只训练了填空,在英文资料训练(fine-tune)问答,它没有见过中文问答,竟然可以直接回答中文问答。

为什么会这样,一种解释是,也许对multi -lingual BERT不同语音间没有什么差异,不管中文还是英文,最终这些词汇的embedding只有意思是一样的,都会很近

image-20241021214106250

这不只是猜测,其实是有验证的,MRR越高说明同样意思不同语言的词汇的向量越接近

image-20241021215418210

200k的时候效果没有达到Google效果,加大数据呢,1000k,how about 1000K?

image-20241021215646959

不同资料量真的有用

image-20241021215728626

The amount of training data is critical for alignment

最后还有一个神奇的实验,你说bert可以把不同语言同样意思的符号,让他们的向量很近,但是训练multi - BERT时是给他英文做英文填空,给中文做中文填空,它不会混在一起啊

image-20241022092027779

如果对他来说不同语言没有差别,给他英文的句子和填空,它可能填中文进去,但是它没有这样做,代表它知道语言的资讯对他来说同样不同,来自不同语言的那些符号终究还是不一样,它并没有完全抹掉语言的资讯。There must be language
information.

那我们来找一下语言的资讯到底在哪里,后来发现语言的资讯没有藏得很深

image-20241022094426104

把所有英文的embedding,把所有英文词汇丢到multi-BERT里,把所有的embedding平均,把所有中文的embedding平均起来,两者相减就是中文和英文之间的差距。

你可以做的什么神奇的事情呢,你限制给multi-BERT一句英文,得到embedding,加上蓝色的向量(中英文之间的差距)这些向量就变成了中文。你再叫他去做填空题的时候就会填中文的答案了。

下面是真实的例子

image-20241022095250314

bert读进去的句子是The girl that can help me is all the way across town. There is no one who can help me.变成embedding后加上蓝色的向量,bert就会觉得它读到的是中文的句子。然后你叫他做填空题,把embedding变回句子以后得到的结果就是孩,can 来我是all the way across 市。。There 是无人人can help 我·

image-20241022095906775

虽然表面上不同语言同样意思的词汇拉的很近,但是语言的资讯还是藏在multi-lingual BERT里面的

4GPT的野望

image-20241022100549480

Bert是做填空,GPT做的是什么呢,GPT做的任务是预测接下来的token是什么

image-20241022100934572

BOS即句子开始标记(Begin of Sentence)

h t h_t ht就是你的embedding

image-20241022101300924

然后用成千上万个句子来训练这个模型。GPT的模型就像transformer的Decoder,不过拿掉了cross attention这部分

image-20241022101645806

你做的也是mask的attention

image-20241022101800811

因为GPT可以预测下一个词汇,所有他有生成的能力,你可以让他不断的预测下一个token,产生完整的文章。

GPT可以把话补全,怎么怎么使用在问答,或者其他语言处理问题上

GPT也可以和BERT一样,BERT是怎么做的,把BERT model拿过来,后面接一个简单的linear的classifier,那你就可以做很多事情,你也可以把GPT拿出來,接一個簡單的classifier我相信也是有效,但是在GPT的論文中它沒有這樣做

image-20241022103033452

它有一個更狂的想法,為什麼會有更狂的想法呢,因為首先就是BERT那一招,BERT用過了嘛,所以總不能再用一樣的東西,這樣寫paper就沒有人覺得厲害了,然後再來就是GPT這個模型
也許真的太大了,大到連fine tune可能都有困難,你想想看我們在用BERT的時候,你要把BERT模型後面接一個linear classifier,然後BERT也是你的要train的model的一部分,所以它的參數也是要調的,所以在剛才助教公告的BERT相關的作業裡面你還是需要花一點時間來training,雖然助教說你大概20分鐘就可以train完了,因為你並不是要train一個完整的BERT的模型,BERT的模型在之前在做這個填空題的時候已經訓練得差不多了,你只需要微調它就好了。
但是微調還是要花時間的,也許GPT實在是太過巨大,巨大到要微調它,要train一個η可能都有困難,所以GPT系列有一個更狂的使用方式。

image-20241022103339462

這個更狂的使用方式和人類更接近,你想想看假設你去考,譬如說托福的聽力測驗,你是怎麼去考托福的聽力測驗的呢,這個托福聽力測驗的敘述是長什麼樣子的呢,首先你會看到一個題目的說明告訴你說現在要考選擇題,請從ABCD四個選項裡面選出正確的答案等等,然後給你一個範例告訴你說這是題目然後正確的答案是多少,然後你看到新的問題期待你就可以舉一反三開始作答,GPT系列要做的事情就是這個模型能不能夠做一樣的事情呢。

舉例來說假設要GPT這個模型做翻譯,你就先打Translate English to French,就先給它這個句子,這個句子代表問題的描述,然後給它幾個範例,跟它說sea otter然後=>後面就應該長這個樣子,或者是這個什麼plush girafe,plush girafe後面就應該長這個樣子等等,然後接下來你問它說cheese=>叫它把後面的補完,希望它就可以產生翻譯的結果

image-20241022103542634

不知道大家能不能夠了解這一個想法是多麼地狂,在training的時候GPT並沒有教它做翻譯這件事,它唯一學到的就是給一段文字的前半段把後半段補完,

就像我們剛才給大家示範的例子一樣,現在我們直接給它前半段的文字就長這個樣子,告訴它說你要做翻譯了,給你幾個例子告訴你說翻譯是怎麼回事,接下來給它cheese這個英文單字後面能不能就直接接出法文的翻譯結果呢,這個在GPT的文獻裡面叫做Few-shot Learning,但是它跟一般的Few-shot Learning又不一樣,所謂Few Shot的意思是說確實只給了它一點例子所以叫做Few Shot,但是它不是一般的learning,這裡面完全沒有什麼gradient descent ,training的時候就是要跑gradient descent嘛,這邊完全沒有gradient descent,完全沒有要去調GPT那個模型參數的意思。

所以在GPT的文獻裡面把這種訓練給了一個特殊的名字,它們叫做In-context Learning,代表說它不是一種一般的learning,它連gradient descent都沒有做

image-20241022104417452

當然你也可以給GPT更大的挑戰,我們在考托福聽力測驗的時候都只給一個例子而已,那GPT可不可以只看一個例子就知道它要做翻譯這件事,這個叫One-shot Learning,還有更狂的是Zero-shot Learning,直接給它一個敘述說我們現在要做翻譯了,GPT能不能夠自己就看得懂,就自動知道說要來做翻譯這件事情呢,那如果能夠做到的話那真的就非常地驚人了

image-20241022104628738

那GPT系列到底有沒有達成這個目標呢,這個是一個見仁見智的問題啦,它不是完全不可能答對,但是正確率有點低,相較於你可以微調模型正確率是有點低的,那細節你就再看看GPT那篇文章,第三代的GPT它測試了42個任務,這個縱軸是正確率,這些實線 這三條實線是42個任務的平均正確率,那這邊包括了Few Shot One Shot跟Zero Shot。

從20幾%的 平均正確率一直做到50幾%的平均正確率,那至於50幾%的平均正確率算是有做起來 還是沒有做起來,那這個就是見仁見智的問題啦,目前看起來狀況是有些任務它還真的學會了,舉例來說2這個加減法你給它一個數字加另外一個數字它真的可以得到正確的兩個數字加起來的結果,但是有些任務它可能怎麼學都學不會,譬如說一些跟邏輯推理有關的任務它的結果就非常非常地慘,好 那有關GPT3的細節這個就留給大家再自己研究

image-20241022104832092

剛才舉的例子到目前為止我們舉的例子都是只有跟文字有關,但是你不要誤會說這種self-supervised learning的概念只能用在文字上,在語音 ,在CV,CV就是computer vision也就是影像,在語音跟影像的應用上也都可以用。

image-20241022105531660

那其實今天self-supervised learning的技術非常非常地多,我們講的BERT跟GPT系列它只是三個類型的的其中一種,它們是屬於prediction那一類,

那接下來的課程你可能會覺得有點流水帳,就是我們每一個主題呢就是告訴你說這個主題裡面有什麼, 但是細節這個更多的知識就留給大家自己來做更進一步的研究

所以這些投影片只是要告訴你說在self-supervised learning這個部分,我們講的只是整個領域的其中一小塊,那還有更多的內容是等待大家去探索的

那有關影像的部分呢,我們就真的不會細講,我這邊就是放兩頁投影片帶過去,告訴你說有一招非常有名的叫做SimCLR,它的概念也不難我相信你自己讀論文應該也有辦法看懂它

GIF 2024-10-22 11-06-18

那還有很奇怪的叫做BYOL,BYOL這個東西呢我們是不太可能在上課講它,為什麼呢,因為根本不知道它為什麼會work

image-20241022110731320

假設它不是已經發表的文章,然後學生來跟我提這個想法我一定就是我一定不會讓他做,這不可能會work的,這是個不可能會實現的想法,不可能會成功的,這個想法感覺有一個巨大的瑕疵,但不知道為什麼它是work的,而且還曾經一度得到state of the art的結果,deep learning就是這麼神奇

所以這個呢我們也就不細講,就跳過去好, 那在語音的部分你也完全可以使用self-supervised learning的概念

image-20241022110940842

你完全可以試著訓練語音版的BERT,那怎麼訓練語音版的BERT呢,你就看看文字版的BERT是怎麼訓練的,譬如說做填空題,語音也可以做填空題,就把一段聲音訊號蓋起來,叫機器去猜蓋起來的部分是什麼嘛,語音也可以預測接下來會出現的內容

所以你也可以做語音版的GPT,不管是語音版的BERT,語音版的GPT,其實都已經有很多相關的研究成果了

image-20241022111135784

不過其實在語音上相較於文字處理的領域還是有一些比較缺乏的東西,那我認為現在很缺乏的一個東西就是像GLUE這樣子的benchmark corpus,在自然語言處理的領域在文字上有GLUE這個corpus,這個基準的資料庫叫做GLUE,它裡面有九個NLP的任務。今天你要知道BERT做得好不好就讓它去跑那九個任務,在去平均,那代表這個self-supervised learning模型的好壞,但在語音上 到目前為止還沒有類似的基準的資料庫

所以我們實驗室就跟其他的研究團隊共同開發了一個語音版的GLUE,我們叫做SUPERB它是Speech processing Universal PERformance Benchmark的縮寫,你知道今天你做什麼模型都一定要硬湊梗才行啦,所以這邊也是要硬湊一個梗把它叫做SUPERB

在這個基準語料庫裡面包含了十個不同的任務,那語音其實有非常多不同的面向,很多人講到語音相關的技術都只知道語音辨識,把聲音轉成文字,但這並不是語音技術的全貌

語音其實包含了非常豐富的資訊,它除了有內容的資訊,就是你說了什麼,還有其他的資訊,舉例來說這句話是誰說的,舉例這個人說這句話的時候他的語氣是什麼樣,還有這句話背後它到底有什麼樣的語意。

所以我們準備了十個不同的任務這個任務包含了語音不同的面向,包括去檢測一個模型它能夠識別內容的能力,識別誰在說話的能力,識別他是怎麼說的能力,甚至是識別這句話背後語意的能力,從全方位來檢測一個self-supervised learning的模型它在理解人類語言上的能力。

而且我們還有一個Toolkit,這個Toolkit裡面就包含了各式各樣的self-supervised learning的模型。

image-20241022111808869

還有這些
self-supervised learning的模型它可以做的各式各樣語音的下游的任務,然後把連結放在這邊給大家參考

講這些只是想告訴大家說self-supervised learning的技術不是只能被用在文字上,在這個影像上 在語音上都仍然有非常大的空間可以使用。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实战-任意文件下载

实战-任意文件下载 1、开局 开局一个弱口令,正常来讲我们一般是弱口令或者sql,或者未授权 那么这次运气比较好,直接弱口令进去了 直接访问看看有没有功能点,正常做测试我们一定要先找功能点 发现一个文件上传点,不…

中酱集团:黑松露酱油,天然配方定义健康生活

在如今的大健康时代,人们对于美食的要求越来越高。不仅美味,更要健康。在健康美食的生态链中,有一个名字正逐渐成为品质与美味的代名词——中酱集团。而当中酱集团与黑松露酱油相遇,一场味觉的革命就此拉开帷幕。 中酱集团&#x…

【产品应用】旋转式贴标机一站式解决方案

针对贴标机行业设备,立迈胜公司拥有智能控制器、一体化伺服电机、减速机等系列产品,可以轻松解决传统电机接线不便、占用空间、自重过大、部件繁杂等问题,帮助贴标机制造商实现设备精准控制、运行稳定的同时,保证生产流程高效产出…

开发运维警示录-20241024

开发警示录 1、作为开发,不要私自修改业务人员给的SQL语句,虽然个人感觉SQL很冗余,效率低等。 2、开发前,要明确需求,必要时通过图和文字形成文档与需求方确认、留痕。 3、开发复杂的业务逻辑代码前,先疏通…

oracle数据库---PL/SQL、存储函数、存储过程、触发器、定时器job、备份

PL/SQL 什么是 PL/SQL PL/SQL(Procedure Language/SQL)是 Oracle 对 sql 语言的过程化扩展,指在 SQL 命令语言中增加了过程处理语句(如分支、循环等),使 SQL 语言具有过程处理能力。把SQL语言的数据操纵能…

瑞芯微的 展会总结

首先是我感兴趣的产品: 摄像头的 墨水瓶的。 android 盒子,使用的是rk3588s 然后是瑞芯微AI在做什么:  在对 音频 视屏的输出 进行补充。 比如,视频拍了一张图片很模糊,那么他们用AI算法&am…

基于Multisim红外接近报警电路设计(含仿真和报告)

【全套资料.zip】红外接近报警电路设计Multisim仿真设计数字电子技术 文章目录 功能一、Multisim仿真源文件二、原理文档报告资料下载【Multisim仿真报告讲解视频.zip】 功能 标题:红外接近报警电路 红外报警器是当前利用电子技术制作而成的防盗报警器&#xff0c…

Sei 生态迎首个 MMORPG 游戏伙伴 Final Glory,开启新篇章

​“随着 Final Glory 拓展至 SEI Network,SEI 生态也迎来了首款 MMORPG 游戏” 链游赛道新贵 Final Glory Final Glory 是建立在 MateArena 引擎上的 MMORPG 游戏,作为目前行业内首个斥巨资打造的 AAA 级 MMORPG 全链游戏,在面向市场后即引发…

PostgreSQL两节点用keepalived实现主备的高可用架构

使用keepalived实现PostgreSQL数据库两节点主备的高可用架构部署详解 环境配置和规划部署PostgreSQL的主备流复制架构keepalived介绍安装部署keepalived数据库配置配置keepalived相关参数文件启动keepalived模拟故障切换问题记录实践建议 看腻了就来听听视频演示吧(…

Java 多线程(八)—— 锁策略,synchronized 的优化,JVM 与编译器的锁优化,ReentrantLock,CAS

前言 本文为 Java 面试小八股,一句话,理解性记忆,不能理解就死背吧。 锁策略 悲观锁与乐观锁 悲观锁和乐观锁是锁的特性,并不是特指某个具体的锁。 我们知道在多线程中,锁是会被竞争的,悲观锁就是指锁…

LSTM反向传播及公式推导

先回顾一下正向传播的公式: 化简一下: 反向传播从下到上逐步求偏导: 对zt求偏导(预测值和标签值相减): zt对未知数wt,ht,bt分别求偏导: ht对ot,Ct求偏导: ot对Net0求偏导: Net0对w0,b0求偏导: .... 总体的思路就是那个公式从下到上逐步对未知数求偏导: 下面是总体的流程…

Flutter项目打包ios, Xcode 发布报错 Module‘flutter barcode_scanner‘not found

报错图片 背景 flutter 开发的 apple app 需要发布新版本,但是最后一哆嗦碰到个报错,这个小问题卡住了我一天,之间的埪就不说了,直接说我是怎么解决的,满满干货 思路 这个报错 涉及到 flutter_barcode_scanner; 所…

微信小程序性能优化 ==== 合理使用 setData 纯数据字段

目录 1. setData 的流程 2. 数据通信 3. 使用建议 3.1 data 应只包括渲染相关的数据 3.2 控制 setData 的频率 3.3 选择合适的 setData 范围 3.4 setData 应只传发生变化的数据 3.5 控制后台态页面的 setData 纯数据字段 组件数据中的纯数据字段 组件属性中的纯数据…

Java.6--多态-设计模式-抽象父类-抽象方法

一、多态 1.定义--什么是多态? a.同一个父类的不同子类对象,在做同一行为的时候,有不同的表现形式,这就是多态。(总结为:一个父类下的不同子类,同一行为,不同表现形式。&#xff0…

springboot3.x.x 集成 连接SQL Server 2008 驱动版本和SSL套接字问题的解决

驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client 依赖版本 <dependency><groupId>com.microsoft.sqlserver</groupId><artifactId>mssql-jdbc&…

ABAP 函数

1、基础语句注意事项 1.1基础 SE38编辑 SM30 数据库表中添加多条数据 SE91编辑消息类 SE11查看数据库表 SE16N主要查看数据 1.2语句 1.FOR ALL ENTRIES IN 对于不能使用join的聚集表或者需要使用SELECT 的内表&#xff0c;我们一般使用for all entries in 语句将该表…

虚拟机安装麒麟v10、配置网络、安装docker

一、虚拟机安装麒麟v10 1、下载iso&#xff08;https://www.kylinos.cn/support/trial.html&#xff09; 2、虚拟机安装 3、选择 4、设置开机自动连接网络 参考地址&#xff1a;https://www.cnblogs.com/goding/p/18283912 安装好后发现屏幕分辨率毕竟低&#xff0c;点设置分…

开源模型应用落地-LangChain实用小技巧-带阈值的相似性搜索(十五)

一、前言 带阈值的相似性搜索是一种非常实用的信息检索方法。它允许用户设定一个具体的相似度标准&#xff0c;从而提升搜索结果的相关性和准确性。在面对大规模数据时&#xff0c;传统的相似性搜索往往难以满足用户的需求&#xff0c;因为返回的结果可能包含很多不相干的信息。…

数字图像处理的概念(一)

一 何谓数字图像处理 1 图像的概念 图像是对客观存在的物体的一种相似性的、生动的写真或描述。 2 图像的类别 可见光成像和不可见光成像 单波段、多波段和超波段图像 伽马射线成像 主要用途包括核 医学和天文观测 等 。 核医学 a)同位素注射 骨骼扫描图像 b)正电子放射( …

华为“纯血鸿蒙”重磅发布!首次融入原生AI能力

华为成功举办“原生鸿蒙之夜暨全场景新品发布会”&#xff0c;会上隆重宣布&#xff1a;我国首个自主研发的移动操作系统——华为原生鸿蒙操作系统HarmonyOS NEXT正式面世&#xff0c;标志着鸿蒙历史上的一次重大飞跃&#xff0c;至此&#xff0c;鸿蒙系统已成为继苹果iOS与安卓…