AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁(yè) > 科技  > 軟件

LLM構(gòu)建AI應(yīng)用 —— 工程師如何使用黑盒工具

來(lái)源: 責(zé)編: 時(shí)間:2023-09-18 21:41:33 284觀看
導(dǎo)讀從2022年12月以來(lái),chatGPT 的橫空出世掀起了新一波的 AI 浪潮,熱度一直居高不下直到現(xiàn)在。半年時(shí)間里,從底層模型 API 到上層應(yīng)用的生態(tài)逐漸建立,經(jīng)過(guò)一輪輪迭代不斷完善創(chuàng)新。本文將結(jié)合開(kāi)源框架和應(yīng)用程序,從工程師的角

從2022年12月以來(lái),chatGPT 的橫空出世掀起了新一波的 AI 浪潮,熱度一直居高不下直到現(xiàn)在。半年時(shí)間里,從底層模型 API 到上層應(yīng)用的生態(tài)逐漸建立,經(jīng)過(guò)一輪輪迭代不斷完善創(chuàng)新。本文將結(jié)合開(kāi)源框架和應(yīng)用程序,從工程師的角度,與大家討論如何對(duì)大語(yǔ)言模型進(jìn)行封裝和應(yīng)用,并從工程層面解決現(xiàn)有問(wèn)題,搭建完整可商用的 AI 應(yīng)用程序。4o228資訊網(wǎng)——每日最新資訊28at.com

LLM,Large Language Model,即大語(yǔ)言模型。這個(gè)“大”是說(shuō)參數(shù)量大(通常數(shù)十億個(gè)權(quán)重或更多),是一種語(yǔ)言模型的概念。為了更深入理解,我們選用OpenAI 公司的 GPT 模型進(jìn)行討論。本文實(shí)驗(yàn)都在 GPT3.5 的模型上進(jìn)行(GPT4 太貴了)。4o228資訊網(wǎng)——每日最新資訊28at.com

目錄4o228資訊網(wǎng)——每日最新資訊28at.com


4o228資訊網(wǎng)——每日最新資訊28at.com


4o228資訊網(wǎng)——每日最新資訊28at.com


4o228資訊網(wǎng)——每日最新資訊28at.com

  • GPT 技能點(diǎn)分析
  • 如何克服 GPT 現(xiàn)有短板
  • 構(gòu)建完整 AI 應(yīng)用


4o228資訊網(wǎng)——每日最新資訊28at.com

SOHU4o228資訊網(wǎng)——每日最新資訊28at.com


4o228資訊網(wǎng)——每日最新資訊28at.com


4o228資訊網(wǎng)——每日最新資訊28at.com

一、GPT技能點(diǎn)分析4o228資訊網(wǎng)——每日最新資訊28at.com


4o228資訊網(wǎng)——每日最新資訊28at.com

開(kāi)始之前,先科普一下:GPT 是 OpenAI 訓(xùn)練的模型,chatGPT 是在 GPT 基礎(chǔ)上構(gòu)建的聊天應(yīng)用程序,有很大的區(qū)別。4o228資訊網(wǎng)——每日最新資訊28at.com

014o228資訊網(wǎng)——每日最新資訊28at.com

事實(shí)4o228資訊網(wǎng)——每日最新資訊28at.com


4o228資訊網(wǎng)——每日最新資訊28at.com

要對(duì) GPT 進(jìn)行應(yīng)用,首先要了解清楚 GPT 提供給我們什么。GPT 對(duì)外暴露的內(nèi)容非常簡(jiǎn)單清晰:一個(gè)聊天接口(https://platform.openai.com/docs/api-reference/chat/create)。當(dāng)然實(shí)際不止一個(gè)接口,還包含了一些指定場(chǎng)景,如文本補(bǔ)全、文本編輯。但是我們常用的就是最為通用的聊天接口。4o228資訊網(wǎng)——每日最新資訊28at.com

如下圖所示,接口入?yún)⒈靥顓?shù)包括應(yīng)用的模型名稱、消息列表。消息列表是一個(gè) jsonArray,可以包括歷史消息。模型區(qū)分了消息文本的角色,分為系統(tǒng)、用戶和 AI 三個(gè)角色。以便于區(qū)分歷史上下文和設(shè)定統(tǒng)一背景。還有一些其他可選字段:比如 temprature 可以控制返回的隨機(jī)性,0代表最不隨機(jī),如果完全相同的輸入,大概率給出完全相同的輸出。1代表最隨機(jī);stream 表示是否需要以流的形式返回,就像 chatGPT 逐個(gè)文本進(jìn)行返回;max_token 規(guī)定了單次請(qǐng)求的 token 數(shù)量限制,畢竟 token 就代表了成本。4o228資訊網(wǎng)——每日最新資訊28at.com

返回的結(jié)果也很簡(jiǎn)單:一句 AI 的回復(fù) content ,和本次對(duì)話的 token 消耗值。API 如下圖所示:4o228資訊網(wǎng)——每日最新資訊28at.com

圖片4o228資訊網(wǎng)——每日最新資訊28at.com


4o228資訊網(wǎng)——每日最新資訊28at.com

024o228資訊網(wǎng)——每日最新資訊28at.com

優(yōu)勢(shì)4o228資訊網(wǎng)——每日最新資訊28at.com

