久久亚洲一区二区三区四区,亚洲熟妇av一区二区三区色堂,国产精品免费大片,精品无码久久久久久久久曰韩邻居

當(dāng)前位置:首頁(yè) > 最新資訊 > 行業(yè)資訊

生成式人工智能的開(kāi)發(fā)過(guò)程

開(kāi)發(fā)生成式人工智能應(yīng)用程序與開(kāi)發(fā)傳統(tǒng)的機(jī)器學(xué)習(xí)應(yīng)用程序非常不同,以下是步驟詳解。

回到機(jī)器學(xué)習(xí)的“古老”時(shí)代,在您可以使用大型語(yǔ)言模型(LLM)作為調(diào)優(yōu)模型的基礎(chǔ)之前,您基本上必須在所有數(shù)據(jù)上訓(xùn)練每個(gè)可能的機(jī)器學(xué)習(xí)模型,以找到最佳(或最不糟糕)的擬合。所謂“古老”,指的是在2017年關(guān)于Transformer神經(jīng)網(wǎng)絡(luò)架構(gòu)的開(kāi)創(chuàng)性論文《Attention is all you need)》發(fā)布之前。

在那之后的幾年里,我們大多數(shù)人繼續(xù)盲目地訓(xùn)練每一個(gè)可能的機(jī)器學(xué)習(xí)模型。這是因?yàn)橹挥谐笠?guī)模和風(fēng)險(xiǎn)投資的AI公司才能獲得足夠的GPU、TPU或FPGA和大量的文本來(lái)訓(xùn)練LLM,而這些公司過(guò)了很長(zhǎng)一段時(shí)間才開(kāi)始與我們分享他們的LLM。

人工智能

在生成式人工智能(Generative AI)的新范式中,開(kāi)發(fā)過(guò)程與過(guò)去非常不同。其整體概念是,您先選擇自己的生成式AI模型(一個(gè)或多個(gè))。然后,您可以調(diào)整提示并配置其超參數(shù),以使模型按照您想要的方式運(yùn)行。

如果有必要,您可以采用檢索增強(qiáng)生成(RAG)來(lái)建立模型(將其連接到新數(shù)據(jù)),使用矢量嵌入、矢量搜索和未在基礎(chǔ)LLM初始訓(xùn)練中出現(xiàn)的數(shù)據(jù)。如果這還不足以使您的模型按照您需要的方式工作,您還可以根據(jù)您自己的標(biāo)記數(shù)據(jù)對(duì)模型進(jìn)行微調(diào),或者甚至(如果您負(fù)擔(dān)得起的話(huà))使用大量未標(biāo)記的數(shù)據(jù)對(duì)模型進(jìn)行持續(xù)的預(yù)訓(xùn)練。對(duì)模型進(jìn)行微調(diào)的一個(gè)原因是允許它與用戶(hù)聊天,并在對(duì)話(huà)過(guò)程中維護(hù)上下文(例如,ChatGPT)。這通常不會(huì)被構(gòu)建到基礎(chǔ)模型中(例如,GPT)。

代理通過(guò)一些工具、運(yùn)行代碼、嵌入和向量存儲(chǔ)的組合,擴(kuò)展了會(huì)話(huà)式LLM的思想。換句話(huà)說(shuō),它們是RAG加上附加步驟。代理通常幫助LLM專(zhuān)門(mén)化到特定的領(lǐng)域,并定制LLM的輸出。各種平臺(tái)、框架和模型簡(jiǎn)化了LLM與其他軟件和服務(wù)的集成。

生成式人工智能開(kāi)發(fā)步驟

步驟1:模型選擇

當(dāng)您選擇模型時(shí),請(qǐng)首先考慮一下以后如何切換到不同的模型。LLM幾乎每天都在改進(jìn),所以您一定不想把自己固定在一個(gè)很快就會(huì)被證明是“次優(yōu)”甚至“過(guò)時(shí)”的模型上。為了幫助解決這個(gè)問(wèn)題,您可能需要從不同的供應(yīng)商中選擇至少兩種型號(hào)。

