让 ChatGPT 成为算法工程师的数据助理

让 ChatGPT 成为算法工程师的数据助理

最近被 OpenAI 的 ChatGPT 刷屏了。我猜你已经读了很多关于 ChatGPT 的文章,不需要再介绍了。假如碰巧您还不太了解 ChatGPT 是什么,可以先看一下这篇文章,然后再回来继续。

与 ChatGPT 对话很有趣,甚至很有启发性。我们的内容创作部门已经将 ChatGPT 用于文案生成。那么对研发部门,ChatGPT 是否有用呢?我在算法团队做了一个测试,让 ChatGPT 来完成算法研究中频繁要做的数据清洗和处理问题,结果让人非常满意。我甚至愿意聘请 ChatGPT 做算法团队的数据工程师。

在这里插入图片描述

文章目录

    • 简单数据处理
      • 任务目标
      • 输出结果
      • 分析
    • 重构代码
      • 任务目标
      • 输出结果
      • 分析
    • 扩展代码
      • 任务目标
      • 输出结果
      • 分析
    • 总结

简单数据处理

我们首先从简单的任务入手,让 ChatGPT 完成数据加载和简单的清洗工作。

任务目标

  1. 加载数据集;
  2. 确保数据集中所有值均为数值类型,如果不是则尝试将其转换为数值类型;
  3. 检查缺失值;
  4. 数据集分成训练集和测试集。

上面这4个任务是算法执行前必须要做的常规工作。我们看一下 ChatGPT 的表现

输出结果

在这里插入图片描述

import pandas as pd
import numpy as npdef load_csv_data(file_path):# Load the csv file into a pandas DataFramedf = pd.read_csv(file_path)# Convert string type data to numeric type and save the mapping in a dictionaryconversion_map = {}for column in df.columns:if df[column].dtype == 'O':unique_values = df[column].unique()conversion_map[column] = {unique_values[i]: i for i in range(len(unique_values))}df[column] = df[column].map(conversion_map[column])# Check for missing valuesmissing_value_counts = df.isnull().sum()for column, missing_count in missing_value_counts.items():if missing_count > 1:df.drop(df[df[column].isnull()].index, inplace=True)elif missing_count == 1:df[column].fillna(df[column].mean(), inplace=True)# Split the dataset into training and validation setstrain_df = df.sample(frac=0.8, random_state=0)val_df = df.drop(train_df.index)return train_df, val_df, conversion_map

分析

上面代码可以完美完成目标任务,从 csv 文件中加载数据集,并以80/20的比例将数据集拆分为测试集和训练集,关键逻辑还加上了注释,ChatGPT 甚至贴心的给出了函数使用方法。

ChatGPT 生成上面代码总共用时 116 秒,同时我们的数据工程师编写同样功能的代码用时 225 秒。二者的代码差异不大,但是我们的数据工程师没写注释。

上面的任务是数据工程师几乎天天都要写的代码,他们很熟练。我又找了一个大学刚毕业还在实习期的数据助理来写,居然半个小时才完成,由于对接口不熟悉,大量时间花在了百度上[捂脸]。

第一轮比试,从各个维度上,都是 ChatGPT 胜。

重构代码

在上一轮的比试中,我发现我们的数据工程师有“偷鸡”行为——由于平时经常需要完成上面工作,他将很多功能封装成了独立的函数,用的时候直接引入或拷贝。使用函数按照逻辑组织代码,不仅能够促进代码复用,还有利于代码维护。所以我们接下来试着让 ChatGPT 重构一下自己的代码。

任务目标

将上面的代码按照功能合理地拆分成若干函数。

输出结果

在这里插入图片描述

import pandas as pd
import numpy as npdef load_csv(file_path):return pd.read_csv(file_path)def convert_strings_to_numeric(df):conversion_map = {}for column in df.columns:if df[column].dtype == 'O':unique_values = df[column].unique()conversion_map[column] = {unique_values[i]: i for i in range(len(unique_values))}df[column] = df[column].map(conversion_map[column])return df, conversion_mapdef handle_missing_values(df):missing_value_counts = df.isnull().sum()for column, missing_count in missing_value_counts.items():if missing_count > 1:df.drop(df[df[column].isnull()].index, inplace=True)elif missing_count == 1:df[column].fillna(df[column].mean(), inplace=True)return dfdef split_data(df):train_df = df.sample(frac=0.8, random_state=0)val_df = df.drop(train_df.index)return train_df, val_dfdef prepare_data(file_path):df = load_csv(file_path)df, conversion_map = convert_strings_to_numeric(df)df = handle_missing_values(df)train_df, val_df = split_data(df)return train_df, val_df, conversion_map

