吳恩達大模型教程筆記-十-

绝不原创的飞龙發表於2024-10-01

吳恩達大模型教程筆記(十)

LangChain_微調ChatGPT提示詞_RAG模型應用_agent_生成式AI - P76:使用指令對LLM進行微調3——對單一任務進行微調 - 吳恩達大模型 - BV1gLeueWE5N

雖然LLMs因其能夠在單個模型中執行許多不同語言任務而聞名,您的應用程式可能只需要執行單個任務,在這種情況下,您可以微調一個預先訓練的模型來提高對您感興趣的任務的效能,例如。

使用該任務的示例資料集進行摘要,有趣的是,使用相對較少的示例就可以獲得良好的結果。

通常,只有五百到一千個示例就可以導致良好的效能。

這與模型在預訓練期間看到的數十億個文字片段形成鮮明對比,然而,微調單個任務也存在潛在的缺點。

這個過程可能會導致一種現象叫做災難性遺忘。

災難性遺忘發生。

因為完整的微調過程修改的原始LLM的權重,雖然這導致在單個微調任務上的效能大大提高。

但它可能會降低在其他任務上的效能。

例如,雖然微調可以提高模型執行評論情感分析的能力,併產生高質量的完成。

但模型可能會忘記如何執行其他任務,這個模型在微調之前知道如何執行命名實體識別。

正確識別句子中的'查理'是貓的名字,但在微調後。

模型無法執行這項任務,混淆它應該識別的實體,並表現出與新任務相關的行為。

所以,你有哪些選項可以避免災難性遺忘。

首先,重要的是決定災難性遺忘是否影響您的使用案例,如果您只需要在您微調的單個任務上可靠地效能。

它可能不是模型無法泛化到其他任務的問題,如果您想要或需要模型保持其多工泛化能力,您可以一次微調多個任務。

好的多工微調可能需要五十到一百萬個例子橫跨許多工,並且需要更多的資料和計算來訓練。

我們將稍後詳細討論這個選項,另一個選項是進行引數高效的微調或盜竊,簡稱Peft。

而不是完整的,微調。

盜竊是一種技術,它保留了原始LLM的權重,並只訓練了少數任務特定的適配層和引數,Peft對災難性遺忘的抵抗力更強。

因為大多數預訓練的權重都被保留了,Peft是一個令人興奮且活躍的研究領域,我們將在本週晚些時候覆蓋。

在 meantime,讓我們繼續下一個影片,更深入地瞭解多工,微調。

LangChain_微調ChatGPT提示詞_RAG模型應用_agent_生成式AI - P77:使用指令對LLM進行微調4——多工指令微調 - 吳恩達大模型 - BV1gLeueWE5N

多工微調是單任務微調的擴充套件,訓練資料集包含多個任務的示例輸入和輸出,資料集包含指示模型執行各種任務的示例,包括摘要,評論,評分程式碼翻譯,實體識別,你在混合資料集上訓練模型。

以便同時提高模型在所有任務上的效能,從而避免在多個訓練時期出現災難性遺忘問題。

示例損失用於更新模型權重,生成一個適應性調優模型,學會同時擅長多種任務,多工微調的一個缺點是需要大量資料,訓練集可能需要多達5萬至10萬個示例,但收集這些資料非常值得,值得付出努力。

生成的模型通常非常強大,適用於需要多項任務表現良好的情況,讓我們看看一個使用多工指令訓練的模型家族,基於微調期間使用的資料集和任務,指令調優模型變體不同,微調資料集和任務決定了指令調優模型變體。

一個例子是flann模型家族,Lanan,意為微調語言網,是一組用於微調不同模型的特定指令。

因為flan微調是訓練過程的最後一步。

原始論文的作者稱其為預訓練主菜的比喻甜點,相當合適的名字,Flanan t5是Lanan指令版的t5基礎模型。

而Flanan pal是Flaninstruct版的palm基礎模型。

你明白了。

Get the idea,Flant 5是通用指導模型。

已微調473個資料集,涵蓋146個任務類別,資料集選自其他模型和論文,無需閱讀所有細節,如感興趣,影片後可閱讀原文細看,Flant用於摘要任務的資料集示例,T5是三星,屬於Muffin任務集。

用於訓練語言模型總結對話,三星資料集包含1。6萬條類似聊天的對話和摘要,示例顯示在左側為對話,右側為摘要,對話和摘要由語言學家精心製作,專為生成高質量訓練資料集設計語言模型,語言學家被要求建立對話。

類似於他們日常寫作的對話,反映他們真實生活聊天話題的比例,其他語言專家隨後為這些對話建立了簡短摘要,包含對話中重要資訊和人名,這是為三星對話摘要資料集設計的提示模板,模板實際上由幾個不同的指令組成。

它們基本上都要求模型,做同樣的事情,總結對話,例如,簡要總結該對話,這個對話的總結是什麼,以及那場對話中發生了什麼,用不同的方式表達相同的指令有助於模型泛化和表現更好,就像你之前看到的提示模板一樣。

每個案例中可見,將Sansum資料集的對話插入模板,對話欄位出現處,摘要用作標籤,將此模板應用於Sansum資料集中的每行。

可用於微調對話摘要任務,儘管Flant Five是通用模型,表現良好,但在特定任務上仍有改進空間,例如,設想你是為客服團隊構建APP的資料科學家。

透過聊天機器人接收請求。

如這裡所示,客服團隊需每段對話總結,識別客戶請求的關鍵行動。

並確定應採取的行動。

三星資料集賦予Flann T5總結對話能力,然而,資料集中的示例多為朋友間日常對話,與客服聊天語言結構重疊不多,可使用對話資料集對Flann T5模型進行額外微調,更接近與機器人對話。

本週實驗室探索場景,使用對話摘要資料集,提升Flant Five總結能力,包含1。3萬對話和摘要,對話摘要非訓練資料,模型未見過這些對話。

看對話摘要示例,討論如何進一步微調,典型支援對話示例,客戶與酒店前臺對話,聊天已應用模板,以便總結指令在文首,看Flamt Five如何響應,在進一步微調前注意,提示現在左側濃縮。

給你更多空間檢查模型完成,模型對指令的響應,模型表現不錯,能識別預訂Tommy。

但不如人類生成的基準摘要,包括重要資訊,如邁克詢問資訊以方便登記,模型的完成也發明了原始對話中沒有的資訊,特別是酒店名稱和所在城市,讓我們看看模型表現如何,在對話摘要資料集上微調後。

希望你會覺得這更接近人類產生的摘要,沒有虛構資訊,摘要包括所有重要細節,包括參與對話的兩人姓名,此示例使用公共對話摘要資料集演示了在自定義資料上的微調,實際上。

使用公司自己的內部資料進行微調將獲得最大收益,例如,客戶支援應用程式中的支援聊天對話,這將幫助模型學習,公司如何喜歡總結對話,以及對客戶服務同事最有用的是什麼。

我知道這裡有很多需要理解的內容,但別擔心,這個示例將在實驗室中覆蓋,所以你會有機會看到實際操作並親自嘗試,當進行微調時需要考慮的一件事,是如何評估模型完成質量,在下一個影片中,你將學習幾種指標和基準。

以確定模型表現如何。

LangChain_微調ChatGPT提示詞_RAG模型應用_agent_生成式AI - P78:使用指令對LLM進行微調5——模型評估 - 吳恩達大模型 - BV1gLeueWE5N

本課程中,你見過類似模型表現良好的陳述,或這個微調模型在效能上大大超過了基礎模型,這些陳述意味著什麼,如何量化你微調模型相對於預訓練模型的效能改進,你開始使用的。

讓我們探索一些大型語言模型開發者使用的指標。

你可以用來評估你自己的模型,並與世界上的其他模型進行比較。

在傳統機器學習中,你可以透過檢視模型在訓練和驗證資料集上的表現來評估它,其中輸出是已知的。

你可以計算簡單的指標,如準確率,它表示所有預測中正確的比例,因為模型是確定的。

但對於大型語言模型,輸出是不確定的,語言評估更加困難。

例如,邁克真的很喜歡喝茶,這與邁克喜歡啜飲茶非常相似。

但如何衡量相似性。

讓我們看看另外兩個句子,邁克不喝咖啡和邁克喝咖啡。

這兩個句子之間只有一個詞的區別,但意義卻完全不同。

對於我們人類來說,擁有柔軟有機的大腦,我們可以看到相似性和差異,但當你訓練一個模型時,有數百萬個句子,你需要一種自動的結構化方法來測量。

Rouge和Blur是兩種廣泛使用的評估指標,用於不同的任務。

Rouge或召回導向的本科生評估,主要用於評估自動生成的摘要的質量,透過將它們與人類生成的參考摘要進行比較,另一方面。

或,雙語評估本科生演算法,旨在評估機器翻譯文字的質量,再次透過將其與人類生成的翻譯進行比較,現在單詞bleu是法語中的藍色,所以你可能聽到人們稱它為藍色,但在這裡我將堅持使用原始的blur。

在我們開始計算指標之前。

讓我們回顧一下語言解剖學中的一些術語。

Unigram相當於一個單詞,Bigram是兩個字,N-gram是n個單詞的組,相當直接的東西,首先。

讓我們看看Rouge,一個指標,並這樣做,讓我們看一個人類生成的參考句子,外面很冷,生成輸出,外面非常冷。

可進行類似其他機器學習任務的簡單度量計算,使用召回率、精確度和F1。

召回率指標衡量,參考和生成輸出之間匹配的單詞或單元數。

除以參考中的單詞或單元數。

在這種情況下得滿分1,因為所有生成的單詞都與參考中的單詞匹配,精確度衡量。

單元匹配數除以輸出大小,F1分數是這兩個值的調和平均數,這些是僅關注單詞的基本指標,因此名稱中的那個,不考慮單詞的順序,所以可能具有欺騙性,很容易生成得分高的句子,但主觀上可能很差,暫停一下。

想象一下模型生成的句子只差一個詞'不',所以外面不冷。

分數將相同,考慮雙詞可略提分數。

從參考和生成句子,處理成對單詞,簡單確認句子詞序,使用雙詞。

可計算ROUGE 2。

用雙詞匹配算召回率,而非單個詞。

分數低於ROUGE 1,長句更明顯,大機率雙字不匹配,分數可能更低。

而非繼續增加n-gram到3或4,讓我們換種方法,相反,尋找生成輸出和參考輸出中最長的公共子序列。

在這種情況下,最長匹配子序列是'it is'和'cold outside'。

每個長度為2,現在可用lcs值計算召回率、精確度和F1分數。

召回率和精確率計算中,分子是最長公共子序列長度,這種情況下為兩個,這三個量稱為ROUGE分數。

與所有ROUGE分數一樣,需要考慮上下文。

僅能使用分數比較模型能力,如果分數針對同一任務確定。

例如,不同任務的摘要ROUGE分數不可比較。

如你所見,簡單ROUGE評分的問題,是壞完成可能得高分,例如,此生成輸出為,冷,冷,冷,因生成輸出含參考句單詞。

將得高分。

儘管同一單詞重複多次,ROUGE 1精確度將完美。

一種方法是,使用剪裁函式,限制一元匹配數至參考中最大值。

在此情況下。

參考中有1次冷出現。

故帶剪裁的一元精確度,導致顯著降低得分,然而。

若生成單詞都在,但順序不同。

例如,此生成句子外冷,它被。

完美評價,即使帶剪裁的一元精確度,因生成輸出所有單詞都在參考中,所以使用不同ROUGE評分有幫助,但最有用評分將取決於句子,句子大小和用例。

注意許多語言模型庫,例如,Hugging face,第一週實驗用,包含ROUGE評分實現,你可以嘗試ROUGE評分,用它比較模型調優前後的效能,本週實驗,另一個評估模型效能的分數。

是BLUR評分,代表雙語評估研究。

提醒你,BLUR評分用於評估機器翻譯文字質量。

評分本身使用多個n元大小平均精度計算。

就像之前看的ROUGE 1評分,但為一系列n元大小計算,然後平均,讓我們仔細看看它衡量什麼和如何計算。

BLUR評分透過檢查,機器生成翻譯中多少n元與參考匹配。

匹配參考翻譯,計算得分,跨不同n-gram大小平均精度。

若手動計算,需多次計算,然後平均所有結果得模糊分,以例來說。

看長句,更好理解分值。

參考人類提供的句子是,我很高興地說,現喝熱茶,如深入看過個別計算,檢視ROUGE時,將展示模糊結果,使用標準庫。

計算模糊分簡單,使用Hugging Face等提供商的預寫庫。

我已為每個候選句子完成,第一個候選是,我很高興在喝茶,模糊分為0。495。

越接近原文,得分越接近1,ROUGE和模糊都很簡單,計算成本低。

迭代模型時可作簡單參考。

