自然语言大模型介绍
1 简介
最近一直被大语言模型刷屏。本文是周末技术分享会的提纲,总结了一些自然语言模型相关的重要技术,以及各个主流公司的研究方向和进展,和大家共同学习。
2 Transformer
目前的大模型基本都是 Transformer 及其变种。本部分将介绍 Transformer
基础模型及其主要变种。
2.1 Transformer 模型
Transformer 是一种基于自注意力机制的模型,由 Encoder 和 Decoder
两部分组成。
下图是精典论文《Attention is all you need》中展示的模型结构图,左边是
Encoder,右边是 Decoder,
|500
在 Transformer 中,Encoder 将输入序列映射到一个高维空间中,Decoder
则将这个高维空间中的向量映射回输出序列。
在 Encoder 中,所有的词一起输入一起计算;在 Decoder 中像 RNN
一样一个一个词输入,将已经出现的词计算得到的 Q 与 Encoder 计算得到的 K,V
进行计算,经过了全部 Decoder 层再经过 FC+Softmax
得到结果之后再把结 ...
论文阅读_LaMDA
中文名称: LaMDA:对话应用程序的语言模型
英文名称: LaMDA:Language Models for Dialog Applications
论文地址: http://arxiv.org/abs/2201.08239
时间: 2022-02-10
读后感
对于对话机器人的调优。提升模型的安全性和事实性,同时可咨询外部知识来源,如:信息检索系统、语言翻译器和计算器——结合了自然语言模型与其它工具。利用众包方式,选择人类偏好的回答,利用外部知识库验证其可靠性。
介绍
Google 推出的 LaMDA(Language Model for Dialogue
Applications),针对对话应用的大语言模型。它可以处理开放式对话,这种对话通常围绕特定主题展开(外部知识源)。
方法
模型结构
LaMDA 采用的是纯 decoder 的结构,类似于 GPT,使用了 46 层
Transformer。
数据
在公共对话数据和 web tex 的 1.56T 词进行预训练,137B 参数。
以 SSI 为例,要求众包工作者与 LaMDA 实例就任何主题进行交互来收集 6400
轮,121 ...
论文阅读_GPT-4
name_ch: GPT-4 技术报告
name_en: GPT-4 Technical Report
paper_addr: https://arxiv.org/abs/2303.08774
date_publish: 2023-03-14
摘要
评测了
GPT-4:一个大规模的多模态模型,可以接受图像和文本输入并产生文本输出。
GPT-4 是一种基于 Transformer 的模型,它延续了 GPT-3
的结构,经过预训练可以预测文档中的下一个
token。训练后的对齐过程可提高真实性和遵守所需行为的措施的性能。
介绍
当前大语言模型的主要目标是提高模型理解和生成自然语言文本的能力,尤其是在更复杂和微妙的场景中。
模型在评估中多数超过绝大多数人类测试者,在这方面明显优于
GPT-3.5。尽管 GPT-4
生成的文本仍然不太可靠(提升了利用知识去解决具体问题的能力)。
模型训练具体使用了互联网数据和一些三方版权数据。然后使用人类反馈强化学习
(RLHF) 对模型进行微调。本报告不包含关于架构
(包括模型尺寸)、硬件、训练计算、数据集构建、训练方法或类似的更多细节。
方法
预测可扩展性 ...
论文阅读_GLaM
12345name_ch: GLaM:使用混合专家有效扩展语言模型name_en: GLaM:Efficient Scaling of Language Models with Mixture-of-Expertspaper_addr: http://arxiv.org/abs/2112.06905journal: ICML 2022(会议)date_publish: 2022-08-01
读后感
针对节约计算资源的研究,推进了针对细分专家领域。
一种混合专家(MoE)模型,可以将其视为具有不同子模型(或专家)的模型,每个子模型都专门针对不同的输入。每层中的专家由门控网络控制,该网络根据输入数据激活专家。
摘要
文中提出 GLaM (Generalist Language Model)
通用语言模型,它使用稀疏激活的专家混合架构来扩展模型容量,同时与密集变体相比,训练成本也大大降低,其中输入批次中的每个标记仅激活
96.6B(1.2T 的 8%)参数的子网络。
最大的 GLaM 有 1.2 万亿个参数,大约是 GPT-3 的 7 倍。它仅消耗用于训练
GPT-3 的 1/3 的能量,并 ...
论文阅读_用引导调优模型
name_ch: 微调语言模型是零样本学习者
name_en: Finetuned Language Models Are Zero-Shot Learners
paper_addr: http://arxiv.org/abs/2109.01652
code: https://github.com/google-research/flan
date_publish: 2022-02-08
读后感
介绍
指令调优是:在通过指令描述的一组数据集上微调语言模型,它显著提高了未见任务的
zeroshot 性能。将此类模型称为 FLAN(Finetuned Language Net),采用 137B
参数预训练语言模型,并在 60 多个通过自然语言指令模板的 NLP
数据集上对其进行指令调优。
模型效果,图 -1 展示了模型在不同类型任务上的效果对比:
方法
原理图
用 Tensorflow Datasets 上公开可用的 62
个文本数据集(包括语言理解和语言生成任务)聚合到一起,每个数据集被分类为十二个任务集之一。
对于每个数据集,我们手动编写了十个独特的模板,这些模板使用自然语言指令 ...
flask多并发
多线程
flask 默认使用多进程处理请求,因此,是支持并发的。比如两个调用 a.html
和 b.html,
请求 a.html 未运行完成,在浏览访问 b.html 不会阻塞。
开两个不同浏览器,分别请求请求运行时间较长的 a.html
也不阻塞。只要不用一个浏览去调,它都是不阻塞的;如果开一个浏览器在不同
tab 页请求同一阻塞页面,则会阻塞,这是浏览器引起的。
WSGI 协议
WSGI 是 Web Server Gateway Interface 的缩写,它是 Python
应用程序或者框架(如 Flask)和 web 服务器之间的一种接口。flask 默认使用
werkzeug 库实现 WSGI 协议。
只要实现了 WSGI 协议的任何 web server 都可以作为 flask app
的服务器,比如 uWSGI,Gunicorn,mod_wsgi 都可以替换 Werkzeug 作为 web
server。
flask 自带的多进程
在 app.run() 时加入参数:threaded=False, processes=5, debug=False
时,可使用 5 ...
论文阅读_LLaMA
name_ch: LLaMA:开放高效的基础语言模型
name_en: LLaMA:Open and Efficient Foundation Language Models
paper_addr: https://arxiv.org/abs/2302.13971
code: https://github.com/facebookresearch/llama
date_publish: 2023-02-27
1 读后感
开源项目,以小取胜。使用更多 token
训练,更少的模型参数。其小模型可以运行在单 GPU 环境下,65B
大模型可与PaLM
模型效果竞争;主要技术包含:调整了模型结构,加速了训练和推理。
2 摘要
论文展示了仅使用公开可用的数据集来训练最先进的模型,而无需诉诸专有和不可访问的数据集。模型从
7B-65B 参数,使用 T 级别 token 训练。LLaMA-13B 模型效果超越了
GPT-3(175B) 模型。LLaMA-65B 模型可与当前最好模型竞争。
3 介绍
大模型在 Few Shot
上表现好,主要归功于大模型的参数量。本文至力于找到合适的数据量和参数量, ...
论文阅读_Chinchilla
name_ch: 训练计算优化的大型语言模型
name_en: Training Compute-Optimal Large Language Models
paper_addr: http://arxiv.org/abs/2203.15556
date_publish: 2022-03-29
读后感
针对训练数据量,模型参数量,以及数据训练量,通过实验,得出一些结论:更长的训练时间,更多
token,能提升模型效果;大模型的参数量和性能之间存在幂律分布;训练时
token 越多,模型效果越好,作者认为模型的大小与训练 token
量应等比增加。
换言之:不应该太过纠结于拟合当前的知识和存储量,更重要的是扩展知识面,另外应该多“思考”。
摘要
现在大模型严重训练不足。通过大量实验发现对于模型的每加倍 size
训练令牌的数量也应该加倍。Chinchilla
使用更少的计算来进行微调和推理,极大地促进了下游应用。
介绍
可以看到,相对当时其它模型,Chinchilla 使用了更多的 token
和更少的模型参数。
文中主要讨论了,在运算量固定的情况下,如何选择参数和 token
量的配 ...
8_Obsidian_从豆瓣收集信息
功能
从豆瓣收集图书 _ 电影 _ 电视剧信息,插入 Obsidian 笔记。
原理
用 JS
抓取网站内容填入模板,插入笔记,通过插件之间的配合实现强大功能。
设置
安装 QuickAdd 插件
把 js 文件复制到 templates/script/目录下
把模板复制到 templates/目录下
在左下角设置界面调出 QuickAdd 的设置界面
|400
加 Micro
点 Manage Micros->起个名 ->Add Micro
加好 Macro 后点其对应的 Configure 设置
加 JS 脚本
在 User Scripts 中选刚才拷到 script 下的脚本,然后点其后的 Add
点 Template 按钮,加上一个模板后,设置其内容
在 Template Path 中设置刚才拷进的模板
勾选 File Name Format
在 File Name 中输入:{{VALUE:name}}
双击顶部的模板名,设置成自定义名称
点右上的叉退出,自动保存
连接显示名称和 Macro
进入最顶 ...
论文阅读_GLM
中文名称: GLM:使用自回归空白填充的通用语言模型预训练
英文名称: GLM:General Language Model Pretraining with Autoregressive
Blank Infilling
论文地址: https://aclanthology.org/2022.acl-long.26
出处: Proceedings of the 60th Annual Meeting of the Association for
Computational
Linguistics (Volume 1:Long Papers)
时间: 2022-01-01
读后感
通过在结构上的调整,结合了 GPT 和 BERT
类模型的优点,且模型规模和复杂度没有提升。将 NLU
任务转换成生成任务训练模型,使上下游任务训练方式保持一致。
摘要
没有一个预训练框架对自然语言理解
(NLU)、无条件生成和条件生成这三个主要类别的所有任务表现都好。文中提出了通用语言模型:General
Language Model (GLM),它基于自回归空白填充来解决这一挑战。
在 NLU 任务上的性能 ...