首先來(lái)看 GPT 的優(yōu)勢(shì)。作為開(kāi)發(fā)工程師,從應(yīng)用的視角看,總結(jié)出如下幾點(diǎn):4o228資訊網(wǎng)——每日最新資訊28at.com

  1. 無(wú)與倫比的自然語(yǔ)言掌握能力,在某些角度是超越了我們普通人的。相信大家或多或少領(lǐng)略過(guò),可以很強(qiáng)大地做文本生成、文本理解和文本翻譯等。
  2. 某些領(lǐng)域有推理和抽象思維的能力,尤其寫代碼方面。也通過(guò)了各種人類的考試,如SAT、美國(guó)醫(yī)學(xué)執(zhí)照考試、律師資格考試等。注意是某些領(lǐng)域,不完全。
  3. 他還有強(qiáng)大的泛化能力,在新的樣本上表現(xiàn)很好,支持了跨各個(gè)垂直領(lǐng)域的對(duì)話。
  4. GPT 有對(duì)人類的“理解能力”。心智理論(Theory of Mind, ToM)是指通過(guò)將心理狀態(tài)歸因于他人來(lái)理解他人的能力,或者更簡(jiǎn)單的說(shuō),是推測(cè)其他人心里在想什么的能力。GPT 在心智理論測(cè)試中表現(xiàn)出色。
  5. 多樣性和可控性,GPT 模型提供了一些參數(shù),增強(qiáng)它的多樣性,比如Temprature
    圖片

實(shí)際上,在人工智能領(lǐng)域是有很多分支的。比如推薦、模式識(shí)別、自然語(yǔ)言、計(jì)算機(jī)視覺(jué)等方向。但是 GPT 都能解決嗎?并不是。那么一個(gè)主要在自然語(yǔ)言領(lǐng)域的模型,為什么讓大家都有驚艷的感覺(jué)呢?我認(rèn)為歸功于以下兩點(diǎn):4o228資訊網(wǎng)——每日最新資訊28at.com

  1. 語(yǔ)言是人類與外部世界交互的主要方式,尤其是在信息時(shí)代。盡管 GPT 只是一個(gè)語(yǔ)言模型,但這個(gè)它在各種領(lǐng)域和任務(wù)上展現(xiàn)的能力,讓你覺(jué)得他真的“懂”。
  2. 原有用到人工智能的領(lǐng)域,大多需要專有的模型。每一種專有的模型之間都有比較大的鴻溝,成本很高,包括學(xué)習(xí)成本和訓(xùn)練成本。GPT 如此通用的模型加上如此方便的交互方式,給一些需要 AI 但是沒(méi)有能力搞AI的公司或個(gè)人,實(shí)現(xiàn)了技術(shù)的普惠。在很快的產(chǎn)品周期里,就可以將人工智能的進(jìn)步轉(zhuǎn)化為真正投入使用的實(shí)際產(chǎn)品。對(duì)于我們純開(kāi)發(fā)工程師來(lái)說(shuō),是“彎道超車”的重要機(jī)會(huì)。

多提一句,各種優(yōu)勢(shì)的來(lái)源,就是大語(yǔ)言模型的“涌現(xiàn)”能力。涌現(xiàn)可以用一句經(jīng)典的話來(lái)概括:量變引起質(zhì)變。很多方面的測(cè)試任務(wù)表明,模型量級(jí)在大于10的22次方之后,能力的增幅得到了大幅度的提升。(論文來(lái)源:Emergent Abilities of Large Language Models, https://arxiv.org/abs/2206.076824o228資訊網(wǎng)——每日最新資訊28at.com

圖片4o228資訊網(wǎng)——每日最新資訊28at.com

03短板4o228資訊網(wǎng)——每日最新資訊28at.com

了解了 GPT 的優(yōu)勢(shì),但是作為工程師在應(yīng)用落地過(guò)程中更要關(guān)心它不足的地方,并給出解決方案。我總結(jié)了幾個(gè)主要的點(diǎn),下面和大家一一分析。4o228資訊網(wǎng)——每日最新資訊28at.com

圖片4o228資訊網(wǎng)——每日最新資訊28at.com

對(duì)prompt要求較高4o228資訊網(wǎng)——每日最新資訊28at.com


4o228資訊網(wǎng)——每日最新資訊28at.com

GPT 對(duì) prompt 的要求體現(xiàn)在兩個(gè)方面:其一是對(duì)于 prompt 表達(dá)的敏感性,其二是對(duì) token 的數(shù)量限制。4o228資訊網(wǎng)——每日最新資訊28at.com

  1. 對(duì)于 prompt 表達(dá)的敏感性
    prompt 就是提示,也可以簡(jiǎn)單理解為向 GPT 輸入的問(wèn)題。GPT 對(duì)于提示的措辭很敏感。這意味著在與 GPT 進(jìn)行對(duì)話時(shí),用戶需要非常準(zhǔn)確地表達(dá)自己的意圖,并且對(duì) GPT 的思考范圍和返回方式作出明確的規(guī)定。否則 GPT 會(huì)天馬行空,無(wú)法滿足落地應(yīng)用確定性的要求。
  2. token 的數(shù)量限制
    對(duì)于 GPT 模型來(lái)說(shuō),有很強(qiáng)的 token 數(shù)量限制,輸入和輸出都會(huì)算 token 。GPT3.5 的 token 上限是4096,GPT4 是8000或32000,且根據(jù) token 數(shù)計(jì)費(fèi)。具體 token 的計(jì)算涉及到 NLP 領(lǐng)域的分詞相關(guān)算法,大家可以根據(jù) OpenAI 提供的工具進(jìn)行查詢:https://platform.openai.com/tokenizer。這個(gè)規(guī)定大大限制了我們和 GPT 交流的方式,比如上下文的篇幅限制。下圖是實(shí)驗(yàn)的時(shí)候 token 超出限制的報(bào)錯(cuò)。


4o228資訊網(wǎng)——每日最新資訊28at.com

缺乏規(guī)劃性和工作記憶4o228資訊網(wǎng)——每日最新資訊28at.com


4o228資訊網(wǎng)——每日最新資訊28at.com

首先解釋規(guī)劃性。我們應(yīng)該都知道貪心法和動(dòng)態(tài)規(guī)劃的區(qū)別,GPT 模型依賴于生成下一個(gè)詞的局部和貪心過(guò)程,沒(méi)有對(duì)任務(wù)或輸出進(jìn)行全局或深入的理解。因此,該模型擅長(zhǎng)產(chǎn)生流暢和連貫的文本,但在解決無(wú)法按照順序方式處理的復(fù)雜或創(chuàng)造性問(wèn)題方面存在局限性。4o228資訊網(wǎng)——每日最新資訊28at.com

比如生成回文詩(shī),嘗試了很多遍都無(wú)法正確生成:4o228資訊網(wǎng)——每日最新資訊28at.com

圖片4o228資訊網(wǎng)——每日最新資訊28at.com

再比如經(jīng)典的漢諾塔問(wèn)題,如果問(wèn) GPT 通用解決方案是什么,甚至寫代碼他都可以。但是如果具體提問(wèn)有三根柱子,五個(gè)盤子,如何挪動(dòng),很大概率會(huì)出錯(cuò)。4o228資訊網(wǎng)——每日最新資訊28at.com

再來(lái)看工作記憶,其實(shí)就類似人類打草稿,只不過(guò)人類的心算就是在心里打草稿。工作記憶關(guān)系到模型對(duì)于一個(gè)整體任務(wù)的拆解,和對(duì)于中間步驟的處理,所以影響到了復(fù)雜任務(wù)的處理結(jié)果。4o228資訊網(wǎng)——每日最新資訊28at.com

圖片這兩個(gè)短板其實(shí)和人很像,我們?nèi)四X很多情況下也是無(wú)法用動(dòng)態(tài)規(guī)劃的思路來(lái)解決問(wèn)題的。我們心算個(gè)位數(shù)的加減乘除還可以,但是三位數(shù)及以上的乘除法對(duì)一般人的心算難度同樣很大,出錯(cuò)率會(huì)變高。只不過(guò)我們的上限比現(xiàn)階段的 GPT 高一些。4o228資訊網(wǎng)——每日最新資訊28at.com

