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