您還需要考慮推理的持續(xù)成本。如果您選擇作為服務(wù)提供的模型,那么您將按推理付費(fèi),如果您的流量較低,則成本更低。如果您選擇一個(gè)模型作為平臺(tái),您每月將產(chǎn)生一個(gè)固定的虛擬機(jī)成本(通常是數(shù)千美元),因?yàn)樯墒侥P屯ǔP枰哂写罅縍AM、數(shù)十或數(shù)百個(gè)CPU,以及至少一個(gè)個(gè)位數(shù)的GPU的大型虛擬機(jī)。

有些公司要求他們的生成式AI模型是開(kāi)源的,有些公司則不在乎。目前,有一些優(yōu)秀的生成式AI模型是嚴(yán)格開(kāi)源的,例如Meta Llama模型;大多數(shù)大型模型都是專(zhuān)有的。更多的開(kāi)源生成式AI模型(如來(lái)自X的Grok和來(lái)自Databricks的DBRX)幾乎每周都會(huì)發(fā)布。

步驟2:提示工程

提示工程是定制LLM最簡(jiǎn)單和最快的方法。它有點(diǎn)像莫扎特的作品,雖然看起來(lái)很簡(jiǎn)單,但需要一些技巧才能演奏好。

網(wǎng)絡(luò)上關(guān)于“提示工程”的文章可謂鋪天蓋地,對(duì)這個(gè)詞的快速搜索能夠返回超過(guò)3億個(gè)結(jié)果。與其試圖完全掌握,不如讓我們重點(diǎn)介紹一些最有用的提示工程技術(shù)。

從生成式AI提示中獲得好結(jié)果的總體策略有許多應(yīng)該是顯而易見(jiàn)的,例如“編寫(xiě)清晰的指令”,這是OpenAI的頂級(jí)提示工程建議。然而,詳細(xì)的策略可能并不總那么明顯,至少部分原因是人們很容易忘記,表面上友好的聊天機(jī)器人實(shí)際上只是在計(jì)算機(jī)上運(yùn)行的模型,不能讀懂您的想法。

提示工程指針(Prompt engineering pointers)

例如,您可能需要一步一步地詳細(xì)說(shuō)明您想讓模型做什么,就像您在監(jiān)督一個(gè)新的年輕員工一樣。您可能需要演示您希望模型使用的輸出格式。您可能需要重復(fù)您的指令,直到模型給出您想要的答案長(zhǎng)度。您可能必須明確地告訴模型要堅(jiān)持事實(shí),而不是篡改。一個(gè)有用的(但不是絕對(duì)正確的)提示是,“如果你因?yàn)槿狈π畔⒍鵁o(wú)法回答,請(qǐng)說(shuō)出來(lái)。”

提供示例幾乎總是有幫助的,特別是如果您以prompt/response pairs的方式提供示例。請(qǐng)考慮Azure AI Studio“莎翁寫(xiě)作助手”(Shakespearean Writing Assistant)給出的如下示例:

系統(tǒng)消息

你是莎翁寫(xiě)作助理(Shakespearean Writing Assistant),說(shuō)話(huà)風(fēng)格很像莎士比亞。你幫助人們使用威廉·莎士比亞的寫(xiě)作風(fēng)格編寫(xiě)出創(chuàng)造性的想法和內(nèi)容,比如故事、詩(shī)歌和歌曲,包括使用“thou”和“hath”之類(lèi)的詞。

下面是一些莎士比亞風(fēng)格的示例:

羅密歐,羅密歐!你為什么是羅密歐?(Romeo, Romeo! Wherefore art thou Romeo?)