沒(méi)有記憶能力 : 短期記憶 + 長(zhǎng)期記憶4o228資訊網(wǎng)——每日最新資訊28at.com


4o228資訊網(wǎng)——每日最新資訊28at.com

注意這里的記憶和剛才所說(shuō)的工作記憶不是一回事兒。工作記憶有點(diǎn)類似于內(nèi)存或者草稿,是模型內(nèi)部處理問(wèn)題。而這里的記憶我們分為了短期記憶和長(zhǎng)期記憶。4o228資訊網(wǎng)——每日最新資訊28at.com

  • 短期記憶:因?yàn)?nbsp;GPT 模型是無(wú)狀態(tài)的,每次我們調(diào)用 OpenAI 的接口它都不知道前后的上下文。所以短期記憶是指單個(gè)用戶同一個(gè)會(huì)話的歷史上下文。下圖是直接調(diào)用 OpenAI 接口,并不能產(chǎn)生短期記憶。
    圖片
  • 長(zhǎng)期記憶:是指一些特定領(lǐng)域的常識(shí)和專業(yè)的知識(shí)等,需要長(zhǎng)期存儲(chǔ)在模型中,影響所有用戶的每一次會(huì)話請(qǐng)求。由于 GPT 是一個(gè)通用的大語(yǔ)言模型,所以并沒(méi)有深入地學(xué)習(xí)各個(gè)垂直領(lǐng)域的專業(yè)知識(shí),在應(yīng)對(duì)專業(yè)問(wèn)題的時(shí)候力不從心。可以從感性上理解為,這是模型的知識(shí)盲區(qū)。

無(wú)法與外界交互4o228資訊網(wǎng)——每日最新資訊28at.com


4o228資訊網(wǎng)——每日最新資訊28at.com

GPT 是一個(gè)語(yǔ)言模型,訓(xùn)練的數(shù)據(jù)知識(shí)截止到2021年。同時(shí)現(xiàn)階段他無(wú)法使用外部工具,不能建立與外部新知識(shí)的連接。如果問(wèn) GPT 最近發(fā)生的新聞,他肯定不知道。如果強(qiáng)制要求一定要返回,就算說(shuō)了回答也不一定正確,這很大程度上造成了對(duì)于事實(shí)性問(wèn)題的謬誤。4o228資訊網(wǎng)——每日最新資訊28at.com

圖片4o228資訊網(wǎng)——每日最新資訊28at.com

安全性合規(guī)性問(wèn)題4o228資訊網(wǎng)——每日最新資訊28at.com


4o228資訊網(wǎng)——每日最新資訊28at.com

人是會(huì)被接收到的信息影響的,所以作為涉及到自然語(yǔ)言領(lǐng)域的應(yīng)用,一定要考慮安全性和合規(guī)性的問(wèn)題。對(duì)于 AI 應(yīng)用來(lái)說(shuō)分為兩個(gè)方面:一方面是對(duì)輸入的判定,非法或不合規(guī)的輸入不應(yīng)該進(jìn)行響應(yīng)。另一個(gè)方面是對(duì)輸出的判定,雖然 OpenAI 已經(jīng)對(duì) GPT 模型本身做了很多安全性的管控,但是畢竟是機(jī)器自動(dòng)生成的,包括國(guó)內(nèi)外規(guī)定不盡相同,所以需要對(duì)輸出進(jìn)行合法合規(guī)的校驗(yàn)。4o228資訊網(wǎng)——每日最新資訊28at.com

非多模態(tài)、不可解釋等問(wèn)題4o228資訊網(wǎng)——每日最新資訊28at.com


