Dify工作流復刻O1:性能究竟有多強?兩種OpenAI O1平替方案,讓開源模型也擁有超強思維鏈!
你好,歡迎來到AI學長的頻道,我是小林
OpenAI的新模型歐旺雖然很強大
但是在使用額度方面的限制實在是太實了
One Premium每週50次,歐旺mini每天50次
這對於用來解決普通問題勉強夠用
但面對複雜問題的時候明顯不足
歐旺性能提升的主要原因是
採用自博異強化學習加思維鏈的思考方式
這更多是在工程方面的改進
而非在技術層面上的突破
所以一定程度上我們可以使用現有的大模型來模仿歐旺
通過提示式工程或者使用工作流拆分任務
來優化現有大模型的推理性能
那麼這期視頻就來分享兩個方案
讓我們可以快速打造出歐旺的低門檻替代方案
如果你喜歡今天這個話題,麻煩動動你的小手沾一沾
OK,先來說第一種方案
第一種方案是用DeFi工作流實現的
實現原理就是模仿歐旺思維鏈的工作原理
使用分步推理,逐步思考問題當中的每一個部分
而不是直接給出問題的答案
那麼這種方案在一些複雜的邏輯推理問題
還有數學問題上它對大模型的性能提升
對這個答案追蹤的準確率它是有特別大的幫助的
我們只要在DeFi的工作流當中
把每一個問題讓大模型先去做一個自動拆解
比如說是拆成三步四步還是五步
這個可以讓大模型根據問題的複雜程度自由去發揮
然後再依次去執行這個過程當中的每一個步驟
最後再綜合每個步驟給出的結果
把它們作爲上下文來獲得這個問題的追蹤答案
這裏我是已經搭建好了這樣一個工作流
名字是叫歐旺Agent
它的作用就是模仿歐旺的思維鏈模式
每次面對問題它會首先去拆分問題
然後通過逐步思考的方式追蹤幫我們獲得答案
接下來我先給大家對比一下效果
就是我們分別用這個工作流去執行幾個問題
然後再用這個chatterGPT的4歐版本
去回覆這幾個問題
首先第一個問題是我們問它9.11和9.8
這兩個數字更大
我們讓GPT 4歐先回答一下這個問題
它給出的答案是9.11比9.8更大
這個答案明顯是錯誤的
同樣是這個問題
我們在歐旺Agent的工作流裏面去執行一下
答案已經輸出了
首先是問題的分析步驟如下
第一步 第二步 第三步
它總共通過三步的推理
然後最終獲得這個答案
這邊是它的一個推理邏輯
綜上所述9.8比9.11更大
答案是正確的
那麼在這一輪上
它是又以GPT 4歐的一個性能表現的
好 接下來我們測試下第二個問題
詢問SCEP這個單詞當中有多少個字母R
先看GPT 4歐的回答
OK GPT 4歐給出的答案是
這個單詞有兩個字母R
這個答案也是錯誤的
同樣我們把這個問題
在歐旺Agent的工作流裏面去執行一下
看它給出什麼樣的答案
好 它給出了最終答案
單詞SCEP當中有三個字母R
這兩題歐旺Agent的工作流回答都是正確的
而GPT 4歐的回答都是錯誤的
包括它這邊也給出了每一個步驟的推理過程
然後根據這個推理過程去檢查
最終給出了這個正確的答案
好 接下來我們再來一個難一點的
問題是中國2024年9月9號星期一開始
到10月13號的放假調休安排
散六 休三 散三 休二 散五 休一
散二 休七 再散五 再休一
請你告訴我除了本來該休息的週末
我因爲放假多休息了多少天
這個問題原來很多大模型測試都翻車了
沒有得到正確的答案
那麼正確答案是因爲放假多休息了四天
我們直接讓它來執行一下
看它的推理過程
再看一下它能不能正確的去回答這個問題
OK 最終答案出來了
除了正常週末休息的天數
你因爲放假多休息了四天
答案沒有問題
我們再看一下這個推理過程
它這個問題一共是分爲了
步驟一 步驟二 步驟三 步驟四
總共是四個步驟
然後根據這個四個步驟逐步去推理
得到了這個正確答案
並且它的這個推理過程非常非常的詳細
那麼用這個工作流就還有一個好處
它能讓你清晰的知道
大模型在處理這個問題的時候
它的推理步驟是什麼樣的
它的每個步驟完成了哪些任務需求
它的邏輯是清晰的展現在我們這個答案裏面的
那如果說是縱使這個答案是有問題的
我們也可以非常容易的定位到這個問題
它是出在什麼地方
這樣的話解決起來
相對來說也會更簡單
好那這樣呢我就給大家演示一下
這個org-agent的define工作流
它是怎麼樣搭建的
它的邏輯是什麼樣的
然後過程當中用了哪些節點
先給大家說一下這個工作流的結構
方便大家理解它的一個執行邏輯
然後再依次過一下
每一個節點裏面的參數設置
首先是開始節點
也就是用戶輸入問題的地方
那麼第二個的話是添加了一個大模型節點
這個大模型節點的作用是根據用戶輸入的問題
讓大模型自動根據這個問題的難易程度
去拆分它的任務步驟
那麼這個過程也是自動的
可以拆分成三步四步或者五步都是ok的
是這個問題的難易程度而定
好第三個節點是添加了一個參數提提器
它的作用是把第二步輸出的這個步驟
從非結構化數據給它變成結構化數據
方便我們後面去做一個使用
好那第四個節點就是一個關鍵節點
添加了一個迭代節點
這個迭代節點是原來define當中的循環節點
我們根據之前所拆分出來的步驟
然後依次循環逐步去執行
每一個步驟要執行的任務
那麼通過這個迭代節點
它就把之前拆分出的任務步驟都執行完成了
接下來添加了一個模板轉換節點
它會把迭代節點的不同步驟輸出的內容
合併在一起
那麼最終再把內容輸出給大模型的節點
也就是最終給出答案的節點
它會依據用戶的問題
再依據迭代節點
它所拆分出步驟每一步的結果
會把它們作爲上下文
作爲參考依據
最終給出問題的答案
我給它定義了輸出格式
首先是輸出問題分析步驟
然後再輸出正確答案
這就是工作流的一個結構
好 接下來我們快速的過一下每一個節點的參數
第一個開始節點
我們不需要添加任何的字段
因爲它這邊默認是有一個用戶問題的字符串
我們默認使用這個字段作爲問題就OK了
好 然後是第二個節點
第二個節點就是拆分問題
平臺是這樣的
你是一個能夠進行詳細逐步思考的AI助手
說到問題以後請不要直接給出答案
而是通過逐步推理將問題拆分出相應的解題步驟
給出步驟的名稱和任務描述即可
最後加了一個強調
至少保證每個問題有三個步驟以上
這個也非常的關鍵
然後下面就是輸入用戶的問題
通過這一步它自動把問題進行拆解成
三個步驟以上的這樣一個流程
好 然後是第三個節點
我們把上一步這個大模型輸出的結果
作爲它的輸入變量
模型的話你可以自定義
一般來說使用GPD 10 mini就夠了
那這裏主要是提取它的步驟數組
我命名爲type
這邊它的point指令是這樣的
根據內容提取步驟數組
下面給了一個示例
第一步第二步
然後每一步的任務描述是什麼樣的
OK 接下來就到了這個迭代節點
我們把上一步參數提取出來的內容
作爲迭代節點的輸入
然後輸出的話就是最後這個lm6
它輸出的結果
也就是每一個步驟
這個大模型它回答分析的結果
作爲輸出內容
OK 接下來我們看迭代節點內部的
首先是添加了一個代碼執行節點
它的作用是把每一個步驟當中的任務名稱
還有任務描述給大家提取出來
通過這樣一段passion代碼
然後輸出這兩個字段
type name跟content
這個對應的話就是步驟名稱
這個的話對應的就是需求描述
當我們通過代碼執行
提取出這兩個字段之後
這邊是通過lm6這個節點
然後這個節點我用的是GPT-4O的大模型
因爲它要分析問題解答問題
所以對模型質量要求會更高點
你用性能更好的模型
對答案追蹤的準確性
它的準確性肯定也是更高的
對應的話下邊是它的pronto
首先是給它原始問題
然後這是它的任務背景
你是工作流當中的一個環節
前面的工作流會將問題拆分出n個步驟
然後你的任務是根據問題拆分出的步驟
解答指定步驟的任務
本人任務的名稱是step name
就是我們通過代碼執行節點
提取出來的參數
任務描述是content
也是上一步所提取出來的參數
那麼通過迭代節點
它就會把每一個步驟
給我用這種格式輸出最終答案
首先這個步驟的名稱
然後這個步驟在迭代節點
所獲得答案是什麼樣的
最終呢
我在通過這個模板轉換節點
就是往裏面添加一些換行符
讓它這個格式更清晰
並且把這幾步的內容合併在一起
好
然後到了最終解答的步驟
首先是原問題
然後是任務
是檢查原問題
並且綜合以下分析
給出這個問題的最終正確答案
OK
最後呢
就是問題的回覆
要求輸入這個問題的分析步驟
也就是迭代節點
它每一步的名稱
以及每一步的答案
然後最後呢
是這個最終答案
最終答案呢
就是這一步
它輸出的結果
把這兩個放在一起
作爲我們最終的一個輸出結果
這個就是整個工作流的一個打造過程
然後它的一個性能跟表現
剛纔開始呢
已經通過三個案例
給大家做了一個演示
相對來說
三個問題呢
都是大模型非常容易翻車的問題
那麼我們通過模仿
O1的這個工作流
思維鏈的方式
這個agent
它的回答都是正確的
這也就是說明
這個工作流
它的推理性能是很強的
那麼關於這個工作流的配置文件
會放到我的課程
chp實戰指南創新用語性能提升裏面
你如果是說不想自己配置
可以到課程裏面的第38節裏面
去獲取這個配置文件
課程除了這個工作流的配置文件以外
還有其他十幾個高級的工作流勢力
對於學習工作流來說
都是有非常大的幫助
如果有這一方面的需求
可以看一下我的課程
接下來呢
分享第二種方案
第二種方案呢
是基於GitHub上面的
這個開源項目來實現的
它的名字呢
是叫G1
也是模仿這個OpenAI的O1來命名的
它的邏輯呢
是使用提示詞策略
通過類似於O1的推理鏈
來提高大模型的推理能力
這邊的話也有一個測試得分
在沒有任何訓練的情況下
在這個O1的問題上
通過Lamma3.170B這個模型
再結合這個Prunder
它的準確率呢
能達到70%
整體來說已經是非常高了
那如果是沒有這個系統性的Prunder的情況下
Lamma3.170B回答O1的問題上
它的準確率幾乎是爲0
GPT-4O的準確率是30%
也就是我們加上這個提示詞工程
它的性能呢是超越GPT-4O的
所以這個方案呢
是一種非常靈活低門檻的方式
幾乎不需要什麼樣的配置
就可以把大模型的推理能力大幅提升
不管你是開源的還是閉源的
都是可以用它的這個原理的
所以這個項目
它的核心呢就是這個Prunder提示詞
那我們就直接來看它的這個提示詞
它已經把它的提示詞
直接給我們公示出來了
就是通過這樣一段內容
來提升大模型的綜合推理能力
它的應用方法有兩種
那麼第一種的話
是最簡單的
不需要做任何配置
如果你是這個7GB的plus會員
或者說是你是這個cloud的會員
你是可以創建這個GPTS的
其實我們可以直接把這段Prunder
給它複製一下
然後去創建一個O1的Chrome GPTS
就可以達到我們上面所說的效果
這是第一種應用方法
那麼第二種方法呢
就是我們基於官方這個項目
自己在本地去部署一個
那麼本地部署它的優勢呢
就是可以用這個本地的模型
或者說去使用一些在線的
開源模型的API Key
都是OK的
那我們就先說第一種方案
打開這個QLED GPT
前提是你是這個GPT的會員
我們可以去創建一個GPTS
名字的話可以自定義
那比如說這邊呢
我是叫GPT O1
你也可以叫O1 GPTS
等等都是OK的
那麼核心的話
就是這一段Prunder
它的原文是英文的
就是下面這一段
那這裏呢
我已經翻譯過來了
給大家看一下它的一個意思
首先是定義了一個角色
你是一個專業的AI助手
需要一步步解釋
自己的思考過程
在每個步驟當中
都要寫明當前操作的小標題
以及它的詳細內容
然後判斷是否還需要進一步分析
或者已經可以得出最終結論了
這些信息呢
都要用這個JSON格式表示
然後有三個字段
是title content
以及這個下一步的行動
下一步行動當中
是包含兩個結果
要麼是繼續
要麼是最終答案
根據當前步驟
判斷它已經是可以得出答案了
還是需要繼續
請確保整個過程當中
分爲多個步驟
最少是三步
然後下面呢
還有一些提醒
比如說犯錯了
要如何解決
然後他的思考模式是什麼樣的
這邊給出了他的一個回覆示例
說白了這個plot呢
就是讓大模型
把問題進行拆分
至少要保證在三步以上
那麼通過這樣一個
簡單的提示策略
就可以讓大模型
去執行思維鏈的模式
這個過程呢
配置就非常非常的簡單
然後用這種方法呢
還有一個好處
就是我們知道
歐旺呢
它現在是僅僅只是文字對話模型
並不是多模態
像這個圖片呀
附件呀
聯網啊
它這些功能都不具備的
而我們通過這種方式
通過GPTS
這些附加功能都具備了
等於比歐旺還多一些
這個附加功能
好
其他呢就不需要做任何的改動
同樣的話
我們以剛纔這兩個問題啊
來測試一下
它的這個性能
在GPT 4歐的模式下
直接回答這個問題
是錯誤的啊
然後我們在這個
歐旺GPTS裏面測試一下
ok
已經給出答案了
通過三個推理步驟
第一步呢
是比較兩個數字的整數部分
第二個的話
是比較兩個數字的小數部分
那麼第三步的話
是最終結論
9.8大於9.1
這個答案是沒有問題的啊
就是通過這一段簡單的提示策略
就改變了這個大模型
最終的一個推理性能
跟它的一個準確率
我們再來看一下第二個題啊
就是問它這個
Scheduler裏面有多少個字母R
答案同樣也是沒有問題的啊
Scheduler當中是包含三個字母R
然後它的每一步推理邏輯
包括它的輸出方式啊
都是嚴格按照
這個Plant的提示策略裏面
進行輸出的
那麼這個方法
我覺得是非常友好的
特別是對於小白新手用戶來說啊
它的門檻實在是太低了
而且這樣的話
我們用的是GPTS的使用額度
它的額度是大幅多於
這個O1模型的額度
相對來說也是解決了
這個使用限制數量的問題
好,然後最後呢
我們再來說一下
這個方案的第二種實現辦法
就是你不是PaaS會員
那麼我們可以通過
本地部署的方式
用本地或者說
在線的開源模型啊
同樣也是能把這個
模型的推理性能
進行一個大幅的提升的
那這裏呢我們就需要
在本地部署下這個項目
接下來我給大家演示一下
首先呢在你的電腦上
打開你要部署這個
項目的文件夾
比如說我這裏是要部署
在Works的文件夾下
那你就打開它
然後右鍵在終端中打開
這裏呢我們可以去執行一下
這個指令Git Chrome
那前提是你在你的電腦上
是已經安裝過Git指令的
把這個代碼複製一下
然後右鍵
它會自動粘貼下來
點擊回車
它就會自動去下載這個項目
OK
可以看到這個項目呢
已經是下載下來了
然後接下來呢
我們是要在電腦上
安裝一個Coda的指令
像Git還有Coda的安裝方法
我會放到視頻筆記裏面
視頻的筆記
可以在這個簡介裏面
大家去找一下
安裝完成以後呢
我們就打開這個
Coda的操作終端
那麼Coda的作用呢
就是可以讓我們
在本地的電腦當中
安裝不同的拍攝環境
首先我們去創建一個
虛擬空間
前面是它創建空間的指令
然後這個是明智
Go on
拍攝版本的話是3.11
這個只要大於
等於3.10就可以了
沒有太多嚴格的要求
這些安裝步驟
還有我用到的
這些指令呢
也會放到視頻筆記裏面
那麼這個環境
已經創建成功了
然後我們輸入Coda
打開這個空間
Active
Go on
OK 就可以看到
前面的前綴呢
變成Go on了
接下來呢
我們需要把這個地址
導航到
剛纔我們安裝項目的地方
輸入CD
D盤
我是在D盤的Works下
然後名字呢
是叫Go on
輸入Type鍵
它會自動補充上去
這樣的話
我們就進入這個文件夾
接下來呢
是安裝這個項目
需要的依賴
指令就是這行代碼
OK
項目的依賴完成了
然後我們要導入一個
開源模型的這個
API Key
這裏呢
用的是Golg提供的
Lama 3.1 70B的API Key
它的指令是這樣的
通過一個環境的指令
然後導入這個
Golg的API Key
那後面的話
對應的就是這個
API Key的密鑰
然後關於它的獲取方式呢
大家可以看一下
我的這期視頻
免部署不花錢
暢想開源模型API
申請完密鑰
填入這行指令之後
點擊回車
然後就是最後一步
通過這個Streamlit來運行
App.py這個文件
它就可以打開一個
Web UI界面
可以看到已經運行了
它是用這個
Golg上面的
Lama 3.1 70B
創建了一個
類似於O1的
類似於推理鏈的
這樣一個Agent
這裏我們同樣可以通過
之前測試GPT-10
還有DeFi工作流的
這個問題
來測試一下
這個項目
它本地運行的一個體驗
以及它的一個
推理性能
那如果正常來說
我們通過Lama 3.1 70B
去回答這個問題
肯定是得不到
正確答案的
那麼我們通過
預設的這個
Prompt示威鏈的方式
來看一下它的一個
最終答案
好,結果已經出來了
是用了一步
兩步
三步
四步
五步
總共是五步
那麼最終得出了
這個答案
這加倍當中
它是包含三個字母
答案沒有問題
然後總時考用時
是10.81秒
整個過程的體驗
還是和這個
OpenAI的歐望挺像的
它思考了多久
然後每一個步驟
是什麼樣的
然後最後
輸出這個
最終答案
那麼用這種方法
它的優勢就是
我們可以無限制的
去使用
常推理能力的
Agenda
我們基於
Lama 3.1 70B的也好
或者基於
其他開源模型也好
都可以去
用這套方案
把它的整個
推理性能
進行一個大幅的提升
另外呢
根據任務難度的不同
我們還可以
靈活的去組合
今天這期視頻當中的
幾個方法
可以很好的彌補
歐望使用
額度不足的問題
好
以上呢
就是這期視頻的內容
希望對你有所幫助
如果你覺得內容還不錯
不妨點個贊
訂閱我的頻道
每週都會爲大家帶來
最新最實用的
AI應用技巧
那麼如果你想支持
我的創作
想學習更多的
AI應用和落地場景
或者遇到問題
不知從何下手
希望得到幫助
可以加入我的課程
車GBT實戰指南
創新應用與性能提升
課程包含了
40節我精心設計的內容
注入用GBT做微信客服
搭建信息批量收集
改變羣發機器人
直播AI實時換臉
根據知識能工作需求
搭建AI智能體
以及AI工作流
等高階玩法
此外
會員還有專門的交流羣
可以獲得問題答疑
精品AI工具推薦
羣員互動等特權
感興趣的同學
可以在視頻簡介當中
找到報名方式
再次感謝各位的支持和關注
我們下期視頻再見