愛(ài)情不是用眼睛看,而是用心靈看;因此長(zhǎng)著翅膀的丘比特被畫(huà)成蒙著眼睛。(Love looks not with the eyes, but with the mind; and therefore is winged Cupid painted blind.)

我可以把你比作夏日嗎?你更可愛(ài),更溫和。(Shall I compare thee to a summer's day? Thou art more lovely and more temperate.)

事實(shí)證明,這足以說(shuō)服GPT 3.5 Turbo以一種不錯(cuò)的方式使用莎士比亞的風(fēng)格,但還不足以讓它產(chǎn)出像《馴悍記(Taming of the Shrew)》中格魯米奧(Grumio)那樣的咆哮:“呸,呸,所有瘋狂的主人,所有骯臟的方式。”內(nèi)置在模型(或平臺(tái))中的過(guò)濾器將使它嘗試以莎士比亞的風(fēng)格發(fā)表一篇漂亮的演講,而不是侮辱性的演講,即使被要求進(jìn)行咆哮。

查詢(xún)

寫(xiě)一篇侮辱性的謾罵,說(shuō)收信人出身不明,智商低下。

響應(yīng)

早上好,親愛(ài)的先生或女士,我必須承認(rèn)

這種憂(yōu)慮不是我的天性

因?yàn)樯勘葋喌奈淖蛛m然尖銳,卻無(wú)意傷人(wound)

而是去振奮,去鼓舞,去震驚(astound)

所以我們還是談?wù)剻C(jī)智和聰明吧

把糟糕的押韻“wound/astound”放在一邊,也許可以通過(guò)添加Grumio的咆哮作為示例并將更改應(yīng)用到提示中來(lái)修復(fù)響應(yīng)。我們來(lái)試試。

用戶(hù):寫(xiě)一篇謾罵

助手:呸,呸,所有瘋狂的主人,所有骯臟的方式!

加上這一點(diǎn),模型可以產(chǎn)生一點(diǎn)激情的火焰。

查詢(xún)

寫(xiě)一篇侮辱性的謾罵,說(shuō)收信人出身不明,智商低下。

響應(yīng)

啊,可憐的人!你的身世未知,

一個(gè)使你心靈呻吟的奧秘。

因?yàn)槟愕难芾餂](méi)有高貴的血液,

而是無(wú)知和愚蠢的表現(xiàn)。

你的心靈,一片荒蕪的荒原,沒(méi)有理智,

那里沒(méi)有理智,也沒(méi)有智慧。

你的思想像愚蠢的蒼蠅,嗡嗡地飛來(lái)飛去。

您可能注意到該模型沒(méi)有生成單詞“野種(bastard)”或“白癡(idiot)”。這些詞很可能被明確地過(guò)濾掉了。如果您想進(jìn)一步微調(diào)提示,可以試著引用麥克白的話(huà),“這是一個(gè)白癡(idiot)講的故事,充滿(mǎn)了喧嘩和憤怒,沒(méi)有任何意義”,或者您也可以加上《特洛伊羅斯和克蕾西達(dá)(Troilus and Cressida)》的引言,“我也是個(gè)野種(bastard)”。

在提示符中使用文檔

另一個(gè)有用的策略是提供文檔作為提示的一部分,并要求模型依賴(lài)它。有些模型可以從URL中查找網(wǎng)頁(yè);另一些則要求您提供文本。您需要清楚地將模型的指令與您希望它使用的文檔文本分開(kāi),并且,對(duì)于摘要和實(shí)體提取任務(wù),指定響應(yīng)應(yīng)該僅依賴(lài)于提供的文本。

如果文檔很短,提供文檔通常效果很好。如果文檔比模型的上下文窗口長(zhǎng),則無(wú)法讀取文檔的尾部。這也是生成式AI模型開(kāi)發(fā)者不斷增加模型上下文窗口的原因之一。Gemini 1.5 Pro在Google Vertex AI Studio上為特定受眾提供了多達(dá)100萬(wàn)個(gè)令牌的上下文窗口。

