快速了解ChatGPT(大语言模型)

目录

GPT原理:文字接龙,输入一个字,后面会接最有可能出现的文字。

GPT4

学会提问:发挥语言模型的最大能力


参考李宏毅老师的课快速了解大语言模型做的笔记:

Lee老师幽默的开场:

 GPT:chat Generative Pre-trained Transformer

GPTS:专属的客制化的老师。

GPT原理:文字接龙,输入一个字,后面会接最有可能出现的文字。

回答问题的方式: 

 

 给每一个后面可能输出的符号一个概率值,输出概率最大的字符(token)。拆成token的方式也是比较有意思,会根据词性,词缀或者短语来生成token,那为什么这样子分呢?

因为英文单词是无法穷举的,他太多了,而token是一个可以进行穷举,类似的,中文方块字的token划分方式也是如此,可能将短语、不同词性的词划分成一个token。

        而且输出一个词会将输出的词又添加到输入词的后面,然后又生成后续的一个token,直到end的几率是最高的就结束。其实最后的输出并不是概率最大就输出概率大的token,而是进行一个掷色子的操作,所以就导致每次输出的结果可能是不同的,那为什么每次不选概率最大的进行输出呢?

有论文验证,为什么要掷骰子 ,这篇论文就讲了如果每次选几率最大的token可能输出会出现左边的情况,每次说的一样的话,而右边就是比较正常的,所以chatGPT才会出现骗人的场景。

        但是台湾省是没有玫瑰花节日的,但你告诉GPT是有的,GPT就会进行乱说,并生成一个假的网址。

        那它是如何有记忆功能的呢?就是上下文联通的功能?比如这样:

 是因为你问的问题,包括GPT输出的内容,GPT都会作为模型的输入,最后输出新的回答。

实际上模型所做的事情:

将最有可能输出的token的几率升高一点,将其他token的输出的几率降低一点,然后依次类推:

 Transformer里面的每个方块其实就是线性袋鼠的矩阵运算,需要大量可学习的参数,里面有上亿个参数。

 上图是第一代的GPT。

然后慢慢的:

不愧是李老师,PPT还是这么的幽默,模型参数量越来越大,

这是当时与其他模型相比时的正确率,当时准确率还不算特别高。然后OPENAI还不善罢甘休,他们说GPT3其实已经很聪明了,他为什么准确率不高是因为他不知道人类社会的规则,他只是学习了网络上的很多资料,碰到什么学什么,根本不知道他要做什么事情,而且回答是毫无逻辑的,

 SO,下一个阶段:

那就是让他继续学习。引入人类老师来指导GPT进行学习,那这种方法叫做监督式学习,而前面的方法叫做自监督学习,所以前面就是预训练,后面老师的指导就是大模型微调!(我终于懂了

 Fine-Tune!!!

这里有篇论文论证了监督式学习的重要性,https://arxiv.org/abs/2203.02155, 上图说明的问题是:(1)大的模型没有监督式学习老师的监督也可能不会超过小模型通过好的监督式学习的方式(小模型也有机会胜过大模型

(2)好的老师+大模型,效果会更好。

 

 

 还有增强式学习(强化学习,不提供正确的答案,而是提供反馈,什么样的答案是好的,什么样的答案是不好的,监督式学习人类就需要花费比较多的时间或者精力,而增强式学习我们每个人都可以做出贡献,我们在提问的同时就可以隐式的引导GPT回答出更加准确的答案,强化学习这边的知识我还没学过,下次有机会学学。

 强化学习一般放在网络的后端进行引导。

ChatGPT的强化学习步骤:

(1)模仿老师的偏好

(2)向模拟老师学习

监督式学习+强化学习也就是Alignment!!!(原来如此),就是对齐的过程。

GPT4

然后,GPT4技术报告,长达近百页,作者就有3页,主要就是炫耀GPT4有多麽多麽强。但是技术细节论文里面是没有写的

 亮点就是看得见了,可以传图片给GPT4,理解图片。

发挥语言模型的最大能力

1.把需求写清楚

2.提供资料给ChatGPT

3.提供范例:描述给他抽象的内容,比如晶晶体。

4.鼓励ChatGPT再想一想,让他解决问题时候,不要让他直接给答案,让他一步一步给出计算过程,那他答对的几率就会大大增加。

  • 27
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
快速学习一门编程语言,可以采取以下方法: 1. 理解语言特性:掌握编程语言的基本语法和特性,包括动态编程、反射和元数据编程、数据和程序之间的相互转化机制、运行时编译和执行的机制等。 2. 动手实践:在学习语言的基础知识后,通过编写一些简单的Demo来巩固所学内容,掌握基本语法和常见的系统架构方式。可以从GitHub上下载一些简单的项目,并按照项目的说明逐步搭建运行环境,然后尝试修改代码、调试并通读代码,对于不明白的地方可以通过搜索引擎或请教有经验的同学来解决。 3. 项目经验积累:参与实际项目的开发可以极大地提高编程能力。尝试参与一些实际项目,通过实践应用所学的知识,积累项目经验。这样可以更好地理解开发框架的基本用法,掌握语法和相关工具的使用方法。 4. 学习开发思想:了解并掌握编程语言如何进行callback方法调用,如何支持事件驱动编程模型。不同编程语言都有不同的设计模式和实现机制,深入了解这些可以帮助更好地应用开发思想。 总之,要快速学习一门编程语言,除了掌握基本语法和特性外,还需要进行实践和项目经验的积累,同时了解编程语言的设计模式和开发思想。这样可以提高编程能力,并更好地应用所学知识。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [如何快速的学习任何一门编程语言](https://blog.csdn.net/weixin_41447442/article/details/122421514)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值