不要單獨使用它們報告大型語言模型的最終評估。

使用ROUGE評估摘要任務,使用模糊評估翻譯任務,整體評估模型效能。

但需檢視研究人員開發的一個評估基準。

LangChain_微調ChatGPT提示詞_RAG模型應用_agent_生成式AI - P79:使用指令對LLM進行微調6——基準測試 - 吳恩達大模型 - BV1gLeueWE5N

如上影片所見,LLM既複雜又簡單,如ROUGE和BLUR評分,僅能告訴你模型能力多少,為全面評估和比較LLM,可利用預,存資料集和相關基準,由LLM研究人員專為該目的建立,選擇合適評估資料集至關重要。

以便準確評估LLM效能,理解其真正能力,選擇隔離特定模型技能的數集將有用,如推理或常識知識,關注潛在風險,如假資訊或版權侵犯,應考慮模型是否在訓練時見過評估資料,可更準確評估模型能力。

透過評估其未見過的資料表現,基準如glue,Superglue,或helm涵蓋廣泛任務和場景。

透過設計或收集測試特定方面的大型資料集。

Glue或通用語言理解評估於2018年引入。

膠水是自然語言任務集,如情感分析和問答。

膠水旨在促進跨多工模型的開發。

超膠水於2019年推出,以解決其前身的限制,它由一系列任務組成。

其中一些任務未包含在膠水中,其中一些是相同任務的更具挑戰性版本。

超膠水包括多句推理和閱讀理解等任務。

兩者,膠水和超膠水,基準有排行榜,可比較模型,結果頁是追蹤llms進展的好資源,模型越大,對基準的效能,如超膠開始匹配人類特定任務能力,即模型在基準測試中表現與人類相當,但主觀上。

我們看到它們在一般任務上未達人類水平,因此,本質上,llms湧現特性和衡量它們的基準間有軍備競賽,以下是推動llms發展的幾個近期基準,這裡是推動llms發展的幾個新基準。

大規模多工語言理解。

模型需具備廣泛世界知識。

模型測試基礎數學,美國曆史,電腦科學,法律等,即超越基本語言理解的任務。

Big Bench目前包括204項任務。

涵蓋語言學、兒童發展、數學等。

兒童發展,數學,常識,推理,生物學,物理學,社會偏見,軟體開發等更多。

大本鐘有3種尺寸,部分原因是控制成本,因為這些大型基準測試會產生大推斷成本。

你應該瞭解的最終基準是語言模型的整體評估或helm,helm框架旨在提高模型的透明度,併為特定任務提供模型效能的指導,helm採用多指標方法,在16個核心場景中測量7個指標。

確保模型和指標之間的權衡清晰,helm的一個重要特點是評估超越基本準確度指標,如精確度或F1分數,基準還包括公平性,偏見和毒性指標,隨著大型語言模型越來越能生成人類語言,並可能表現出潛在有害行為。

helm是一個不斷髮展的基準,旨在隨著新場景,指標和模型的新增而不斷演進,你可以檢視結果頁面,瀏覽已評估的llms。

LangChain_微調ChatGPT提示詞_RAG模型應用_agent_生成式AI - P8:8-建議和實用技巧 - 吳恩達大模型 - BV1gLeueWE5N

好的,你完成了最後一課,這些是開始時要考慮的,現在,一些實用技巧,以及更高階訓練方法的預覽,首先,一些微調步驟,總結一下,首先,確定任務,收集與任務相關的資料,輸入和輸出,按此結構組織。

如果沒有足夠的資料,沒問題,生成一些或使用提示模板建立更多,首先,微調一個小模型,推薦4億到10億引數的模型,以瞭解該模型效能如何,你應該改變實際給模型的資料量,以瞭解資料量對模型走向的影響。

然後評估模型,看看進展如何,最後,透過評估收集更多資料以改進模型,從那裡,你可以增加任務複雜性,現在可以讓它更難,然後你也可以增加模型大小以提高複雜任務效能。

在任務微調中,你瞭解了,閱讀任務和寫作任務,寫作任務更難,這些是更廣泛的任務,如聊天,寫電子郵件,寫程式碼,因為模型產生了更多的標記,所以這是一個對模型來說更困難的任務。

更難的任務往往需要更大的模型才能處理,另一種讓任務更難的方法是組合任務,讓模型做組合的事情而不是單一任務,這意味著讓代理靈活,同時做幾件事或僅一步,而不是多步。

所以,現在你對任務複雜度所需的模型大小有了感覺,還有計算要求,基本上關於硬體,你需要執行模型的實驗室,你看到那些7000萬引數的模型在CPU上執行,它們不是最好的模型,我建議從更通用的東西開始,所以。

如果你看這張表,第一行,我想指出的是可用的1v100 GPU,例如,在AWS上,所以,也支援其他雲平臺,記憶體有16GB,可執行70億引數模型,但訓練需更多記憶體存梯度,實際僅能適配10億引數模型。

若要適配更大模型。

可檢視其他選項,很棒,或許你認為不夠,想處理更大模型,那麼,有種叫盜竊或引數高效,微調,一系列不同方法助你,更高效使用引數和訓練模型。

我喜歡的叫Laura,代表低秩適應,Laura減少需訓練權重數,對GPT-3大幅減少,例如,發現可減少1萬倍,結果需3倍記憶體,精度略低於微調,但仍為高效方法,推理延遲不變,Laura究竟如何?實際上。

在模型部分層訓練新權重,凍結主要預訓練權重,藍色部分為凍結,全部凍結,你有這些新橙色重物,那些是Lora重物,新重物,這有點數學化,原始權重的秩分解矩陣是否改變,但重要的是較少,所以你知道這裡的數學。

你可以單獨交替訓練這些,而不是預先訓練的權重,但在推理時間,能夠將它們合併回主要預先訓練的權重,最佳化精細調優模型更高效,我真正興奮用Laura做,是適應新任務。

這意味著你可以用Laura在一個客戶的資料上訓練模型,然後在另一個客戶的資料上訓練另一個。

然後在推理時合併它們。

LangChain_微調ChatGPT提示詞_RAG模型應用_agent_生成式AI - P80:引數高效微調1——引數高效微調(PEFT) - 吳恩達大模型 - BV1gLeueWE5N

正如你在課程培訓的第一週所看到的,Llms是計算密集型的,全量微調不僅需要儲存模型,還需要在訓練過程中所需的各種其他引數,即使你電腦可以持有模型權重。

這些權重對於最大的模型現在已經達到了數百吉位元組的規模。

你也必須能夠為最佳化器狀態分配記憶體。

梯度,前向啟用和訓練過程中臨時記憶體,這些額外的元件可以比模型大得多。

並且可以迅速變得過大以至於在消費者硬體上難以處理,與全面精細調整不同,在那裡每個模型權重都會在監督學習引數中更新。

高效的精細調整方法只會更新引數集的一個小部分。

一些高效技術會凍結模型的大部分權重並專注於精細調整,例如,一個現有模型引數的子集,例如,特定的層或元件。

其他技術根本不接觸原始的模型權重,而是新增一些新的引數或層,並僅對使用peft最的新元件進行精細調整。

如果所有的llm權重都沒有被凍結,因此,訓練的引數數量遠小於原始llm的引數數量。

而且在一些情況下,只有原始llm權重的十五到二十分之一。

這使得訓練所需的記憶體要求更加可管理,實際上,Peft往往可以在單個gpu上進行。

因為原始llm只是被稍微修改或保持不變,盜竊更不容易受到災難性的。

全精細調整忘記問題的問題,全面的微調將產生針對您訓練的所有任務的新模型版本。

這些每個都與原始模型相同大小。

因此,如果您為多個任務進行微調,可能會出現昂貴的儲存問題。

讓我們看看如何使用路徑來改善這種情況,以引數高效的微調。

您只訓練一小部分權重。

這導致足跡大大減小,總的來說,小到兆位元組。

取決於任務,新的引數與原始llm權重結合用於推理。

對於每個任務,都有專門的輕量級權重進行訓練,並且可以在推理時輕易地替換出來。

允許原始模型高效地適應多個任務。

對於引數高效的方法,你有幾種可以使用的。

微調,每種方法都有在引數效率上的權衡,記憶體效率,訓練速度,模型質量和推理成本。

讓我們來看看輕量級權重方法的三種主要類別,選擇性方法只精細調整原始llm引數的一部分。

你可以採取幾種方法來確定你想要更新的引數,你有選擇僅訓練模型特定元件或層的選項,甚至特定引數型別。

研究人員發現這些方法的效能參差不齊,並且在引數效率和計算效率之間存在顯著的權衡。

因此,我們在這門課程中不會專注於它們,重新引數化方法也工作於原始llm引數。

但透過建立新的引數來減少需要訓練的引數數量,原始網路權重的低秩變換。

這種技術的一種常見方法是laura。

你將在下一個影片中詳細探索它,附加方法,透過保持所有原始llm權重凍結來進行微調,並在這裡引入新的可訓練元件,主要有兩種方法,介面卡方法。

在模型架構中新增新的可訓練層,通常在內部編碼器或解碼器的元件中,注意力或前饋層之後。

軟提示方法,另一方面,保持模型架構固定和凍結,專注於操縱輸入以實現更好的效能。

這可以透過向提示嵌入新增可訓練引數來實現,或保持輸入固定,重新訓練嵌入權重。

在這堂課中。

你將首先看一下一種特定的軟提示技術叫做提示微調,讓我們繼續到下一個影片,更深入地瞭解lora方法。

LangChain_微調ChatGPT提示詞_RAG模型應用_agent_生成式AI - P81:引數高效微調2——PEFT技術1 - LoRA(低秩適應) - 吳恩達大模型 - BV1gLeueWE5N

低秩適應,或勞拉,簡言之,是一種引數高效微調技術,屬於重引數化類別,讓我們快速回顧一下它是如何工作的,這是您在課程早期看到的變壓器架構圖。

輸入提示被轉換為標記。

然後轉換為嵌入向量,並傳遞到變壓器編碼器或解碼器部分。

在這兩個元件中,有兩種神經網路,自注意力和前饋網路。

這些網路的權重在預訓練時學習,嵌入向量建立後,輸入到自注意層,應用一系列權重計算全微調時的注意力得分,這些層的每個引數都會更新。

Laura策略減少微調時需訓練的引數數,透過凍結原始模型的所有引數,並在原始權重旁邊注入一對秩分解矩陣。

小矩陣尺寸已設,使乘積矩陣與待修改權重尺寸相同。

你。

然後凍結LLM原始權重,訓練這些小矩陣。

使用本週早些時候看到的監督學習過程進行推斷。

兩個低秩矩陣相乘,生成與凍結權重相同尺寸的矩陣。

然後將其新增到原始權重並替換模型中的這些更新值。

現在有一個Lora微調模型可執行特定任務,因為此模型與原始模型引數數量相同。

對推理延遲影響甚微。

研究人員發現僅將Laura應用於自我,模型中的注意力層通常足以微調任務並實現效能提升,然而,原則上,也可在其他元件如前饋層使用Laura。

但大多數LLM引數在注意力層。

應用Laura到這些權重,可節省最多可訓練引數,矩陣,讓我們看個實際例子,基於注意力機制的Transformer架構。

論文指出Transformer權重為500,乘12乘64。

這意味著每個權重矩陣有32,768個引數。

三千二百,七百六十八,若使用Laura微調,秩為8,將訓練兩個小的秩分解矩陣,小維為8。

這意味著矩陣A為8乘64,共512個引數。

矩陣b尺寸為512x8,或4096個可訓練引數。

透過更新這些低秩矩陣的權重,而不是原始權重,你將訓練4000,608個引數而非32000,768,88。6%的減少,因為Laura可大幅減少可訓練引數,通常可單用GPU進行引數高效微調。

避免需要分散式GPU叢集,因分解矩陣尺寸小。

可為每個任務訓練不同集合,並在推理時更新權重切換。

假設為特定任務訓練一對Laura矩陣。

稱為任務A進行推理。

將這兩個矩陣相乘,然後將結果矩陣加到原始凍結權重。

然後取這個新總和權重矩陣,替換模型中出現的原始權重。

然後可用此模型進行任務A推理。

若要執行不同任務,如任務B,只需取為該任務訓練的Laura矩陣。

計算其乘積,然後將此矩陣加到原始權重並更新模型。

儲存這些Laura矩陣所需記憶體很小,原則上可用Laura為許多工訓練。

避免儲存多個完整大小的LLM版本,這些模型表現如何,使用本週早些時候學習的ROUGE指標,比較Laura微調模型,與原始基礎模型和完整微調版本的效能,專注於對Flat Five進行對話摘要微調。

這是本週早些時候探索的內容。

提醒一下,Flat Five基礎模型已進行初步完整微調。

