来源:运筹or帷幄
本文约2200字,建议阅读9分钟
ChatGPT的准确性和速度以及处理复杂任务的能力使其成为一种非常有用的工具。
作者信息:宋志刚,中国科学院大学物理学博士
一、引言
ChatGPT是一个由OpenAI训练的大型语言生成模型,基于最先进的Transformer技术。它可以理解和生成人类语言,因此可以完成多种文本生成任务,例如问答、对话、文本生成、内容摘要等。它的准确性和速度以及处理复杂任务的能力使其成为一种非常有用的工具。
ChatGPT的技术特点包括:
1)自然语言处理能力:可以理解人类语言,并生成自然和一致的文本。
2)记忆力:可以记住之前的对话内容,并在继续对话时使用这些信息。
3)预测性:可以预测文本的未来内容,并且预测的内容符合语言的自然逻辑和结构。
4)多样性:可以生成多种可能的答案,以满足不同的需求。
二、ChatGPT和数学优化能够结合吗?
数学优化是研究优化方法、算法、技巧和理论的一门学科,致力于通过数学模型和方法提高算法的效率。如果将ChatGPT与数学优化结合,可以创建出具有很强语言生成能力的优化系统,它可以根据给定的数学模型和约束条件生成最优解。例如,在企业资源规划中,可以利用数学优化模型来生成最优的生产计划,而ChatGPT可以生成这些计划的文字说明,方便人们理解和跟踪。
此外,ChatGPT还可以作为数学优化模型的解释工具。它可以根据数学模型生成的结果生成相关的解释,使人们能够更直观地理解优化的结果。因此,将ChatGPT与数学优化相结合可以使优化结果更容易理解,并可以提高算法的效率和可读性。
三、ChatGPT在数学优化的应用示例
1. ChatGPT辅助数学优化编程
对于数学优化从业者和相关研究人员,编程是在学习与工作中绕不开的一环,无论是建模还是求解都需要具有一定的编程能力。那么ChatGPT在数学优化编程方面有哪些应用可能呢?我们不妨看看ChatGPT自己是怎么回答的。
ChatGPT的训练数据包含自然语言和来自GitHub的数十亿行公共代码。它最擅长 Python,精通 JavaScript、Go、Perl、PHP、Ruby、Swift、TypeScript、SQL 甚至 Shell 等十几种语言。它特别擅长将自然语言翻译成代码,还支持在代码中插入补全。
让我们使用ChatGPT尝试编写一个简单的TSP模型代码:
或者在只给出问题描述的情况下,让ChatGPT自己构建适合的模型:
可以看到,ChatGPT不仅能够帮助编程,还能够帮助建模,甚至能够起到解释器的作用,处理代码并输出解。ChatGPT能够正确使用大部分常用程序,比如调用GUROBI求解器或使用模拟退火算法,部分小众的程序也能给予一些。由于篇幅有限,笔者这里就不再一一测试各种功能,留给大家在看完本文后尝试练习。
2. ChatGPT辅助生成数学优化方案
要问ChatGPT的最大特点是什么,无疑是它令人惊叹的理解和生成自然语言的能力,因此,只要我们能够将优化问题阐述清楚,ChatGPT甚至只需要分析问题描述就能给出答案。对于文本量大或者难以处理的情况,ChatGPT也能给出简单的思路供使用者参考。
比如,ChatGPT对于一个比较复杂的糖果运输问题给出了其求解的逻辑方案:
此外,只要添加简单的指令就能让ChatGPT帮助我们构建一个数学规划模型:
同样的问题,我们只添加了一句话,就能构建出一个符合数学规范的线性规划模型。ChatGPT的强大性能不言而喻,它就好像一个非常smart的人类一样,通晓万事万物。无论你有什么问题,只有询问它,也许就能得到你想要的答案。
3. ChatGPT的数据处理功能
数据处理对数学优化非常重要,因为数学优化是一种以数据为基础的技术,它可以帮助我们更好地理解数据,从而更好地分析和解决问题。数据处理为数学优化提供了良好的基础,因为它可以清晰地表达出数据的结构,并且可以提供有用的信息,以便进行数学优化。
ChatGPT有着如此强大的逻辑推理和语义分析能力,它能够在数据处理中发挥哪些作用呢?让我们再来问问它自己。
非结构化数据指的是没有统一格式或结构的数据,它可以是文本、图像、音频、视频等,在当今数据驱动的世界中起着至关重要的作用。非结构化数据占据了数据总量的80%以上,且随着互联网的发展而不断增长。ChatGPT在处理非结构化数据上能够发挥出非常出色的表现,借助文本分析功能,利用自然语言处理(NLP)、机器学习等技术,可以帮助理解复杂上下文中的概念,并解释语言的歧义以提取关键事实和关系。
示例1 在长段文字中提取出有效数据并生成表格。
示例2 使用ChatGPT进行数据归一化处理。
此外,ChatGPT能够帮助数据可视化,以便更好地理解数据的性质。
四、ChatGPT使用教程
ChatGPT如此强大,如何才能使用它呢?下面笔者给出一些简单教学,不仅限于ChatGPT,还有其他OpenAI开发的系列模型。
首先当然是注册问题,ChatGPT不提供大陆地区的服务,因此需要一些不可说的魔法手段来使用,此外需要境外的电话号码,可以通过租用虚拟号解决,具体请百度。
接下来要如何使用ChatGPT?ChatGPT只需访问https://chat.openai.com/即可使用,网页接口非常人性化,就像你的微信聊天界面。提出问题——给予回答。有什么使用问题可以直接询问ChatGPT,会给出比较详细的回答。
当然ChatGPT也有其不方便的地方,比如无法根据需求调节参数,输出不完整等,这就需要我们自己调用API或者使用其提供的Playground来更好地发挥作用。
Python调用API代码示例。
使用OpenAI官网提供的Playground。
这两种方式都能根据自己的需要选择语言模型、设置回答长度或者控制回答的随机性等参数。比如你更倾向于生成代码,你可以选择code-davinci-002模型,将最大长度调整的大一些;又或者你更想要和ChatOPT进行快速实时的聊天,你可以将随机性调高,最大长度降低以快速处理,这一切都取决于你的需求。
当然,ChatGPT还远远达不到一个无所不能的地步,比如它的数据的处理更多局限于语言或声音文本,对很多复杂的问题也无法给出让人满意的答案。但是,ChatOPT的横空出世无疑是AI邻域革命性的进步,希望不远的未来我们也能研发出如此强大的国产AI平台。
注:在与浙大电信学院沙威老师讨论其文章《ChatGPT在电磁领域的能力到底有多强?》后,我和学生郑新宇一起探索ChatGPT在数学优化中的应用。
编辑:黄继彦