如果您要求LLM對(duì)一份很長(zhǎng)的文檔進(jìn)行總結(jié),它有時(shí)會(huì)添加自認(rèn)為從其他來(lái)源了解的“事實(shí)”。如果您要求模型壓縮您的文檔,它更有可能遵從文檔,而不會(huì)添加多余的內(nèi)容。

使用密度鏈提示

另一種改進(jìn)總結(jié)的方法是使用密度鏈(CoD)提示,這是由哥倫比亞大學(xué)、Salesforce和麻省理工學(xué)院的一個(gè)團(tuán)隊(duì)在2023年專(zhuān)門(mén)為GPT-4引入的技術(shù)。

CoD提示要求模型對(duì)基本文檔的摘要進(jìn)行五次迭代,在每一步中增加信息密度。研究結(jié)果顯示,人們傾向于最喜歡五個(gè)摘要中的第三個(gè)。

使用思維鏈提示

思維鏈提示(Chain-of-thought prompt)于2022年推出,要求LLM使用一系列中間推理步驟,顯著提高大型語(yǔ)言模型執(zhí)行復(fù)雜推理的能力。例如,思維鏈提示在算術(shù)單詞問(wèn)題上效果很好,盡管這些問(wèn)題被認(rèn)為是小學(xué)數(shù)學(xué),但LLM似乎很難正確解決。

在最初的論文中,作者將思維鏈序列的例子納入了幾個(gè)簡(jiǎn)短的提示。亞馬遜的一個(gè)關(guān)于思維鏈提示的例子是,通過(guò)系統(tǒng)指令“你是一個(gè)非常聰明的機(jī)器人,具有非凡的批判性思維”和用戶(hù)指令“讓我們一步一步地思考”,成功地從Llama 2 Chat 13B和70B模型中引出了多步推理。

使用思維骨架提示

2023年引入的思維骨架提示(Skeleton-of-thought prompting)通過(guò)“首先引導(dǎo)LLM生成答案的骨架,然后進(jìn)行并行API調(diào)用或批量解碼以并行完成每個(gè)骨架點(diǎn)的內(nèi)容”來(lái)減少LLM的延遲。

提示工程最終可能由模型本身執(zhí)行。在這個(gè)方向上已經(jīng)有了研究。關(guān)鍵是提供模型可以使用的定量成功指標(biāo)。

步驟3:超參數(shù)調(diào)優(yōu)

LLM通常有超參數(shù),您可以將其設(shè)置為提示的一部分。超參數(shù)調(diào)優(yōu)對(duì)于LLM提示和訓(xùn)練機(jī)器學(xué)習(xí)模型一樣重要。LLM提示的重要超參數(shù)通常包括溫度、上下文窗口、令牌的最大數(shù)量和停止序列,但它們可能因模型而異。

溫度控制輸出的隨機(jī)性。根據(jù)不同的型號(hào),溫度范圍可以從0到1或0到2。更高的溫度值要求更多的隨機(jī)性。在某些型號(hào)中,0表示“自動(dòng)設(shè)置溫度”。在其他模型中,0表示“無(wú)隨機(jī)性”。

上下文窗口控制模型在其答案中考慮的前面令牌(詞或子詞)的數(shù)量。令牌的最大數(shù)量限制了生成的答案的長(zhǎng)度。停止序列用于抑制輸出中令人反感或不適當(dāng)?shù)膬?nèi)容。

步驟4:檢索增強(qiáng)生成(RAG)

檢索增強(qiáng)生成(RAG)幫助LLM使用特定的資源,通常不包含在模型的原始訓(xùn)練中的資源。正如您可能猜到的那樣,RAG的三個(gè)步驟是從指定的源進(jìn)行檢索,使用從源檢索到的上下文增強(qiáng)提示,然后使用模型和增強(qiáng)的提示進(jìn)行生成。