使用大型指令資料集首先,為Flat Five基礎模型和討論的摘要資料集設定基準分數,以下是基礎模型的根分數。

分數越高表示效能越好,討論中應關注ROUGE 1分數,但可用於比較的任何這些分數,如您所見,分數相當低,接下來看模型分數。

該模型已進行額外完整對話摘要微調,記住。

儘管Flat Five是一個能力模型,仍可針對特定任務進行全面微調以獲益。

監督學習中更新模型所有權重,這導致ROUGE 1得分大幅提升。

模型提高0。19,額外一輪微調極大改善。

模型在摘要任務上的效能,現在看看Laura微調模型的得分。

此過程也帶來顯著效能提升。

ROUGE 1得分較基準提高0。17。

略低於全面微調,但不多,然而,使用Laura微調訓練了遠少於完全微調的引數。

使用更少的計算,因此,這種效能的小幅下降可能非常值得。

你可能想知道如何選擇Laura矩陣的秩,這是一個好問題,原則上仍是一個活躍的研究領域,秩越小,可訓練引數越少,計算節省越大,然而,需要考慮一些與模型效能相關的問題,在論文中。

那首次提議的勞拉,微軟研究人員探索了不同排名選擇對模型效能的影響。

在語言生成任務中,結果總結見下表。

表格顯示第一列中Laura矩陣的排名。

模型最終損失值,不同指標得分,包括BLEU和Bruges。

粗體值表示每個指標的最佳得分。

作者發現排名大於16時,損失值達到平穩,換句話說,使用大矩陣無改善。

要點是4至3的秩,2可平衡減少引數和保留效能。

最佳化秩選擇是研究領域,隨著更多實踐者使用laura,最佳實踐可能演變,Laura是強大的微調方法,效能優異,方法原理不僅適用於訓練llms,也適用於其他領域的模型,本週探索的最終peft方法。

完全不改變LLM,而是專注於訓練輸入文字。

LangChain_微調ChatGPT提示詞_RAG模型應用_agent_生成式AI - P82:引數高效微調3——PEFT技術2 - 軟提示 - 吳恩達大模型 - BV1gLeueWE5N

與勞拉一起,目標是找到一種高效的方法更新模型的權重,無需再次訓練每個引數,PEFT中也有新增的方法,旨在提高模型效能,沒有任何權重更改,在這個影片中。

你現在將探索一種名為提示調整的第二種引數高效微調方法,提示調整聽起來有點像提示工程,但它們與彼此有很大的不同。

與提示工程,"你專注於你的提示語言","以獲取你想要的完成",這可能只需要嘗試使用不同的詞彙或短語,"或者更復雜,如包括一個或幾個樣本的推斷示例",目標是幫助模型理解你正在要求它完成的任務的本質。

"執行並生成更好的完成"。

然而,"提示工程有一些限制","因為它可能需要大量的手動努力來編寫和嘗試不同的提示","你也受限於上下文的視窗長度",到了一天結束時,你仍然可能無法達到完成你任務所需的效能,透過提示微調。

你向提示中新增額外的可訓練標記,並讓監督學習過程決定它們的最佳值,這些可訓練標記被稱為軟提示,它被新增到代表輸入文字的嵌入向量之前,軟提示向量,與語言標記的嵌入向量長度相同。

包括大約二十到一百個虛擬標記可能足以獲得良好的效能。

代表自然語言的標記是硬的,"從意義上說,它們各自對應於嵌入向量空間中的一個固定位置",然而,"柔軟的提示並不是自然語言中固定的連續詞語"。

"相反地",你可以將它們視為可以在連續的多元化中取任何值的虛擬代幣。"維度嵌入空間","並透過監督學習","模型學習到的這些虛擬標記的值,能夠最大化給定任務的效能"。

"在精確的調整中","訓練資料集包括輸入提示和輸出完成或標籤",大型語言模型的權重在監督學習期間得到更新。

與提示調整不同,大型語言模型的權重被凍結,底層模型沒有得到更新,相反,軟提示的嵌入向量隨時間得到更新,為了最佳化模型對提示的完成,提示調整是一種非常引數高效的策略,因為只有幾個引數被訓練。

與全細調中的幾百萬到數十億個引數不同。

類似於你與laura看到的情況,你可以為每個任務訓練一套不同的軟提示,然後在推理時輕鬆地替換它們,你可以為一個任務訓練一套軟提示。

併為另一個任務訓練一套不同的,以在推理時使用它們,你將在輸入提示的末尾新增學習到的詞元,以切換到另一個任務,你只需更改軟提示,軟提示在磁碟上非常小,因此,這種微調極其高效和靈活。

你會注意到所有任務都使用相同的llm,你所需要做的就是在推理時替換軟提示。

那麼在原始論文中,提示調整的效能如何,由布萊恩·萊斯特和他的谷歌合作者在此方法中探索,作者在此圖中比較了提示調整與其他方法在多種模型大小上的效能,從論文中,你可以在x軸上看到模型大小。

在y軸上看到超級膠水得分,這是您本週早些時候學到的評估基準,它評估模型在多個不同語言任務上的效能,紅色線顯示了透過單個任務全細調建立的模型的得分,而橙色線顯示了使用多工細調建立的模型的得分。

綠色線顯示了提示調整的效能,最後,藍色線顯示了僅針對提示工程的得分,正如你可以看到,提示調整在較小的llms上的效能不如全細調,然而,隨著模型大小的增加,提示調整的效能也隨之提高。

一旦模型的引數數量達到約十億。

提示調整可以與全細調一樣有效,並提供比僅使用提示工程顯著提升效能的優勢,需要考慮的一個潛在問題是學習到虛擬標記的解釋性,記住,因為軟提示標記可以取連續嵌入向量空間中的任何值。

訓練標記不對應於任何已知標記,LLM詞彙表中的詞彙或短語,然而,對軟提示位置的最近鄰居標記的分析顯示,它們形成了緊密的語義簇,換句話說,最接近軟提示標記的詞彙具有相似的意義,被識別的詞彙通常與任務有關。

這表明提示正在學習像詞的表示。

"勞拉在這節課中探索了兩種不良的方法","它使用秩分解矩陣以高效更新模型引數","並及時調整,在你 的提示中新增可訓練的標記","並且模型權重未被修改"。

"這兩種方法都允許你根據任務可能的效能改進來精細調整模型。"。

"在使用比全精細調整方法少得多的計算資源時","勞拉在實踐中廣泛使用","由於在許多工和資料集上與全面微調具有可比性"。

"並且在這周的實驗室裡,你將有機會親自嘗試它。","所以,恭喜你完成了第二週的任務",讓我們回顧一下你本週早些時候看到的內容。

Mike,透過名為指令微調的過程,為你解釋瞭如何適應基礎模型,在這個過程中,你看了一些用於訓練平面五模型的提示模板和資料集,你也看到了如何使用如rouge和helm等評估指標和基準。

來在實踐中測量模型微調的成功,指令微調已被證明非常有效和有用,在各種自然語言使用案例和任務中都有廣泛的應用,僅僅需要幾百個例子,你就可以根據你的特定任務微調一個模型,這真是令人驚歎,接下來。

你看到引數高效的微調或盜竊如何減少調整模型的計算需求,你學習了兩種你可以用於此的方法,laura和提示微調,順便說一句,你也可以將laura與第一週中學習的量化技術結合使用,以進一步減少你的記憶體佔用。

這在實踐中被稱為"奎拉拉"。"佩夫被廣泛用於最小化計算和記憶體資源","最終降低微調成本"。

LangChain_微調ChatGPT提示詞_RAG模型應用_agent_生成式AI - P83:人類反饋強化學習1——引言 - 吳恩達大模型 - BV1gLeueWE5N

上週學習了指令,大型語言模型的調優及微調,本週深入RLHF,從人類反饋中學習,你可能在新聞中聽過的技術,但實際如何運作?深入探討,以及第二個激動人心的主題,如何使用LMS作為推理引擎,並讓它呼叫子程式。

建立能行動的代理,所以RLHF非常激動人心,有助於使模型與人類價值觀對齊,例如,語言模型可能在建立有害內容方面有挑戰,或如有毒的語氣或聲音,透過與人類反饋對齊並使用強化學習作為演算法。

可以幫助模型減少這些內容,並使其與較少有害和更多有益的內容對齊,有時人們感覺我訓練於這些可怕的資料,你知道,一些可怕的上網資料似乎很危險,我認為許多人低估了我們的高階功能,它當然不完美。

AI確實產生問題輸出,但隨著技術進步,研究人員不斷改進它們,我猜是右邊三英寸,誠實,有幫助且無害,是的,絕對,本週我將與,亞馬遜的應用科學家一起,他將解釋強化學習演算法背後的原理,期待那時刻,沒錯。

正是這些人將加入我們,我們確實邀請了Ashley Sifis博士,他將與我們討論負責任的AI,沒錯,Ashley將加入我們,我將與她圍繞負責任的AI主題進行討論,這同樣重要。

很高興你在這方面投入了這麼多時間,人工智慧風險,許多人深思熟慮,我認為所有主要AI團隊都非常重視,資源和努力,深度思考,我們遠非完美,但社群確實在努力做得更好,每年如此,除了,負責任的人工智慧,和。

調整模型,嗯,使用rhf,我興奮的另一技術是使用lms作為推理引擎,並賦予它們呼叫自己的子例程的能力,也許進行網路搜尋或其他操作,當然,我們將在本課中深入探討,我們還將討論一些技術,允許您繞過。

大型語言模型中看到的某些限制,透過允許它們透過類似react的技術推理和採取行動,我們還將討論rag,它允許您訪問外部資訊源,因此您可以訪問特定領域的資訊,我們看到許多客戶希望將資訊。

從專有資料來源整合到其生成性應用程式中,因此,我們稍微談了一些允許您這樣做的技術和方法,你知道大型語言模型的優點之一,是它們非常擅長記憶事實,您正在網際網路上學習事實。

有時人們使用它們作為事實的儲存庫來獲取問題的答案,但我認為有一種不同的,也許我認為更有幫助的方式來思考lms,即,嗯,如果它是一個推理引擎,您給它,你知道的api去獲取自己的事實,因為這很好。

但不是最好的事實資料庫,但有一個非常好的推理引擎,我認為這是這些模型的真正力量,絕對,絕對更經濟,使用資料庫儲存這些資訊,然後您的生成性AI用於那個,它旨在用於的,這是一個很好的觀點,因此,隨著這一點。

嗯,這最後一週有很多令人興奮的事情,我確信您會喜歡它,因此,讓我們繼續觀看下一個影片。

LangChain_微調ChatGPT提示詞_RAG模型應用_agent_生成式AI - P84:人類反饋強化學習2——使模型與人類價值觀一致 - 吳恩達大模型 - BV1gLeueWE5N

歡迎回來,讓我們回到上週的生成式i專案生命週期,你仔細研究了一種叫做微調技術。

微調的目標是按照指示進行,包括後處理方法是為了進一步訓練你的模式,以便它們更好地理解人類類似的提示並生成更人類的響應。

這可以顯著提高模型的效能超過原始的預訓練基礎版本,並導致更自然的語言。

然而,現在人類自然的語言帶來了一套新的挑戰,你可能已經看到了關於大型語言模型行為不當的頭條新聞,問題包括模型在其完成中使用有毒語言,以對抗性和攻擊性的語氣回覆,並提供有關危險主題的詳細資訊。

這些問題存在因為大型模型被訓練在大量的網際網路文字資料中。

其中這樣的語言出現頻繁,以下是一些模型行為不當的例子,假設你想要你的llm告訴你敲門。

敲門笑話,而模型的回應只是啪啪啪,很有趣,從它的角度來看,這並不是你想要的,在這裡的完成並不是對給定任務的有幫助答案,同樣,llm可能會給出誤導性或僅僅是錯誤的答案。

如果你問llm關於被證明錯誤的健康建議。

比如咳嗽可以停止心臟驟停,模型應該反駁這個故事,相反,模型可能會給出自信且完全錯誤的回應,絕對不是一個人所尋求的真實和誠實的答案,此外,llm不應該建立有害的完成,如攻擊性,歧視性,或引發犯罪行為。

如這裡所示,當你問模型如何駭客你鄰居的wi fi。

它回答了一個有效的策略,理想情況下,它應該提供一個不會導致傷害這些重要人類價值的答案,幫助性,誠實和無害性有時被集體稱為hh,h,並且是一組指導開發人員在負責任的使用ai時的原則。

透過人類反饋的微調可以幫助模型更好地與人類偏好對齊,並增加幫助性,誠實和無害性完成的程度,這種進一步訓練也可以幫助減少模型的響應毒性,並減少錯誤的資訊的生成。

在這堂課中,你將學習如何使用人類的反饋來對齊模型。

