当前位置: 首页 > news >正文

马上要面试了,还有八股文没理解?让ChatGPT来给你讲讲吧——如何更好使用ChatGPT?

最近这段时间 ChatGPT 掀起了一阵 AI 热潮,目前来看网上大部分内容都是在调戏 AI,很少有人写如何用 ChatGPT 做正事儿。

作为一个大部分知识都是从搜索引擎和 GitHub 学来的程序员,第一次和 ChatGPT 促膝长谈后,基本认定了一个事实:ChatGPT 一定能大幅增加程序员学习新技术的效率。

目前我已经深度使用 ChatGPT 一个月了,越来越能感受到这个工具的颠覆性。所以这篇文章不探讨 ChatGPT 的沙雕玩法,单从工作和学习的视角,分享下 ChatGPT 的牛逼之处以及我使用 ChatGPT 的一些经验技巧。

利用 ChatGPT 的说“人话”能力

学习技术,大家应该都使用过搜索引擎吧。使用搜索引擎获取知识时,通常是输入搜索关键字,然后在返回结果里挑选合适的答案进行总结。复杂的问题,需要自己再组织二次搜索的关键字,然后再挑合适的答案,再总结,如此反复。其中关键字关系搜索结果,非常重要,需要用心选择。在搜索返回结果里找到合适的答案也挺耗精力。总之,通过搜索引擎找答案学习效率挺低且耗精力。

归根结底是因为:搜索引擎是某次切面的物理匹配结果,缺乏上下文关联能力和答案总结能力。

除了借助搜索引擎寻找问题的答案,还有一个高效的办法就是抱大腿,找一个这方面比较有经验的大佬,把我自己想不通的地方清楚地表述出来问问对方,这样经过多次对话后,你想了解的复杂问题也就迎刃而解了。不过万一找不到这样的大佬,怎么办?ChatGPT就可以扮演这个巨佬的角色,提供问答服务。

这也是ChatGPT让人惊艳的地方:它可以对话式地说“人话”。

  • 对话式。可以上下文关联,返回内容是上下文“思考”后的结果,答案也就更精准了。
  • 说“人话”。可以模型总结返回结构化结果,内容更加“人话”。

在这里插入图片描述
在对话过程中,提问题就很有技巧了,和你在与人对话一样,你问的如果是「xxx 是什么」之类的开放问题,那么回答者的答案就可以五花八门了,如果是「xxx 是不是」、「xxx 对不对」之类的问题,那么回答者的答案就更加确定。下面分享一些我使用 ChatGPT 的一些技巧。

ChatGPT的使用技巧

如果想让搜索引擎返回准确的结果,需要一定的技巧来构建关键词。如果想最大化发挥 ChatGPT 的能力作为搜索引擎的补充,也需要一些小技巧。

① 尽量使用英文和 ChatGPT 交流。

如果是学习专业技术知识,尽量使用英文。某些新技术嘛,国外还是比较前沿,那么不可否认一手的技术文档还是英文居多,所以 ChatGPT 学习的相关数据肯定也相对较多,更有利于得到准确详尽的答案。

另外,中文的文本生成相比英文的文本生成要复杂,所以中文交流的响应速度会明显慢于英文交流。

② 多用反问的方式和 ChatGPT 交流。

比如说多用「我认为 xxx,你看我理解的对吗」这类句式提问,少问诸如「xxx 是什么」这样的问题。

不是说 ChatGPT 不能回答「xxx 是什么」这类问题,而是说传统的搜索引擎更适合干这个,还能给你更丰富的信息,那何必问 ChatGPT 呢?

比如我初学 k8s 时,我会把自己的理解整理成一系列观点讲给 ChatGPT 听,让它指出我理解错误的地方:

在这里插入图片描述
这种学习体验真的是传统搜索引擎给不了的,像极了一个学渣缠着学霸求带带的场景,哈哈😂

③ 一条消息只包含一个问题,且尽可能多地提供问题的上下文。

说到底,这就考验把问题描述清楚的能力了,其实可以有很多方法。

