社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  chatgpt

连玉君:我与ChatGPT聊了一个月

连享会 • 6 月前 • 289 次点击  

👇 连享会 · 推文导航 | www.lianxh.cn

连享会课程 · 2024 暑期班

作者: 连玉君 (中山大学)
邮箱: arlionn@163.com

温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:


目录

  • 0. 简介

  • 1. 测试 A:根据关键词写短文

  • 2. 测试 B:中文修改和润色

  • 3. 测试 C:中文翻译为英文

  • 4. 测试 D:口语转书面语

  • 5. 测试 E:解读代码,写说明文档

    • 5.1 ChatGPT 能读懂代码吗?

    • 5.2 让 ChatGPT 自动写帮助文件

    • 5.3 转译成 Python 代码

    • 5.4 简要结论

  • 6. 一些思考

    • 其一:ChatGPT 对文字工作者的冲击

    • 其二:ChatGPT 对于程序员的冲击

    • 其三:ChatGPT 会用在何处?

    • 其四:ChatGPT 能否代替搜索引擎?

  • 7. 结语

  • 8. 相关推文



导言:

这篇推文 1 个月前就已经基本上完成了,我一直放着,时不时地改一下,然后继续使用 ChatGPT,再返回来改这篇推文。如此反复,……。我的纠结之处在于:一个新东西来了,貌似很强大;我们感觉很兴奋,但也有不少隐忧。比如,我在思考:在 ChatGPT 时代,记忆力还重要吗?还需要花那么时间学英语吗?我还要撅着屁股一篇一篇地查文献、读文献吗?

今天扫了一眼知乎,发现很多人在讨论「ChatGPT」。形如我者甚多!

0. 简介

连续试用了一段时间 ChatGPT,谈谈我的感受和想法。

先说说它带给我的惊艳感受:

  • 我写了一个新的 Stata 程序,把代码扔给 ChatGPT,它很快帮我写好了 .sthlp 格式的帮助文件,基本上无需太多修改。它完全读懂了程序的思路,也补充说明了一些关键命令和函数的作用,对用户很贴心。

  • 上初一的儿子要参加一个英语演讲比赛。我们列出提纲后,让 ChatGPT 协助写一篇限时三分钟的演讲稿。它给出了 7-8 种不同风格,有煽情的、幽默的、凝重的。最重要的是,按照正常语速读下来,每一篇的用时都没有超过 3 分钟。

再说说它不靠谱的地方:

  • 让它帮忙统计一下美国历年 IPO 的数量,整理成表格。形式上的工作它完成的都很好,但每次给出的统计数据都多少有些偏差。当然,这也不能完全怪 ChatGPT,因为它本质上是从互联网上找资料,整理后写成文本发给我。它自己并不单独创造知识。

因此,我做了一系列测试,以便了解它能干什么,不能干什么,以及我该更好地适应 ChatGPT 来袭的时代。

简单测试后发现:

  • 让他写个书评、故事续写、某个公司或老城市的介绍性文字,做得都非常好。语句通顺,逻辑清晰。风格和内容方面,没有太多出彩的地方,但也挑不出大毛病。
  • 让它翻译一些有一定复杂度的中文,包括谚语、成语等,也能做得很好,有些情况下比百度翻译和 google 翻译给出的结果更合理一些。让它把自己翻译好的中文重新翻译成中文,基本上能保持 90% 以上的内容和意思,但成语、谚语等基本上没法还原。
  • 让它解读 Stata 代码,写代码说明文档,做得比我预期的要好,甚至可能比我自己写的还要好一些。不过,这需要在提问过程中,尽量列出要点。此外,可以在不断追问中让它完善答案。
  • 代码转译。我让它把一段刚写的 Stata 代码转译为 R 和 Python 代码,以实现相同的功能,都能快速给出答案,但这些代码虽然思路上没有问题,但运行中经常出现各种 bug。这意味着,它只是按照逻辑编写了一段「伪代码」,性质上是在进行文字编辑和代码整合,但不会进行测试和 debug。

1. 测试 A: 根据关键词写短文

第一轮: 10:01

第二轮: 10:02

修改后的文稿基本上可以直接使用了 (原来,啰嗦的文字是这样产生的)。

第三轮: 10:13

十分钟后,我再次发问,给出的关键词完全相同,但问题做了一点点修改。得到的答复很不一样:

第四轮: 10:17

又过了几分钟,我把第一轮的问题原封不动地又问了一遍,ChatGPT 的语言表述发生了比较明显的变化:

2. 测试 B: 中文修改和润色

我觉得不太满意,又重新提问,但要求更具体了。这次,它的表现还不错。

3. 测试 C: 中文翻译为英文