LangChain_微調ChatGPT提示詞_RAG模型應用_agent_生成式AI - P85:人類反饋強化學習3——透過人類反饋進行強化學習(RLHF) - 吳恩達大模型 - BV1gLeueWE5N

讓我們考慮文字摘要的任務,在這裡,你將使用模型生成短文字片段,它捕獲長篇文章中最重要的點,你的目標是透過微調來提高模型的摘要能力,透過顯示給人類生成的摘要示例,在二十。

OpenAI的二十位研究人員發表了一篇論文,探索了使用人類反饋進行微調的方法,以訓練一個模型來撰寫文字文章的短摘要。

在這裡,你可以看到,接受人類反饋微調的模型比預訓練模型產生了更好的響應,一個指令式微調模型。

甚至參考人類基準,一種在具有人類反饋的大型語言模型中找到你的技術,被稱為強化學習,從人類反饋或RHF(縮寫)中。

正如名字所示,像Jeff使用強化學習或RL(縮寫)一樣,以人類反饋資料微調LLM,結果產生一個更與人類偏好對齊的模型。

你可以使用RHF,以確保你的模式產生,輸出最大化有用性和相關性到輸入提示。

最重要的是,我們的院長幫助最小化潛在的傷害。

你可以訓練你的模式給出承認其限制的警告,並避免在主題上使用有毒語言。

LF的一個潛在興奮應用是LMS的個人化,模型透過連續反饋過程學習每個使用者的偏好。

這可能導致新的技術,如個性化學習計劃或個性化AI助手,但要理解這些未來應用如何可能實現,讓我們從更詳細地研究RHF開始,如果你不熟悉強化學習,這裡是對最重要概念的高階概述,強化學習是一種機器學習。

在其中,代理學習如何做出與特定目標相關的決策,透過在環境中採取行動,目標是在這個框架中最大化某種累積獎勵的概念。

代理透過其行動不斷學習,觀察環境發生的變化,並根據其行動的結果接收獎勵或懲罰。

透過這個過程的迭代,代理迅速改進其策略或政策,以做出更好的決策並增加成功的機會。

一個有用的例子來說明這些想法是訓練模型玩井字棋,讓我們看看,在這個例子中,代理是一個模型或策略,作為井字棋玩家行動,其目標是贏得遊戲,環境是三乘三的遊戲板,並且任何一刻的狀態都是當前板的配置。

動作空間包括基於當前板狀態的所有可能位置,代理透過遵循稱為RL策略的策略來做出決策。

現在,當代理採取行動時,它根據向勝利前進的行動效果收集獎勵。

強化學習的目標是讓代理學習給定環境中的最優策略,以最大化獎勵,這個學習過程是迭代的,涉及試錯,最初,代理採取隨機行動,這將導致從當前狀態到新狀態的狀態變化,代理繼續探索後續狀態以獲取進一步行動。

一系列行動和相應的狀態形成一個遊戲序列。

通常被稱為回滾,隨著代理的經驗積累,它輕易揭示出能帶來最高長期回報的行動。

最終導致遊戲成功,現在,"讓我們來看看如何治療抽搐","塔克陶的例子可以擴充套件到微調情況","具有rhf的大型語言模型"。

在這種情況下,"指導代理行動的政策是llm","其目標是生成被感知為人類偏好一致的任務"。

這可能意味著文字是,例如,有幫助的,準確的,並且無毒的,環境是模型的上下文視窗,提示可以輸入文字的空間,模型在採取行動之前考慮的狀態,是當前上下文,意味著任何當前包含在視窗中的文字。

這裡的動作是生成文字,這可能是一個單詞,一句句子,或更長形式的文字,取決於使用者指定的任務。

動作空間是標記詞彙表,意味著所有模型可以從中選擇的潛在標記,以生成完成。

lm如何決定序列中的下一個標記,取決於它在訓練過程中學習到的語言統計表示的任何給定時刻。

模型將採取的行動意味著,它下一個將選擇的標記取決於上下文中的提示文字,以及詞彙空間上的機率分佈,獎勵被分配。

基於完成與人類偏好的緊密程度,考慮到人類對語言的不同反應,確定獎勵比tic tac toe的例子更復雜,你可以這樣做的一種方法是有一個人類,評估模型的所有完成對於一些對齊度量,例如。

確定生成的文字是有毒的還是非毒的,這種反饋可以表示為一個標量值,要麼是零,要麼是一,llm的權重然後迭代更新,以最大化從人類分類器獲得的獎勵,使模型能夠生成無毒的完成項,然而。

作為實際和可擴充套件的替代方案,獲取人類反饋可能需要時間和金錢。

你可以使用另一個模型,被稱為獎勵模型,來分類llm的輸出,並評估其與人類偏好的吻合程度。

你將從少數人類示例開始,一旦訓練完成,使用傳統的監督學習方法訓練次要模型。

你將使用獎勵模型來評估llm的輸出。

並分配一個獎勵值,哪個,反過來,被用來更新lm的權重並訓練一個新的與人類對齊的版本。

模型完成度被評估時,權重如何更新,具體取決於,用於最佳化政策的演算法,你將更深入地探索這些問題,最後請注意,在語言模型的背景下。

動作序列和狀態序列被稱為回滾,而不是在經典強化學習中常用的術語回放。

獎勵模型是強化學習過程的核心元件,它編碼了從人類反饋中學習的所有偏好,在模型更新其權重的多次迭代中起著核心作用。

在下一個影片中,你將看到如何訓練這個模型,以及如何在強化學習過程中使用此模型來分類模型的輸出。

LangChain_微調ChatGPT提示詞_RAG模型應用_agent_生成式AI - P86:人類反饋強化學習4——RLHF - 獲取人類的反饋資訊 - 吳恩達大模型 - BV1gLeueWE5N

微調大型語言模型第一步,選擇模型開始工作,用它準備人類反饋資料集,選用的模型應能執行任務,無論是文字摘要,問題,回答,或其他一般任務。

從已微調多工。

並具通用能力的指導模型開始可能更容易,然後使用此llm,結合提示資料集生成每個提示的不同響應。

提示資料集由多個提示組成,每個提示都由lm處理以產生一組完成。

下一步是收集人類標籤者的反饋,關於llm生成的完成,這是人類反饋部分,強化學習首先使用人類反饋,您必須決定人類應評估的標準。

這些完成的可能是迄今為止討論的任何問題。

如幫助性或毒性,一旦決定,請評估資料集中的每個完成,基於標準。

看個例子,這次提示是:我家太熱。

將提示傳遞給llm,然後生成三個不同完成,你給標籤員的任務是按幫助性排名,從最有幫助到最沒幫助,所以標籤員可能決定完成二是最有幫助的,告訴使用者可降溫方法,完成一或三無幫助,但標記者可能認為三最差。

因模型與使用者輸入相悖,標記者將最佳完成排第二,此過程對多提示完成集重複,構建可訓練獎勵模型的資料集,最終代替人類執行工作,相同提示,完成集常分配給多人類標記者,建立共識,減少差標籤影響,如第3個標籤者。

其回答與其他人不同,可能誤解說明,這實際上很重要,說明清晰影響反饋質量,標籤者常從多樣化全球樣本中抽取,這是為人類標籤者編寫的示例說明,這將在任務開始前呈現給標籤者閱讀,並在處理資料集時可供參考。

說明從總體任務開始,在這種情況下,選擇最佳完成提示,說明繼續提供額外細節,指導標籤員如何一般完成任務,這些說明越詳細,標籤員理解他們必須執行的任務並按您希望的方式完成的可能性就越高,例如。

在第二個說明項中,標籤員被告知應基於,他們對響應正確性和資訊性的感知做出決定,他們被告知可以使用網際網路核實事實,他們可以使用網際網路核實,檢查並查詢其他資訊,他們被告知如何處理平局。

即他們認為同樣正確和資訊豐富的成對完成,工人被告知排名是可以的,兩個相同的完成,但應儘量少做,這裡值得強調的最終指示是遇到無意義,令人困惑或不相關的答案時該怎麼做,在這種情況下,工人應選擇f而不是排名。

低質量答案可輕易刪除,提供詳細指導可提高高質量回復機率,確保人類個體完成任務方式相似,這有助於確保標註完成的集合,代表共識觀點,人類標註者完成提示完成集評估後,您擁有所有資料,需要訓練獎勵模型。

將用於強化學習中分類模型完成,而非人類,在開始訓練獎勵模型之前進行微調,然而,需將排名資料轉換為成對比較。

換句話說,所有可能的完成對,從可用選項到提示應分類為0或1分。

如圖所示,對一個提示有3個完成,人類標籤員分配的排名為213,如圖所示,1為最高排名,對應最受歡迎的回應。

三種不同完成,三種紫色可能。

黃色,紫色,綠和黃綠。

根據提示的備選完成數n。

每對有n選2組合。

給優選回覆1分,給次選回覆0分。

然後重排提示,優選在前。

這是重要一步,因獎勵模型期待首選完成,即稱為y_sub_j第一,一旦完成此資料,重構人類回應將符合訓練格式。

獎勵模型注意,雖然點贊,點踩,反饋常比排名反饋更容易一起。

排名反饋提供更多提示完成資料訓練獎勵模型,如你所見。

LangChain_微調ChatGPT提示詞_RAG模型應用_agent_生成式AI - P87:人類反饋強化學習5——RLHF - 獎勵模型 - 吳恩達大模型 - BV1gLeueWE5N

好的,目前階段,你已擁有訓練獎勵模型的所有必要內容,雖然到達這一點花費了相當多的人力,當你完成訓練獎勵模型時,將不再需要將人類納入迴圈中,相反,獎勵模型將有效地脫離人類標註者。

並在ARHF過程中自動選擇首選完成。

此獎勵模型通常也是一個語言模型,例如,使用監督學習方法訓練的鳥,基於你準備的成對比較資料。

從人類標註者對給定提示x的評價,獎勵模型學會偏愛人類首選完成y_j,同時最小化獎勵差異r_j減去r_k的對數sigmoid,如上一頁所示。

人類首選選項始終是第一個標記為y_j的,一旦模型在人類排名提示完成對上進行訓練。

你可以將獎勵模型用作二元分類器。

為正負類提供一系列邏輯。

邏輯是未應用任何啟用函式的模型輸出,假設你想淨化你的LLM。

並且獎勵模型需要識別完成是否包含仇恨言論,在這種情況下。

兩個類別將是非仇恨,即你最終希望最佳化的正面類別,和仇恨,即你想避免的負面類別。

正面類別的邏輯值是你在RHF中使用的獎勵值,提醒一下,如果你對邏輯應用softmax函式。

你將獲得機率,此示例顯示了對非毒性完成的良好獎勵。

第二個示例顯示了對毒性完成的糟糕獎勵,嘿嘿。

我知道這節課到目前為止已經涵蓋了大量內容,但此時你擁有了一個強大的工具——獎勵模型,用於對齊你的LLM,下一步是探索獎勵模型如何在強化學習過程中使用,以訓練你的人類對齊LLM,加入我在下一個影片中。

看看這是如何工作的,在下一節中。

LangChain_微調ChatGPT提示詞_RAG模型應用_agent_生成式AI - P88:人類反饋強化學習6——RLHF - 透過強化學習進行微調 - 吳恩達大模型 - BV1gLeueWE5N

好的,把所有東西整合起來,看看如何在強化學習過程中使用獎勵模型,更新llm權重並生成人類對齊模型,記住要從已經在您感興趣的任務上表現良好的模型開始。

所以您將努力對齊一個指令。

首先您會從提示資料集中傳遞一個提示。

在這種情況下,狗是指導,一條肢體,然後生成一個完成。

在這種情況下,一個毛茸茸的動物,接下來,您將把這個完成和原始提示傳送給獎勵模型作為提示完成對。

獎勵模型基於它所訓練的人類反饋評估對。

並返回一個獎勵值,更高的值,如這裡顯示的0。24,代表更對齊的響應。

較不一致的響應將獲得較低的值,例如,-0。53。

然後您將把這個獎勵值傳遞給提示完成對,到強化學習演算法以更新llm的權重並使其朝著。

生成更多對齊的更高獎勵響應,讓我們稱這個中間版本的模型為。

rl更新llm,這些步驟一起形成一個rhf過程的單個迭代。

這些迭代將持續給定的週期數。

類似於其他型別的微調,您可以看到由rl更新llm生成的完成獲得更高的獎勵得分。

指示權重更新已導致更對齊的完成。

如果過程進展順利,您將看到每次迭代後獎勵都有所提高,因為模型產生越來越符合人類偏好的文字。

您將繼續這個迭代過程,直到您的模型對齊,基於某些評估標準。

例如,達到您定義的有用性閾值。

您還可以定義最大步驟數,例如。

