机器之心报道
编辑:小舟
数学研究工具可以随 AI 模型的进展更新一波了。
几个月来,数学家陶哲轩多次尝试使用 ChatGPT 辅助解决数学问题,并与大家分享他的试验结果。网友在围观的同时还会和陶哲轩进行一些交流,或者给出 ChatGPT 的使用技巧建议。
今天,陶哲轩又尝试用 ChatGPT 生成可采用 LaTeX 表达式的程序代码,并最终得到了一段可用的 VSCode 代码。
陶哲轩表示 ChatGPT 能够生成涉及正则表达式的复杂代码片段,并且很有效。
具体来说,他想要一个可以采用 LaTeX 表达式(例如 (x+y=z))的代码片段,并将 \left 和 \right 作为分隔符(例如 \left (x+y=z \right)。
为了解决这个问题,ChatGPT 进行了两次尝试,并且是以「多轮对话」的形式完成的。首先,陶哲轩详细描述了一个关于 (x+y=z) 的编码需求:
ChatGPT 首先根据要匹配的文本格式给出了正则表达式,并且对正则表达式的每一部分给出了详细的解释,最后给出了一段 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 工具辅助解决数学问题,陶哲轩最近还表示自己在一篇即将发表的论文中,使用了 AI 工具来编辑排版数学公式,具体来说是使用了 VSCode + TeXLive + LaTeXworkshop + Github Copilot。
值得一提的是,这个「神器组合」是来源于一位网友的建议。
前几天,陶哲轩尝试使用 ChatGPT 写 Python 代码来计算 Phi 非递减序列的数学问题,结果 ChatGPT 生成了一个非常聪明的程序来计算 totient 函数,但部分地方存在计算偏差。
在讨论中,陶哲轩提到:「完整正确的 Python 代码对解决数学问题有很大帮助,但他不常用 Python 编写代码,GPT 提供的代码有些许错误,需要手动改正。」有网友随即建议将 GitHub Copilot 和 VSCode 结合使用:
陶哲轩表示从 20 世纪 90 年代开始,每隔五到十年,他就会尝试更新公式编辑器,已经过数次迭代。陶哲轩也分享了他最新采用的 VSCode + TeXLive + LaTeXworkshop + Github Copilot 的使用效果。
他在 VSCode 中设置了一个触发词「cor」,以创建推论环境:
Github Copilot 则在填写代码片段方面起到了很大的作用:
相比于 ChatGPT,Github Copilot 是专门为生成代码而构建的 AI 工具,因此生成的代码准确性更高,效率也更高。
看来,AI 工具,特别是大模型将对数学研究起到十分重要的作用,还有很多应用潜力待研究者们发掘。
参考链接:
https://mathstodon.xyz/@tao
https://chat.openai.com/share/35a5eee7-9318-4bdf-809a-a77ba9afba81