Code Interpreter介紹
近期GPT-4推出了Code Interpreter代碼解析器功能,代碼解析器可令ChatGPT運行代碼,并且可以訪問用戶上傳的文件,實現(xiàn)分析數(shù)據(jù)、創(chuàng)建圖表、編輯文件、執(zhí)行數(shù)學(xué)運算等復(fù)雜操作。有了它之后,即使不是程序員,只需要用自然語言向ChatGPT下達(dá)指令,也可以完成需要復(fù)雜編程技術(shù)的任務(wù)。
Code Interpreter模式下的GPT相比于之前,有三個功能特性:
- 可以接收上傳的文件,
在后臺運行代碼輸出結(jié)果,相當(dāng)于內(nèi)置了python運行環(huán)境;
- 如果代碼運行出錯,可自行調(diào)試代碼直到順利運行;
- 在一次回答中可以把多個任務(wù)分拆成各個步驟,按步驟解決所有任務(wù)直到全部運行結(jié)束,具有連續(xù)思考的能力。
想要使用Code Interpreter功能,需要確保賬戶擁有Plus訂閱權(quán)限,并通過 “Settings” 中的“Beta features”打開“Code interpreter”,即可使用。
GPT實踐:自動化分析金融數(shù)據(jù)以使用Code Interpreter分析中國PPI數(shù)據(jù)為例,通過展示出全部問答記錄,詳細(xì)解讀GPT自動化分析金融數(shù)據(jù)的過程以及Code Interpreter所展示出的功能提升。
具體提問如下:
你是一名宏觀量化分析師,請分析這份中國PPI數(shù)據(jù),要求如下:
1. 畫出PPI的走勢圖,標(biāo)出每輪經(jīng)濟周期的最高點和最低點(每輪經(jīng)濟周期為約 4 年,不 要標(biāo)示過于頻繁)。
2. 用ARIMA法(結(jié)合ADF檢驗、ACF、PACF、AIC等判斷用什么參數(shù))預(yù)測PPI末來48個月的趨勢。如果該指標(biāo)會觸底回升的話,預(yù)測將在什么時候發(fā)生。
注意: 一直運行完兩個要求再停止回答。
提問上傳的數(shù)據(jù)是名為“ppi.xlsx”的文件,包含1993年1月至2023年5月的中國 PPI數(shù)據(jù)。GPT給出的回答格式是“
代碼及運行結(jié)果-文字-代碼及運行結(jié)果-文字…” 的交替排列。
第一部分:GPT首先利用代碼讀取PPI文件識別數(shù)據(jù)結(jié)構(gòu),接著給出了針對提問中兩個要求的兩個操作步驟。
明確了兩個操作步驟后,GPT接下來立即開始生成第一個操作步驟的代碼,即“
畫出PPI的走勢圖,標(biāo)出每輪經(jīng)濟周期的最高點和最低點”,代碼如下。

從代碼中從代碼中可以看到GPT使用了滑動窗口的方法,并且精準(zhǔn)識別出提問中“每輪經(jīng)濟周期為約 4 年”的提示,從而設(shè)定窗口大小為48個月,做出了標(biāo)有4個最高點和2個最低點的 PPI 走勢圖。

簡單描
簡單描述了走勢圖后,GPT給出了接下來的操作步驟,利用ARIMA預(yù)測未來48 個月的PPI趨勢,“首先通過ADF檢驗、ACF、PACF、AIC等來確定ARIMA模型的參數(shù),然后我們將使用這些參數(shù)來進行預(yù)測”。第二部分:接下來對于ARIMA模型參數(shù)選擇的回答,GPT先回復(fù)了用于參數(shù)選擇的代碼,其中基于ADF檢驗p值小于0.05判斷序列平穩(wěn),決定差分階數(shù)d=0,再繪制ACF、PACF圖初步判斷MA階數(shù)q、AR階數(shù)p,再通過比較p、q分別取 0,1,2,3,4 時的AIC值,確定使得AIC值最小的組合為ARIMA(2,0,0),從而確定了模型參數(shù),展現(xiàn)出了完整的統(tǒng)計知識和清晰的思維邏輯。
接著,GPT回復(fù)了下一步的任務(wù)“
使用 ARIMA(2,0,0)模型來預(yù) 測未來 48 個月的 PPI,如果預(yù)測顯示 PPI 會觸底回升,我們將預(yù)測這將在什么時候發(fā)生”。

GPT緊接著生成了預(yù)測PPI的代碼,但在運行結(jié)果中出現(xiàn)報錯。根據(jù)GPT呈現(xiàn)的錯誤報告,GPT可以識別出問題為“
在ARIMA模型的預(yù)測結(jié)果中forecast方法只返回了兩個值,而我試圖解包三個值”,從而提出更正錯誤。

通過GPT回復(fù)的修改版代碼,將原來代碼的報錯行變成了“forecast_result = model_fit.get forecast(steps=48)”,然后再利用forecast_result得到預(yù)測值 forecast和置信區(qū)間con_int,從而報錯不再出現(xiàn),代碼調(diào)試結(jié)束,進入下一步驟。

從下圖可以看到,GPT成功輸出了未來48個月的PPI趨勢圖,并預(yù)測PPI在 2023年7月觸底回升。在此基礎(chǔ)上,GPT作為“宏觀量化分析師”還給出了提示“請注意,這只是一種預(yù)測,實際結(jié)果 可能會有所不同,因為它受到許多不可預(yù)測因素的影響”,至此GPT回答完畢,結(jié)束了Code Interpreter功能下的一次問答。

在以上例子中,GPT可以在一次回答中完成提問中的全部要求,后臺運行 python代碼呈現(xiàn)輸出結(jié)果,并自己調(diào)試代碼直到代碼全部跑通為止。然而需要注意的是,這并不意味著GPT回復(fù)的代碼一定能夠完美解決問題,GPT生成的代碼可能是語法正確的,但GPT并不能檢查輸出結(jié)果以確保其符合問題的要求或能夠達(dá)到預(yù)期的目標(biāo)。