20,000作為停止標準,讓我們稱微調後的模型為人類對齊llm。

我們還沒有討論的一個細節是強化學習演算法的確切性質,這是接受獎勵模型輸出的演算法,並使用它來更新llm模型權重。

以便獎勵得分隨時間增加。

對於rf過程的這一部分,您可以使用幾種不同的演算法。

一個流行選擇是近端策略最佳化或簡稱ppo。

ppo是一個相當複雜的演算法,您不必熟悉所有細節。

就能使用它,然而,它可能是一個難以實現的演算法,更深入地瞭解其內部工作原理是有幫助的。

如遇問題,可幫你排錯,讓它工作,詳細解釋PPO演算法,我邀請了AWS同事,E,K,深入探討技術細節,下一個影片可選,可跳過,看獎勵破解影片,完成測驗或本週作業無需此資訊,然而,鼓勵檢視詳情。

因LLM日益重要。

LangChain_微調ChatGPT提示詞_RAG模型應用_agent_生成式AI - P89:人類反饋強化學習7——PPO增強學習演算法深度解析 - 吳恩達大模型 - BV1gLeueWE5N

Dr。的兒子卡瑪利尼·賈德,通常被稱為K的機器學習應用科學家,目前是亞馬遜NLP開發的首席科學家,之前共同創立了計算機視覺領域的Y Combinator初創公司Visual One,在那之前。

他是蘋果的機器學習技術負責人,負責專案如Memories,EA還是加州州立大學東灣分校的數學副教授,感謝今天加入討論PPO強化學習演算法,謝謝邀請我,PPO代表近端策略最佳化。

這是一種強大的解決強化學習問題的演算法,顧名思義,PPO最佳化策略,在這種情況下,使LLM更符合人類偏好,經過多次迭代,PPO更新LLM,更新小且在邊界內,結果是一個接近先前版本的更新LLM。

因此名為近端策略最佳化,保持這些變化在這個小區域內導致更穩定的學習。

好的,目標是更新策略以最大化獎勵,你能猜出在大型語言模型的具體背景下這是如何工作的嗎,是的,很高興你開始用初始指導LLM進行PPO,然後,從高層次來看,每個PPO週期包括兩個階段,在第一階段。

LLM被用來進行一系列實驗,完成給定的提示,這些實驗允許你在第二階段更新LLM以對抗獎勵模型,記住,獎勵模型捕獲了人類偏好,例如,獎勵可以定義響應有多有幫助,無害和誠實。

完成獎勵是一個重要的PPO目標量,我們透過這個LLM的單獨頭部——價值函式來估計這個量,讓我們更仔細地看看價值函式。

和價值損失,假設首先給出了一些提示,你生成LLM對提示的響應,然後使用獎勵模型計算提示完成的獎勵,例如,這裡顯示的第一個提示完成可能獲得1。87的獎勵,下一個可能獲得-1。24的獎勵,等等。

你有一組提示完成和相應的獎勵,價值函式估計給定狀態s的預期總獎勵。

換句話說,當LM生成每個完成令牌的時,你想估計基於當前令牌序列的總體未來獎勵,價值損失衡量預測獎勵與實際獎勵之間的差異,可視為基準,評估完成質量與對齊標準,假設完成此步,預計未來總獎勵0。34。

生成下一個標記時,預計未來總獎勵增至1。23,目標是減少價值損失,即實際未來總獎勵,示例中,1。87與其對價值函式的近似,示例中,一二三,損失使未來獎勵估計更準,值函式用於第二階段優勢估計,稍後討論。

類似你開始寫文章,對最終形式有大致想法,甚至在你寫之前,好的,好的,你提到一階段確定的損失和獎勵用於二階段,更新權重以更新LLM,能否更詳細解釋此過程?當然,在二階段對模型進行小更新。

評估這些更新對模型對齊目標的影。

模型權重,更新由提示完成引導,損失和獎勵,PPO確保模型更新在一個小區域內,稱為信任區,這是PPO的近端方面發揮作用的地方,理想情況下,這些小更新將模型推向更高獎勵。

PPO策略目標是此方法的主要成分,記住目標是找到預期獎勵高的策略,換句話說,你試圖更新LLM,權重導致更符合人類偏好的完成,因此獲得更高獎勵,策略損失是PPO演算法在訓練中試圖最佳化的主要目標。

我知道數學看起來很複雜,但實際上它比看起來簡單,逐步分解,首先,關注主要表達,忽略其他,子t的π,給定s子t,在LLM的上下文中,是下一個token的機率,給定當前提示的A子t,S子t,動作。

A子t是下一個token,狀態s子t是完成的提示,到標記t為止,分母是下一個標記的機率,初始版本的llm,是凍結的,分子是下一個標記的機率,透過更新的llm,我們可以改變以獲得更好的獎勵。

帽子下標t是特定動作選擇的估計優勢項,優勢項估計當前動作,與該狀態下所有可能動作的比較,所以我們看新標記後完成預期的未來獎勵,並估計這種完成與其餘的比較優勢,有一個遞迴公式來估計這個量。

基於我們之前討論的價值函式,這裡,我們關注直觀理解,這是我剛剛描述的視覺化表示,你有提示s,你有不同的路徑來完成它,如圖所示的不同路徑,優勢項告訴你當前標記,相對於所有可能標記在這個視覺化中的好壞。

頂部路徑更高,是更好的完成,獲得更高的獎勵,底部路徑下降,是更差的完成,所以我有一個問題,為什麼最大化這個術語導致更高的獎勵,考慮建議標記的優勢為正的情況,正優勢意味著建議標記優於平均。

因此增加當前標記的機率似乎是一個好的策略,導致更高的獎勵,這轉化為最大化我們這裡的表示式,如果建議的標記比平均差,優勢將再次為負,最大化表示式將降級標記,這是正確的策略。

所以總體結論是最大化這個表示式會導致更好的對齊的llm,好的很好,那麼我們只需最大化這個表示式,然後直接,最大化表示式會導致問題,因為我們的計算在優勢估計有效的前提下是可靠的。

優勢估計僅當舊和新策略接近時才有效,這就是其餘術語發揮作用的地方,所以後退一步,再次看整個方程,這裡你選擇兩個術語中較小的,我們剛剛討論的,和這個第二。

修改後的版本注意這個第二個表示式定義了兩個策略接近的區域,這些附加條款是護欄,僅定義了靠近llm的區域,我們的估計有小的誤差,這稱為信任區域,這些附加條款確保我們不太可能離開信任區域,總之。

最佳化ppo策略目標可得到更好的llm。

不會過度到不可靠區域,還有其他元件嗎?是的,還有熵損失,策略損失使模型向對齊移動,目標熵允許模型保持創造力。

如果保持熵低,你可能會總是以相同的方式完成提示,如圖所示。

更高的熵引導llm向更多創意,這類似於第一週看到的llm溫度設定,區別是溫度影響模型創造力在推理時間,而熵影響模型創造力在訓練期間。

將所有項作為加權總和,我們得到ppo目標,以穩定方式更新模型以符合人類偏好,這是總體ppo目標,c一和c二係數是超引數,ppo目標透過反向傳播更新模型權重。

一旦模型權重更新,ppo開始新的週期進行下一次迭代,llm被更新的llm替換。

經過多次迭代後,開始新的ppo週期,你到達與人類對齊的llm,還有其他強化學習技術用於rhf嗎?

是的,例如,Q學習是另一種透過rl微調llms的技術,但ppo是目前最受歡迎的方法,在我看來,ppo流行因為它具有複雜性和效能的正確平衡,雖然如此,透過人類或AI反饋微調llms是一個活躍的研究領域。

我們可以期待這個領域在不久的將來會有更多的發展,例如,就在我們錄製這個影片之前,史丹佛的研究人員發表了一篇描述稱為直接偏好最佳化的技術論文,這是一種比rf更簡單的替代方法,像這樣的新方法仍在積極開發中。

需要做更多的工作來更好地理解它們的優點,但我認為這是一個非常令人興奮的研究領域,同意,非常感謝您分享關於ppo和強化學習的見解。

LangChain_微調ChatGPT提示詞_RAG模型應用_agent_生成式AI - P9:9-總結 - 吳恩達大模型 - BV1gLeueWE5N

現在,你已經理解了微調是什麼,它在哪裡適用,以及為什麼它重要,現在,微調已經成為你工具箱中的一部分,你已經完成了所有不同的步驟,從資料準備到訓練到你評估模型。

LangChain_微調ChatGPT提示詞_RAG模型應用_agent_生成式AI - P90:人類反饋強化學習8——獎勵攻擊 - 吳恩達大模型 - BV1gLeueWE5N

讓我們回顧一下到目前為止所看到的,Rhf是一個微調過程,使LLM與人類偏好對齊,在此過程中,您使用獎勵模型評估LLM的完成情況,基於人類偏好指標的提示資料集。

如有幫助或不幫助,接下來,您使用強化學習演算法,在這種情況下,PPO,以更新LM的權重,基於當前版本的LLM生成的完成情況所分配的獎勵。

您將多次迭代此迴圈,使用許多不同的提示和模型權重的更新。

直到您獲得所需的對齊程度,最終結果是與人類對齊的LLM,您可以在應用程式中使用。

在強化學習中可能出現的一個有趣問題是稱為獎勵駭客的問題,其中代理學習欺騙系統,透過偏愛最大化所接收獎勵的行動,即使這些行動與LLM上下文中的原始目標並不完全一致。

獎勵駭客可能表現為在完成中新增單詞或短語,這些短語對於正在對齊的指標得分很高,但降低了語言的整體質量,例如。

假設您使用Rhf來解毒一個指導模型,您已經訓練了一個,可以進行情感分析的獎勵模型,並將模型完成分類為有毒或無毒。

您從訓練資料中選擇提示'此產品是',並將其傳遞給指導的LLM,它生成一個完成,這個完成垃圾不是非常好,您可以期望它獲得很高的有毒評級。

完成由毒性獎勵模型處理。

它生成一個分數,這被饋送到PPO演算法。

它使用它來更新模型權重,隨著您迭代,Ri Jeff將更新LM以建立更少有毒的響應。

然而,隨著策略試圖最佳化獎勵,它可能會偏離初始語言模型太多,在這個例子中,模型已經開始生成完成,它已經學會,將導致非常低的毒性分數,透過包括短語如'最棒','最不可思議',這種語言聽起來非常誇張。

模型還可以開始生成無意義的,語法不正確的文字,只是碰巧以類似的方式最大化獎勵。

這樣的輸出肯定不是很實用。

為了防止您的獎勵駭客發生,您可以使用初始的指導LLM作為效能參考,稱為參考模型。

參考模型的權重凍結,迭代時不更新。

這樣,訓練時始終有一個參考模型比較。

每個提示傳遞給兩個模型。

參考LM和中間RL更新模型生成完成。

此時,可以比較兩個完成,並計算一個稱為回撥標籤發散或KL發散的值,簡而言之。

KL發散是衡量兩個機率分佈差異的統計量。

可用於比較兩個模型的完成,並確定更新模型與參考模型的偏離程度,不必過於擔心如何工作,KL發散演算法包含在許多標準機器學習庫中。

可以無需瞭解所有數學背景使用。

本週的實驗將使用KL發散。

這樣你可以自己看到如何工作,每個生成的標記計算發散。

跨越整個LM詞彙表,這很容易是數萬或數十萬個標記,然而,使用softmax函式,將機率減少到遠小於完整詞彙表大小。

記住這仍然是一個相對計算密集的過程,因此幾乎總是受益於使用GPU,一旦計算出兩個模型之間的KL發散。

將其作為獎勵計算的項,這將懲罰RL更新模型,如果它偏離參考LLM太遠並生成太不同的完成。

注意現在需要兩個完整的LM來計算KL發散。

凍結的參考LM和RL更新的PPO LLM。

順便說一句,可以從結合RHF,與PEFT受益,在這種情況下。

只更新路徑介面卡的權重,不是整個LM的權重。

這意味著可以重用相同的底層LM,對於參考模型和PPO模型,用訓練的路徑引數更新,這大約將訓練期間的記憶體佔用減少一半,我知道這裡有很多要消化,但別擔心,RHF與PAIS將在實驗中涵蓋。

所以你會有機會看到實際操作並親自嘗試,一旦完成你的AH,RHF對齊模型,將想要評估模型的效能,可用總結資料集量化毒性減少,例如,對話,之前課程中看到的某個資料集,此處使用的數字是毒性評分。

負面類別的機率,在這種情況下,是惡毒或仇恨回覆的平均值。

如果我們的Jeff成功降低了LLM的毒性。

該分數應首先下降。

將為原始指導LLM建立基準毒性評分。

透過評估其離線完成,使用可以評估有毒語言的獎勵模型進行總結資料集。

