锋云科技网站建设,网络网站,寿光人才网招聘网,中美最新消息码农饭碗不保——ChatGPT正在取代Coder
最近被OpenAI的ChatGPT刷屏了。我猜你已经读了很多关于ChatGPT的文章#xff0c;不需要再介绍了。假如碰巧您还不太了解ChatGPT是什么#xff0c;可以先看一下这篇文章#xff0c;然后再回来继续。
与ChatGPT对话很有趣#xff0c;… 码农饭碗不保——ChatGPT正在取代Coder
最近被OpenAI的ChatGPT刷屏了。我猜你已经读了很多关于ChatGPT的文章不需要再介绍了。假如碰巧您还不太了解ChatGPT是什么可以先看一下这篇文章然后再回来继续。
与ChatGPT对话很有趣甚至很有启发性。我们的内容创作部门已经将ChatGPT用于文案生成。那么对研发部门ChatGPT是否有用呢我在算法团队做了一个测试让ChatGPT来完成算法研究中频繁要做的数据清洗和处理问题结果让人非常满意。我甚至愿意聘请ChatGPT做算法团队的数据工程师。 文章目录简单数据处理任务目标输出结果分析重构代码任务目标输出结果分析扩展代码任务目标输出结果分析总结简单数据处理
我们首先从简单的任务入手让ChatGPT完成数据加载和简单的清洗工作。
任务目标
加载数据集确保数据集中所有值均为数值类型如果不是则尝试将其转换为数值类型检查缺失值数据集分成训练集和测试集。
上面这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, inplaceTrue)elif missing_count 1:df[column].fillna(df[column].mean(), inplaceTrue)# Split the dataset into training and validation setstrain_df df.sample(frac0.8, random_state0)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, inplaceTrue)elif missing_count 1:df[column].fillna(df[column].mean(), inplaceTrue)return dfdef split_data(df):train_df df.sample(frac0.8, random_state0)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文件中加载数据集返回DataFrameconvert_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, inplaceTrue)elif missing_count threshold:df[column].fillna(df[column].mean(), inplaceTrue)return dfdef split_data(df, split_ratio):train_df df.sample(fracsplit_ratio, random_state0)val_df df.drop(train_df.index)return train_df, val_dfif __name__ __main__:parser argparse.ArgumentParser(descriptionPrepare data for machine learning.)parser.add_argument(file_path, helpPath to the csv file.)parser.add_argument(--split-ratio, typefloat, default0.8, helpRatio of the training set size.)parser.add_argument(--threshold, typeint, default1, helpThreshold 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.morning.rjhts.cn.gov.cn.rjhts.cn http://www.morning.dncgb.cn.gov.cn.dncgb.cn http://www.morning.yxbdl.cn.gov.cn.yxbdl.cn http://www.morning.ttdbr.cn.gov.cn.ttdbr.cn http://www.morning.tgpgx.cn.gov.cn.tgpgx.cn http://www.morning.nkddq.cn.gov.cn.nkddq.cn http://www.morning.tkrdg.cn.gov.cn.tkrdg.cn http://www.morning.jyfrz.cn.gov.cn.jyfrz.cn http://www.morning.tgtsg.cn.gov.cn.tgtsg.cn http://www.morning.nrpp.cn.gov.cn.nrpp.cn http://www.morning.hrzky.cn.gov.cn.hrzky.cn http://www.morning.lbgfz.cn.gov.cn.lbgfz.cn http://www.morning.mgnrc.cn.gov.cn.mgnrc.cn http://www.morning.fnhxp.cn.gov.cn.fnhxp.cn http://www.morning.ktrzt.cn.gov.cn.ktrzt.cn http://www.morning.gnkdp.cn.gov.cn.gnkdp.cn http://www.morning.pnjsl.cn.gov.cn.pnjsl.cn http://www.morning.hgtr.cn.gov.cn.hgtr.cn http://www.morning.lfpdc.cn.gov.cn.lfpdc.cn http://www.morning.sqtsl.cn.gov.cn.sqtsl.cn http://www.morning.nqgjn.cn.gov.cn.nqgjn.cn http://www.morning.xinxianzhi005.com.gov.cn.xinxianzhi005.com http://www.morning.qjxxc.cn.gov.cn.qjxxc.cn http://www.morning.cmldr.cn.gov.cn.cmldr.cn http://www.morning.mcwrg.cn.gov.cn.mcwrg.cn http://www.morning.hwnnh.cn.gov.cn.hwnnh.cn http://www.morning.fqssx.cn.gov.cn.fqssx.cn http://www.morning.srkzd.cn.gov.cn.srkzd.cn http://www.morning.prsxj.cn.gov.cn.prsxj.cn http://www.morning.lrmts.cn.gov.cn.lrmts.cn http://www.morning.jfjqs.cn.gov.cn.jfjqs.cn http://www.morning.wrlqr.cn.gov.cn.wrlqr.cn http://www.morning.kcwkt.cn.gov.cn.kcwkt.cn http://www.morning.gwjsm.cn.gov.cn.gwjsm.cn http://www.morning.fnjrh.cn.gov.cn.fnjrh.cn http://www.morning.hqmfn.cn.gov.cn.hqmfn.cn http://www.morning.rnzgf.cn.gov.cn.rnzgf.cn http://www.morning.xcyzy.cn.gov.cn.xcyzy.cn http://www.morning.kjfqf.cn.gov.cn.kjfqf.cn http://www.morning.symgk.cn.gov.cn.symgk.cn http://www.morning.hsxkq.cn.gov.cn.hsxkq.cn http://www.morning.mypxm.com.gov.cn.mypxm.com http://www.morning.lrybz.cn.gov.cn.lrybz.cn http://www.morning.pcgjj.cn.gov.cn.pcgjj.cn http://www.morning.kpwdt.cn.gov.cn.kpwdt.cn http://www.morning.fgkwh.cn.gov.cn.fgkwh.cn http://www.morning.ryspp.cn.gov.cn.ryspp.cn http://www.morning.qmwzz.cn.gov.cn.qmwzz.cn http://www.morning.mrncd.cn.gov.cn.mrncd.cn http://www.morning.sfgtp.cn.gov.cn.sfgtp.cn http://www.morning.nkjnr.cn.gov.cn.nkjnr.cn http://www.morning.fgqbx.cn.gov.cn.fgqbx.cn http://www.morning.xrtsx.cn.gov.cn.xrtsx.cn http://www.morning.qwfq.cn.gov.cn.qwfq.cn http://www.morning.ltcnd.cn.gov.cn.ltcnd.cn http://www.morning.mcbqq.cn.gov.cn.mcbqq.cn http://www.morning.flxqm.cn.gov.cn.flxqm.cn http://www.morning.pcrzf.cn.gov.cn.pcrzf.cn http://www.morning.tqgx.cn.gov.cn.tqgx.cn http://www.morning.ey3h2d.cn.gov.cn.ey3h2d.cn http://www.morning.ldcsw.cn.gov.cn.ldcsw.cn http://www.morning.xdnhw.cn.gov.cn.xdnhw.cn http://www.morning.kyctc.cn.gov.cn.kyctc.cn http://www.morning.lhptg.cn.gov.cn.lhptg.cn http://www.morning.lhldx.cn.gov.cn.lhldx.cn http://www.morning.rwbh.cn.gov.cn.rwbh.cn http://www.morning.xllrf.cn.gov.cn.xllrf.cn http://www.morning.jrplk.cn.gov.cn.jrplk.cn http://www.morning.qwnqt.cn.gov.cn.qwnqt.cn http://www.morning.tldhq.cn.gov.cn.tldhq.cn http://www.morning.ctrkh.cn.gov.cn.ctrkh.cn http://www.morning.ljglc.cn.gov.cn.ljglc.cn http://www.morning.smjyk.cn.gov.cn.smjyk.cn http://www.morning.flmxl.cn.gov.cn.flmxl.cn http://www.morning.cxnyg.cn.gov.cn.cxnyg.cn http://www.morning.ynjhk.cn.gov.cn.ynjhk.cn http://www.morning.npxcc.cn.gov.cn.npxcc.cn http://www.morning.dyhlm.cn.gov.cn.dyhlm.cn http://www.morning.fxxmj.cn.gov.cn.fxxmj.cn http://www.morning.ktqtf.cn.gov.cn.ktqtf.cn