自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺析面向場景的大模型應(yīng)用框架選擇

原創(chuàng)
人工智能
人們經(jīng)常用“具體問題具體分析”來適應(yīng)不確定性,工匠的思維是對問題進(jìn)行分類,然后嘗試是否存在通用的解法,可能不是最優(yōu)的解,但肯定是一個(gè)可用的解。?對于大模型應(yīng)用而言, 也是如此。

從demo到產(chǎn)品之間存在著鴻溝,大模型應(yīng)用也是如此。在工程實(shí)踐的時(shí)候,產(chǎn)品/服務(wù)提供的功能與性能及成本之間存在著大量的權(quán)衡,面向場景來選擇大模型的應(yīng)用框架,則是一種具體的權(quán)衡方法。

例如,什么時(shí)候使用Agent?當(dāng)任務(wù)太復(fù)雜而無法通過單個(gè)LLM調(diào)用完成時(shí),或者如果任務(wù)需要非LLM功能,則需要使用Agent系統(tǒng)。在這種情況下,復(fù)雜的任務(wù)分解為更簡單的任務(wù),并在Agent框架中編排它們。其他的時(shí)候,可能會畫蛇添足。

1. 場景的抽象

在面對不可枚舉的應(yīng)用場景時(shí),如何選擇合適的大模型應(yīng)用框架呢?

我們可以嘗試從技術(shù)特征出發(fā),對場景進(jìn)行分類,這是一個(gè)抽象的過程。LLM作為一種非確定性技術(shù),如果您不需要所創(chuàng)建的內(nèi)容具有那么多的唯一性,那么它帶來的麻煩將超過它的價(jià)值。減少了不確定性的應(yīng)用框架也減少了對LLM的調(diào)用總數(shù),因此還有降低使用LLM總成本的作用。由于LLM調(diào)用比典型的Web服務(wù)慢,這也有減少延遲的作用。

然而,LLM存在幻覺問題,并在其訓(xùn)練數(shù)據(jù)中反映偏見和毒性。鑒于此,直接向終端用戶發(fā)送LLM生成的內(nèi)容存在風(fēng)險(xiǎn)。解決這個(gè)問題會增加很多工程復(fù)雜性,可能需要引入一個(gè)實(shí)體在回路中檢查內(nèi)容,或者在應(yīng)用程序中添加護(hù)欄,以驗(yàn)證生成的內(nèi)容沒有違反策略。

于是,我們可以把確定性和風(fēng)險(xiǎn)作為兩個(gè)維度,把成本和延遲作為約束條件,嘗試對場景進(jìn)行分類,進(jìn)而選擇相應(yīng)的應(yīng)用框架。

2. 確定性低且風(fēng)險(xiǎn)低的場景——提示模版

面對確定性低且低風(fēng)險(xiǎn)的任務(wù),在每次需要生成內(nèi)容時(shí)調(diào)用 LLM 的 API。我們使用 PromptTemplate 并根據(jù)運(yùn)行時(shí)參數(shù)對發(fā)送給 LLM 的提示進(jìn)行模板化,這樣的應(yīng)用框架是一個(gè)好的選擇。例如,基于提示發(fā)送電子郵件,我們可以使用 langchain:

prompt_template = PromptTemplate.from_template(
    """
    You are an AI executive assistant to {sender_name} who writes letters on behalf of the executive.
    Write a 3-5 sentence thank you message to {recipient_name} for {reason_for_thanks}.
    Extract the first name from {sender_name} and sign the message with just the first name.
    """
)
...
response = chain.invoke({
    "recipient_name": "John Doe",
    "reason_for_thanks": "speaking at our Data Conference",
    "sender_name": "Jane Brown",
})

使用此框架的常見情況是針對交互式應(yīng)用程序的內(nèi)部用戶(風(fēng)險(xiǎn)很低)。

為重復(fù)的任務(wù)使用預(yù)生成的、經(jīng)過審查的模板,減少了對持續(xù)的人工審查的需要。適合中等創(chuàng)造力,低中等風(fēng)險(xiǎn)的情況下,標(biāo)準(zhǔn)化,但個(gè)性化的內(nèi)容是必要的。

3. 確定性中且風(fēng)險(xiǎn)低的場景——提示緩存

如果希望重復(fù)提問每次都生成相同的答案,大幅度降低成本和延遲的一種方法是緩存過去的提示和響應(yīng),可以使用 langchain 在客戶端執(zhí)行這樣的緩存:

from langchain_core.caches import InMemoryCache
from langchain_core.globals import set_llm_cache

set_llm_cache(InMemoryCache())

prompt_template = PromptTemplate.from_template(
    """
    What are the steps to put a freeze on my credit card account?
    """
)
chain = prompt_template | model | parser

除了客戶端緩存精確的文本輸入和相應(yīng)的響應(yīng)之外,緩存還是很有用的。Anthroic 支持“提示緩存”,可以要求模型在服務(wù)器端緩存部分提示(通常是系統(tǒng)提示和重復(fù)上下文) ,同時(shí)在每個(gè)后續(xù)查詢中繼續(xù)向其發(fā)送新的指令。使用提示緩存降低了每個(gè)查詢的成本和延遲,同時(shí)不影響非確定性。它在 RAG、文檔提取和示例變多時(shí)的few-shot提示中特別有用。