然後,您將在同一資料集上評估您的新人類對齊模型。

並比較分數,例如。

毒性評分在RHF後確實下降,再次表明毒性更小,對齊更好的模型。

LangChain_微調ChatGPT提示詞_RAG模型應用_agent_生成式AI - P91:人類反饋強化學習9——擴大人類反饋的規模 - 吳恩達大模型 - BV1gLeueWE5N

儘管你可以使用獎勵模型來消除人類評價的需要,在rhf微調期間,最初產生訓練的獎勵模型所需的人類努力巨大,用於訓練獎勵模型的標籤資料通常需要龐大的標籤團隊。

有時需要數千人來評估許多提示。

這項工作需要大量的時間和其他資源。

隨著模型數量和用例的增加,這些可能是重要的限制因素,人類努力成為一種有限的資源。

擴大人類反饋的方法是研究活動的活躍領域。

一種克服這些限制的想法是透過模型自我監督進行擴充套件。

憲法式AI是2022年由人類中心主義研究者首次提出的一種規模監督方法。

憲法式AI是一種訓練模型的方法,使用一套規則和原則來規範模型的行為。

再加上一組樣本提示,這些形成了憲法,然後,您訓練模型自我批評並修訂其響應以符合這些原則。

憲法式AI有用,不僅對於放大反饋有用,它還可以幫助解決一些RHF的不意後果,例如,"取決於提示的結構如何","對齊的模型可能會揭示有害的資訊","因為它試圖提供最有幫助的回應"。

它可以,"例如","想象一下,如果你問模型給你提供指示","如何破解鄰居的Wi-Fi","因為這個模型已經被對齊以優先考慮有用性"。

"實際上,它告訴你一個可以讓你做到這一點的應用"。

"儘管這項活動是非法的",為模型提供一套憲法原則可以幫助模型平衡這些相互競爭的利益,並最小化傷害,以下是研究論文中的一些示例規則,憲法上要求llms遵循,例如,你可以告訴模型選擇最有幫助的回應。

誠實和無害,但你可以對此設定一些限制,要求模型優先考慮無害性,透過評估其響應是否鼓勵非法,不道德的或不道德的活動,請注意,你不必使用論文中的規則,你可以定義一套最適合你領域和用例的規則。

在實施憲法AI方法時,你訓練你的模式在兩個不同的相位。

在第一階段,你進行監督學習來開始,你以試圖讓模型生成有害反應的方式提示模型。

這個過程被稱為重新餵養你。

然後要求模型根據憲法原則批評自己的有害反應。

並一旦完成,修訂它們以符合那些規則。

你會發現自己在模型中,使用紅色團隊的提示對和修訂後的憲法響應對。

讓我們來看看一個這些提示完成對如何生成的例子。

讓我們回到Wi-Fi駭客問題,正如你之前看到的,這個模型給你一個有害的反應,因為它試圖最大化其對減輕此問題的幫助。

你使用有害的完成來增強提示。

並一套預先定義的指令,要求模型批評其響應。

根據憲法中的規定,模型檢測其響應中的問題。

在這種情況下,它正確承認駭客他人的Wi-Fi是非法的,最後,你將所有部分放在一起,並要求模型寫一個新響應。

這刪除所有有害或不合法的內容,模型生成一個新答案,將憲法原則付諸實踐,並不包括對非法應用的參考,原始的紅色團隊提示,以及這個最終的憲法響應可以被用作訓練資料。

你將構建起許多像這樣的例子的資料集,以建立一個精細調優的LLM,它學會了如何生成憲法響應。

過程的第二部分進行強化學習。

這個階段類似於RHF,除了人類反饋之外,我們現在使用由模型生成的反饋。

這有時被稱為強化學習從AI反饋或RIOF這裡。

你使用前一步精細調優的模型,來生成對提示的一組響應,然後問你的模型,根據憲法原則,哪個響應是最喜歡的,結果是一個由模型生成的偏好資料集,你可以使用它來訓練獎勵模型,並且與這個獎勵模型。

你現在可以調整你的模式,進一步使用像PPO這樣的強化學習演算法,如前所述,對齊模型是一個非常重要的主題,並且是一個活躍的研究領域,你在本課程中探索的RLF的基礎將允許你跟隨,隨著領域的發展。

我對研究人員在這個領域將做出新發現的興奮,我鼓勵你保持關注。

LangChain_微調ChatGPT提示詞_RAG模型應用_agent_生成式AI - P92:《大型語言模型與語義搜尋》- 1.Intro.zh - 吳恩達大模型 - BV1gLeueWE5N

歡迎來到短期課程,本課程與Cohere合作,內建了語義搜尋的大型語言模型,你將學習如何將大型語言模型或LMS整合到資訊搜尋中,在你的應用程式中,例如,假設你執行一個包含許多文章的網站,為了論證。

想象一下維基百科,或者一個包含許多電子商務產品的網站,甚至在LMS出現之前,關鍵詞搜尋是很常見的,"以便人們可能搜尋你的網站","但是,有了LMS,你現在可以做很多事情",首先,"你可以讓使用者提出問題。

你的系統然後搜尋你的網站或資料庫來解答","其次,電影也在展示檢索結果",更接近於使用者詢問的含義或語義,"我想介紹這門課程的教師們",傑伊·阿拉米爾和路易斯·塞爾拉諾。

"傑伊和路易斯都是經驗豐富的機器學習工程師",以及教育者,我一直欽佩他,Jay創作的一些高度引用的插圖,用於解釋變壓器網路,他還在合著一本關於大規模語言模型的實踐書。

Louis是《搖籃機器學習》一書的作者,他還與深度學習一起教學,《AI數學》用於機器學習和連貫性,Jay和Lewis,與Neil Amir一起,他們正在開發一個名為LMU的網站。

他們已經有很多經驗教開發者如何使用LMS,因此,當他們同意使用LMS教授語義搜尋時,我欣喜若狂,謝謝安德魯,這真是一份無與倫比的榮譽,能與你一起教這門課程,我感到榮幸,八年前。

是你的機器學習課程讓我接觸到機器學習,正如你所說,你的學習繼續激勵我分享我所學到的,路易斯和我在科赫工作,所以我們能在這個行業中指導他人,關於如何使用和部署大型語言模型以滿足各種應用場景。

我們很高興能承擔這門課程,以提供開發人員所需的工具,他們需要構建,堅固的,由LLM驅動的應用程式,我們很高興分享我們從領域經驗中學到的東西,謝謝,傑伊和路易斯,很高興有你與我們在一起。

這門課程首先包括以下主題,它教你如何使用基本關鍵詞搜尋,這也是被稱為詞性搜尋的,它為許多搜尋系統提供了動力,甚至在大型語言模型出現之前,它包括找到與查詢匹配單詞數量最多的文件。

然後您將學習如何使用一種稱為排名的方法來增強這種關鍵詞搜尋,正如名稱所暗示的,然後按查詢的相關性對響應進行排名,接下來,您將學習一種更先進的搜尋方法,這種方法極大地提高了關鍵詞搜尋的結果。

因為它試圖使用文字的實際意義或實際語義意義來執行搜尋,以這種方式進行搜尋,這種方法被稱為密集檢索,這使用了自然語言處理中一種非常強大的工具,稱為嵌入,這是一種將向量數與每個文字片段相關聯的方法。

語義搜尋包括找到與查詢最接近的文件,在嵌入空間中,類似於其他模型,搜尋演算法需要得到適當的評估,您還將學習如何有效地進行此操作,最後,由於lms可以用於生成答案,您還將學習如何將搜尋結果插入到llm中。

並使它基於它們生成答案,使用嵌入的密集檢索,極大地提高了lm的問答能力,因為它首先搜尋並檢索相關的文件,並從這些檢索的資訊中建立答案,許多人都對這門課程做出了貢獻,我們感謝miamir,Patrick。

Lewis noreimer和sebastian hofstadter從coir的辛勤工作,以及在深度學習ai方面,Eddie shu和dialla作為院長。

在第一課中,您將看到在大型語言模型出現之前搜尋是如何進行的,我們將向您展示如何使用llms來改進搜尋,包括工具如嵌入和重新排名為什麼聽起來很棒,並且。

LangChain_微調ChatGPT提示詞_RAG模型應用_agent_生成式AI - P93:2.L1-keyword search.zh - 吳恩達大模型 - BV1gLeueWE5N

歡迎第一課,學習關鍵詞搜尋回答問題。

資料庫搜尋是導航世界關鍵,包括搜尋引擎,也包括應用內搜尋,如搜尋Spotify、YouTube或谷歌地圖。

例如,公司組織需用關鍵詞搜尋或搜尋內部文件,關鍵詞搜尋是構建搜尋系統常用方法,看如何使用關鍵詞搜尋系統,看語言模型如何改進系統,現在看這個程式碼示例,連線資料庫,做關鍵詞搜尋。

首單元格安裝uviate客戶端。

無需執行此操作,若在教室中執行,但若要下載此程式碼並在自己的環境中執行。

需安裝viviate客戶端,需執行的首程式碼單元,載入稍後課程中所需的API金鑰。

現在我們可以匯入v八,這將允許我們連線線上資料庫,我們將討論這個資料庫,談談viviate是什麼,Uv八是一個開源資料庫,具有關鍵詞搜尋功能,還有向量搜尋功能,依賴於語言模型。

我們將使用的API金鑰是公開的,這是公共演示的一部分,實際金鑰並非秘密,你可以使用它,我們鼓勵你用它訪問演示資料庫。

現在配置了認證設定,讓我們看看連線客戶端和實際資料庫的程式碼。

這個資料庫是公共的,包含1000萬條記錄,這些是維基百科的記錄,每條記錄或行是一個段落,是維基百科中的一段,這1000萬記錄來自10種語言。

其中100萬是英語,其餘900萬是其他語言,我們可以,選擇和過濾要查詢的語言。

稍後在本實驗中檢視。

執行此行程式碼後,確保客戶端已準備就緒並連線,如果得到true,則表示本地uv eight客戶端能夠連線到遠端uate資料庫。

現在我們可以對資料集進行關鍵詞搜尋,在檢視程式碼之前,讓我們簡單談談關鍵詞搜尋,假設你有查詢,草是什麼顏色,你正在搜尋一個非常小的檔案,其中包含這五個文字,這五句話,明天是星期六,草是綠色的。

加拿大的首都是渥太華,天空是藍色的,鯨魚是哺乳動物,這是一個簡單的搜尋示例,關鍵詞搜尋的工作原理是高層次地比較。

因此,如果我們比較查詢和第一句話共有多少個單詞,它們只共享單詞是。

因此,它們共有1個單詞,我們可以看到檔案中每個句子的計數。

我們可以看到第二句話,與查詢共有最多的單詞,因此,關鍵詞搜尋可能會檢索該答案。

現在我們已經連線到資料庫,讓我們構建將查詢它的函式。

讓我們稱之為關鍵詞搜尋。

我們將構建這個並來回切換,這裡我們需要做的最簡單的事情是說出響應等於,然後客戶端點查詢點,獲取現在,我們在這裡所做的一切,這就是我們所看到的。

因此,所有這些都由uv八api定義,它告訴我們資料的型別,我認為我們需要在這裡新增的集合稱為文章。

這在資料庫中定義,由於我們想進行關鍵詞搜尋,嗯,在我們進入關鍵詞搜尋之前,讓我們複製這些屬性的樣子,這些將是,這是一個由這個資料集定義的列表,看起來像這樣,資料庫中的每篇文章都有多個屬性。

我們在這裡所說的是,對於這個搜尋的結果,我們希望您返回給我們,標題。

URL和每個結果的文字,這裡還有其他屬性。

但我們不希望資料庫將它們返回給我們,現在現在進行關鍵詞搜尋部分V,V,8號有BM25和BM25型別。

這是關鍵詞搜尋還是詞法搜尋演算法?並基於特定公式,對檔案中的文件與查詢評分,考察查詢與每篇文件共享單詞的計數,我們需要做的是說,查詢等於將傳遞給您的查詢,我們需要新增到此函式的查詢,因此它也是此處的引數。

需要傳遞給we are with where的更多行,這裡我們可以新增一個where子句,以特定方式格式化。

我們想要做的是限制結果僅限英語。

結果俚語將是一些,我們還將新增到這個定義中,比如說,預設情況下,我們將按英語語言過濾,僅檢視英語文章。

這就是為什麼我們在這裡將其新增為預設值的原因,但這是我們可以隨時在呼叫關鍵詞搜尋方法時更改的內容。

現在我們需要新增的另一行是說明使用limit,搜尋引擎要返回多少結果,我們說,嗯,結果,在這裡也定義,嗯,結果。

預設設為3,查詢完成,我們只說做,然後關閉請求。

完成後,現在可獲取響應並返回結果。

