代码解释器到底是什么?他能干什么?对哪些人有用,存在什么问题?今天这篇文章讲清楚。
问题一,代码解释器到底是什么?简单来说,它是一个可以将PYTHON代码写入Jupyter notebook, 并在LINUX沙盒中运行的chatGPT模型。有点绕,不知道你听明白没有?下面我具体解释一下。
上图是我们正常的一个防护流程,而现在code interpreter就在原有的GPT4大模型基础上,增加了一个新的功能。这个功能就是如果你在ChatGPT的对话当中的时候,就会把这段代码送到LINUX服务器中的沙盒环境中执行,然后再把执行的结果返回出来,最后输出给用户,这就是整个代码解释器的大致流程。在这个过程中最关键的一环就是这个LINUX服务器中的沙盒,沙盒就是为我们程序进行提供一种隔离的环境。也就是说程序只能在这个盒子里面去运行,它无法访问外面的服务器或者系统,更无法对服务器造成干扰,几乎是绝对安全的运行,类似于虚拟机或者docker,但又不完全是。那么这个沙盒里到底装了什么东西,我估计大概有这些东西。临时的磁盘空间,Python环境,Python库,Python解释器,Jupyter Not。并且我们刚刚说过,沙盒是封闭运行的,所以沙盒自带的Python库就决定了代码解释器的能力,根据我的查找,预安装大概有330多个库。
我们可以在这个网址查看是否有我们需要的库,并且我们可以在这里搜索。如果需要一个PDF的处理库,我们就可以看到可以用到的PDF库有哪些。当然还有更多的库,比如有数据分析的,图形处理的,数据可视化的,地理信息可视化的OCR,图像识别、音视频处理,还有机器学习等等。所以代码解释器之所以厉害,就是把原来的PYTHON能够做的事融入到AI当中,让Python能够更加高效和快捷的完成我们想要的工作。对比ChatGPT default最重要的是,它多了一个能够运行Python的沙盒。就是比如我们之前用的ChatGPT写的这个发票终结者软件,GPT4同样可以为我们生成代码,只是没有这个运行环境。我需要在VS code中反复的运行和调试这个代码,再反馈给GPT4,但是现在代码解释器就省去了我自己运行代码的这个过程,就大大提高了我们编程的效率。所以最终的结论就是代码解释器就是AI+PYTHON+Jupyter notebook,所以它是一个新事物。但是它又不是一个新事物,因为它生成的结果就是以前Python可以处理的东西,但可以肯定的是,它肯定不是GPT4.5,它更不会把地球炸了。
问题二,代码解释器能干什么?答案就是在沙盒环境中Python能干的事,代码解释器自己就能干。不过OpeanAI把绝大多数Python包安装到沙盒当中,所以可以笼统的讲,凡是Python能干的绝大多数的事,代码解释器就能干。最重要的是它的效率极高。以下是我做的一些功能划分。
1、数据处理与分析,这是Python非常强大的能力。而现在代码解释器继承了这个能力,所以它能够高效的处理各种数据清洗,转换和分析的任务。比如我们有一个数据表格就可以上传到代码解释器,然后可以生成我们想要的各种数据分析的方式。比如柱状图,饼图、直方图、散点图,箱线图、小提琴图、等高线图、雷达图、3D图、面积图、阶梯图、复合图、词云图、坐标图等等。只要是你想象得到的数据处理方式,它都能够处理。
2、数学和科学计算,故名思义,代码解释器可以执行各种数学和科学计算,并生成各种图表和可视化的效果。你知道3Blue 1Brown吗?他的视频就是Python代码写的,并且他有一个Python库叫做Manim,在上面,你可以完成各种数学和科学的计算,你看看他的视频就知道了。线性代数、傅里叶变换、概率论,微积分等等效果应有尽有。所以只要你愿意在代码解释器的加持下,只要你稍微学一点Python,或者懂一点Python,你也可以完成这种科学和数学相关的问题。
比如画出这个函数的图像,或者在复平面内画出复数Z^Z次方的图像,更或者是股票的走势等等。只要是你能够想象出来的图像,它都能够给你画出来。
3、机器学习,PYTHON在机器学习方面可以说是绝对的厉害。现在有了代码解释器的加持,机器学习和人工智能将会让普通人更加容易接触这方面的内容。但是有一点需要提醒大家的是,代码解释器的算力非常小,而且它的计算时间有限。如果你需要在沙盒中去跑工程的话,可能会让你有失所望。
4、文本处理,代码解释器可以进行各种文本处理,包括PDF、TXT、Json 、HTML的文件的处理。比如这个字幕文件,我现在要怎么处理呢?我只需要得到这个文字,我不需要有这个时间以及这个序号,我要怎么处理。如果我们自己处理的话,可能就这样一个一个删是吧?但是这样是非常的麻烦的。我们不知道要删到猴年马月,所以现在,我们需要借助这个代码解释器帮我们处理,把这个文件加载进来,告诉ChatGPT。这是一个字幕文件,我们需要把序号和时间删掉,然后再把文件传给我们。我们就只要点击下载。他就帮我们处理完成了,这就是ChatGPT处理文本的能力。
5、文件处理和交互。除了刚刚说的文本处理之外,它还可以读写文件,并处理文本系统中的任务。比如说这里一个压缩包,压缩包里面有很多文件,这里面的内容我给大家看一下,就是很多图片以及点的文件。现在我需要做一件事,把所有的micro Operator切换成这个group Operator,因为这里面有很多的文件。如果我一个一个去操作非常的麻烦。所以现在我们借用这个代码解释器来处理。首先我把这个压缩包上传给他,我们告诉这个ChatGPT解压这个包,然后找到文件中所有包含.setting后缀文件,然后再把这个文件里面的所有MacroOperator替换成GroupOperator,他很快就处理好了。然后现在我们就结合到当前文件,把它们全部给覆盖掉,覆盖完之后我们重新打开,所以说这就是一种文件操作。但是我想说的是Python很早之前就能做这些事了,只不过是现在代码解释器帮我们更加高效的完成了这件事而已。
问题三,代码解释器对哪些人有用?不得不说,代码解释器确实很强大,但是我觉得代码解释器对于绝大多数人来讲都没有用。为什么这么说?因为我相信在屏幕前的你肯定没有在工作或者生活中把代码解释器用在具体的事情当中。如果有也只是玩玩而已。而我刚刚说的这些数据处理的事情,有几个是你知道的,又有几个是你用的上的呢?
下面是我一个大概的估计,总体来说是我和ChatGPT探讨之后的估计,就是按全球职业来讲,大概有多少百分比,对哪些行业有用,还是哪些职业有用。首先看一下是非常有用的,约占5%。这一类人包括数据科学家、软件工程师、研究员和其他专门用PYTHON作为主要工具的工作人员,他们的工作很大程度上依赖Python编程。有用约占15%,这一类人包括一些科技行业的工作者,比如网络工程师、技术管理员,以及一些在科技公司工作但不直接编写代码的职业。对于这些人来讲,代码解释器的能力可以更好的帮助他们完成相应的工作。基本有用约占30%。这一类人可能包括一些需要数据处理,但又不需要编写复杂代码的职业,比如市场分析师,财务分析师,或者一些在科学或工程领域的工作者,对他们来讲,他们可能偶尔会使用代码解释器。但是这些并不是他们的工作的主要内容。还有最重要的一个占比就是无用,约占50%,这些人包括那些工作上基本上不涉及编程的职业,比如说销售、人力资源、医生、律师、艺术家等等。这些人他们很少,或者根本用不到Python,甚至都用不到电脑。请注意,这是一个并且基于全球范围的职业分布,实际上它的比例会根据具体的地区或者行业有所不同。
问题四,代码解释器存在什么问题。可以说代码解释器也是非常强大的一个工具,它可以自动的编写和执行PYTHON代码,并且把结果返回给用户。然而就像任何一个技术一样,有优点,也有缺点,代码解释器也有它的潜在问题和限制。
下面是我做的一些问题的总结,给大家看一下。
1、环境限制,代码解释器运行在一个沙盒环境中,这个环境不包括所有的Python库。这意味着如果你的代码需要用到一个沙盒环境中没有的库,那么你的代码将无法执行,并且受环境的限制,沙盒的文件系统访问权限也是受限的,更不要说访问沙盒之外的文件系统。
2、网络访问问题,出于安全和隐私的考虑,代码解释器通常不能访问网络,这意味着你在运行代码时需要任何联网的操作都无法执行。比如说下载数据,访问API、爬虫等等,都是不能执行的。
3、资源和运营时间的限制,代码解释器的计算资源,比如CPU和内容,它是很有限的。如果你的代码解释器需要大量的计算资源,比如设计复杂的机器学习建模,那么你可能就无法在这个沙盒中运行。而且我想告诉大家的是,代码解释器的运行时间限制是60秒,超过60秒就会自动中断。
4、实时交付限制。你有没有发现你在聊天记录中,想继续之前的代码解释器对话是不行的,这是因为代码解释器通常只支持一次性的代码运行,并且它对你上传数据所记的时间也是有限的。超过了时间限制,你可能就需要重新上传数据。
5、缺少一些中文支持,就是在数据分析过程中,最好还是用英文来对话,否则你可能会显示不正常,或者你的分析能力会不如英文环境来的好。
不过请注意上面列出的并不是代码解释器的问题,而是openAI出于安全和隐私考虑,或者说技术上的限制导致的一些集体问题。不过我希望这些问题能够在未来的版本中得到改进。所以我的结论就是,小事可以找代码解释器,大事和专业的事,还是得靠自己。