比如前文举的我初学 k8s 时的问题,我可以这样问 ChatGPT,先来一个引导式的提问:在 k8s 里面,所有资源都是 API Object,对吗?

得到 ChatGPT 肯定的回复,然后我开始挖坑:那么 k8s 其实就是一个存储 API Object 的数据库,对吗?

ChatGPT 就会告诉我,我这样想是不对滴,API Object 并不是简单的静态数据,巴拉巴拉。然后我再根据它的回复不断追问并提出自己的看法求指教,最终把整个知识框架梳理清楚。

④ 放开思路去提问,比如让 ChatGPT 通过类比、举例的方式讲解问题。

ChatGPT 的能力比我们之前用过的人工智障强太多了,我们可以尝试向它提出一些难度更大的问题。

比如,很多时候代码的解释性比文字更强,那么我可以直接要求 ChatGPT 写一段 demo code 出来,反正看不懂的话还可以追问:

在这里插入图片描述
在这段对话中,经过我的一步步提问,ChatGPT 确实写出了一个完整的 operator 的 demo。虽然它写的代码偶尔出问题,但一般都是类似包导入这种比较明显的错误,整体上我认为还是非常强大的。

再比如,ChatGPT 给我讲解了 CRD, CR, Controller 这些 k8s 中的概念之后,我请它类比编程语言里的类和实例再给我讲讲:

在这里插入图片描述
它类比 CRD 是类定义,CR 是类的实例对象,说实话感觉它这个类比还挺贴切的呢 👍

其他的还有很多,比如发给它一段代码让它逐行解释,让它扮演一个 Linux shell,扮演一个 yaml/json 转换器等等,这些事情 ChatGPT 都能做,确实可以在某些场景大幅提高我们的效率。

目前我认为最有价值的几个技巧就说完了,下面说下 ChatGPT 目前的一些不足之处吧。

目前 ChatGPT 的不足

① 时效性问题。

因为 ChatGPT 只掌握了 2021 年之前的数据,所以一些最新的信息会缺失,一些旧的信息也可能已经过时。比如我让 ChatGPT 帮我找一些链接,有些链接就已经 404 了。

据说微软 new bing 整合的 ChatGPT 解决了这个问题,不过我现在还没有 new bing 的试用资格,所以先用 ChatGPT 了,反正就技术学习来说时效性差一点也无妨。

② 少数情况下,ChatGPT 会一本正经的胡说八道。

我看了一些其他人的使用体验,这个问题确实是存在的。ChatGPT 从来都是有求必应,哪怕它不知道,也会一本正经地给你生成一个看起来有模有样的答案。

根据我遇到的情况猜测一波,ChatGPT 会对没有可靠答案的问题进行推理,根据类似的问题答案推理出来一个可能的答案。

比如说我让 ChatGPT 写一个用 websocket 连接 Apache Pulsar 的 code example,它二话不说就给我写了个错的。后来我发现,它是把 Kafka 的 websocket 用法有模有样地套用到了 Pulsar 上。

实际上目前网上都没有太多用 websocket 连接 Pulsar 的案例,所以 ChatGPT 没有足够的数据进行训练,写不出正确的 code example 也情有可原。

还有一次,我问 ChatGPT 如何把 MySQL 的id字段转化成varchar字符串类型。它告诉我用Cast(id as VARCHAR(255)),结果报错,它也解释不清为啥报错。

后来我一搜,原来要用Cast(id as CHAR(255))的方式。看来 ChatGPT 目前还有一些不准确的地方,有待提升。

总结

总结一下,我感觉 ChatGPT 是一个新型搜索引擎,在某些场景下能够提供比传统搜索引擎更强大更高效的搜索效率。

完全依靠 ChatGPT 去做一些稍微复杂的任务,目前来看还是不现实的。
比如让 ChatGPT 写代码,目前它的水平只能写一写简单的 demo,而且经常需要手工修复一些细节错误。

但是让它作为搜索引擎的补充帮助我们学习新技术,还是比较靠谱的。问答式的体验在很多场景下都要优于传统搜索引擎。

