当前位置:首页 > 数码 > GPT-探索-的无穷潜力-从文本生成到代码编写 (探索版和普通版区别)

GPT-探索-的无穷潜力-从文本生成到代码编写 (探索版和普通版区别)

admin7个月前 (04-27)数码31

简介

自 GPT-4 发布以来,我们一直尝试让其修改长篇代码文件。尽管它在解决复杂问题或从零开始创建复杂系统方面表现出色,但在向一个 200 行代码的 Flask 服务器中插入日志时,它却举步维艰。显然后者更为实用。

挑战

我们经常听到的一种抱怨是:可以完成这项任务,但你们的 Sweep. 却不能。这是因为 GPT-4 并不能一致地编辑长篇文件,它往往会在中途写入 Restofthecode ,或错误地复制一段代码,而使用 ChatGPT 的人类可以轻松解决这个算法无法解决的问题。因此,我们不能简单地通过从头开始重写文件的方式来修改文件。

尝试和失败

以下是我们做过的所有让 GPT-4 修改文件的尝试,以及由于 GPT-4 未能正确格式化或计数而导致的成功和失败。

版本 0:简单地重写整个文件

如前所述,完全重写文件存在两个主要问题:

  1. 对于超过 50 行的文件,GPT-4 最终会生成类似 Restofthecode 的内容。
  2. 文件太长。拥有 k 个令牌的文件将需要 k 个输入令牌和 k 个输出令牌。
  3. GPT-4 会错误地复制代码。它有时会删除或添加额外的注释或空白,或更改缩进。

我们来看一个如何解决第一个问题的示例。在本文中,我将使用以下简短的 Flask 服务器实现作为我们正在编辑的文件的示例。出于简洁考虑,我选择了一个简短的示例,因此对于这个特定示例,GPT-4 也许不会出现这些错误,但在较大的文件中经常会出现类似的错误。

Flask application factory from flask import Flask, jsonify, request app = Flask(__name__) Example data tasks = [ { 'id': 1, 'title': 'Buy milk', 'done': False }, { 'id': 2, 'title': 'Clean the house', 'done': False } ] Routes @app.route('/tasks') def get_tasks(): return jsonify({'tasks': tasks}) @app.route('/tasks', methods=['POST']) def create_task(): if not request.json: return jsonify({'error': 'Bad request'}), 400 task = request.json tasks.append(task) return jsonify({'task': task}), 201 @app.route('/tasks/ ', methods=['PUT']) def update_task(task_id): task = next((task for task in tasks if task['id'] == task_id), None) if not task: return jsonify({'error': 'Not found'}), 404 if not request.json: return jsonify({'error': 'Bad request'}), 400 task.update(request.json) return jsonify({'task': task}) @app.route('/tasks/ ', methods=['DELETE']) def delete_task(task_id): task = next((task for task in tasks if task['id'] == task_id), None) if not task: return jsonify({'error': 'Not found'}), 404 tasks.remove(task) return jsonify({'result': 'OK'}) if __name__ == '__main__': app.run(debug=True)

要求 GPT-4 添加日志,我们可能会得到以下内容: Flask application factory from flask import Flask, jsonify, request, logging app = Flask(__name__) Example data tasks = [ { 'id': 1, 'title': 'Buy milk', 'done': False }, { 'id': 2, 'title': 'Clean the house', 'done': False } ] Routes @app.route('/tasks') def get_tasks(): logging.info('Getting all tasks') return jsonify({'tasks': tasks}) @app.route('/tasks', methods=['POST']) def create_task(): logging.info('Creating a task') if not request.json: return jsonify({'error': 'Bad request'}), 400 task = request.json tasks.append(task) logging.info('Task created') return jsonify({'task': task}), 201 @app.route('/tasks/ ', methods=['PUT']) def update_task(task_id): logging.info('Updating a task') task = next((task for task in tasks if task['id'] == task_id), None) if not task: return jsonify({'error': 'Not found'}), 404 if not request.json: return jsonify({'error': 'Bad request'}), 400 task.update(request.json) logging.info('Task updated') return jsonify({'task': task}) @app.route('/tasks/ ', methods=['DELETE']) def delete_task(task_id): logging.info('Deleting a task') task = next((task for task in tasks if task['id'] == task_id), None) if not task: return jsonify({'error': 'Not found'}), 404 tasks.remove(task) logging.info('Task deleted') return jsonify({'result': 'OK'}) if __name__ == '__main__': app.run(debug=True)

显然,我们不能仅凭这段代码创建拉取请求(PR)!我们必须撤销所有 Restofthecode 的修改。

版本 1:使用 DiffLib 修复 restofthecode 救命稻草

