陶哲軒用大模型輔助解決數(shù)學(xué)問題:生成代碼、編輯LaTeX公式都很好用
幾個月來,數(shù)學(xué)家陶哲軒多次嘗試使用 ChatGPT 輔助解決數(shù)學(xué)問題,并與大家分享他的試驗結(jié)果。網(wǎng)友在圍觀的同時還會和陶哲軒進(jìn)行一些交流,或者給出 ChatGPT 的使用技巧建議。
今天,陶哲軒又嘗試用 ChatGPT 生成可采用 LaTeX 表達(dá)式的程序代碼,并最終得到了一段可用的 VSCode 代碼。
陶哲軒表示 ChatGPT 能夠生成涉及正則表達(dá)式的復(fù)雜代碼片段,并且很有效。
具體來說,他想要一個可以采用 LaTeX 表達(dá)式(例如 (x+y=z))的代碼片段,并將 \left 和 \right 作為分隔符(例如 \left (x+y=z \right)。
為了解決這個問題,ChatGPT 進(jìn)行了兩次嘗試,并且是以「多輪對話」的形式完成的。首先,陶哲軒詳細(xì)描述了一個關(guān)于 (x+y=z) 的編碼需求:
ChatGPT 首先根據(jù)要匹配的文本格式給出了正則表達(dá)式,并且對正則表達(dá)式的每一部分給出了詳細(xì)的解釋,最后給出了一段 VSCode 代碼:
ChatGPT 給出的第一段代碼具體如下:
{
"Add \\left and \\right": {
"prefix": "leftright",
"body": [
"${TM_SELECTED_TEXT/\\(([^)]+)\\)|\\[([^]]+)\\]|\\\\{([^}]+)\\\\}/\\left$0$1$2$3\\right$0/g}"
],
"description": "Add \\left and \\right to selected text"
}
}
然而,這段代碼存在錯誤,陶哲軒給 ChatGPT 指出了這個錯誤,然后 ChatGPT 就重新對原問題給出了一個正確的解答,生成了一段 VScode JSON 格式的代碼:
ChatGPT 給出的第二段代碼具體如下:
{
"Add \\left and \\right": {
"prefix": "leftright",
"body": [
"${TM_SELECTED_TEXT/(\\()([^)]+)(\\))|(\\[)([^]]+)(\\])|(\\\\{)([^}]+)(\\\\})/\\left${1}${4}${7}${2}${5}${8}\\right${3}${6}${9}/g}"
],
"description": "Add \\left and \\right to selected text"
}
}
除了日常使用 AI 工具輔助解決數(shù)學(xué)問題,陶哲軒最近還表示自己在一篇即將發(fā)表的論文中,使用了 AI 工具來編輯排版數(shù)學(xué)公式,具體來說是使用了 VSCode + TeXLive + LaTeXworkshop + Github Copilot。
值得一提的是,這個「神器組合」是來源于一位網(wǎng)友的建議。
前幾天,陶哲軒嘗試使用 ChatGPT 寫 Python 代碼來計算 Phi 非遞減序列的數(shù)學(xué)問題,結(jié)果 ChatGPT 生成了一個非常聰明的程序來計算 totient 函數(shù),但部分地方存在計算偏差。
在討論中,陶哲軒提到:「完整正確的 Python 代碼對解決數(shù)學(xué)問題有很大幫助,但他不常用 Python 編寫代碼,GPT 提供的代碼有些許錯誤,需要手動改正。」有網(wǎng)友隨即建議將 GitHub Copilot 和 VSCode 結(jié)合使用:
陶哲軒表示從 20 世紀(jì) 90 年代開始,每隔五到十年,他就會嘗試更新公式編輯器,已經(jīng)過數(shù)次迭代。陶哲軒也分享了他最新采用的 VSCode + TeXLive + LaTeXworkshop + Github Copilot 的使用效果。
他在 VSCode 中設(shè)置了一個觸發(fā)詞「cor」,以創(chuàng)建推論環(huán)境:
Github Copilot 則在填寫代碼片段方面起到了很大的作用:
相比于 ChatGPT,Github Copilot 是專門為生成代碼而構(gòu)建的 AI 工具,因此生成的代碼準(zhǔn)確性更高,效率也更高。
看來,AI 工具,特別是大模型將對數(shù)學(xué)研究起到十分重要的作用,還有很多應(yīng)用潛力待研究者們發(fā)掘。