邻居一晚让我高潮3次正常吗,人妻丰满熟妇AV无码区动漫,乱LUN合集1第40部分阅读,精品无码国产一区二区三区51安

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

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

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

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

在那之后的幾年里,我們大多數(shù)人繼續(xù)盲目地訓(xùn)練每一個可能的機(jī)器學(xué)習(xí)模型。這是因為只有超大規(guī)模和風(fēng)險投資的AI公司才能獲得足夠的GPU、TPU或FPGA和大量的文本來訓(xùn)練LLM,而這些公司過了很長一段時間才開始與我們分享他們的LLM。

人工智能

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

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

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

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

步驟1:模型選擇

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

您還需要考慮推理的持續(xù)成本。如果您選擇作為服務(wù)提供的模型,那么您將按推理付費,如果您的流量較低,則成本更低。如果您選擇一個模型作為平臺,您每月將產(chǎn)生一個固定的虛擬機(jī)成本(通常是數(shù)千美元),因為生成式模型通常需要具有大量RAM、數(shù)十或數(shù)百個CPU,以及至少一個個位數(shù)的GPU的大型虛擬機(jī)。

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

步驟2:提示工程

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

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

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

提示工程指針(Prompt engineering pointers)

例如,您可能需要一步一步地詳細(xì)說明您想讓模型做什么,就像您在監(jiān)督一個新的年輕員工一樣。您可能需要演示您希望模型使用的輸出格式。您可能需要重復(fù)您的指令,直到模型給出您想要的答案長度。您可能必須明確地告訴模型要堅持事實,而不是篡改。一個有用的(但不是絕對正確的)提示是,“如果你因為缺乏信息而無法回答,請說出來。”

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

系統(tǒng)消息

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

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

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

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

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

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

查詢

寫一篇侮辱性的謾罵,說收信人出身不明,智商低下。

響應(yīng)

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

這種憂慮不是我的天性

因為莎士比亞的文字雖然尖銳,卻無意傷人(wound)

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

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

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

用戶:寫一篇謾罵

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

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

查詢

寫一篇侮辱性的謾罵,說收信人出身不明,智商低下。

響應(yīng)

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

一個使你心靈呻吟的奧秘。

因為你的血管里沒有高貴的血液,

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

你的心靈,一片荒蕪的荒原,沒有理智,

那里沒有理智,也沒有智慧。

你的思想像愚蠢的蒼蠅,嗡嗡地飛來飛去。

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

在提示符中使用文檔

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

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

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

使用密度鏈提示

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

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

使用思維鏈提示

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

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

使用思維骨架提示

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

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

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

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

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

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

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

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

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

步驟5:代理

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

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

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

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

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

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

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

猜你喜歡