先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Python全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024c (备注Python)
正文
a
2
a_2
a2这些权值也是根据具体的任务学习出来的。
3 Bidirectional Encoder Representations from Transformers (BERT)
3.1 Base Idea
BERT是transformer的encoder,网络架构是一致的。训练transformer需要输出,但是训练BERT只需要收集句子的数据集,不需要annotation(释文),就可以把这个encoder训练出来。BERT实际做的就是给一个句子,然后每一个词汇给一个embedding。
虽然下图使用的中文的词为单位,但是实际上中文用字要更合适。如果输入要表示为独热码,用词为单位这个独热码的维度几乎是无穷尽的,因为词的组合太多了,而如果用字来表示则会好很多。
3.2 Training of BERT
BERT是怎么训练呢?
-
Masked LM: 第一个训练的方法 随机把一定比例的,比如15%的词汇遮盖住,输入到网络中。而BERT就是去猜测这些词汇,做一个测漏字的问题,要BERT填回来。假设第二个词汇是挖空了的(MASK),把挖空词汇的对应embedding丢入一个线性的分类器,要求这个分类器预测这个MASK的词汇是什么。因为这个分类器的能力很差,所以如果用这种分类器都能预测正确,就说明这个embedding比较合适。此时如果有两个词在MASK这一个地方都没有违和感,那么就说有一样的embedding。比如MASK这里用“退了”和“落了”都可以,因为语义是类似的。
-
Next Sentence Prediction
给两个句子,比如“醒醒吧”和“你没有妹妹”,这两个句子是接在一起的,期望BERT能预测两个语句是接在一起的。使用SEP作为两个句子之间的分界符。使用CLS标识要做分类的位置,就是预测这两个句子是否相接的结果,将CLS的embedding丢入一个二分类的线性分类器,可以输出yes或者no。
那么为什么CLS不放在后面呢?不是最后才更合理吗?如果是单向的RNN,那么确实是需要从左读到右,最后才能做分类。但是BERT内部不是RNN,而是transformer,transformer使用的是self-attention的结构,这使得CLS放在开头和结尾是没有区别的。这些都是一起被训练的。在文献上,这两个方法是同时使用的。
3.3 Applications of BERT
问题是怎么使用BERT呢?最简单的是将BERT当作一个抽取特征的工具,就像是ELMO一样,训练新的embedding。但是原文不是只有这样,而是将BERT模型和你的要解的任务一起做训练,怎么结合呢?文中举了4种不同的例子。
3.3.1 Case 1
第一个例子是假设输入句子,输出句子的类别。比如判断这个句子是正面的还是负面的,或者输入新闻,判断是什么领域的。如下图,这个句子放进模型,然后在前面加CLS,CLS对应位置的embedding丢入一个线性分类器,分类器输出就是类别。BERT的参数和分类器的参数可以一起学,线性分类器需要从头学,而BERT的参数只需要微调即可。
3.3.2 Case 2
第二个任务是输入句子,输出句子的每一个词汇的类别。比如slot filing这类的任务,具体做法也是在第一位置放置CLS,但这里是将CLS之外的每一个词汇对应的embedding丢入线性分类器,分类器输出类别。
3.3.3. Case 3
输入两个句子,输出一个类别。比如Natural Language Inference任务,要机器根据一个前提,推论下一个句子的假设是对还是错,还是不知道。具体解法如下和Case 1差不多。
3.3.4 Case 4
第四个例子是解基于抽取的QA问题,即给模型读一篇文章,然后提出一个问题,模型能给答案,而答案本身一定能在文章中找到。给出文章D和问题Q,包含有不同的一些token,输出到模型中,模型可以输出s和e两个整数,则代表答案是第s到第e个token。举例说明的话,如果答案是“within a cloud”,那么输出s=77,e=79,即文中的第77-79的词汇就是答案。
那么怎么用BERT来搭建这个QA的模型呢?
将问题
q
1
q_1
q1,
q
2
q_2
q2…输进去,再把文章
d
1
,
d
2
,
d
3
.
.
.
d_1,d_2,d_3…
d1,d2,d3…输入,使用SEP作为分隔符,CLS作为分类标识。每一个词汇都有一个embedding(黄色的vector),再让模型学习一个黄色和一个蓝色的vector,这个向量和embedding是同维的。将红色vector拿去和文章
d
d
d对应的黄色vector做点乘,算出一个scaler值,再输入softmax中看哪个词汇的分数最高,最高词汇的标号就是s;蓝色的也进行同样的操作,看最后分数,最高分数的下标就是e。
当然也有问题没有答案,比如s>e的时候,那么此题就无解。红和蓝都是学习出来的,训练的时候就要给出文章和问题,以及答案的位置。
3.4 Enhanced Representation through Knowledge Integration (ERNIE)
ERNIE这个缩写其实是硬凑的,为了凑出“芝麻街”的人物名字。ERNIE是特别为中文设计的,因为BERT是以字为单位,而ERNIE更考虑词汇,这里不展开讲。
3.5 More about BERT
文末有福利领取哦~
👉一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
👉二、Python必备开发工具
👉三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉 四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
👉五、Python练习题
检查学习结果。
👉六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
[外链图片转存中…(img-mV6JDt4g-1713663781584)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!