最简单的解决方案似乎是检查两个文件的差异,并回滚所有带有 Restofthecode Remainingofthecode 部分的内容。上面示例的差异如下所示:

- Flask application factory + Flask applicationfactory from flask import Flask, jsonify, request, logging

现在,我们只需撤销每个删除后面带一个形如 +Restoftest 注释的部分。我们使用以下方法检查这些注释:

diff_without_rest = '\n'.join([line for line in diff.splitlines() if not line.startswith('')])

在这个示例中,它解决了问题:我们最终得到了我们所期望的结果,即在每个函数的开头有一个打印语句。

限制

不幸的是,这个差异回滚系统的能力仍然相当有限。有时 GPT-4 会写下诸如 Moreuntitestshere Completetheimplementation 、... 等注释,有无限多可能。有些情况下,差异算法无法找到具体应当被替换的行。例如,让我们要求 GPT-4 添加一个删除端点,它的回应是:

Flask application factory from flask import Flask, jsonify, request, logging app = Flask(__name__) @app.route('/tasks') def get_tasks(): logging.info('Getting all tasks') return jsonify({'tasks': tasks}) @app.route('/tasks', methods=['POST']) def create_task(): logging.info('Creating a task') if not request.json: return jsonify({'error': 'Bad request'}), 400 task = request.json tasks.append(task) logging.info('Task created') return jsonify({'task': task}), 201 @app.route('/tasks/ ', methods=['PUT']) def update_task(task_id): logging.info('Updating a task') task = next((task for task in tasks if task['id'] == task_id), None) if not task: return jsonify({'error': 'Not found'}), 404 if not request.json: return jsonify({'error': 'Bad request'}), 400 task.update(request.json) logging.info('Task updated') return jsonify({'task': task}) Delete endpoint @app.route('/tasks/ ', methods=['DELETE']) defdelete_task(task_id): logging.info('Deleting a

GPT是什么?

从文本生成到代码编写

GPT是生成式预训练模型(Generative Pre-trained Transformer)的缩写,它是一种基于Transformer网络架构的人工智能技术。 GPT模型通过大规模的预训练数据,学习自然语言处理的规律,从而具备生成自然语言文本的能力。 它可以根据输入的文本生成高质量、连贯的自然语言文本,使得计算机系统能够更好地理解和生成自然语言。 GPT技术在自然语言处理领域有着广泛的应用前景,如文本生成、文本改写、机器翻译等。 景联文科技作为长三角地区规模最大的AI基础数据服务商之一,拥有千人从业经验丰富的数据标注团队及丰富的图像和文本标注经验,可为ChatGPT模型提供图像和NLP相关数据采集和数据标注服务,根据客户需求迅速调配有相关经验的标注员。 数据质量是模型效果的必要条件,优质的标注人员又是数据质量的保障。 景联文科技拥有丰富的专家资源,有代码、医学、高等数学、世界常识、翻译、文学创作等领域专家可对垂直领域数据信息进行标注,从而保证数据质量,满足当前标注需求。 针对数据定制标注服务,景联文科技拥有先进的数据标注平台与成熟的标注、审核、质检机制,支持计算机视觉:语义分割、矩形框标注、多边形标注、关键点标注、3D立方体标注、2D3D融合标注、目标追踪、属性判别等多类型数据标注;支持自然语言处理:文本清洗、OCR转写、情感分析、词性标注、句子编写、意图匹配、文本判断、文本匹配、文本信息抽取、NLU语句泛化、机器翻译等多类型数据标注。 景联文科技提供的产品为全链条AI数据服务,从数据采集、清洗、标注、到驻场的全流程、垂直领域数据解决方案一站式AI数据服务,满足了不用应用场景下的各类数据采集标注业务的需要,协助人工智能企业解决整个人工智能链条中数据采集标注环节的相对应问题,推动人工智能在更多地场景下实现落地应用,构建完整的AI数据生态。 景联文科技|数据采集|数据标注助力人工智能技术,赋能传统产业智能化转型升级

GPT模型是什么?

ChatGPT(全名:Chat Generative Pre-trained Transformer),是OpenAI 研发的一款聊天机器人程序,于2022年11月30日发布 。ChatGPT是人工智能技术驱动的自然语言处理工具,它能够基于在预训练阶段所见的模式和统计规律,来生成回答,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流,甚至能完成撰写邮件、视频脚本、文案、翻译、代码,写论文等任务。

GPT模型,尤其是它们使用的Transformer架构,代表着AI研究的重大突破。GPT模型的兴起是机器学习广泛采用的转折点,因为该技术现在可用于自动化和改进各种任务,从语言翻译和文档摘要到撰写博客文章、构建网站、设计视觉效果、制作动画、编写代码、研究复杂话题,甚至创作诗歌。这些模型的价值在于其速度和运行规模。例如,您可能需要几个小时来研究、撰写和编辑一篇关于核物理的文章,而GPT模型只需几秒钟就能生成一篇。GPT模型引发AI领域对于实现通用人工智能所做的研究,这项研究意味着机器可以帮助组织达到新的生产力水平,重塑其应用程序和客户体验。

景联文科技是AI基础数据行业的头部企业,拥有千人从业经验丰富的数据标注团队及丰富的图像和文本标注经验,可为ChatGPT模型的大语言模型提供图像和NLP相关数据采集和数据标注服务,并根据客户需求迅速调配有相关经验的标注员。网页链接

针对数据定制标注服务,景联文科技拥有先进的数据标注平台与成熟的标注、审核、质检机制,支持计算机视觉:语义分割、矩形框标注、多边形标注、关键点标注、3D立方体标注、2D3D融合标注、目标追踪、属性判别等多类型数据标注;支持自然语言处理:文本清洗、OCR转写、情感分析、词性标注、句子编写、意图匹配、文本判断、文本匹配、文本信息抽取、NLU语句泛化、机器翻译等多类型数据标注。

景联文科技提供的产品为全链条AI数据服务,从数据采集、清洗、标注、到驻场的全流程、垂直领域数据解决方案一站式AI数据服务,满足了不用应用场景下的各类数据采集标注业务的需要,协助人工智能企业解决整个人工智能链条中数据采集标注环节的相对应问题,推动人工智能在更多地场景下实现落地应用,构建完整的AI数据生态。

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: GPT4

“GPT-探索-的无穷潜力-从文本生成到代码编写 (探索版和普通版区别)” 的相关文章

揭晓大型模型面前的机密-深度揭秘爆火MoE!GPT (揭晓大型模型图片)

揭晓大型模型面前的机密-深度揭秘爆火MoE!GPT (揭晓大型模型图片)

Mistral上周末丢出的磁力链接震惊了开源圈子,这个7B×8E的开源MoE大模型性能曾经抵达了LLaMA270B的级别! 而依据JimFan猜想,假设Mistral外部训练了34B×8E或...

在医疗保健中的突破性进步-人工智能-AI (在医疗保健中预防的重点正确的是)

在医疗保健中的突破性进步-人工智能-AI (在医疗保健中预防的重点正确的是)

导读 GPT-4V 是一款强大的视觉语言模型,但其成本高昂。现在,清华、浙大等中国顶尖学府为我们提供了性能优异的开源 GPT-4V 平替,让大家可以低成本享受视觉语言处理的强大功能。...

把GPT变成算命大师的几步 (改成gpt)

把GPT变成算命大师的几步 (改成gpt)

近年来,人工智能(AI)的发展势头迅猛,它在生活中的应用也越来越广泛。其中,AI算命这一新兴领域更是受到了广泛关注。 这款由OpenAI推出的GPTsStore平台汇聚了海量的GPT应用,...

挑战GPT霸主地位-碾压式AI模型的崛起 (gp超霸是哪国品牌)

挑战GPT霸主地位-碾压式AI模型的崛起 (gp超霸是哪国品牌)

AutoGen是一个创新的框架,它使智能体能够通过自然语言相互交流,共同解决任务。该框架由微软、PSU和华盛顿大学的研究团队开发,受到研究界的广泛关注,并在短短两周内获得了超过10,000...

一篇关于生成式预训练语言模型的全面指南-GPT-深入剖析 (一篇关于生成的作文)

一篇关于生成式预训练语言模型的全面指南-GPT-深入剖析 (一篇关于生成的作文)

原理与应用 GPT(Generative Pre-tnedTransformer)是一种基于深度学习的自然语言处理技术,利用大规模文本数据进行预训练,然后进行微调以执行特定任务。 GP...

使用GPT创建吸睛且引人入胜的长标题 (使用GPT创作)

使用GPT创建吸睛且引人入胜的长标题 (使用GPT创作)

英伟达最新的人工智能模型Eureka在训练机器人方面取得了令人瞩目的突破。该模型能够生成奖励函数,从而帮助机器人完成各种复杂任务,并在80%的任务中超越人类专家。 训练机器人,比人类更拿手...

的影响-GPT-利用人工智能技术变革商业 (的影响因素)

的影响-GPT-利用人工智能技术变革商业 (的影响因素)

人工智能语言理解的障碍与解决方案:复述和扩写提示 简介 随着人工智能(AI)技术的快速发展,大语言模型(LLM)在各种自然语言处理任务中表现出色。LLM对生成提示的质量高度敏感,这提示我们如何有效...