分析

ChatGPT拆分出5个函数:

  • load_csv(file_path) 负责从 csv 文件中加载数据集,返回 DataFrame;
  • convert_strings_to_numeric(df) 负责将 DataFrame 中的非数值类型数据转换为数值类型,并记录转换映射表;
  • handle_missing_values(df) 负责处理缺失值;
  • split_data(df) 负责将数据集拆分为训练集和测试集;
  • prepare_data(file_path) 将上面4给函数串起来,构成一个 pipeline。

不得不说,ChatGPT 有一次完美地完成了任务!并且函数名起得非常好,看函数名就能知道函数的功能,比很多中国程序员用拼音或缩写命名函数友好多了。

扩展代码

重构后的代码结构已经非常清晰了,但是还是有缺陷,那就是不够灵活,很多规则都是写死的。为了让代码更灵活、可扩展性更强,我们一般会将变量以参数的形式传入。

任务目标

重构上面的代码,以参数的形式从命令行传入以下内容:

  • csv 格式数据集的路径
  • 拆分训练集和验证集的大小
  • 阈值,缺失值大于此阈值则删除记录,小于等于此阈值则处理缺失值

输出结果

在这里插入图片描述

import pandas as pd
import numpy as np
import argparsedef load_csv(file_path):return pd.read_csv(file_path)def convert_strings_to_numeric(df):conversion_map = {}for column in df.columns:if df[column].dtype == 'O':unique_values = df[column].unique()conversion_map[column] = {unique_values[i]: i for i in range(len(unique_values))}df[column] = df[column].map(conversion_map[column])return df, conversion_mapdef handle_missing_values(df, threshold):missing_value_counts = df.isnull().sum()for column, missing_count in missing_value_counts.items():if missing_count > threshold:df.drop(df[df[column].isnull()].index, inplace=True)elif missing_count <= threshold:df[column].fillna(df[column].mean(), inplace=True)return dfdef split_data(df, split_ratio):train_df = df.sample(frac=split_ratio, random_state=0)val_df = df.drop(train_df.index)return train_df, val_dfif __name__ == "__main__":parser = argparse.ArgumentParser(description='Prepare data for machine learning.')parser.add_argument('file_path', help='Path to the csv file.')parser.add_argument('--split-ratio', type=float, default=0.8, help='Ratio of the training set size.')parser.add_argument('--threshold', type=int, default=1, help='Threshold for handling missing values.')args = parser.parse_args()df = load_csv(args.file_path)df, conversion_map = convert_strings_to_numeric(df)df = handle_missing_values(df, args.threshold)train_df, val_df = split_data(df, args.split_ratio)

分析

ChatGPT 很好地理解了我们的意图,引入了argparse模块来管理和解析命令行参数,关键是参数名起的也非常合理,参数说明也非常准确(尽管是英文的)。参数都正确地传入了所属的函数,又一次完美的完成了任务。

总结

ChatGPT 根据我们提供的规范,在创建、重构、扩展一个简单的数据预处理 Python 脚本方面做得非常出色,每一步的结果都符合要求。虽然这不是一个复杂任务,确实日常工作中最常见的基本工作。ChatGPT 的表现确实惊艳了众人,预示着它朝着成为真正有用的编程助手迈出重要的一步。

最终我们从如下几个方面将 ChatGPT 和我们的数据工程师做了对比:

ChatGPT人类程序员
正确性
速度
编码规范
文档注释

可见 ChatGPT 在编码速度和编码习惯上都完胜人类工程师。这让我不得不开始担心程序员未来的饭碗。是的,你没有看错!程序员这个曾经被认为是最不可能被AI取代的职业,如今将面临来自ChatGPT 的巨大挑战。根据测试,ChatGPT 已经通过 Google L3 级工程师测试,这意味着大部分基础 coding 的工作可以由 ChatGPT 完成。尽管 ChatGPT 在涉及业务的任务上表现不佳,但未来更可能的工作方式是架构师或设计师于 ChatGPT 协同完成工作,不再需要编码的码农。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/2285.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT生成式算法及发展历程