4o228資訊網(wǎng)——每日最新資訊28at.com

GPT 起碼 GPT3.5 目前還是一個(gè)專注于自然領(lǐng)域的模型,對(duì)多模態(tài)的信息并沒(méi)有很好的支持。同時(shí),GPT 模型對(duì)于問(wèn)題解決和對(duì)話輸出的內(nèi)在邏輯并不可解釋,還處于黑盒狀態(tài),這對(duì)應(yīng)用者控制 GPT 有一定阻礙。4o228資訊網(wǎng)——每日最新資訊28at.com

04結(jié)論4o228資訊網(wǎng)——每日最新資訊28at.com

總體來(lái)說(shuō),GPT 模型在許多任務(wù)中的能力,是可以與人類相媲美的。尤其是自然語(yǔ)言方面,可以說(shuō)是 unparalleled。但是也存在上述各種實(shí)際問(wèn)題。但是在現(xiàn)在的水平上,已經(jīng)可以作為部分 AI 應(yīng)用的底層依賴。我們的使命就是通過(guò)工程的手段盡可能解決上述各種問(wèn)題。4o228資訊網(wǎng)——每日最新資訊28at.com

二、如何克服GPT現(xiàn)有短板4o228資訊網(wǎng)——每日最新資訊28at.com


4o228資訊網(wǎng)——每日最新資訊28at.com

針對(duì)第一章節(jié)所說(shuō)的問(wèn)題,我們從工程的角度盡可能地提出解決方案,并結(jié)合 langChain 框架現(xiàn)有的功能,展示作為黑盒模型的封裝,應(yīng)該從哪些方向著手。4o228資訊網(wǎng)——每日最新資訊28at.com

014o228資訊網(wǎng)——每日最新資訊28at.com

對(duì)prompt要求較高的問(wèn)題 —— 系統(tǒng)性prompt工程4o228資訊網(wǎng)——每日最新資訊28at.com

首先給出一個(gè)錯(cuò)誤的 prompt 示例:4o228資訊網(wǎng)——每日最新資訊28at.com

圖片4o228資訊網(wǎng)——每日最新資訊28at.com

這樣一句簡(jiǎn)單的提示,并沒(méi)有對(duì) GPT 的思考和返回做任何約束,具有極大的不確定性,對(duì)于落地的應(yīng)用程序是不可接受的。這句話可以作為 chatGPT 的用戶輸入,但是 chatGPT 也已經(jīng)是成熟的產(chǎn)品,用戶的輸入一定不是最終與 OpenAI 交互的 prompt 。4o228資訊網(wǎng)——每日最新資訊28at.com

筆者認(rèn)為,系統(tǒng)性的 prompt 工程要注意以下三點(diǎn):4o228資訊網(wǎng)——每日最新資訊28at.com

  1. 必須有清晰明確的指令。
    接下來(lái)給出在實(shí)驗(yàn)中用到的真實(shí) prompt :
    圖片
    如上圖所示,標(biāo)出了對(duì)應(yīng)的注意點(diǎn),主要有以下幾點(diǎn):

  • 要區(qū)分消息角色,system /assistant / user。在 system 中給出整體背景和限定,其他角色可以加入上下文;
  • 對(duì)輸入輸出格式進(jìn)行結(jié)構(gòu)化,嚴(yán)格限定,便于 GPT 區(qū)分,也便于前置輸入和后續(xù)提取模型返回值并向用戶展示;
  • 對(duì)任務(wù)的具體內(nèi)容進(jìn)行清晰詳細(xì)的表述;
  • 如果必要,給出特殊情況的處理方案;
  • 如果必要,限定模型思考的步驟和范圍;
  • 給出適當(dāng)示例;
  • 盡可能用英文,因?yàn)?nbsp;GPT 對(duì)英文的理解能力還是強(qiáng)于中文的。
  1. 要注意 token 的限制,包括最大數(shù)量限制和成本控制。
    token 數(shù)量限制是作為工程必須考慮的問(wèn)題,甚至是需要優(yōu)先考慮的問(wèn)題,因?yàn)樯婕暗疆a(chǎn)品的成本。

  2. 不斷調(diào)整 prompt ,并持久化為固定資產(chǎn)。
    實(shí)際開(kāi)發(fā)工程中,不可能一次就確定完美的 prompt ,或者說(shuō)沒(méi)有完美的 prompt 。只有在不斷試錯(cuò)的過(guò)程中不斷調(diào)整,并通過(guò)各種測(cè)試反饋,形成“極優(yōu)解”而不是“最優(yōu)解”。確定 prompt 后,即成為這個(gè)應(yīng)用的固定資產(chǎn),和應(yīng)用的代碼一樣,是核心價(jià)值與競(jìng)爭(zhēng)力所在。