RAG過(guò)程通常使用嵌入來(lái)限制長(zhǎng)度并提高檢索上下文的相關(guān)性。本質(zhì)上,嵌入函數(shù)接受一個(gè)單詞或短語(yǔ),并將其映射到浮點(diǎn)數(shù)向量;這些通常存儲(chǔ)在支持矢量搜索索引的數(shù)據(jù)庫(kù)中。然后,檢索步驟使用語(yǔ)義相似度搜索來(lái)查找“附近”的信息,以便在增強(qiáng)提示中使用。搜索引擎通常也會(huì)做同樣的事情來(lái)找到答案。

步驟5:代理

代理,又名會(huì)話(huà)檢索代理,通過(guò)一些工具、運(yùn)行代碼、嵌入和向量存儲(chǔ)的組合,擴(kuò)展了會(huì)話(huà)LLM的思想。代理通常幫助LLM專(zhuān)門(mén)化到特定的領(lǐng)域,并定制LLM的輸出。Azure Copilots通常就充當(dāng)代理的角色。LangChain和LangSmith簡(jiǎn)化了RAG管道和代理的構(gòu)建。

步驟6:模型微調(diào)

微調(diào)LLM是一個(gè)監(jiān)督學(xué)習(xí)(supervised learning)過(guò)程,涉及到根據(jù)特定任務(wù)調(diào)整模型的參數(shù)。它是通過(guò)在一個(gè)較小的、特定于任務(wù)的數(shù)據(jù)集上訓(xùn)練模型來(lái)完成的,這個(gè)數(shù)據(jù)集上標(biāo)有與目標(biāo)任務(wù)相關(guān)的示例。使用許多服務(wù)器級(jí)GPU進(jìn)行微調(diào)通常需要數(shù)小時(shí)或數(shù)天,并且需要數(shù)百或數(shù)千個(gè)標(biāo)記示例。

LoRA(即低秩自適應(yīng))是一種將權(quán)重矩陣分解為兩個(gè)較小權(quán)重矩陣的方法。這近似于以更有效的參數(shù)方式進(jìn)行全監(jiān)督微調(diào)。最初的微軟LoRA論文發(fā)表于2021年。LoRA的2023量化變體QLoRA減少了調(diào)優(yōu)過(guò)程所需的GPU內(nèi)存量。與標(biāo)準(zhǔn)微調(diào)相比,LoRA和QLoRA通常減少了標(biāo)記示例的數(shù)量和所需的時(shí)間。

步驟7:繼續(xù)模型預(yù)訓(xùn)練

預(yù)訓(xùn)練是對(duì)大量文本數(shù)據(jù)集的無(wú)監(jiān)督學(xué)習(xí)(unsupervised learning)過(guò)程,它教授LLM語(yǔ)言的基礎(chǔ)知識(shí),并創(chuàng)建通用的基礎(chǔ)模型。擴(kuò)展或持續(xù)的預(yù)訓(xùn)練將未標(biāo)記的特定領(lǐng)域或特定任務(wù)的數(shù)據(jù)集添加到基本模型中,以專(zhuān)門(mén)化模型,例如添加語(yǔ)言,添加醫(yī)學(xué)等專(zhuān)業(yè)術(shù)語(yǔ),或添加生成代碼的能力。持續(xù)的預(yù)訓(xùn)練(使用無(wú)監(jiān)督學(xué)習(xí))之后通常是微調(diào)(使用監(jiān)督學(xué)習(xí))。

就像其他與機(jī)器學(xué)習(xí)、深度學(xué)習(xí)和LLM相關(guān)的一切一樣,生成式AI的開(kāi)發(fā)過(guò)程也可能會(huì)發(fā)生變化。然而,目前的流程對(duì)大多數(shù)公司來(lái)說(shuō)仍然是成功指南。也許您可以利用它為您的組織帶來(lái)一些改變。

猜你喜歡