1. 對吳恩達 workflow 概念產(chǎn)品化的思考!

        共 12254字,需瀏覽 25分鐘

         ·

        2024-06-17 22:24

         Datawhale干貨 

        作者:魯力,Datawhale成員



        本文摘要

           


        本文針對當前 workflow 類型產(chǎn)品所存在的問題,思考了產(chǎn)品設(shè)計的方法論,主要內(nèi)容包括:將任務(wù)進行形式化表達,提出 workflow 的系統(tǒng)設(shè)計可以形式化地表達為 DFA 的構(gòu)造,以及流程節(jié)點設(shè)計是給定約束條件下的 DFA 狀態(tài)數(shù)量最小化問題。


        具體章節(jié)如下:

        1. 引言
        1.1 背景
        1.2 當前 workflow 類型產(chǎn)品存在的問題
        1.3 本文主要工作
        2. 正文
        2.1 現(xiàn)實世界的任務(wù)天然具有狀態(tài)屬性
        2.2 工作流編排的本質(zhì)是驅(qū)動狀態(tài)的有序流轉(zhuǎn)
        2.3 workflow 系統(tǒng)是一個確定有限自動機
        2.4 流程節(jié)點設(shè)計是給定約束條件下的最優(yōu)化問題
        3. 結(jié)論與展望
        3.1 結(jié)論
        3.2 展望
        4. 致謝

        1 引言


           


        1.1 背景


           


        大模型發(fā)展到今天,大家基本已經(jīng)達成了一個共識:復(fù)雜的工作任務(wù)不可能通過單次 LLM 調(diào)用來解決。所以吳恩達、Itamar Friedman、Harrison Chase等人一直在提倡 workflow、flow engineering 之類的概念,意在通過多次、分階段的 LLM 調(diào)用、迭代來實現(xiàn)更好的應(yīng)用效果。

        目前,國內(nèi)外 coze、百度千帆/靈境/客悅、Dify、FastGPT、flowise、langflow 等諸多平臺也推出了自己的 workflow 產(chǎn)品,實現(xiàn)了對執(zhí)行流程進行可視化的低代碼編排,以下我們討論的 workflow 產(chǎn)品化是指這一類型的產(chǎn)品。

        1.2 當前 workflow 類型產(chǎn)品存在的問題


           


        目前業(yè)界對于 workflow 形態(tài)產(chǎn)品的設(shè)計理念并未有明確的共識,或者說正在互相借鑒。從實際效果看,目前市面上的 workflow 產(chǎn)品存在 2 點問題:

        (1)能力存在明顯邊界:現(xiàn)實中還有很多工作任務(wù)不能夠在 workflow 中被復(fù)現(xiàn)。


        我們以保險行業(yè)的一個AI客服場景業(yè)務(wù)流程為例,目前市面上所看到的所有 workflow 類產(chǎn)品,都無法復(fù)現(xiàn)下述場景應(yīng)用:

          1. AI 客服詢問用戶的年齡、性別、學歷等多項基本信息。

          2. 信息確認環(huán)節(jié):AI 客服判斷用戶回答信息是否完整——如果完整,才可以進入下一步驟;如果回答不完整,則繼續(xù)追問缺失信息,如果回答始終不完整,那么應(yīng)該始終進行追問。

          3. 多輪對話環(huán)節(jié):根據(jù)用戶信息,基于保險產(chǎn)品資料介紹,向用戶推薦合適的保險產(chǎn)品,并回答用戶的疑問(本質(zhì)上是基于 RAG 的多輪對話)。

          4. 一旦識別到用戶購買意愿,發(fā)送對應(yīng)產(chǎn)品的下單鏈接等后續(xù)步驟……


        (2)受眾群體有限:目前 workflow 類產(chǎn)品相比GPTs 類產(chǎn)品而言有更高的技術(shù)門檻,受眾群體數(shù)量小了若干個數(shù)量級。


        目前的 workflow 產(chǎn)品的發(fā)展處于一種“雞肋”般的尷尬位置——說靈活吧,又不如全代碼靈活,研發(fā)人員看不上;說易用吧,相比 GPTs 學習門檻明顯提高,不懂技術(shù)的人學不會。
        筆者認為,GPTs 和 workflow 這兩大產(chǎn)品類型的背后,是構(gòu)建 LLM 應(yīng)用的兩種范式——自然語言形式邏輯。這里我們稍作展開解釋。
        形式邏輯為我們提供了一個嚴格的推理框架,但自然語言卻超越了這種單純的邏輯,發(fā)展出了微妙的引申含義。 
        舉個例子,以下 A 和 B 兩句陳述在形式邏輯上等價,但在語言理解上,B 的話似乎是在反駁和嘲諷。
        • A :我相信我所看到的東西 
        • B:原來你看不到你不相信的東西
        在某些命題上,邏輯和語言的矛盾難以調(diào)和。例如,“極限的投影是投影的極限”與“投影的極限是極限的投影”兩個命題,在邏輯上等價,而在幾何視角下并不等價——集合的極限不存在時,投影的極限可能存在。 
        這是因為幾何定律的語言陳述方式影響了邏輯的理解。動詞“是”在語法上區(qū)分了主語和謂語,“A 是 B”可解釋為首先斷言 A 的存在,而 B 的存在以 A 的存在為前提條件。
        GPTs 由于采用了自然語言的便利性,降低了門檻,必然會得到更廣泛的使用。但是,欲戴皇冠,必承其重,既然使用了自然語言,所以也必須承受自然語言帶來的能力約束——用自然語言描述清楚一項復(fù)雜工作是非常困難的,沒有人能夠光用嘴巴教你怎么樣造火箭或者量子物理。
        要想進一步拓寬上限,就必須采用形式化的表達。
        GPTs 和 workflow 沒有誰好誰壞,就是兩種范式,二者各有所長但沒有高低之分,理論上還可以互相調(diào)用、取長補短。
        盡管目前來看, workflow 仍然具有較高一些的學習門檻,但長期來看,人群定位應(yīng)該趨同于 GPTs。
        我們不應(yīng)該將workflow 定位于 LLM技術(shù)愛好者群體,定位于技術(shù)愛好者群體將會讓 workflow 產(chǎn)品的發(fā)展之路越走越窄,雖然目前還沒有辦法大幅降低門檻,但如何提高易用性仍然是產(chǎn)品經(jīng)理需要思考的問題。

        1.3 本文主要工作


           


        本文針對目前 workflow 產(chǎn)品能力存在明顯邊界的問題(我們認為主要原因是缺少產(chǎn)品設(shè)計方法論進行討。為了解決這個問題,筆者認為需要厘清以下 3 點:

        (1)明確 workflow 產(chǎn)品的設(shè)計目標


        理論上,整個 workflow 在系統(tǒng)設(shè)計時應(yīng)該是能夠處理通用任務(wù)的,也就是說它是一個通用圖靈機,可以執(zhí)行任意一個特定的工作任務(wù)——無論是人機多輪對話,還是根據(jù)人類修改意見不斷迭代信貸盡調(diào)報告,抑或是一個 AI 保險銷售去向客戶推銷保險產(chǎn)品,都應(yīng)該能放在一個通用框架下去實現(xiàn)。

        現(xiàn)在市面上有些產(chǎn)品細分出了工作流和聊天流等多個類型,筆者認為沒有必要。現(xiàn)實世界的真實任務(wù)本不存在工作流、聊天流如此涇渭分明的劃分,硬生生地強行分類并不合理,也提高了用戶學習和使用門檻。


        (2)明確“你的”workflow 產(chǎn)品”要解決哪些業(yè)務(wù)場景下的工作任務(wù)。


        盡管 workflow 體系在設(shè)計時能夠處理任意特定任務(wù),是個通用圖靈機,但在具體產(chǎn)品落地的時候,workflow 應(yīng)該包含哪些流程節(jié)點,取決于“你的”workflow 產(chǎn)品”要復(fù)現(xiàn)哪些現(xiàn)實世界的工作任務(wù)(以下簡稱“任務(wù)”)。


        以下兩種產(chǎn)品設(shè)計思路的方向是截然相反的,我們認為應(yīng)該采取第一種:

          1. 現(xiàn)有任務(wù)的集合,再決定設(shè)計出哪些節(jié)點(node)。

          2. 先設(shè)計出節(jié)點(node),再思考我設(shè)計出的節(jié)點能夠完成哪些現(xiàn)實世界的任務(wù)。


        (3)對“任務(wù)”進行形式化定義


        每一個設(shè)計 workflow 產(chǎn)品的產(chǎn)品經(jīng)理,或多或少應(yīng)該都會遇到這樣的思索——現(xiàn)實世界中的任務(wù)千變?nèi)f化、數(shù)量繁多,到底應(yīng)該有哪些流程節(jié)點(node)?這些節(jié)點應(yīng)該發(fā)揮哪些功能?

        歌詩合為事而作,設(shè)計流程節(jié)點固然要先明確整個產(chǎn)品要解決哪些任務(wù)。但是這還不夠,我們還需要對任務(wù)進行形式化的表達。

        當我們能夠?qū)θ蝿?wù)進行形式化表達的時候,就能夠思考對各種任務(wù)的中間過程狀態(tài)的拆解以及合并歸類的方法和策略,進而設(shè)計出合理的流程節(jié)點。

        如果沒有方法和策略作為指引,產(chǎn)品經(jīng)理很容易自然而然地從技術(shù)實現(xiàn)角度出發(fā),去思考目前能夠做出哪些流程節(jié)點。

        經(jīng)過思考,我們得出了兩點結(jié)論,這兩點結(jié)論指引我們對于 workflow 產(chǎn)品的設(shè)計:

        1. workflow 的系統(tǒng)設(shè)計可以形式化地表達為 DFA 的構(gòu)造。

        2. workflow 的流程節(jié)點設(shè)計是給定約束條件下的 DFA 狀態(tài)數(shù)量最小化問題。


        2 正文


           


        2.1 現(xiàn)實世界的任務(wù)天然具有狀態(tài)屬性


           


        我們先給出一些基本定義,然后結(jié)合具體例子來解釋這些定義:

        1. 現(xiàn)實世界的任何一個任務(wù),都天然具有狀態(tài)屬性。
        2. 任何一個任務(wù)至少包含 2 個以上的狀態(tài):初始狀態(tài)和結(jié)束狀態(tài),此外還可以擁有中間若干過程狀態(tài)。
        3. 當任務(wù)處于結(jié)束狀態(tài)時,我們認為任務(wù)已完成。


        假設(shè)我們面對一個“把大象放進冰箱”的任務(wù),對于一般人而言,完成這個任務(wù)需要經(jīng)歷以下 5 個狀態(tài):

        • 初始狀態(tài):任務(wù)初始狀態(tài)

        • 中間狀態(tài) 1:冰箱門被打開

        • 中間狀態(tài) 2:大象被在冰箱里

        • 中間狀態(tài) 3:冰箱門被關(guān)閉

        • 結(jié)束狀態(tài):任務(wù)已完成(當然,我們也可以把 中間狀態(tài) 3 和 結(jié)束狀態(tài) 合并為一個狀態(tài))


        我們繼續(xù)以之前的 AI 保險銷售任務(wù)為例,一般而言,可能會被劃分為以下中間狀態(tài):

        • 狀態(tài) 1:AI 已發(fā)送開場白

        • 狀態(tài) 2:用戶已發(fā)送文字

        • 狀態(tài) 3:判斷用戶輸入內(nèi)容是否包括全部所需要信息(年齡、性別、學歷……)

        • 狀態(tài) 4:追問用戶缺失信息

        • 狀態(tài) 5:結(jié)合保險知識庫向用戶推薦相關(guān)保險產(chǎn)品

        • 狀態(tài) 6:用戶已發(fā)送文字

        • 狀態(tài) 7:判斷用戶是否表達購買意愿

        • 狀態(tài) 8:……


        2.2 工作流編排的本質(zhì)是驅(qū)動狀態(tài)的有序流轉(zhuǎn)


           


        當我們有了對任務(wù)狀態(tài)屬性的明確定義以后,可以發(fā)現(xiàn),對于任務(wù)的工作流編排,本質(zhì)上是通過使用一些工具(流程節(jié)點 node),使得任務(wù)有序地抵達若干特定中間狀態(tài),最終達到結(jié)束狀態(tài)。

        完成一個任務(wù)應(yīng)該需要經(jīng)歷多少個中間狀態(tài),取決于兩點:

        • 流程編排者對于 任務(wù)執(zhí)行過程 的理解

        • 系統(tǒng)擁有哪些工具(流程節(jié)點)


        也就是說不同的人對于任務(wù)的理解,以及他所能使用的工具,決定了他可能會將任務(wù)的執(zhí)行劃分為哪幾個步驟。

        以“把大象放進冰箱”任務(wù)為例,當我們手里有【機械臂】和【起重機】 2 種工具時,我們可能會劃分出以下三個中間狀態(tài):

        • 用【機械臂】打開冰箱門

        • 用【起重機】把大象放進冰箱

        • 用【機械臂】關(guān)上冰箱門


        而當我們擁有【機械臂】、【起重機】和【威震天】一共 3 種工具時,我們可能只使用威震天這一個工具,直接向威震天發(fā)送命令“幫我把大象放進冰箱”,而不需要關(guān)心威震天的具體執(zhí)行細節(jié)。

        最極端的理想情況下,假設(shè)我們有一個【萬能助手】工具,可以端到端地完成用戶交代所有任務(wù),那么整個系統(tǒng)不需要存在中間狀態(tài),只有初始狀態(tài)和結(jié)束狀態(tài)。


        2.3 workflow 系統(tǒng)是一個確定有限自動機


           


        給定現(xiàn)實世界的若干類型的任務(wù)集合 ),如果 workflow 系統(tǒng)能夠完成這些任務(wù),那么意味著存在若干流程節(jié)點的有序序列,使得任務(wù)集合  里的所有任務(wù)抵達結(jié)束狀態(tài)。


        整個工作流產(chǎn)品可以用五元組來表示:
        • 有限狀態(tài)集合 :給定任務(wù)集合 (包括初始狀態(tài)、中間狀態(tài)、結(jié)束狀態(tài))所包含狀態(tài)的有限集合。
        • 有限流程節(jié)點集合 :workflow 產(chǎn)品所提供的流程節(jié)點的集合。
        • 狀態(tài)遷移函數(shù) δ ,狀態(tài)遷移函數(shù)的值是狀態(tài)集合 的子集。遷移函數(shù)定義了在經(jīng)過流程節(jié)點的處理后,workflow 如何從一個狀態(tài)遷移到另一個狀態(tài)。
        • 初始狀態(tài) :workflow 的初始狀態(tài),
        • 結(jié)束狀態(tài)集合 :任務(wù)的結(jié)束狀態(tài)集合,


        在自動機理論中,這樣的五元組表達是一個自動機。更進一步,如果我們認為一個流程節(jié)點在內(nèi)部配置不同時,可以被當做不同的流程節(jié)點,那么這是一個確定有限自動機(DFA)。


        2.4 流程節(jié)點設(shè)計是給定約束條件下的最優(yōu)化問題


           


        workflow 產(chǎn)品的核心設(shè)計內(nèi)容是流程節(jié)點的設(shè)計以及相關(guān)交互,從產(chǎn)品角度,在能夠完成任務(wù)集合 的前提下,流程節(jié)點設(shè)計追求的目標應(yīng)該是「盡可能簡單的流程編排步驟」——對于一個需要完成的任務(wù),編排者能夠比較快速地使用系統(tǒng)提供的流程節(jié)點進行搭建。


        極端理想情況下,每類任務(wù)都能用一個流程節(jié)點(相當于萬能 agent)搞定,這樣對于用戶的學習和使用成本是最低的。


        如果我們用形式化的表達方式,這個問題應(yīng)該等價于:在給定任務(wù)集合 的情況下,通過設(shè)計流程節(jié)點集合 ,使得 DFA 中的狀態(tài)集合 的狀態(tài)數(shù)量 最小。


        很幸運,自動機理論已經(jīng)給我們提供了標準的區(qū)分表算法 (Myhill-Nerode 定理)來進行 DFA 狀態(tài)數(shù)最小化:通過定義狀態(tài)的不可區(qū)分(indistinguishable)概念,來將不可區(qū)分的狀態(tài)合并為一個狀態(tài),達到減小狀態(tài)數(shù)量的目的。

        算法 區(qū)分表最小化 DFA
        輸入:DFA (Q, Σ, δ, q0, F)
        輸出:最小化的 DFA

        1. 初始化區(qū)分表 T 為 |Q| x |Q| 的布爾矩陣,所有條目初始為 false
        2. 對于每個狀態(tài)對 (p, q):
            如果 p ∈ F 且 q ? F 或 p ? F 且 q ∈ F:
                將 T[p, q] 設(shè)為 true  // 標記 (p, q) 為可區(qū)分

        3. 重復(fù)直到?jīng)]有更多條目被標記:
            對于每個未標記的狀態(tài)對 (p, q) 和每個符號 c ∈ Σ:
                令 δ(p, c) = p' 和 δ(q, c) = q'
                如果 T[p', q'] 被標記:
                    將 T[p, q] 設(shè)為 true  // 標記 (p, q) 為可區(qū)分

        4. 構(gòu)建最小化 DFA 的狀態(tài)集合 Q':
            初始化 Q'
         為 ?
            使用未標記的狀態(tài)對構(gòu)建等價類,每個等價類選擇一個代表狀態(tài)

        5. 設(shè)定最小化 DFA 的初始狀態(tài) q0' 為 q0 所在等價類的代表狀態(tài)
        6. 設(shè)定最小化 DFA 的接受狀態(tài)集合 F'
         為所有包含至少一個接受狀態(tài)的等價類的代表狀態(tài)

        7. 定義最小化 DFA 的狀態(tài)轉(zhuǎn)移函數(shù) δ':
            對于每個等價類的代表狀態(tài) r 和每個符號 c ∈ Σ:
                令 s := δ(r, c)
                令 r'
         為 r 所在等價類的代表狀態(tài)
                令 s' 為 s 所在等價類的代表狀態(tài)
                設(shè)定 δ'
        (r', c) = s'

        8. 返回最小化的 DFA (Q', Σ, δ', q0', F')


        當然實際情況可能會更復(fù)雜,不可能完全按照算法策略進行優(yōu)化,因為給定任務(wù)集合 并不是可以完全枚舉的,但 Myhill-Nerode 定理仍然可以給產(chǎn)品設(shè)計帶來一些啟發(fā)。


        比如在給定業(yè)務(wù)場景下,假如我們發(fā)現(xiàn),知識檢索節(jié)點處理完成的狀態(tài),和 LLM 節(jié)點處理完成的狀態(tài),是不可區(qū)分的,那么它們可以合并成一個 RAG 節(jié)點,通過對基礎(chǔ)的組件進一步抽象,達到降低使用門檻的目的。



        3 結(jié)論與展望


           


        3.1 結(jié)論


           


        綜上所述,本文從目前市面上 workflow 產(chǎn)品的局限問題出發(fā),重新思考了任務(wù)的形式化表達,以及對于 workflow 產(chǎn)品的設(shè)計方法論,并得出了兩條思考結(jié)果:
        (1)workflow 的系統(tǒng)設(shè)計可以形式化地表達為 DFA 的構(gòu)造。
        (2)workflow 的流程節(jié)點設(shè)計是給定約束條件下的 DFA 狀態(tài)數(shù)量最小化問題。


        同時,借助自動機理論中的 DFA 狀態(tài)數(shù)最小化算法,我們也給出了優(yōu)化節(jié)點的策略參考。


        3.2 展望


           


        展望未來,我們認為 workflow 的以下方向仍然有提升和改進空間:


        (1)降低 workflow 學習和使用成本

        包括兩方面:

        • 一方面,支持通過自然語言描述的方式先創(chuàng)建一個工作流的雛形(類比于當下 GPTs 產(chǎn)品自動生成 prompt),然后允許用戶在其基礎(chǔ)上二次編輯修改。

        • 另一方面,支持通過自然語言描述的方式,創(chuàng)建自定義流程節(jié)點,其效果約等于多智能體的工作流編排。


        (2)關(guān)于成環(huán)

        一個很有意思的現(xiàn)象是,目前市面上的產(chǎn)品,可能是出于擔心死循環(huán)或者其他原因,在工作流的編排設(shè)計上不支持成環(huán)。

        我們認為允許成環(huán)是有必要的,并且利大于弊的,對于一個 DFA 而言如果不允許其成環(huán),那么它的能力一定是大打折扣的,而且有很多現(xiàn)實場景就是需要循環(huán)迭代的(e.g.讓 LLM 生成正確的代碼),做好相應(yīng)的兜底措施就好。

        (3)人類在工作流中的參與和干預(yù)

        當前 LLM 的 planning 能力還不夠強,所以一部分的 planning 工作仍然需要開發(fā)人員/業(yè)務(wù)專家來承擔,允許人類在適當?shù)臅r候參與進來,指出 LLM 的錯誤或者下一步應(yīng)該采取的行動。

        舉個例子:當工作流執(zhí)行到某一中間狀態(tài)時,只要人類專家表達對上一狀態(tài) LLM 的生成結(jié)果不滿意,可以攜帶專家的修改意見,返回到上一狀態(tài)讓 LLM 對之前的輸出進行修正。

        (4)多模態(tài) & 動態(tài)交互

        我們上述討論的一些場景,以及大模型實際在企業(yè)內(nèi)落地的一些復(fù)雜任務(wù),都會要求比較復(fù)雜的交互,比如報告生成任務(wù),可能涉及到版本的回退、某一特定章節(jié)的修改等等場景。

        顯然,目前對話的交互形式已經(jīng)無法承載復(fù)雜的工作任務(wù),我們需要繼續(xù)探索與 AI 的最佳交互方式。


        4 致謝


           


        本文靈感來源于 2017 Fall 臺灣清華大學資訊工程學系何宗易教授《Formal Language》課程,這并不是門常見的課,在大陸往往會放在編譯原理課程的前半部分,介紹形式語言與自動機相關(guān)內(nèi)容。事實上我當時并不知道這門課是干什么的,聽起來像是學正則表達式的水課就稀里糊涂去學了。


        老實說涉及的理論有點枯燥,感謝何教授的個人魅力,讓我在若干年后思考 workflow 產(chǎn)品設(shè)計時,依然能想起那些在炎炎夏日里畫狀態(tài)機的日子。


        昆明湖畔,蟬聲如織,時而高亢,時而低沉,將夏日的繁華與落寞交織在一起。壬戌亭下,綠蔭婆娑,月影搖曳,仿佛在低語著青春的故事。

        瀏覽 525
        5點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        5點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
          
          

            1. 久久久久久国产精品mv | 天天撸一撸在线视频 | 在线综合国产 | 高清wwwwwxxxxx | 美国色视频 |