下面挑幾個(gè)封裝來(lái)看,在系統(tǒng)性 prompt 工程方面, langChain 做了哪些努力。更詳細(xì)的請(qǐng)見(jiàn):https://python.langchain.com/docs/modules/model_io/prompts/4o228資訊網(wǎng)——每日最新資訊28at.com

  1. langChain 封裝了 prompt 的生成方式,封裝為 PromptTemplate
  1. 實(shí)現(xiàn)了參數(shù)的解析,可以手動(dòng)指定參數(shù),也可以自動(dòng)識(shí)別 {} 提取參數(shù)
    圖片
    圖片
  2. 區(qū)分了不同的角色,分為 SystemMessagePromptTemplate、 AIMessagePromptTemplate、 HumanMessagePromptTemplate,都屬于 MessagePromptTemplate
    圖片
  3. 多個(gè) MessagePromptTemplate 可以封裝成為 ChatMessagePromptTemplate ,其中包含了多輪 AI 和 Human 的對(duì)話歷史,也是我們最常用的 PromptTemplate
  1. langChain 封裝了 prompt 中示例的輸入,封裝為 ExampleSelector
  2. 可以自定義 ExampleSelector ,并添加多個(gè)示例4o228資訊網(wǎng)——每日最新資訊28at.com

  3. 可以根據(jù) token 長(zhǎng)度的限制,自適應(yīng)示例個(gè)數(shù)和選擇示例4o228資訊網(wǎng)——每日最新資訊28at.com

    如下圖,創(chuàng)建了 LengthBasedExampleSelector ,并規(guī)定最大長(zhǎng)度是25。如果輸入很簡(jiǎn)短的“big”,則自動(dòng)附加了很多個(gè)示例。如果輸入一個(gè)長(zhǎng)字符串,則只選擇了一個(gè)示例加入 prompt 。4o228資訊網(wǎng)——每日最新資訊28at.com

    圖片4o228資訊網(wǎng)——每日最新資訊28at.com

    圖片4o228資訊網(wǎng)——每日最新資訊28at.com

    圖片4o228資訊網(wǎng)——每日最新資訊28at.com

  4. 可以根據(jù)本輪輸入內(nèi)容的相似性匹配,在 prompt 中添加示例4o228資訊網(wǎng)——每日最新資訊28at.com

    如下圖所示,在同樣的示例集合中,輸入“worried”一詞 SemanticSimilarityExampleSelector  給出的是 happy 和 sad 作為示例,因?yàn)槎紝儆谝环N情緒。4o228資訊網(wǎng)——每日最新資訊28at.com

    具體的實(shí)現(xiàn)方式,是在 SemanticSimilarityExampleSelector 中傳入了用于生成測(cè)量語(yǔ)義相似性的文本嵌入,和用于存儲(chǔ)文本嵌入并進(jìn)行相似性搜索的向量數(shù)據(jù)庫(kù)。4o228資訊網(wǎng)——每日最新資訊28at.com

    向量數(shù)據(jù)庫(kù)的原理,簡(jiǎn)單來(lái)講。文本添加的時(shí)候,通過(guò)分詞,再通過(guò)特定的神經(jīng)網(wǎng)絡(luò),將文本轉(zhuǎn)化為一個(gè)維數(shù)很高的向量。搜索的時(shí)候經(jīng)過(guò)同樣處理,通過(guò)比較目標(biāo)詞轉(zhuǎn)換成的向量與已有向量之間的余弦距離等計(jì)算方式,得出最為相近的文本。這是省略了很多細(xì)節(jié)的版本,由于不是本文主題,就不過(guò)多介紹。但是向量數(shù)據(jù)庫(kù)對(duì) LLM 的助力是極大的。4o228資訊網(wǎng)——每日最新資訊28at.com

    圖片4o228資訊網(wǎng)——每日最新資訊28at.com

024o228資訊網(wǎng)——每日最新資訊28at.com

缺乏規(guī)劃性和工作記憶的問(wèn)題 —— 思維鏈模式4o228資訊網(wǎng)——每日最新資訊28at.com

思維鏈:Chain of Thought,簡(jiǎn)稱CoT。是一種推理模式,就是主動(dòng)要求 GPT 去思考,把一個(gè)復(fù)雜的問(wèn)題用推理的方法拆分成多個(gè)。實(shí)踐上就是我們就是要告訴 GPT,把任務(wù)分解。如果模型不能主動(dòng)分解為正確的步驟,就需要人幫他把步驟顯示地加到 prompt 里去。4o228資訊網(wǎng)——每日最新資訊28at.com

比如下圖的示例,提問(wèn)有多少個(gè)質(zhì)數(shù),他會(huì)先把所有質(zhì)數(shù)列出來(lái),再進(jìn)行計(jì)數(shù)。而且整個(gè)過(guò)程是顯式地打印出來(lái)的,這會(huì)比直接給出答案正確率高很多。4o228資訊網(wǎng)——每日最新資訊28at.com

圖片4o228資訊網(wǎng)——每日最新資訊28at.com

再比如下圖,提問(wèn)哪種更快,他會(huì)先計(jì)算出總數(shù)再進(jìn)行比較。4o228資訊網(wǎng)——每日最新資訊28at.com

圖片4o228資訊網(wǎng)——每日最新資訊28at.com

思維鏈模式是大語(yǔ)言模型應(yīng)用的一大利器,大大增加了返回的可靠性。4o228資訊網(wǎng)——每日最新資訊28at.com

034o228資訊網(wǎng)——每日最新資訊28at.com

沒(méi)有短期記憶和長(zhǎng)期記憶的問(wèn)題 —— 外掛記憶4o228資訊網(wǎng)——每日最新資訊28at.com

對(duì)于沒(méi)有記憶能力這個(gè)問(wèn)題來(lái)說(shuō),我們可以給它外掛記憶。4o228資訊網(wǎng)——每日最新資訊28at.com

  •  短期記憶
    我們可以用內(nèi)存或者數(shù)據(jù)庫(kù),將一段會(huì)話中的歷史內(nèi)容放到 prompt 里。這樣回答最新的問(wèn)題的時(shí)候就知道上下文了。有很多種方式,比如多輪記憶都放進(jìn)去;比如使用 FIFO 避免 token 限制;再比如進(jìn)行摘要提取,提取的方法有很多,讓 GPT 自己提取就不錯(cuò);同樣也可以做基于向量的相似度優(yōu)先記憶。圖示如下:
    圖片
  • 長(zhǎng)期記憶
    最好的方式是對(duì)模型進(jìn)行微調(diào)訓(xùn)練,讓他真正學(xué)習(xí)到我們想讓他了解的數(shù)據(jù)或知識(shí)。是有幾個(gè)問(wèn)題,首先是數(shù)據(jù)量和數(shù)據(jù)質(zhì)量的要求都很高,其次是價(jià)格太貴,訓(xùn)練和調(diào)用都要根據(jù) token 算錢,還比正常的調(diào)用要貴。而且 OpenAI 現(xiàn)在只開(kāi)放了下圖這四種模型:
    圖片