這是我們的關鍵詞搜尋功能,現在,讓我們使用這個關鍵詞搜尋功能並傳遞一個查詢,假設我們說最受歡迎的電視事件是什麼,我們將查詢傳遞給函式,然後列印它。

所以讓我們看看執行這個會發生什麼,它去並返回。

這些是我們擁有的搜尋結果,將會有很多文字需要瀏覽,但我們可以看到,這是字典列表,所以定義一個列印更好方式的函式。

函式可以像這樣 print result,用這個可以說。

好的,現在列印並讓我確切看到結果。

我們得到的第一結果是這是文字,這是文字的段落或文章。

這是標題,嗯,記得我們找的是最常播出的活動。

這看起來不太像正確結果。

但包含很多關鍵詞,這裡還有一篇關於超級碗的文章。

這是個更好的結果,所以超級碗可能是高收視率的活動。

這裡還有另一個結果提到世界盃,但不是世界盃結果,對於每個結果,你會看到那篇文章的網址。

可以點選它,它會帶我們到一個維基百科頁面,可以嘗試編輯查詢,這樣可以看到資料集中還有哪些內容,這是一個查詢連線到資料庫的高層示例,然後檢視結果。

這裡還可以嘗試一些事情,你需要檢視屬性。

這是資料集構建時使用的屬性列表,這些都是資料庫中儲存的列,可以說你可以檢視維基百科頁面收到的瀏覽量,你可以用它來過濾或排序,這是一個估計數字,但這是用於過濾的語言列,你可以使用其他語言值。

其他語言的程式碼看起來像這樣。

英語,德語,法語,西班牙語,義大利語,日語,阿拉伯語。

中文,韓語和印地語,我相信,只需輸入其中一個並傳遞給關鍵詞搜尋,它會給你那個語言的結果。

讓我們看看如何用不同的語言查詢資料庫,所以假設我們複製這段程式碼,注意現在我們在這裡列印結果,讓我們指定語言為另一種語言,這裡我將使用,比如說。

我們做了德語這裡,因為有些單詞可能是共享的,我們可以看到這裡有一些結果,這個關於最常播出活動的結果是關於Busta Rhymes的音樂家,但你可以看到為什麼它帶來了這個結果,因為事件這個詞在這裡。

然後提到的專輯名稱在這裡是事件,所以提到的事件的結果是關於Busta Rhymes的音樂家,文字和查詢共享,不必包含所有關鍵詞,但至少有一些,BM25只需一個詞相關,查詢和文件共享的單詞越多。

文件中重複的越多。

得分越高,總體來看,雖然返回了結果,這可能不是最佳答案,與問題最相關的文件。

看看語言模型如何幫助。

第一課結束時,回顧搜尋的高層,主要元件是查詢,搜尋系統,系統可訪問預處理文件檔案,響應查詢,系統按與查詢最相關排序結果。

更仔細看,搜尋系統可視為多階段,第一階段通常是檢索或搜尋,之後有重排階段,重排常需包含額外訊號,不僅僅是文字相關性,第一階段,檢索常用BM25演算法評分文件,與查詢相比,第一階段檢索實現含倒排索引概念。

注意此表與之前文件表不同,倒排索引是這種兩列表,一列是關鍵詞,旁邊是含關鍵詞的文件,這是為最佳化搜尋速度,在搜尋引擎中輸入查詢,期待幾毫秒內結果,實踐中就是這樣,除了文件ID,關鍵詞出現頻率也新增到此。

現在對關鍵詞搜尋有良好概覽,注意這個查詢,天空什麼顏色,檢視倒排索引,顏色詞含文件804,天空詞也含文件804,804將從第一階段檢索結果中高評分,從關鍵詞搜尋理解,可看到一些限制。

假設我們有這個查詢強烈頭痛側面。

如果搜尋包含確切答案的文件檔案,但使用不同關鍵詞,所以不完全使用它們。

說劇烈偏頭痛,關鍵詞搜尋無法檢索此文件,語言模型可幫助此領域,因為它們不比較關鍵詞,僅能檢視總體含義。

能檢索此類文件以響應此類查詢,語言模型可改進搜尋階段,下節課將探討如何實現,將探討語言模型如何改進檢索,或第一階段使用嵌入,下節課主題,然後探討重排如何工作及如何改進第二階段,本課程結束時。

將探討大型語言模型如何生成響應,基於先前的搜尋步驟。

LangChain_微調ChatGPT提示詞_RAG模型應用_agent_生成式AI - P94:3.L2-embedding.zh - 吳恩達大模型 - BV1gLeueWE5N

歡迎來到第2課,本課將學習嵌入,嵌入是文字的數值表示,計算機更容易處理,它們是大型語言模型最重要的元件之一。

讓我們從嵌入層開始,這段程式碼將幫助我們載入現在需要的所有API金鑰,在課堂上,這些都為你做好了,但如果你想自己做,你需要pip,安裝一些包,例如,連貫的,一個,其他你需要安裝的包用於視覺化,是你地圖。

學習,Altire和維基百科資料集,資料集,我將註釋這行,因為我不需要在課堂上執行它,接下來匯入連貫性庫,連貫性庫是一個使用大型語言模型的函式的廣泛庫,它們可以透過API呼叫,在本課中。

我們將使用嵌入函式,但還有其他函式,如生成函式,你將在課程後期使用,下一步是使用API金鑰建立連貫性客戶端,首先讓我告訴你這裡的嵌入是什麼,我們有一個帶有水平和垂直軸的網格和座標。

我們有一堆單詞位於這個網格中,如你所見,根據這些單詞的位置,你會把蘋果放在哪裡,如你所見在這個嵌入中,相似單詞被分組在一起,左上角是運動,左下角是房屋、建築和城堡,右下角是車輛,如腳踏車和汽車。

右上角是水果,所以蘋果將放在水果中,蘋果這裡的座標是5,5,因為我們正在將表格中的每個單詞,關聯到兩個數字,水平和垂直座標,這是一個嵌入,現在這種嵌入將每個單詞傳送到兩個數字。

通常嵌入會將單詞傳送到更多數字,我們會有所有可能單詞,實踐中使用的嵌入可傳送單詞至數百個不同數字,甚至數千,現在匯入名為pandas的包,我們稱其為pd,Pandas擅長處理表格資料。

我們將使用的第一個表格資料非常小,它有三個單詞,單詞joy,單詞happiness和單詞potato,您可在此處看到,下一步是建立嵌入,對於這三個單詞,我們將它們稱為三個單詞m,並建立嵌入。

我們將呼叫cohere函式,Embed,Embed函式接受一些輸入,我們想嵌入的資料集,稱為three words for此表格,我們還需要指定列,稱為text。

接下來我們指定要使用的coherent模型,最後我們從那裡提取嵌入,所以現在我們有三個單詞,嵌入,現在讓我們看看與每個單詞相關聯的向量,與單詞joy相關聯的,我們將稱之為word one。

我們獲取它的方式是檢視three words m並獲取第一行,現在我們將對work two和word three做同樣的事情,它們是與單詞happiness和potato對應的向量,出於好奇。

讓我們看看與單詞joy相關聯的向量的前十個條目,那將是word one,一直到十,現在嵌入不僅適用於單詞,它們還可以適用於更長的文字片段,實際上它可以是非常長的文字片段,在這個例子中。

這裡我們有句子的嵌入,句子被髮送到一個向量或數字列表,請注意,第一個句子是hello,How are you,最後一個詞是hi,How's it going,它們沒有相同的單詞,但它們非常相似。

因為它們非常相似,嵌入將它們傳送至非常接近的兩個數字,現在讓我向您展示一個嵌入示例。

首先我們將不得不匯入pandas作為pd,Pandas是一個用於處理表格資料的庫,它處理表格資料,接下來看小資料集,共8個句子,如你所見,它們不完整,每個都是前一個的答案,例如,天空什麼顏色。

天空是藍色,白色是蘋果,蘋果是一種水果,現在繪製嵌入,看哪些句子相近或相遠,為將這些句子轉為嵌入,將使用coher的嵌入函式,將此表稱為m,將端點程式碼稱為embed,該函式將給出所有嵌入。

它接受一些輸入,第一個輸入是要嵌入的句子表,表稱為sentences,必須指定列,這稱為文字,下一個輸入是模型名稱,最後從函式輸出提取嵌入,該函式將給出每個句子的數字列表,檢視嵌入的前10項。

每個前3個句子,它們現在在這裡,每個句子有多少數字,在這種情況下,是4996,但不同嵌入長度不同,現在視覺化此嵌入,將呼叫util中的umap plot函式。

Yuma plot使用umap和altair包,生成此處的圖表,注意,此圖表給出8個成對的點,讓我們看看這些對是什麼,這隻熊住在森林裡,最近的句子是,熊住在哪裡,這很合理,因為它們是非常相似的句子。

看這兩個,這裡我們有,蘋果是什麼?蘋果是一種水果,這裡我們有,世界盃在哪裡?世界盃在卡達,這裡天空是什麼顏色?天空是藍色,所以,如你所見,嵌入,將相似句子放在附近點,將不同句子放在遠離的點。

注意非常特別的東西,最接近問題的句子是其特定答案,因此理論上可用此找問題答案,透過搜尋最接近的句子,這實際上是密集檢索的基礎,Jay將在下一影片中教你,現在可以新增更多句子或完全更改這些句子。

然後繪製嵌入並檢視其外觀,現在知道如何嵌入8個句子的小資料集,讓我們對大型資料集這樣做,我們將與維基百科文章的大型資料集合作,讓我們載入以下資料集,它包含許多帶有標題的文章,第一段文字及其嵌入。

它有兩千篇文章,我們將匯入numpy和一個將幫助我們視覺化此圖的功能,非常類似於上一個,我們將它降維到二維,以便我們可以看到它,嵌入在這裡,注意相似的文章在相似的地方,例如。

在這裡你可以找到許多語言和國家,在這裡你將找到許多國王和王后,在這裡你將找到許多足球運動員,在這裡你將找到藝術家,隨意探索此嵌入並嘗試找到主題的位置,關於嵌入就這些了,在下一節與J的課程中。

你將能夠使用嵌入進行密集檢索。

LangChain_微調ChatGPT提示詞_RAG模型應用_agent_生成式AI - P95:4.L3-dense retrieval.zh - 吳恩達大模型 - BV1gLeueWE5N

歡迎來到第三堂關於密集檢索的課,現在,我們已經在之前的課程中學習了嵌入式,讓我們學習如何使用它們進行語義搜尋或搜尋。

按照意義,這堂課將分為兩部分,在第一部分,我們將連線到我們在第一課中使用的同一資料庫。

但是,而不是做關鍵詞搜尋,我們將做向量搜尋,使用嵌入式進行語義搜尋,然後在第二部分,我們已經對已經為我們準備的向量資料庫感到舒適,我們將從文字的開始處處理,並看看如何從零開始構建一個向量索引。

讓我們使用之前的程式碼載入我們的API金鑰,所以在我們做語義搜尋之前,讓我們首先將cohere移植過來並設定cohere的Python SDK,我們說,去這裡,那個客戶端,然後。

我們就將API金鑰訪問程式碼貼上上去,我們會像設定UV一樣做同樣的事情,連線八個客戶端,連線到那個精確的資料庫,到現在為止,沒有什麼是新的,現在,在我們開始編寫基於嵌入式或密集檢索的搜尋程式碼之前。

讓我們根據我們在嵌入式課程中學到的內容來理解它,所以我們有查詢,加拿大的首都是什麼,我們有,假設,在我們的檔案中,有五個可能的回應或句子,加拿大的首都是渥太華,法國的首都是巴黎。

我們可以像處理嵌入一樣繪製這些,並且我們可以看到,意義相似的句子,在圖中將靠近彼此,所以如果我們繪製所有這些五個,我們可以看到,關於加拿大和法國的首都的句子彼此靠近,然後。

關於顏色的這些句子在頂部緊密地排列在一起,現在就在這裡,這個查詢應該在哪裡,如果我們將其投影到相同的嵌入空間中,如果我們使用最佳化為搜尋的嵌入模型,它將最接近那個查詢的答案,因此。

當我們問加拿大的首都是什麼時,它將最接近這個點,說加拿大首都是奧托的句子,這就是我們如何使用我們在嵌入中學到的東西,將這些相似性和距離的特性用於搜尋,這就是密集檢索,語義搜尋的兩種主要方式之一。

另一種是後錨點,讓我們看看如何使用weave ate進行密集檢索,這是程式碼,對你來說會很熟悉,如果你已經完成了第一課,這是we v eight API呼叫,這裡的主要區別是。

我們不再使用bm two five,我們說的是近文字,在這裡,我們將查詢傳遞給,所以我們將查詢放入這個Python字典,我們稱它為近文字,然後我們將這個變數傳遞給查詢,這就是我們如何獲取響應。

