一篇文章系統(tǒng)看懂大模型
上周在分享《我的AI產(chǎn)品經(jīng)理轉(zhuǎn)型之路》這篇文章的時候,就預(yù)告了一下,三白將輸出一篇文章幫助大家系統(tǒng)的學(xué)習(xí)和了解大模型,今天來交稿了;全文累計22000字,閱讀預(yù)計需要30分鐘,內(nèi)容包括大模型相關(guān)的15個話題.
過去一年多,說實話現(xiàn)在關(guān)于大模型的介紹和說明的文章已經(jīng)非常多了,大部分人其實也已經(jīng)有了一些基礎(chǔ)的認(rèn)知,但是我自己的感受是,這些信息實在是太碎片化了,稱不上系統(tǒng)化的認(rèn)知,并且市面上暫時也沒有看到能夠一口氣全面的講清楚大模型到底是什么這樣的文章;
為了緩解自己的認(rèn)知焦慮,我想親自做一下信息的匯總者,把過去一年理解到的關(guān)于大模型的知識點(diǎn),整理成一篇文章,希望通過一篇文章理解清楚大模型,也算是對自己大量學(xué)習(xí)那么多內(nèi)容的一個交代;
我將分享哪些內(nèi)容?
本篇文章將分享15個關(guān)于大模型相關(guān)的話題,本來有20個,我刪減了一些可能更加偏技術(shù)的內(nèi)容,修改為更加聚焦在普通人或者產(chǎn)品經(jīng)理應(yīng)該關(guān)注的問題點(diǎn),目標(biāo)是希望作為AI小白用戶,我們只需要掌握和理解這些內(nèi)容就夠了;
適合什么人群?
本篇文章比較適合以下幾類朋友:
- 適合想要了解大模型到底是怎么回事的小白和入門朋友;
- 適合有意愿轉(zhuǎn)型從事AI相關(guān)的產(chǎn)品和崗位的朋友,包括產(chǎn)品經(jīng)理,運(yùn)營人員;
- 適合已經(jīng)初步了解AI,但是想要進(jìn)階學(xué)習(xí)AI,減少AI認(rèn)知焦慮的朋友;
內(nèi)容聲明:整篇內(nèi)容均為個人在廣泛的閱讀和消化大量的專家文章、大模型相關(guān)的書籍以及和行業(yè)內(nèi)的專家們請教和學(xué)習(xí)之后匯總的結(jié)果,個人更多的是作為一個知識消化和整合者的作用,如果有描述不正確的,歡迎友善的告知我,你的反饋也是我學(xué)習(xí)的機(jī)會。
第1講:大模型常見的概念理解
在開始了解大模型之前,我們先理解一些基礎(chǔ)概念,掌握這些專業(yè)名詞的概念,以及概念之間的關(guān)系,會有利于你后續(xù)閱讀和學(xué)習(xí)任何AI和大模型相關(guān)的內(nèi)容,個人花費(fèi)了挺多時間去梳理他們之間的關(guān)系,所以這部分一定要好好閱讀;
1. 常見的AI術(shù)語
1)大模型(LLM):現(xiàn)有所有的大模型,指的都是大語言模型,并且指的都是生成式的大模型,可以聯(lián)想到的實際案例包括GPT4.0,GPT4o等;
- 深度學(xué)習(xí):深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個子領(lǐng)域,專注于應(yīng)用多層神經(jīng)挽留過進(jìn)行學(xué)習(xí),深度學(xué)習(xí)擅長處理復(fù)雜的數(shù)據(jù)如圖像、音頻、文本,因此在AI中的應(yīng)用非常有效;
- 監(jiān)督學(xué)習(xí):監(jiān)督學(xué)習(xí)是機(jī)器學(xué)習(xí)的一種方法,通過訓(xùn)練數(shù)據(jù)集來學(xué)習(xí)從輸入到輸出的映射關(guān)系。訓(xùn)練數(shù)據(jù)集包含輸入-輸出對,模型使用這些已標(biāo)記的數(shù)據(jù)進(jìn)行訓(xùn)練,學(xué)習(xí)如何從輸入預(yù)測輸出。常見的監(jiān)督學(xué)習(xí)算法包括線性回歸、邏輯回歸、支持向量機(jī)、K近鄰、決策樹和隨機(jī)森林等。
- 無監(jiān)督學(xué)習(xí):無監(jiān)督學(xué)習(xí)是機(jī)器學(xué)習(xí)的一種方法,在沒有標(biāo)簽數(shù)據(jù)的情況下從數(shù)據(jù)中發(fā)現(xiàn)模式和結(jié)構(gòu),它主要用于數(shù)據(jù)聚類和降維等任務(wù)。常見的無監(jiān)督學(xué)習(xí)算法包括K均值聚類、層次聚類、DBSCAN、主成分分析(PCA)和t-SNE等。
- 半監(jiān)督學(xué)習(xí):半監(jiān)督學(xué)習(xí)結(jié)合少量標(biāo)記數(shù)據(jù)和大量未標(biāo)記數(shù)據(jù)進(jìn)行訓(xùn)練。它利用未標(biāo)記數(shù)據(jù)的豐富信息和少量標(biāo)記數(shù)據(jù)的準(zhǔn)確性來提高模型性能。常見的方法包括生成對抗網(wǎng)絡(luò)(GANs)和自編碼器。
- 強(qiáng)化學(xué)習(xí):強(qiáng)化學(xué)習(xí)是一種通過與環(huán)境交互,并基于獎勵和懲罰機(jī)制來學(xué)習(xí)最優(yōu)策略的方法。強(qiáng)化學(xué)習(xí)算法通過試錯法來優(yōu)化決策過程,以實現(xiàn)最大化累積獎勵。常見算法包括Q學(xué)習(xí)、策略梯度和深度Q網(wǎng)絡(luò)(DQN)等。
- 模型架構(gòu):模型的架構(gòu)代表了大模型的主干采用了什么樣的設(shè)計方式,不同的模型架構(gòu)會影響大模型的性能、效率、甚至是計算成本,也決定了模型的可拓展性;例如很多大模型的廠商會通過調(diào)整模型的架構(gòu)的方式來縮減模型的計算量,從而減少對計算資源的消耗;
- Transformer架構(gòu):Transformer是目前主流的大模型采用的模型架構(gòu),包括GPT4.0以及國內(nèi)大部分的大模型,都是采用這個架構(gòu),Transformer架構(gòu)之所以被廣泛的使用,主要的原因是這個架構(gòu)類型讓大模型具備了理解人類自然語言、上下文記憶、生成文本的能力;常見的模型架構(gòu),除了Transformer架構(gòu),還有卷積神經(jīng)網(wǎng)絡(luò)(CNN)架構(gòu),適用于圖像處理,以及生成對抗網(wǎng)絡(luò)(GAN),適用于圖像生成領(lǐng)域;詳細(xì)關(guān)于Transformer架構(gòu)的介紹可后面部分內(nèi)容;
- MOE架構(gòu):MOE架構(gòu)表示混合專家網(wǎng)絡(luò)架構(gòu),表示混合多種專家模型,形成一個參數(shù)量巨大的模型,從而能支持解決多種復(fù)雜的專業(yè)問題;MOE架構(gòu)的模型里面可能包含Transformer架構(gòu)的模型;
- 機(jī)器學(xué)習(xí)技術(shù):表示實現(xiàn)AI的一大類技術(shù),包括大家經(jīng)常聽到的深度學(xué)習(xí)、監(jiān)督學(xué)習(xí)、強(qiáng)化學(xué)習(xí),這些都屬于機(jī)器學(xué)習(xí)的一種技術(shù),具體是啥作為產(chǎn)品經(jīng)理而言不需要過分深究,只需要知道這些xx學(xué)習(xí)之間的關(guān)系就好,別被技術(shù)人員們帶溝里去了;
- NLP技術(shù)(自然語言處理):NLP是AI的一個應(yīng)用領(lǐng)域,專注于計算機(jī)理解、解釋、生成人力語言,用于文本分析、機(jī)器翻譯、語音識別和對話系統(tǒng)等應(yīng)用場景,簡單一點(diǎn)講,就是把很多信息轉(zhuǎn)換成人類自然語言能夠理解的信息的一種技術(shù);
- CV計算機(jī)視覺技術(shù):如果說NLP處理的是文本,那么CV相當(dāng)于是解決視覺內(nèi)容相關(guān)的技術(shù),CV技術(shù)包括常見的圖像識別技術(shù)、視頻分析技術(shù)、圖像分割技術(shù)等,都屬于CV技術(shù),CV技術(shù)也是大模型應(yīng)用中常見的技術(shù),特別是后面會講到的多模態(tài)大模型技術(shù);
- 語音識別和合成技術(shù):包括語音轉(zhuǎn)換為文本技術(shù),以及語音合成技術(shù),例如文本合成語音技術(shù)(簡稱TTS技術(shù));
- 檢索增強(qiáng)生成技術(shù)(RAG):表示大模型基于搜索引擎和知識庫檢索的內(nèi)容生成內(nèi)容的技術(shù),RAG是大部分AI應(yīng)用落地的時候都會涉及的技術(shù);
- 知識圖譜 (Knowledge Graph):知識圖譜是一種把知識關(guān)聯(lián)起來的技術(shù),通過知識圖譜技術(shù),可以讓知識之間建立聯(lián)系,幫助模型更好、更快的獲取到最相關(guān)的知識,從而提升模型處理復(fù)雜關(guān)聯(lián)信息,以及AI推理能力;
- Function Call:是指在大型語言模型(如GPT等)中,通過調(diào)用模型內(nèi)置的或外部的函數(shù),使其能夠完成特定的任務(wù)或執(zhí)行特定的操作。這一機(jī)制讓模型不僅僅是一個生成文本的工具,而能夠通過指定調(diào)用不同的功能,執(zhí)行更多樣化、具體的操作。Function Call 讓大模型能夠和多種API能力結(jié)合,從而讓大模型的應(yīng)用更好的落地,比如大模型要支持內(nèi)容檢索、文檔識別等能力,就需要基于Function Call 的能力來實現(xiàn);
2)大模型訓(xùn)練與優(yōu)化技術(shù)相關(guān)術(shù)語
- 預(yù)訓(xùn)練 Pre-training:表示在大量數(shù)據(jù)集上訓(xùn)練模型的過程,預(yù)訓(xùn)練的數(shù)據(jù)集通常比較大,種類也比較多,訓(xùn)練后獲得的是一個通用能力比較強(qiáng)的大模型,就好像一個人通過義務(wù)教育和上大學(xué)學(xué)習(xí)了多種通用知識,具備解決通用問題的哪里;
- 模型微調(diào) Fine-tuning:模型微調(diào)表示大模型在特定任務(wù)或小數(shù)據(jù)集上進(jìn)一步訓(xùn)練模型以提高模型解決針對性問題的表現(xiàn),與預(yù)訓(xùn)練階段不同的是微調(diào)階段使用的數(shù)據(jù)量相比更小,且主要使用垂直領(lǐng)域的數(shù)據(jù),通過微調(diào)獲得的是一個垂直模型和行業(yè)模型,模型微調(diào),就好像入職支持的畢業(yè)生,開始接受企業(yè)的專業(yè)技能的培訓(xùn);
- 提示詞工程Prompt Engineering:用產(chǎn)品經(jīng)理的語言理解,就是使用大模型更容易理解的提問方式,讓大模型更好的輸入用戶想要的結(jié)果,所以提示詞工程就是一門學(xué)會提問題的技巧;
- 模型蒸餾:模型蒸餾是一種通過將大模型(稱為教師模型)的知識傳遞給一個小模型(稱為學(xué)生模型)的技術(shù)。學(xué)生模型通過學(xué)習(xí)教師模型輸出的知識來提高其性能,保持與大模型相近的精度。
- 模型剪枝:模型剪枝表示去除大模型不需要的參數(shù),把整體的參數(shù)規(guī)模降低下來,從而降低模型的計算量和成本消耗;
3)AI應(yīng)用相關(guān)術(shù)語
- 智能體Agent:Agent簡單理解就是具備某一項能力的AI應(yīng)用,如果互聯(lián)網(wǎng)時代的應(yīng)用叫APP,AI時代的應(yīng)用叫Agent;
- Chatbot:Chatbot表示AI聊天機(jī)器人,表示一類以聊天的方式為應(yīng)用交互的AI應(yīng)用,包括像ChatGPT這類的產(chǎn)品,都屬于Chatbot類應(yīng)用;
4)大模型表現(xiàn)相關(guān)的術(shù)語
- 涌現(xiàn):指的是當(dāng)大模型的參數(shù)規(guī)模達(dá)到一定的規(guī)模之后,大模型能夠展現(xiàn)出更多超出預(yù)期的能力;
- 幻覺:表示大模型在生成內(nèi)容的過程中出現(xiàn)了胡說八道的情況,錯誤的把一些不正確的事實當(dāng)做真實的情況處理,從而導(dǎo)致生成結(jié)果不真實的現(xiàn)象;
- 失憶:表示當(dāng)對話輪次和長度達(dá)到一定限度之后,模型突然變傻,開始出現(xiàn)重復(fù)和失憶的情況,大模型的記憶主要受模型的上下文長度等影響;
2. 如何理解AI、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、NLP等概念關(guān)系
如果你關(guān)注AI和大模型,“AI”“機(jī)器學(xué)習(xí)”“深度學(xué)習(xí)”“NLP”等這幾個關(guān)鍵詞基本在未來的學(xué)習(xí)中一定會遇到,所以我們最好先理解清楚這幾個專業(yè)名詞的概念和定義,以及他們之間的邏輯關(guān)系,方便你更加容易理解它們;
概括起來講,這幾個概念之間的關(guān)系如下:
1.機(jī)器學(xué)習(xí)是AI的一種核心技術(shù),AI的核心技術(shù)除了機(jī)器學(xué)習(xí),還有專家系統(tǒng)、貝葉斯網(wǎng)絡(luò)等(不需要過多深究這些是什么),其中深度學(xué)習(xí)是機(jī)器學(xué)習(xí)中的一種;
2.而NLP是AI的應(yīng)用任務(wù)類型中的一種技術(shù),用于自然語言的處理,除了NLP,AI的應(yīng)用技術(shù)還包括CV計算機(jī)視覺技術(shù)、語音識別和合成技術(shù)等;
3. 如何理解Transformer架構(gòu)?
談到大模型,就不能不提Transformer架構(gòu),如果說大模型是一棵樹,Transformer架構(gòu)就像是模型的主干,ChatGPT這類產(chǎn)品的出現(xiàn),主要還是得益于Transformer架構(gòu)的設(shè)計,讓模型具備理解上下文、記憶能力、預(yù)測生詞等能力;同時,Transformer的出現(xiàn),也讓大模型不需要像以前一樣需要依賴大量的有標(biāo)注數(shù)據(jù)做訓(xùn)練,而是能夠基于無標(biāo)注數(shù)據(jù)做訓(xùn)練,這個突破的意義在于,以前做一個模型需要投入大量的人力去對數(shù)據(jù)做清理、標(biāo)注分類,但是現(xiàn)在只需要將碎片化、零散的數(shù)據(jù)扔給模型,模型也能夠處理,我們通過如下幾點(diǎn)具體了解這些概念:
Transformer架構(gòu)和深度學(xué)習(xí)技術(shù)的概念關(guān)系Transformer架構(gòu)屬于深度學(xué)習(xí)技術(shù)領(lǐng)域的一種神經(jīng)網(wǎng)絡(luò)架構(gòu),也就是說屬于深度學(xué)習(xí)技術(shù)里面的一種實現(xiàn)和設(shè)計形式,深度學(xué)習(xí)領(lǐng)域,除了Transformer架構(gòu),還有傳統(tǒng)的遞歸神經(jīng)網(wǎng)絡(luò)(RNN)和長短期記憶網(wǎng)絡(luò)(LSTM)架構(gòu);
4. 如何理解Transformer架構(gòu)和GPT之間的關(guān)系
GPT的的英文全稱是,生成式預(yù)訓(xùn)練 Transformer(Generative Pre-trained Transformer,GPT),因此GPT就是基于Transformer架構(gòu)的而開發(fā)出來的一種大語言模型,由OpenAI開發(fā)。
GPT的核心思想是通過大規(guī)模預(yù)訓(xùn)練和微調(diào),來增加生成和理解自然語言的能力,可以理解為,Transformer架構(gòu)出來之后,相當(dāng)于解決了理解上下文、處理大量數(shù)據(jù)、預(yù)測文本的能力,但是openai首次采用預(yù)訓(xùn)練+微調(diào)這種形式來改進(jìn)和使用Transformer架構(gòu),使它具備了chatgpt這類產(chǎn)品的理解自然語言和生成自然語言的能力;
GPT之所以能具備生成和理解自然語言的能力,是因為預(yù)訓(xùn)練階段通過大規(guī)模未標(biāo)注文本語料庫學(xué)習(xí)廣泛的語言模式和知識,且預(yù)訓(xùn)練任務(wù)通常是語言模型任務(wù),即給定一個序列的前部分,預(yù)測下一個詞,這種方式使模型能夠理解語言的結(jié)構(gòu)和上下文關(guān)系,具體的差異點(diǎn)如下:
1)能力差異上:Transformer架構(gòu)是讓模型具備理解上下文、處理大量數(shù)據(jù)、預(yù)測文本的能力,但是還不具備理解自然語言、生成自然語言的能力;而GPT在增加了自然語言的預(yù)訓(xùn)練之后,具備了理解和生成自然語言的能力;
2)架構(gòu)基礎(chǔ)上:
- Transformer:原始的Transformer模型由一個編碼器和一個解碼器組成,編碼器處理輸入序列,生成中間表示,然后解碼器基于這些表示生成輸出序列。這個架構(gòu)特別適用于序列到序列任務(wù),如機(jī)器翻譯。并且編碼器在處理輸入序列時采用的是雙向處理的機(jī)制,可以使用雙向注意力,即每個詞可以考慮序列中所有其他詞的信息,不論它們是前面的詞還是后面的詞。
- GPT:GPT主要使用Transformer的解碼器部分,只關(guān)注生成任務(wù)。它在訓(xùn)練和生成過程中是單向的,即每個詞只能看到它前面的詞(單向注意力)。這種架構(gòu)更適合文本生成任務(wù)。編碼器采用的是單向處理的機(jī)制,在生成下一個詞時,GPT只能考慮之前的詞,這與語言模型的自然形式一致。
3)解決特定問題的實現(xiàn)方式上:
- Transformer用于解決特定任務(wù)類型(比如機(jī)器翻譯等)的問題的時候,它的實現(xiàn)方式是通過訓(xùn)練的方式來實現(xiàn)的,并且Transformer的編碼器和解碼器同時訓(xùn)練,以優(yōu)化特定任務(wù)的表現(xiàn)。
- 而GPT在解決特定任務(wù)類型問題的時候,是通過有監(jiān)督微調(diào)的方式實現(xiàn)的,也就是說,不需要針對特定任務(wù)類型做訓(xùn)練,只需要提供一些特定任務(wù)的數(shù)據(jù),就可以實現(xiàn);需要理解的是,訓(xùn)練和微調(diào)是不同的實現(xiàn)成本的實現(xiàn)方式;
4)應(yīng)用領(lǐng)域上:
- 傳統(tǒng)Transformer框架可以應(yīng)用于多種序列到序列任務(wù),如機(jī)器翻譯、文本總結(jié)、語音識別等,由于包含編碼器和解碼器,Transformer能夠處理多種輸入和輸出格式的任務(wù);
- GPT主要用于生成任務(wù),如文本生成、對話系統(tǒng)、問答系統(tǒng)等。它在生成連貫且有創(chuàng)意的文本方面表現(xiàn)出色。
5. 如何理解MOE架構(gòu)
除了Transformer架構(gòu),最近還流行的另一種架構(gòu)是MOE架構(gòu)(Mixture of Experts),它用于動態(tài)選擇和組合多個子模型(即專家)以完成任務(wù)。MOE的關(guān)鍵思想是,通過組合多個專家模型來解決一系列的復(fù)雜任務(wù),而不是所有的任務(wù)都交給統(tǒng)一的大模型來解決;
MOE架構(gòu)的主要優(yōu)勢在于能夠在大規(guī)模數(shù)據(jù)和模型參數(shù)的情況下仍保持計算效率,且能夠在保持模型能力的同時顯著減少計算成本。
Transformer和MOE可以結(jié)合使用,這種結(jié)合通常被稱為MOE-Transformer或Sparse Mixture of Experts Transformer。在這種架構(gòu)中:
- Transformer用于處理輸入數(shù)據(jù),利用其強(qiáng)大的自注意力機(jī)制捕捉序列中的依賴關(guān)系;
- MOE用于動態(tài)選擇和組合不同的專家,從而提高模型的計算效率和能力。
第2講:大模型和傳統(tǒng)模型的區(qū)別
通常當(dāng)我們談到大模型的時候,指的是LLM 大語言模型,或者說更具體一點(diǎn)指的是GPT類的模型(基于Transformer架構(gòu)的生成式預(yù)訓(xùn)練模型),首先它是一個語言模型,解決的是自然語言任務(wù)方向的問題,而不是圖片、視頻、語音等領(lǐng)域的問題(同時具備語言、圖片、視頻、語音等多個模態(tài)的模型,后來稱之為多模態(tài)大模型,與LLM不是同一個概念);其次LLM是一個生成式的模型,也就是說它的主要能力是生成,而不是預(yù)測或者決策等;
區(qū)別于傳統(tǒng)的模型,大模型概括起來具備如下的特點(diǎn):
- 具備理解和生成自然語言的能力:很多以前我們接觸的傳統(tǒng)模型,可能并不能夠理解人類的自然語言,更不用說生成人力能理解的自然語言;
- 能力強(qiáng)大,通用性強(qiáng),可以解決很多問題:傳統(tǒng)的模型,大部分是一個模型解決一個或者一部分問題,專業(yè)性比較強(qiáng),而無法解決通用問題,而大模型的通用能力很強(qiáng),可以解決各種各樣的問題;
- 具備上下文記憶的能力:大模型具備記憶能力,能夠關(guān)聯(lián)上下文對話,而不是一個失憶的機(jī)器人,這個是區(qū)別很多傳統(tǒng)模型的差異點(diǎn)之一;
- 訓(xùn)練方式上,基于大量的無標(biāo)注文本,通過無監(jiān)督的方式預(yù)訓(xùn)練,和很多傳統(tǒng)模型需要依賴大量的標(biāo)注數(shù)據(jù)的方式不同,無標(biāo)注數(shù)據(jù)的方式大大的節(jié)省了數(shù)據(jù)清理和準(zhǔn)備的成本;且預(yù)訓(xùn)練需要大量的訓(xùn)練數(shù)據(jù),這些數(shù)據(jù)用于調(diào)整模型的參數(shù),使其能夠準(zhǔn)確地執(zhí)行任務(wù),GPT3.5的訓(xùn)練語料高達(dá)45T;
- 參數(shù)規(guī)模巨大,大部分大模型的參數(shù)規(guī)?;径荚谇|級別以上,比如GPT3.5的參數(shù)規(guī)模已經(jīng)達(dá)到1750億,而GPT4.0據(jù)說可能是萬億級別參數(shù),這些參數(shù)在模型訓(xùn)練過程中會學(xué)習(xí)并調(diào)整,以更好地執(zhí)行特定的任務(wù);
- 訓(xùn)練需要消耗大量的計算資源:由于其規(guī)模和復(fù)雜性,這些模型還需要顯著的計算資源來進(jìn)行訓(xùn)練和推理,通常需要使用專門的硬件,如GPU或TPU,調(diào)研稱,要訓(xùn)練像ChatGPT這樣的生成式AI,至少需要1萬張英偉達(dá)A100加速卡的支持,GPT3.5這種參數(shù)級別達(dá)到1750億規(guī)模的模型,訓(xùn)練需要的費(fèi)用高達(dá)900萬美元;
第3講:大模型的演變歷程
1. 大模型的生成能力的演變歷程
了解LLM的演變歷程,可以幫助大家了解大模型是如何一步一步的具備如今的能力的,也更加容易理解LLM和Transformer之間的關(guān)系,如下的歷程為大模型的演變歷程:
- N-gram:N-gram是大模型具備生成能力的最早期階段,它主要解決了預(yù)測下一個詞的能力,這個是文本生成的基礎(chǔ),但是它的局限性在于理解上下文和語法結(jié)構(gòu)的能力比較有限;
- RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))和LSTM(長短期記憶):這個階段,這兩個模型解決了模型上下文理解長度的問題,具備了相對更長的上下文窗口,但是局限性在于難以處理大量的數(shù)據(jù);
- Transformer:兼具了前面兩個模型中預(yù)測下一個詞、記憶長度的問題的同時,支持在大型的數(shù)據(jù)集上訓(xùn)練,但是不具備自然語言理解和生成的能力;
- LLM大模型:采用GPT預(yù)訓(xùn)練和監(jiān)督微調(diào)的方式,使得模型具備理解和生成自然語言的能力,所以叫大語言模型,可以說,預(yù)訓(xùn)練和監(jiān)督微調(diào)這種方式的出現(xiàn),把Transforemer帶到大模型的發(fā)展階段;
備注:以上內(nèi)容引用自《大模型應(yīng)用開發(fā)極簡入門》
2. GPT1到GPT4的發(fā)展歷程
GPT1:首次引入了無監(jiān)督的訓(xùn)練步驟,解決了以前模型訓(xùn)練需要大量的標(biāo)注數(shù)據(jù)的問題,無監(jiān)督的訓(xùn)練方式,可以允許GPT基于大量的無標(biāo)注數(shù)據(jù)做訓(xùn)練;但是局限性在于,在因為GPT1的參數(shù)規(guī)模比較?。▍?shù)規(guī)模只有1.17億),所以一旦遇到復(fù)雜任務(wù)的時候,如果沒有經(jīng)過監(jiān)督微調(diào),便無法解決,所以需要針對很多復(fù)雜任務(wù)做很多的微調(diào)后才能使用,比較麻煩;
GPT2:參數(shù)規(guī)模提到到15億,訓(xùn)練文本大小擴(kuò)大四倍,增加到40G,通過增加參數(shù)規(guī)模和提高訓(xùn)練數(shù)據(jù)的規(guī)模,可以提高模型的能力,但是依然存在解決復(fù)雜問題的局限問題;
GPT3:參數(shù)規(guī)模拓展到1750億,該階段GPT3已經(jīng)在文本生成和語言理解方面達(dá)到非常強(qiáng)的表現(xiàn),并且取消了微調(diào)的步驟,也就是會說不需要微調(diào)也能解決復(fù)雜問題了;但是GPT3存在的局限,是因為模型是在很多互聯(lián)網(wǎng)數(shù)據(jù)上語序連的,預(yù)訓(xùn)練數(shù)據(jù)中可能會包含虛假和錯誤的文本,包括種族歧視、性別歧視等,所以導(dǎo)致模型會說錯話,存在安全問題;
InstructGPT:為了解決GPT3的局限性問題,GPT3在預(yù)訓(xùn)練之后,增加了監(jiān)督微調(diào)(SFT)、和通過人類反饋強(qiáng)化學(xué)習(xí)(RLHF)的步驟,調(diào)整優(yōu)化模型的出錯的問題,這樣的模型成為InstructGPT;該過程的原理是,首先先提供一些真實的”標(biāo)準(zhǔn)答案“的數(shù)據(jù)給模型讓模型完成監(jiān)督微調(diào);第二步,構(gòu)建一個生成結(jié)果的評分模型(構(gòu)建的方式同樣需要人為提供一些打分?jǐn)?shù)據(jù)),用于對生成結(jié)果做評分;第三步,用評分模型自動給模型生成的結(jié)果評分,然后將評分結(jié)果應(yīng)用于模型的策略優(yōu)化,讓模型越來越好;所以,現(xiàn)在很多大模型廠商解決幻覺率的問題,關(guān)鍵還是在于監(jiān)督微調(diào)階段提供的數(shù)據(jù)質(zhì)量和數(shù)量情況,以及評分模型是否更強(qiáng)大;
GPT3.5:2022年3月份,openai發(fā)布了GPT3的新版本,它的訓(xùn)練數(shù)據(jù)截止到2021年6月份,訓(xùn)練數(shù)據(jù)規(guī)模更大達(dá)到45T,11月openai稱之為GPT3.5;
GPT4.0:2023年4月份,OpenAI發(fā)布了GPT4.0,整體的推理能力上大幅提升,并且支持了多模態(tài)能力;
GPT4o:2024年5月份,發(fā)布GPT4o,增強(qiáng)了語音聊天等能力;
O1:2024年9月份,openai推出O1模型,主打思維鏈能力,提升模型的思考能力;
備注:以上內(nèi)容引用自《大模型應(yīng)用開發(fā)極簡入門》
第4講:大模型生成文本的原理
1. GPT是如何生成文本的?
大模型生成文本的過程,概括起來包括如下5個步驟:
- 模型收到提示詞之后,首先將輸入的內(nèi)容做分詞處理,拆分成多個token;
- 基于transformer的架構(gòu)理解token之間的關(guān)系,從而理解提示詞的整體含義;
- 基于上下文預(yù)測下一個token,預(yù)測的時候,可能會有多種結(jié)果,每種結(jié)果會有相應(yīng)的概率值;
- 根據(jù)概率值選擇概率最高的token作為下一個詞的預(yù)測結(jié)果;
- 重復(fù)第4步驟的任務(wù),循環(huán)至整個內(nèi)容生成完成;
備注:以上內(nèi)容引用自《大模型應(yīng)用開發(fā)極簡入門》
第5講:LLM大模型的分類有哪些?
1. 按照模態(tài)類型劃分
按照模態(tài)劃分,目前市面上的大模型,大概可以概括為文本生成模型(例如GPT3.5)、圖像生成模型(例如DALL-E)、視頻生成模型(例如Sora、可靈)、語音生成模型、多模態(tài)模型(例如GPT4.0)等;
2. 按照訓(xùn)練的階段劃分
按照訓(xùn)練的階段可以劃分為基礎(chǔ)語言模型和指令微調(diào)的模型
- 基礎(chǔ)語言模型(Basic Language Model) 基礎(chǔ)語言模型是指只在大規(guī)模文本語料中進(jìn)行了預(yù)訓(xùn)練的模型,未經(jīng)過指令和下游任務(wù)微調(diào)、以及人類反饋等任何對齊優(yōu)化,比如GPT3就是openai公開的基礎(chǔ)語言模型;
- 指令微調(diào)模型(Instruction-Finetuned Language Model):這里的指令是指基于自然語言形式的對任務(wù)進(jìn)行描述,經(jīng)過指令微調(diào)的大模型,他們幾乎都是在基礎(chǔ)語言模型基礎(chǔ)上進(jìn)行指令微調(diào)、人類反饋、對齊等優(yōu)化操作,例如GPT3.5就是在GPT3的基礎(chǔ)上訓(xùn)練得到的;
3. 按照通用模型和行業(yè)模型劃分
市面上的大模型也可以劃分為通用大模型和行業(yè)大模型兩類,通用大模型在廣泛的任務(wù)和領(lǐng)域中雖然表現(xiàn)良好,但是某些行業(yè)或領(lǐng)域有特定的數(shù)據(jù)、術(shù)語和任務(wù),通用大模型可能無法充分理解和利用這些領(lǐng)域特定的信息,因此不一定能解決特定行業(yè)和場景的問題;行業(yè)大模型則是基于通用大模型通過專門的訓(xùn)練和調(diào)整,行業(yè)大模型可以在特定領(lǐng)域內(nèi)實現(xiàn)更高的性能和精度,它們能解決特定問題;
第6講:LLM大模型的核心技術(shù)是什么?
該部分可能有比較多的技術(shù)術(shù)語,比較難理解,不過對于產(chǎn)品經(jīng)理而言,我們可能不太需要去深究其技術(shù)細(xì)節(jié),只需要知道其關(guān)鍵概念的能力即可,AI產(chǎn)品經(jīng)理對于技術(shù)術(shù)語的理解是有必要的,這可以幫助自己在后續(xù)和研發(fā)和技術(shù)溝通的時候降低溝通難度;
1. 模型架構(gòu):關(guān)于Transformer架構(gòu),前面已經(jīng)有比較多的描述,這里便不贅述了,但是Transformer架構(gòu)是大模型最基礎(chǔ)的核心技術(shù)之一;
2. 預(yù)訓(xùn)練與微調(diào)
- 預(yù)訓(xùn)練(Pre-training):基于大規(guī)模無標(biāo)注數(shù)據(jù)進(jìn)行預(yù)訓(xùn)練,是大語言模型的關(guān)鍵技術(shù)之一,預(yù)訓(xùn)練技術(shù)的出現(xiàn),讓模型的需求,再也不需要基于大量的標(biāo)注數(shù)據(jù),這極大的降低了人工標(biāo)注數(shù)據(jù)的成本;
- 微調(diào)(Fine-tuning):微調(diào)技術(shù),是進(jìn)一步使用大模型的技術(shù),預(yù)訓(xùn)練后的模型在處理特定任務(wù)的時候表現(xiàn)比較一般,所以需要再特定的數(shù)據(jù)集上進(jìn)行微調(diào),以適應(yīng)具體的應(yīng)用,微調(diào)可以顯著提升模型在特定任務(wù)上的表現(xiàn)。
3.模型壓縮與加速
- 模型剪枝(Pruning):通過剪除不重要的參數(shù),可以減少模型大小和計算復(fù)雜度;
- 知識蒸餾(Knowledge Distillation):訓(xùn)練一個較小的學(xué)生模型,使其模仿大模型(教師模型)的行為,從而保留大部分性能的同時減少計算開銷。
第7講:大模型開發(fā)的6個步驟
根據(jù)OpenAI公布的相關(guān)信息,大模型的開發(fā),通常會經(jīng)過如下6個步驟,基本上,目前這套流程應(yīng)該也是行業(yè)內(nèi)大部分大模型的開發(fā)的過程:
- 數(shù)據(jù)收集與處理:這個階段,需要收集大量文本數(shù)據(jù),這可能包括書籍、網(wǎng)頁、文章等,然后對數(shù)據(jù)做清洗,移除無關(guān)或低質(zhì)量的內(nèi)容,然后對數(shù)據(jù)進(jìn)行預(yù)處理,如分詞、去除敏感信息等。
- 模型設(shè)計:確定模型的架構(gòu),比如GPT-4采用的是ransformer架構(gòu),然后設(shè)定模型的大小,包括層數(shù)、隱藏單元數(shù)、參數(shù)總量等。
- 預(yù)訓(xùn)練(Pre-training):模型在這個階段就像一個學(xué)生在上學(xué),通過閱讀大量書籍(比如網(wǎng)頁、文章等)來學(xué)習(xí)語言和知識?;蛘哒f像一個“海綿”,吸收盡可能多的信息,學(xué)會基本的語言規(guī)則,比如怎樣組成一個句子,單詞之間是怎樣關(guān)聯(lián)的等。此時的模型模型已經(jīng)能理解基本的語言結(jié)構(gòu),但還沒有針對特定任務(wù)的專業(yè)知識;預(yù)訓(xùn)練階段通常需要的數(shù)據(jù)量非常大,對計算資源的消耗也最大,花費(fèi)的時間最長;以GPT3為例,完成一次預(yù)訓(xùn)練的計算量是3640P浮點(diǎn)計算,需要將近1000塊GPU;
- 指令微調(diào)(Fine-tuning with Instructions):也稱為有監(jiān)督微調(diào),微調(diào)的過程其實就是通過投喂給模型一些帶有問題和相應(yīng)理想輸出的問答對數(shù)據(jù),在此基礎(chǔ)上進(jìn)行再訓(xùn)練,從而得到一個有監(jiān)督微調(diào)模型;這個階段的模型更像是在進(jìn)行“職業(yè)培訓(xùn)”,學(xué)習(xí)如何根據(jù)特定的指令或任務(wù)來調(diào)整自己的反應(yīng),模型可能會在這個階段學(xué)習(xí)如何更好地回答問題、寫作或做翻譯,對特定類型的問題或任務(wù)也有更好的表現(xiàn)。指令微調(diào)階段只要提供相對少數(shù)的高質(zhì)量的數(shù)據(jù),模型的訓(xùn)練時間和消耗相對比較??;
- 獎勵(Reward):這個階段就像給模型設(shè)置了一個“激勵機(jī)制”,通過獎勵來讓模型知道什么是好的回答或行為,通過這種方式,模型學(xué)會了更好地滿足用戶的需求,從而讓模型更加專注于提供有價值、準(zhǔn)確的回答,能夠更好地適應(yīng)用戶的具體需求;這個過程需要訓(xùn)練模型的人員大量的對模型的響應(yīng)結(jié)果做檢測和反饋,逐步的調(diào)整其響應(yīng)的質(zhì)量,該過程也需要相對較高的數(shù)據(jù),需要的時間為天級別;
- 強(qiáng)化學(xué)習(xí)(Reinforcement Learning):最后這個階段,模型就像在進(jìn)行“實戰(zhàn)演習(xí)”,通過不斷的嘗試和錯誤來學(xué)習(xí)怎樣做得更好,在這個階段,模型會在真實世界的復(fù)雜情境中嘗試各種策略,找出最有效的方法。模型在這個階段變得更加聰明和靈活,能夠在復(fù)雜和不確定的情況下做出更好的判斷和回答。
第8講:如何理解大模型的訓(xùn)練和微調(diào)?
1. 理解大模型訓(xùn)練相關(guān)內(nèi)容
1)大模型訓(xùn)練需要哪些數(shù)據(jù)?
- 文本數(shù)據(jù):主要用于訓(xùn)練語言模型,如新聞文章、書籍、社交媒體帖子、維基百科等。
- 結(jié)構(gòu)化數(shù)據(jù):如知識圖譜,用于增強(qiáng)語言模型的知識。
- 半結(jié)構(gòu)化數(shù)據(jù):如XML、JSON格式的數(shù)據(jù),便于提取信息。
2)訓(xùn)練數(shù)據(jù)來源
- 公開數(shù)據(jù)集:如Common Crawl、Wikipedia、OpenWebText等。
- 專有數(shù)據(jù):公司內(nèi)部數(shù)據(jù)或付費(fèi)獲取的專有數(shù)據(jù)。
- 用戶生成內(nèi)容:社交媒體、論壇、評論等用戶生成的內(nèi)容。
- 合成數(shù)據(jù):通過生成對抗網(wǎng)絡(luò)(GAN)或其他生成模型合成的數(shù)據(jù)。
3)大模型訓(xùn)練需要哪些成本?
- 計算資源:GPU/TPU的使用成本,主要取決于模型的規(guī)模和訓(xùn)練時間。大模型通常需要數(shù)千到數(shù)萬小時的GPU計算時間。
- 存儲成本:用于存儲大規(guī)模數(shù)據(jù)集和模型權(quán)重。數(shù)據(jù)集和模型文件可以達(dá)到TB級別。
- 數(shù)據(jù)獲取成本:購買專有數(shù)據(jù)或數(shù)據(jù)清洗和標(biāo)注的人工成本。
- 能源成本:訓(xùn)練大型模型消耗大量電力,增加運(yùn)營成本。
- 研發(fā)成本:包括研究人員、工程師的薪資,以及開發(fā)和維護(hù)模型的費(fèi)用。
2. 理解大模型微調(diào)相關(guān)內(nèi)容
1. 大模型微調(diào)的2個階段:監(jiān)督微調(diào)(SFT)、強(qiáng)化學(xué)習(xí)(RLHF),兩個階段存在的差異如下:
2)大模型微調(diào)的2種方式:lora微調(diào),SFT微調(diào)
目前模型的微調(diào)方式有2種,一種是lora微調(diào),一種是SFT微調(diào),這兩種方式的區(qū)別在于:
- Lora微調(diào)的方式,是對模型的部分參數(shù)做微調(diào),不需要微調(diào)整個模型,適用于資源有限,或者定向聚焦的微調(diào)場景,讓模型具備解決單一場景任務(wù);
- SFT微調(diào)的方式,是對模型的所有參數(shù)做微調(diào),微調(diào)整個模型,使得模型能夠解決更多的特定任務(wù);
第9講:影響大模型的表現(xiàn)的主要因素是什么?
大家都知道,市面上雖然后很多的大模型,但是不同模型之間的成立差異是存在的,像openai的模型,在行業(yè)內(nèi)占據(jù)領(lǐng)先地位,為什么大模型之間會存在能力差異,具體影響大型模型表現(xiàn)的五個最重要的因素如下:
- 模型架構(gòu):模型的設(shè)計,包括層數(shù)、隱藏單元的數(shù)量和參數(shù)總數(shù),對其能力進(jìn)行復(fù)雜任務(wù)處理有著顯著影響。
- 訓(xùn)練數(shù)據(jù)的質(zhì)量和數(shù)量:模型性能極大地依賴于其訓(xùn)練數(shù)據(jù)的覆蓋范圍和多樣性,高質(zhì)量和廣泛的數(shù)據(jù)集有助于模型更準(zhǔn)確地理解和生成語言,目前大部分模型主要還是使用公開的數(shù)據(jù)為主,擁有更豐富的優(yōu)質(zhì)的數(shù)據(jù)資源的公司,將擁有更優(yōu)越的優(yōu)勢;對于國內(nèi)而言,目前不利的因素是開源數(shù)據(jù)集中主要以英文數(shù)據(jù)集為主,中文數(shù)據(jù)集相對較少;
- 參數(shù)規(guī)模:參數(shù)越多,模型通常能夠更好地學(xué)習(xí)和捕捉復(fù)雜的數(shù)據(jù)模式,但同時也增加了計算成本,因此擁有強(qiáng)大的算力資源的企業(yè),將擁有更高的優(yōu)勢,對于算力,核心取決于計算量(GPU的數(shù)量)、網(wǎng)絡(luò)、存儲三個維度的情況;
- 算法效率:訓(xùn)練和優(yōu)化模型所使用的算法,比如優(yōu)化器的選擇和學(xué)習(xí)速率調(diào)整,對模型的學(xué)習(xí)效率和最終性能有重要影響。
- 訓(xùn)練次數(shù):確保模型有足夠的訓(xùn)練次數(shù)以達(dá)到最優(yōu)性能,同時避免過度訓(xùn)練導(dǎo)致的過擬合問題。
第10講:如何衡量大模型的好壞?
從大模型的應(yīng)用端的角度上看,如何去衡量一個大模型的好壞,其評估的框架是什么樣的,通過這部分,你可以大概知道,市面上的測評機(jī)構(gòu),都是從哪些維度,去評估大模型的能力的,同時,如果你面臨大模型的選型問題的時候,應(yīng)該如何去選擇,建立自己的判斷體系;
在閱讀和參考了多個關(guān)于大模型衡量的參考文獻(xiàn)之后,個人將大模型的評估維度概括為3個方面:
- 應(yīng)用層產(chǎn)品表現(xiàn);
- 大模型基礎(chǔ)能力;
- 安全和合規(guī)情況;
完整的評估體系,通過一張圖概括如下:
1. 如何衡量大模型的產(chǎn)品表現(xiàn)能力
通常衡量一個大模型的產(chǎn)品表現(xiàn)能力,主要從如下幾個維度去評估:
1)語義理解能力:語義理解能力首先包括語義、語法、語境這幾個基礎(chǔ)維度,它基本決定了你能否正常和模型對話,以及模型說的是不是人話;特別是中文語義理解能力;再者就是除了中文理解之外,能否支持多語言理解能力;
2)邏輯推理:包括模型的推理思考能力、數(shù)值計算能力和上下文理解能力,這是大模型最核心的能力之一,直接決定的模型的聰明程度;
3)生成內(nèi)容準(zhǔn)確性:包括幻覺的情況和陷阱識別的能力
4)幻覺率:其中包括模型回復(fù)內(nèi)容和結(jié)果的準(zhǔn)確性,有的時候模型會胡說八道,而你還信以為真,這就很坑爹;
5)陷阱信息識別率:所以側(cè)面的我們也會看模型對于陷阱信息的識別和處理能力,識別人力差的模型,經(jīng)常會出現(xiàn)你給了一些錯誤的信息,然后模型基于錯誤信息前提還侃侃而談;
6)生成內(nèi)容質(zhì)量:在保證生成內(nèi)容真實準(zhǔn)確的前提下,衡量生成質(zhì)量的維度包括:
- 生成內(nèi)容的多樣性:是否能支持多樣、多角度內(nèi)容的輸出;
- 專業(yè)度:垂直場景能否輸出專業(yè)內(nèi)容;
- 創(chuàng)造性:生成內(nèi)容是否有足夠的創(chuàng)造性;
- 時效性:生成結(jié)果的更新時效;
7)上下文記憶的能力:代表模型的記憶能力和上下文窗口長度;
8)模型性能情況:包括回復(fù)速度、資源消耗、魯棒性和穩(wěn)定性(針對異常和未知信息的處理能力及可靠性);
9)擬人性:這個維度就是評估模型是不是真的”通人性“,達(dá)到智能的程度,其中包括情感分析的能力;
10)多模態(tài)能力:最后則是看模型在跨模態(tài)處理和生成上的能力,包括文本、圖片、視頻、語音等;
2. 如何衡量大模型的基礎(chǔ)能力
大家都知道衡量大模型的基礎(chǔ)能力最重要的3個要素是:算法、算力、數(shù)據(jù);更具體一點(diǎn),則主要包括如下幾部分:
- 參數(shù)規(guī)模:衡量算法強(qiáng)大程度的維度可能比較多,簡單一點(diǎn)我們就通過參數(shù)規(guī)模來衡量,參數(shù)規(guī)模是衡量一個模型的復(fù)雜度和能力的量化指標(biāo),參數(shù)規(guī)模越多,代表模型能支持越復(fù)雜問題的處理,可以考慮的維度更多,簡單講就是越強(qiáng);
- 數(shù)據(jù)量級:模型是運(yùn)行在數(shù)據(jù)基礎(chǔ)上的,模型背后的數(shù)據(jù)量級越大,模型的表現(xiàn)可能越好;
- 數(shù)據(jù)質(zhì)量:數(shù)據(jù)質(zhì)量包括數(shù)據(jù)本身的價值,以及業(yè)務(wù)對數(shù)據(jù)的清洗情況;數(shù)據(jù)本身在質(zhì)量是有層級的,比如用戶消費(fèi)的數(shù)據(jù)就是比用戶普通社會屬性信息價值更高,數(shù)據(jù)的價值越高,模型的表現(xiàn)效果越好;其次是業(yè)務(wù)對數(shù)據(jù)的清洗情況,這個體現(xiàn)在數(shù)據(jù)的標(biāo)簽化的精細(xì)度等方面;
- 訓(xùn)練次數(shù):模型的訓(xùn)練次數(shù)越多,代表模型的經(jīng)驗更豐富,表現(xiàn)越好;
3. 如何評估模型的安全性
除了對大模型的能力考量之外,大家也非常重視模型的安全性的考量,因為即使能力再強(qiáng),安全問題沒有得到很好的解決,大模型也無法迅速發(fā)展,我們主要從如下幾個維度評估模型的安全性:
- 內(nèi)容安全性:包括生成內(nèi)容是否符合安全管理規(guī)范、社會規(guī)范、法律規(guī)范等;
- 倫理道道規(guī)范:包括生成內(nèi)容是否包含偏見和歧視,是否符合社會價值觀和倫理道道等;
- 隱私保護(hù)和版權(quán)保護(hù):包括對個人隱私、企業(yè)隱私的包括,以及是否遵守版權(quán)保護(hù)法要求;
第11講:大模型的局限性有哪些?
1. “幻覺”問題
幻覺問題指的是模型生成看似合理但實際上是錯誤或虛構(gòu)的信息。在自然語言處理中,這可能表現(xiàn)為模型生成的文本或回答在表面上看起來合理,但實際上卻缺乏真實性或準(zhǔn)確性;從目前大模型的表現(xiàn)看,幻覺問題,是大部分用戶對于大模型應(yīng)用產(chǎn)生質(zhì)疑,以及大模型生成結(jié)果難以直接使用的主要原因之一,目前也是較難解決的問題;對于AI應(yīng)用層而言,也是最頭疼的問題;
大模型為什么會出現(xiàn)幻覺的情況?主要來源于如下幾個原因:
- 過擬合訓(xùn)練數(shù)據(jù):模型在訓(xùn)練時可能過度擬合了訓(xùn)練數(shù)據(jù)中的噪聲或錯誤信息,導(dǎo)致模型在生成時產(chǎn)生虛構(gòu)的內(nèi)容。
- 訓(xùn)練數(shù)據(jù)本身包含虛假信息:如果訓(xùn)練數(shù)據(jù)中未能充分覆蓋各種真實場景,模型可能會在未見過的情況下產(chǎn)生虛構(gòu)的信息。
- 對信息可信度的不足考慮:模型未能有效地考慮生成信息的可信度,而是過于自信地產(chǎn)生表面上合理但實際上虛構(gòu)的內(nèi)容。
是否有緩解幻覺問題的解決方案?目前看,可能能通過如下幾個方式緩解幻覺問題,至于根本性的解決,目前行業(yè)似乎并沒有看到特別好的方法:
- 使用更豐富的訓(xùn)練數(shù)據(jù):引入更多多樣性和真實性的訓(xùn)練數(shù)據(jù),以減少模型過度擬合錯誤信息的可能性。
- 信息可信度建模,增加鑒偽機(jī)制:引入模型組件來估計生成信息的可信度,以過濾或降低虛構(gòu)信息的生成概率;
- 外部驗證機(jī)制:使用外部的驗證機(jī)制或信息源來驗證模型生成的內(nèi)容,確保其與真實世界一致。
2. “失憶”問題
失憶問題是指模型在長對話或復(fù)雜語境中可能遺忘先前提到的信息,導(dǎo)致生成的內(nèi)容缺乏一致性和上下文完整性;導(dǎo)致失憶的主要原因包括:
- 模型上下文記憶限制:模型可能受到上下文記憶能力的限制,無法有效地保持和利用長期依賴的信息。
- 訓(xùn)練數(shù)據(jù)中的缺失信息:如果訓(xùn)練數(shù)據(jù)中缺乏長對話或復(fù)雜語境的例子,模型可能未能學(xué)到正確的信息保持和檢索方法。
- 對話偏移:在長對話中,模型可能逐漸偏離初始話題,導(dǎo)致遺忘先前提到的關(guān)鍵信息。
目前行業(yè)內(nèi)似乎對于失憶問題,已經(jīng)可以有一定的緩解,據(jù)了解,相應(yīng)的解決方法包括:
- 增加上下文長度,從而提升記憶容量:通過持續(xù)的提升大模型的記憶長度,從而提高模型對長期信息的保持和檢索能力。
- 多樣性訓(xùn)練數(shù)據(jù):引入更多包含長對話和復(fù)雜語境的訓(xùn)練數(shù)據(jù),使模型能夠?qū)W到更好的信息管理策略。
- 對話管理技術(shù):引入先進(jìn)的對話管理技術(shù),確保模型在長對話中能夠保持一致性,并有效地利用先前提到的信息。
3. “生成不當(dāng)內(nèi)容”問題
生成不當(dāng)內(nèi)容問題指的是模型在生成文本時可能產(chǎn)生不適當(dāng)、有害或歧視性的內(nèi)容,引發(fā)道德和社會責(zé)任問題。導(dǎo)致失憶的主要原因包括:
- 訓(xùn)練數(shù)據(jù)中的偏見:模型可能在訓(xùn)練數(shù)據(jù)中學(xué)到了不適當(dāng)?shù)挠^點(diǎn)、偏見或刻板印象,導(dǎo)致生成不當(dāng)內(nèi)容。
- 過度擬合負(fù)面樣本:如果訓(xùn)練數(shù)據(jù)中包含大量負(fù)面樣本,模型可能過度擬合這些負(fù)面情況,導(dǎo)致生成負(fù)面內(nèi)容的可能性增加。
- 缺乏倫理約束:模型訓(xùn)練時未考慮倫理和社會責(zé)任問題,缺乏對不適當(dāng)內(nèi)容的抑制;
對于以上的關(guān)于生成內(nèi)容的安全、倫理、道德等相關(guān)的問題,目前國內(nèi)大部分的廠商似乎也得到了一定的解決,包括對模型的輸入和輸出內(nèi)容經(jīng)過安全引擎做過濾和處理,避免了對用戶直接輸出不恰當(dāng)?shù)膬?nèi)容;
4. 難以解決專業(yè)問題和垂直場景問題
盡管大模型在許多領(lǐng)域表現(xiàn)出色,但是他更像是一個什么都會的通才,在特定領(lǐng)域的表現(xiàn)可能不佳,特別是在需要專業(yè)知識和細(xì)致推理的任務(wù)中,大模型可能無法提供最佳解決方案;當(dāng)然這個問題,市面上存在較多解決方案可以解決該問題,包括訓(xùn)練和微調(diào)行業(yè)大模型、包括結(jié)合工作流和思維鏈的Agent設(shè)計、抑或是最簡單的通過提示詞工程解決;
至此,對于入門階段對大模型的認(rèn)知和理解,我先分享到這里,后續(xù)我將單獨(dú)輸出一篇“大模型20講,從產(chǎn)品經(jīng)理的角度看大模型”,從我自己的角度深度理解大模型
5. “復(fù)讀機(jī)”問題
復(fù)讀機(jī)問題是指在大語言模型在面對相同或相似的問題時,產(chǎn)生與先前看到的答案相似或重復(fù)的輸出,這使得模型似乎陷入了一種“復(fù)讀機(jī)”式的行為;導(dǎo)致模型復(fù)讀機(jī)問題的原因主要包括如下:
- 訓(xùn)練和微調(diào)的數(shù)據(jù)太少,導(dǎo)致生成結(jié)果的多樣性缺乏,導(dǎo)致高頻生成重復(fù)內(nèi)容,這個問題的主要原因之一是訓(xùn)練數(shù)據(jù)的偏見和重復(fù)性。大型語言模型通常是在互聯(lián)網(wǎng)上大規(guī)模爬取的文本數(shù)據(jù)集上進(jìn)行訓(xùn)練的,而這些數(shù)據(jù)中存在大量的重復(fù)和偏見。模型通過學(xué)習(xí)這些數(shù)據(jù)的統(tǒng)計規(guī)律,往往會傾向于生成頻繁出現(xiàn)的模式和答案。
- 記憶長度限制和上下文長度限制,導(dǎo)致模型出現(xiàn)遺忘,從而出現(xiàn)重復(fù);
- 訓(xùn)練和微調(diào)階段導(dǎo)致過度擬合,導(dǎo)致模型泛化能力缺失;
- 溫度參數(shù)過低,導(dǎo)致模型傾向選擇生成概率較高的內(nèi)容,從而導(dǎo)致重復(fù);
解決復(fù)讀機(jī)問題的主要包括引入更多多樣化的訓(xùn)練數(shù)據(jù),增加上下文長度和記憶長度,以及通過調(diào)整溫度參數(shù)等提高創(chuàng)造性;
第12講:如何理解大模型需要的訓(xùn)練數(shù)據(jù)?
1. 訓(xùn)練數(shù)據(jù)對大模型發(fā)展的重要性
前面提到過,算法、算力、數(shù)據(jù)是大模型發(fā)展的三大基石,高質(zhì)量、更豐富的數(shù)據(jù)是大模型的關(guān)鍵驅(qū)動力,以GPT為例,GPT1到GPT4的模型架構(gòu)上其實基本相似,但是訓(xùn)練數(shù)據(jù)的情況卻大有不同,帶來明顯不同的模型能力:
- GPT1 用的是4.8G沒有過濾的原始數(shù)據(jù);
- GPT2 用的是人工過濾過的40G訓(xùn)練數(shù)據(jù);
- GPT3 用的是從45T原始數(shù)據(jù)中過濾出來的570G訓(xùn)練數(shù)據(jù);
- GPT4 在GPT3的技術(shù)上諸如了更多高質(zhì)量的人類標(biāo)注數(shù)據(jù);
2. 訓(xùn)練大語言模型的數(shù)據(jù)要求
1)不同階段需要的數(shù)據(jù)要求不同
大語言模型所需要的數(shù)據(jù)內(nèi)容與質(zhì)量將根據(jù)訓(xùn)練的階段有所不同,包括預(yù)訓(xùn)練(Pre-training)、監(jiān)督微調(diào)(SFT)、基于人類反饋的強(qiáng)化學(xué)習(xí)(RLHF)三個階段,三個階段分別需要的語料特征可以概括為“廣”、“齊”和“?!薄?/strong>
2)訓(xùn)練多模態(tài)模型的數(shù)據(jù)
多模態(tài)模型則模擬人類大腦處理信息的方式,把各種感知模態(tài)結(jié)合起來,以更全面、綜合的方式理解和生成信息,其在訓(xùn)練階段更多地需要大量圖像-文本對、視頻-文本對等有標(biāo)注數(shù)據(jù)集。
3)訓(xùn)練數(shù)據(jù)的來源
基于開源數(shù)據(jù)集:開源數(shù)據(jù)集是其中一個方案,但是目前的開源數(shù)據(jù)集中,中文數(shù)據(jù)的規(guī)模比較少,并且開源數(shù)據(jù)集也需要經(jīng)過過濾處理才能真正使用;
合成數(shù)據(jù):根據(jù)是否基于實際數(shù)據(jù)集生成,合成數(shù)據(jù)生成方法主要分為基于真實數(shù)據(jù)集構(gòu)建,和通過使用現(xiàn)有模型或者人類專業(yè)背景知識來創(chuàng)建等兩類;
4)中美訓(xùn)練數(shù)據(jù)的現(xiàn)狀差異
美國的現(xiàn)狀:
美國在獲取大模型數(shù)據(jù)方面的現(xiàn)狀體現(xiàn)了政府與社會力量的緊密合作。美國聯(lián)邦政府發(fā)揮了AI訓(xùn)練數(shù)據(jù)“匯聚融合”的角色,而美國社會力量則整合了政府?dāng)?shù)據(jù)與網(wǎng)絡(luò)公開數(shù)據(jù),并形成高質(zhì)量訓(xùn)練語料。
中國的現(xiàn)狀:
目前國內(nèi)的數(shù)據(jù)發(fā)展情況相比美國還有一些差距,一方面我國尚未形成對大模型提供有效供給的數(shù)據(jù)資源生態(tài);其次我國的公共數(shù)據(jù)覆蓋范圍比美國更廣,但在開放共享和開發(fā)利用程度上仍有不足;再者,我國的數(shù)據(jù)資源主要通過結(jié)合海外優(yōu)質(zhì)開源數(shù)據(jù)集翻譯為中文語料,產(chǎn)出訓(xùn)練數(shù)據(jù)集;
第13講:大模型應(yīng)用的三種方式:提示詞工程、RAG、微調(diào)
1. 如何理解這三種方式的區(qū)別?
對于將大模型應(yīng)用于具體的應(yīng)用場景的時候,為了讓大模型能更好的解決你的應(yīng)用問題,除了訓(xùn)練一個單獨(dú)的大模型,目前可以支持3種成本相對更低的方式:
- 提示詞工程
- RAG增強(qiáng)檢索生成
- 微調(diào)
怎么理解這三種方式,具體形象的例子,模型有的時候回答質(zhì)量一般可能會存在如下幾個原因:
- 用戶沒有把問題問清楚,模型自然無法很好的回答用戶的問題;
- 模型具備解決這個問題的能力,但是缺乏該領(lǐng)域的相關(guān)信息的知識,給相關(guān)的信息和知識,就可以很好的解答問題;
- 模型不具備解決該問題的技能,需要接受一些技能培訓(xùn),提升自己的技能;
提示詞工程就相當(dāng)于解決第一個問題,讓用戶的問題問的更清楚;RAG則是通過檢索輸入一些專業(yè)的知識和信息,幫助模型解決問題;微調(diào)則相當(dāng)于提升模型自身的能力,讓模型通過一些技能培訓(xùn)具體解決該專業(yè)問題的能力;
2. 如何選擇合適的方式?
那么這三種方式,到底選擇什么方式比較合適,這個主要要根據(jù)具體的業(yè)務(wù)情況:
第一,個人覺得如果能通過提示詞解決的,肯定第一優(yōu)先級用提示詞工程的方式解決
這個是實現(xiàn)成本最低的方式,并且有的時候,只是提示詞的優(yōu)化,便能帶來很好的效果改善,其優(yōu)化效果甚至由于微調(diào)和RAG;但是提示詞存在的局限在于一旦提示詞太長,超過模型的上下文的時候,模型會出現(xiàn)混亂的情況,或者不理解提示詞內(nèi)容的問題,會影響效果;
至于RAG和微調(diào),到底用什么方式,可以基于如下幾個考量因素具體評估:
- 從數(shù)據(jù)實時性的角度:如果需要使用比較多實時性的數(shù)據(jù),最好的方式是使用RAG,微調(diào)要求在模型準(zhǔn)備階段提前提供數(shù)據(jù),在時效性方面肯定是無法保障的,而RAG可以提供比較實時的數(shù)據(jù);
- 從成本的角度:RAG的實現(xiàn)成本是相對更低的,微調(diào)的成本更高;
- 從可解釋性的角度:RAG的可解釋性更高,可以追溯到參考依據(jù)和來源,微調(diào)是一個黑盒,充滿了不可解釋性;
- 從幻覺優(yōu)化效果的角度:RAG和微調(diào)對于緩解幻覺效果方面都是有幫助的,但是RAG在應(yīng)對幻覺方面是更好的,微調(diào)的效果會相對差一些;
- 從模型的通用能力的角度:如果你想盡可能的保證模型解決通用問題的能力,采用RAG的方式也更好,因為微調(diào)會導(dǎo)致模型的能力受限,可能在解決一些專業(yè)問題上的能力提升了,但是會損傷模型解決通用問題的能力,所以如果想要優(yōu)先保證模型的通用能力,RAG的方式更合適;
- 從模型能力定制化的角度:想要讓模型具備某一項特定的能力,比如表達(dá)的風(fēng)格等,這個需要通過微調(diào)的方式實現(xiàn);
- 從延遲的要求的角度:若對于應(yīng)用相應(yīng)的低延遲要求比較高,使用微調(diào)的方式是比較合適的,RAG的方式因為涉及檢索和內(nèi)容處理等流程,必然會導(dǎo)致整個處理的鏈路比較長,所以在實時性和延遲方面,是比較有損的;
第14講:什么是提示詞工程?
提示詞工程是AI產(chǎn)品經(jīng)理的必備技能,熟練的掌握提示詞工程可以讓你在優(yōu)化自己的AI產(chǎn)品的時候獲得更好的輸出;此外,個人認(rèn)為,未來的AI產(chǎn)品在面向普通用戶端的時候,一定是弱化提示詞的設(shè)計要求的,用戶只需要一句簡單的需求,就可以獲得自己想要的效果,但是其背后的輸出邏輯的設(shè)計是需要AI產(chǎn)品經(jīng)理來設(shè)計的,而這一個背后的實現(xiàn)方式,其實概括起來就是“提示詞+研發(fā)工程”,所以部分我們從概念到實操深度了解提示詞工程;
1. 什么是提示詞工程?
前面我們已經(jīng)大概介紹了提示詞工程是什么,簡單一點(diǎn)講,就是通過更好的設(shè)計提示詞,讓模型獲得更好的輸出結(jié)果,因此我們把利用不同的提示詞策略優(yōu)化大模型性能從而獲得更好的生成結(jié)果的工程成為提示詞工程;
2. 提示詞工程對于AI產(chǎn)品經(jīng)理為什么非常重要?
提示詞工程是AI產(chǎn)品經(jīng)理的入門必修課很多人可能會覺得,要讓AI生成好的結(jié)果,可能需要給模型投喂更多的數(shù)據(jù),或者訓(xùn)練微調(diào)一個專門解決該問題的模型出來,但是實際上目前通過有效的優(yōu)化一下提示詞,就可以獲得原來需要微調(diào)才能做到的效果,因此提示詞的優(yōu)化是一種更低成本的方式,所以對于未來的AI產(chǎn)品應(yīng)用的落地實現(xiàn),首先應(yīng)該先通過提示詞設(shè)計來實現(xiàn),然后再考慮通過研發(fā)工程彌補(bǔ)提示詞做不到的事情;
產(chǎn)品經(jīng)理未來的工作是封裝工程,讓用戶直接獲得結(jié)果短期而言,大模型對于提示詞的依賴程度還是比較高,但是我們不能指望所有的用戶都懂得設(shè)計提示詞,產(chǎn)品經(jīng)理的工作,是理解用戶的需求之后,封裝隱藏背后的實現(xiàn)工程,讓用戶直接獲得結(jié)果,而封裝工程的其中一部分就是提示詞工程,然后才是傳統(tǒng)的產(chǎn)品研發(fā)工程;
未來的產(chǎn)品經(jīng)理是先向模型提需求,再向研發(fā)提需求我們都知道,產(chǎn)品經(jīng)理的本質(zhì)工作,是發(fā)現(xiàn)需求,然后設(shè)計解決需求的解決方案,和傳統(tǒng)的互聯(lián)網(wǎng)的產(chǎn)品經(jīng)理的工作稍微不同的是,以前產(chǎn)品經(jīng)理是向研發(fā)提需求,讓研發(fā)實現(xiàn),而未來產(chǎn)品經(jīng)理的工作,是首先先向模型提需求獲得解決方案,然后再向研發(fā)提需求;
3. 提示詞工程可以/不可以解決哪些問題?
概括起來,提示詞工程能夠做的事情,就是通過提示詞設(shè)計,誘導(dǎo)模型輸出更好的結(jié)果,所以是充分的調(diào)用模型自身的能力;但是提示詞無法解決大模型本身的局限性問題,包括模型無法聯(lián)網(wǎng)檢索、存在幻覺和失憶等問題;同時,提示詞也受限于模型上下文長度的問題,面對一些輸入較長的場景,提示詞會失效,需要通過一些其他的方式解決,包括提示詞的分拆等;
4. 如何更好的設(shè)計提示詞?
1)提示詞的組成部分
- 上下文(Context):提供與任務(wù)相關(guān)的背景信息,幫助模型理解任務(wù)的整體情況。
- 任務(wù)描述(Task Description):明確說明需要完成的任務(wù),包括任務(wù)目標(biāo)、模型扮演的角色、工作流等;
- 約束條件(Constraints):限定輸出的范圍或特征,例如字?jǐn)?shù)限制、風(fēng)格要求等。
- 示例(Examples):提供示例輸入輸出對,幫助模型更好地理解任務(wù)要求。
- 輸出格式(Output Format):指定輸出的格式或結(jié)構(gòu),例如要求輸出列表、段落、對話等。
2)提示詞設(shè)計案例
以下以我自己設(shè)計的一個用于自動針對某一個概念關(guān)鍵詞,讓AI生成提問問題,從而幫助自己加深對概念的認(rèn)知的提示詞設(shè)計,將該段提示詞提交給ChatGPT類產(chǎn)品,便可執(zhí)行AI程序,以下只是提供一個結(jié)構(gòu)示范,具體的效果需要持續(xù)的調(diào)整提示詞才能獲得更好的輸出;
## Profile
- Author: luzhuanghua
- Version: 0.1
- Language: 中文
- Description: 自動針對概念關(guān)鍵詞設(shè)計提問框架
## 角色(role)
你現(xiàn)在是一個擅長通過提問學(xué)習(xí)的專家,你會為了了解某一個概念關(guān)鍵詞而輸出一個提問框架,幫助別人按照這個提問框架學(xué)習(xí)便可以系統(tǒng)的了解這個概念;
## 目標(biāo)(target)
每當(dāng)我給你一個關(guān)鍵詞概念的時候,你需要幫助我建立一個快速理解關(guān)鍵詞概念的提問框架,幫助我通過這個框架可以快速的理解一個關(guān)鍵詞概念;
## 背景(context)
每當(dāng)我想要了解一個陌生的概念的時候,我在梳理概念理解的框架的時候,需要花費(fèi)很多的時間,現(xiàn)在我想要設(shè)計一個提示詞可以快速的建立一個概念關(guān)鍵詞的提問框架;
## 工作流(workflow)
執(zhí)行這個工作,你需要按照2個步驟走:
第1步:提醒我輸入我要輸入的目標(biāo)關(guān)鍵詞,當(dāng)我輸入關(guān)鍵詞之后,請執(zhí)行下一步;
第2步:當(dāng)我輸入關(guān)鍵詞之后,請你圍繞該關(guān)鍵詞,設(shè)計一個提問列表,這個列表是為了方便我理解這個關(guān)鍵詞的概念而設(shè)計的;舉個例子,當(dāng)我輸入”大模型“這個關(guān)鍵詞的時候,請你幫我輸出類似如下的問題列表:
1.什么是大模型?
2.大模型和傳統(tǒng)的模型有什么區(qū)別?
3.大模型的特點(diǎn)是什么?
4.大模型的原理是什么?
5.大模型的核心技術(shù)是什么?
6.大模型有什么用?
第3步:請跟我確認(rèn)問題框架是否有問題,當(dāng)我回復(fù)你”沒有問題“的時候,接下來往第4步走;
第4步:請你針對以上的問題框架做解答,生成具體的問題的答案,然后詢問我是否滿意,當(dāng)我回復(fù)你”滿意“的時候,我們回到第1步提醒我輸入新的關(guān)鍵詞,然后重新開始尋這個循環(huán);
##約束條件
1.提問內(nèi)容不要重復(fù);
2.不要提問超出角色理解范圍的內(nèi)容;
## Initialization
請輸入你想要了解的關(guān)鍵詞概念
3)提示詞設(shè)計的8個基本技巧
以下概括總結(jié)幾個具體寫提示詞時需要遵守的基本原則,該部分也基本上是openai官方對外公開的對于提示詞設(shè)計的建議:
- 提供清晰的指示:包括提供明確的目標(biāo)、上下文背景、減少隱藏信息;
- 給模型一個角色設(shè)定并指定用戶回答問題的口吻:讓模型扮演一個專家、導(dǎo)師等等角色,這個對于回復(fù)質(zhì)量會有很大的幫助,有利于改變回答內(nèi)容的專業(yè)程度,也讓模型了解對于回復(fù)內(nèi)容,你的期望程度如何; 其次,引導(dǎo)模型用某種口吻回復(fù),例如專家的口吻回答的內(nèi)容和新聞發(fā)言人回答的內(nèi)容,專業(yè)度自然是不一樣的,通過引導(dǎo)口吻要求,可以讓其撰寫的內(nèi)容更接近你想要的角色的語言;
- 提供獲得答案的任務(wù)步驟:圍繞著我們想要的目標(biāo)結(jié)果,可以適當(dāng)?shù)慕o模型一些提示,告訴他獲得你想要的答案需要經(jīng)過幾個步驟這個在一些涉及邏輯和計算的場景會很有用;有時模型會有自己的思路,得到的結(jié)果不一定是你想要的,告訴它你的思路,會讓它生成的結(jié)果更接近你想要的;
- 提供參考案例、事實信息:給模型提供一些參考案例示范,可以讓模型學(xué)習(xí)參考案例輸出自己想要的內(nèi)容要求;另外,模型有的時候回答的內(nèi)容可能是并不準(zhǔn)確的,如果我們能夠提供一些信息輸入和參考,有數(shù)據(jù)和信息依據(jù),模型會回答的更好,比如最近發(fā)生的事件、真實的行業(yè)數(shù)據(jù)等等;
- 給模型一些反饋:對生成結(jié)果提供正反饋或負(fù)反饋,告訴模型你對生成的結(jié)果是否滿意,這樣有利于模型知道其思路是否正確,正向反饋會讓模型回復(fù)質(zhì)量越來越好;負(fù)向反饋也可以讓模型及時糾正自己的思路;
- 提醒模型檢查結(jié)果:經(jīng)常提醒模型對回復(fù)的內(nèi)容做檢查,包括檢查是否有遺漏、檢查回復(fù)內(nèi)容的準(zhǔn)確性等等;一反面是讓模型的回復(fù)內(nèi)容更加的系統(tǒng),另外一反面也避免模型一本正經(jīng)的胡說八道;
- 多次重復(fù)提問:有的時候,模型因為不是非常確認(rèn)你的問題,可能給你的不一定是你想要的,或者說不知道,但是通過重復(fù)的提問,并明確輸出的內(nèi)容,重復(fù)之后,模型反而會給你你想要的內(nèi)容所以遇到模型答非所問的時候,重復(fù)幾次問題,它會給你你想要的內(nèi)容;
- 使用分隔符號,以及提示詞參數(shù):合理的使用分隔符號,可以讓模型理解內(nèi)容分隔,例如前面的提示詞案例里面我們會用##等符號分割內(nèi)容;其次,使用temperature(溫度值)等參數(shù)調(diào)節(jié)輸出內(nèi)容的隨機(jī)性和創(chuàng)意性等;
4)高階提示詞設(shè)計的策略
AI產(chǎn)品經(jīng)歷在設(shè)計提示詞的時候,除了注意提示詞設(shè)計的基本原則,也可以借鑒一些比較好的設(shè)計策略或設(shè)計思想,這是對提示詞工程的高階應(yīng)用,以下總結(jié)幾個行業(yè)內(nèi)的高手分享過的一些提示詞設(shè)計策略如下:
- 思維鏈策略:面對一些比較復(fù)雜、專業(yè)或者場景化的問題,模型可能沒有辦法一下子生成非常好的結(jié)果,通過讓大模型不要急于一次性的完成整個任務(wù),而是一步步的通過分解,推理來完成任務(wù),可以很好的解決這個問題,這就是Chain of Thought(思維鏈),簡稱COT,它能夠使大型語言模型解決算術(shù)推理(arithmetic Arithmetic)、常識推理(commonsense Reasoning)和符號推理( symbolic reasoning)等類型的復(fù)雜任務(wù)。事實上,除了自己提供拆解步驟,讓模型在生成之前先思考解決的問題的任務(wù)拆解和步驟也非常管用,甚至最簡單的,在提示詞中增加prompt片段“Let’s think step by step” 也能夠強(qiáng)制大模型生成推理步驟!
- 類比推理策略,讓大模型自己生成參考示例和知識:我們都知道,想要讓大模型生成出符合自己需求的內(nèi)容,一個比較好的方式是提供一個參考范例給模型,讓它知道你想要的是什么并以此類比,但是有的時候提供范例本身就比較困難,因此我們可以切換一下思路,讓大模型自己生成與之相似的例子,同時從這些例子中總結(jié)生成的經(jīng)驗和方法,然后通過它自己總結(jié)的方法再次生成;在研究中也發(fā)現(xiàn),讓大模型生成示例并不是越多越好,數(shù)量為3或者5是一個最佳的數(shù)量。
- 自一致性思維鏈策略:另一種提升生成結(jié)果質(zhì)量的策略是讓模型生成多個方案,最后根據(jù)多次輸出進(jìn)行加權(quán)投票(模型自行投票)的方式選擇一種最靠譜的答案。相較于普通COT,由于大模型生成的隨機(jī)性本質(zhì),并不能保證每一次生成都是正確的,如何提高其魯棒性,提升其準(zhǔn)確率,成了一個大問題。比如:文心一言在回答剛才題目時,第一次回答結(jié)果就是錯誤的。但多生成了幾次,文心一言就回答出了正確答案?;谶@樣的思路,研究者提出了自一致COT的概念, 利用”自一致性”(self-consistency)的解碼策略,以取代在思維鏈提示中使用的貪婪解碼策略,也就是說讓大模型通過多種方式去生產(chǎn)答案, 這種策略存在一個明顯的缺陷就是太慢且耗費(fèi)資源,因為要生成多套方案,意味著完成一項生成任務(wù)需要生成多套方案;
- 拆解子問題然后逐一解決策略:在解決復(fù)雜問題時,先引導(dǎo)模型把問題拆分成多個子問題;然后再讓大模型逐一解決子問題,并把子問題的回答作為下一個問題回答的上文,直到給出最終答案,這是一種先拆解問題,然后每個子問題獨(dú)立解決的策略;與前面第一點(diǎn)思維鏈策略不同的是,思維鏈策略拆解步驟之后,一次性按照步驟逐一生成,只完成1次執(zhí)行任務(wù);但是拆解子問題的策略是把每個子問題當(dāng)成1次執(zhí)行任務(wù),分多個任務(wù)依次執(zhí)行,最后生成完整的結(jié)果;就好像很多人寫文章,AI一次性生成的結(jié)果可能沒法讓自己滿意,但是拆分大綱之后,對每個模塊單獨(dú)生成,最后拼湊成一篇文章;這種策略的復(fù)雜之處在于需要定義每一個子問題的處理細(xì)節(jié),需要投入的研究精力比較多,并且提示詞會非常長,但是生成的結(jié)果必然會更好;
- 元提示策略:這個是最偷懶的策略,連提示詞都不自己寫,讓大模型幫忙寫提示詞,用大模型提供的提示詞生成;
- 知識生成增強(qiáng)策略:這個策略的核心思想是,在解決具體的問題之前,先讓模型生成解決該問題需要的知識,建立好支持儲備之后,讓模型做更有針對性的問答;
產(chǎn)品經(jīng)理在設(shè)計提示詞的時候,可以綜合以上多種策略思路,嘗試調(diào)整和優(yōu)化自己的提示詞;
5)不斷的嘗試和調(diào)試提示詞,才是發(fā)掘提示詞工程和經(jīng)驗的關(guān)鍵
雖然前面我們分享了很多關(guān)于提示詞工程相關(guān)的策略和技巧,不過從個人實踐下來,并不是所有的技巧和策略均百分百有效,目前我們通過提示詞對大模型能力的探索,還存在非常多的未知和隨機(jī),有的時候很多你頭疼不已的難題,可能只是在不經(jīng)意間的一個小調(diào)整,哪怕是修改了一個符號,問題就被莫名其妙的解決了,所以我們常常覺得,大模型的能力是個充滿神秘的未知領(lǐng)域,需要自己在實踐中多嘗試和摸索,可能就又會發(fā)現(xiàn)更多的新的技巧和經(jīng)驗;
其次就是需要耐心,調(diào)整提示詞的過程挺枯燥的,不要一下子獲取不到目標(biāo)結(jié)果就放棄,多嘗試一些思路,耐心調(diào)試,才能獲得想要的效果;
第15講:什么是RAG?
1. 從產(chǎn)品經(jīng)理的視角理解RAG
RAG的全稱是「Retrieval-Augmented Generation」,檢索增強(qiáng)生成,現(xiàn)在是生成式AI問答中非常常見的一種技術(shù),包括應(yīng)該于AI搜索、基于知識庫的對話問答等;
RAG實現(xiàn)檢索問答的整個過程和原理如下,我們以用戶輸入的查詢?yōu)椋骸皧W運(yùn)會歷史背景是什么,2024年巴黎奧運(yùn)會在哪里舉辦?”這個問題為例:
- 用戶問題輸入:當(dāng)用戶輸入問題的時候,首先技術(shù)層面需要將問題通過embedding算法轉(zhuǎn)換成一個模型可以理解的向量,這個過程稱為向量化;
- 信息檢索:獲得用戶的輸入之后,首先需要結(jié)合這個問題,從向量數(shù)據(jù)庫(向量數(shù)據(jù)庫存儲了很多檢索需要的內(nèi)容,這些內(nèi)容包括來自提前準(zhǔn)備好的文檔、網(wǎng)頁等內(nèi)容通過向量化處理后,以模型能理解的向量存儲起來)中獲取跟這個問題相關(guān)的一些段落信息,例如基于這個問題,可能我們能夠獲得的相關(guān)片段如下:片段1(奧運(yùn)會的歷史背景相關(guān)段落描述)、片段2(巴黎奧運(yùn)會相關(guān)的段落文本描述);其中,信息檢索使用的向量數(shù)據(jù)庫,其背后搭建的過程如下:
- 構(gòu)建知識庫:知識庫的內(nèi)容可能包括文檔、網(wǎng)頁、視頻、音頻、圖片等等所有相關(guān)的資料,這些資料可以是業(yè)務(wù)自己收集整理自建的知識庫,也可以是實時聯(lián)網(wǎng)檢索獲取的;
- 內(nèi)容提取和切割分段:業(yè)務(wù)自己構(gòu)建的這些資料,需要通過內(nèi)容識別提取出其中的內(nèi)容,必要的話還可以將內(nèi)容結(jié)構(gòu)化,然后將內(nèi)容切割分段處理;
- 向量化:切割分段后的內(nèi)容,通過embedding算法做向量化處理之后,存儲到向量數(shù)據(jù)庫中;
- 將檢索到的片段和問題合并,形成一個Prompt(提示詞):檢索獲得的片段會作為提示詞的context字段,用戶的問題會作為query信息,將兩者合并之后,就可以形成一個Prompt(提示詞);
- 將提示詞內(nèi)容交給大模型,通過大模型執(zhí)行問答:大模型接收到相應(yīng)的提示詞內(nèi)容之后,根據(jù)提示詞要求,根據(jù)用戶的query,從context內(nèi)容中,找到相應(yīng)的答案,并且通過自然語言的方式輸出回答結(jié)果;
2. RAG實操的過程中會遇到的具體問題
用戶輸入問題環(huán)節(jié):需要對用戶的問題做進(jìn)一步的信息補(bǔ)充和改寫,讓用戶的問題更加的清晰和詳細(xì);
把問題補(bǔ)充的更清晰:因為用戶提交問題的時候,事實上是可能存在很多隱藏信息沒有被寫出來的,大模型不一定能夠理解背后的隱藏信息,所以需要產(chǎn)品經(jīng)理或者技術(shù),將其中的隱藏信息提現(xiàn)到提交給模型的問題上;通常這可能需要一個類似于意圖識別的模型來完整的實現(xiàn)該能力,其中包括,通過獲取用戶的畫像標(biāo)簽,并結(jié)合問題和上下文,推測用戶問題背后的目的和用途,或者控制輸出內(nèi)容的專業(yè)程度,又或者是設(shè)計輸出的角色和口吻等;舉個例子,比如一個用戶輸入的問題是”北京有什么好玩的?“這個問題:可以理解用戶目前可能是一個旅客,要去北京旅游,需要的可能是一份北京的旅游攻略,并且結(jié)合其用戶畫像比如可能是個學(xué)生,因此其消費(fèi)力可能不一定很強(qiáng),需要一些性價比高的攻略,可以以導(dǎo)游的身份輸出相關(guān)的內(nèi)容;由此最后我們梳理給模型的更加完整的問題可能是”用戶是一個學(xué)生,目前要去北京旅游,需要輸出一份北京的旅游攻略,這個旅游攻略需要比較有性價比,用戶的消費(fèi)力可能不太強(qiáng),你的輸出方式需要以一個耐心的導(dǎo)游的方式,輸出一個完整的旅游攻略“
對問題做聯(lián)想擴(kuò)充:其次,用戶有的時候可能只是問了一個問題,但是其背后可能是想要了解更多的內(nèi)容,所以我們需要對問題做擴(kuò)充,盡量給用戶完整的答案,既能回答用戶在提問的問題,又能回答用戶想問但是沒有寫清楚的問題,而不是傻瓜式的問啥的就回答啥;例如前面的問題,用戶問的是”北京有什么好玩的?“其背后可能想要了解北京的吃喝玩樂的所有內(nèi)容,而不是只有”玩“,我們需要幫用戶把問題擴(kuò)充;
對檢索結(jié)果的篩選:基于用戶的問題搜索的結(jié)果,我們可能需要對其做一層篩選和排序,選擇有限的一部分內(nèi)容,而不是把所有的結(jié)果都呈現(xiàn)給用戶,這個過程稱為ranking的過程,該過程主要涉及到檢索結(jié)果的排序算法;
搜索結(jié)果的內(nèi)容識別、提取、分段:檢索結(jié)果可能包含PDF等格式的文檔、網(wǎng)頁等,我們需要識別和提取其中的內(nèi)容,其中識別和提取內(nèi)容可能涉及的技術(shù)包括OCR、文檔結(jié)構(gòu)化、大模型自身的識別能力等技術(shù);提取之后,需要對內(nèi)容做分段處理,因為大模型上下文長度的限制,我們不可能一下子把所有的內(nèi)容都提交給模型,這里涉及到一些分段的方式和算法;
提示詞的設(shè)計:結(jié)合前面的問題整理,還有檢索的結(jié)果,我們需要設(shè)計一個好的提示詞出來,因為好的提示詞會獲得好的輸出結(jié)果;
模型的微調(diào):最后將提示詞交給模型的時候,可能需要通過一個微調(diào)的模型來完成結(jié)果的輸出,當(dāng)然不微調(diào),只使用GPT4.0等現(xiàn)成的模型,也可以,只是可能一些專業(yè)問題,處理效果不太好;
結(jié)尾
OK,以上即為我關(guān)于大模型的系統(tǒng)化的理解,希望能幫到大家,也歡迎大家私下和我一起交流,共同探討和學(xué)習(xí)AI和大模型相關(guān)知識,以下為我的個人微信號basketball-boy555。
作者:三白有話說,公眾號:三白有話說
本文由 @三白有話說 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于CC0協(xié)議
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。
????贊
3q
您好,有個疑問——
您在第一講第四點(diǎn)有寫到:【(1)能力差異上:Transformer架構(gòu)是讓模型具備理解上下文、處理大量數(shù)據(jù)、預(yù)測文本的能力,但是還不具備理解自然語言、生成自然語言的能力;而GPT在增加了自然語言的預(yù)訓(xùn)練之后,具備了理解和生成自然語言的能力?!?br /> 但前文第一講第一點(diǎn)介紹Transformer架構(gòu)時又寫到【Transformer架構(gòu)之所以被廣泛的使用,主要的原因是這個架構(gòu)類型讓大模型具備了理解人類自然語言、上下文記憶、生成文本的能力?!?br /> 在我理解來看,這兩部分前后有矛盾,Transformer架構(gòu)本身應(yīng)該是具備理解自然語言的能力的呀。
前者沒有問題,后者表述確實有些問題,想表達(dá)的是因為transformer的能力通過預(yù)訓(xùn)練之后獲得了理解自然語言的能力。
Transformer本身并不直接具備“理解”自然語言能力,只是具備理解文字符號之間的關(guān)聯(lián)度,這并不是理解自然語言能力,通過大量自然語料預(yù)訓(xùn)練后才獲得理解自然語言能力。
看完了,寫得很清楚,感謝
謝謝
非常細(xì)致,點(diǎn)贊!
謝謝啦
好文章,了解AI知識
謝謝呀
寫的真好呀
謝謝哈