王炸!微軟發(fā)布 Visual ChatGPT:視覺模型加持 ChatGPT 實(shí)現(xiàn)絲滑聊天
“
閱讀本文大概需要 8 分鐘。

文|煉丹學(xué)徒
近來,AI 領(lǐng)域迎來各個(gè)領(lǐng)域的大突破,ChatGPT 展現(xiàn)出強(qiáng)大的語言問答能力和推理能力,然而作為一個(gè)自然語言模型,它無法處理視覺信息。
與此同時(shí),視覺基礎(chǔ)模型如 Visual Transformer 或者 Stable Diffusion 等,則展現(xiàn)出強(qiáng)大的視覺理解和生成能力。
Visual Transformer 將 ChatGPT 作為邏輯處理中心,集成若干視覺基礎(chǔ)模型,從而達(dá)到如下效果:
- 視覺聊天系統(tǒng) Visual ChatGPT 可以接收和發(fā)送文本和圖像
- 提供復(fù)雜的視覺問答,或者視覺編輯指令,可以通過多步推理調(diào)用工具來解決復(fù)雜視覺任務(wù)
- 可以提供反饋,總結(jié)答案,主動(dòng)詢問模糊的指令等
這個(gè)工作開啟了 ChatGPT 借助視覺基礎(chǔ)模型作為工具,進(jìn)行視覺任務(wù)處理的研究方向。
論文鏈接:?
https://arxiv.org/abs/2303.04671
開源代碼:?
https://github.com/microsoft/visual-chatgpt
論文作者:?
Chenfei Wu, Shengming Yin, Weizhen Qi, Xiaodong Wang, Zecheng Tang, Nan Duan
機(jī)構(gòu):?微軟亞洲研究院
模型效果


工作流程

記對(duì)話?,第 i 輪的回復(fù)?,是通過若干次思考調(diào)用工具的結(jié)果來最終總結(jié)出來的。我們記第 i 輪對(duì)話中,第 j 次的工具調(diào)用中間答案記作??,那么
其中,?是全局原則,是各個(gè)視覺基礎(chǔ)模型,是歷史會(huì)話記憶,?是這一輪的用戶輸入,是這輪對(duì)話里思考和的歷史,?是中間答案,是 prompt manager,用于把上面各個(gè)功能轉(zhuǎn)化成合理的文本 prompt,從而可以交給 ChatGPT 進(jìn)行處理。以下圖為例進(jìn)行講解:

對(duì)于用戶輸入,添加于全局原則 prompt,工具描述 prompt,歷史會(huì)話 prompt 之后,送給 ChatGPT 進(jìn)行邏輯推理(Use VFM?)得到推理結(jié)果?(就是這一次得到的 GPT 文本輸出)。經(jīng)過正則匹配進(jìn)行分析,如果工具調(diào)用結(jié)束,則直接提取總結(jié)輸出作為最終回復(fù),如果是需要繼續(xù)調(diào)用工具,則將提取到的工具名稱、工作參數(shù),輸入視覺基礎(chǔ)模型?,從而得到,置于思考?xì)v史??中,進(jìn)行下一輪推理。或者說喂給 GPT 的內(nèi)容為:
第一次問答里,第一個(gè)API:?
第一次問答里,第二個(gè)API:?
第一次問答里,第三個(gè)API:?
第二次問答里,第一個(gè)API:?
第二次問答里,第二個(gè)API:
得到 GPT 的輸出后,正則匹配進(jìn)行工具的判斷和解析,最終決定流程。API ?調(diào)用歷史在每次回答后清空,其中只有最后總結(jié)性的回復(fù)被記錄進(jìn)入對(duì)話歷史?
細(xì)節(jié)描述

: 系統(tǒng)原則的提示符,“Visual ChatGPT 是一個(gè)可以處理廣泛語言和視覺任務(wù)的助手,xxxxxx”。在這個(gè) prompt 的部分,以下內(nèi)容被強(qiáng)調(diào):Visual ChatGPT 的角色,可以訪問且需要盡可能使用視覺基礎(chǔ)模型,要對(duì)文件名稱非常敏感不可以捏造,可以且必須遵循嚴(yán)格的 Chain-of-Thought 思考鏈的格式進(jìn)行思考(不然正則匹配不出來是否使用函數(shù)和函數(shù)名稱參數(shù)),可靠性等描述。
: 對(duì)每個(gè)視覺基礎(chǔ)模型的描述,包含工具名稱,使用方法,輸入輸出格式,實(shí)例
: 用戶的輸入會(huì)被改寫,用來理解圖片和強(qiáng)制GPT思考
:對(duì)輸出的處理,鏈?zhǔn)降奈募?imaga/{Name}_{Operation}_{Prev_Name}_{Org_Name}.png",強(qiáng)制修改 GPT 內(nèi)容,讓 GPT 降低思考難度,在指代不清時(shí)二次詢問用戶等。
Case Study
論文分析了在各個(gè)模塊,如果 prompt manager 設(shè)計(jì)不到位,會(huì)各自出現(xiàn)什么問題:

在??中,如果不強(qiáng)調(diào)對(duì)圖片文件名的敏感,可能會(huì)發(fā)生指代錯(cuò)誤。如果不強(qiáng)調(diào)思考鏈的格式嚴(yán)格,可能正則匹配匹不上。如果不強(qiáng)調(diào)可靠性,不要基于文本上下文腦補(bǔ),可能會(huì)出現(xiàn)不讀圖片直接回答的情況。如果不強(qiáng)調(diào)可以鏈?zhǔn)绞褂霉ぞ撸瑒t可能出現(xiàn)一口吃個(gè)大胖子而不能一步一步思考的情況。

類似的,對(duì)于工具包的描述,也應(yīng)該對(duì)名稱、功能、輸入輸出格式進(jìn)行嚴(yán)格的設(shè)計(jì)。其中,for example 進(jìn)行舉例影響不大,只要前面描述足夠清楚,GPT 可以理解,可以刪掉保存 token 長(zhǎng)度。

對(duì)于用戶輸入和工具包輸出的后處理,如圖。比較神奇的是,右上角的舉例里,用 ChatGPT 自己的口吻來說一些原則(從而讓 ChatGPT 以為是它自己說的,然后順著說),以及直接讓 ChatGPT 說到"Thought: Do I need a tool"繼續(xù)生成,能強(qiáng)制進(jìn)入思考鏈,從而大幅度降低思考難度。左下角的舉例里,對(duì)于鏈?zhǔn)降奈募瑔?Visual ChatGPT 能不能總結(jié)出來文件命名原則,基本總結(jié)正確,這說明此種命名方法,確實(shí)可以幫助 Visual ChatGPT 理解文件的內(nèi)容和依賴關(guān)系,生成路徑。
有意義的啟發(fā)
- 開啟了 ChatGPT 處理視覺任務(wù)的新大門
- NLP --> Natural Language PhotoShop,自然語言文本描述下的圖片創(chuàng)作編輯和問答
- 可以通過系統(tǒng)設(shè)計(jì)和工具包設(shè)計(jì)的 Prompt,做到無監(jiān)督的工具調(diào)用,類似于 zero-shot 的 toolformer
- ChatGPT 本身對(duì)仿真場(chǎng)景的能力很強(qiáng),也讀過圖片路徑和函數(shù)關(guān)系,從而善于使用基礎(chǔ)視覺模型
- Prompt 很重要,作為純語言模型,前文說它是啥他就仿照啥,除了細(xì)致的要求,一定要多夸一夸他,是能力很強(qiáng)的處理模型,那它順著說,能力才會(huì)真的強(qiáng)
- Visual ChatGPT 本身是一個(gè)語言模型,所謂的兩方多輪對(duì)話只是一個(gè)Human: AI: 的多輪特殊形式前文的繼續(xù)生產(chǎn),所以,完全可以強(qiáng)行給前文AI: 讓 ai 自己說一些東西出來,是它信了是它自己說的,這能夠極大的降低生成難度。這在本篇論文里對(duì)幾個(gè)場(chǎng)景的幫助很大。例如,用戶輸入圖片后,改寫為“Human: 上傳了一張圖片,描述為:{}。注意,這里的描述是幫助你理解圖片的,你不能基于它幻想而不調(diào)用工具。如果你理解了,就恢復(fù)收到。AI:收到。”注意,這里 AI 回復(fù)的收到,并不是真的 GPT 的生成內(nèi)容,而是我們強(qiáng)行寫入進(jìn) dialogue history memory 的,而且可以發(fā)現(xiàn),AI 真的相信了。另外一個(gè)點(diǎn)是,在用戶的輸入后面,挨著的應(yīng)該是 GPT 自己的思考內(nèi)容,如果我們借它的口,自己說“推理信息僅自己可見,需要在最后總結(jié)的時(shí)候把重要信息復(fù)述給讀者”,效果比在最前文的 prompt 里效果好很多,可能是因?yàn)榫嚯x的原因,也可能是AI自己說出來的原因。另外,可以直接給到"Thought: do i need a tool?"去讓 GPT 繼續(xù)生成,從而一定進(jìn)入推理鏈,可以匹配到遠(yuǎn)處描述思維鏈格式的 prompt 內(nèi)容,極大的降低思考難度。
外網(wǎng)評(píng)價(jià)



End
崔慶才的新書《Python3網(wǎng)絡(luò)爬蟲開發(fā)實(shí)戰(zhàn)(第二版)》已經(jīng)正式上市了!書中詳細(xì)介紹了零基礎(chǔ)用 Python 開發(fā)爬蟲的各方面知識(shí),同時(shí)相比第一版新增了 JavaScript 逆向、Android 逆向、異步爬蟲、深度學(xué)習(xí)、Kubernetes 相關(guān)內(nèi)容,?同時(shí)本書已經(jīng)獲得 Python 之父 Guido 的推薦,目前本書正在七折促銷中!
內(nèi)容介紹:《Python3網(wǎng)絡(luò)爬蟲開發(fā)實(shí)戰(zhàn)(第二版)》內(nèi)容介紹

掃碼購(gòu)買