其他還有辦法嗎?向量數(shù)據(jù)庫(kù)又登場(chǎng)了。可以將專業(yè)的數(shù)據(jù)存儲(chǔ)在向量數(shù)據(jù)庫(kù)中,在生成最終的 prompt 之前,先從向量數(shù)據(jù)庫(kù)找出與原本問(wèn)題最相近的數(shù)據(jù),拼接成 prompt 一起投喂給 GPT ,模型會(huì)根據(jù) prompt 中包含的信息,給出與私有數(shù)據(jù)或?qū)I(yè)知識(shí)更貼近的回答。這是工程角度可以解決的最簡(jiǎn)便的方法,類似一個(gè)“乞丐版”的小模型。4o228資訊網(wǎng)——每日最新資訊28at.com

在基于 LLM 的應(yīng)用中,向量過(guò)于重要,所以最近做向量數(shù)據(jù)庫(kù)的項(xiàng)目或公司都有很多資金在投。4o228資訊網(wǎng)——每日最新資訊28at.com

044o228資訊網(wǎng)——每日最新資訊28at.com

無(wú)法與外界交互的問(wèn)題 —— 代理擴(kuò)展工具4o228資訊網(wǎng)——每日最新資訊28at.com

與外界交互的問(wèn)題是最容易想到解決方案的。和計(jì)算機(jī)相關(guān)的事情都可以通過(guò)代碼和網(wǎng)絡(luò)來(lái)完成,只要 GPT 生成命令,我們就可以使用工具幫助它控制。可以進(jìn)行谷歌搜索,可以與 MySQL 等各種數(shù)據(jù)庫(kù)進(jìn)行操作,可以讀寫文件和操作命令行等。4o228資訊網(wǎng)——每日最新資訊28at.com

可以和外界交互之后,GPT 的能力得到了一個(gè)非常大的提升。以前很多解決不了的問(wèn)題,現(xiàn)在都可以解決了,所以我們又有了新的處理問(wèn)題的范式:ReAct 。注意,這個(gè)和前端的 react 沒(méi)有任何關(guān)系,意思是 Reason + Action。每一次動(dòng)作要先思考,形成 Thought ,再行動(dòng)進(jìn)行 Action,最后觀察形成 Observation。上一輪的觀察結(jié)果再去支持下一輪的思考,直至結(jié)束。4o228資訊網(wǎng)——每日最新資訊28at.com

ReAct 的優(yōu)勢(shì)有兩點(diǎn):4o228資訊網(wǎng)——每日最新資訊28at.com

  • ReAct 提示語(yǔ)言模型以交錯(cuò)的方式產(chǎn)生與任務(wù)相關(guān)的語(yǔ)言推理軌跡和動(dòng)作,這使得模型能夠動(dòng)作態(tài)推理,以創(chuàng)建、維護(hù)和調(diào)整動(dòng)作的高級(jí)計(jì)劃(推理到動(dòng)作),同時(shí)也與外部環(huán)境互動(dòng),將額外信息納入推理(動(dòng)作到推理)。總結(jié)成一句話就像:“學(xué)而不思則罔,思而不學(xué)則殆”。
  • 除了普遍適用性和性能提升外,推理和動(dòng)作的結(jié)合也有助于提高模型的可解釋性、可信度和所有領(lǐng)域的可診斷性,因?yàn)槿祟惪梢院苋菀椎貐^(qū)分來(lái)自模型內(nèi)部知識(shí)和外部環(huán)境的信息,以及檢查推理軌跡以了解模型動(dòng)作的決策基礎(chǔ)。在過(guò)程中也可以對(duì)模型的想法進(jìn)行糾偏。

圖片4o228資訊網(wǎng)——每日最新資訊28at.com

有研究人員對(duì) ReAct 和 CoT 兩種范式進(jìn)行了對(duì)比。總體而言,最好的方法是 ReAct 和 CoT 的結(jié)合,允許在推理過(guò)程中使用內(nèi)部知識(shí)和外部獲得的信息。通過(guò)實(shí)驗(yàn)得出了各種模式下的有效性分析:4o228資訊網(wǎng)——每日最新資訊28at.com

圖片4o228資訊網(wǎng)——每日最新資訊28at.com

ReAct 和 CoT 的區(qū)別是什么呢?基于以上研究,主要表現(xiàn)為以下幾點(diǎn):4o228資訊網(wǎng)——每日最新資訊28at.com

  • 幻覺(jué)是 CoT 的一個(gè)嚴(yán)重問(wèn)題,即錯(cuò)誤步驟和結(jié)論。相比之下, ReAct 的問(wèn)題解決軌跡更接地氣,以事實(shí)為導(dǎo)向,并且值得信賴,這要?dú)w功于外部知識(shí)庫(kù)的訪問(wèn)。
  • 雖然交錯(cuò)推理、動(dòng)作和觀察步驟提高了 ReAct 的基礎(chǔ)性和可信度,但這樣的結(jié)構(gòu)約束也降低了其制定推理步驟的靈活性,導(dǎo)致推理錯(cuò)誤率高于 CoT 。有一種 ReAct 特有的頻繁錯(cuò)誤模式,即模型重復(fù)生成之前的想法和動(dòng)作,我們將其歸為 "推理錯(cuò)誤 "的一部分,因?yàn)槟P臀茨芡评淼胶线m的下一步動(dòng)作并跳出循環(huán)。
  • 對(duì)于 ReAct 來(lái)說(shuō),通過(guò)搜索獲得有效信息是至關(guān)重要的。非信息性搜索,占錯(cuò)誤案例的23%,這使得模型推理脫軌,使其很難恢復(fù)和重新表述思想。這也許是事實(shí)性和靈活性之間的預(yù)期權(quán)衡,促使我們使用結(jié)合兩種方法的策略。