我先让 ChatGPT 把一段中文翻译成英文,然后再让它把自己的英译文翻回中文。整体上表现也不错。

ChatGPT 自己造了一个成语:「千里之提,始于足下」,有点意思。

4. 测试 D: 口语转书面语

背景: 下面这段文字是我在 Stata 寒假班中 答疑 时 (https://gitee.com/arlionn/PX/wikis/2023寒假班/初级班-2023寒假/初级班-Day1-答疑.md),直接通过讯飞语音转换出来的表述,很多口语化的表述,也夹杂着不少口头语,比如,「厄,啊,……」,也包含了不少错别字,比如「公私财物->公司财务;心水->薪水」。我想让 ChatGPT 帮我改写成书面语。它完成的不错。所以,日后开会时,可以用录音笔或者语音输入法记录,然后让 ChatGPT 帮我们转化为正式的书面文稿。

5. 测试 E: 解读代码,写说明文档

说明: 下面这段代码是这两天我刚写的,存放在我的本地电脑上。我没有通过邮件或微信跟任何人分享过这个代码。我想测试一下 ChatGPT 能否读懂这段代码,并帮我写个解读代码的说明文档 (类似于帮助文件或 readme 文档)。整体看来,它完成的不错。

5.1 ChatGPT 能读懂代码吗?

能否帮我分析一下如下 Stata 代码,写一段 200 字左右的文字来介绍这段代码的功能和基本思路。

*!v1 
* 2023/2/9 2:05
* Yujun, Lian, arlionn@163.com

*-Goal: protect special 'family name' and trace-back
* . compact_name v // van Putten --> van~~Putten
* . compact_name v, back // van~~Putten --> van Putten

*cap program drop compact_name
program define compact_name, rclass
version 8

syntax varlist(min=1) [, Add(string) Back Symbol(string) Generate(string)]

foreach var of varlist `varlist'{

if "`generate'" == ""{
local genrep "replace" // generate or replace
local varname "`var'"
}
else{
*-confirm the validity of variable name
cap noi confirm new variable `generate'
if _rc{
exit 198
}
else{
local genrep "generate"
local varname "`generate'"
}
}

if `'"`symbol'"' == ""{
local symbol "~~" // symbol used to substitute blank
}

