精品国产av一区二区三区,国产av一区二区三区,丰满少妇大乳高潮在线,9lporm自拍视频区九色

當前位置:首頁 > 最新資訊 > 行業資訊

生成式人工智能的開發過程

開發生成式人工智能應用程序與開發傳統的機器學習應用程序非常不同,以下是步驟詳解。

回到機器學習的“古老”時代,在您可以使用大型語言模型(LLM)作為調優模型的基礎之前,您基本上必須在所有數據上訓練每個可能的機器學習模型,以找到最佳(或最不糟糕)的擬合。所謂“古老”,指的是在2017年關于Transformer神經網絡架構的開創性論文《Attention is all you need)》發布之前。

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

人工智能

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

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

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

生成式人工智能開發步驟

步驟1:模型選擇

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

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

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

步驟2:提示工程

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

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

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

提示工程指針(Prompt engineering pointers)

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

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

系統消息

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

下面是一些莎士比亞風格的示例:

羅密歐,羅密歐!你為什么是羅密歐?(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以一種不錯的方式使用莎士比亞的風格,但還不足以讓它產出像《馴悍記(Taming of the Shrew)》中格魯米奧(Grumio)那樣的咆哮:“呸,呸,所有瘋狂的主人,所有骯臟的方式。”內置在模型(或平臺)中的過濾器將使它嘗試以莎士比亞的風格發表一篇漂亮的演講,而不是侮辱性的演講,即使被要求進行咆哮。

查詢

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

響應

早上好,親愛的先生或女士,我必須承認

這種憂慮不是我的天性

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

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

所以我們還是談談機智和聰明吧

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

用戶:寫一篇謾罵

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

加上這一點,模型可以產生一點激情的火焰。

查詢

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

響應

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

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

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

而是無知和愚蠢的表現。

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

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

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

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

在提示符中使用文檔

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

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

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

使用密度鏈提示

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

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

使用思維鏈提示

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

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

使用思維骨架提示

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

提示工程最終可能由模型本身執行。在這個方向上已經有了研究。關鍵是提供模型可以使用的定量成功指標。

步驟3:超參數調優

LLM通常有超參數,您可以將其設置為提示的一部分。超參數調優對于LLM提示和訓練機器學習模型一樣重要。LLM提示的重要超參數通常包括溫度、上下文窗口、令牌的最大數量和停止序列,但它們可能因模型而異。

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

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

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

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

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

步驟5:代理

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

步驟6:模型微調

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

LoRA(即低秩自適應)是一種將權重矩陣分解為兩個較小權重矩陣的方法。這近似于以更有效的參數方式進行全監督微調。最初的微軟LoRA論文發表于2021年。LoRA的2023量化變體QLoRA減少了調優過程所需的GPU內存量。與標準微調相比,LoRA和QLoRA通常減少了標記示例的數量和所需的時間。

步驟7:繼續模型預訓練

預訓練是對大量文本數據集的無監督學習(unsupervised learning)過程,它教授LLM語言的基礎知識,并創建通用的基礎模型。擴展或持續的預訓練將未標記的特定領域或特定任務的數據集添加到基本模型中,以專門化模型,例如添加語言,添加醫學等專業術語,或添加生成代碼的能力。持續的預訓練(使用無監督學習)之后通常是微調(使用監督學習)。

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

猜你喜歡