4. 確定性高且風(fēng)險(xiǎn)低的場景——SLM

在大型語言模型(LLM)中完全消除幻覺幾乎是不可能的。使用較小的LLM來執(zhí)行更有針對性的任務(wù)雖然可以減少幻覺的風(fēng)險(xiǎn),但這可能會影響準(zhǔn)確性。然而,小型語言模型(SLM)正在變得越來越精確且尺寸越來越小,而LLM則主要專注于增強(qiáng)其任務(wù)能力。對于像文檔提取這樣的特定任務(wù),這些方法之間的準(zhǔn)確性差異已經(jīng)趨于穩(wěn)定。

如今,越來越多的企業(yè)級任務(wù)可以通過使用SLM和非最前沿的LLM來完成,這些任務(wù)通常具有較高的確定性和較低的風(fēng)險(xiǎn)承受能力。例如,從文檔中創(chuàng)建嵌入、進(jìn)行知識檢索和主題建模等任務(wù)就非常適合使用小型語言模型。這類任務(wù)不僅需要高度的準(zhǔn)確性,還要求模型能夠快速響應(yīng)并處理大量數(shù)據(jù)。因此,選擇適當(dāng)?shù)哪P痛笮『图夹g(shù)方案對于確保業(yè)務(wù)效率和數(shù)據(jù)安全至關(guān)重要。隨著技術(shù)的發(fā)展,我們可以預(yù)見未來會有更多創(chuàng)新的方法出現(xiàn),以進(jìn)一步提高模型的性能和適用性。

5. 確定性中且風(fēng)險(xiǎn)中的場景——響應(yīng)模版

如果給訂購旅游產(chǎn)品的用戶發(fā)送郵件,而且沒有內(nèi)部人員能夠在發(fā)送之前編輯每封信,這是一個(gè)非確定性中且風(fēng)險(xiǎn)為中等的場景。在這種情況下,預(yù)先生成模板化響應(yīng)可能是有幫助的。

prompt_template = PromptTemplate.from_template(
    """
    Write a letter to a customer who has purchased {product_name} tour package.
    The customer is traveling {group_type} and the tour is to {tour_destination}.
    Sound excited to see them and explain some of the highlights of what they will see there
    and some of the things they can do while there.
    In the letter, use [CUSTOMER_NAME] to indicate the place to be replaced by their name
    and [TOUR_GUIDE] to indicate the place to be replaced by the name of the tour guide.
    """
)
chain = prompt_template | model | parser
print(chain.invoke({
    "group_type": "family",
    "tour_destination": "Beijing, China",
}))

我們要求 LLM 在消息中插入可以動(dòng)態(tài)替換的占位符。無論何時(shí)需要發(fā)送響應(yīng),都要從數(shù)據(jù)庫中檢索消息,并用實(shí)際數(shù)據(jù)替換占位符。

6. 確定性高且風(fēng)險(xiǎn)中等的場景——組裝式學(xué)習(xí)

對于一家印刷機(jī)零件制造商而言,為其產(chǎn)品目錄中的每一項(xiàng)創(chuàng)建一個(gè)網(wǎng)頁是一項(xiàng)既重要又需要高度準(zhǔn)確性的任務(wù)。在此過程中,確保信息的真實(shí)性至關(guān)重要,例如不能錯(cuò)誤地宣稱某個(gè)零件具有耐熱性,而實(shí)際上它并不具備這種特性。同樣,也要避免使用大型語言模型(LLM)時(shí)產(chǎn)生誤導(dǎo),比如讓讀者誤以為安裝某個(gè)部件需要特定的工具。

面對這樣的挑戰(zhàn),采用預(yù)生成內(nèi)容的策略可以有效降低動(dòng)態(tài)內(nèi)容帶來的風(fēng)險(xiǎn)。這意味著利用預(yù)先準(zhǔn)備好的模板和數(shù)據(jù)來生成網(wǎng)頁內(nèi)容,而不是完全依賴即時(shí)生成的內(nèi)容。在這種情況下,LLM的作用被限制在提取關(guān)鍵信息和生成摘要上,即使這些操作是“實(shí)時(shí)”完成的,由于它們基于已有的數(shù)據(jù)和規(guī)則,因此只會帶來相對較低的風(fēng)險(xiǎn)。

這家制造商可能擁有一個(gè)詳盡的數(shù)據(jù)庫,其中包含了每個(gè)零件的所有相關(guān)屬性。一種簡單而有效的方法是使用LLM為每個(gè)屬性自動(dòng)生成描述性文本。然而,在將這些自動(dòng)生成的內(nèi)容存儲到內(nèi)容管理系統(tǒng)之前,進(jìn)行人工審核是必不可少的步驟。這樣可以確保所有信息都是準(zhǔn)確無誤的,并且符合公司的標(biāo)準(zhǔn)和期望。通過這種方式,不僅可以提高內(nèi)容的準(zhǔn)確性,還能增強(qiáng)用戶對品牌的信任感。