引言 GPT&#xff08;Generative Pre-Trained Transformer&#xff09;系列是OpenAI开发的一系列以Transformer[2]为基础的生成式预训练模型&#xff0c;这个系列目前包括文本预训练模型GPT-1[3]&#xff0c;GPT-2[4]&#xff0c;GPT-3[5]&#xff0c;InstructGPT[7]、ChatGPT…

ChatGPT背后算法—RLHF都有哪些必读论文

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; ChatGPT有多火&#xff1f; 用一个通俗易懂的话来表达&#xff0c;ChatGPT就是爱豆中的鹿晗、蔡徐坤、杨超越&#xff1b;脱口秀界的李诞、徐志胜&#xff1b;足球界的梅西、C罗、姆巴佩... 前段时间&#xff0…

ChatGPT第二弹:PPO算法

作者&#xff1a;陈一帆 出处&#xff1a;哈工大SCIR 进NLP群—>加入NLP交流群 1. ChatGPT与PPO算法 在上篇文章中我们提到&#xff0c;ChatGPT的训练过程主要分为三步&#xff1a;微调GPT-3模型、人工对微调后模型的生成结果打分以训练得到一个奖励模型、 基于微调后的GPT-…

【自然语言处理】ChatGPT 相关核心算法

ChatGPT 相关核心算法 ChatGPT 的卓越表现得益于其背后多项核心算法的支持和配合。本文将分别介绍作为其实现基础的 Transformer 模型、激发出其所蕴含知识的 Prompt / Instruction Tuning 算法、其涌现出的 思维链能力、以及确保其与人类意图对齐的 基于人类反馈的强化学习算法…

ChatGPT技术原理解析:从RL之PPO算法、RLHF到GPT4、instructGPT

写在最前面&#xff0c;为了彻底写清楚ChatGPT背后的所有关键细节&#xff0c;每个月不断深挖&#xff0c;从1月初写到6月底仍未完工&#xff0c;除了本文之外&#xff0c;过程中涉及到多篇文章(RL入门、论文解读、微调实战、代码实现、CV多模态)&#xff0c;再加上之前写的Tra…

使用ChatGPT生成了十种排序算法

前言 当前ChatGPT非常火爆&#xff0c;对于程序员来说&#xff0c;ChatGPT可以帮助编写很多有用的代码。比如&#xff1a;在算法的实现上&#xff0c;就可以替我们省很多事。所以&#xff0c;小试牛刀一下&#xff0c;看看ChatGPT生成了排序算法怎么样&#xff1f; 简介 排序…

ChatGPT/InstructGPT详解

来源&#xff1a;京东云 海豚数据科学实验室 本文约7000字&#xff0c;建议阅读15分钟 要搞懂ChatGPT&#xff0c;我们必须要先读懂InstructGPT。 前言 GPT系列是OpenAI的一系列预训练文章&#xff0c;GPT的全称是Generative Pre-Trained Transformer&#xff0c;顾名思义&…

我用低代码结合ChatGPT开发,每天多出1小时摸鱼

&#x1f449;腾小云导读 GPT 出现之后&#xff0c;很多人推测大量的软件都会因为其出现而重写。本文主要是低代码平台与 ChatGPT 结合的一些思考以及实践。期望与各位读者一起搭上 AI 这列快车&#xff0c;为开发提提速&#xff5e; &#x1f449;目录 1 背景 2 Demo 演示 3 思…

ChatGPT是智能硬件的春天

智能音箱&#xff0c;一度被亚马逊带领引爆。 国内京东&#xff0c;阿里&#xff0c;百度&#xff0c;小米&#xff0c;腾讯等厂家参下&#xff0c;蓬勃发展。 然而&#xff0c;在2021到2022年&#xff0c;智能音箱就可开始下滑&#xff0c;叮咚音箱退出历史舞台。 转机出现在2…

万字长文剖析ChatGPT

原文链接&#xff1a;https://mp.weixin.qq.com/s/8IFcQDhsLIWJIx8siF-wdQ 简单来说&#xff0c;ChatGPT 是自然语言处理&#xff08;NLP&#xff09;和强化学习&#xff08;RL&#xff09;的一次成功结合&#xff0c;考虑到读者可能只熟悉其中一个方向或者两个方向都不太熟悉…

推荐:ChatGPT指令大全(37个!)