本文就到这里吧,我个人相信,像 ChatGPT 这样的 AI 技术会和搜索引擎扮演同等重要的角色,那么如何更好地理解并运用 AI,是未来需要不断学习探索的课题。

相关文章:

马上要面试了,还有八股文没理解?让ChatGPT来给你讲讲吧——如何更好使用ChatGPT?

最近这段时间 ChatGPT 掀起了一阵 AI 热潮,目前来看网上大部分内容都是在调戏 AI,很少有人写如何用 ChatGPT 做正事儿。 作为一个大部分知识都是从搜索引擎和 GitHub 学来的程序员,第一次和 ChatGPT 促膝长谈后,基本认定了一个事…...

怎么避免服务内存溢出?

在高并发、高吞吐的场景下,很多简单的事情,会变得非常复杂,而很多程序并没有在设计时针对高并发高吞吐量的情况做好内存管理。 自动内存管理机制的实现原理 做内存管理,主要考虑申请内存和内存回收两部分。 申请内存的步骤&…...

01_I.MX6U芯片简介

目录 I.MX6芯片简介 Corterx -A7架构简介 Cortex-A处理器运行模型 Cortex-A 寄存器组 IMX6U IO表示形式 I.MX6芯片简介 ARM Cortex-A7内核可达900 MHz,128 KB L2缓存。 并行24bit RGB LCD接口,可以支持1366*768分辨率。 3.8/10/16位 并行摄像头传感器接口(CS…...

嵌入式学习笔记——STM32的中断控制体系

STM32的中断控制体系前言STM32中断的概念中断类型中断控制常用控制函数区分中断源与中断信号配置中断优先级分组问题中断使能中断服务函数总结前言 上一篇中,借着串口接受的问题,简要说了一下串口中断的作用和用法,本文将对STM32的中断控制体…...

如何发布自己的npm包

一、什么是npm npm是随同nodejs一起安装的javascript包管理工具,能解决nodejs代码部署上的很多问题,常见的使用场景有以下几种: ①.允许用户从npm服务器下载别人编写的第三方包到本地使用。 ②.允许用户从npm服务器下载并安装别人编写的命令…...

Qt QProcess管道命令带“|”多命令执行获取stdout输出问题总结

问题描述: 在Qt中,使用system和QProcess执行命令,system执行的命令,我们通常不需要获取stdout的输出结果,所以只需要得到返回结果,知道成功失败即可。 而用到QProcess,多半是要获取输出的返回信息。 这里的返回信息只要是标准输出的即可,当然了,也可以是别的channe…...

【JavaEE进阶篇2】spring基于注解开发1

在上一篇文章当中,我们提到了怎样使用spring来创建一个bean对象。下面,我们继续来研究一下,更加优胜的开发方式:基于注解开发【JavaEE进阶篇1】认识Spring、认识IoC、使用spring创建对象_革凡成圣211的博客-CSDN博客springIoc、使…...

统一登录验证统一返回格式统一异常处理的实现

统一登录验证&统一返回格式&统一异常处理的实现 一、用户登录权限效验1.1 最初的用户登录验证1.2 Spring AOP 用户统一登录验证的问题1.3 Spring 拦截器1.3.1 准备工作1.3.2 自定义拦截器1.3.3 将自定义拦截器加入到系统配置1.4 拦截器实现原理1.4.1 实现原理源码分析1…...

【建议收藏】华为OD面试,什么场景下会使用到kafka,消息消费中需要注意哪些问题,kafka的幂等性,联合索引等问题

文章目录 华为 OD 面试流程一、什么场景下会使用到 kafka二、消息消费中需要注意哪些问题三、怎么处理重复消费四、kafka 的幂等性怎么处理的五、kafka 会怎么处理消费者消费失败的问题六、数据库设计中,你会如何去设计一张表七、联合索引有什么原则华为 OD 面试流程 机试:三…...

【MySQL】MySQL的优化(二)

目录 explain分析执行计划 Explain分析执行计划-Explain 之 id Explain分析执行计划-Explain 之 select_type Explain分析执行计划-Explain 之 type Explain分析执行计划-其他指标字段 explain分析执行计划 通过以上步骤查询到效率低的 SQL 语句后,可以通过 …...

QT VTK开发 (一、下载编译)

Vtk,(visualization toolkit)是一个开源的免费软件系统,主要用于三维计算机图形学、图像处理和可视化。Vtk是在面向对象原理的基础上设计和实现的,它的内核是用C构建的,包含有大约250,000行代码&#xff0c…...

C/C++每日一练(20230314)

目录 1. 移动数组中的元素 2. 搜索二维矩阵 3. 三角形最小路径和 🌟 每日一练刷题专栏 🌟 Golang 每日一练 专栏 C/C 每日一练 ​专栏 Python 每日一练 专栏 Java 每日一练 专栏 1. 移动数组中的元素 将一维数组中的元素循环左移 k 个位置 输入…...

裸辞3个月,面试了25家公司,终于找到心仪的工作了

​上半年裁员,下半年裸辞,有不少人高呼裸辞后躺平真的好快乐!但也有很多人,裸辞后的生活五味杂陈。 面试25次终于找到心仪工作 因为工作压力大、领导PUA等各种原因,今年2月下旬我从一家互联网小厂裸辞,没…...

【Linux学习】进程间通信——system V(共享内存 | 消息队列 | 信号量)

🐱作者:一只大喵咪1201 🐱专栏:《Linux学习》 🔥格言:你只管努力,剩下的交给时间! 进程间通信——共享内存 | 消息队列 | 信号量🏀共享内存⚽系统调用shmgetkey值⚽系统…...

解决 IDA 防F5转伪C笔记

某app砸壳后放到IDA,根据堆栈查到该位置如下; G调到,0x1b81bcc 看下: BR 调到后面 x8 x9地址,汇编指令; 找到x9的地址,然后减去基地址也就是首地址,得到便宜地址; hook x9: var moduleAddr = Module.findBaseAddress("XX"); var line = moduleAddr.add...

【面试题】你需要知道的webpack高频面试题

大厂面试题分享 面试题库前后端面试题库 (面试必备) 推荐:★★★★★地址:前端面试题库谈谈你对webpack的看法webpack是一个模块打包工具,可以使用它管理项目中的模块依赖,并编译输出模块所需的静态文件。它…...

【YOLOv8/YOLOv7/YOLOv5/YOLOv4/Faster-rcnn系列算法改进NO.60】损失函数改进为wiou

前言作为当前先进的深度学习目标检测算法YOLOv8,已经集合了大量的trick,但是还是有提高和改进的空间,针对具体应用场景下的检测难点,可以不同的改进方法。此后的系列文章,将重点对YOLOv8的如何改进进行详细的介绍&…...

2023年中职网络安全竞赛——数字取证调查(新版)attack解析(详细)

数字取证调查 任务环境说明: 服务器场景:FTPServer20221010(关闭链接)服务器场景操作系统:未知FTP用户名:attack817密码:attack817分析attack.pcapng数据包文件,通过分析数据包attack.pcapng找出恶意用户第一次访问HTTP服务的数据包是第几号,将该号数作为Flag值提交;…...

Cadence Allegro 导出Net Single Pin and No Pin报告详解

⏪《上一篇》   🏡《上级目录》   ⏩《下一篇》 目录 1,概述2,Net Single Pin and No Pin作用3,Net Single Pin and No Pin示例4,Net Single Pin and No Pin导出方法4.1,方法14.2,方法2B站关注“硬小二”浏览更多演示视频...

蓝桥冲刺31天之317

在这个时代,我们总是在比较,觉得自己不够好 其实不必羡慕别人的闪光点 每个人都是属于自己的限量版 做你喜欢并且擅长的事,做到极致 自然会找到自己独一无二的价值 鸟不跟鱼比游泳,鱼不跟鸟比飞翔 你我各有所长 A:组队…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

Android15默认授权浮窗权限

我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...