prompt_template = PromptTemplate.from_template(
    """
    You are a content writer for a manufacturer of paper machines.
    Write a one-paragraph description of a {part_name}, which is one of the parts of a paper machine.
    Explain what the part is used for, and reasons that might need to replace the part.
    """
)
chain = prompt_template | model | parser
print(chain.invoke({
    "part_name": "xxx",
}))

該方法適用于內(nèi)靜態(tài)內(nèi)容。然而,如果是一家電子商務(wù)零售商,想創(chuàng)建個(gè)性化的推薦,內(nèi)容會更加動(dòng)態(tài),需要LLM更高的不確定性。就準(zhǔn)確性而言,風(fēng)險(xiǎn)承受能力仍然大致相同。

我們可以使用這種將預(yù)生成+機(jī)器學(xué)習(xí)相結(jié)合的方法。使用 LLM 進(jìn)行重新格式化和摘要,并預(yù)先生成內(nèi)容以確保準(zhǔn)確性,其中準(zhǔn)確性是至關(guān)重要的一些部分的內(nèi)容,而創(chuàng)造性的寫作是必需的其他方面。利用機(jī)器學(xué)習(xí)根據(jù)用戶上下文選擇合適的預(yù)生成模板,平衡個(gè)性化和風(fēng)險(xiǎn)管理。

另外, 模型微調(diào)也是面對這樣場景的一種技術(shù)選擇。微調(diào)的常見用例包括能夠創(chuàng)建品牌內(nèi)容、機(jī)密信息摘要和個(gè)性化內(nèi)容。

7. 確定性低且風(fēng)險(xiǎn)高的場景——安全護(hù)欄

面對需要全方位能力并伴隨多種風(fēng)險(xiǎn)(如品牌風(fēng)險(xiǎn)、機(jī)密信息泄露等)的挑戰(zhàn),建立安全護(hù)欄成為應(yīng)用層不可或缺的策略。這些護(hù)欄不僅涉及對輸入模型的數(shù)據(jù)進(jìn)行預(yù)處理,確保其安全性和適宜性,還包括對模型輸出的細(xì)致后期處理,以及對錯(cuò)誤條件的迭代提示詞優(yōu)化,從而形成一道堅(jiān)固的防線。

在確定性較低或要求高度創(chuàng)造力的任務(wù)中,高風(fēng)險(xiǎn)如影隨形。此時(shí),定制的安全護(hù)欄顯得尤為重要,它們能夠針對性地減輕包括品牌損害在內(nèi)的多重風(fēng)險(xiǎn),并強(qiáng)化數(shù)據(jù)安全性。這種定制化的防護(hù)措施對于滿足特定行業(yè)或應(yīng)用程序的獨(dú)特需求至關(guān)重要,確保在追求創(chuàng)新和效率的同時(shí),不失穩(wěn)健與安全。通過這樣的多層次安全策略,組織能夠在復(fù)雜多變的數(shù)字環(huán)境中保持競爭力,同時(shí)有效管理潛在威脅。

8.一句話小結(jié)

根據(jù)不同場景的確定性和風(fēng)險(xiǎn)程度,采取相應(yīng)的大模型應(yīng)用框架:低確定性低風(fēng)險(xiǎn)使用提示模版,中確定性低風(fēng)險(xiǎn)使用提示緩存,高確定性低風(fēng)險(xiǎn)采用SLM,中確定性中風(fēng)險(xiǎn)應(yīng)用響應(yīng)模版,高確定性中風(fēng)險(xiǎn)實(shí)施組裝式學(xué)習(xí),而低確定性高風(fēng)險(xiǎn)則設(shè)置安全護(hù)欄。當(dāng)然,這是探索性的粗糙分類,希望可以拋磚引玉!

責(zé)任編輯:武曉燕 來源: 喔家ArchiSelf
相關(guān)推薦

2024-07-15 08:31:19

2024-10-21 16:41:17

2025-03-06 07:28:31

DeepSeek大模型人工智能

2021-06-04 15:45:43

XR虛擬現(xiàn)實(shí)虛擬經(jīng)濟(jì)

2025-04-02 08:40:00

人工智能大模型AI

2024-11-11 15:11:23

2023-12-25 19:21:55

ocr人工智能

2022-10-27 16:01:41

AbilityStage模型FA模型

2023-02-02 09:37:59

消息隊(duì)列MQ

2025-03-24 10:55:18

2024-09-09 07:46:16

2024-12-30 13:13:35

2020-11-02 08:00:00

深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)人工智能

2024-03-15 15:27:13

華為

2025-04-02 01:25:00

2018-12-28 09:00:00

人工智能機(jī)器學(xué)習(xí)開源框架

2020-03-16 08:55:34

云架構(gòu)SLA云服務(wù)

2010-10-28 09:05:10

ASP.NET

2023-11-15 18:40:27

半監(jiān)督學(xué)習(xí)人工智能

2022-07-30 23:41:53

面向過程面向?qū)ο?/a>面向協(xié)議編程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號