使用时&#xff0c;可参考这些语境。会问问题&#xff0c;才是最重要的。 参考&#xff1a;AGI 时代必备&#xff1a;《提问的艺术——让ChatGPT导出高质量答案》 1. 写报告&#xff1a;我现在正在 [报告的情境与目的]。我的简报主题是 [主题]&#xff0c;请提供 [数字] 种开头…

亚马逊高调宣布入局ChatGPT大战,CEO :个人免费使用,改变所有体验,弯道超车!...

点击“开发者技术前线”&#xff0c;选择“星标” 让一部分开发者看到未来 转载自&#xff1a;机器之心 新工具叫 Bedrock&#xff0c;用于一揽子替代 ChatGPT 和 DALL-E 2&#xff0c;并支持了 Titan 大模型。 一夜之间&#xff0c;亚马逊来了个「弯道超车」。 在全球各大科技…

EXCEL 也可以使用chatGPT了,教程来了

1、打开EXCEL ,点击插入&#xff0c;选择加载项&#xff1a;如下图 2、搜索Openai ,点击右侧添加BrainiacHelper 插件即可&#xff1b; 3、登录openai 右上角获取openai apikeys &#xff1b; 完成以上操作就可以在Excel 中使用 chatGPT了&#xff0c; 喜欢的小伙伴可以试试哦…

突发!ChatGPT 开始大面积封号,注册功能关闭!亚洲成重灾区,网友自救喊话:不要登录,不要登录...

公众号关注 「奇妙的 Linux 世界」 设为「星标」&#xff0c;每天带你玩转 Linux &#xff01; ​ “不要登录ChatGPT&#xff01;” “暂时远离人工智能和ChatGPT概念板块高位股&#xff01;” 就在这两天&#xff0c;一些关于ChatGPT的疾呼突然在各种社交平台和群聊刷屏了。 …

chatgpt入门体验【具体操作】

chatgpt入门体验【具体操作】 前提操作步骤遇到问题 前提 这个得花点小烟钱才行。 操作步骤 1、账号注册 https://chat.openai.com/auth/login 2、虚拟手机号 https://sms-activate.org/ 我是用的是网易邮箱 充值 可使用支付宝 选择openAI 3、打开openAI 注册输入验证码 …

一键部署属于自己的ChatGPT-Next-Web

完整功能刚需&#xff1a; OpenAI 注册登录之后给的 api Key GitHub账号 Netlify账号 Tip&#xff1a; 注册 OepenAI账号 需要用国外手机号 这里建议去一些渠道购买账号 十块钱不到如果访问 OpenAI 的话 一定要挂欧美节点 否则禁止IP访问 概率会被封号为什么用 Netlify 托…

ChatGPT - 横看成岭侧成峰

定义 ChatGPT 是什么&#xff1f; ChatGPT是由OpenAI开发的一个人工智能聊天机器人程序&#xff0c;由 OpenAI 公司于2022年11月推出。该程序使用基于GPT-3.5架构的大型语言模型并通过强化学习进行训练。 ChatGPT以对话方式进行交互&#xff0c;可以用于包括自动文本生成、自…

ChatGPT探索系列之一:理解ChatGPT的背景和应用领域

文章目录 前言一、ChatGPT的背景1. ChatGPT的背景&#xff1a;深入解析2 ChatGPT的最新架构&#xff1a;GPT-4 二、ChatGPT的应用场景1.ChatGPT在教育领域的应用2. ChatGPT在医疗领域的应用3. ChatGPT在金融领域的应用4. 客户服务领域 总结 前言 ChatGPT发展到目前&#xff0c…

ChatGPT 账号咋了:Sorry, you have been blocked

问题描述 早晨登录&#xff0c;提示如下图所示 别慌!!!! 真的可能会慌&#xff0c;因为很多资料还没有导出保存&#xff0c;账号不能用&#xff0c;很多的工作白做了 解决办法 切换代理IP &#xff0c;每个工具可能操作方法不一样清除openAI相关的cookies 再次登录成功…

chatgpt赋能python:Python查找手机号码

Python查找手机号码 在今天的数字时代&#xff0c;手机号码已成为每个人生活中必不可少的一部分。虽然我们可以轻松地拥有一部手机&#xff0c;但是对于那些需要通过电话来联系客户、朋友或家庭成员的人&#xff0c;获取正确的手机号码就显得尤为重要。 这就是为什么Python查…