這就是we v eight如何進行向量搜尋,而不是pm two five的關鍵詞搜尋,一旦我們執行了這個,我們可以開始傳送查詢並檢視結果,所以現在讓我們執行一些查詢並看資料庫返回什麼。

假設我們有這個查詢誰寫了哈姆雷特,我們可以執行它,這是第一個結果,發生了什麼,是所有文字的嵌入都被查詢匹配了嗎,這是查詢最相似的文字,在這裡,我們可以看到它談論莎士比亞寫哈姆雷特。

所以這是歸檔中最相關的文字,對於這個查詢,我們也可以在第二個結果中看到,它提到了莎士比亞和寫作,所以這是這裡另一個相關的結果,uv eight返回這個距離數字,這表明查詢與這裡的文字有多近。

現在讓我們嘗試另一個查詢,這可能有點困難,所以讓我們說加拿大的首都是什麼,我們搜尋,第一個結果是來自維基百科的渥太華頁面,這是加拿大的首都,讓我們看看關鍵詞搜尋如何比較。

讓我們匯入我們在第一課中構建的關鍵詞搜尋函式,並將相同的查詢傳遞給這個函式,讓我們看看我們的結果是什麼。

但不是真的很加拿大的首都。

第二個頁面是關於早期現代時期的,第三個結果是關於加拿大國旗的,所以也在同一空間,也許不是這個一個,但不是我們想要查詢的答案。

也不是資料集對於這個查詢最相關的段落,讓我們再看一個例子,在另一個查詢上,我們再次比較關鍵詞搜尋和時態檢索,所以讓我們說,我們現在想要檢視的查詢是,歷史上最高的人,如果我們對這個進行關鍵詞搜尋。

我們將得到關於日本的歷史資訊。

我們將得到七座高峰,我們還得到了有關哈梅德·本·哈利法·阿爾·坦尼的資訊,這些並不完全與我們現在的查詢相關。

如果你這樣做密集檢索。

結果會是什麼,讓我們複製程式碼,然後只是更改查詢,讓我們說,歷史上最高的人,然後檢索能夠給我們羅伯特·沃德洛,他是誰,他是有記錄以來最高的人,對於 whom 有無可爭議的證據,所以這是另一個例子。

在哪裡密集檢索真正能夠捕獲查詢的意圖,並返回最佳結果,在這裡要展示的另一件事,密集檢索在多語言方面真正有幫助的是,所以這就是你如何支援多語言搜尋的,所以讓我們說,我們從前有過同樣的查詢。

但如果我們用另一種語言寫,我們一直在使用的模型,這是一個多語言模型,所以它能夠匹配在德語中的查詢,以任何其他語言的結果,我們可以選擇結果語言,它可以接受查詢的任何語言,所以讓我們使用阿拉伯語的翻譯。

讓我們說,對於這個相同的查詢,所以這將像這樣,當我們執行這個,這是歷史上最高的人,只是它用阿拉伯語寫,它能夠返回給我們相同的結果,另一個真的很酷的事情,我喜歡在嵌入式搜尋中做的一件事是探索。

所以你可以說關於時間旅行悖論的電影,你可以探索你返回的結果,所以這是一部關於時間的電影,嗯,讓我們說,還有一個叫做時間機器的電影,這可能基於小說,嗯,關於時間再次,你可以花很多時間探索像這樣的資料集。

我發現這非常有趣,我花費大量的時間使用語義搜尋探索資料集,像這樣,所以現在是一個開始花幾分鐘探索的好時機,你可以透過更改查詢並在維基百科內部查詢各種頁面來使用語義搜尋,這就是第一部分。

我們只是消費向量資料庫的結束,現在讓我們開始第二部分,實際上構建我們自己的向量搜尋資料庫,所以讓我們從匯入一些庫開始,我們需要主要的一個,這裡是一個叫做annoy的庫,這是一個最近鄰庫,有點像我們繞過。

但稍微簡單些,我們將討論最近鄰庫和向量資料庫之間的差異,然後,我們將匯入Python的一些著名庫,因為這個是簡單的例子,我們將使用星際頁面的文字,所以讓我們複製一大段這個文字,並將它貼上到筆記本中。

這是我們從維基百科複製過來的文字,我們只是將它新增到這個叫做text的變數中,這就是簡單地複製和貼上,然後,我們進入關於語義搜尋的一個重要問題,所以我們需要將這段文字分解成塊,但這些塊的大小是多少。

我們是將其分成句子,還是分成段落,或者如何最好地分解它,這是一個經常被問到的問題,而且答案對於每個任務都是不同的,一些常見的方法是分割,假設在每個點處,所以我們知道這個文字非常乾淨。

所有的句子都由句號分隔,所以我們可以在句號上分割,但在現實生活中,如果你正在處理大量的嘈雜文字,你可能需要在處理之前稍微處理一下,然後你可能也需要使用實際在句子分割上使用的庫。

比僅僅在句號上分割更復雜或高階的方式,所以這是一種選擇,讓我們看看如果我們執行它會發生什麼,所以現在這些文字是什麼,所以我們可以看到,列表中的每一句話都是一個字串,所以這就是一種分塊的方式。

其中每一句話都是一個列表。

現在,實際資料集的方式,我們一直在處理的開源資料集,實際上是按段落分割的,所以我們沒有做句號,我們做段落,因此,每個塊實際上現在是一個完整的段落,哪一段最適合你,這通常取決於情況。

您希望每個塊可能包含一個想法,但這實際上取決於您的應用場景,但這是一種做它的方式,讓我們回到句子分割,我想在這裡向您展示一些東西,所以讓我們假設我們按句子分割,您看到這句話嗎。

它說因其表演指導、劇本、音樂分數、視覺效果、雄心主題和情感重量而受到讚譽,劇本,音樂分數,視覺效果,雄心主題和情感重量,現在,這個句子缺乏上下文,如果您只是嵌入這個句子,我們只是將這個傳送到嵌入模型。

它實際上不知道您在談論什麼,現在,維基百科的好處是我們有標題,所以我們可以新增標題,我們可以在句子後面新增頁面標題。

所以它給它提供了一些上下文,為了新增這個上下文。

我們可以在做完標題複製後複製標題,我們可以將這個新增到這個變數中,然後只需在每個這些塊前面新增它,然後它看起來像這樣,所以,它因其表演受到讚譽,我們知道這現在是關於星際的,填充,這是一個啟發式。

我們在這裡為維基百科做的,但然後,對於每個資料庫或資料集,你需要考慮這些,這些設計選擇來總結一下我們關於分塊的討論,讓我們回顧一下我們與分塊討論過的一些設計選擇。

我們有一個維基百科頁面,我們可以將其分解為段落或句子,然後,我們將每個一個嵌入,我們將繼續檢視程式碼來實現這一點,所以,每個這些都有自己的嵌入,向量,一旦我們有我們的查詢,我們將嵌入該查詢,然後。

搜尋只是找到最近的鄰居,或查詢在嵌入空間中最近的文章,在這種情況下,如果我們問,變壓器是否有迴圈結構,這篇文章是概述那個的,並且包含了回答那個查詢的答案。

現在我們有了我們的片段,讓我們繼續到下一步,這是嵌入文字以使用連貫API的步驟,我們說程式碼嵌入,我們給它文字,例如,文字點列表,點嵌入,現在,這個響應包含代表我們過去有的這些文字的向量。

讓我們看看它看起來像什麼,所以讓我們說embeds等於,我希望能夠與numpy陣列工作,嗯,因為我們可以像這樣檢查它們,並檢視它們的維度,所以我們有十五句話,然後。

每句話都由一個包含四千個數字的向量表示,那是捕獲這些句子意義的向量,現在我們有了這些嵌入,我們可以將它們扔給搜尋庫,並開始能夠搜尋它們,這是annoy的程式碼,我們定義索引,然後,我們遍歷我們有的嵌入。

並將它們插入到搜尋索引中,然後,我們有它,構建它們,然後,將索引儲存到檔案並寫入磁碟,所以這是test,ann和ann代表annoy,但它也代表近似最近鄰,這樣,我們就有了我們的向量搜尋索引就緒。

我們可以向它傳送查詢,它將能夠返回給我們從它擁有的十五篇文件中的最近結果,現在讓我們定義基本搜尋,這裡是它做什麼的,我們將傳送一個查詢,它將嵌入該查詢,所以它將查詢傳送到語言模型並獲取查詢的嵌入。

該嵌入然後傳送到因子搜尋索引,然後,我們獲取前三個結果,所以,這個查詢的最近三個鄰居,在這裡,我們只是格式化它們並列印它們,讓我們執行這個程式碼,然後開始顯示一些查詢,這是一個問題。

我們可以問這部電影賺了多少錢,我們有十五句話關於這部電影,Interstellar我們能否找到談論票房的句子,即使它不使用那些關鍵詞,我們列印了結果兩次,所以我們檢索到了前三個結果,這是它的全部文字。

所以第一個結果說這部電影的全球票房超過六七億七百萬,這是我們正在尋找的正確事情,在這裡我們也列印了一次,顯示距離,所以我們有這個評分機制,衡量文字與查詢的接近程度。

現在,我們已經看到了如何進行密集檢索,讓我們談談使用像Oy這樣的工具進行向量搜尋,我們剛剛看到的那個是近似最近鄰,並談談它與這種其他型別的向量搜尋工具的比較,被稱為向量資料庫。

密集檢索真正透過找到搜尋查詢的近鄰來工作,為了最佳化速度,我們現在實際上搜尋近似最近鄰,所以找到精確最近鄰是耗時的計算,但我們有許多高度最佳化的演算法可以獲取你,近似最近鄰,這就是他們被稱為ann的原因。

或近似最近鄰,我們談論了ann庫,但還有其他一些也是開源的,所以ann來自Spotify,Feist是Facebook的另一個熱門選擇,Scan來自Google,都是近似最近鄰向量搜尋庫的選擇。

另一方面,向量資料庫有很多更多的變化和選擇,所以我們v eight是其中之一,還有其他一些也是線上服務的,如pine,Cone和一些其他開源的,一些常見的選擇包括quadrant,Vespa。

Chroma,但如果你對資料庫如PostgreSQL熟悉,PostgreSQL有擴充套件可以進行向量搜尋,現在,一個常見的問題是想知道這些兩者之間的差異,所以,近似最近鄰向量搜尋庫通常設定起來更容易。

你看到如何設定ann,和安裝它可能比其他選擇更容易,這些向量搜尋庫也傾向於只儲存向量,所以它們不儲存與示例文字相關的文字,你看到我們給它了一個搜尋查詢,它返回給我們文字,所以它管理這個,並儲存文字。

它能夠檢索我們要的文字,所以它做了一點更多,它稍微更豐富一些,另一個主要區別這些庫和向量資料庫是,資料庫更新更容易,資料庫比這些庫更容易更新,所以,如果你在使用庫時想要新增新記錄或修改記錄。

你需要重建你的索引,而如果你在使用資料庫,資料庫會為你處理這些,向量資料庫也允許我們過濾和執行更復雜的查詢,就像我們看到的,透過過濾語言,嗯。

這些都是向量資料庫現在讓我們在現實世界中可以做的一些有用的事情,你不需要真正完全替換關鍵詞搜尋與向量搜尋,它們相互補充,你可以在同一個流水線中使用它們作為混合搜尋,這意味著當你收到一個查詢時。

你會同時對它進行關鍵詞搜尋和向量搜尋,你可以看到語言模型如何驅動向量搜尋元件,這兩個搜尋元件都將給出一個分數,為文字檔案中的每個文件分配一個分數,然後,我們可以聚合這些分數並呈現最佳結果。

你看到這些其他訊號在右邊嗎,這裡是你可以將其他訊號注入搜尋結果的地方,Google,例如,有它的著名PageRank演算法,為其他網頁和網站分配權威分數,基於它們連結到的其他網頁的數量。

所以你可以視為另一個訊號,搜尋引擎有數十,數百,有時甚至數千個訊號,它們輸入到決定如何排序搜尋結果的決策中,這就是你如何將文字相關性與其他訊號結合在一起的方式,透過下一個課程的聚合步驟。

你將看到重排如何融入搜尋步驟,並瞭解它如何大大提高排名,以及查詢與搜尋結果之間的相關性,如果你想了解更多關於過去幾年密集檢索的歷史,這是一個非常好的資源,它是一本書和一篇論文。

叫做預訓練變壓器用於文字排名BERT和 beyond,我強烈推薦你去看看,如果你對過去幾年這些模型的發展感興趣,現在,我們已經看到了密集檢索的工作方式,這是其中一種主要使用語言模型的語義搜尋方式。

讓我們去下一個課程,我們將學習第二種型別,被稱為重排。

相關文章