P1-P9
为什么NLP等领域的模型越来越大?
大模型会带来哪些新的范式和挑战?
自然语言处理基础
让计算机理解人类语言,图灵测试就是基于对话的方式。
- 研究历史:2011年IBM Watson DeepQA在线问答节目战胜所有人类
- 基本任务:词性标注(动词、名词、形容词)、命名实体的识别(识别出名词是否为实体,如人名、地名、机构名)、共指消解(代词是指代哪个实体)、依赖关系(主语、谓语、修饰关系、中文的自动分词)
- 应用:
-
- 搜索引擎:匹配用户搜索的query和document的关系,以及反馈相应的广告。评估页面的内容质量。知识图谱的构建。
-
- 智能音箱。
-
- 翻译
-
- 情感分析
词表示
- 词和词之间相似度计算:星星-太阳
- 词和词之间的关系:中国-北京
怎么表示词义呢?
- 过去:用相关的词(近义词、反义词)来表示
- 存在问题:词义存在细微差别难以表达;相关词需要大量人工标注;有的词会出现新的词义,如Apple;近义词等的标注存在主观性问题。
- 解决:对每个词进行one-hot编码。适用于文档之间的相似度计算。但是在词的层面,one-hot假设词与词之间彼此正交,没有体现上下文的关系。
- 改进:用上下文表示词。存在问题:词表越来越大时对存储的要求;出现频率低的词上下文就少,会很稀疏,不好表示。
- 大模型的思路:word embedding
建立一个低维的稠密向量空间,尝试把每个词都学到这个空间里,用这个空间所对应的位置表示这个词。从而找出词之间的对应关系
代表工作:Word2Vec
语言模型
根据前文预测下一个词是什么,接龙。
需要的能力:1. 计算词的序列成为一句话的概率,即联合概率;2. 根据上文预测下一个词是什么
如何完成?
基本的假设:假设一个未来的词只会受前面的词的影响(马尔可夫性)。可以将联合概率拆解为条件概率相乘
N-gram Model
看前面出现了几个词对后面词的频度
4-gram:前面出现了3个词对下一个词的频度。统计学的模型
Bigram:只考虑前面一个词,N=2
Trigram:只考虑前面2个词,N=3
存在问题:基于符号的统计问题:统计结果稀疏,数据量巨大;不能理解词之间的相似度dog-cat
Neural Language Model:
首先把词表示为低维的向量;再将前几个词的向量拼接在一起;用向量来预测后面的词。
相似的词,向量也会比较相似
预训练模型为何重要?
- 性能上突飞猛进地提升,表现优于人类
- 发展目标:增大参数、分布式。每年十倍的参数增长速度,训练数据的规模也在不断变大。
- 深度学习:大量的标注数据
- GPT:大量无标注数据训练,少量任务相关的数据告诉它要干什么
为什么work?
- 最早可以追溯到迁移学习(transfer learning)
实例:GPT-3 (175B)、DALL-E 2 (5B)
服务器:3090 200h
需要的知识:SSH Vim Tmux …