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

article/2025/4/20 22:32:39

让 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://chatgpt.dhexx.cn/article/xZGeWZmM.shtml

相关文章

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原理详解

InstructGPT原文&#xff1a;https://arxiv.org/pdf/2203.02155.pdf chatCPT试用连接&#xff1a;https://chat.openai.com/auth/login 自从chatGPT问世以来&#xff0c;它一路爆火&#xff0c;目前注册用户已达1亿。它的出圈让各大公司纷纷布局AIGC&#xff0c;有不少人预言&…

【ChatGPT】ChatGPT的核心算法原理图文解析、大模型训练过程和数据集来源

目录 ChatGPT的核心算法、模型和数据来源 一、引言:ChatGPT的概述与背景

算法工程师深度解构ChatGPT技术

引言 | 本栏目特邀腾讯知名语言文本项目算法工程师冉昱、薛晨&#xff0c;用专业视野带你由浅入深了解ChatGPT技术全貌。它经历了什么训练过程&#xff1f;成功关键技术是什么&#xff1f;将如何带动行业的变革&#xff1f;开发者如何借鉴ChatGPT思路和技术&#xff0c;投入到日…

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

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

ChatGPT相关核心算法

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

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生成了十种排序算法

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

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

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

ChatGPT 专业应用:撰写警告跟卖者邮件

正文共 1044 字&#xff0c;阅读大约需要 4 分钟 电商运营必备技巧&#xff0c;您将在4分钟后获得以下超能力&#xff1a; 生成跟卖者警告信 Beezy评级 &#xff1a;B级 *经过简单的寻找&#xff0c; 大部分人能立刻掌握。主要节省时间。 推荐人 | nanako 编辑者 | Linda ●此…

亚马逊云科技:你要的并不是ChatGPT,而是强大和经济的算力

2022年12月&#xff0c;AI创业公司OpenAI推出了聊天机器人ChatGPT。作为生成式AI在文本领域的实际应用之一&#xff0c;ChatGPT的问世距今不过百天而已&#xff0c;却已经火爆了全球。 一时间&#xff0c;大量的企业投入到生成式AI领域&#xff0c;大有“任彼桑田变沧海&#x…

跨境电商领域的ChatGPT使用攻略

今天分享一个电商领域的ChatGPT应用指南! 一、写谷歌广告词 提示词: 现在你是一名谷歌广告的编写人员&#xff0c;你需要为xxx产品写10条谷歌广告标题和谷歌广告描述。要求是: 1.用英文输出你的答案 2.广告的标题和广告描述的字数等要符合谷歌的标准 3.广告要引人入胜&#xf…

成为跨境圈超强辅助的ChatGPT,跨境电商应该怎么用?

相信大家最近的社媒平台都被ChatGPT刷屏了&#xff0c;在跨境电商圈&#xff0c;ChatGPT同样也引起了跨境人的热烈讨论&#xff0c;让不少人期待它能完成与客户对话、运营实操等功能&#xff0c;或是能提供针对跨境行业的咨询服务&#xff0c;进一步发展为跨境的“超强辅助”。…

亚马逊Q4利润下滑98%/ 盖茨:ChatGPT意义不亚于互联网诞生/ ICLR 2023放榜… 今日更多新鲜事在此...

日报君 发自 凹非寺量子位 | 公众号 QbitAI 大家好&#xff0c;今天是2月3日&#xff0c;星期五。 喜欢下班的打工人们&#xff0c;今天可以喜提本周第七次&#xff08;也是最后一次&#xff09;下班了&#xff01; 来跟日报君看看科技圈的今日大事吧。 ICLR 2023放榜&#xff…

亚马逊联手AI初创公司开发ChatGPT竞品;百度公布2022年财报;高通推出付费云软件服务丨每日大事件...

‍ ‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 企业动态 百度2022年营收为1237亿元 2月22日&#xff0c;百度发布2022年第四季度财报和2022年全年财报。财报显示&#xff0c;百度四季度实现营收330.77亿元&#xff0c;归属百度的净利润&#xff08;非美国通用会计准则…

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

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

ChatGPT实现大麦抢票脚本

ChatGPT云炬学长 ​关注 前段时间周董的演唱会门票&#xff0c;有谁抢到了吗&#xff1f;说实话&#xff0c;我&#xff0c;快奔三的年纪了&#xff0c;到现在一场演唱会都没看过。抢票&#xff0c;靠手速&#xff1f;不可能的。。可是黄牛票贵的离谱&#xff0c;还没有保障&…

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 托…