工具/方法推荐
如何使用ChatGPT进行系统学习(1)
使用ChatGPT+hypothesis实现一种新的记录笔记的方式。
介绍ChatGPT
第一篇文章我想先介绍一些可能被忽略的特性的使用。在对ChatGPT给出的回答不满时,修改的思路往往是提供更多上下文信息和更准确地描述,但在具体实施这个思路时,使用的方法有两种:第一种是在下一次提问中补充信息,第二种是重新修改第一次提问,然后重新获取回答。
如果提问仅仅是两三轮或者只是一轮,那么两种方法最终都能实现想要的效果,但如果是一个复杂问题,或者说你需要实现我之后会提到的使用ChatGPT+hypothesis的记笔记的方式,就非常有必要区分两种方法的使用。
两种方法的差异在哪里?什么时候使用第一种,什么时候使用第二种?
不使用第二种方法时,与ChatGPT的问答是呈直线的:问题A→回答A→补充问题B→修改后的回答A→······→满意的答案。
直线流程图
树状流程图
使用第二种方法的回答是类似树的结构:问题A→回答A→修改后的问题A→修改后的回答A→补充问题B→······→满意的答案。
当你提出一个复杂问题或者使用ChatGPT来完成复杂任务时,ChatGPT往往需要也许超过十多轮才能给出一个相当合理的答案,然后为了理解这个答案你又需要十多轮来让ChatGPT解释,在这么多轮数回答的情况下如果只使用第一种方法会造成以下问题:一是会因为token不足,丢失上下文;二是交互页面混乱。
为了解决这个问题,应该至少将交互界面划分为至少两层结构:(1)是该问题的主干,在这层界面中,你需要做的是提供解决该问题的上下文信息和准确的需求,尽量让ChatGPT获得足够多的信息来帮助你获得更好的回复(如图首先要做的往往不是直接提问,而是询问ChatGPT怎样可以获得该问题的更好的答复)。
(2)是枝干,在枝干中你需要对ChatGPT给出答复中不理解的知识点进行提问,比如ChatGPT解释你不理解的概念,或者解释该方法的工作原理或流程,或者让ChatGPT告诉你需要使用到哪些技术栈等等。在这一层中,你可以不停对ChatGPT给出的答复提问,不用担心因为token过长而导致ChatGPT在回复你的问题时失去上下文,因为这里的上下文是单独计算的,不会影响到(1)中的上下文。
你还可以根据你的需求创建第三层结构,用于让ChatGPT给你布置理解该知识点的作业或者你认为合适的其它用途。
以上特性的另一个使用
利用以上特性,我们可以使用两个propmt来使用ChatGPT完成对某个综合知识点(比如例子中给出的线性代数)的快速学习。这种学习方式比看网课要有效率得多。
在ChatGPT给出的答复中,我们将主要分为三层:
(1)通过propmt1,让ChatGPT给出学习该知识点的主要内容。在这里你可以参考其它教材书或课程进行补充或删改。
参考教科书后进行修改
(2)通过propmt2让ChatGPT对课程内容按计划进行讲解。(你可以安装我发布的这个油猴脚本,脚本可以在ChatGPT给出讲解后自动回复“请继续讲解”,这样在一段时间后ChatGPT就会完成对该内容的所有讲解)。
(3)对于讲解如果你有什么不理解的,请参考我之前提到的方法,重新修改下一个提问,然后在新的上下文环境中进行提问。比如以下示例中,我想对命令行的基本语法和选项有更多了解,于是我将“好的,请继续为我讲解接下来的内容”修改为“请为我举例解释命令的基本语法和选项”。
以上就是该学习方法的简单解释。该方法的优点和缺点都很明显,优点是你可以借此迅速了解某个综合课程的大概内容,并且每个课程的每个知识点你都可以展开追问直到你明白为止,这相当于一个二十四小时为你服务的一对一老师,并且真诚、耐心、有问必答;缺点是ChatGPT的讲解并不能保证绝对的有效,在数学和CS方面ChatGPT讲解的正确率还算十分高,只要使用得当完全能够替代搜索引擎的使用,但在有些科目中(比如中国历史)并不适合用ChatGPT来进行学习。
理想情况下,如果ChatGPT给出的讲解都是正确的话,我们就不需要做任何额外工作了——但事实当然是不可能的,ChatGPT在部分领域且使用的模型为gpt-4的情况下能够有十分高的正确率,但一般情况下ChatGPT的讲解是不会百分比正确的,我们需要对此做出一定的补救措施来保证我们获取到的知识尽量是正确且有效的。下文我将介绍如何使用浏览器插件Hypothesis来进行补救,并且结合ChatGPT实现一种新的记录笔记的方式。