054o228資訊網(wǎng)——每日最新資訊28at.com

安全性合規(guī)性問(wèn)題 —— 各階段校驗(yàn)4o228資訊網(wǎng)——每日最新資訊28at.com

對(duì)于合規(guī)性問(wèn)題,我們可以從三個(gè)步驟考慮。4o228資訊網(wǎng)——每日最新資訊28at.com

  1. OpenAI 本身提供了用于校驗(yàn)的 moderation 接口,而且此接口是免費(fèi)的,不消耗 token 。如下圖,輸入“I want to kill them”,返回?cái)?shù)據(jù)中 flagged 為 true ,表示這個(gè)輸入觸發(fā)了安全規(guī)則。 category_score 中給出了各個(gè)方面的詳細(xì)打分,violence 最高,表示這個(gè)輸入有很強(qiáng)的暴力傾向。
    圖片
  2. 由于國(guó)內(nèi)外規(guī)定不盡相同,對(duì)于國(guó)內(nèi)的合規(guī)性要求,我們要經(jīng)過(guò)嚴(yán)格的國(guó)內(nèi)權(quán)威平臺(tái)校驗(yàn)。
  3. 同時(shí),我們也可以使用 GPT 本身的文本理解能力進(jìn)行其他方面的判別,如情感傾向等。

064o228資訊網(wǎng)——每日最新資訊28at.com

其他通用工程問(wèn)題 —— 工程實(shí)踐解決4o228資訊網(wǎng)——每日最新資訊28at.com

實(shí)際應(yīng)用落地過(guò)程中,還會(huì)有很多其他的工程實(shí)踐問(wèn)題。比如并發(fā)、不同模塊之間連接、各個(gè)環(huán)節(jié)的 mock 、各種測(cè)試驗(yàn)證等,像 langChain 這樣的框架都給出了解決方案。4o228資訊網(wǎng)——每日最新資訊28at.com

這里提一個(gè)比較有意思的:緩存問(wèn)題。因?yàn)?nbsp;GPT 響應(yīng)時(shí)間比較長(zhǎng),而且如果相同問(wèn)題每次都請(qǐng)求, token 消耗也比較貴,所以比如智能客服等場(chǎng)景,建立緩存很有必要。但都是自然語(yǔ)言,比如用戶說(shuō)“這個(gè)房子怎么樣”和“這個(gè)樓盤怎么樣”,實(shí)際是很相近的問(wèn)題,但是通過(guò) equals 等判斷是不能命中的。怎么建立自然語(yǔ)言的映射呢?向量!4o228資訊網(wǎng)——每日最新資訊28at.com

074o228資訊網(wǎng)——每日最新資訊28at.com

GPT發(fā)展方向及應(yīng)用工程調(diào)整4o228資訊網(wǎng)——每日最新資訊28at.com

GPT 等模型是在不斷發(fā)展的,面對(duì)他的發(fā)展方向,我們需要不斷調(diào)整。比如, token 數(shù)量一定是會(huì)放寬的,而且速度會(huì)非常快;對(duì)于多模態(tài)的支持非常關(guān)鍵,科學(xué)家們正在不斷努力;外部工具使用的支持,模型本身也在做,而且在 GPT4 上已經(jīng)有部分可以應(yīng)用了。還有很多方面,在模型本身做了這些之后,上述的一些策略就會(huì)失去作用,也需要針對(duì)新的特性去進(jìn)行加強(qiáng)。當(dāng)然不能說(shuō)因?yàn)闀?huì)失效所以現(xiàn)在就不做了,工程師就是要在現(xiàn)有工具的基礎(chǔ)上爭(zhēng)分奪秒地為應(yīng)用到業(yè)務(wù)落地而服務(wù)。4o228資訊網(wǎng)——每日最新資訊28at.com

三、構(gòu)建完整AI應(yīng)用4o228資訊網(wǎng)——每日最新資訊28at.com


4o228資訊網(wǎng)——每日最新資訊28at.com

014o228資訊網(wǎng)——每日最新資訊28at.com

我們應(yīng)該用GPT來(lái)做什么4o228資訊網(wǎng)——每日最新資訊28at.com

基于剛才的分析和工程優(yōu)化,筆者得出一個(gè)思考:GPT 是“人”,不是機(jī)器。這涉及到一個(gè)很關(guān)鍵的問(wèn)題——我們應(yīng)該用 GPT 來(lái)做什么?4o228資訊網(wǎng)——每日最新資訊28at.com

  • 首先,它擅長(zhǎng)做自然語(yǔ)言相關(guān)的 AI 應(yīng)用;
  • 其次,它可以做某些人類做的推理的事情;
  • 但是,它難以做人類做的過(guò)于復(fù)雜和創(chuàng)造性的事情;
  • 最后,不應(yīng)該讓 GPT 做機(jī)器做的事情。什么叫機(jī)器做的事情?機(jī)器的執(zhí)行是嚴(yán)密的,是不能出錯(cuò)的。如果出錯(cuò),大概率是寫代碼的人的錯(cuò)誤。但是人是可能出錯(cuò)的, AI 也是可能出錯(cuò)的。舉個(gè)例子:一個(gè)公司想做數(shù)據(jù)分析,但是沒(méi)有 BI 工程師。如果他想向 GPT 尋求幫助,是要直接把所有數(shù)據(jù)塞給 GPT 然后問(wèn)他具體的問(wèn)題嗎。當(dāng)然不是,這樣做 token 數(shù)量會(huì)爆炸性增長(zhǎng),且放不下所有數(shù)據(jù)。何況 GPT 的計(jì)算能力本來(lái)就很差。正確的做法是將數(shù)據(jù)庫(kù)的表結(jié)構(gòu)輸入給 GPT ,用一些清晰明了的示例表達(dá)清楚訴求,然后讓 GPT 寫好 SQL ,在自己的數(shù)據(jù)庫(kù)服務(wù)器中運(yùn)行。這里的數(shù)據(jù)庫(kù)就是機(jī)器,但寫 SQL 的是 GPT (也就是應(yīng)該人做的工作)。