if "`back'" != ""{
local nchanges = 0
qui `genrep' `varname' = subinstr(`var', `"`symbol'"', " ", .)
qui count if strpos(`var', `"`symbol'"')
local nchanges = `nchanges' + r(N)
exit
}

#delimit ;
local list `"
"van de"
"von der"
von
van
de
mc
mac
la
st.
st
"`add'"
"' ;
#delimit cr

local nchanges = 0
foreach name in `list'{
qui `genrep' `varname' = subinstr(`var', " `name' ", `" `name'`symbol'"', .)
qui count if strpos(`var', "`name'")
local nchanges = `nchanges' + `r(N)'
}

dis "(`nchanges' real changes made)"
return scalar N = `nchanges'
}
end

这段 Stata 代码是一个定义程序,名为 compact_name,它的主要目的是保护特殊的姓氏,并可以进行追踪。程序允许用户输入一个变量列表,并通过以下方法对其进行处理:使用一个特定的符号替换姓氏中的空格,或将已经替换的空格还原。

代码的基本思路是,先确定是生成新变量还是替换原有变量,并确定用于替换空格的符号。接着,对于列表中的每个姓氏,使用 subinstr() 函数替换其中的空格。最后,统计并输出实际完成的替换次数。

总的来说,这段代码是一个很好的实例,演示了如何在Stata中定义程序并处理字符串。


追问: 能否进一步解释一下上述代码中你认为比较重要的函数或语句,以便帮助那些 Stata 初学者更快地理解这段代码。

ChatGTP-02:

上述代码实现了一个 Stata 自定义函数 compact_name,它的主要目的是对输入的字符型变量(或者多个字符型变量)的家族名称进行保护,并且支持还原操作。具体来说,如果输入的字符串包含 "van de"、"von der"、"von"、"van"、"de"、"mc"、"mac"、"la"、"st."、"st"(这些名称可以通过参数 Add 来增加),那么这个函数就会将这些名称的中间空格替换为符号 "~~",如果需要还原,可以使用参数 Back 来指定。

代码的主要思路是:

利用 foreach 循环语句,遍历需要处理的字符串变量; 使用 confirm 函数判断新生成的变量名是否有效; 如果 Back 参数被指定,则使用 subinstr 函数进行还原操作; 如果没有指定 Back 参数,则循环判断字符串中是否包含待保护的名称,如果包含则使用 subinstr 函数进行保护; 最后使用 dis 语句输出实际执行的修改次数,并返回该数值。 重要的函数与语句:

foreach:Stata 循环语句,可以对数据集中的多个变量进行批量处理。confirm:Stata 内置函数

继续

那么其他几个函数也有必要了解一下。

subinstr():这是一个 Stata 内置函数,可以在字符串中替换一个子串。该函数有三个参数:需要处理的字符串,需要被替换的子串,替换后的子串。在代码中,这个函数用于把 "van de", "von der" 等这样的姓氏中的空格替换成双波浪线,或者把双波浪线还原成空格。

count if:这是 Stata 的一个命令,用于统计符合条件的数据记录数。在代码中,这个命令用于统计空格替换操作对数据的影响。

strpos():这也是一个 Stata 内置函数,用于检测字符串中是否包含某个子串。在代码中,这个函数用于判断给定的字符串是否包含 "van de","von der" 等这样的字符串。

这就是该代码的功能和主要思路,包括如何使用 Stata 的函数和命令来完成数据处理。理解这些知识点对于更好地理解代码是非常重要的。

5.2 让 ChatGPT 自动写帮助文件

5.3 转译成 Python 代码

接下来,我们再让它写个 Python 风格的帮助文件:

5.4 简要结论

经过两天的测试,个人认为,对于一个高校教师,ChatGPT 大体上可以协助我们在如下几个方面节省不少时间:

  • 简单资料整理和文档撰写。可以给他列个主题和粗略提纲,让他帮忙完善。比如,协助编写代码的 readme 文档,某些专业术语和研究方法的说明性文档等。这在日常教学课件的制作中,可以帮我们节省很多时间。就我所知,国外已经有不少老师借助 ChatGPT 制作幻灯片。此外,对于喜欢写 Blog 的同仁而言,我们可以用讯飞语音输入法口述推文初稿,插入代码和主要结果,然后让 ChatGPT 帮忙完善和修改。
  • 英文翻译和润色。这个功能很稳定,效果也不错。估计日后大家对人工翻译和润色服务的需求会有所下降。

6. 一些思考

其一:ChatGPT 对文字工作者的冲击

我把 测试 D: 口语转书面语 的截图发给了一位朋友,想听听他的看法。他的回复如下:

一位资深传媒从业者的顾虑:作为工具确实有用。但问题是,对学习文字的人,尤其是学生来说,文字水平将越来越低。是个大问题。

当我个人却没有那么悲观。我的看法如下:

我认为,不必过分担心这个问题。因为,电饭煲、洗衣机、洗碗机 …… 的发明,并没有降低我们做家务的能力,或者,从更一般的意义上来讲,这些东西的发明并没有降低我们的生活能力。

ChatGPT 的表现很大程度上取决于我们怎么提问,这就会倒逼使用者不断思考自己到底想要什么。 在这个过程中,我们思考的深度会提高。很多东西,一旦想明白了,有了深度,写清楚反而是水到渠成。

很多人之所以写不清楚,是因为读的少,思考的少,没有想法。换言之,把一个只有 30 分干货的东西反复打磨,修改,最终最多只能得到 50 分。但是,如果借助 AI 技术,可以节省很多时间,精力就可以放在大量阅读和思考上。写东西时,可能选题就已经可以达到 60 分了,列出合理的提纲又可以得到 20 分,再加上 AI 的打磨,就可以得到一个高分的成品了。

华为,苹果等顶级公司,都专注于系统设计和理念,很多关于技术细节和实现方面的工作都外包出去了,让自己的组织有更多弹性和灵活性。

其二:ChatGPT 对于程序员的冲击

Note: ^=^ 这部分内容我偷懒了,90% 以上的文字都是 ChatGPT 完成的。

其三:ChatGPT 会用在何处?

我昨晚和上初一的儿子聊了一个多小时,天马星空地猜想着 ChatGPT 日后可能会在哪些地方现身。

场景一:智能同声翻译器。 未来可能会有一种小型智能翻译器,无论我们去往哪个国家,只需说出母语,该翻译器即可快速将语音转化为文字,进行润色后翻译成外语,并以我们的语音模仿方式播放出来。进一步改进,例如使用技术屏蔽母语声音,将转换过程的时差降至最小(例如,小于0.01秒),以使对方认为我们在用外语与他交流。同样的,对方讲话时,反向流程也会生效,我们的隐形耳机可以听到流畅的母语。对于口音不好或表达不清的用户,这个智能翻译器就会显得更有用了。小孩基本上不用再学习外语了,只需要专注于训练自己的思维能力即可。(注:这段话是经由 ChatGPT 修改后完成的,它的工作量约占 10-20%。)

场景二:软件插件。 在很短的时间内,大多数的 Office 套装软件都会安装一个 ChatGPT 或类似功能的插件,以便提供弹出菜单中的「翻译」、「修改」、「改写为学术论文风格」等选项。此外,在 RStudio、VScode 和 Jupyter Notebook 等软件中安装 ChatGPT 插件(VScode 上已经有了),可实现代码优化、错误检查、帮助文档撰写等功能。(注:这段话是经由 ChatGPT 修改后完成的,它的工作量约占 10%。)

场景三:智能病历生成。 智能设备可以自动记录医生和病人的问诊和查房谈话内容,并在医生修改和确认后生成病历。随着时间的累积,AI 病历的准确性和可靠性将不断提高。医疗行业的效率和质量可以得到大幅提升,因为医生不再需要花大量时间手写病历。此外,AI 病历还可以提供更细致和准确的病史记录,从而帮助医生更好地诊断和治疗病人。(令人担心的是,长此以往,会不会有很多医生失业?) (注:这段话是经由 ChatGPT 修改、补充后完成的,它的工作量约占 60 %,我只是提供了大致的想法。)

场景四:智能简历和广告语 我们只需要提供某位学者的主页,一些他的 Google 学术主页等网址,ChatGPT 就可以快速按要求 (如风格、字数、他在哪些期刊发表了论文、教授哪些课程等),它就可以快速生成「嘉宾介绍」。同样,给定不同的需求,可以让 ChatGPT 写出多种不同风格的广告语

其四:ChatGPT 能否代替搜索引擎?

我这个测试有点难度。

大致背景如下:我突然想起小学四年级在同学家读过的一篇小说,至今印象深刻。多年以来,我总会时不时地想起这篇小说,揣摩作者到底想要传达哪些深层的思想。不过,我只记得大致情节,至于小说的作者和篇名之类的,完全想不起来。下面是测试过程:


我改换了五种方式向 ChatGPT 提问,但一直没有得到有效的答案 (ChatGPT 的回答我没有列出来,大致的意思是它找不到,让我提供更多的信息给它。):


我又试了 Google 搜索,依旧无果。最后,只好转用百度。经过三次修改关键词,最终用关键词「印度作家 小说 女孩 陪葬 面纱 火坑 雨」找到了答案——「摩诃摩耶」,是印度诗人泰戈尔的短篇小说,创作于 1892 年。

我感觉自己可能过度使用,甚至误用了 ChatGPT。下面的问答或许可以证实我的猜测:

7. 结语

Note: 下面这段文字完全是我自己写的,没有让 ChatGPT 参与。

总体上,ChatGPT 是很好的助手,但使用效果取决于我们如何向它 发问追问。在不断追问过程中,它给出的回应越来越接近我想要的东西。同时,在这个过程中,它的那些宽泛的回答会给我很多启发,让我在下一轮追问中给出更准确的关键词和限定条件。

还有一个奇妙甚至有点让我担心的感受。

连续两天跟 ChatGPT 互动,我自己写东西的时候会时不时让它帮我修改,我的思考模式会被它「带节奏」,以至于当我大比例使用它给出的文字时,会偶尔产生我也是一个 AI 机器人的感觉。我也会时不时地重新琢磨文字表述,以免让人误解我正在写的文字是由 ChatGPT 生成的。这些不断出现的错觉和莫名的提防心态让人很不舒服。

有些事儿无法阻止,索性顺势而为吧。

最后,给大家出个选择题。

给定关键词「ChatGPT, AI, 担心, 体验, 乐观, 改变学习思路」,下面的两句话一句是我写的,一句是 ChatGPT 写的,你能分辨出那句是它写的吗?


A. 我很担心 ChatGPT 和 AI 带来的冲击,但体验一番后,我还是比较乐观的。以后要改变我的学习思路了。

B. ChatGPT AI 担心影响用户体验,因此努力保持乐观态度并不断改变学习思路。

8. 相关推文

Note:产生如下推文列表的 Stata 命令为:
lianxh ChatGPT
安装最新版 lianxh 命令:
ssc install lianxh, replace

  • 专题:Python-R-Matlab
    • 如何在 R 中安装并使用 chatgpt 包?
  • 专题:工具软件
    • Stata:ChatGPT你能帮我干点啥?

New! Stata 搜索神器:lianxh 和 songbl  GIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
👉 安装:
  . ssc install lianxh
  . ssc install songbl
👉  使用:
  . lianxh DID 倍分法
  . songbl all

🍏 关于我们

  • 连享会 ( www.lianxh.cn,推文列表) 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 直通车: 👉【百度一下: 连享会】即可直达连享会主页。亦可进一步添加 「知乎」,「b 站」,「面板数据」,「公开课」 等关键词细化搜索。


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/171034
 
289 次点击