024o228資訊網(wǎng)——每日最新資訊28at.com

構(gòu)建一個(gè)AI應(yīng)用的全流程4o228資訊網(wǎng)——每日最新資訊28at.com

最后整理一下,構(gòu)建一個(gè) AI 應(yīng)用的全流程。其實(shí)整個(gè)過(guò)程都圍繞著提高確定性。4o228資訊網(wǎng)——每日最新資訊28at.com

  1. UI 層:用戶界面層,接收輸入返回輸出。
  2. 會(huì)話處理層:包括對(duì)用戶輸入的格式化解析、對(duì)話管理等功能。如果要用向量數(shù)據(jù)庫(kù)做緩存,就應(yīng)該在這一層。
  3. 數(shù)據(jù)審計(jì)層:負(fù)責(zé)對(duì)用戶數(shù)據(jù)進(jìn)行審計(jì)和保護(hù),同時(shí)對(duì)出入的自然語(yǔ)言的安全性和合規(guī)性進(jìn)行評(píng)估。注意,不僅要評(píng)估用戶的輸入,也要評(píng)估模型的輸出。
  4. 操作編排層:這個(gè)層級(jí)可以管理和協(xié)調(diào)多個(gè)語(yǔ)言模型、工具。比如 langChain 對(duì)外部工具的使用等。
  5. LLM 增強(qiáng)層:這個(gè)層級(jí)可以對(duì)語(yǔ)言模型進(jìn)行額外的優(yōu)化和增強(qiáng),比如長(zhǎng)期記憶、短期記憶相關(guān)的各種操作。
  6. LLM 層:最底層是語(yǔ)言模型本身,其實(shí)就是對(duì)OpenAI 的接口請(qǐng)求。

最后總結(jié)下來(lái),在一個(gè)完整應(yīng)用中,GPT 這個(gè)黑盒模型就只是右下角的底層依賴,其他全是工程相關(guān)的設(shè)計(jì)和實(shí)現(xiàn)。4o228資訊網(wǎng)——每日最新資訊28at.com

圖片4o228資訊網(wǎng)——每日最新資訊28at.com

034o228資訊網(wǎng)——每日最新資訊28at.com

現(xiàn)階段的生態(tài)4o228資訊網(wǎng)——每日最新資訊28at.com

圖片4o228資訊網(wǎng)——每日最新資訊28at.com

如上圖,雖然 GPT3.5 橫空出世并沒(méi)有多久,但是已經(jīng)形成了較為完善的生態(tài)體系。最底層模型層,是黑盒模型的 API 調(diào)用。上層框架層,各個(gè)主流語(yǔ)言都有類似 langChain 的封裝。再上層應(yīng)用層,搭建了各個(gè)實(shí)際需求場(chǎng)景下的應(yīng)用程序。我們做 AI 應(yīng)用時(shí),可以直接依賴 OpenAI 的模型接口,也可以在框架的基礎(chǔ)上方便地操作,甚至在類似 autoGPT 這種通用應(yīng)用基礎(chǔ)上搭建。筆者推薦基于 langChain 等框架,既屏蔽了底層通用的工程細(xì)節(jié),相對(duì)也有更高的靈活度。4o228資訊網(wǎng)——每日最新資訊28at.com

044o228資訊網(wǎng)——每日最新資訊28at.com

對(duì)待GPT的正確態(tài)度4o228資訊網(wǎng)——每日最新資訊28at.com

最后呢,想明確我們對(duì)待 GPT 等大語(yǔ)言模型的態(tài)度:4o228資訊網(wǎng)——每日最新資訊28at.com

  • 不夸大 GPT 作為一種 AI 模型的效果
  • 更不輕視 GPT 幫助 AI 工程應(yīng)用的能力

祝作為工程師的大家都能產(chǎn)出優(yōu)秀的 AI 應(yīng)用。4o228資訊網(wǎng)——每日最新資訊28at.com


4o228資訊網(wǎng)——每日最新資訊28at.com

參考資料4o228資訊網(wǎng)——每日最新資訊28at.com

  1. Emergent Abilities of Large Language Models(https://arxiv.org/abs/2206.07682)
  2. Sparks of Artificial General Intelligence: Early experiments with GPT-4(https://arxiv.org/abs/2303.12712)
  3. LLM 應(yīng)用參考架構(gòu):ArchGuard Co-mate 實(shí)踐示例(https://www.phodal.com/blog/llm-reference-architecture/)
  4. ChatGPT 實(shí)用指南(ChatGPT 實(shí)用指南(二))

本文鏈接:http://www.tebozhan.com/showinfo-26-10460-0.htmlLLM構(gòu)建AI應(yīng)用 —— 工程師如何使用黑盒工具

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 深度!HashMap的底層數(shù)據(jù)結(jié)構(gòu)

下一篇: 我們一起聊聊.NET 8 RC1

標(biāo)簽:
  • 熱門焦點(diǎn)
Top