From 830597ad57b9ff77462ed4011aceff6c15723ea6 Mon Sep 17 00:00:00 2001 From: innovation64 Date: Tue, 18 Apr 2023 11:20:50 +0800 Subject: [PATCH 01/55] update soc3-zn --- zh/_blog.yml | 10 +++- zh/ethics-soc-3.md | 141 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 150 insertions(+), 1 deletion(-) create mode 100644 zh/ethics-soc-3.md diff --git a/zh/_blog.yml b/zh/_blog.yml index 03af40f460..ccccfa3bf0 100644 --- a/zh/_blog.yml +++ b/zh/_blog.yml @@ -372,4 +372,12 @@ thumbnail: /blog/assets/136_train-your-controlnet/thumbnail.png date: March 28, 2023 tags: - - diffusers \ No newline at end of file + - diffusers + +- local: ethics-soc-3 + title: "道德与社会问题简报 #3: Hugging Face 上的道德开放性" + author: irenesolaiman + thumbnail: /blog/assets/137_ethics_soc_3/ethics_3_thumbnail.png + date: Mar 30, 2023 + tags: + - ethics \ No newline at end of file diff --git a/zh/ethics-soc-3.md b/zh/ethics-soc-3.md new file mode 100644 index 0000000000..973b3c3f45 --- /dev/null +++ b/zh/ethics-soc-3.md @@ -0,0 +1,141 @@ +--- +title: "道德与社会问题简报 #3: Hugging Face 上的道德开放性" +thumbnail: /blog/assets/137_ethics_soc_3/ethics_3_thumbnail.png +authors: +- user: irenesolaiman +- user: giadap +- user: NimaBoscarino +- user: yjernite +- user: allendorf +translators: +- user: innovation64 + +--- + +# 道德与社会问题简报 #3: Hugging Face 上的道德开放性 + + + + +## 使命:开放和优秀的机器学习 +在我们的使命中,我们致力于推动机器学习(ML)的民主化,我们在研究如何支持 ML 社区工作并有助于检查危害和防止可能的危害发生。开放式的发展和科学可以分散力量,让许多人集体开展反映他们需求和价值的 AI 研究工作。虽然[开放性使得更广泛的观点能够为研究和整个 AI 贡献力量,但它也面对着较小风险控制的紧张](https://arxiv.org/abs/2302.04844)。 + +由于这些系统的动态和快速发展,对 ML 相关模型进行管控面临着独特的挑战。事实上,随着 ML 模型变得更加先进和能够生成越来越多样化的内容,使得潜在的有害或意外的输出的可能性增加,需要开发强大的调节和评估策略。此外,ML 模型的复杂性和它们处理的大量数据加剧了识别和解决潜在偏见和道德问题的挑战。 + +作为社区主理人,我们认识到,随着社区模型可能放大对用户和整个世界的危害,我们肩负着责任。这些危害通常会以一种依赖于情境的方式不平等地影响少数群体。我们采取的方法是分析每个情境中存在的紧张关系,并对公司和 Hugging Face 社区进行讨论。虽然许多模型可能会放大危害,尤其是歧视性内容,但我们正在采取一系列步骤来识别最高风险模型以及要采取的行动。重要的是,许多不同背景的活跃观点对于理解、衡量和减轻影响不同群体的潜在危害至关重要。 + +我们正在开发工具和保障措施,除了改进我们的文档实践以确保开源科学能够赋予个人权力,并继续将潜在危害最小化。 + +## 道德类别 + +我们培养良好的开放式 ML 工作的第一个主要方面是推广 ML 开发的工具和正面示例,这些工具和示例优先考虑其利益相关者的价值和考虑。这有助于用户采取具体步骤解决悬而未决的问题,并为 ML 开发中事实上的破坏性做法提出合理的替代方案。 + +为了帮助我们的用户发现和参与与伦理相关的 ML 工作,我们编制了一组标签。这 6 个高级类别基于我们对社区成员贡献的空间的分析。它们旨在为你提供一种通俗易懂的方式来思考道德技术: + +- 严谨的工作特别注意在开发时牢记最佳实践。在 ML 中,这可能意味着检查失败案例(包括进行偏见和公平性审计),通过安全措施保护隐私,并确保潜在用户(技术和非技术)了解项目的局限性。 +- 自愿工作[支持](https://www.consentfultech.io/)使用这些技术和受这些技术影响的人的自主决定。 +- 具有社会意识的工作向我们展示了技术如何支持社会、环境和科学工作。 +- 可持续工作着重介绍并探索使机器学习在生态上可持续发展的技术。 +- 包容性工作扩大了谁在机器学习世界中构建和受益的范围。 +- 好奇的工作揭示了不平等和权力结构,这些不平等和权力结构挑战了社区并让其重新思考自身与技术的关系。 + +在 https://huggingface.co/ethics 上阅读更多内容 + +查找这些术语,我们将在 Hub 上的一些新项目中使用这些标签,并根据社区贡献更新它们! + +## 保障措施 + +对开放版本采取“全有或全无”的观点忽略了决定 ML 模型正面或负面影响的各种背景因素。对 ML 系统的共享和重用方式进行更多控制,支持协作开发和分析,同时降低促进有害使用或滥用的风险;允许更多的开放和参与创新以共享利益。 + +我们直接与贡献者接触并解决了紧迫的问题。为了将其提升到一个新的水平,我们正在构建基于社区的流程。这种方法使 Hugging Face 贡献者和受贡献影响的人能够告知我们平台上提供的模型和数据所需的限制、共享和其他机制。我们将关注的三个主要方面是:工件( artifact )的来源、工件的开发者如何处理工件以及工件的使用方式。在这方面,我们: +- 为我们的社区推出了一个[标记功能](https://twitter.com/GiadaPistilli/status/1571865167092396033),以确定 ML 工件或社区内容(模型、数据集、空间或讨论)是否违反了我们的[内容指南](https://huggingface.co/content-guidelines), +- 监控我们的社区讨论板,以确保 Hub 用户遵守[行为准则](https://huggingface.co/code-of-conduct), +- 使用详细说明社会影响、偏见以及预期和超出范围的用例的模型卡,有力地记录我们下载次数最多的模型, +- 创建观众引导标签,例如可以添加到仓库的卡片元数据中的“不适合所有观众”标签,以避免未请求的暴力和色情内容, +- 促进对[模型](https://www.licenses.ai/blog/2022/8/26/bigscience-open-rail-m-license)使用[开放式负责任人工智能许可证 (RAIL)](https://huggingface.co/blog/open_rail),例如 LLM([BLOOM](https://huggingface.co/spaces/bigscience/license),[BigCode](https://huggingface.co/spaces/bigcode/license)) +- 进行研究,[分析](https://arxiv.org/abs/2302.04844)哪些模型和数据集最有可能被滥用和恶意使用,或有记录显示滥用和恶意使用。 + +**如何使用标记功能:** +单击任何模型、数据集、空间或讨论上的标记图标: +

+
+ screenshot pointing to the flag icon to Report this model + 登录后,你可以单击“三个竖点”按钮以显示报告(或标记)仓库的功能。这将在仓库的社区选项卡中打开一个对话。 +

+ +分享你标记此项目的原因: +

+
+ screenshot showing the text window where you describe why you flagged this item + 请在你的报告中添加尽可能多的相关上下文!这将使仓库所有者和 HF 团队更容易开始采取行动。 +

+ +在优先考虑开放科学时,我们逐案检查潜在危害,并提供协作学习和分担责任的机会。当用户标记系统时,开发人员可以直接透明地回应问题。本着这种精神,我们要求仓库所有者做出合理的努力来解决报告的问题,尤其是当报告人花时间提供问题描述时。我们还强调,报告和讨论与平台的其他部分一样,遵循相同的沟通规范。如果行为变得仇恨和/或辱骂,模型拥有者可以脱离或结束讨论(参见[行为准则](https://huggingface.co/code-of-conduct))。 + + +如果我们的社区将特定模型标记为高风险,我们会考虑: +- 在趋势选项卡和提要中降低 ML 工件在 Hub 中的可见性, +- 请求启用门控功能以管理对 ML 工件的访问(请参阅[模型](https://huggingface.co/docs/hub/models-gated)和[数据集](https://huggingface.co/docs/hub/datasets-gated)文档) +- 要求将模型设为私有, +- 禁用访问。 + +**如何添加“不适合所有受众”标签:** + +编辑 model/data card → 在标签部分添加 `not-for-all-audiences` → 打开 PR ,等待作者合并。合并后,以下标签将显示在仓库中: + + +

+
+ screenshot showing where to add tags +

+ +任何标记有 `not-for-all-audiences` 的仓库在访问时都会显示以下弹出窗口: +

+
+ screenshot showing where to add tags +

+ +单击“查看内容”将允许你正常查看仓库。如果你希望始终在没有弹出窗口 `not-for-all-audiences` 的情况下查看标记的仓库, 可以在用户的[​Content Preferences](https://huggingface.co/settings/content-preferences)中更改此设置 + +

+
+ screenshot showing where to add tags +

+ + +开放科学需要保障措施,我们的一个目标是创造一个考虑到不同价值取舍的环境。提供模型和培育社区并讨论能够赋予多元群体评估社会影响以及引导好的机器学习的能力。 + +## 你在做保障措施吗?请在 Hugging Face Hub 上分享它们! + +Hugging Face 最重要的部分是我们的社区。如果你是一名研究人员,致力于使 ML 的使用更安全,尤其是对于开放科学,我们希望支持并展示你的工作! + +以下是 Hugging Face 社区研究人员最近的一些示例和工具: +- John Kirchenbauer, Jonas Geiping, Yuxin Wen, Jonathan Katz, Ian Miers, Tom Goldstein ([论文](https://arxiv.org/abs/2301.10226)) 的 [大语言模型的水印](https://huggingface.co/spaces/tomg-group-umd/lm-watermarking) +- Hugging Face 团队的[生成模型卡片的工具](https://huggingface.co/spaces/huggingface/Model_Cards_Writing_Tool) +- Ram Ananth 的保护图像免受篡改的[ Photoguard](https://huggingface.co/spaces/RamAnanth1/photoguard) + +感谢阅读! 🤗 + +~ Irene, Nima, Giada, Yacine, 和 Elizabeth, 代表道德和社会常规人员 + +如果你想引用这篇博客,请使用以下内容(按贡献降序排列): +``` +@misc{hf_ethics_soc_blog_3, + author = {Irene Solaiman and + Giada Pistilli and + Nima Boscarino and + Yacine Jernite and + Elizabeth Allendorf and + Margaret Mitchell and + Carlos Muñoz Ferrandis and + Nathan Lambert and + Alexandra Sasha Luccioni + }, + title = {Hugging Face Ethics and Society Newsletter 3: Ethical Openness at Hugging Face}, + booktitle = {Hugging Face Blog}, + year = {2023}, + url = {https://doi.org/10.57967/hf/0487}, + doi = {10.57967/hf/0487} +} + +``` From 3fede71afc02b73e3b6833dcbdcdaee6689d3858 Mon Sep 17 00:00:00 2001 From: Zhongdong Yang Date: Wed, 19 Apr 2023 14:30:34 +0800 Subject: [PATCH 02/55] Update _blog.yml Try to resolve conflicts --- zh/_blog.yml | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/zh/_blog.yml b/zh/_blog.yml index ccccfa3bf0..c4cbf56c59 100644 --- a/zh/_blog.yml +++ b/zh/_blog.yml @@ -118,7 +118,7 @@ - open-source-collab - local: intel-sapphire-rapids - title: "Accelerating PyTorch Transformers with Intel Sapphire Rapids, part 1" + title: "使用英特尔 Sapphire Rapids 加速 PyTorch Transformers 模型(第一部分)" author: juliensimon thumbnail: /blog/assets/124_intel_sapphire_rapids/02.png date: January 2, 2023 @@ -140,7 +140,7 @@ - game-dev - local: intro-graphml - title: "Introduction to Graph Machine Learning" + title: "一文带你入门图机器学习" author: clefourrier thumbnail: /blog/assets/125_intro-to-graphml/thumbnail.png date: January 3, 2023 @@ -160,7 +160,7 @@ - game-dev - local: image-similarity - title: "Image Similarity with Hugging Face Datasets and Transformers" + title: "基于 Hugging Face Datasets 和 Transformers 的图像相似性搜索" author: sayakpaul thumbnail: /blog/assets/image_similarity/thumbnail.png date: Jan 16, 2023 @@ -374,10 +374,20 @@ tags: - diffusers +- local: graphml-classification + title: "使用 Transformers 进行图分类" + author: clefourrier + thumbnail: /blog/assets/125_intro-to-graphml/thumbnail_classification.png + date: April 14, 2023 + tags: + - community + - guide + - graphs + - local: ethics-soc-3 title: "道德与社会问题简报 #3: Hugging Face 上的道德开放性" author: irenesolaiman thumbnail: /blog/assets/137_ethics_soc_3/ethics_3_thumbnail.png date: Mar 30, 2023 tags: - - ethics \ No newline at end of file + - ethics From c9d3fc530217d5d50e316975934bc49283a079b5 Mon Sep 17 00:00:00 2001 From: Zhongdong Yang Date: Wed, 19 Apr 2023 14:47:48 +0800 Subject: [PATCH 03/55] Update: proofreading zh/ethics-soc-3.md --- zh/ethics-soc-3.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/zh/ethics-soc-3.md b/zh/ethics-soc-3.md index 973b3c3f45..c85d92dea1 100644 --- a/zh/ethics-soc-3.md +++ b/zh/ethics-soc-3.md @@ -9,6 +9,8 @@ authors: - user: allendorf translators: - user: innovation64 +- user: zhongdongy + proofreader: true --- @@ -36,8 +38,8 @@ translators: - 自愿工作[支持](https://www.consentfultech.io/)使用这些技术和受这些技术影响的人的自主决定。 - 具有社会意识的工作向我们展示了技术如何支持社会、环境和科学工作。 - 可持续工作着重介绍并探索使机器学习在生态上可持续发展的技术。 -- 包容性工作扩大了谁在机器学习世界中构建和受益的范围。 -- 好奇的工作揭示了不平等和权力结构,这些不平等和权力结构挑战了社区并让其重新思考自身与技术的关系。 +- 包容性工作扩大了在机器学习世界中构建和受益的对象范围。 +- 追根问底的工作揭示了不平等和权力结构,这些不平等和权力结构挑战了社区并让其重新思考自身与技术的关系。 在 https://huggingface.co/ethics 上阅读更多内容 @@ -74,7 +76,7 @@ translators: 如果我们的社区将特定模型标记为高风险,我们会考虑: -- 在趋势选项卡和提要中降低 ML 工件在 Hub 中的可见性, +- 在趋势选项卡和 Feed 中降低 ML 工件在 Hub 中的可见性, - 请求启用门控功能以管理对 ML 工件的访问(请参阅[模型](https://huggingface.co/docs/hub/models-gated)和[数据集](https://huggingface.co/docs/hub/datasets-gated)文档) - 要求将模型设为私有, - 禁用访问。 @@ -119,6 +121,7 @@ Hugging Face 最重要的部分是我们的社区。如果你是一名研究人 ~ Irene, Nima, Giada, Yacine, 和 Elizabeth, 代表道德和社会常规人员 如果你想引用这篇博客,请使用以下内容(按贡献降序排列): + ``` @misc{hf_ethics_soc_blog_3, author = {Irene Solaiman and From d1c88f011e7bf8815488a68aa4f1e0ba5231a8b0 Mon Sep 17 00:00:00 2001 From: "Yao, Matrix" Date: Thu, 20 Apr 2023 16:47:42 -0400 Subject: [PATCH 04/55] add how-to-generate cn version Signed-off-by: Yao, Matrix --- zh/_blog.yml | 9 + zh/how-to-generate.md | 451 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 460 insertions(+) create mode 100644 zh/how-to-generate.md diff --git a/zh/_blog.yml b/zh/_blog.yml index c4cbf56c59..e91a1587ab 100644 --- a/zh/_blog.yml +++ b/zh/_blog.yml @@ -391,3 +391,12 @@ date: Mar 30, 2023 tags: - ethics + +- local: how-to-generate + title: "如何生成文本:通过 Transformers 用不同的解码方法生成文本" + author: patrickvonplaten + thumbnail: /blog/assets/02_how-to-generate/thumbnail.png + date: March, 2020 + tags: + - guide + - nlp diff --git a/zh/how-to-generate.md b/zh/how-to-generate.md new file mode 100644 index 0000000000..34b251e64c --- /dev/null +++ b/zh/how-to-generate.md @@ -0,0 +1,451 @@ +--- +title: "如何生成文本:通过 Transformers 用不同的解码方法生成文本" +thumbnail: /blog/assets/02_how-to-generate/thumbnail.png +authors: +- user: patrickvonplaten +translators: +- user: MatrixYao +--- + +

如何生成文本:通过 Transformers 用不同的解码方法生成文本

+ + + + + + Open In Colab + + +### 简介 + +近年来,随着以OpenAI [GPT2 模型](https://openai.com/blog/better-language-models/)为代表的基于数百万网页数据训练的大型 transformer 语言模型的兴起,开放域语言生成领域吸引了越来越多的关注。开放域中的条件语言生成效果令人印象深刻,典型的例子有:[GPT2 在独角兽话题上的精彩续写](https://openai.com/blog/better-language-models/#samples),[XLNet](https://medium.com/@amanrusia/xlnet-speaks-comparison-to-gpt-2-ea1a4e9ba39e) 以及[使用 CTRL 模型生成受控文本](https://blog.einstein.ai/introducing-a-conditional-transformer-language-model-for-controllable-generation/)等。促成这些进展的除了 transformer 架构的改进和大规模无监督训练数据外,**更好的解码方法**也发挥了不可或缺的作用。 + +本文简述了不同的解码策略,同时向读者展示了如何使用流行的 `transformers` 库轻松实现这些解码策略! + +下文中的所有功能均可用于**自回归**语言生成任务(点击[此处](http://jalammar.github.io/illustrated-gpt2/)复习)。简单复习一下,*自回归*语言生成是基于如下假设:一个文本序列的概率分布可以分解为每个词基于其上文的条件概率的乘积。 + +$$ P(w_{1:T} | W_0 ) = \prod_{t=1}^T P(w_{t} | w_{1: t-1}, W_0) \text{ , 其中 } w_{1: 0} = \emptyset, $$ + +上式中,$W_0$ 是初始*上下文*单词序列。文本序列的长度 $T$ 通常时变的,并且对应于时间步 $t=T$。$P(w_{t} | w_{1: t- 1}, W_{0})$ 的词表中已包含 终止符(End Of Sequence,EOS) 。 + +`transformers` 目前已支持的自回归语言生成任务包括 `GPT2`、`XLNet`、`OpenAi-GPT`、`CTRL`、`TransfoXL`、`XLM`、`Bart`、`T5` 模型,并支持 PyTorch 和 TensorFlow(>= 2.0)两种框架! + +我们会介绍目前最常用的解码方法,主要有*贪心搜索(Greedy search)*、*波束搜索(Beam search)*、*Top-K采样(Top-K sampling)* 以及 *Top-p采样(Top-p sampling)*。 + +在此之前,我们先快速安装一下 `transformers` 并把模型加载进来。本文我们用 GPT2 模型在 TensorFlow 2.1 中进行演示,但 API 和使用 PyTorch 框架是一一对应的。 + +``` python +!pip install -q git+https://github.com/huggingface/transformers.git +!pip install -q tensorflow==2.1 +``` + +``` python +import tensorflow as tf +from transformers import TFGPT2LMHeadModel, GPT2Tokenizer + +tokenizer = GPT2Tokenizer.from_pretrained("gpt2") + +# add the EOS token as PAD token to avoid warnings +model = TFGPT2LMHeadModel.from_pretrained("gpt2",pad_token_id=tokenizer.eos_token_id) +``` + + +### 贪心搜索 + +贪心搜索在每个时间步 $t$ 都简单地选择概率最高的词作为当前输出词:$w_t = argmax_{w}P(w | w_{1:t-1})$ ,如下图所示。 + +greedy search + +从单词 $\text{"The"}$ 开始,算法在第一步贪心地选择条件概率最高的词 $\text{"nice"}$ 作为输出,依此往后。最终生成的单词序列为 $(\text{"The"}, \text{"nice"}, \text{"woman"})$,其联合概率为 $0.5 \times 0.4 = 0.2$ 。 + +下面,我们输入文本序列 $(\text{"I"}, \text{"enjoy"}, \text{"walking"}, \text{"with"}, \text{"my"}, \text{"cute"}, \text{"dog"})$ 给 GPT2 模型,让模型生成下文。我们以此为例看看如何在 `transformers` 中使用贪心搜索: + +``` python +# encode context the generation is conditioned on +input_ids = tokenizer.encode('I enjoy walking with my cute dog', return_tensors='tf') + +# generate text until the output length (which includes the context length) reaches 50 +greedy_output = model.generate(input_ids, max_length=50) + +print("Output:\n" + 100 * '-') +print(tokenizer.decode(greedy_output[0], skip_special_tokens=True)) +``` + +
+ + Output: + ---------------------------------------------------------------------------------------------------- + I enjoy walking with my cute dog, but I'm not sure if I'll ever be able to walk with my dog. I'm not sure if I'll ever be able to walk with my dog. + + I'm not sure if I'll + +
+ +好,我们已经用 GPT2 生成了第一个短文本😊。根据上文生成的单词是合理的,但模型很快开始输出重复的文本!这在语言生成中是一个非常普遍的问题,在贪心搜索和波束搜索中似乎更是如此 - 详见 [Vijayakumar 等人,2016](https://arxiv.org/abs/1610.02424) 和 [Shao等人,2017](https://arxiv.org/abs/1701.03185) 的论文。 + +贪心搜索的主要缺点是它错过了隐藏在低概率词后面的高概率词,如上图所示: + +条件概率为 $0.9$ 的单词 $\text{"has"}$ 隐藏在单词 $\text{"dog"}$ 后面,而 $\text{"dog"}$ 因为在 `t=1` 时条件概率值只排第二所以未被选择,因此贪心搜索会错过序列 $\text{"The"}, \text {"dog"}, \text{"has"}$ 。 + +幸好我们可以用波束搜索来缓解这个问题! + + +### 波束搜索 +波束搜索通过在每个时间步保留最可能的 `num_beams` 个词,并从中最终选择出概率最高的序列来降低丢失潜在的高概率序列的风险。以 `num_beams=2` 为例: + +beam search + +在时间步 1,除了最有可能的假设 $(\text{"The"}, \text{"nice"})$,波束搜索还跟踪第二可能的假设 $(\ text{"The"}, \text{"dog"})$。在时间步 2,波束搜索发现序列 $(\text{"The"}, \text{"dog"}, \text{"has"})$ 概率为$0.36$,比 $(\text{"The"}, \text{"nice"}, \text{"woman"})$ 的 $0.2$更高。太棒了,在我们的例子中它已经找到了最有可能的序列! + +波束搜索一般都会找到比贪心搜索概率更高的输出序列,但仍不保证找到全局最优解。 + +让我们看看如何在 `transformers` 中使用波束搜索。我们设置 `num_beams > 1` 和 `early_stopping=True` 以便在所有波束达到 EOS 时直接结束生成。 + +``` python +# activate beam search and early_stopping +beam_output = model.generate( + input_ids, + max_length=50, + num_beams=5, + early_stopping=True +) + +print("Output:\n" + 100 * '-') +print(tokenizer.decode(beam_output[0], skip_special_tokens=True)) +``` + +
+ + Output: + ---------------------------------------------------------------------------------------------------- + I enjoy walking with my cute dog, but I'm not sure if I'll ever be able to walk with him again. + + I'm not sure if I'll ever be able to walk with him again. I'm not sure if I'll + +
+ +虽然结果比贪心搜索更流畅,但输出中仍然包含重复。一个简单的补救措施是引入 *n-grams*(即连续 n 个词的词序列)惩罚,该方法是由 [Paulus 等人 (2017)](https://arxiv.org/abs/1705.04304) 和 [Klein等人 (2017)](https://arxiv.org/abs/1701.02810) 引入的。最常见的 *n-grams* 惩罚是确保每个 *n-gram* 都只出现一次,方法是如果看到当前候选词与其上文所组成的 *n-gram* 已经出现过了,就将该候选词的概率设置为 0。 + +我们可以通过设置 `no_repeat_ngram_size=2` 来试试,这样任意 *2-gram* 不会出现两次: + +``` python +# set no_repeat_ngram_size to 2 +beam_output = model.generate( + input_ids, + max_length=50, + num_beams=5, + no_repeat_ngram_size=2, + early_stopping=True +) + +print("Output:\n" + 100 * '-') +print(tokenizer.decode(beam_output[0], skip_special_tokens=True)) +``` + +
+ + Output: + ---------------------------------------------------------------------------------------------------- + I enjoy walking with my cute dog, but I'm not sure if I'll ever be able to walk with him again. + + I've been thinking about this for a while now, and I think it's time for me to take a break + +
+ +不错,看起来好多了!我们看到生成的文本已经没有重复了。但是,*n-gram* 惩罚使用时必须谨慎,如一篇关于 *纽约* 这个城市的文章就不应使用 *2-gram* 惩罚,否则,城市名称在整个文本中将只出现一次! + +波束搜索的另一个重要特性是我们能够比较概率最高的几个波束,并选择最符合我们要求的波束作为最终生成文本。 + +在 `transformers` 中,我们只需将参数 `num_return_sequences` 设置为需返回的概率最高的波束的数量,记得确保 `num_return_sequences <= num_beams`! + +``` python +# set return_num_sequences > 1 +beam_outputs = model.generate( + input_ids, + max_length=50, + num_beams=5, + no_repeat_ngram_size=2, + num_return_sequences=5, + early_stopping=True +) + +# now we have 3 output sequences +print("Output:\n" + 100 * '-') +for i, beam_output in enumerate(beam_outputs): + print("{}: {}".format(i, tokenizer.decode(beam_output, skip_special_tokens=True))) +``` + +
+ + Output: + ---------------------------------------------------------------------------------------------------- + 0: I enjoy walking with my cute dog, but I'm not sure if I'll ever be able to walk with him again. + + I've been thinking about this for a while now, and I think it's time for me to take a break + 1: I enjoy walking with my cute dog, but I'm not sure if I'll ever be able to walk with him again. + + I've been thinking about this for a while now, and I think it's time for me to get back to + 2: I enjoy walking with my cute dog, but I'm not sure if I'll ever be able to walk with her again. + + I've been thinking about this for a while now, and I think it's time for me to take a break + 3: I enjoy walking with my cute dog, but I'm not sure if I'll ever be able to walk with her again. + + I've been thinking about this for a while now, and I think it's time for me to get back to + 4: I enjoy walking with my cute dog, but I'm not sure if I'll ever be able to walk with him again. + + I've been thinking about this for a while now, and I think it's time for me to take a step + +
+ +如我们所见,五个波束彼此之间仅有少量差别 —— 这在仅使用 5 个波束时不足为奇。 + +开放域文本生成的研究人员最近提出了几个理由来说明对该领域而言波束搜索可能不是最佳方案: + - 在机器翻译或摘要等任务中,因为所需生成的长度或多或少都是可预测的,所以波束搜索效果比较好 - 参见 [Murray 等人(2018)](https://arxiv.org/abs/1808.10006) 和 [Yang 等人(2018)](https://arxiv.org/abs/1808.09582)的工作。但开放域文本生成情况有所不同,其输出文本长度可能会有很大差异,如对话和故事生成的输出文本长度就有很大不同。 + + - 我们已经看到波束搜索已被证明存在重复生成的问题。在故事生成这样的场景中,很难用 *n-gram* 或其他惩罚来控制,因为在“不重复”和最大可重复*n-grams*之间找到一个好的折衷需要大量的微调。 + + - 正如 [Ari Holtzman 等人(2019)](https://arxiv.org/abs/1904.09751)所论证的那样,高质量的人类语言并不遵循最大概率法则。换句话说,作为人类,我们希望生成的文本能让我们感到惊喜,而可预测的文本使人感觉无聊。论文作者画了一个概率图,很好地展示了这一点,从图中可以看出人类文本带来的惊喜度比波束搜索好不少。 + +![alt text](https://blog.fastforwardlabs.com/images/2019/05/Screen_Shot_2019_05_08_at_3_06_36_PM-1557342561886.png) + +因此,让我们开始玩点刺激的,引入一些随机性🤪。 + +### 采样 + +在其最基本的形式中,采样意味着根据当前条件概率分布随机选择输出词 $w_t$: + +$$ w_t \sim P(w|w_{1:t-1}) $$ + +继续使用上文中的例子,下图可视化了使用采样生成文本的过程。 + +sampling search + +很明显,使用采样方法时文本生成本身不再是*确定性的*。单词 $\text{"car"}$ 从条件概率分布 $P(w | \text{"The"})$ 中采样而得,而 $\text{"drives"}$ 则采样自 $(P(w | \text{"The"}, \text{"car"})$。 + +在 `transformers` 中,我们设置 `do_sample=True` 并通过设置 `top_k=0` 停用 *Top-K* 采样(稍后详细介绍)。在下文中,为便于复现,我们会固定 `random_seed=0`,但你可以在自己的模型中随意更改 `random_seed`。 + +``` python +# set seed to reproduce results. Feel free to change the seed though to get different results +tf.random.set_seed(0) + +# activate sampling and deactivate top_k by setting top_k sampling to 0 +sample_output = model.generate( + input_ids, + do_sample=True, + max_length=50, + top_k=0 +) + +print("Output:\n" + 100 * '-') +print(tokenizer.decode(sample_output[0], skip_special_tokens=True)) +``` + +
+ + Output: + ---------------------------------------------------------------------------------------------------- + I enjoy walking with my cute dog. He just gave me a whole new hand sense." + + But it seems that the dogs have learned a lot from teasing at the local batte harness once they take on the outside. + + "I take + +
+ +有意思!生成的文本看起来不错 - 但仔细观察会发现它不是很连贯。*3-grams* *new hand sense* 和 *local batte harness* 非常奇怪,看起来不像是人写的。这就是对单词序列进行采样时的大问题:模型通常会产生不连贯的乱码,*参见* [Ari Holtzman 等人(2019)](https://arxiv.org/abs/1904.09751)的论文。 + +缓解这一问题的一个技巧是通过降低所谓的[softmax](https://en.wikipedia.org/wiki/Softmax_function#Smooth_arg_max) 的“温度”使分布 $P(w|w_{1:t-1}$ 更陡峭。而降低“温度”,本质上是增加高概率单词的似然并降低低概率单词的似然。 + +将温度应用到于我们的例子中后,结果如下图所示。 + +sampling temp search + +$t=1$ 时刻单词的条件分布变得更加陡峭,几乎没有机会选择单词 $\text{"car"}$ 了。 + +让我们看看如何通过设置 `temperature=0.7` 来冷却生成过程: + +``` python +# set seed to reproduce results. Feel free to change the seed though to get different results +tf.random.set_seed(0) + +# use temperature to decrease the sensitivity to low probability candidates +sample_output = model.generate( + input_ids, + do_sample=True, + max_length=50, + top_k=0, + temperature=0.7 +) + +print("Output:\n" + 100 * '-') +print(tokenizer.decode(sample_output[0], skip_special_tokens=True)) +``` + +
+ + Output: + ---------------------------------------------------------------------------------------------------- + I enjoy walking with my cute dog, but I don't like to be at home too much. I also find it a bit weird when I'm out shopping. I am always away from my house a lot, but I do have a few friends + +
+ +好,奇怪的 n-gram 变少了,现在输出更连贯了!虽然温度可以使分布的随机性降低,但极限条件下,当“温度”设置为 $0$ 时,温度缩放采样就退化成贪心解码了,因此会遇到与贪心解码相同的问题。 + +### Top-K 采样 + +[Fan 等人(2018)](https://arxiv.org/pdf/1805.04833.pdf)的论文介绍了一种简单但非常强大的采样方案,称为 ***Top-K*** 采样。在 *Top-K* 采样中,概率最大的 *K* 个词会被选出,然后这 *K* 个词的概率会被重新归一化,最后就在这重新被归一化概率后的 *K* 个词中采样。 GPT2 采用了这种采样方案,这也是它在故事生成这样的任务上取得成功的原因之一。 + +我们将上文例子中的候选单词数从 3 个单词扩展到 10 个单词,以更好地说明 *Top-K* 采样。 + +Top K sampling + +设 $K = 6$,即我们将在两个采样步的采样池大小限制为 6 个单词。我们定义 6 个最有可能的词的集合为 $V_{\text{top-K}}$。在第一步中,$V_{\text{top-K}}$ 仅占总概率的大约三分之二,但在第二步,它几乎占了全部的概率。同时,我们可以看到在第二步该方法成功地消除了那些奇怪的候选词 $(\text{``not"}, \text{``the"}, \text{``small"}, \text{``told" })$。 + +我们以设置 `top_k=50` 为例看下如何在 `transformers` 库中使用 *Top-K*: + +``` python +# set seed to reproduce results. Feel free to change the seed though to get different results +tf.random.set_seed(0) + +# set top_k to 50 +sample_output = model.generate( + input_ids, + do_sample=True, + max_length=50, + top_k=50 +) + +print("Output:\n" + 100 * '-') +print(tokenizer.decode(sample_output[0], skip_special_tokens=True)) +``` + +
+ + Output: + ---------------------------------------------------------------------------------------------------- + I enjoy walking with my cute dog. It's so good to have an environment where your dog is available to share with you and we'll be taking care of you. + + We hope you'll find this story interesting! + + I am from + +
+ +相当不错!该文本可以说是迄今为止生成的最“*像人*”的文本。现在还有一个问题,*Top-K* 采样不会动态调整从需要概率分布 $P(w|w_{1:t-1})$ 中选出的单词数。这可能会有问题,因为某些分布可能是非常尖锐(上图中右侧的分布),而另一些可能更平坦(上图中左侧的分布),所以对不同的分布使用同一个绝对数 *K* 可能并不普适。 + +在 $t=1$ 时,*Top-K* 将 $(\text{"people"}, \text{"big"}, \text{"house"}, \text{"cat"})$ 排出了采样池,而这些词似乎是合理的候选词。另一方面,在$t=2$ 时,该方法却又把不太合适的 $(\text{"down"}, \text{"a"})$ 纳入了采样池。因此,将采样池限制为固定大小 *K* 可能会在分布比较尖锐的时候产生胡言乱语,而在分布比较平坦的时候限制模型的创造力。这一发现促使 [Ari Holtzman 等人(2019)](https://arxiv.org/abs/1904.09751) 发明了 ***Top-p***- 或 ***核***- 采样。 + +### Top-p(核)采样 + +在 *Top-p* 中,采样不只是在最有可能的 *K* 个单词中进行,而是在累积概率超过概率 *p* 的最小单词集中进行。然后在这组词中重新分配概率质量。这样,词集的大小(*又名*集合中的词数)可以根据下一个词的概率分布动态增加和减少。好吧,说的很啰嗦,一图胜千言。 + +Top p sampling + +假设 $p=0.92$ ,*Top-p* 采样对单词概率进行降序排列并累加,然后选择概率和首次超过 $p=92\%$ 的单词集作为采样池,定义为 $V_{\text{top-p}}$。在 $t=1$ 时 $V_{\text{top-p}}$ 有 9 个词,而在 $t=2$ 时它只需要选择前 3 个词就超过了 92%。其实很简单吧!可以看出,在单词比较不可预测时,它保留了更多的候选词,*如* $P(w | \text{"The''})$,而当单词似乎更容易预测时,只保留了几个候选词,*如* $(P(w | \text{"The"}, \text{"car"})$。 + +好的,是时候看看它在 `transformers` 里怎么用了!我们可以通过设置 `0 < top_p < 1` 来激活 *Top-p* 采样: + +``` python +# set seed to reproduce results. Feel free to change the seed though to get different results +tf.random.set_seed(0) + +# deactivate top_k sampling and sample only from 92% most likely words +sample_output = model.generate( + input_ids, + do_sample=True, + max_length=50, + top_p=0.92, + top_k=0 +) + +print("Output:\n" + 100 * '-') +print(tokenizer.decode(sample_output[0], skip_special_tokens=True)) +``` + +``` +Output: +---------------------------------------------------------------------------------------------------- +I enjoy walking with my cute dog. He will never be the same. I watch him play. + + +Guys, my dog needs a name. Especially if he is found with wings. + + +What was that? I had a lot o +``` + +太好了,这看起来跟人类写的差不多了,虽然还不算完全是。 + +虽然从理论上讲,*Top-p* 似乎比 *Top-K* 更优雅,但这两种方法在实践中都很有效。 *Top-p* 也可以与 *Top-K* 结合使用,这样可以避免排名非常低的词,同时允许进行一些动态选择。 + +最后,如果想要获得多个独立采样的输出,我们可以*再次*设置参数 `num_return_sequences > 1`: + +``` python +# set seed to reproduce results. Feel free to change the seed though to get different results +tf.random.set_seed(0) + +# set top_k = 50 and set top_p = 0.95 and num_return_sequences = 3 +sample_outputs = model.generate( + input_ids, + do_sample=True, + max_length=50, + top_k=50, + top_p=0.95, + num_return_sequences=3 +) + +print("Output:\n" + 100 * '-') +for i, sample_output in enumerate(sample_outputs): + print("{}: {}".format(i, tokenizer.decode(sample_output, skip_special_tokens=True))) +``` + + +``` +Output: +---------------------------------------------------------------------------------------------------- +0: I enjoy walking with my cute dog. It's so good to have the chance to walk with a dog. But I have this problem with the dog and how he's always looking at us and always trying to make me see that I can do something +1: I enjoy walking with my cute dog, she loves taking trips to different places on the planet, even in the desert! The world isn't big enough for us to travel by the bus with our beloved pup, but that's where I find my love +2: I enjoy walking with my cute dog and playing with our kids," said David J. Smith, director of the Humane Society of the US. + +"So as a result, I've got more work in my time," he said. + + +``` + +很酷,现在你拥有了所有可以在 `transformers` 里用模型来帮你写故事的工具了! + +### 总结 + +在开放域语言生成场景中,作为最新的解码方法,*top-p* 和 *top-K* 采样于传统的 *贪心* 和 *波束* 搜索相比,似乎能产生更流畅的文本。但,最近有更多的证据表明 *贪心* 和 *波束* 搜索的明显缺陷 - 主要是生成重复的单词序列 - 是由模型(特别是模型的训练方式)引起的,而不是解码方法,*参见* [Welleck 等人 (2019)](https://arxiv.org/pdf/1908.04319.pdf)的论文。此外,如 [Welleck 等人(2020)](https://arxiv.org/abs/2002.02492)的论文所述,看起来 *top-K* 和 *top-p* 采样也会产生重复的单词序列。 + +在 [Welleck 等人(2019)](https://arxiv.org/pdf/1908.04319.pdf)的论文中,作者表明,根据人类评估,在调整训练目标后,波束搜索相比 *Top-p* 采样能产生更流畅的文本。 + +开放域语言生成是一个快速发展的研究领域,而且通常情况下这里没有放之四海而皆准的方法,因此必须了解哪种方法最适合自己的特定场景。 + +好的方面是,*你*可以在 `transfomers` 中尝试所有不同的解码方法 🤗。 + +以上是对如何在 `transformers` 中使用不同的解码方法以及开放域语言生成的最新趋势的简要介绍。 + +非常欢迎大家在 [Github 代码库](https://github.com/huggingface/transformers) 上提供反馈和问题。 + +如果想要体验下用模型生成故事的乐趣,可以访问我们的 web 应用 [Writing with Transformers](https://transformer.huggingface.co/)。 + +感谢为本文做出贡献的所有人:Alexander Rush、Julien Chaumand、Thomas Wolf、Victor Sanh、Sam Shleifer、Clément Delangue、Yacine Jernite、Oliver Åstrand 和 John de Wasseige。 + +### 附录 + +`generate` 方法还有几个正文未提及的参数,这里我们简要解释一下它们! + + - `min_length` 用于强制模型在达到 `min_length` 之前不生成 EOS。这在摘要场景中使用得比较多,但如果用户想要更长的文本输出,也会很有用。 + + - `repetition_penalty` 可用于对生成重复的单词这一行为进行惩罚。它首先由 [Keskar 等人(2019)](https://arxiv.org/abs/1909.05858)引入,在 [Welleck 等人(2019)](https://arxiv.org/pdf/1908.04319.pdf) 的工作中,它是训练目标的一部分。它可以非常有效地防止重复,但似乎对模型和用户场景非常敏感,其中一个例子见 Github 上的[讨论](https://github.com/huggingface/transformers/pull/2303)。 + + - `attention_mask` 可用于屏蔽填充符。 + + - `pad_token_id`、`bos_token_id`、`eos_token_id`:如果模型默认没有这些token,用户可以手动选择其他token id来表示它们。 + +更多信息,请查阅 `generate` 函数 [手册](https://huggingface.co/transformers/main_classes/model.html?highlight=generate#transformers.TFPreTrainedModel.generate)。 + +> 英文原文: https://huggingface.co/blog/how-to-generate +> 原文作者:Patrick von Platen +> 译者: Matrix Yao (姚伟峰),英特尔深度学习工程师,工作方向为 transformer-family 模型在各模态数据上的应用及大规模模型的训练推理。 From 2d38228bea64abc38b1a7f26eae7fe302212d63d Mon Sep 17 00:00:00 2001 From: SuSung-boy <872414318@qq.com> Date: Sat, 22 Apr 2023 19:55:59 +0800 Subject: [PATCH 05/55] unity game in hf space translation completed --- zh/unity-in-spaces.md | 129 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 zh/unity-in-spaces.md diff --git a/zh/unity-in-spaces.md b/zh/unity-in-spaces.md new file mode 100644 index 0000000000..8c56d4fda9 --- /dev/null +++ b/zh/unity-in-spaces.md @@ -0,0 +1,129 @@ +--- +title: "如何在 🤗 Space 上托管 Unity 游戏" +thumbnail: /blog/assets/124_ml-for-games/unity-in-spaces-thumbnail.png +authors: +- user: dylanebert +translators: +- user: SuSung-boy +--- + +

如何在 🤗 Space 上托管 Unity 游戏

+ + + + + +你知道吗?Hugging Face Space 可以托管自己开发的 Unity 游戏!惊不惊喜,意不意外?!来了解一下吧! + +Hugging Face Space 是一个能够以简单的方式来构建、托管和分享项目或应用样例的平台。虽然通常更多地是应用在机器学习样例中,不过实际上 Space 还可以用来托管 Unity 游戏,并且支持点击即玩。这里有一些游戏的 Space 示例: + +- [Huggy](https://huggingface.co/spaces/ThomasSimonini/Huggy)。Huggy 是一个基于强化学习构建的简易游戏,玩家可以点击鼠标扔出小木棍,来教宠物狗把木棍捡回来 +- [农场游戏](https://huggingface.co/spaces/dylanebert/FarmingGame)。农场游戏是我们在 <五天创建一个农场游戏> 系列中完成的游戏,玩家可以通过种植、收获和升级农作物来打造一个自己的繁荣农场 +- [Unity API Demo](https://huggingface.co/spaces/dylanebert/UnityDemo)。一个 Unity 样例 + +本文将详细介绍如何在 🤗 Space 上托管自己的 Unity 游戏。 + +## 第一步:使用静态 HTML 模板创建 Space 应用 + +首先,导航至 [Hugging Face Spaces](https://huggingface.co/new-space) 页面,创建一个新的 Space 应用。 + +
+ +
+ +选择 “静态 HTML” 模板,并为该 Space 取个名字,然后点击创建 Space。 + +
+ +
+ +## 第 2 步:使用 Git 克隆 Space 库到本地 + +使用 Git 将上一步创建的 Space 库克隆到本地。克隆命令如下: + +``` +git clone https://huggingface.co/spaces/{your-username}/{your-space-name} +``` + +## 第 3 步:打开 Unity 项目 + +打开你希望在 🤗 Space 上托管的 Unity 项目。 + +
+ +
+ +## 第 4 步:将构建目标切换为 WebGL + +点击菜单栏的 `File > Build Settings`,将构建目标切换为 WebGL。 + +
+ +
+ +## 第 5 步:打开 Player Settings 面板 + +在上一步打开的 Build Settings 窗口中,点击左下角的 “Player Settings” 按钮,打开 Player Settings 面板。 + +
+ +
+ +## 第 6 步:(可选) 下载 Hugging Face Unity WebGL 模板 + +Hugging Face Unity WebGL 模板可以使得你制作的游戏在 🤗 Space 上展示地更加美观。可以点击 [此处](https://github.com/huggingface/Unity-WebGL-template-for-Hugging-Face-Spaces) 下载模板库,并将其放到你的游戏项目目录,然后在 Player Settings 面板中将 WebGL 模板切换为 Hugging Face 即可。 + +如下图所示,在 Player Settings 面板中点击 “Resolution and Presentation”,然后选择 Hugging Face WebGL 模板。 + +
+ +
+ +## 第 7 步:禁用压缩 + +在 Player Settings 面板中点击 “Publishing Settings”,将 Compression Format 改为 “Disabled” 来禁用压缩。 + +
+ +
+ +## 第 8 步:构建游戏项目 + +返回 Build Settings 窗口,并点击 “Build” 按钮,选择一个本地目录来保存构建的游戏项目文件。按照前几步的设置,Unity 将会把项目构建为 WebGL。 + +
+ +
+ +## 第 9 步:将构建完成的文件复制到 Space 库 + +构建过程完成之后,打开上一步中项目保存的本地目录,将该目录下的文件复制到 [第 2 步](#第-2-步使用-git-克隆-space-step-2-use-git-to-clone-the-space) 中克隆的 Space 库里。 + +
+ +
+ +## 第 10 步:为大文件存储启用 Git-LFS + +打开 Space 库, 在该目录执行以下命令来追踪构建的大型文件。 + +``` +git lfs install +git track Build/* +``` + +## 第 11 步:Push 到 Hugging Face Space + +最后,将本地的 Space 库的所有改动推送到 Hugging Face Space 上。执行以下 Git 命令即可完成推送: + +``` +git add . +git commit -m "Add Unity WebGL build files" +git push +``` + +## 完成! + +至此,在 🤗 Space 上托管 Unity 游戏的所有步骤就都完成了。恭喜!现在请刷新你的 Space 页面,你就可以在 Space 上玩游戏了! + +希望本教程对你有所帮助。如果你有任何疑问,或想更多地参与到 Hugging Face 游戏相关的应用中,可以加入 Hugging Face 的官方 [Discord](https://hf.co/join/discord) 频道来与我们取得联系! \ No newline at end of file From 267b7e3fdf42c23eaf228dd89abd1533935adf23 Mon Sep 17 00:00:00 2001 From: Zhongdong Yang Date: Sun, 23 Apr 2023 17:07:37 +0800 Subject: [PATCH 06/55] Update: punctuations of how-to-generate.md --- zh/how-to-generate.md | 131 ++++++++++++++++++++---------------------- 1 file changed, 63 insertions(+), 68 deletions(-) diff --git a/zh/how-to-generate.md b/zh/how-to-generate.md index 34b251e64c..33d2300905 100644 --- a/zh/how-to-generate.md +++ b/zh/how-to-generate.md @@ -5,9 +5,11 @@ authors: - user: patrickvonplaten translators: - user: MatrixYao +- user: zhongdongy + proofreader: true --- -

如何生成文本:通过 Transformers 用不同的解码方法生成文本

+

如何生成文本: 通过 Transformers 用不同的解码方法生成文本

@@ -18,28 +20,26 @@ translators: ### 简介 -近年来,随着以OpenAI [GPT2 模型](https://openai.com/blog/better-language-models/)为代表的基于数百万网页数据训练的大型 transformer 语言模型的兴起,开放域语言生成领域吸引了越来越多的关注。开放域中的条件语言生成效果令人印象深刻,典型的例子有:[GPT2 在独角兽话题上的精彩续写](https://openai.com/blog/better-language-models/#samples),[XLNet](https://medium.com/@amanrusia/xlnet-speaks-comparison-to-gpt-2-ea1a4e9ba39e) 以及[使用 CTRL 模型生成受控文本](https://blog.einstein.ai/introducing-a-conditional-transformer-language-model-for-controllable-generation/)等。促成这些进展的除了 transformer 架构的改进和大规模无监督训练数据外,**更好的解码方法**也发挥了不可或缺的作用。 +近年来,随着以 OpenAI [GPT2 模型](https://openai.com/blog/better-language-models/) 为代表的基于数百万网页数据训练的大型 Transformer 语言模型的兴起,开放域语言生成领域吸引了越来越多的关注。开放域中的条件语言生成效果令人印象深刻,典型的例子有: [GPT2 在独角兽话题上的精彩续写](https://openai.com/blog/better-language-models/#samples),[XLNet](https://medium.com/@amanrusia/xlnet-speaks-comparison-to-gpt-2-ea1a4e9ba39e) 以及 [使用 CTRL 模型生成受控文本](https://blog.einstein.ai/introducing-a-conditional-transformer-language-model-for-controllable-generation/) 等。促成这些进展的除了 transformer 架构的改进和大规模无监督训练数据外,*更好的解码方法* 也发挥了不可或缺的作用。 本文简述了不同的解码策略,同时向读者展示了如何使用流行的 `transformers` 库轻松实现这些解码策略! -下文中的所有功能均可用于**自回归**语言生成任务(点击[此处](http://jalammar.github.io/illustrated-gpt2/)复习)。简单复习一下,*自回归*语言生成是基于如下假设:一个文本序列的概率分布可以分解为每个词基于其上文的条件概率的乘积。 +下文中的所有功能均可用于 *自回归* 语言生成任务 (点击 [此处](http://jalammar.github.io/illustrated-gpt2/) 回顾)。简单复习一下, *自回归* 语言生成是基于如下假设: 一个文本序列的概率分布可以分解为每个词基于其上文的条件概率的乘积。 $$ P(w_{1:T} | W_0 ) = \prod_{t=1}^T P(w_{t} | w_{1: t-1}, W_0) \text{ , 其中 } w_{1: 0} = \emptyset, $$ -上式中,$W_0$ 是初始*上下文*单词序列。文本序列的长度 $T$ 通常时变的,并且对应于时间步 $t=T$。$P(w_{t} | w_{1: t- 1}, W_{0})$ 的词表中已包含 终止符(End Of Sequence,EOS) 。 +上式中,$W_0$ 是初始 *上下文* 单词序列。文本序列的长度 $T$ 通常时变的,并且对应于时间步 $t=T$。$P(w_{t} | w_{1: t- 1}, W_{0})$ 的词表中已包含 终止符 (End Of Sequence,EOS)。`transformers` 目前已支持的自回归语言生成任务包括 `GPT2`、`XLNet`、`OpenAi-GPT`、`CTRL`、`TransfoXL`、`XLM`、`Bart`、`T5` 模型,并支持 PyTorch 和 TensorFlow (>= 2.0) 两种框架! -`transformers` 目前已支持的自回归语言生成任务包括 `GPT2`、`XLNet`、`OpenAi-GPT`、`CTRL`、`TransfoXL`、`XLM`、`Bart`、`T5` 模型,并支持 PyTorch 和 TensorFlow(>= 2.0)两种框架! - -我们会介绍目前最常用的解码方法,主要有*贪心搜索(Greedy search)*、*波束搜索(Beam search)*、*Top-K采样(Top-K sampling)* 以及 *Top-p采样(Top-p sampling)*。 +我们会介绍目前最常用的解码方法,主要有 *贪心搜索 (Greedy search)*、*波束搜索 (Beam search)*、*Top-K 采样 (Top-K sampling)* 以及 *Top-p 采样 (Top-p sampling)*。 在此之前,我们先快速安装一下 `transformers` 并把模型加载进来。本文我们用 GPT2 模型在 TensorFlow 2.1 中进行演示,但 API 和使用 PyTorch 框架是一一对应的。 -``` python +```python !pip install -q git+https://github.com/huggingface/transformers.git !pip install -q tensorflow==2.1 ``` -``` python +```python import tensorflow as tf from transformers import TFGPT2LMHeadModel, GPT2Tokenizer @@ -49,18 +49,17 @@ tokenizer = GPT2Tokenizer.from_pretrained("gpt2") model = TFGPT2LMHeadModel.from_pretrained("gpt2",pad_token_id=tokenizer.eos_token_id) ``` - ### 贪心搜索 -贪心搜索在每个时间步 $t$ 都简单地选择概率最高的词作为当前输出词:$w_t = argmax_{w}P(w | w_{1:t-1})$ ,如下图所示。 +贪心搜索在每个时间步 $t$ 都简单地选择概率最高的词作为当前输出词: $w_t = argmax_{w}P(w | w_{1:t-1})$ ,如下图所示。 greedy search -从单词 $\text{"The"}$ 开始,算法在第一步贪心地选择条件概率最高的词 $\text{"nice"}$ 作为输出,依此往后。最终生成的单词序列为 $(\text{"The"}, \text{"nice"}, \text{"woman"})$,其联合概率为 $0.5 \times 0.4 = 0.2$ 。 +从单词 $\text{“The”}$ 开始,算法在第一步贪心地选择条件概率最高的词 $\text{“nice”}$ 作为输出,依此往后。最终生成的单词序列为 $(\text{“The”}, \text{“nice”}, \text{“woman”})$,其联合概率为 $0.5 \times 0.4 = 0.2$。 -下面,我们输入文本序列 $(\text{"I"}, \text{"enjoy"}, \text{"walking"}, \text{"with"}, \text{"my"}, \text{"cute"}, \text{"dog"})$ 给 GPT2 模型,让模型生成下文。我们以此为例看看如何在 `transformers` 中使用贪心搜索: +下面,我们输入文本序列 $(\text{“I”}, \text{“enjoy”}, \text{“walking”}, \text{“with”}, \text{“my”}, \text{“cute”}, \text{“dog”})$ 给 GPT2 模型,让模型生成下文。我们以此为例看看如何在 `transformers` 中使用贪心搜索: -``` python +```python # encode context the generation is conditioned on input_ids = tokenizer.encode('I enjoy walking with my cute dog', return_tensors='tf') @@ -81,27 +80,27 @@ print(tokenizer.decode(greedy_output[0], skip_special_tokens=True)) -好,我们已经用 GPT2 生成了第一个短文本😊。根据上文生成的单词是合理的,但模型很快开始输出重复的文本!这在语言生成中是一个非常普遍的问题,在贪心搜索和波束搜索中似乎更是如此 - 详见 [Vijayakumar 等人,2016](https://arxiv.org/abs/1610.02424) 和 [Shao等人,2017](https://arxiv.org/abs/1701.03185) 的论文。 +好,我们已经用 GPT2 生成了第一个短文本😊。根据上文生成的单词是合理的,但模型很快开始输出重复的文本!这在语言生成中是一个非常普遍的问题,在贪心搜索和波束搜索中似乎更是如此 - 详见 [Vijayakumar 等人,2016](https://arxiv.org/abs/1610.02424) 和 [Shao 等人,2017](https://arxiv.org/abs/1701.03185) 的论文。 -贪心搜索的主要缺点是它错过了隐藏在低概率词后面的高概率词,如上图所示: +贪心搜索的主要缺点是它错过了隐藏在低概率词后面的高概率词,如上图所示: -条件概率为 $0.9$ 的单词 $\text{"has"}$ 隐藏在单词 $\text{"dog"}$ 后面,而 $\text{"dog"}$ 因为在 `t=1` 时条件概率值只排第二所以未被选择,因此贪心搜索会错过序列 $\text{"The"}, \text {"dog"}, \text{"has"}$ 。 +条件概率为 $0.9$ 的单词 $\text{“has”}$ 隐藏在单词 $\text{“dog”}$ 后面,而 $\text{“dog”}$ 因为在 `t=1` 时条件概率值只排第二所以未被选择,因此贪心搜索会错过序列 $\text{“The”}, \text {“dog”}, \text{“has”}$ 。 幸好我们可以用波束搜索来缓解这个问题! - ### 波束搜索 -波束搜索通过在每个时间步保留最可能的 `num_beams` 个词,并从中最终选择出概率最高的序列来降低丢失潜在的高概率序列的风险。以 `num_beams=2` 为例: + +波束搜索通过在每个时间步保留最可能的 `num_beams` 个词,并从中最终选择出概率最高的序列来降低丢失潜在的高概率序列的风险。以 `num_beams=2` 为例: beam search -在时间步 1,除了最有可能的假设 $(\text{"The"}, \text{"nice"})$,波束搜索还跟踪第二可能的假设 $(\ text{"The"}, \text{"dog"})$。在时间步 2,波束搜索发现序列 $(\text{"The"}, \text{"dog"}, \text{"has"})$ 概率为$0.36$,比 $(\text{"The"}, \text{"nice"}, \text{"woman"})$ 的 $0.2$更高。太棒了,在我们的例子中它已经找到了最有可能的序列! +在时间步 1,除了最有可能的假设 $(\text{“The”}, \text{“nice”})$,波束搜索还跟踪第二可能的假设 $(\text{“The”}, \text{“dog”})$。在时间步 2,波束搜索发现序列 $(\text{“The”}, \text{“dog”}, \text{“has”})$ 概率为$0.36$,比 $(\text{“The”}, \text{“nice”}, \text{“woman”})$ 的 $0.2$ 更高。太棒了,在我们的例子中它已经找到了最有可能的序列! 波束搜索一般都会找到比贪心搜索概率更高的输出序列,但仍不保证找到全局最优解。 让我们看看如何在 `transformers` 中使用波束搜索。我们设置 `num_beams > 1` 和 `early_stopping=True` 以便在所有波束达到 EOS 时直接结束生成。 -``` python +```python # activate beam search and early_stopping beam_output = model.generate( input_ids, @@ -124,11 +123,11 @@ print(tokenizer.decode(beam_output[0], skip_special_tokens=True)) -虽然结果比贪心搜索更流畅,但输出中仍然包含重复。一个简单的补救措施是引入 *n-grams*(即连续 n 个词的词序列)惩罚,该方法是由 [Paulus 等人 (2017)](https://arxiv.org/abs/1705.04304) 和 [Klein等人 (2017)](https://arxiv.org/abs/1701.02810) 引入的。最常见的 *n-grams* 惩罚是确保每个 *n-gram* 都只出现一次,方法是如果看到当前候选词与其上文所组成的 *n-gram* 已经出现过了,就将该候选词的概率设置为 0。 +虽然结果比贪心搜索更流畅,但输出中仍然包含重复。一个简单的补救措施是引入 *n-grams* (即连续 n 个词的词序列) 惩罚,该方法是由 [Paulus 等人 (2017)](https://arxiv.org/abs/1705.04304) 和 [Klein 等人 (2017)](https://arxiv.org/abs/1701.02810) 引入的。最常见的 *n-grams* 惩罚是确保每个 *n-gram* 都只出现一次,方法是如果看到当前候选词与其上文所组成的 *n-gram* 已经出现过了,就将该候选词的概率设置为 0。 -我们可以通过设置 `no_repeat_ngram_size=2` 来试试,这样任意 *2-gram* 不会出现两次: +我们可以通过设置 `no_repeat_ngram_size=2` 来试试,这样任意 *2-gram* 不会出现两次: -``` python +```python # set no_repeat_ngram_size to 2 beam_output = model.generate( input_ids, @@ -158,7 +157,7 @@ print(tokenizer.decode(beam_output[0], skip_special_tokens=True)) 在 `transformers` 中,我们只需将参数 `num_return_sequences` 设置为需返回的概率最高的波束的数量,记得确保 `num_return_sequences <= num_beams`! -``` python +```python # set return_num_sequences > 1 beam_outputs = model.generate( input_ids, @@ -199,12 +198,13 @@ for i, beam_output in enumerate(beam_outputs): 如我们所见,五个波束彼此之间仅有少量差别 —— 这在仅使用 5 个波束时不足为奇。 -开放域文本生成的研究人员最近提出了几个理由来说明对该领域而言波束搜索可能不是最佳方案: - - 在机器翻译或摘要等任务中,因为所需生成的长度或多或少都是可预测的,所以波束搜索效果比较好 - 参见 [Murray 等人(2018)](https://arxiv.org/abs/1808.10006) 和 [Yang 等人(2018)](https://arxiv.org/abs/1808.09582)的工作。但开放域文本生成情况有所不同,其输出文本长度可能会有很大差异,如对话和故事生成的输出文本长度就有很大不同。 +开放域文本生成的研究人员最近提出了几个理由来说明对该领域而言波束搜索可能不是最佳方案: + +- 在机器翻译或摘要等任务中,因为所需生成的长度或多或少都是可预测的,所以波束搜索效果比较好 - 参见 [Murray 等人 (2018)](https://arxiv.org/abs/1808.10006) 和 [Yang 等人 (2018)](https://arxiv.org/abs/1808.09582) 的工作。但开放域文本生成情况有所不同,其输出文本长度可能会有很大差异,如对话和故事生成的输出文本长度就有很大不同。 - - 我们已经看到波束搜索已被证明存在重复生成的问题。在故事生成这样的场景中,很难用 *n-gram* 或其他惩罚来控制,因为在“不重复”和最大可重复*n-grams*之间找到一个好的折衷需要大量的微调。 +- 我们已经看到波束搜索已被证明存在重复生成的问题。在故事生成这样的场景中,很难用 *n-gram* 或其他惩罚来控制,因为在“不重复”和最大可重复 *n-grams* 之间找到一个好的折衷需要大量的微调。 - - 正如 [Ari Holtzman 等人(2019)](https://arxiv.org/abs/1904.09751)所论证的那样,高质量的人类语言并不遵循最大概率法则。换句话说,作为人类,我们希望生成的文本能让我们感到惊喜,而可预测的文本使人感觉无聊。论文作者画了一个概率图,很好地展示了这一点,从图中可以看出人类文本带来的惊喜度比波束搜索好不少。 +- 正如 [Ari Holtzman 等人 (2019)](https://arxiv.org/abs/1904.09751) 所论证的那样,高质量的人类语言并不遵循最大概率法则。换句话说,作为人类,我们希望生成的文本能让我们感到惊喜,而可预测的文本使人感觉无聊。论文作者画了一个概率图,很好地展示了这一点,从图中可以看出人类文本带来的惊喜度比波束搜索好不少。 ![alt text](https://blog.fastforwardlabs.com/images/2019/05/Screen_Shot_2019_05_08_at_3_06_36_PM-1557342561886.png) @@ -212,7 +212,7 @@ for i, beam_output in enumerate(beam_outputs): ### 采样 -在其最基本的形式中,采样意味着根据当前条件概率分布随机选择输出词 $w_t$: +在其最基本的形式中,采样意味着根据当前条件概率分布随机选择输出词 $w_t$: $$ w_t \sim P(w|w_{1:t-1}) $$ @@ -220,11 +220,11 @@ $$ w_t \sim P(w|w_{1:t-1}) $$ sampling search -很明显,使用采样方法时文本生成本身不再是*确定性的*。单词 $\text{"car"}$ 从条件概率分布 $P(w | \text{"The"})$ 中采样而得,而 $\text{"drives"}$ 则采样自 $(P(w | \text{"The"}, \text{"car"})$。 +很明显,使用采样方法时文本生成本身不再是 *确定性的*。单词 $\text{“car”}$ 从条件概率分布 $P(w | \text{“The”})$ 中采样而得,而 $\text{“drives”}$ 则采样自 $P(w | \text{“The”}, \text{“car”})$。 -在 `transformers` 中,我们设置 `do_sample=True` 并通过设置 `top_k=0` 停用 *Top-K* 采样(稍后详细介绍)。在下文中,为便于复现,我们会固定 `random_seed=0`,但你可以在自己的模型中随意更改 `random_seed`。 +在 `transformers` 中,我们设置 `do_sample=True` 并通过设置 `top_k=0` 停用 *Top-K* 采样 (稍后详细介绍)。在下文中,为便于复现,我们会固定 `random_seed=0`,但你可以在自己的模型中随意更改 `random_seed`。 -``` python +```python # set seed to reproduce results. Feel free to change the seed though to get different results tf.random.set_seed(0) @@ -252,19 +252,19 @@ print(tokenizer.decode(sample_output[0], skip_special_tokens=True)) -有意思!生成的文本看起来不错 - 但仔细观察会发现它不是很连贯。*3-grams* *new hand sense* 和 *local batte harness* 非常奇怪,看起来不像是人写的。这就是对单词序列进行采样时的大问题:模型通常会产生不连贯的乱码,*参见* [Ari Holtzman 等人(2019)](https://arxiv.org/abs/1904.09751)的论文。 +有意思!生成的文本看起来不错 - 但仔细观察会发现它不是很连贯。*3-grams* *new hand sense* 和 *local batte harness* 非常奇怪,看起来不像是人写的。这就是对单词序列进行采样时的大问题: 模型通常会产生不连贯的乱码,*参见* [Ari Holtzman 等人 (2019)](https://arxiv.org/abs/1904.09751) 的论文。 -缓解这一问题的一个技巧是通过降低所谓的[softmax](https://en.wikipedia.org/wiki/Softmax_function#Smooth_arg_max) 的“温度”使分布 $P(w|w_{1:t-1}$ 更陡峭。而降低“温度”,本质上是增加高概率单词的似然并降低低概率单词的似然。 +缓解这一问题的一个技巧是通过降低所谓的 [softmax](https://en.wikipedia.org/wiki/Softmax_function#Smooth_arg_max) 的“温度”使分布 $P(w|w_{1:t-1})$ 更陡峭。而降低“温度”,本质上是增加高概率单词的似然并降低低概率单词的似然。 将温度应用到于我们的例子中后,结果如下图所示。 sampling temp search -$t=1$ 时刻单词的条件分布变得更加陡峭,几乎没有机会选择单词 $\text{"car"}$ 了。 +$t=1$ 时刻单词的条件分布变得更加陡峭,几乎没有机会选择单词 $\text{“car”}$ 了。 -让我们看看如何通过设置 `temperature=0.7` 来冷却生成过程: +让我们看看如何通过设置 `temperature=0.7` 来冷却生成过程: -``` python +```python # set seed to reproduce results. Feel free to change the seed though to get different results tf.random.set_seed(0) @@ -293,17 +293,17 @@ print(tokenizer.decode(sample_output[0], skip_special_tokens=True)) ### Top-K 采样 -[Fan 等人(2018)](https://arxiv.org/pdf/1805.04833.pdf)的论文介绍了一种简单但非常强大的采样方案,称为 ***Top-K*** 采样。在 *Top-K* 采样中,概率最大的 *K* 个词会被选出,然后这 *K* 个词的概率会被重新归一化,最后就在这重新被归一化概率后的 *K* 个词中采样。 GPT2 采用了这种采样方案,这也是它在故事生成这样的任务上取得成功的原因之一。 +[Fan 等人 (2018)](https://arxiv.org/pdf/1805.04833.pdf) 的论文介绍了一种简单但非常强大的采样方案,称为 ***Top-K*** 采样。在 *Top-K* 采样中,概率最大的 *K* 个词会被选出,然后这 *K* 个词的概率会被重新归一化,最后就在这重新被归一化概率后的 *K* 个词中采样。 GPT2 采用了这种采样方案,这也是它在故事生成这样的任务上取得成功的原因之一。 我们将上文例子中的候选单词数从 3 个单词扩展到 10 个单词,以更好地说明 *Top-K* 采样。 Top K sampling -设 $K = 6$,即我们将在两个采样步的采样池大小限制为 6 个单词。我们定义 6 个最有可能的词的集合为 $V_{\text{top-K}}$。在第一步中,$V_{\text{top-K}}$ 仅占总概率的大约三分之二,但在第二步,它几乎占了全部的概率。同时,我们可以看到在第二步该方法成功地消除了那些奇怪的候选词 $(\text{``not"}, \text{``the"}, \text{``small"}, \text{``told" })$。 +设 $K = 6$,即我们将在两个采样步的采样池大小限制为 6 个单词。我们定义 6 个最有可能的词的集合为 $V_{\text{top-K}}$。在第一步中,$V_{\text{top-K}}$ 仅占总概率的大约三分之二,但在第二步,它几乎占了全部的概率。同时,我们可以看到在第二步该方法成功地消除了那些奇怪的候选词 $(\text{“not”}, \text{“the”}, \text{“small”}, \text{“told”})$。 -我们以设置 `top_k=50` 为例看下如何在 `transformers` 库中使用 *Top-K*: +我们以设置 `top_k=50` 为例看下如何在 `transformers` 库中使用 *Top-K*: -``` python +```python # set seed to reproduce results. Feel free to change the seed though to get different results tf.random.set_seed(0) @@ -331,21 +331,21 @@ print(tokenizer.decode(sample_output[0], skip_special_tokens=True)) -相当不错!该文本可以说是迄今为止生成的最“*像人*”的文本。现在还有一个问题,*Top-K* 采样不会动态调整从需要概率分布 $P(w|w_{1:t-1})$ 中选出的单词数。这可能会有问题,因为某些分布可能是非常尖锐(上图中右侧的分布),而另一些可能更平坦(上图中左侧的分布),所以对不同的分布使用同一个绝对数 *K* 可能并不普适。 +相当不错!该文本可以说是迄今为止生成的最 "*像人*" 的文本。现在还有一个问题,*Top-K* 采样不会动态调整从需要概率分布 $P(w|w_{1:t-1})$ 中选出的单词数。这可能会有问题,因为某些分布可能是非常尖锐 (上图中右侧的分布),而另一些可能更平坦 (上图中左侧的分布),所以对不同的分布使用同一个绝对数 *K* 可能并不普适。 -在 $t=1$ 时,*Top-K* 将 $(\text{"people"}, \text{"big"}, \text{"house"}, \text{"cat"})$ 排出了采样池,而这些词似乎是合理的候选词。另一方面,在$t=2$ 时,该方法却又把不太合适的 $(\text{"down"}, \text{"a"})$ 纳入了采样池。因此,将采样池限制为固定大小 *K* 可能会在分布比较尖锐的时候产生胡言乱语,而在分布比较平坦的时候限制模型的创造力。这一发现促使 [Ari Holtzman 等人(2019)](https://arxiv.org/abs/1904.09751) 发明了 ***Top-p***- 或 ***核***- 采样。 +在 $t=1$ 时,*Top-K* 将 $(\text{“people”}, \text{“big”}, \text{“house”}, \text{“cat”})$ 排出了采样池,而这些词似乎是合理的候选词。另一方面,在$t=2$ 时,该方法却又把不太合适的 $(\text{“down”}, \text{“a”})$ 纳入了采样池。因此,将采样池限制为固定大小 *K* 可能会在分布比较尖锐的时候产生胡言乱语,而在分布比较平坦的时候限制模型的创造力。这一发现促使 [Ari Holtzman 等人 (2019)](https://arxiv.org/abs/1904.09751) 发明了 **Top-p**- 或 **核**- 采样。 -### Top-p(核)采样 +### Top-p (核) 采样 -在 *Top-p* 中,采样不只是在最有可能的 *K* 个单词中进行,而是在累积概率超过概率 *p* 的最小单词集中进行。然后在这组词中重新分配概率质量。这样,词集的大小(*又名*集合中的词数)可以根据下一个词的概率分布动态增加和减少。好吧,说的很啰嗦,一图胜千言。 +在 *Top-p* 中,采样不只是在最有可能的 *K* 个单词中进行,而是在累积概率超过概率 *p* 的最小单词集中进行。然后在这组词中重新分配概率质量。这样,词集的大小 (*又名* 集合中的词数) 可以根据下一个词的概率分布动态增加和减少。好吧,说的很啰嗦,一图胜千言。 Top p sampling -假设 $p=0.92$ ,*Top-p* 采样对单词概率进行降序排列并累加,然后选择概率和首次超过 $p=92\%$ 的单词集作为采样池,定义为 $V_{\text{top-p}}$。在 $t=1$ 时 $V_{\text{top-p}}$ 有 9 个词,而在 $t=2$ 时它只需要选择前 3 个词就超过了 92%。其实很简单吧!可以看出,在单词比较不可预测时,它保留了更多的候选词,*如* $P(w | \text{"The''})$,而当单词似乎更容易预测时,只保留了几个候选词,*如* $(P(w | \text{"The"}, \text{"car"})$。 +假设 $p=0.92$,*Top-p* 采样对单词概率进行降序排列并累加,然后选择概率和首次超过 $p=92%$ 的单词集作为采样池,定义为 $V_{\text{top-p}}$。在 $t=1$ 时 $V_{\text{top-p}}$ 有 9 个词,而在 $t=2$ 时它只需要选择前 3 个词就超过了 92%。其实很简单吧!可以看出,在单词比较不可预测时,它保留了更多的候选词,*如* $P(w | \text{“The”})$,而当单词似乎更容易预测时,只保留了几个候选词,*如* $P(w | \text{“The”}, \text{“car”})$。 -好的,是时候看看它在 `transformers` 里怎么用了!我们可以通过设置 `0 < top_p < 1` 来激活 *Top-p* 采样: +好的,是时候看看它在 `transformers` 里怎么用了!我们可以通过设置 `0 < top_p < 1` 来激活 *Top-p* 采样: -``` python +```python # set seed to reproduce results. Feel free to change the seed though to get different results tf.random.set_seed(0) @@ -362,7 +362,7 @@ print("Output:\n" + 100 * '-') print(tokenizer.decode(sample_output[0], skip_special_tokens=True)) ``` -``` +``` Output: ---------------------------------------------------------------------------------------------------- I enjoy walking with my cute dog. He will never be the same. I watch him play. @@ -376,11 +376,11 @@ What was that? I had a lot o 太好了,这看起来跟人类写的差不多了,虽然还不算完全是。 -虽然从理论上讲,*Top-p* 似乎比 *Top-K* 更优雅,但这两种方法在实践中都很有效。 *Top-p* 也可以与 *Top-K* 结合使用,这样可以避免排名非常低的词,同时允许进行一些动态选择。 +虽然从理论上讲, *Top-p* 似乎比 *Top-K* 更优雅,但这两种方法在实践中都很有效。 *Top-p* 也可以与 *Top-K* 结合使用,这样可以避免排名非常低的词,同时允许进行一些动态选择。 -最后,如果想要获得多个独立采样的输出,我们可以*再次*设置参数 `num_return_sequences > 1`: +最后,如果想要获得多个独立采样的输出,我们可以 *再次* 设置参数 `num_return_sequences > 1`: -``` python +```python # set seed to reproduce results. Feel free to change the seed though to get different results tf.random.set_seed(0) @@ -399,8 +399,7 @@ for i, sample_output in enumerate(sample_outputs): print("{}: {}".format(i, tokenizer.decode(sample_output, skip_special_tokens=True))) ``` - -``` +``` Output: ---------------------------------------------------------------------------------------------------- 0: I enjoy walking with my cute dog. It's so good to have the chance to walk with a dog. But I have this problem with the dog and how he's always looking at us and always trying to make me see that I can do something @@ -416,13 +415,13 @@ Output: ### 总结 -在开放域语言生成场景中,作为最新的解码方法,*top-p* 和 *top-K* 采样于传统的 *贪心* 和 *波束* 搜索相比,似乎能产生更流畅的文本。但,最近有更多的证据表明 *贪心* 和 *波束* 搜索的明显缺陷 - 主要是生成重复的单词序列 - 是由模型(特别是模型的训练方式)引起的,而不是解码方法,*参见* [Welleck 等人 (2019)](https://arxiv.org/pdf/1908.04319.pdf)的论文。此外,如 [Welleck 等人(2020)](https://arxiv.org/abs/2002.02492)的论文所述,看起来 *top-K* 和 *top-p* 采样也会产生重复的单词序列。 +在开放域语言生成场景中,作为最新的解码方法, *top-p* 和 *top-K* 采样于传统的 *贪心* 和 *波束* 搜索相比,似乎能产生更流畅的文本。但,最近有更多的证据表明 *贪心* 和 *波束* 搜索的明显缺陷 - 主要是生成重复的单词序列 - 是由模型 (特别是模型的训练方式) 引起的,而不是解码方法, *参见* [Welleck 等人 (2019)](https://arxiv.org/pdf/1908.04319.pdf) 的论文。此外,如 [Welleck 等人 (2020)](https://arxiv.org/abs/2002.02492) 的论文所述,看起来 *top-K* 和 *top-p* 采样也会产生重复的单词序列。 -在 [Welleck 等人(2019)](https://arxiv.org/pdf/1908.04319.pdf)的论文中,作者表明,根据人类评估,在调整训练目标后,波束搜索相比 *Top-p* 采样能产生更流畅的文本。 +在 [Welleck 等人 (2019)](https://arxiv.org/pdf/1908.04319.pdf) 的论文中,作者表明,根据人类评估,在调整训练目标后,波束搜索相比 *Top-p* 采样能产生更流畅的文本。 开放域语言生成是一个快速发展的研究领域,而且通常情况下这里没有放之四海而皆准的方法,因此必须了解哪种方法最适合自己的特定场景。 -好的方面是,*你*可以在 `transfomers` 中尝试所有不同的解码方法 🤗。 +好的方面是, *你* 可以在 `transfomers` 中尝试所有不同的解码方法 🤗。 以上是对如何在 `transformers` 中使用不同的解码方法以及开放域语言生成的最新趋势的简要介绍。 @@ -430,22 +429,18 @@ Output: 如果想要体验下用模型生成故事的乐趣,可以访问我们的 web 应用 [Writing with Transformers](https://transformer.huggingface.co/)。 -感谢为本文做出贡献的所有人:Alexander Rush、Julien Chaumand、Thomas Wolf、Victor Sanh、Sam Shleifer、Clément Delangue、Yacine Jernite、Oliver Åstrand 和 John de Wasseige。 +感谢为本文做出贡献的所有人: Alexander Rush、Julien Chaumand、Thomas Wolf、Victor Sanh、Sam Shleifer、Clément Delangue、Yacine Jernite、Oliver Åstrand 和 John de Wasseige。 ### 附录 `generate` 方法还有几个正文未提及的参数,这里我们简要解释一下它们! - - `min_length` 用于强制模型在达到 `min_length` 之前不生成 EOS。这在摘要场景中使用得比较多,但如果用户想要更长的文本输出,也会很有用。 - - - `repetition_penalty` 可用于对生成重复的单词这一行为进行惩罚。它首先由 [Keskar 等人(2019)](https://arxiv.org/abs/1909.05858)引入,在 [Welleck 等人(2019)](https://arxiv.org/pdf/1908.04319.pdf) 的工作中,它是训练目标的一部分。它可以非常有效地防止重复,但似乎对模型和用户场景非常敏感,其中一个例子见 Github 上的[讨论](https://github.com/huggingface/transformers/pull/2303)。 +- `min_length` 用于强制模型在达到 `min_length` 之前不生成 EOS。这在摘要场景中使用得比较多,但如果用户想要更长的文本输出,也会很有用。 - - `attention_mask` 可用于屏蔽填充符。 +- `repetition_penalty` 可用于对生成重复的单词这一行为进行惩罚。它首先由 [Keskar 等人 (2019)](https://arxiv.org/abs/1909.05858) 引入,在 [Welleck 等人 (2019)](https://arxiv.org/pdf/1908.04319.pdf) 的工作中,它是训练目标的一部分。它可以非常有效地防止重复,但似乎对模型和用户场景非常敏感,其中一个例子见 Github 上的 [讨论](https://github.com/huggingface/transformers/pull/2303)。 - - `pad_token_id`、`bos_token_id`、`eos_token_id`:如果模型默认没有这些token,用户可以手动选择其他token id来表示它们。 +- `attention_mask` 可用于屏蔽填充符。 -更多信息,请查阅 `generate` 函数 [手册](https://huggingface.co/transformers/main_classes/model.html?highlight=generate#transformers.TFPreTrainedModel.generate)。 +- `pad_token_id`、`bos_token_id`、`eos_token_id`: 如果模型默认没有这些 token,用户可以手动选择其他 token id 来表示它们。 -> 英文原文: https://huggingface.co/blog/how-to-generate -> 原文作者:Patrick von Platen -> 译者: Matrix Yao (姚伟峰),英特尔深度学习工程师,工作方向为 transformer-family 模型在各模态数据上的应用及大规模模型的训练推理。 +更多信息,请查阅 `generate` 函数 [手册](https://huggingface.co/transformers/main_classes/model.html?highlight=generate#transformers.TFPreTrainedModel.generate)。 \ No newline at end of file From 9890cdb8c71fbb51b1e8423a0151b2a3cd236a4c Mon Sep 17 00:00:00 2001 From: "Yao, Matrix" Date: Sun, 23 Apr 2023 14:04:03 -0400 Subject: [PATCH 07/55] hf-bitsandbytes-integration cn done Signed-off-by: Yao, Matrix --- zh/_blog.yml | 11 + zh/hf-bitsandbytes-integration.md | 437 ++++++++++++++++++++++++++++++ 2 files changed, 448 insertions(+) create mode 100644 zh/hf-bitsandbytes-integration.md diff --git a/zh/_blog.yml b/zh/_blog.yml index e91a1587ab..d62c3e79b9 100644 --- a/zh/_blog.yml +++ b/zh/_blog.yml @@ -400,3 +400,14 @@ tags: - guide - nlp + + +- local: hf-bitsandbytes-integration + title: "大规模 Transformer 模型 8 比特矩阵乘简介 - 基于 Hugging Face Transformers、Accelerate 以及 bitsandbytes" + author: ybelkada + thumbnail: /blog/assets/96_hf_bitsandbytes_integration/Thumbnail_blue.png + date: August 17, 2022 + tags: + - nlp + - llm + - quantization diff --git a/zh/hf-bitsandbytes-integration.md b/zh/hf-bitsandbytes-integration.md new file mode 100644 index 0000000000..cc30759d74 --- /dev/null +++ b/zh/hf-bitsandbytes-integration.md @@ -0,0 +1,437 @@ +--- +title: "大规模 Transformer 模型 8 比特矩阵乘简介 - 基于 Hugging Face Transformers、Accelerate 以及 bitsandbytes" +thumbnail: /blog/assets/96_hf_bitsandbytes_integration/Thumbnail_blue.png +authors: +- user: ybelkada +- user: timdettmers + guest: true +translators: +- user: MatrixYao +--- + +# 大规模 Transformer 模型 8 比特矩阵乘简介 - 基于 Hugging Face Transformers、Accelerate 以及 bitsandbytes + + + + +![thumbnail](/blog/assets/96_hf_bitsandbytes_integration/Thumbnail_blue.png) + +## 引言 + +语言模型一直在变大。截至撰写本文时,PaLM 有 5400 亿参数,OPT、GPT-3 和 BLOOM 有大约 1760 亿参数,而且我们仍在继续朝着更大的模型发展。下图总结了最近的一些语言模型的尺寸。 + +![LLM](/blog/assets/96_hf_bitsandbytes_integration/LLM3.png) + +由于这些模型很大,因此它们很难在一般的设备上运行。举个例子,仅推理 BLOOM-176B 模型,你就需要 8 个 80GB A100 GPU(每个约 15,000 美元)。而如果要微调 BLOOM-176B 的话,你需要 72 个这样的 GPU!更大的模型,如 PaLM,还需要更多资源。 + +由于这些庞大的模型需要大量 GPU 才能运行,因此我们需要找到降低资源需求而同时保持模型性能的方法。目前已有一些试图缩小模型尺寸的技术,比如你可能听说过的量化和蒸馏等技术。 + +完成 BLOOM-176B 的训练后,Hugging Face 和 BigScience 一直在寻找能让这个大模型更容易在更少的 GPU 上运行的方法。通过我们的 BigScience 社区,我们了解到一些有关 Int8 推理的研究,它不会降低大模型的预测性能,而且可以将大模型的内存占用量减少 2 倍。很快我们就开始合作进行这项研究,最终将其完全整合到 Hugging Face `transformers` 中。本文我们将详述我们集成在Hugging Face 中的 LLM.int8() 方案,它适用于所有 Hugging Face 模型。如果你想了解更多研究细节,可以阅读我们的论文 [LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale](https://arxiv.org/abs/2208.07339)。 + +本文将主要介绍 LLM.int8() 量化技术,讨论将其纳入 `transformers` 库的过程中经历的困难,并对后续工作进行了计划。 + +在这里,你将了解到究竟是什么让一个大模型占用这么多内存?是什么让 BLOOM 占用了 350GB 内存?我们先从一些基础知识开始,慢慢展开。 + +## 机器学习中常用的数据类型 + +我们从理解不同浮点数据类型开始,这些数据类型在机器学习中也被称为“精度”。 + +模型的大小由其参数量及其精度决定,精度通常为 float32、float16 或 bfloat16 之一([下图来源](https://blogs.nvidia.com/blog/2020/05/14/tensorfloat-32-precision-format/))。 + +![Summary](/blog/assets/96_hf_bitsandbytes_integration/tf32-Mantissa-chart-hi-res-FINAL.png) + +Float32 (FP32) 是标准的 IEEE 32 位浮点表示。使用该数据类型,可以表示大范围的浮点数。在 FP32 中,为“指数”保留了 8 位,为“尾数”保留了 23 位,为符号保留了 1 位。因为是标准数据类型,所以大部分硬件都支持 FP32 运算指令。 + +而在 Float16 (FP16) 数据类型中,指数保留 5 位,尾数保留 10 位。这使得 FP16 数字的数值范围远低于 FP32。因此 FP16 存在上溢(当用于表示非常大的数时)和下溢(当用于表示非常小的数时)的风险。 + +例如,当你执行 `10k * 10k` 时,最终结果应为 `100M`,FP16 无法表示该数,因为 FP16 能表示的最大数是 `64k`。因此你最终会得到 `NaN`(Not a Number,不是数字),在神经网络的计算中,因为计算是按层和 batch 顺序进行的,因此一旦出现 `NaN`,之前的所有计算就全毁了。一般情况下,我们可以通过缩放损失(loss scaling)来缓解这个问题,但该方法并非总能奏效。 + +于是我们发明了一种新格式 Bfloat16 (BF16) 来规避这些限制。BF16 为指数保留了 8 位(与 FP32 相同),为小数保留了 7 位。这意味着使用 BF16 我们可以保留与 FP32 相同的动态范围。但是相对于 FP16,我们损失了 3 位精度。因此,在使用 BF16 精度时,大数值绝对没有问题,但是精度会比 FP16 差。 + +在 Ampere 架构中,NVIDIA 还引入了 [TensorFloat-32](https://blogs.nvidia.com/blog/2020/05/14/tensorfloat-32-precision-format/)(TF32) 精度格式,它使用 19 位表示,结合了 BF16 的范围和 FP16 的精度。目前,它仅在某些操作的内部使用[译者注:即 TF32 是一个计算数据类型而不是存储数据类型]。 + +在机器学习术语中,FP32 称为全精度(4 字节),而 BF16 和 FP16 称为半精度(2 字节)。除此以外,还有 Int8 (INT8) 数据类型,它是一个 8 位的整型数据表示,可以存储 $2^8$ 个不同的值(对于有符号整数,区间为 [-128, 127],而对于无符号整数,区间为[0, 255])。 + +虽然理想情况下训练和推理都应该在 FP32 中完成,但 FP32 比 FP16/BF16 慢两倍,因此实践中常常使用混合精度方法,其中,使用 FP32 权重作为精确的 “主权重(master weight)”,而使用 FP16/BF16 权重进行前向和后向传播计算以提高训练速度,最后在梯度更新阶段再使用 FP16/BF16 梯度更新 FP32 主权重。 + +在训练期间,主权重始终为 FP32。而在实践中,在推理时,半精度权重通常能提供与 FP32 相似的精度 —— 因为只有在模型梯度更新时才需要精确的 FP32 权重。这意味着在推理时我们可以使用半精度权重,这样我们仅需一半 GPU 显存就能获得相同的结果。 + +![Model-storage](/blog/assets/96_hf_bitsandbytes_integration/Model-storage.png) + +以字节为单位计算模型大小时,需要将参数量乘以所选精度的大小(以字节为单位)。例如,如果我们使用 BLOOM-176B 模型的 Bfloat16 版本,其大小就应为 $176 \times 10^{9} \times 2 字节 = 352GB$!如前所述,这个大小需要多个 GPU 才能装得下,这是一个相当大的挑战。 + +但是,如果我们可以使用另外的数据类型来用更少的内存存储这些权重呢?深度学习社区已广泛使用的方法是量化。 + +## 模型量化简介 + +通过实验,我们发现不使用 4 字节 FP32 精度转而使用 2 字节 BF16/FP16 半精度可以获得几乎相同的推理结果,同时模型大小会减半。这促使我们想进一步削减内存,但随着我们使用更低的精度,推理结果的质量也开始急剧下降。 + +为了解决这个问题,我们引入了 8 位量化。仅用四分之一精度,因此模型大小也仅需 1/4!但这次,我们不能简单地丢弃另一半位宽了。 + +基本上讲,量化过程是从一种数据类型“舍入”到另一种数据类型。举个例子,如果一种数据类型的范围为 `0..9`,而另一种数据类型的范围为 `0..4`,则第一种数据类型中的值 `4` 将舍入为第二种数据类型中的 `2` 。但是,如果在第一种数据类型中有值 `3`,它介于第二种数据类型的 `1` 和 `2` 之间,那么我们通常会四舍五入为 `2`。也就是说,第一种数据类型的值 `4` 和 `3` 在第二种数据类型中具有相同的值 `2`。这充分表明量化是一个有噪过程,会导致信息丢失,是一种有损压缩。 + +两种最常见的 8 位量化技术是零点量化(zero-point quantization)和最大绝对值 (absolute maximum quantization,absmax) 量化。它们都将浮点值映射为更紧凑的 Int8(1 字节)值。这些方法的第一步都是用量化常数对输入进行归一化缩放。 + +在零点量化中,如果我的数值范围是 `-1.0…1.0`,我想量化到 `-127…127`,我需要先缩放 `127`倍,然后四舍五入到 `8` 位精度。要恢复原始值,我需要将 Int8 值除以相同的量化因子 `127`。在这个例子中,值 `0.3` 将缩放为 `0.3*127 = 38.1`。四舍五入后得到值 `38`。恢复时,我们会得到 `38/127=0.2992` —— 因此最终会有 `0.008` 的量化误差。这些看似微小的误差在沿着模型各层传播时往往会累积和增长,从而导致最终的精度下降。[译者注:这个例子举得不好,因为浮点范围和整型范围都是对称的,所以不存在零点调整了,而零点调整是零点量化中最能体现其命名原因的部分。简而言之,零点量化分为两步,第一步值域映射,即通过缩放将原始的数值范围映射为量化后的数值范围;第二步零点调整,即通过平移将映射后的数据的最小值对齐为目标值域的最小值] + +![quantization](/blog/assets/96_hf_bitsandbytes_integration/quantization.png) + +([图源](https://intellabs.github.io/distiller/algo_quantization.html) ) + +现在我们再看下 absmax 量化的细节。要计算 absmax 量化中 fp16 数与其对应的 int8 数之间的映射,你必须先除以张量的最大绝对值,然后再乘以数据类型的最大可表示值。 + +例如,假设你要用 absmax 对向量 `[1.2, -0.5, -4.3, 1.2, -3.1, 0.8, 2.4, 5.4]` 进行量化。首先需要计算该向量元素的最大绝对值,在本例中为 `5.4`。 Int8 的范围为 `[-127, 127]`,因此我们将 `127` 除以 `5.4`,得到缩放因子 `23.5`。最后,将原始向量乘以缩放因子得到最终的量化向量 `[28, -12, -101, 28, -73, 19, 56, 127]`。 + +![out-quant.gif](/blog/assets/96_hf_bitsandbytes_integration/out-quant.gif) + +要恢复原向量,可以将 int8 量化值除以缩放因子,但由于上面的过程是“四舍五入”的,我们将丢失一些精度。 + +![quant-freeze](/blog/assets/96_hf_bitsandbytes_integration/quant-freeze.png) + +对于无符号 Int8,我们可以先减去最小值然后再用最大绝对值来缩放,这与零点量化的做法相似。其做法也与最小-最大缩放(min-max scaling)类似,但后者在缩放时会额外保证输入中的 `0` 始终映射到一个整数,从而保证 `0` 的量化是无误差的。 + +当进行矩阵乘法时,我们可以通过组合各种技巧,例如逐行或逐向量量化,来获取更精确的结果。举个例子,对矩阵乘法 $A \times B=C$,我们不会直接使用常规量化方式,即用整个张量的最大绝对值对张量进行归一化,而会转而使用向量量化方法,找到 A 的每一行和 B 的每一列的最大绝对值,然后逐行或逐列归一化 A 和 B 。最后将 A 与 B 相乘得到 C。最后,我们再计算与 A 和 B 的最大绝对值向量的外积,并将此与 C 求哈达玛积来反量化回 FP16。有关此技术的更多详细信息可以参考 [LLM.int8() 论文](https://arxiv.org/abs/2208.07339) 或 Tim 的博客上的[关于量化和涌现特征的博文](https://timdettmers.com/2022/08/17/llm-int8-and-emergent-features/)。 + +虽然这些基本技术能够帮助我们量化深度学习模型,但它们通常会导致大模型准确性的下降。我们集成到 Hugging Face Transformers 和 Accelerate 库中的 LLM.int8() 是第一个适用于大模型(如 BLOOM-176B)且不会降低准确性的量化技术。 + +## 简要总结 LLM.int8():大语言模型的零退化矩阵乘法 + +在 LLM.int8() 中,我们已经证明理解 transformer 模型表现出的与模型规模相关的涌现特性对于理解为什么传统量化对大模型失效至关重要。我们证明性能下降是由离群特征(outlier feature)引起的,下一节我们会详细解释。LLM.int8() 算法本身如下。 + +本质上,LLM.int8() 通过三个步骤完成矩阵乘法计算: +1. 从输入的隐含状态中,按列提取异常值(即大于某个阈值的值)。 +2. 对 FP16 离群值矩阵和 Int8 非离群值矩阵分别作矩阵乘法。 +3. 反量化非离群值的矩阵乘结果并其与离群值矩阵乘结果相加,获得最终的 FP16 结果。 + +该过程可以总结为如下动画: + +![Mixed-int8.gif](/blog/assets/96_hf_bitsandbytes_integration/Mixed-int8.gif) + +### 离群特征的重要性 + +超出某个分布范围的值通常称为离群值。离群值检测已得到广泛应用,在很多文献中也有涉及,且获取特征的先验分布对离群值检测任务很有助益。更具体地说,我们观察到对于参数量大于 6B 的 transformer 模型,经典的量化方法会失效。虽然离群值特征也存在于较小的模型中,但在大于 6B 的 transformer 模型中,我们观察到几乎每层都会出现超出特定阈值的离群点,而且这些离群点呈现出一定的系统性模式。有关该现象的更多详细信息,请参阅 [LLM.int8() 论文](https://arxiv.org/abs/2208.07339) 和 [涌现特征的博文](https://timdettmers.com/2022/08/17/llm-int8-and-emergent-features/)。 + +如前所述,8 位精度的动态范围极其有限,因此量化具有多个大值的向量会产生严重误差。此外,由于 transformer 架构的固有特性,它会将所有元素互相关联起来,这样的话,这些误差在传播几层后往往会混杂在一起。因此,我们发明了混合精度分解的方法,以对此类极端离群值进行有效量化。接下来我们对此方法进行讨论。 + +### MatMul 内部 + +计算隐含状态后,我们使用自定义阈值提取离群值,并将矩阵分解为两部分,如上所述。我们发现,以这种方式提取所有幅度大于等于 6 的离群值可以完全恢复推理精度。离群值部分使用 FP16 表示,因此它是一个经典的矩阵乘法,而 8 位矩阵乘法是通过使用向量量化将权重和隐含状态分别量化为 8 位精度 - 即按行量化权重矩阵,并按列量化隐含状态,然后再进行相应向量乘加操作。最后,将结果反量化至半精度,以便与第一个矩阵乘法的结果相加。 + +![Matmul.png](/blog/assets/96_hf_bitsandbytes_integration/Matmul.png) + +### 0 退化是什么意思? + +我们如何正确评估该方法是否会对性能造成下降?使用 8 位模型时,我们的生成质量损失了多少? + +我们使用 `lm-eval-harness` 在 8 位和原始模型上运行了几个常见的基准测试,结果如下。 + +对 OPT-175B 模型: + +| 测试基准 | - | - | - | - | 差值 | +| ---------- | --------- | ---------------- | -------------------- | -------------------- | -------------------- | +| 测试基准名 | 指标 | 指标值 - int8 | 指标值 - fp16 | 标准差 - fp16 | - | +| hellaswag | acc\_norm | 0.7849 | 0.7849 | 0.0041 | 0 | +| hellaswag | acc | 0.5921 | 0.5931 | 0.0049 | 0.001 | +| piqa | acc | 0.7965 | 0.7959 | 0.0094 | 0.0006 | +| piqa | acc\_norm | 0.8101 | 0.8107 | 0.0091 | 0.0006 | +| lambada | ppl | 3.0142 | 3.0152 | 0.0552 | 0.001 | +| lambada | acc | 0.7464 | 0.7466 | 0.0061 | 0.0002 | +| winogrande | acc | 0.7174 | 0.7245 | 0.0125 | 0.0071 | + +对 BLOOM-176 模型: + +| 测试基准 | - | - | - | - | 差值 | +| ---------- | --------- | ---------------- | -------------------- | -------------------- | -------------------- | +| 测试基准名 | 指标 | 指标值 - int8 | 指标值 - fp16 | 标准差 - fp16 | - | +| hellaswag | acc\_norm | 0.7274 | 0.7303 | 0.0044 | 0.0029 | +| hellaswag | acc | 0.5563 | 0.5584 | 0.005 | 0.0021 | +| piqa | acc | 0.7835 | 0.7884 | 0.0095 | 0.0049 | +| piqa | acc\_norm | 0.7922 | 0.7911 | 0.0095 | 0.0011 | +| lambada | ppl | 3.9191 | 3.931 | 0.0846 | 0.0119 | +| lambada | acc | 0.6808 | 0.6718 | 0.0065 | 0.009 | +| winogrande | acc | 0.7048 | 0.7048 | 0.0128 | 0 | + +我们切实地看到上述这些模型的性能下降为 0,因为指标的绝对差异均低于原始模型的标准误差(BLOOM-int8 除外,它在 lambada 上略好于原始模型)。如果想要知道 LLM.int8() 与当前其他先进方法的更详细的性能比较,请查看[论文](https://arxiv.org/abs/2208.07339)! + +### 比原始模型更快吗? +LLM.int8() 方法的主要目的是在不降低性能的情况下降低大模型的应用门槛。但如果速度非常慢,该方法用处也不会很大。所以我们对多个模型的生成速度进行了基准测试。 + +我们发现使用了 LLM.int8() 的 BLOOM-176B 比 FP16 版本慢了大约 15% 到 23% —— 这应该是完全可以接受的。我们发现较小模型(如 T5-3B 和 T5-11B)的降速幅度更大。我们还在努力优化这些小模型的推理速度。在一天之内,我们可以将 T5-3B 的每词元推理延迟从 312 毫秒降低到 173 毫秒,将 T5-11B 从 45 毫秒降低到 25 毫秒。此外,我们[已经找到原因](https://github.com/TimDettmers/bitsandbytes/issues/6#issuecomment-1211345635),在即将发布的版本中,LLM.int8() 在小模型上的推理速度可能会更快。下表列出了当前版本的一些性能数据。 + + +| 精度 | 参数量 | 硬件 | 每词元延迟(单位:毫秒,batch size: 1)| 每词元延迟(单位:毫秒,batch size: 8) | 每词元延迟(单位:毫秒,batch size: 32) | +| -------------- | -------------------- | ------------ | ----------------------------------------------- | ----------------------------------------------- | ------------------------------------------------ | +| bf16 | 176B | 8xA100 80GB | 239 | 32 | 9.9 | +| int8 | 176B | 4xA100 80GB | 282 | 37.5 | 10.2 | +| bf16 | 176B | 14xA100 40GB | 285 | 36.5 | 10.4 | +| int8 | 176B | 5xA100 40GB | 367 | 46.4 | oom | +| fp16 | 11B | 2xT4 15GB | 11.7 | 1.7 | 0.5 | +| int8 | 11B | 1xT4 15GB | 43.5 | 5.3 | 1.3 | +| fp32 | 3B | 2xT4 15GB | 45 | 7.2 | 3.1 | +| int8 | 3B | 1xT4 15GB | 312 | 39.1 | 10.2 | + +上表中的3个模型分别为 BLOOM-176B、T5-11B 和 T5-3B。 + +## Hugging Face `transformers` 集成细节 + +接下来让我们讨论在 Hugging Face `transformers` 集成该方法的细节,向你展示常见的用法及在使用过程中可能遇到的常见问题。 + +### 用法 + +所有的操作都集成在 `Linear8bitLt` 模块中,你可以轻松地从 `bitsandbytes` 库中导入它。它是 `torch.nn.modules` 的子类,你可以仿照下述代码轻松地将其应用到自己的模型中。 + +下面以使用 `bitsandbytes` 将一个小模型转换为 int8 为例,并给出相应的步骤。 + +1. 首先导入模块,如下。 + +```py +import torch +import torch.nn as nn + +import bitsandbytes as bnb +from bnb.nn import Linear8bitLt +``` + +2. 然后就可以定义自己的模型了。请注意,我们支持将任何精度的 checkpoint 或模型转换为 8 位(FP16、BF16 或 FP32),但目前,仅当模型的输入张量数据类型为 FP16 时,我们的 Int8 模块才能工作。因此,这里我们称模型为 fp16 模型。 + +```py +fp16_model = nn.Sequential( + nn.Linear(64, 64), + nn.Linear(64, 64) +) +``` + +3. 假设你已经在你的数据集和任务上训完了你的模型!现在需要保存模型: + +```py +[... train the model ...] +torch.save(fp16_model.state_dict(), "model.pt") +``` + +4. 至此,`state_dict` 已保存,我们需要定义一个 int8 模型: + +```py +int8_model = nn.Sequential( + Linear8bitLt(64, 64, has_fp16_weights=False), + Linear8bitLt(64, 64, has_fp16_weights=False) +) +``` +此处标志变量 `has_fp16_weights` 非常重要。默认情况下,它设置为 `True`,用于在训练时使能 Int8/FP16 混合精度。但是,因为在推理中我们对内存节省更感兴趣,因此我们需要设置 `has_fp16_weights=False`。 + +5. 现在加载 8 位模型! + +```py +int8_model.load_state_dict(torch.load("model.pt")) +int8_model = int8_model.to(0) # 量化发生在此处 +``` + +请注意,一旦将模型的设备设置为 GPU,量化过程就会在第二行代码中完成。如果在调用 `.to` 函数之前打印 `int8_model[0].weight`,你会看到: + +``` +int8_model[0].weight +Parameter containing: +tensor([[ 0.0031, -0.0438, 0.0494, ..., -0.0046, -0.0410, 0.0436], + [-0.1013, 0.0394, 0.0787, ..., 0.0986, 0.0595, 0.0162], + [-0.0859, -0.1227, -0.1209, ..., 0.1158, 0.0186, -0.0530], + ..., + [ 0.0804, 0.0725, 0.0638, ..., -0.0487, -0.0524, -0.1076], + [-0.0200, -0.0406, 0.0663, ..., 0.0123, 0.0551, -0.0121], + [-0.0041, 0.0865, -0.0013, ..., -0.0427, -0.0764, 0.1189]], + dtype=torch.float16) +``` + +而如果你在第二行之后打印它,你会看到: + +``` +int8_model[0].weight +Parameter containing: +tensor([[ 3, -47, 54, ..., -5, -44, 47], + [-104, 40, 81, ..., 101, 61, 17], + [ -89, -127, -125, ..., 120, 19, -55], + ..., + [ 82, 74, 65, ..., -49, -53, -109], + [ -21, -42, 68, ..., 13, 57, -12], + [ -4, 88, -1, ..., -43, -78, 121]], + device='cuda:0', dtype=torch.int8, requires_grad=True) +``` +正如我们在前面部分解释量化方法时所讲,权重值被“截断”了。此外,这些值的分布看上去在 [-127, 127] 之间。 + +你可能还想知道如何获取 FP16 权重以便在 FP16 中执行离群值的矩阵乘?很简单: + +```py +(int8_model[0].weight.CB * int8_model[0].weight.SCB) / 127 +``` + +你会看到: + +``` +tensor([[ 0.0028, -0.0459, 0.0522, ..., -0.0049, -0.0428, 0.0462], + [-0.0960, 0.0391, 0.0782, ..., 0.0994, 0.0593, 0.0167], + [-0.0822, -0.1240, -0.1207, ..., 0.1181, 0.0185, -0.0541], + ..., + [ 0.0757, 0.0723, 0.0628, ..., -0.0482, -0.0516, -0.1072], + [-0.0194, -0.0410, 0.0657, ..., 0.0128, 0.0554, -0.0118], + [-0.0037, 0.0859, -0.0010, ..., -0.0423, -0.0759, 0.1190]], + device='cuda:0') +``` + +这跟第一次打印的原始 FP16 值很接近! + +6. 现在你只需将输入推给正确的 GPU 并确保输入数据类型是 FP16 的,你就可以使用该模型进行推理了: + +```py +input_ = torch.randn(64, dtype=torch.float16) +hidden_states = int8_model(input_.to(torch.device('cuda', 0))) +``` + +你可以查看[示例脚本](/blog/assets/96_hf_bitsandbytes_integration/example.py) ,获取完整的示例代码! + +多说一句,`Linear8bitLt` 与 `nn.Linear` 模块略有不同,主要在 `Linear8bitLt` 的参数属于 `bnb.nn.Int8Params` 类而不是 `nn.Parameter` 类。稍后你会看到这给我们带来了一些小麻烦! + +现在我们开始了解如何将其集成到 `transformers` 库中! + +### `accelerate` 足矣 + +在处理大模型时,`accelerate` 库包含许多有用的工具。`init_empty_weights` 方法特别有用,因为任何模型,无论大小,都可以在此方法的上下文(context)内进行初始化,而无需为模型权重分配任何内存。 + +```py +import torch.nn as nn +from accelerate import init_empty_weights + +with init_empty_weights(): + model = nn.Sequential([nn.Linear(100000, 100000) for _ in range(1000)]) # This will take ~0 RAM! +``` +初始化过的模型将放在 PyTorch 的 `meta` 设备上,这是一种用于表征向量的形状和数据类型而无需实际的内存分配的超酷的底层机制。 + +最初,我们在 `.from_pretrained` 函数内部调用 `init_empty_weights`,并将所有参数重载为 `torch.nn.Parameter`。这不是我们想要的,因为在我们的情况中,我们希望为 `Linear8bitLt` 模块保留 `Int8Params` 类,如上所述。我们最后成功使用 [此 PR](https://github.com/huggingface/accelerate/pull/519) 修复了该问题,它将下述代码: + +```py +module._parameters[name] = nn.Parameter(module._parameters[name].to(torch.device("meta"))) +``` + +修改成: + +```py +param_cls = type(module._parameters[name]) +kwargs = module._parameters[name].__dict__ +module._parameters[name] = param_cls(module._parameters[name].to(torch.device("meta")), **kwargs) +``` + +现在这个问题已经解决了,我们可以轻松地在一个自定义函数中利用这个上下文管理器将所有 `nn.Linear` 模块替换为 `bnb.nn.Linear8bitLt` 而无需占用内存! + +```py +def replace_8bit_linear(model, threshold=6.0, module_to_not_convert="lm_head"): + for name, module in model.named_children(): + if len(list(module.children())) > 0: + replace_8bit_linear(module, threshold, module_to_not_convert) + + if isinstance(module, nn.Linear) and name != module_to_not_convert: + with init_empty_weights(): + model._modules[name] = bnb.nn.Linear8bitLt( + module.in_features, + module.out_features, + module.bias is not None, + has_fp16_weights=False, + threshold=threshold, + ) + return model +``` +此函数递归地将 `meta` 设备上初始化的给定模型的所有 `nn.Linear` 层替换为 `Linear8bitLt` 模块。这里,必须将 `has_fp16_weights` 属性设置为 `False`,以便直接将权重加载为 `Int8`,并同时加载其量化统计信息。 + +我们放弃了对某些模块(这里时 `lm_head`)进行替换,因为我们希望保持输出层的原始精度以获得更精确、更稳定的结果。 + +但还没完!上面的函数在 `init_empty_weights` 上下文管理器中执行,这意味着新模型将仍在 `meta` 设备中。 + +对于在此上下文管理器中初始化的模型,`accelerate` 将手动加载每个模块的参数并将它们拷贝到正确的设备上。因此在 `bitsandbytes` 中,设置 `Linear8bitLt` 模块的设备是至关重要的一步(感兴趣的读者可以查看[此代码](https://github.com/TimDettmers/bitsandbytes/blob/bd515328d70f344f935075f359c5aefc616878d5/bitsandbytes/nn/modules.py#L94)),正如你在我们上面提供的脚本中所见。 + +而且,第二次调用量化过程时会失败!我们必须想出一个与 `accelerate` 的 `set_module_tensor_to_device` 函数相应的实现(称为 `set_module_8bit_tensor_to_device`),以确保我们不会调用两次量化。我们将在下面的部分中详细讨论这个问题! + +### 在 `accelerate` 设置设备要当心 + +这方面,我们对 `accelerate` 库进行了精巧的修改,以取得平衡! + +在模型被加载且设置到正确的设备上后,有时你仍需调用 `set_module_tensor_to_device` 以便向所有设备分派加了 hook 的模型。该操作在用户调用 `accelerate` 的 `dispatch_model` 函数时会被触发,这意味着我们有可能多次调用 `.to`,我们需要避免该行为。 + +我们通过两个 PR 实现了目的,[这里](https://github.com/huggingface/accelerate/pull/539/) 的第一个 PR 破坏了一些测试,但[这个 PR](https://github.com/huggingface/accelerate/pull/576/) 成功修复了所有问题! + +### 总结 + +因此,最终我们完成了: +1. 使用正确的模块在 `meta` 设备上初始化模型。 +2. 不重不漏地对目标 GPU 逐一设置参数,确保不要对同一个 GPU 重复设置! +3. 将新加的参数变量更新到所有需要的地方,并添加好文档。 +4. 添加高覆盖度的测试! 你可以从[此处](https://github.com/huggingface/transformers/blob/main/tests/mixed_int8/test_mixed_int8.py) 查看更多关于测试的详细信息。 + +知易行难,在此过程中,我们经历了许多艰难的调试局,其中很多跟 CUDA 核函数有关! + +总而言之,这次集成的过程充满了冒险和趣味;从深入研究并对不同的库做一些“手术”,到整合一切并最终使其发挥作用,每一步都充满挑战! + +现在,我们看看如何在 `transformers` 中成功使用它并从中获益! + +## 如何在 `transformers` 中使用它 + +### 硬件要求 + +CPU 不支持 8 位张量核心[译者注:Intel 最新的 Sapphire Rapids CPU 已支持 8 位张量指令集:AMX]。 bitsandbytes 可以在支持 8 位张量核心的硬件上运行,这些硬件有 Turing 和 Ampere GPU(RTX 20s、RTX 30s、A40-A100、T4+)。例如,Google Colab GPU 通常是 NVIDIA T4 GPU,而最新的 T4 是支持 8 位张量核心的。我们后面的演示将会基于 Google Colab! + +### 安装 + +使用以下命令安装最新版本的库(确保你的 python>=3.8)。 + +```bash +pip install accelerate +pip install bitsandbytes +pip install git+https://github.com/huggingface/transformers.git +``` + +### 演示示例 - 在 Google Colab 上运行 T5 11B + +以下是运行 T5-11B 的演示。 T5-11B 模型的 checkpoint 精度为 FP32,需要 42GB 内存,Google Colab 里跑不动。使用我们的 8 位模块,它仅需 11GB 内存,因此能轻易跑通: + +[![打开 T5-11B 的 Colab 演示](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1YORPWx4okIHXnjW7MSAidXN29mPVNT7F?usp=sharing) + +或者,你还可以看看下面这个使用 8 位 BLOOM-3B 模型进行推理的演示! + +[![打开 BLOOM-3B 的 Colab 演示](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/huggingface/blog/blob/main/notebooks/HuggingFace_int8_demo.ipynb) + +## 影响范围 + +我们认为,该方法让超大模型不再是阳春白雪,而是人人皆可触及。在不降低性能的情况下,它使拥有较少算力的用户能够使用以前无法使用的模型。 + +我们已经发现了几个可以在继续改进的领域,以使该方法对大模型更友好! + +### 较小模型的推理加速 + +正如我们在[基准测试部分](#比原始模型更快吗?)中看到的那样,我们可以将小模型(<=6B 参数)的运行速度提高近 2 倍。然而,虽然推理速度对于像 BLOOM-176B 这样的大模型来说比较稳定,但对小模型而言仍有改进的余地。我们已经定位到了问题并有希望恢复与 FP16 相同的性能,甚至还可能会有小幅加速。我们将在接下来的几周内合入这些改进。 + +### 支持 Kepler GPU(GTX 1080 等) + +虽然我们只支持过去四年的所有 GPU,但现实是某些旧的 GPU(如 GTX 1080)现在仍然被大量使用。虽然这些 GPU 没有 Int8 张量核心,但它们有 Int8 向量单元(一种“弱”张量核心)。因此,这些 GPU 也可以体验 Int8 加速。然而,它需要一个完全不同的软件栈来优化推理速度。虽然我们确实计划集成对 Kepler GPU 的支持以使 LLM.int8() 的应用更广泛,但由于其复杂性,实现这一目标需要一些时间。 + +### 在 Hub 上保存 8 位 checkpoint + +目前 8 位模型无法直接加载被推送到 Hub 上的 8 位 checkpoint。这是因为模型计算所需的统计数据(还记得上文提到的 `weight.CB` 和 `weight.SCB` 吗?)目前没有存储在 state_dict 中,而且 state_dict 的设计也未考虑这一信息的存储,同时 `Linear8bitLt` 模块也还尚未支持该特性。 + +但我们认为保存它并将其推送到 Hub 可能有助于提高模型的可访问性。 + +### CPU 的支持 + +正如本文开头所述,CPU 设备不支持 8 位张量核。然而,我们能克服它吗?在 CPU 上运行此模块可以显著提高可用性和可访问性。[译者注:如上文,最新的 Intel CPU 已支持 8 位张量核] + +### 扩展至其他模态 + +目前,大模型以语言模型为主。在超大视觉、音频和多模态模型上应用这种方法可能会很有意思,因为随着这些模型在未来几年变得越来越多,它们的易用性也会越来越重要。 + +## 致谢 + +非常感谢以下为提高文章的可读性以及在 `transformers` 中的集成过程做出贡献的人(按字母顺序列出): +JustHeuristic (Yozh), +Michael Benayoun, +Stas Bekman, +Steven Liu, +Sylvain Gugger, +Tim Dettmers + +> 英文原文: https://huggingface.co/blog/hf-bitsandbytes-integration +> 原文作者:Younes Belkada,Tim Dettmers +> 译者: Matrix Yao (姚伟峰),英特尔深度学习工程师,工作方向为 transformer-family 模型在各模态数据上的应用及大规模模型的训练推理。 From e6e8c8a2f61b6f33d0312fb5f3f1d9705a533f42 Mon Sep 17 00:00:00 2001 From: Zhongdong Yang Date: Tue, 25 Apr 2023 17:53:57 +0800 Subject: [PATCH 08/55] Proofread hf-bitsandbytes-integration.md --- zh/hf-bitsandbytes-integration.md | 234 +++++++++++++++--------------- 1 file changed, 121 insertions(+), 113 deletions(-) diff --git a/zh/hf-bitsandbytes-integration.md b/zh/hf-bitsandbytes-integration.md index cc30759d74..9963f1b2df 100644 --- a/zh/hf-bitsandbytes-integration.md +++ b/zh/hf-bitsandbytes-integration.md @@ -7,6 +7,8 @@ authors: guest: true translators: - user: MatrixYao +- user: zhongdongy + proofreader: true --- # 大规模 Transformer 模型 8 比特矩阵乘简介 - 基于 Hugging Face Transformers、Accelerate 以及 bitsandbytes @@ -22,11 +24,11 @@ translators: ![LLM](/blog/assets/96_hf_bitsandbytes_integration/LLM3.png) -由于这些模型很大,因此它们很难在一般的设备上运行。举个例子,仅推理 BLOOM-176B 模型,你就需要 8 个 80GB A100 GPU(每个约 15,000 美元)。而如果要微调 BLOOM-176B 的话,你需要 72 个这样的 GPU!更大的模型,如 PaLM,还需要更多资源。 +由于这些模型很大,因此它们很难在一般的设备上运行。举个例子,仅推理 BLOOM-176B 模型,你就需要 8 个 80GB A100 GPU (每个约 15,000 美元)。而如果要微调 BLOOM-176B 的话,你需要 72 个这样的 GPU!更大的模型,如 PaLM,还需要更多资源。 由于这些庞大的模型需要大量 GPU 才能运行,因此我们需要找到降低资源需求而同时保持模型性能的方法。目前已有一些试图缩小模型尺寸的技术,比如你可能听说过的量化和蒸馏等技术。 -完成 BLOOM-176B 的训练后,Hugging Face 和 BigScience 一直在寻找能让这个大模型更容易在更少的 GPU 上运行的方法。通过我们的 BigScience 社区,我们了解到一些有关 Int8 推理的研究,它不会降低大模型的预测性能,而且可以将大模型的内存占用量减少 2 倍。很快我们就开始合作进行这项研究,最终将其完全整合到 Hugging Face `transformers` 中。本文我们将详述我们集成在Hugging Face 中的 LLM.int8() 方案,它适用于所有 Hugging Face 模型。如果你想了解更多研究细节,可以阅读我们的论文 [LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale](https://arxiv.org/abs/2208.07339)。 +完成 BLOOM-176B 的训练后,Hugging Face 和 BigScience 一直在寻找能让这个大模型更容易在更少的 GPU 上运行的方法。通过我们的 BigScience 社区,我们了解到一些有关 Int8 推理的研究,它不会降低大模型的预测性能,而且可以将大模型的内存占用量减少 2 倍。很快我们就开始合作进行这项研究,最终将其完全整合到 Hugging Face `transformers` 中。本文我们将详述我们集成在 Hugging Face 中的 LLM.int8() 方案,它适用于所有 Hugging Face 模型。如果你想了解更多研究细节,可以阅读我们的论文 [LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale](https://arxiv.org/abs/2208.07339)。 本文将主要介绍 LLM.int8() 量化技术,讨论将其纳入 `transformers` 库的过程中经历的困难,并对后续工作进行了计划。 @@ -36,29 +38,29 @@ translators: 我们从理解不同浮点数据类型开始,这些数据类型在机器学习中也被称为“精度”。 -模型的大小由其参数量及其精度决定,精度通常为 float32、float16 或 bfloat16 之一([下图来源](https://blogs.nvidia.com/blog/2020/05/14/tensorfloat-32-precision-format/))。 +模型的大小由其参数量及其精度决定,精度通常为 float32、float16 或 bfloat16 之一 ([下图来源](https://blogs.nvidia.com/blog/2020/05/14/tensorfloat-32-precision-format/))。 ![Summary](/blog/assets/96_hf_bitsandbytes_integration/tf32-Mantissa-chart-hi-res-FINAL.png) Float32 (FP32) 是标准的 IEEE 32 位浮点表示。使用该数据类型,可以表示大范围的浮点数。在 FP32 中,为“指数”保留了 8 位,为“尾数”保留了 23 位,为符号保留了 1 位。因为是标准数据类型,所以大部分硬件都支持 FP32 运算指令。 -而在 Float16 (FP16) 数据类型中,指数保留 5 位,尾数保留 10 位。这使得 FP16 数字的数值范围远低于 FP32。因此 FP16 存在上溢(当用于表示非常大的数时)和下溢(当用于表示非常小的数时)的风险。 +而在 Float16 (FP16) 数据类型中,指数保留 5 位,尾数保留 10 位。这使得 FP16 数字的数值范围远低于 FP32。因此 FP16 存在上溢 (当用于表示非常大的数时) 和下溢 (当用于表示非常小的数时) 的风险。 -例如,当你执行 `10k * 10k` 时,最终结果应为 `100M`,FP16 无法表示该数,因为 FP16 能表示的最大数是 `64k`。因此你最终会得到 `NaN`(Not a Number,不是数字),在神经网络的计算中,因为计算是按层和 batch 顺序进行的,因此一旦出现 `NaN`,之前的所有计算就全毁了。一般情况下,我们可以通过缩放损失(loss scaling)来缓解这个问题,但该方法并非总能奏效。 +例如,当你执行 `10k * 10k` 时,最终结果应为 `100M`,FP16 无法表示该数,因为 FP16 能表示的最大数是 `64k`。因此你最终会得到 `NaN` (Not a Number,不是数字),在神经网络的计算中,因为计算是按层和 batch 顺序进行的,因此一旦出现 `NaN`,之前的所有计算就全毁了。一般情况下,我们可以通过缩放损失 (loss scaling) 来缓解这个问题,但该方法并非总能奏效。 -于是我们发明了一种新格式 Bfloat16 (BF16) 来规避这些限制。BF16 为指数保留了 8 位(与 FP32 相同),为小数保留了 7 位。这意味着使用 BF16 我们可以保留与 FP32 相同的动态范围。但是相对于 FP16,我们损失了 3 位精度。因此,在使用 BF16 精度时,大数值绝对没有问题,但是精度会比 FP16 差。 +于是我们发明了一种新格式 Bfloat16 (BF16) 来规避这些限制。BF16 为指数保留了 8 位 (与 FP32 相同),为小数保留了 7 位。这意味着使用 BF16 我们可以保留与 FP32 相同的动态范围。但是相对于 FP16,我们损失了 3 位精度。因此,在使用 BF16 精度时,大数值绝对没有问题,但是精度会比 FP16 差。 -在 Ampere 架构中,NVIDIA 还引入了 [TensorFloat-32](https://blogs.nvidia.com/blog/2020/05/14/tensorfloat-32-precision-format/)(TF32) 精度格式,它使用 19 位表示,结合了 BF16 的范围和 FP16 的精度。目前,它仅在某些操作的内部使用[译者注:即 TF32 是一个计算数据类型而不是存储数据类型]。 +在 Ampere 架构中,NVIDIA 还引入了 [TensorFloat-32](https://blogs.nvidia.com/blog/2020/05/14/tensorfloat-32-precision-format/)(TF32) 精度格式,它使用 19 位表示,结合了 BF16 的范围和 FP16 的精度。目前,它仅在某些操作的内部使用 [译者注: 即 TF32 是一个计算数据类型而不是存储数据类型]。 -在机器学习术语中,FP32 称为全精度(4 字节),而 BF16 和 FP16 称为半精度(2 字节)。除此以外,还有 Int8 (INT8) 数据类型,它是一个 8 位的整型数据表示,可以存储 $2^8$ 个不同的值(对于有符号整数,区间为 [-128, 127],而对于无符号整数,区间为[0, 255])。 +在机器学习术语中,FP32 称为全精度 (4 字节),而 BF16 和 FP16 称为半精度 (2 字节)。除此以外,还有 Int8 (INT8) 数据类型,它是一个 8 位的整型数据表示,可以存储 $2^8$ 个不同的值 (对于有符号整数,区间为 [-128, 127],而对于无符号整数,区间为 [0, 255])。 -虽然理想情况下训练和推理都应该在 FP32 中完成,但 FP32 比 FP16/BF16 慢两倍,因此实践中常常使用混合精度方法,其中,使用 FP32 权重作为精确的 “主权重(master weight)”,而使用 FP16/BF16 权重进行前向和后向传播计算以提高训练速度,最后在梯度更新阶段再使用 FP16/BF16 梯度更新 FP32 主权重。 +虽然理想情况下训练和推理都应该在 FP32 中完成,但 FP32 比 FP16/BF16 慢两倍,因此实践中常常使用混合精度方法,其中,使用 FP32 权重作为精确的 “主权重 (master weight)”,而使用 FP16/BF16 权重进行前向和后向传播计算以提高训练速度,最后在梯度更新阶段再使用 FP16/BF16 梯度更新 FP32 主权重。 在训练期间,主权重始终为 FP32。而在实践中,在推理时,半精度权重通常能提供与 FP32 相似的精度 —— 因为只有在模型梯度更新时才需要精确的 FP32 权重。这意味着在推理时我们可以使用半精度权重,这样我们仅需一半 GPU 显存就能获得相同的结果。 ![Model-storage](/blog/assets/96_hf_bitsandbytes_integration/Model-storage.png) -以字节为单位计算模型大小时,需要将参数量乘以所选精度的大小(以字节为单位)。例如,如果我们使用 BLOOM-176B 模型的 Bfloat16 版本,其大小就应为 $176 \times 10^{9} \times 2 字节 = 352GB$!如前所述,这个大小需要多个 GPU 才能装得下,这是一个相当大的挑战。 +以字节为单位计算模型大小时,需要将参数量乘以所选精度的大小 (以字节为单位)。例如,如果我们使用 BLOOM-176B 模型的 Bfloat16 版本,其大小就应为 $176 \times 10^{9} \times 2 字节 = 352GB$!如前所述,这个大小需要多个 GPU 才能装得下,这是一个相当大的挑战。 但是,如果我们可以使用另外的数据类型来用更少的内存存储这些权重呢?深度学习社区已广泛使用的方法是量化。 @@ -68,15 +70,17 @@ Float32 (FP32) 是标准的 IEEE 32 位浮点表示。使用该数据类型, 为了解决这个问题,我们引入了 8 位量化。仅用四分之一精度,因此模型大小也仅需 1/4!但这次,我们不能简单地丢弃另一半位宽了。 -基本上讲,量化过程是从一种数据类型“舍入”到另一种数据类型。举个例子,如果一种数据类型的范围为 `0..9`,而另一种数据类型的范围为 `0..4`,则第一种数据类型中的值 `4` 将舍入为第二种数据类型中的 `2` 。但是,如果在第一种数据类型中有值 `3`,它介于第二种数据类型的 `1` 和 `2` 之间,那么我们通常会四舍五入为 `2`。也就是说,第一种数据类型的值 `4` 和 `3` 在第二种数据类型中具有相同的值 `2`。这充分表明量化是一个有噪过程,会导致信息丢失,是一种有损压缩。 +基本上讲,量化过程是从一种数据类型“舍入”到另一种数据类型。举个例子,如果一种数据类型的范围为 `0..9`,而另一种数据类型的范围为 `0..4`,则第一种数据类型中的值 `4` 将舍入为第二种数据类型中的 `2` 。但是,如果在第一种数据类型中有值 `3`,它介于第二种数据类型的 `1` 和 `2` 之间,那么我们通常会四舍五入为 `2`。也就是说,第一种数据类型的值 `4` 和 `3` 在第二种数据类型中具有相同的值 `2`。这充分表明量化是一个有噪过程,会导致信息丢失,是一种有损压缩。 -两种最常见的 8 位量化技术是零点量化(zero-point quantization)和最大绝对值 (absolute maximum quantization,absmax) 量化。它们都将浮点值映射为更紧凑的 Int8(1 字节)值。这些方法的第一步都是用量化常数对输入进行归一化缩放。 +两种最常见的 8 位量化技术是零点量化 (zero-point quantization) 和最大绝对值 (absolute maximum quantization,absmax) 量化。它们都将浮点值映射为更紧凑的 Int8 (1 字节) 值。这些方法的第一步都是用量化常数对输入进行归一化缩放。 -在零点量化中,如果我的数值范围是 `-1.0…1.0`,我想量化到 `-127…127`,我需要先缩放 `127`倍,然后四舍五入到 `8` 位精度。要恢复原始值,我需要将 Int8 值除以相同的量化因子 `127`。在这个例子中,值 `0.3` 将缩放为 `0.3*127 = 38.1`。四舍五入后得到值 `38`。恢复时,我们会得到 `38/127=0.2992` —— 因此最终会有 `0.008` 的量化误差。这些看似微小的误差在沿着模型各层传播时往往会累积和增长,从而导致最终的精度下降。[译者注:这个例子举得不好,因为浮点范围和整型范围都是对称的,所以不存在零点调整了,而零点调整是零点量化中最能体现其命名原因的部分。简而言之,零点量化分为两步,第一步值域映射,即通过缩放将原始的数值范围映射为量化后的数值范围;第二步零点调整,即通过平移将映射后的数据的最小值对齐为目标值域的最小值] +在零点量化中,如果我的数值范围是 `-1.0…1.0`,我想量化到 `-127…127`,我需要先缩放 `127`倍,然后四舍五入到 `8` 位精度。要恢复原始值,我需要将 Int8 值除以相同的量化因子 `127`。在这个例子中,值 `0.3` 将缩放为 `0.3*127 = 38.1`。四舍五入后得到值 `38`。恢复时,我们会得到 `38/127=0.2992` —— 因此最终会有 `0.008` 的量化误差。这些看似微小的误差在沿着模型各层传播时往往会累积和增长,从而导致最终的精度下降。 + +> 译者注: 这个例子举得不好,因为浮点范围和整型范围都是对称的,所以不存在零点调整了,而零点调整是零点量化中最能体现其命名原因的部分。简而言之,零点量化分为两步,第一步值域映射,即通过缩放将原始的数值范围映射为量化后的数值范围; 第二步零点调整,即通过平移将映射后的数据的最小值对齐为目标值域的最小值 ![quantization](/blog/assets/96_hf_bitsandbytes_integration/quantization.png) -([图源](https://intellabs.github.io/distiller/algo_quantization.html) ) +([图源](https://intellabs.github.io/distiller/algo_quantization.html)) 现在我们再看下 absmax 量化的细节。要计算 absmax 量化中 fp16 数与其对应的 int8 数之间的映射,你必须先除以张量的最大绝对值,然后再乘以数据类型的最大可表示值。 @@ -88,22 +92,23 @@ Float32 (FP32) 是标准的 IEEE 32 位浮点表示。使用该数据类型, ![quant-freeze](/blog/assets/96_hf_bitsandbytes_integration/quant-freeze.png) -对于无符号 Int8,我们可以先减去最小值然后再用最大绝对值来缩放,这与零点量化的做法相似。其做法也与最小-最大缩放(min-max scaling)类似,但后者在缩放时会额外保证输入中的 `0` 始终映射到一个整数,从而保证 `0` 的量化是无误差的。 +对于无符号 Int8,我们可以先减去最小值然后再用最大绝对值来缩放,这与零点量化的做法相似。其做法也与最小 - 最大缩放 (min-max scaling) 类似,但后者在缩放时会额外保证输入中的 `0` 始终映射到一个整数,从而保证 `0` 的量化是无误差的。 + +当进行矩阵乘法时,我们可以通过组合各种技巧,例如逐行或逐向量量化,来获取更精确的结果。举个例子,对矩阵乘法 $A \times B=C$,我们不会直接使用常规量化方式,即用整个张量的最大绝对值对张量进行归一化,而会转而使用向量量化方法,找到 A 的每一行和 B 的每一列的最大绝对值,然后逐行或逐列归一化 A 和 B 。最后将 A 与 B 相乘得到 C。最后,我们再计算与 A 和 B 的最大绝对值向量的外积,并将此与 C 求哈达玛积来反量化回 FP16。有关此技术的更多详细信息可以参考 [LLM.int8() 论文](https://arxiv.org/abs/2208.07339) 或 Tim 的博客上的 [关于量化和涌现特征的博文](https://timdettmers.com/2022/08/17/llm-int8-and-emergent-features/)。 -当进行矩阵乘法时,我们可以通过组合各种技巧,例如逐行或逐向量量化,来获取更精确的结果。举个例子,对矩阵乘法 $A \times B=C$,我们不会直接使用常规量化方式,即用整个张量的最大绝对值对张量进行归一化,而会转而使用向量量化方法,找到 A 的每一行和 B 的每一列的最大绝对值,然后逐行或逐列归一化 A 和 B 。最后将 A 与 B 相乘得到 C。最后,我们再计算与 A 和 B 的最大绝对值向量的外积,并将此与 C 求哈达玛积来反量化回 FP16。有关此技术的更多详细信息可以参考 [LLM.int8() 论文](https://arxiv.org/abs/2208.07339) 或 Tim 的博客上的[关于量化和涌现特征的博文](https://timdettmers.com/2022/08/17/llm-int8-and-emergent-features/)。 +虽然这些基本技术能够帮助我们量化深度学习模型,但它们通常会导致大模型准确性的下降。我们集成到 Hugging Face Transformers 和 Accelerate 库中的 LLM.int8() 是第一个适用于大模型 (如 BLOOM-176B) 且不会降低准确性的量化技术。 -虽然这些基本技术能够帮助我们量化深度学习模型,但它们通常会导致大模型准确性的下降。我们集成到 Hugging Face Transformers 和 Accelerate 库中的 LLM.int8() 是第一个适用于大模型(如 BLOOM-176B)且不会降低准确性的量化技术。 +## 简要总结 LLM.int8(): 大语言模型的零退化矩阵乘法 -## 简要总结 LLM.int8():大语言模型的零退化矩阵乘法 +在 LLM.int8() 中,我们已经证明理解 transformer 模型表现出的与模型规模相关的涌现特性对于理解为什么传统量化对大模型失效至关重要。我们证明性能下降是由离群特征 (outlier feature) 引起的,下一节我们会详细解释。LLM.int8() 算法本身如下。 -在 LLM.int8() 中,我们已经证明理解 transformer 模型表现出的与模型规模相关的涌现特性对于理解为什么传统量化对大模型失效至关重要。我们证明性能下降是由离群特征(outlier feature)引起的,下一节我们会详细解释。LLM.int8() 算法本身如下。 +本质上,LLM.int8() 通过三个步骤完成矩阵乘法计算: -本质上,LLM.int8() 通过三个步骤完成矩阵乘法计算: -1. 从输入的隐含状态中,按列提取异常值(即大于某个阈值的值)。 +1. 从输入的隐含状态中,按列提取异常值 (即大于某个阈值的值)。 2. 对 FP16 离群值矩阵和 Int8 非离群值矩阵分别作矩阵乘法。 3. 反量化非离群值的矩阵乘结果并其与离群值矩阵乘结果相加,获得最终的 FP16 结果。 -该过程可以总结为如下动画: +该过程可以总结为如下动画: ![Mixed-int8.gif](/blog/assets/96_hf_bitsandbytes_integration/Mixed-int8.gif) @@ -127,50 +132,50 @@ Float32 (FP32) 是标准的 IEEE 32 位浮点表示。使用该数据类型, 对 OPT-175B 模型: -| 测试基准 | - | - | - | - | 差值 | -| ---------- | --------- | ---------------- | -------------------- | -------------------- | -------------------- | -| 测试基准名 | 指标 | 指标值 - int8 | 指标值 - fp16 | 标准差 - fp16 | - | -| hellaswag | acc\_norm | 0.7849 | 0.7849 | 0.0041 | 0 | -| hellaswag | acc | 0.5921 | 0.5931 | 0.0049 | 0.001 | -| piqa | acc | 0.7965 | 0.7959 | 0.0094 | 0.0006 | -| piqa | acc\_norm | 0.8101 | 0.8107 | 0.0091 | 0.0006 | -| lambada | ppl | 3.0142 | 3.0152 | 0.0552 | 0.001 | -| lambada | acc | 0.7464 | 0.7466 | 0.0061 | 0.0002 | -| winogrande | acc | 0.7174 | 0.7245 | 0.0125 | 0.0071 | +| 测试基准 | - | - | - | - | 差值 | +| --- | --- | --- | --- | --- | --- | +| 测试基准名 | 指标 | 指标值 - int8 | 指标值 - fp16 | 标准差 - fp16 | - | +| hellaswag | acc_norm | 0.7849 | 0.7849 | 0.0041 | 0 | +| hellaswag | acc | 0.5921 | 0.5931 | 0.0049 | 0.001 | +| piqa | acc | 0.7965 | 0.7959 | 0.0094 | 0.0006 | +| piqa | acc_norm | 0.8101 | 0.8107 | 0.0091 | 0.0006 | +| lambada | ppl | 3.0142 | 3.0152 | 0.0552 | 0.001 | +| lambada | acc | 0.7464 | 0.7466 | 0.0061 | 0.0002 | +| winogrande | acc | 0.7174 | 0.7245 | 0.0125 | 0.0071 | 对 BLOOM-176 模型: -| 测试基准 | - | - | - | - | 差值 | -| ---------- | --------- | ---------------- | -------------------- | -------------------- | -------------------- | -| 测试基准名 | 指标 | 指标值 - int8 | 指标值 - fp16 | 标准差 - fp16 | - | -| hellaswag | acc\_norm | 0.7274 | 0.7303 | 0.0044 | 0.0029 | -| hellaswag | acc | 0.5563 | 0.5584 | 0.005 | 0.0021 | -| piqa | acc | 0.7835 | 0.7884 | 0.0095 | 0.0049 | -| piqa | acc\_norm | 0.7922 | 0.7911 | 0.0095 | 0.0011 | -| lambada | ppl | 3.9191 | 3.931 | 0.0846 | 0.0119 | -| lambada | acc | 0.6808 | 0.6718 | 0.0065 | 0.009 | -| winogrande | acc | 0.7048 | 0.7048 | 0.0128 | 0 | +| 测试基准 | - | - | - | - | 差值 | +| --- | --- | --- | --- | --- | --- | +| 测试基准名 | 指标 | 指标值 - int8 | 指标值 - fp16 | 标准差 - fp16 | - | +| hellaswag | acc_norm | 0.7274 | 0.7303 | 0.0044 | 0.0029 | +| hellaswag | acc | 0.5563 | 0.5584 | 0.005 | 0.0021 | +| piqa | acc | 0.7835 | 0.7884 | 0.0095 | 0.0049 | +| piqa | acc_norm | 0.7922 | 0.7911 | 0.0095 | 0.0011 | +| lambada | ppl | 3.9191 | 3.931 | 0.0846 | 0.0119 | +| lambada | acc | 0.6808 | 0.6718 | 0.0065 | 0.009 | +| winogrande | acc | 0.7048 | 0.7048 | 0.0128 | 0 | -我们切实地看到上述这些模型的性能下降为 0,因为指标的绝对差异均低于原始模型的标准误差(BLOOM-int8 除外,它在 lambada 上略好于原始模型)。如果想要知道 LLM.int8() 与当前其他先进方法的更详细的性能比较,请查看[论文](https://arxiv.org/abs/2208.07339)! +我们切实地看到上述这些模型的性能下降为 0,因为指标的绝对差异均低于原始模型的标准误差 (BLOOM-int8 除外,它在 lambada 上略好于原始模型)。如果想要知道 LLM.int8() 与当前其他先进方法的更详细的性能比较,请查看 [论文](https://arxiv.org/abs/2208.07339)! ### 比原始模型更快吗? -LLM.int8() 方法的主要目的是在不降低性能的情况下降低大模型的应用门槛。但如果速度非常慢,该方法用处也不会很大。所以我们对多个模型的生成速度进行了基准测试。 -我们发现使用了 LLM.int8() 的 BLOOM-176B 比 FP16 版本慢了大约 15% 到 23% —— 这应该是完全可以接受的。我们发现较小模型(如 T5-3B 和 T5-11B)的降速幅度更大。我们还在努力优化这些小模型的推理速度。在一天之内,我们可以将 T5-3B 的每词元推理延迟从 312 毫秒降低到 173 毫秒,将 T5-11B 从 45 毫秒降低到 25 毫秒。此外,我们[已经找到原因](https://github.com/TimDettmers/bitsandbytes/issues/6#issuecomment-1211345635),在即将发布的版本中,LLM.int8() 在小模型上的推理速度可能会更快。下表列出了当前版本的一些性能数据。 +LLM.int8() 方法的主要目的是在不降低性能的情况下降低大模型的应用门槛。但如果速度非常慢,该方法用处也不会很大。所以我们对多个模型的生成速度进行了基准测试。 +我们发现使用了 LLM.int8() 的 BLOOM-176B 比 FP16 版本慢了大约 15% 到 23% —— 这应该是完全可以接受的。我们发现较小模型 (如 T5-3B 和 T5-11B) 的降速幅度更大。我们还在努力优化这些小模型的推理速度。在一天之内,我们可以将 T5-3B 的每词元推理延迟从 312 毫秒降低到 173 毫秒,将 T5-11B 从 45 毫秒降低到 25 毫秒。此外,我们 [已经找到原因](https://github.com/TimDettmers/bitsandbytes/issues/6#issuecomment-1211345635),在即将发布的版本中,LLM.int8() 在小模型上的推理速度可能会更快。下表列出了当前版本的一些性能数据。 -| 精度 | 参数量 | 硬件 | 每词元延迟(单位:毫秒,batch size: 1)| 每词元延迟(单位:毫秒,batch size: 8) | 每词元延迟(单位:毫秒,batch size: 32) | -| -------------- | -------------------- | ------------ | ----------------------------------------------- | ----------------------------------------------- | ------------------------------------------------ | -| bf16 | 176B | 8xA100 80GB | 239 | 32 | 9.9 | -| int8 | 176B | 4xA100 80GB | 282 | 37.5 | 10.2 | -| bf16 | 176B | 14xA100 40GB | 285 | 36.5 | 10.4 | -| int8 | 176B | 5xA100 40GB | 367 | 46.4 | oom | -| fp16 | 11B | 2xT4 15GB | 11.7 | 1.7 | 0.5 | -| int8 | 11B | 1xT4 15GB | 43.5 | 5.3 | 1.3 | -| fp32 | 3B | 2xT4 15GB | 45 | 7.2 | 3.1 | -| int8 | 3B | 1xT4 15GB | 312 | 39.1 | 10.2 | +| 精度 | 参数量 | 硬件 | 每词元延迟 (单位: 毫秒,batch size: 1) | 每词元延迟 (单位: 毫秒,batch size: 8) | 每词元延迟 (单位: 毫秒,batch size: 32) | +| --- | --- | --- | --- | --- | --- | +| bf16 | 176B | 8xA100 80GB | 239 | 32 | 9.9 | +| int8 | 176B | 4xA100 80GB | 282 | 37.5 | 10.2 | +| bf16 | 176B | 14xA100 40GB | 285 | 36.5 | 10.4 | +| int8 | 176B | 5xA100 40GB | 367 | 46.4 | oom | +| fp16 | 11B | 2xT4 15GB | 11.7 | 1.7 | 0.5 | +| int8 | 11B | 1xT4 15GB | 43.5 | 5.3 | 1.3 | +| fp32 | 3B | 2xT4 15GB | 45 | 7.2 | 3.1 | +| int8 | 3B | 1xT4 15GB | 312 | 39.1 | 10.2 | -上表中的3个模型分别为 BLOOM-176B、T5-11B 和 T5-3B。 +上表中的 3 个模型分别为 BLOOM-176B、T5-11B 和 T5-3B。 ## Hugging Face `transformers` 集成细节 @@ -192,7 +197,7 @@ import bitsandbytes as bnb from bnb.nn import Linear8bitLt ``` -2. 然后就可以定义自己的模型了。请注意,我们支持将任何精度的 checkpoint 或模型转换为 8 位(FP16、BF16 或 FP32),但目前,仅当模型的输入张量数据类型为 FP16 时,我们的 Int8 模块才能工作。因此,这里我们称模型为 fp16 模型。 +1. 然后就可以定义自己的模型了。请注意,我们支持将任何精度的 checkpoint 或模型转换为 8 位 (FP16、BF16 或 FP32),但目前,仅当模型的输入张量数据类型为 FP16 时,我们的 Int8 模块才能工作。因此,这里我们称模型为 fp16 模型。 ```py fp16_model = nn.Sequential( @@ -201,14 +206,14 @@ fp16_model = nn.Sequential( ) ``` -3. 假设你已经在你的数据集和任务上训完了你的模型!现在需要保存模型: +1. 假设你已经在你的数据集和任务上训完了你的模型!现在需要保存模型: ```py [... train the model ...] torch.save(fp16_model.state_dict(), "model.pt") ``` -4. 至此,`state_dict` 已保存,我们需要定义一个 int8 模型: +1. 至此,`state_dict` 已保存,我们需要定义一个 int8 模型: ```py int8_model = nn.Sequential( @@ -216,83 +221,85 @@ int8_model = nn.Sequential( Linear8bitLt(64, 64, has_fp16_weights=False) ) ``` + 此处标志变量 `has_fp16_weights` 非常重要。默认情况下,它设置为 `True`,用于在训练时使能 Int8/FP16 混合精度。但是,因为在推理中我们对内存节省更感兴趣,因此我们需要设置 `has_fp16_weights=False`。 -5. 现在加载 8 位模型! +1. 现在加载 8 位模型! ```py int8_model.load_state_dict(torch.load("model.pt")) int8_model = int8_model.to(0) # 量化发生在此处 ``` -请注意,一旦将模型的设备设置为 GPU,量化过程就会在第二行代码中完成。如果在调用 `.to` 函数之前打印 `int8_model[0].weight`,你会看到: +请注意,一旦将模型的设备设置为 GPU,量化过程就会在第二行代码中完成。如果在调用 `.to` 函数之前打印 `int8_model[0].weight`,你会看到: ``` int8_model[0].weight Parameter containing: -tensor([[ 0.0031, -0.0438, 0.0494, ..., -0.0046, -0.0410, 0.0436], - [-0.1013, 0.0394, 0.0787, ..., 0.0986, 0.0595, 0.0162], - [-0.0859, -0.1227, -0.1209, ..., 0.1158, 0.0186, -0.0530], +tensor([[ 0.0031, -0.0438, 0.0494, ..., -0.0046, -0.0410, 0.0436], + [-0.1013, 0.0394, 0.0787, ..., 0.0986, 0.0595, 0.0162], + [-0.0859, -0.1227, -0.1209, ..., 0.1158, 0.0186, -0.0530], ..., - [ 0.0804, 0.0725, 0.0638, ..., -0.0487, -0.0524, -0.1076], - [-0.0200, -0.0406, 0.0663, ..., 0.0123, 0.0551, -0.0121], - [-0.0041, 0.0865, -0.0013, ..., -0.0427, -0.0764, 0.1189]], + [ 0.0804, 0.0725, 0.0638, ..., -0.0487, -0.0524, -0.1076], + [-0.0200, -0.0406, 0.0663, ..., 0.0123, 0.0551, -0.0121], + [-0.0041, 0.0865, -0.0013, ..., -0.0427, -0.0764, 0.1189]], dtype=torch.float16) ``` -而如果你在第二行之后打印它,你会看到: +而如果你在第二行之后打印它,你会看到: ``` int8_model[0].weight Parameter containing: -tensor([[ 3, -47, 54, ..., -5, -44, 47], - [-104, 40, 81, ..., 101, 61, 17], - [ -89, -127, -125, ..., 120, 19, -55], +tensor([[ 3, -47, 54, ..., -5, -44, 47], + [-104, 40, 81, ..., 101, 61, 17], + [ -89, -127, -125, ..., 120, 19, -55], ..., - [ 82, 74, 65, ..., -49, -53, -109], - [ -21, -42, 68, ..., 13, 57, -12], - [ -4, 88, -1, ..., -43, -78, 121]], + [ 82, 74, 65, ..., -49, -53, -109], + [ -21, -42, 68, ..., 13, 57, -12], + [ -4, 88, -1, ..., -43, -78, 121]], device='cuda:0', dtype=torch.int8, requires_grad=True) ``` + 正如我们在前面部分解释量化方法时所讲,权重值被“截断”了。此外,这些值的分布看上去在 [-127, 127] 之间。 -你可能还想知道如何获取 FP16 权重以便在 FP16 中执行离群值的矩阵乘?很简单: +你可能还想知道如何获取 FP16 权重以便在 FP16 中执行离群值的矩阵乘?很简单: ```py (int8_model[0].weight.CB * int8_model[0].weight.SCB) / 127 ``` -你会看到: +你会看到: ``` -tensor([[ 0.0028, -0.0459, 0.0522, ..., -0.0049, -0.0428, 0.0462], - [-0.0960, 0.0391, 0.0782, ..., 0.0994, 0.0593, 0.0167], - [-0.0822, -0.1240, -0.1207, ..., 0.1181, 0.0185, -0.0541], +tensor([[ 0.0028, -0.0459, 0.0522, ..., -0.0049, -0.0428, 0.0462], + [-0.0960, 0.0391, 0.0782, ..., 0.0994, 0.0593, 0.0167], + [-0.0822, -0.1240, -0.1207, ..., 0.1181, 0.0185, -0.0541], ..., - [ 0.0757, 0.0723, 0.0628, ..., -0.0482, -0.0516, -0.1072], - [-0.0194, -0.0410, 0.0657, ..., 0.0128, 0.0554, -0.0118], - [-0.0037, 0.0859, -0.0010, ..., -0.0423, -0.0759, 0.1190]], + [ 0.0757, 0.0723, 0.0628, ..., -0.0482, -0.0516, -0.1072], + [-0.0194, -0.0410, 0.0657, ..., 0.0128, 0.0554, -0.0118], + [-0.0037, 0.0859, -0.0010, ..., -0.0423, -0.0759, 0.1190]], device='cuda:0') ``` 这跟第一次打印的原始 FP16 值很接近! -6. 现在你只需将输入推给正确的 GPU 并确保输入数据类型是 FP16 的,你就可以使用该模型进行推理了: +1. 现在你只需将输入推给正确的 GPU 并确保输入数据类型是 FP16 的,你就可以使用该模型进行推理了: ```py input_ = torch.randn(64, dtype=torch.float16) hidden_states = int8_model(input_.to(torch.device('cuda', 0))) ``` -你可以查看[示例脚本](/blog/assets/96_hf_bitsandbytes_integration/example.py) ,获取完整的示例代码! +你可以查看 [示例脚本](/blog/assets/96_hf_bitsandbytes_integration/example.py),获取完整的示例代码! -多说一句,`Linear8bitLt` 与 `nn.Linear` 模块略有不同,主要在 `Linear8bitLt` 的参数属于 `bnb.nn.Int8Params` 类而不是 `nn.Parameter` 类。稍后你会看到这给我们带来了一些小麻烦! +多说一句, `Linear8bitLt` 与 `nn.Linear` 模块略有不同,主要在 `Linear8bitLt` 的参数属于 `bnb.nn.Int8Params` 类而不是 `nn.Parameter` 类。稍后你会看到这给我们带来了一些小麻烦! 现在我们开始了解如何将其集成到 `transformers` 库中! ### `accelerate` 足矣 -在处理大模型时,`accelerate` 库包含许多有用的工具。`init_empty_weights` 方法特别有用,因为任何模型,无论大小,都可以在此方法的上下文(context)内进行初始化,而无需为模型权重分配任何内存。 +在处理大模型时, `accelerate` 库包含许多有用的工具。`init_empty_weights` 方法特别有用,因为任何模型,无论大小,都可以在此方法的上下文 (context) 内进行初始化,而无需为模型权重分配任何内存。 ```py import torch.nn as nn @@ -301,15 +308,16 @@ from accelerate import init_empty_weights with init_empty_weights(): model = nn.Sequential([nn.Linear(100000, 100000) for _ in range(1000)]) # This will take ~0 RAM! ``` -初始化过的模型将放在 PyTorch 的 `meta` 设备上,这是一种用于表征向量的形状和数据类型而无需实际的内存分配的超酷的底层机制。 -最初,我们在 `.from_pretrained` 函数内部调用 `init_empty_weights`,并将所有参数重载为 `torch.nn.Parameter`。这不是我们想要的,因为在我们的情况中,我们希望为 `Linear8bitLt` 模块保留 `Int8Params` 类,如上所述。我们最后成功使用 [此 PR](https://github.com/huggingface/accelerate/pull/519) 修复了该问题,它将下述代码: +初始化过的模型将放在 PyTorch 的 `meta` 设备上,这是一种用于表征向量的形状和数据类型而无需实际的内存分配的超酷的底层机制。 + +最初,我们在 `.from_pretrained` 函数内部调用 `init_empty_weights`,并将所有参数重载为 `torch.nn.Parameter`。这不是我们想要的,因为在我们的情况中,我们希望为 `Linear8bitLt` 模块保留 `Int8Params` 类,如上所述。我们最后成功使用 [此 PR](https://github.com/huggingface/accelerate/pull/519) 修复了该问题,它将下述代码: ```py module._parameters[name] = nn.Parameter(module._parameters[name].to(torch.device("meta"))) ``` -修改成: +修改成: ```py param_cls = type(module._parameters[name]) @@ -336,35 +344,37 @@ def replace_8bit_linear(model, threshold=6.0, module_to_not_convert="lm_head"): ) return model ``` + 此函数递归地将 `meta` 设备上初始化的给定模型的所有 `nn.Linear` 层替换为 `Linear8bitLt` 模块。这里,必须将 `has_fp16_weights` 属性设置为 `False`,以便直接将权重加载为 `Int8`,并同时加载其量化统计信息。 -我们放弃了对某些模块(这里时 `lm_head`)进行替换,因为我们希望保持输出层的原始精度以获得更精确、更稳定的结果。 +我们放弃了对某些模块 (这里时 `lm_head`) 进行替换,因为我们希望保持输出层的原始精度以获得更精确、更稳定的结果。 但还没完!上面的函数在 `init_empty_weights` 上下文管理器中执行,这意味着新模型将仍在 `meta` 设备中。 -对于在此上下文管理器中初始化的模型,`accelerate` 将手动加载每个模块的参数并将它们拷贝到正确的设备上。因此在 `bitsandbytes` 中,设置 `Linear8bitLt` 模块的设备是至关重要的一步(感兴趣的读者可以查看[此代码](https://github.com/TimDettmers/bitsandbytes/blob/bd515328d70f344f935075f359c5aefc616878d5/bitsandbytes/nn/modules.py#L94)),正如你在我们上面提供的脚本中所见。 +对于在此上下文管理器中初始化的模型, `accelerate` 将手动加载每个模块的参数并将它们拷贝到正确的设备上。因此在 `bitsandbytes` 中,设置 `Linear8bitLt` 模块的设备是至关重要的一步 (感兴趣的读者可以查看 [此代码](https://github.com/TimDettmers/bitsandbytes/blob/bd515328d70f344f935075f359c5aefc616878d5/bitsandbytes/nn/modules.py#L94)),正如你在我们上面提供的脚本中所见。 -而且,第二次调用量化过程时会失败!我们必须想出一个与 `accelerate` 的 `set_module_tensor_to_device` 函数相应的实现(称为 `set_module_8bit_tensor_to_device`),以确保我们不会调用两次量化。我们将在下面的部分中详细讨论这个问题! +而且,第二次调用量化过程时会失败!我们必须想出一个与 `accelerate` 的 `set_module_tensor_to_device` 函数相应的实现 (称为 `set_module_8bit_tensor_to_device`),以确保我们不会调用两次量化。我们将在下面的部分中详细讨论这个问题! -### 在 `accelerate` 设置设备要当心 +### 在 `accelerate` 设置设备要当心 这方面,我们对 `accelerate` 库进行了精巧的修改,以取得平衡! -在模型被加载且设置到正确的设备上后,有时你仍需调用 `set_module_tensor_to_device` 以便向所有设备分派加了 hook 的模型。该操作在用户调用 `accelerate` 的 `dispatch_model` 函数时会被触发,这意味着我们有可能多次调用 `.to`,我们需要避免该行为。 +在模型被加载且设置到正确的设备上后,有时你仍需调用 `set_module_tensor_to_device` 以便向所有设备分派加了 hook 的模型。该操作在用户调用 `accelerate` 的 `dispatch_model` 函数时会被触发,这意味着我们有可能多次调用 `.to`,我们需要避免该行为。 -我们通过两个 PR 实现了目的,[这里](https://github.com/huggingface/accelerate/pull/539/) 的第一个 PR 破坏了一些测试,但[这个 PR](https://github.com/huggingface/accelerate/pull/576/) 成功修复了所有问题! +我们通过两个 PR 实现了目的,[这里](https://github.com/huggingface/accelerate/pull/539/) 的第一个 PR 破坏了一些测试,但 [这个 PR](https://github.com/huggingface/accelerate/pull/576/) 成功修复了所有问题! ### 总结 -因此,最终我们完成了: +因此,最终我们完成了: + 1. 使用正确的模块在 `meta` 设备上初始化模型。 2. 不重不漏地对目标 GPU 逐一设置参数,确保不要对同一个 GPU 重复设置! 3. 将新加的参数变量更新到所有需要的地方,并添加好文档。 -4. 添加高覆盖度的测试! 你可以从[此处](https://github.com/huggingface/transformers/blob/main/tests/mixed_int8/test_mixed_int8.py) 查看更多关于测试的详细信息。 +4. 添加高覆盖度的测试! 你可以从 [此处](https://github.com/huggingface/transformers/blob/main/tests/mixed_int8/test_mixed_int8.py) 查看更多关于测试的详细信息。 知易行难,在此过程中,我们经历了许多艰难的调试局,其中很多跟 CUDA 核函数有关! -总而言之,这次集成的过程充满了冒险和趣味;从深入研究并对不同的库做一些“手术”,到整合一切并最终使其发挥作用,每一步都充满挑战! +总而言之,这次集成的过程充满了冒险和趣味; 从深入研究并对不同的库做一些“手术”,到整合一切并最终使其发挥作用,每一步都充满挑战! 现在,我们看看如何在 `transformers` 中成功使用它并从中获益! @@ -372,11 +382,11 @@ def replace_8bit_linear(model, threshold=6.0, module_to_not_convert="lm_head"): ### 硬件要求 -CPU 不支持 8 位张量核心[译者注:Intel 最新的 Sapphire Rapids CPU 已支持 8 位张量指令集:AMX]。 bitsandbytes 可以在支持 8 位张量核心的硬件上运行,这些硬件有 Turing 和 Ampere GPU(RTX 20s、RTX 30s、A40-A100、T4+)。例如,Google Colab GPU 通常是 NVIDIA T4 GPU,而最新的 T4 是支持 8 位张量核心的。我们后面的演示将会基于 Google Colab! +CPU 不支持 8 位张量核心 [译者注: Intel 最新的 Sapphire Rapids CPU 已支持 8 位张量指令集: AMX]。 bitsandbytes 可以在支持 8 位张量核心的硬件上运行,这些硬件有 Turing 和 Ampere GPU (RTX 20s、RTX 30s、A40-A100、T4+)。例如,Google Colab GPU 通常是 NVIDIA T4 GPU,而最新的 T4 是支持 8 位张量核心的。我们后面的演示将会基于 Google Colab! ### 安装 -使用以下命令安装最新版本的库(确保你的 python>=3.8)。 +使用以下命令安装最新版本的库 (确保你的 python>=3.8)。 ```bash pip install accelerate @@ -386,13 +396,15 @@ pip install git+https://github.com/huggingface/transformers.git ### 演示示例 - 在 Google Colab 上运行 T5 11B -以下是运行 T5-11B 的演示。 T5-11B 模型的 checkpoint 精度为 FP32,需要 42GB 内存,Google Colab 里跑不动。使用我们的 8 位模块,它仅需 11GB 内存,因此能轻易跑通: +以下是运行 T5-11B 的演示。 T5-11B 模型的 checkpoint 精度为 FP32,需要 42GB 内存,Google Colab 里跑不动。使用我们的 8 位模块,它仅需 11GB 内存,因此能轻易跑通: -[![打开 T5-11B 的 Colab 演示](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1YORPWx4okIHXnjW7MSAidXN29mPVNT7F?usp=sharing) +![打开 T5-11B 的 Colab 演示](https://colab.research.google.com/assets/colab-badge.svg) +[](https://colab.research.google.com/drive/1YORPWx4okIHXnjW7MSAidXN29mPVNT7F?usp=sharing) 或者,你还可以看看下面这个使用 8 位 BLOOM-3B 模型进行推理的演示! -[![打开 BLOOM-3B 的 Colab 演示](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/huggingface/blog/blob/main/notebooks/HuggingFace_int8_demo.ipynb) +![打开 BLOOM-3B 的 Colab 演示](https://colab.research.google.com/assets/colab-badge.svg) +[](https://colab.research.google.com/github/huggingface/blog/blob/main/notebooks/HuggingFace_int8_demo.ipynb) ## 影响范围 @@ -402,21 +414,21 @@ pip install git+https://github.com/huggingface/transformers.git ### 较小模型的推理加速 -正如我们在[基准测试部分](#比原始模型更快吗?)中看到的那样,我们可以将小模型(<=6B 参数)的运行速度提高近 2 倍。然而,虽然推理速度对于像 BLOOM-176B 这样的大模型来说比较稳定,但对小模型而言仍有改进的余地。我们已经定位到了问题并有希望恢复与 FP16 相同的性能,甚至还可能会有小幅加速。我们将在接下来的几周内合入这些改进。 +正如我们在 [基准测试部分](# 比原始模型更快吗?) 中看到的那样,我们可以将小模型 (<=6B 参数) 的运行速度提高近 2 倍。然而,虽然推理速度对于像 BLOOM-176B 这样的大模型来说比较稳定,但对小模型而言仍有改进的余地。我们已经定位到了问题并有希望恢复与 FP16 相同的性能,甚至还可能会有小幅加速。我们将在接下来的几周内合入这些改进。 -### 支持 Kepler GPU(GTX 1080 等) +### 支持 Kepler GPU (GTX 1080 等) -虽然我们只支持过去四年的所有 GPU,但现实是某些旧的 GPU(如 GTX 1080)现在仍然被大量使用。虽然这些 GPU 没有 Int8 张量核心,但它们有 Int8 向量单元(一种“弱”张量核心)。因此,这些 GPU 也可以体验 Int8 加速。然而,它需要一个完全不同的软件栈来优化推理速度。虽然我们确实计划集成对 Kepler GPU 的支持以使 LLM.int8() 的应用更广泛,但由于其复杂性,实现这一目标需要一些时间。 +虽然我们只支持过去四年的所有 GPU,但现实是某些旧的 GPU (如 GTX 1080) 现在仍然被大量使用。虽然这些 GPU 没有 Int8 张量核心,但它们有 Int8 向量单元 (一种“弱”张量核心)。因此,这些 GPU 也可以体验 Int8 加速。然而,它需要一个完全不同的软件栈来优化推理速度。虽然我们确实计划集成对 Kepler GPU 的支持以使 LLM.int8() 的应用更广泛,但由于其复杂性,实现这一目标需要一些时间。 ### 在 Hub 上保存 8 位 checkpoint -目前 8 位模型无法直接加载被推送到 Hub 上的 8 位 checkpoint。这是因为模型计算所需的统计数据(还记得上文提到的 `weight.CB` 和 `weight.SCB` 吗?)目前没有存储在 state_dict 中,而且 state_dict 的设计也未考虑这一信息的存储,同时 `Linear8bitLt` 模块也还尚未支持该特性。 +目前 8 位模型无法直接加载被推送到 Hub 上的 8 位 checkpoint。这是因为模型计算所需的统计数据 (还记得上文提到的 `weight.CB` 和 `weight.SCB` 吗?) 目前没有存储在 state_dict 中,而且 state_dict 的设计也未考虑这一信息的存储,同时 `Linear8bitLt` 模块也还尚未支持该特性。 但我们认为保存它并将其推送到 Hub 可能有助于提高模型的可访问性。 ### CPU 的支持 -正如本文开头所述,CPU 设备不支持 8 位张量核。然而,我们能克服它吗?在 CPU 上运行此模块可以显著提高可用性和可访问性。[译者注:如上文,最新的 Intel CPU 已支持 8 位张量核] +正如本文开头所述,CPU 设备不支持 8 位张量核。然而,我们能克服它吗?在 CPU 上运行此模块可以显著提高可用性和可访问性。[译者注: 如上文,最新的 Intel CPU 已支持 8 位张量核] ### 扩展至其他模态 @@ -424,14 +436,10 @@ pip install git+https://github.com/huggingface/transformers.git ## 致谢 -非常感谢以下为提高文章的可读性以及在 `transformers` 中的集成过程做出贡献的人(按字母顺序列出): +非常感谢以下为提高文章的可读性以及在 `transformers` 中的集成过程做出贡献的人 (按字母顺序列出): JustHeuristic (Yozh), Michael Benayoun, Stas Bekman, Steven Liu, Sylvain Gugger, Tim Dettmers - -> 英文原文: https://huggingface.co/blog/hf-bitsandbytes-integration -> 原文作者:Younes Belkada,Tim Dettmers -> 译者: Matrix Yao (姚伟峰),英特尔深度学习工程师,工作方向为 transformer-family 模型在各模态数据上的应用及大规模模型的训练推理。 From 23977ac264840ac7d5d29afc25d4747ec0b74bcb Mon Sep 17 00:00:00 2001 From: Zhongdong Yang Date: Wed, 26 Apr 2023 18:15:09 +0800 Subject: [PATCH 09/55] Proofread: red-teaming.md --- zh/red-teaming.md | 65 ++++++++++++++++++++++------------------------- 1 file changed, 31 insertions(+), 34 deletions(-) diff --git a/zh/red-teaming.md b/zh/red-teaming.md index 1ef4f6bc47..969d011be3 100644 --- a/zh/red-teaming.md +++ b/zh/red-teaming.md @@ -1,43 +1,42 @@ --- -title: "红队( red-teaming )大语言模型" +title: "为大语言模型建立红队对抗" thumbnail: /blog/assets/red-teaming/thumbnail.png authors: - user: nazneen - user: natolambert - user: lewtun +translators: +- user: zhongdongy --- -# 红队( red-teaming )大语言模型 +# 为大语言模型建立红队对抗 -# 红队( red-teaming )大语言模型 -在巨量文本数据下训练的大语言模型非常擅长生成现实文本。但是,这些模型通常会显现出一些不良行为像泄露个人信息(比如社会保险号)和生成错误信息,偏置,仇恨或有毒内容。举个例子, 众所周知,GPT3 的早期版本就表现出性别歧视(如下图)与[仇恨穆斯林言论](https://dl.acm.org/doi/abs/10.1145/3461702.3462624)的情况。 +在巨量文本数据下训练的大语言模型非常擅长生成现实文本。但是,这些模型通常会显现出一些不良行为像泄露个人信息 (比如社会保险号) 和生成错误信息,偏置,仇恨或有毒内容。举个例子,众所周知,GPT3 的早期版本就表现出性别歧视 (如下图) 与 [仇恨穆斯林言论](https://dl.acm.org/doi/abs/10.1145/3461702.3462624) 的情况。

-一旦我们在使用大语言模型时发现了这种不良结果,我们就可以制定一些策略来远离它们,像[生成歧视者指导序列生成( GEDI )](https://arxiv.org/pdf/2009.06367.pdf)或[插入和播放语言模型( PPLM )](https://arxiv.org/pdf/1912.02164.pdf)都是用来指导 GPT3 生成的。以下是使用相同提示( Prompt )的示例,但使用 GEDI 控制 GPT3 生成。 +一旦我们在使用大语言模型时发现了这种不良结果,我们就可以制定一些策略来远离它们,像 [生成歧视者指导序列生成 (GEDI)](https://arxiv.org/pdf/2009.06367.pdf) 或 [插入和播放语言模型 (PPLM)](https://arxiv.org/pdf/1912.02164.pdf) 都是用来指导 GPT3 生成的。以下是使用相同提示 (Prompt) 的示例,但使用 GEDI 控制 GPT3 生成。

-即使是最近的 GPT3 版本,也会在提示( prompt )注入攻击时产生类似的令人反感的内容,这变成了[这篇博客](https://simonwillison.net/2022/Sep/12/prompt-injection/)中讨论的下游应用程序的安全问题。 +即使是最近的 GPT3 版本,也会在提示 (prompt) 注入攻击时产生类似的令人反感的内容,这变成了 [这篇博客](https://simonwillison.net/2022/Sep/12/prompt-injection/) 中讨论的下游应用程序的安全问题。 +**红队** _是一种用于引出模型不良行为漏洞的评估形式。_ 越狱是另一个红队术语,用来表示操控冲破大语言模型限制。在 2016 年发布的 [微软聊天机器人 Tay](https://blogs.microsoft.com/blog/2016/03/25/learning-tays-introduction/) 和最近的 [必应聊天机器人 Sydney](https://www.nytimes.com/2023/02/16/technology/bing-chatbot-transcript.html) 是真实世界中反应缺乏用红队攻击对基础 ML 模型进行评估而发生的灾难。红队攻击的最初想法起源于军队中对抗模拟和战争游戏。 -**红队** *是一种用于引出模型不良行为漏洞的评估形式。* 越狱是另一个红队术语,用来表示操控冲破大语言模型限制。在 2016 年发布的 [ 微软聊天机器人 Tay](https://blogs.microsoft.com/blog/2016/03/25/learning-tays-introduction/) 和最近的 [必应聊天机器人 Sydney](https://www.nytimes.com/2023/02/16/technology/bing-chatbot-transcript.html) 是真实世界中反应缺乏用红队攻击对基础 ML 模型进行评估而发生的灾难。红队攻击的最初想法起源于军队中对抗模拟和战争游戏。 +红队语言模型的目标是制作一个提示 (prompt),该提示会触发模型生成有害内容。红队和同样知名的评估语言模型 _对抗攻击_ 有同也有异。相似之处在于红队和对抗攻击目标相同,即“攻击”或“欺骗”模型,以生成在现实世界中不想要的内容。但是对抗攻击很难让人理解,举例来说,通过将字符串 “aaabbbcc” 前缀到每个提示中,它会恶化模型性能。[Wallace 等人 2019 年的论文](https://arxiv.org/abs/1908.07125) 讨论了对各种 NLP 分类和生成任务的许多攻击的例子。在另一方面,红队的提示看起来更正常,像自然语言的提示。 -红队语言模型的目标是制作一个提示( prompt ),该提示会触发模型生成有害内容。红队和同样知名的评估语言模型*对抗攻击*分享一些相似之处与差异。相似之处在于红队和对抗攻击共享相同的目标,即“攻击”或“欺骗”模型,以生成在现实世界中不想要的内容。但是对抗攻击很难让人理解,举例来说,通过将字符串 “aaabbbcc”前缀到每个提示中,它会恶化模型性能。[Wallace等人](https://arxiv.org/abs/1908.07125)讨论了对各种 NLP 分类和生成任务的许多攻击的例子。在另一方面,红队的提示看起来更正常,像自然语言的提示。 +红队攻击可以揭露模型的局限性,包括引起用户不适或者暴力、不合法的恶意内容。红队 (就像对抗攻击) 的输出通常会被用来训练模型去减少有害内容或远离不想要的内容。 +由于红队需要创造性地思考可能的模型失败,巨大的搜索空间会导致资源紧张。这里的一个临时方法是对大语言模型增加一个分类器去预测输入的提示 (prompt) 中是否含导致生成恶意内容的话题或短语,如果含有则生成相关回应。这种策略过于谨慎,极大的限制了模型并且时常导致模型产生回避。所以在模型有帮助 (遵循指令) 与无害 (尽可能少的产生有害内容) 之间存在一个紧张关系。红队在这时就显得非常有用了。 -红队可以揭露模型的局限性,包括引起用户不适或者暴力,不合法的恶意内容。 红队(就像对抗攻击) 的输出通常会被用来训练模型去减少有害内容或远离不想要的内容。 - -由于红队需要创造性地思考可能的模型失败,这就造成了对于巨大搜索空间的资源紧张。这里的一个临时方法是对大语言模型增加一个分类器去预测输入的提示( prompt )中是否含导致生成恶意内容的话题或短语,如果含有则生成相关回应。这种策略使得模型非常谨慎,但极大的限制了模型并且经常触发。所以在模型有帮助(遵循指令)与无害(尽可能少的产生有害内容)之间存在一个紧张关系。红队在这时就显得非常有用了。 - -红队攻击可以是人力循环或者正在测试另一个语言模型有害输出的语言模型。提出针对安全和对齐方式进行微调的模型(例如通过 RLHF 或 SFT )的模型提示,需要以*角色扮演攻击*的形式进行创造性的思考,其中大语言模型被指示表现为恶意角色在[ Ganguli et al., ‘22](https://arxiv.org/pdf/2209.07858.pdf)中。 用代码而不是自然语言指示模型同样也可以揭露模型的学习的一些偏置。就像如下例子。 +红队攻击可以是人力循环或者正在测试另一个语言模型有害输出的语言模型。提出针对安全和对齐方式进行微调的模型 (例如通过 RLHF 或 SFT) 的模型提示,需要以 _角色扮演攻击_ 的形式进行创造性的思考,其中大语言模型被指示表现为恶意角色在 [Ganguli 等 2022 年的论文](https://arxiv.org/pdf/2209.07858.pdf) 中。用代码而不是自然语言指示模型同样也可以揭露模型的学习的一些偏置。就像如下例子。

@@ -52,7 +51,7 @@ authors:

-查看[此](https://twitter.com/spiantado/status/1599462375887114240) 推文获取更多示例。 +查看 [此](https://twitter.com/spiantado/status/1599462375887114240) 推文获取更多示例。 这里列出了在 ChatGPT 刺激大语言模型进行越狱的列表。 @@ -60,37 +59,35 @@ authors:

-红队大语言模型依旧是一个新的研究领域但是上述提到的策略依旧可以在越狱中正常运行,并且有助于部署机器学习的产品。随着这些模型的涌现能力变得更加强大,开发可以不断适应的红队方法将变得至关重要。一些需要进行红队攻击的最佳实践包括模拟寻求权力行为的方案(例如:资源),说服人们(例如:伤害自己或他人),具有医学输出的代理(例如:通过 API 在线订购化学药品)。我们将这种可能性和物理后果的可能性称为*关键威胁情景*。 +红队大语言模型依旧是一个新的研究领域,但是上述提到的策略依旧可以在成功让这些模型“越狱”,并且有助于部署机器学习的产品。随着这些模型推陈出新、能力变强,开发可以不断适应的红队方法将变得至关重要。一些需要进行红队攻击的最佳实践包括模拟寻求权力行为的方案 (例如: 资源),说服人们 (例如: 伤害自己或他人),具有医学输出的代理 (例如: 通过 API 在线订购化学药品)。我们将这种可能性和物理后果的可能性称为 _关键威胁场景_。 -在评估大语言模型中恶意行为的警示中,我们不知道他们的能力,毕竟他们不是显示训练去展示这种能力的(涌现能力)。所以,实际了解大语言模型的能力的唯一方法是,当它们变得更强大,可以模拟所有可能导致竞争结果并在每种情况下评估模型的行为的所有可能场景。这意味着我们的模型的安全行为与我们的红队方法的强度相关联。 +在评估大语言模型中恶意行为的警示中,我们不知道它们的能力,毕竟它们不是故意训练去展示这种能力的 (涌现能力)。所以实际了解大语言模型的能力的唯一方法是,当它们变得更强大,可以模拟所有可能导致有恶意的结果,并在每种情况下评估模型的行为的所有可能场景。这意味着我们的模型的安全行为与我们的红队方法的强度相关联。 -针对这一持续的红队的挑战,这里在数据集和最佳实践(包括学术,工业和政府实体)上进行了多组织合作的激励措施。共享信息的结构化过程可以使较小的实体在模型发布前进行红队攻击,从而使整个用户体验更安全。 +针对这一持续的红队的挑战,这里在数据集和最佳实践 (包括学术、工业和政府实体) 上进行了多组织合作的激励措施。共享信息的结构化过程可以使较小的实体在模型发布前进行红队攻击,从而使整个用户体验更安全。 -**红队的开放数据集:** +**红队的开放数据集:** 1. Meta 的 [机器人对抗对话数据集](https://github.com/facebookresearch/ParlAI/tree/main/parlai/tasks/bot_adversarial_dialogue) -2. Anthropic 的[红队尝试](https://huggingface.co/datasets/Anthropic/hh-rlhf/tree/main/red-team-attempts) +2. Anthropic 的 [红队尝试](https://huggingface.co/datasets/Anthropic/hh-rlhf/tree/main/red-team-attempts) 3. AI2 的 [RealToxicityPrompts](https://huggingface.co/datasets/allenai/real-toxicity-prompts) -**在红队大语言模型找过去的工作** (在 [Anthropic's Ganguli et al. 2022](https://arxiv.org/abs/2209.07858) 和 [Perez et al. 2022](https://arxiv.org/abs/2202.03286) 两篇文章中) +**从过去的工作中寻找红队大语言模型相关的努力** (在 [Anthropic’s Ganguli et al. 2022](https://arxiv.org/abs/2209.07858) 和 [Perez et al. 2022](https://arxiv.org/abs/2202.03286) 两篇文章中) -1. 用有帮助的,忠实的,无害的行为在红队攻击中进行少量提示学习并*不*比单纯的语言模型困难。 -2. 攻击成功率与缩放模型大小没有明确的关系,除了 RLHF 模型在缩放时更难进行红队攻击 。 +1. 用有帮助的,忠实的,无害的行为在红队攻击中进行少量提示学习并 _不_ 比单纯的语言模型困难。 +2. 攻击成功率与缩放模型大小没有明确的关系,除了 RLHF 模型在缩放时更难进行红队攻击。 3. 模型可能会通过回避表现的无害,在有帮助和无害之间存在权衡。 -4. 人类在构成成功攻击方面保持总体一致性。 -5. 成功率的分布在危害类别的类别中有所不同,而非暴力的成功率具有更高的成功率。 -6. 众包红色团队会导致模板 Y 提示(例如:“给出一个以 X 开头的平均单词”),使其变得多余。 +4. 人类在判断是否达成一次成功攻击的观点难以达成一致。 +5. 成功率的分布在不同危害类别中有所差异,其中非暴力提示的成功率更高。 +6. 众包 (crowdsourcing) 红队会产生 y-模板 提示 (例如: “给出一个以 X 开头的恶毒词语”),使其变得多余。 + **未来方向:** 1. 没有用于代码生成的开源红队数据集,它试图通过代码越狱模型,例如生成实现 DDOS 或后门攻击的程序。 -2. 评估回避和有帮助之间的权衡。 -3. 为关键威胁场景设计和实施 红队大语言模型的策略。 -4. 红队可能是资源密集的,无论是计算还是人力资源,因此将从共享策略,开源数据集以及可能的合作中获得更大的成功机会,从而受益。 - -这些局限性和未来的方向清楚地表明,红队是现代大语言模型工作流程中未经探索和关键的组成部分。这篇文章是对大语言模型研究人员和 Huggingface 开发人员社区的号召,以协作这些努力,实现安全和友好的世界:) - +2. 为关键威胁场景设计和实施大语言模型红队方案的策略。 +3. 红队可能是资源密集的,无论是计算还是人力资源,因此将从共享策略,开源数据集以及可能的合作中获得更大的成功机会,从而受益。 +4. 评估回避和有帮助之间的权衡。 +5. 综合比较根据上述方案的利弊,找到红队方案的最优解集 (类似于 Anthropic 的 Constitutional AI)。 -*致谢:* 感谢 [Yacine Jernite](https://huggingface.co/yjernite) 的在正确使用本篇博文中术语的有用建议。 +这些局限性和未来的方向清楚地表明,红队是现代大语言模型工作流程中亟待探索又至关重要的组成部分。这篇文章旨在号召大语言模型研究人员和 Hugging Face 开发者社区,希望大家在这些方面保持协作,共建安全、友好的世界:) -> 原文:https://huggingface.co/blog/red-teaming -> 译者:innovation64(李洋) +_致谢:_ 感谢 [Yacine Jernite](https://huggingface.co/yjernite) 关于在这篇博文中正确使用术语的实用建议。 From caee1ffbf0aa526dc768842ae28dd41700bdccba Mon Sep 17 00:00:00 2001 From: Zhongdong Yang Date: Thu, 27 Apr 2023 17:14:42 +0800 Subject: [PATCH 10/55] Update: add red-teaming to zh/_blog.yml --- zh/_blog.yml | 15 ++++++++++++++- zh/red-teaming.md | 2 ++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/zh/_blog.yml b/zh/_blog.yml index 677ee899c3..5dced23be7 100644 --- a/zh/_blog.yml +++ b/zh/_blog.yml @@ -323,6 +323,19 @@ - cv - multimodal +- local: red-teaming + title: "Red-Teaming Large Language Models" + author: nazneen + thumbnail: /blog/assets/red-teaming/thumbnail.png + date: February 22, 2023 + tags: + - llms + - rlhf + - red-teaming + - chatgpt + - safety + - alignment + - local: controlnet title: "使用 🧨 Diffusers 实现 ControlNet 高速推理" author: sayakpaul @@ -418,4 +431,4 @@ date: April 24, 2023 tags: - partnerships - - community + - community \ No newline at end of file diff --git a/zh/red-teaming.md b/zh/red-teaming.md index 969d011be3..fceaac1d17 100644 --- a/zh/red-teaming.md +++ b/zh/red-teaming.md @@ -6,7 +6,9 @@ authors: - user: natolambert - user: lewtun translators: +- user: innovation64 - user: zhongdongy + proofreader: true --- # 为大语言模型建立红队对抗 From cd991de6d7af06ee6e40925a53c6ad5447029738 Mon Sep 17 00:00:00 2001 From: Luke Cheng <2258420+chenglu@users.noreply.github.com> Date: Thu, 27 Apr 2023 17:23:36 +0800 Subject: [PATCH 11/55] Update _blog.yml --- zh/_blog.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh/_blog.yml b/zh/_blog.yml index 5dced23be7..1d8c4fd280 100644 --- a/zh/_blog.yml +++ b/zh/_blog.yml @@ -324,7 +324,7 @@ - multimodal - local: red-teaming - title: "Red-Teaming Large Language Models" + title: "为大语言模型建立红队对抗" author: nazneen thumbnail: /blog/assets/red-teaming/thumbnail.png date: February 22, 2023 @@ -431,4 +431,4 @@ date: April 24, 2023 tags: - partnerships - - community \ No newline at end of file + - community From 1d7dd33fa7d47c5979284a58f1f0e29ba98f69dd Mon Sep 17 00:00:00 2001 From: Zhongdong Yang Date: Thu, 27 Apr 2023 17:14:42 +0800 Subject: [PATCH 12/55] Update: add red-teaming to zh/_blog.yml Fix: red-teaming title in zh/_blog.yml --- zh/_blog.yml | 15 ++++++++++++++- zh/red-teaming.md | 2 ++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/zh/_blog.yml b/zh/_blog.yml index 677ee899c3..2faac7705a 100644 --- a/zh/_blog.yml +++ b/zh/_blog.yml @@ -323,6 +323,19 @@ - cv - multimodal +- local: red-teaming + title: "为大语言模型建立红队对抗" + author: nazneen + thumbnail: /blog/assets/red-teaming/thumbnail.png + date: February 22, 2023 + tags: + - llms + - rlhf + - red-teaming + - chatgpt + - safety + - alignment + - local: controlnet title: "使用 🧨 Diffusers 实现 ControlNet 高速推理" author: sayakpaul @@ -418,4 +431,4 @@ date: April 24, 2023 tags: - partnerships - - community + - community \ No newline at end of file diff --git a/zh/red-teaming.md b/zh/red-teaming.md index 969d011be3..fceaac1d17 100644 --- a/zh/red-teaming.md +++ b/zh/red-teaming.md @@ -6,7 +6,9 @@ authors: - user: natolambert - user: lewtun translators: +- user: innovation64 - user: zhongdongy + proofreader: true --- # 为大语言模型建立红队对抗 From 7010fd3b77279719051fb5c6f98e725c35f352eb Mon Sep 17 00:00:00 2001 From: Zhongdong Yang Date: Fri, 28 Apr 2023 11:51:22 +0800 Subject: [PATCH 13/55] Fix: red-teaming PPLM translation --- zh/red-teaming.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh/red-teaming.md b/zh/red-teaming.md index fceaac1d17..67704aba13 100644 --- a/zh/red-teaming.md +++ b/zh/red-teaming.md @@ -22,7 +22,7 @@ translators:

-一旦我们在使用大语言模型时发现了这种不良结果,我们就可以制定一些策略来远离它们,像 [生成歧视者指导序列生成 (GEDI)](https://arxiv.org/pdf/2009.06367.pdf) 或 [插入和播放语言模型 (PPLM)](https://arxiv.org/pdf/1912.02164.pdf) 都是用来指导 GPT3 生成的。以下是使用相同提示 (Prompt) 的示例,但使用 GEDI 控制 GPT3 生成。 +一旦我们在使用大语言模型时发现了这种不良结果,我们就可以制定一些策略来远离它们,像 [生成歧视者指导序列生成 (GEDI)](https://arxiv.org/pdf/2009.06367.pdf) 或 [即插即用语言模型 (PPLM)](https://arxiv.org/pdf/1912.02164.pdf) 都是用来指导 GPT3 生成的。以下是使用相同提示 (Prompt) 的示例,但使用 GEDI 控制 GPT3 生成。

From 41607dd88989c1f7cda01e80ae9a13f19af0f65a Mon Sep 17 00:00:00 2001 From: "Yao, Matrix" Date: Mon, 1 May 2023 15:18:56 -0400 Subject: [PATCH 14/55] deep-learning-with-proteins cn done Signed-off-by: Yao, Matrix --- zh/_blog.yml | 11 ++- zh/deep-learning-with-proteins.md | 121 ++++++++++++++++++++++++++++++ 2 files changed, 131 insertions(+), 1 deletion(-) create mode 100644 zh/deep-learning-with-proteins.md diff --git a/zh/_blog.yml b/zh/_blog.yml index 2faac7705a..5a507e12c5 100644 --- a/zh/_blog.yml +++ b/zh/_blog.yml @@ -431,4 +431,13 @@ date: April 24, 2023 tags: - partnerships - - community \ No newline at end of file + - community + +- local: deep-learning-with-proteins + title: "蛋白质深度学习" + author: rocketknight1 + thumbnail: /blog/assets/119_deep_learning_with_proteins/folding_example.png + date: December 2, 2022 + tags: + - guide + - fine-tuning diff --git a/zh/deep-learning-with-proteins.md b/zh/deep-learning-with-proteins.md new file mode 100644 index 0000000000..f3021781f6 --- /dev/null +++ b/zh/deep-learning-with-proteins.md @@ -0,0 +1,121 @@ +--- +title: "蛋白质深度学习" +thumbnail: /blog/assets/119_deep_learning_with_proteins/folding_example.png +authors: +- user: rocketknight1 +translators: +- user: MatrixYao +--- + +# 蛋白质深度学习 + +本文主要面向两类目标读者:一类是想使用机器学习的生物学家,一类是想进入生物学领域的机器学习研究者。如果你不熟悉生物学或机器学习,仍然欢迎你阅读本文,但有时你可能会觉得有点读不太懂!如果你已经熟悉这两者,那么你可能根本不需要本文 —— 你可以直接跳到我们的示例 notebook 以查看这些模型的实际应用: + +- 微调蛋白质语言模型([PyTorch](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_language_modeling.ipynb),[TensorFlow](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_language_modeling-tf.ipynb)) +- 使用 ESMFold 进行蛋白质折叠([PyTorch](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_folding.ipynb),因为 `OpenFold` 仅支持 PyTorch,所以目前仅支持 PyTorch) + +## 面向生物学家的科普:语言模型是什么鬼? + +用于处理蛋白质的模型深受 BERT 和 GPT 等大语言模型的启发。因此,为了了解这些模型是如何工作的,我们要回到 2016 年左右,那时大语言模型还没有出现,特朗普还没有当选,脱欧还没有发生,深度学习(Deep Learning,DL)还是个日日新的超级新星...... DL 成功的关键在于它使用人工神经网络来学习数据中的复杂模式。不过,深度学习有一个关键问题 —— 它需要**大量**的数据才能正常工作,而在很多任务中,根本没那么多数据。 + +假设你想训练一个 DL 模型,输入一个英语句子,并判断它是否合乎语法。所以你准备了训练数据,格式如下: + +| Text | Label | +| --- | --- | +| The judge told the jurors to think carefully. | Correct | +| The judge told that the jurors to think carefully. | Incorrect | +| … | … | + +理论上,这个任务在当时是完全可行的 —— 如果你将如上格式的训练数据输入深度学习模型,它就可以学着去预测新句子是否合乎语法。但在实践中,它的效果并不怎么好,因为在 2016 年,大多数人都从一个随机初始化的新模型开始他们的每项任务。这意味着**模型必须仅从给定的训练数据中学习它们需要知道的一切!** + +我们来理解一下这到底有多难,假设你是一个机器学习模型,我提供给你一些训练数据用于完成我希望你学习的任务。假如我给你的训练数据如下: + +| Text | Label | +| --- | --- | +| Is í an stiúrthóir is fearr ar domhan! | 1 | +| Is fuath liom an scannán seo. | 0 | +| Scannán den scoth ab ea é. | 1 | +| D’fhág mé an phictiúrlann tar éis fiche nóiméad! | 0 | + +在这里,我选择了一种我希望你从未曾见过的语言,所以我猜你已经可能开始对你是否能学会这个任务不太自信了。也许在数百或数千个样本之后,你可能会开始注意到输入中一些重复出现的单词或模式,然后你可能开始能够作出比随机机猜测更好的判断,但即使这样,一旦出现新单词或之前没见过的措辞马上就能够难住你,让你猜错。无独有偶,这也是 DL 模型当时的表现! + +现在我们试试相同的任务,但这次使用英语: + +| Text | Label | +| --- | --- | +| She’s the best director in the world! | 1 | +| I hate this movie. | 0 | +| It was an absolutely excellent film. | 1 | +| I left the cinema after twenty minutes! | 0 | + +现在事情变得简单了 —— 任务只是预测电影评论是正面(1)还是负面(0)的。仅使用两个正例和两个反例,你就能以接近 100% 的准确率完成这项任务,因为**你原本就具备大量的英语词汇和语法知识,并具有电影和情感相关表达的文化背景。** 如果没有这些知识,事情就会变得更像第一个任务 —— 你需要阅读大量的例子才能开始发现输入中的表达模式,即使你花时间研究了数十万个的例子你的猜测仍然远不如在英语任务中只有四个例子准确。 + +### 关键突破:迁移学习 + +在机器学习中,我们把这种将先验知识迁移到新任务的概念称为“**迁移学习**”。在 DL 上使用迁移学习是 2016 年左右该领域的一个主要目标。预训练词向量之类的东西(非常有趣,但超出了本文的范围!)在 2016 年确实存在并且允许迁移一些知识到新的模型,但是这种知识迁移仍然比较肤浅,模型仍然需要大量的训练数据才能很好地工作。 + +这种情况一直持续到 2018 年。2018 年,两篇巨著横空出世,第一篇引入了 [ULMFiT](https://arxiv.org/abs/1801.06146) 模型,第二篇引入了 [BERT](https://arxiv.org/abs/1810.04805) 模型。这两篇论文是让自然语言迁移学习真正发挥作用的开创性论文,尤其是 BERT 标志着预训练大语言模型时代的发轫。两篇论文共同使用了一个技巧,那就是它们利用了深度学习中人工神经网络的固有性质 —— 先花较长的时间在有着丰富训练数据的文本任务上训练神经网络,然后将整个神经网络复制到新任务中,仅用新任务的数据更新或重新训练与网络输出相对应的少数神经元。 + +![迁移学习](/blog/assets/119_deep_learning_with_proteins/transfer_learning.png) + +*上图来自 [ULMFiT 论文](https://arxiv.org/abs/1801.06146),它展示了在三个独立的任务上使用迁移学习与从头开始训练模型相比带来的巨大的性能提升。在许多情况下,使用迁移学习的效果相当于拥有超过 100 倍的训练数据。不要忘记这是 2018 年发布的 —— 现代的大语言模型可以做得更好!* + +这样做的原因是,在解决任何重要任务的过程中,神经网络学习到很多输入数据的结构性知识 —— 如对于视觉神经网络,输入的是原始像素,模型学习到了如何识别直线、曲线和边缘;对于文本神经网络,输入的是原始文本,模型学习到了有关语法结构的细节。而这些信息并不特定于某些任务。—— 迁移学习起作用的关键原因是**解决任务需要知道的很多信息都不是特定于该任务的!** 要对电影评论进行分类,你不需要了解很多关于电影评论的知识,但你需要大量的英语和文化背景知识。通过选择训练数据丰富的任务,我们可以让神经网络学习此类“领域知识”,然后将其应用于我们关心的新任务,而在这些新任务中训练数据可能更难获取。 + +至此,希望你已经了解了什么是迁移学习,并且大语言模型是一个经过大量文本数据训练而得的大型神经网络,这使其成为迁移到新任务的主要备选方案。我们将在下面看到相同的技术如何应用​​于蛋白质,但首先我需要为另一半观众写一篇介绍。如果你已经熟悉这方面的知识,你可以随时跳过下一部分! + + +## 面向机器学习研究者的科普:蛋白质是什么鬼? + +简而言之,蛋白质可以做很多事情。有些蛋白质是**酶** - 它们充当化学反应的催化剂。当你的身体将营养物质转化为能量时,从食物到肌肉运动的每一步都由一种酶催化。一些蛋白质是**结构性的**,它们的功能是提供稳定性以及塑形,例如结缔组织的蛋白质。如果你看过化妆品广告,你可能看到过**胶原蛋白**、**弹性蛋白**以及**角蛋白**,这些是构成我们皮肤和头发结构的蛋白质。 + +其它蛋白质对健康和疾病至关重要 —— 每个人可能都记得有关 COVID-19 病毒的 **spike 蛋白**的无数新闻报道。 COVID spike 蛋白与人类细胞表面一种名为 ACE2 的蛋白质结合,使其能够进入细胞并传递病毒 RNA 的有效载荷。由于这种相互作用对感染至关重要,因此在 COVID 大流行期间对这些蛋白质及其相互作用进行建模是一个热门研究焦点。 + +蛋白质由多个**氨基酸组成**。氨基酸是相对简单的分子,它们都具有相同的分子结构,而该结构的化学性质允许氨基酸融合在一起,从而使单个分子可以成为一条长链。这里关键是要知道氨基酸种类不多 —— 只有 20 种标准氨基酸,某些生物体上可能还有一些其他非标准的氨基酸,但总量不多。导致蛋白质巨大多样性的原因是**这些氨基酸可以按任何顺序组合**,而由此产生的蛋白质链可以具有截然不同的形状和功能,因为链的不同部分会粘连以及彼此折叠。与文本类比一下:英语只有 26 个字母,但想想你可以用这 26 个字母的组合写出各种单词。 + +事实上,由于氨基酸的数量很少,生物学家可以为每一种氨基酸分配一个不同的字母。这意味着你可以像编写文本字符串一样编写蛋白质!例如,假设一种蛋白质链中有这些氨基酸:甲硫氨酸、丙氨酸和组氨酸。这些氨基酸的 [对应的字母](https://en.wikipedia.org/wiki/Amino_acid#Table_of_standard_amino_acid_abbreviations_and_properties) 是 M、A 和 H,因此我们可以将该链写为 “MAH” 。不过,大多数蛋白质含有数百甚至数千个氨基酸,而不仅仅是三个!! + +![蛋白质结构](/blog/assets/119_deep_learning_with_proteins/protein_structure.png) + +*上图显示了一种蛋白质的两种表示形式。所有氨基酸都包含碳 - 碳 - 氮(C-C-N)序列。当氨基酸融合到蛋白质中时,这种重复模式将贯穿始终,我们称为蛋白质的 “骨架”。然而,氨基酸的不同之处在于它们的 “侧链”,侧链指的是附着在 C-C-N 主链上的原子。图的下半部分有标记为 R1、R2 和 R3 的侧链,它们可以是任何氨基酸。在图的上半部分,中央氨基酸有一个 CH3 侧链 - 那么该氨基酸即为**丙氨酸,由字母 A 表示**([图片来源](https://commons.wikimedia.org/wiki/File:Peptide-Figure-Revised.png))。* + +尽管我们可以将其写成文本字符串,但蛋白质实际上并不是一种 “语言”,至少不是诺姆 - 乔姆斯基认可的任何一种语言。但它们确实有一些类似语言的特征,从机器学习的角度来看,它们是一个与文本非常相似的领域:只有一部分字符串是有“意义”的。随机文本是垃圾,随机蛋白质只是一个无形状的斑点。 + +此外,如果你只是孤立地考虑蛋白质的一部分,信息就会丢失,就像当你只阅读从较长文本中提取的某个句子时,信息也会丢失。蛋白质的一个区域可能只有在其它部分存在的情况下才会呈现其自然形状,因为需要其它部分帮助稳定和矫正其形状!这意味着被全局自注意力很好地捕捉到的那种长程作用力对于正确建模蛋白质非常重要。 + +至此,希望你对蛋白质是什么以及为什么生物学家如此关心它们有一个基本的概念 —— 尽管氨基酸“字母表” 、很小,但它们具有广泛的结构和功能多样性。因此如果能仅通过观察氨基酸的原始“字符串”来理解和预测蛋白质的结构和功能对研究是非常有价值的。 + +## 联袂 - 蛋白质机器学习 + +现在我们已经了解了使用语言模型进行迁移学习是如何工作的,同时我们还了解了什么是蛋白质。一旦你有了这些背景知识,下一步就不难了 —— 我们可以在蛋白质上应用相同的迁移学习思想!我们不是在涉及英文文本的任务上预先训练模型,而是在输入是蛋白质且有大量可用训练数据的任务上训练它。一旦我们这样做了,我们的模型就有希望学到很多关于蛋白质结构的知识,就像语言模型学到了很多关于语言结构的知识一样。这使得预训练的蛋白质模型有希望可以迁移到任何其它基于蛋白质的任务! + +生物学家想在哪些任务上用机器学习训练蛋白质模型?最著名的蛋白质建模任务是**蛋白质折叠**。该任务是,给定像 “MLKNV……” 这样的氨基酸链,预测蛋白质最终会折叠成什么形状。这是一项极其重要的任务,因为准确预测蛋白质的形状和结构可以深入了解蛋白质作用和机理。 + +早在现代机器学习出现之前,人们就一直在研究这个问题。最早的一些大规模分布式计算项目,如 Folding@Home,以超精的空间和时间分辨率使用原子级模拟来模拟蛋白质折叠。甚至还存在一个专门的*蛋白质晶体学*领域,该领域的研究者使用 X 射线衍射来观察从活细胞中分离出的蛋白质的结构。 + +然而,与许多其他领域一样,深度学习的到来改变了一切。 AlphaFold,尤其是 AlphaFold2 使用了 transformer 结构的深度学习模型,并在模型上增加了针对蛋白质数据的处理,在仅从原始氨基酸序列预测新型蛋白质结构方面取得了出色的结果。如果你对蛋白质折叠感兴趣,我们强烈建议你看看[我们的 ESMFold notebook](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_folding.ipynb) —— ESMFold 是一种类似于 AlphaFold2 的新模型,但它是一种更“纯”的深度学习模型,不需要任何外部数据库或搜索操作即可运行。因此,设置过程不像AlphaFold2 那样痛苦,模型运行得更快,同时仍保持出色的准确性。 + + +![蛋白质折叠示例](/blog/assets/119_deep_learning_with_proteins/folding_example.png) + +*上图为多杀巴斯德氏菌的**氨基葡萄糖 - 6 - 磷酸脱氨酶**同源二聚体的预测结构。该结构和可视化图是由上文中的 ESMFold notebook 在几秒钟内生成的。深蓝色表示结构置信度最高的区域。* + +不过,蛋白质折叠并不是我们唯一感兴趣的任务!生物学家可能想做更多的蛋白质分类任务 —— 比如他们想预测蛋白质将在细胞的哪个部分起作用,或者在蛋白质产生后其中哪些氨基酸会被修改。在机器学习的语言中,当你想对整个蛋白质进行分类(例如,预测其亚细胞定位)时,这类任务可被建模为**序列分类(sequence classification)**;当你想对每个氨基酸进行分类时(例如,预测哪些氨基酸会被翻译后修饰(Post-translational modification,PTM)),这类任务可被建模为**词分类(token classification)**。 + +不过,关键的一点是,尽管蛋白质与语言非常不同,但它们可以通过几乎完全相同的机器学习方法来处理 —— 在一个大的蛋白质序列数据库上进行大规模预训练,然后通过**迁移学习**迁移到其它训练数据可能少得多的任务。事实上,在某些方面它甚至比像 BERT 这样的大型语言模型还要简单,因为不需要复杂的分词和词解析 —— 蛋白质没有分词,因此最简单的方法是直接将每个氨基酸转换成单词。 + +## 听起来很酷,但从何下手? + +如果你已经熟悉深度学习,那么你会发现微调蛋白质模型的代码看起来与微调语言模型的代码非常相似。我们提供了 [PyTorch](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_language_modeling.ipynb) 和 [TensorFlow](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_language_modeling-tf.ipynb) 两个示例供你起步。你可以从像 [UniProt](https://www.uniprot.org/) 这样的开放蛋白质数据库中获取大量标注数据,UniProt 除了提供 REST API 接口以供访问数据外还提供了一个漂亮的 Web 界面。你的主要困难是找到有趣的研究方向进行探索,这我就爱莫能助了 —— 但我相信有很多生物学家愿意与你合作! + +反之,如果你是一名生物学家,你可能有很多想法想尝试,但可能对深入研究机器学习代码有点害怕。别怕!我们精心设计了示例([PyTorch](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_language_modeling.ipynb)、[TensorFlow](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_language_modeling-tf.ipynb)),这些示例中的数据加载部分与其他部分完全独立。这意味着如果你有一个**序列分类**或**词分类**任务,你只需要构建一个包含蛋白质序列及其应对标签的数据集,然后把我们的数据加载代码换成你自己写的用于加载你的数据集的代码就好了。 + +尽管示例中使用 [ESM-2](https://www.biorxiv.org/content/10.1101/2022.07.20.500902v1) 作为基础预训练模型,因为它在当前是最先进的。该领域的研究人员可能还熟悉其他模型,如 Rost 实验室的 [ProtBERT](https://huggingface.co/Rostlab/prot_bert)([论文链接](https://www.biorxiv.org/content/10.1101/2020.07.12.199554v3)) 是同类中最早的模型之一,并且引起了生物信息学界的极大兴趣。只需将示例代码中的 checkpoint 路径从 `facebook/esm2xxx` 改为 `Rostlab/prot_bert` 之类的,示例中的代码就可以使用 ProtBERT 模型了。 + +## 结语 + +深度学习和生物学的交叉领域将在未来几年成为一个非常活跃和成果丰硕的领域。然而,使得深度学习发展如此迅速的原因之一是人们可以快速重现结果并调整新模型以供自己使用。本着这种精神,如果你训练了一个你认为对社区有用的模型,请分享它!上面那些notebook 中都包含将模型上传到 Hub 的代码,其他研究人员可以在 Hub 上自由访问和构建它们 - 除了对该领域的好处之外,这也可以让你的论文被更多人见到和引用。你甚至可以使用 [Spaces](https://huggingface.co/docs/hub/spaces-overview) 做一个实时的网络演示版,以便其他研究人员可以输入蛋白质序列并免费获得结果,而无需编写一行代码。祝你好运,愿审稿人对你青眼相加! + +> 英文原文: https://huggingface.co/blog/deep-learning-with-proteins +> 原文作者:Matthew Carrigan +> 译者: Matrix Yao (姚伟峰),英特尔深度学习工程师,工作方向为 transformer-family 模型在各模态数据上的应用及大规模模型的训练推理。 From 0163b109b7fe839309c12e95311d7cf78af1cca2 Mon Sep 17 00:00:00 2001 From: Zhongdong Yang Date: Thu, 4 May 2023 14:46:52 +0800 Subject: [PATCH 15/55] Add: stackllama.md --- zh/_blog.yml | 10 ++ zh/stackllama.md | 296 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 306 insertions(+) create mode 100644 zh/stackllama.md diff --git a/zh/_blog.yml b/zh/_blog.yml index 2faac7705a..8b5b76cd52 100644 --- a/zh/_blog.yml +++ b/zh/_blog.yml @@ -414,6 +414,16 @@ tags: - ethics +- local: stackllama + title: "“StackLLaMA”: 用 RLHF 训练 LLaMA 的手把手教程" + author: edbeeching + thumbnail: /blog/assets/138_stackllama/thumbnail.png + date: April 5, 2023 + tags: + - rl + - rlhf + - nlp + - local: graphml-classification title: "使用 Transformers 进行图分类" author: clefourrier diff --git a/zh/stackllama.md b/zh/stackllama.md new file mode 100644 index 0000000000..37f85c0737 --- /dev/null +++ b/zh/stackllama.md @@ -0,0 +1,296 @@ +--- +title: "“StackLLaMA”: 用 RLHF 训练 LLaMA 的手把手教程" +thumbnail: /blog/assets/138_stackllama/thumbnail.png +authors: +- user: edbeeching +- user: kashif +- user: ybelkada +- user: lewtun +- user: lvwerra +- user: nazneen +- user: natolambert +translators: +- user: Vermillion-Qi +- user: zhongdongy +--- + +# “StackLLaMA”: 用 RLHF 训练 LLaMA 的手把手教程 + + + + +如 [ChatGPT](https://openai.com/blog/chatgpt),[GPT-4](https://openai.com/research/gpt-4),[Claude](https://www.anthropic.com/index/introducing-claude)语言模型 之强大,因为它们采用了 **基于人类反馈的强化学习** (Reinforcement Learning from Human Feedback, RLHF) 来使之更符合我们的使用场景。 + +本博客旨在展示用 RLHF 训练一个 [LLaMA](https://ai.facebook.com/blog/large-language-model-llama-meta-ai) 模型,以回答 [Stack Exchange](https://stackexchange.com/) 上的问题。具体而言,包含以下几个方面: + +- 有监督的微调 (Supervised Fine-tuning,SFT)。 +- 奖励 / 偏好建模 (Reward / preference modeling,RM)。 +- 基于人类反馈的强化学习 (RLHF)。 + +![](https://man-archives.oss-cn-hangzhou.aliyuncs.com/goofan/202304122037176.png) + +摘自 InstructGPT 论文,Ouyang, Long, et al. “Training language models to follow instructions with human feedback.” arXiv preprint arXiv:2203.02155 (2022). + +结合了上述方法,我们发布了 StackLLaMA 模型,该模型在 [🤗 Hub](https://huggingface.co/trl-lib/llama-se-rl-peft) 上开源 (访问链接查看 [Meta 的原始 LLaMA](https://ai.facebook.com/blog/large-language-model-llama-meta-ai/) ),整个 [训练的流程](https://huggingface.co/docs/trl/index) 已经集成到了 Hugging Face TRL 库中 。你可以通过下面的 [demo](https://huggingface.co/spaces/trl-lib/stack-llama) 来尝试该模型。 + +## LLaMA 模型 + +在实践 RLHF 时,选取一个合适的模型很重要: RLHF 只是一个让模型满足我们交互形式的需求的微调过程 。所以我们选取了最近上线的 [LLaMA](https://arxiv.org/abs/2302.13971) 模型。LLaMA 模型是 Mata AI 最近推出的大语言模型。其参数量大小涵盖 7B 到 65B,以及训练在 1T 和 1.4T 的 token 上,这让其很实用。我们这里采用 7B 的模型。(请填写 Meta AI 的这份 [表单](https://docs.google.com/forms/d/e/1FAIpQLSfqNECQnMkycAp2jP4Z9TFX0cGR4uf7b_fBxjY_OjhJILlKGA/viewform) 来下载模型)。 + +## Stack Exchange 数据集 + +收集人类的反馈数据集是很复杂且昂贵的劳动。为了做到这个,并且还能保证模型的有效性,我们使用 [StackExchange 数据集](https://huggingface.co/datasets/HuggingFaceH4/stack-exchange-preferences)。该数据集涵盖了 StackExchange 平台上的问题和答案 (包含 StackOverflow 的编程等话题下的)。这很适合我们的实践,因为其包含了每个答案的赞和踩的数量。 + +我们按照 [Askell et al. 2021](https://arxiv.org/abs/2112.00861) 中的方法,给每个答案赋分: + +``` +score = log2 (1 + upvotes) rounded to the nearest integer, plus 1 if the questioner accepted the answer (we assign a score of −1 if the number of upvotes is negative). +``` + +对奖励模型,我们将看到每个问题总是需要两个答案对比。有些问题有很多答案,可以产生很多对,我们只取十个以限制每个问题的数据量。最后,我们把格式从 HTML 转化到 Markdown 以提高输出的可读性。你可以看到数据集和处理过程的 [笔记本]。(https://huggingface.co/datasets/lvwerra/stack-exchange-paired。) + +## 高效训练策略 + +即使是最小 LLaMA 模型的训练,都需要大量内存。估算一下: 以 bf16 半精度,每个参数用 2 个字节 (以 fp32 精度四字节的标准),训练时需要 8 个字节 (例如 Adam 优化器,参见 Tramsformers 的 [性能文档](https://huggingface.co/docs/transformers/perf_train_gpu_one#optimizer))。可见 7B 参数量的模型将用 (2+8)* 7B = 70 GB 的内存,并且还可能需要更多用于计算诸如注意力分数的中间值。所以很难在一张 80GB 显存的 A100 上训练。或许你可以使用一些技巧,比如用更高效的半精度训练的优化器来压缩内存,但溢出是迟早的。 + +另外的可能是 **参数高效的微调**(Parameter-Efficient Fine-Tuning, PEFT) 技术,比如 [`peft`](https://github.com/huggingface/peft) 库,它可以对使用 8-bit 加载的模型做 **低秩优化**(Low-Rank Adaptation,LoRA)。 + +![](https://man-archives.oss-cn-hangzhou.aliyuncs.com/goofan/202304122104084.gif) + +线性层的低秩优化: 额外参数 (橙色) 被加在 Frozen 层 (蓝色),编码后的隐藏状态与 Frozen 层的隐藏状态叠加在一起。 + +以 8bit 加载模型会大幅降低内存占用,因为每个参数只要一字节 (比如 7B LLaMA 是 7GB 内存)。与直接训练原始模型不同,LoRA 在特定层 (一般是注意力层) 添加少量新参数,大幅降低了需要训练的参数。 + +此情此景,一个衡量标准是 1B 的参数在整个微调过程中占 ~1.2-1.4GB (和具体 batch size 及序列长度有关)。在参考的博客中具体讨论了,这使得低成本下微调较大参数规模的模型成为可能 (比如在一张 A100 上微调 50-60B 的参数)。 + +这些技术能让微调大模型的任务,在消费级设备和 Google Colab 上执行。这里提供一些值得关注的演示 demo: `facebook/opt-6.7b` (在 float16 精度下 13GB) 和 `openai/whisper-large` +跑在 Google Colab (15GB 显存) 上。欲了解 `peft` 的使用,请参见 [github 仓库](https://github.com/huggingface/peft) 或者之前的 [博客介绍](https://huggingface.co/blog/trl-peft): 在客户端训练 20B 参数量的模型。 + +现在我们能在一张 GPU 上微调很大的模型了,但训练还是会很慢。此时最简单的策略便是并行化: 把一个训练同时放到不同的 GPU 上,各 GPU 接受不同的 batch。这样我们可以并行执行前向传播和后向传播,通过增加 GPU 的数量实现并行能力提升。 + +![](https://man-archives.oss-cn-hangzhou.aliyuncs.com/goofan/202304122114399.png) + +我们可以选用 `trainsformers.Trainer` 或 `accelerate`,因为它们都支持无代码变更进行数据并行化。只需注意调用 `torchrun` 或者 `accelerate launch` 脚本时的参数即可实现。比如以下就是在一个 8 显卡的机器上分别用 `accelerate launch` 和 `torchrun`的方法: + +```bash +accelerate launch --multi_gpu --num_machines 1 --num_processes 8 my_accelerate_script.py +torchrun --nnodes 1 --nproc_per_node 8 my_torch_script.py +``` + +## 有监督的微调 + +在训练奖励模型和用 RL 之前,模型若是已经在我们感兴趣的方面表现好将会很有帮助。在我们的示例中,我们想要其能回答问题,而其他时候,我们可能它能听指令 (这时对指令执行的微调是理想的)。实现这个最简单的方法便是面向该语言任务,用该任务和领域的文本,继续训练。[StackExchange 数据集](https://huggingface.co/datasets/HuggingFaceH4/stack-exchange-preferences) 含 10M 的指令量,所以我们能用其子集很容易地训练。 + +在用 RLHF 之前的模型微调没有特别的,就是一般的面向语言任务的预训练模型微调。为了高效利用数据,我们采用了称之为 **打包** 的技术: 与 batch 中的每个样本均由单一文本组成,最后基于最长的文本来 padding (填充),我们把很多文本拼接起来,用 EOS token 来隔开,然后分割成一些 chunk (切块) 来做成 batch,避免 padding。 + +![](https://huggingface.co/datasets/trl-internal-testing/example-images/resolve/main/blog/stackllama/chapter10_preprocessing-clm.png) + +该方法大大提高了效率,因为模型输入的所有 token 都对 loss 有所训练,而非 padding 作为掩码被丢弃了。如果你没有足够数据,并且担心随意地分开 token 会失去上下文语义,你也可以用传统的数据加载器 + `ConstantLengthDataset` 解决了 **打包**技术,并且我们能在用 `peft` 加载模型后用 `Trainer`。首先,我们用 `int8` 加载模型,准备训练,然后加入 `LoRA` 微调器。 + +```python +# load model in 8bit +model = AutoModelForCausalLM.from_pretrained( + args.model_path, + load_in_8bit=True, + device_map={"": Accelerator().local_process_index} + ) +model = prepare_model_for_int8_training(model) + +# add LoRA to model +lora_config = LoraConfig( + r=16, + lora_alpha=32, + lora_dropout=0.05, + bias="none", + task_type="CAUSAL_LM", +) + +model = get_peft_model(model, config) +``` + +我们根据相应的语言任务,对模型训练几千个 step (步),并保存模型。由于我们将会有其他微调模型的目的,我们将 LoRA 的微调器权重合并到原模型中。 + + + **声明**: 因为 LLaMA 的许可证规定,我们只能发布微调器的权重,你需要填 Meta AI 的 [表格](https://docs.google.com/forms/d/e/1FAIpQLSfqNECQnMkycAp2jP4Z9TFX0cGR4uf7b_fBxjY_OjhJILlKGA/viewform) 来获取模型,然后用这个 [脚本](https://github.com/huggingface/transformers/blob/main/src/transformers/models/llama/convert_llama_weights_to_hf.py) 来转成 🤗 Transformers 格式。注意 🤗 Transformers 应该从源码安装,或者 `v4.28` 版。 + +现在我们已经微调好了模型,可以训练奖励模型了。 + +## 奖励模型和人类偏好 + +原则上,我们可以直接用人类标注来对模型做 RLHF 微调。然而,这将需要我们给人类发送一些样本,在每轮优化后计分。这是贵且慢的,因为收敛需要的训练样本量大,而人类阅读和标注的速度有限。 + +一个比直接反馈更好的策略是,在进入 RL 循环之前用人类标注集来训练一个奖励模型。奖励模型的目的是模拟人类对文本的打分。构建奖励模型有许多能用的策略: 最直接的便是预测标注 (比如根据好与坏,输出比分或者布尔值)。最佳实践是,预测结果的排序,即对每个 prompt (输入文本) 对应的两个结果 $(y_k, y_j)$,模型预测人类标注的比分哪个更高。 + +或者表示为 loss (损失) 函数: + +$$ +\mbox{loss}(\theta) = - E_{(x, y_j, y_k)~D} [ \mbox{log}( \sigma( r_\theta (x, y_j) - r_\theta(x, y_k)) ) ] +$$ + +其中 $r$ 是模型对可能的标注 $y_j$ 的预测分数。 + +在 StackExchange 数据集上,我们能得到两个答案的受欢迎程度。有了这个信息和上面的损失函数,我们就能自定义 loss 来改 `transformers.Trainer` 了。 + +```python + +class RewardTrainer(Trainer): + def compute_loss(self, model, inputs, return_outputs=False): + rewards_j = model(input_ids=inputs["input_ids_j"], attention_mask=inputs["attention_mask_j"])[0] + rewards_k = model(input_ids=inputs["input_ids_k"], attention_mask=inputs["attention_mask_k"])[0] + loss = -nn.functional.logsigmoid(rewards_j - rewards_k).mean() + if return_outputs: + return loss, {"rewards_j": rewards_j, "rewards_k": rewards_k} + return loss +``` + +我们用数据集中的 100000 对,并在 50000 对上评估。在比较小的 batch size,为 4 下,我们用 LoRA 的 `peft` 微调器来训练 LLaMA 模型,在 BF16 精度下用 Adam 优化器。我们的 LoRA 设置是: + +```python +peft_config = LoraConfig( + task_type=TaskType.SEQ_CLS, + inference_mode=False, + r=8, + lora_alpha=32, + lora_dropout=0.1, +) +``` + +训练用 [Weights & Biases](https://wandb.ai/krasul/huggingface/runs/wmd8rvq6?workspace=user-krasul) 来记日志,并在 🤗 训练集群上,用 8 卡 A-100,要数小时,最后准确率为 **67%**。尽管看上去可能低了,但想想这个任务的难度。 + +如下文要细说的,训练结果将作为固定参数,以供下游使用。 + +## 基于人类反馈的强化学习 + +现在我们手头有了微调的语言模型和奖励模型,可以开始执行 RL 循环了: 这个过程大致分为三步 + +1. 生成对 prompt (输入文本) 的反馈。 +2. 用奖励模型来对反馈评分。 +3. 对评分,进行一轮策略优化的强化学习。 + +![](https://huggingface.co/datasets/trl-internal-testing/example-images/resolve/main/blog/stackllama/trl_loop.png) + +在被 token 化并输入奖励模型前,提问和回答的 prompt 模版如下: + +``` +Question: +Answer: +``` + +在有监督训练 (SFT),奖励模型训练 (RM) 和 RLHF 的阶段都用此模版。 + +用 RL 训练语言模型出现的常见问题是,模型可能学会胡说八道以糊弄奖励模型,后者可能给高分。为了权衡,我们对奖励增加惩罚: 留一份没有训练的模型,如何比较两者输出的 KL 散度 + +$$ +\mbox{R}(x, y) = \mbox{r}(x, y) - \beta \mbox{KL}(x,y) +$$ + +其中 $r$ 是奖励模型的结果,$\mbox{KL}(x,y)$ 是当前模型和对比模型的 KL 散度差。 + +再提一遍,我们用 `peft` 来实现内存高效的训练,其对 RLHF 阶段提供了优势。这里参考的模型和训练的模型用同一个基底,也就是有监督训练 (SFT) 的结果,它是用 8-bit 来加载,并且自始自终是固定的。我们仅用 PPO 方法优化最终模型的 LoRA 权重,同时全部共享一个基底模型。 + +```python +for epoch, batch in tqdm(enumerate(ppo_trainer.dataloader)): + question_tensors = batch["input_ids"] + + # sample from the policy and generate responses + response_tensors = ppo_trainer.generate( + question_tensors, + return_prompt=False, + length_sampler=output_length_sampler, + **generation_kwargs, + ) + batch["response"] = tokenizer.batch_decode(response_tensors, skip_special_tokens=True) + + # Compute sentiment score + texts = [q + r for q, r in zip(batch["query"], batch["response"])] + pipe_outputs = sentiment_pipe(texts, **sent_kwargs) + rewards = [torch.tensor(output[0]["score"] - script_args.reward_baseline) for output in pipe_outputs] + + # Run PPO step + stats = ppo_trainer.step(question_tensors, response_tensors, rewards) + # Log stats to WandB + ppo_trainer.log_stats(stats, batch, rewards) +``` + +我们用 🤗 集群,在 3x8 A100-80GB 的机器上训练了 20h,但一个差不多的结果很快 (大概,在 8 A100-80GB 上训练 20h)。所有的训练过程都在 [Weight & Biases](https://wandb.ai/lvwerra/trl/runs/ie2h4q8p) 上找到。 + +![](https://huggingface.co/datasets/trl-internal-testing/example-images/resolve/main/blog/stackllama/wandb_reward.png) + +每个 batch 的奖励,对每步的训练,在 ~1000 步时模型的效果最好。 + +所以模型训好了能干啥嘞 ? 我们拭目以待 ! + +![](https://huggingface.co/datasets/trl-internal-testing/example-images/resolve/main/blog/stackllama/llama_prompt.png) + +尽管我们不该太相信其结果,至少目前。但结果已经很好了,甚至附上了 Google 链接。我们来看看训练时的挑战。 + +## 挑战,不稳定和突破口 + +用 RL 训练 LLM (Large Language Models,大语言模型) 不总是一帆风顺的,你看到的本文也是经历无数实验,无数失败和无数调参的。即便如此,该模型也不能说变现完美。这儿,我们分享一些遇到的观察和问题。 + +### 奖励更高代表更好表现 ? + +![](https://huggingface.co/datasets/trl-internal-testing/example-images/resolve/main/blog/stackllama/logs_high_reward.png) + +天呐,这个实验肯定表现很好 ! 看奖励的曲线多甜啊 ! + +在 RL 中,一般而言,奖励越高越好。在 RLHF 中,我们用了一个奖励模型,它不完美,所以留给了 PPO 算法捡漏的机会。这能导致奖励突然上升,然而当检查文本结果时,却充斥了字符 “```”,因为奖励模型对含有代码 stack exchange 的答案更信任。幸运的是,该问题碰到的很少,应该是采取的 KL 散度的惩罚项起到了作用。 + +### KL 散度总是正的? + +如我们前面所提到的,一个 KL 惩罚项被用来保证训练后的分布和原始分布接近。一般地 , KL 散度来度量两个分布的相似程度,并且总是正的。然而,在 `trl` 我们用了一个 KL 的近似,期望值和真的 KL 散度相同。 + +$$ +KL_{pen} (x, y) = \mbox{log} (\pi_\phi^\mbox{RL}(y | x) / \pi^{\mbox{SFT}}(y|x)) +$$ + +显然,当训练中一个 token 比原始模型概率低,这会导致 KL 散度为负,合适的取样和平均总能得到正的。但是一些采样的生成策略导致了不匀称的采样。比如,当生成被 padding 的序列 batch 时和当设置 EOS token 被压缩的最小长度是,模型会有很大/很小的概率到负 KL 散度的 token。同时 PPO 算法是面向奖励优化的,模型就会追逐负的惩罚,导致训练不稳定。 + +![](https://huggingface.co/datasets/trl-internal-testing/example-images/resolve/main/blog/stackllama/logs_neg_kl.png) + +对生成和采样,你需要特别小心。我们建议一开始用最简单的方式,如何在逐渐复杂。 + +### 任然存在的问题 + +任然有很多问题我们不懂,比如下面,loss 间断地跳跃,导致之后的不稳定 + +![](https://huggingface.co/datasets/trl-internal-testing/example-images/resolve/main/blog/stackllama/logs_loss_spikes.png) + +一旦我们解决了这些问题,我们就会上传变化到 `trl` 上,以保证社区受益。 + +## 总结 + +在本博客,我们走过了 RLHF 训练的整个流程,从准备人类标注的数据集开始,调整语言模型到特定领域,训练奖励模型,并最终用 RL 训练一个模型。 + +通过使用 `peft`,任何人都能在一张 GPU 上跑我们的实验 ! 如果训练慢了,可以用数据并行化的方法,不需要改任何代码,或者用多张 GPU 并行提高训练速度。 + +对实际应用,这仅仅是第一步 ! 一旦你有了模型,你就要和其他模型比较优劣。这个可以用一个面向不同模型的排名生成做到,和我们训练奖励数据集类似。 + +一旦你加入了评估的步骤,好玩的就开始了: 你可以在原数据集上反复炼丹,也可以增加数据集或者对原数据集提纯。另外,你可以对奖励模型和生成试不同大小和结构的模型,这需要时间。 + +我们在积极提高 TRL 以保证 RLHF 的每一步都可见,并且十分激动能看到人们用它来构建的东西。如果你想有所贡献,欢迎看我们的 [Github Issue](https://github.com/lvwerra/trl/issues)。 + +## 引用 + +``` +@misc {beeching2023stackllama, + author = { Edward Beeching and + Younes Belkada and + Kashif Rasul and + Lewis Tunstall and + Leandro von Werra and + Nazneen Rajani and + Nathan Lambert + }, + title = { StackLLaMA: An RL Fine-tuned LLaMA Model for Stack Exchange Question and Answering }, + year = 2023, + url = { https://huggingface.co/blog/stackllama }, + doi = { 10.57967/hf/0513 }, + publisher = { Hugging Face Blog } +} +``` + +## 感谢 + +我们感谢 Philipp Schmid 分享了他对文本生成绝妙的 [demo](https://huggingface.co/spaces/philschmid/igel-playground), 我们的 demo 也是基于他的。我们也感谢 Omar Sanseviero 和 Louis Castricato 对我们博客的草稿提供宝贵详尽的反馈。 \ No newline at end of file From 1e9297337f786d70c0382257fc8bbb877a9fa5e8 Mon Sep 17 00:00:00 2001 From: SuSung-boy <872414318@qq.com> Date: Thu, 4 May 2023 17:44:36 +0800 Subject: [PATCH 16/55] if blog translation completed --- zh/if.md | 826 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 826 insertions(+) create mode 100644 zh/if.md diff --git a/zh/if.md b/zh/if.md new file mode 100644 index 0000000000..1c900bba7a --- /dev/null +++ b/zh/if.md @@ -0,0 +1,826 @@ +--- +title: "在免费版 Google Colab 上使用 🧨 diffusers 运行 IF" +thumbnail: /blog/assets/if/thumbnail.jpg +authors: +- user: shonenkov + guest: true +- user: Gugutse + guest: true +- user: ZeroShot-AI + guest: true +- user: williamberman +- user: patrickvonplaten +- user: multimodalart +translators: +- user: SuSung-boy +--- + +# 在免费版 Google Colab 上使用 🧨 diffusers 运行 IF + + + Open In Colab + + + + + +**本文简介**: 本文展示了如何在免费版 Google Colab 上使用 🧨 diffusers 运行最强大的开源文本生成图片模型之一 **IF**。 + +您也可以直接访问 IF 的 [Hugging Face Space](https://huggingface.co/spaces/DeepFloyd/IF) 页面来探索模型强大的性能。 + +

+ if-collage
+ 压缩的生成图片样例,选自官方 IF GitHub 库 +

+ +## 介绍 + +IF 是一类像素级的文生图模型,由 [DeepFloyd](https://github.com/deep-floyd/IF) 于 2023 年 4 月下旬发布。IF 的模型架构受 Google 的闭源模型 [Imagen](https://imagen.research.google/) 的强烈启发。 + +与现有的文本生成图片模型(如 Stable Diffusion)相比,IF 有两个明显的优势: + +- IF 模型直接在 “像素空间”(即未降维、未压缩的图片)中计算生成,而非需要迭代去噪的隐空间(如 [Stable Diffusion](http://hf.co/blog/stable_diffusion))。 +- IF 模型基于 [T5-XXL](https://huggingface.co/google/t5-v1_1-xxl) 文本编码器的输出进行训练。T5-XXL 是一个比 Stable DIffusion 中的 [CLIP](https://openai.com/research/clip) 更强大的文本编码器。 + +因此,IF 更擅长生成具有高频细节(例如人脸和手部)的图片,并且 IF 是 **第一个能够在图片中生成可靠文字** 的开源图片生成模型。 + +不过,在具有上述两个优势(像素空间计算、使用更优文本编码器)的同时,IF 模型也存在明显的不足,那就是参数量更加庞大。IF 模型的文本编码器 T5、文本生成图片网络 UNet、超分辨率模型 upscaler UNet 的参数量分别为 4.5B、4.3B、1.2B,而 [Stable Diffusion v2.1](https://huggingface.co/stabilityai/stable-diffusion-2-1) 模型的文本编码器 CLIP 和去噪网络 UNet 的参数量仅为 400M 和 900M。 + +尽管如此,我们仍然可以在消费级 GPU 上运行 IF 模型,不过这需要一些优化技巧来降低显存占用。不用担心,我们将在本篇博客中详细介绍如何使用 🧨 diffusers 库来实现这些技巧。 + +在本文后面的 1.) 中,我们将介绍如何使用 IF 模型进行文本生成图片;在 2.) 和 3.) 中,我们将介绍 IF 模型的 Img2Img 和 Inpainting (图片修复) 能力。 + +💡 **注意**:本文为保证 IF 模型可以在免费版 Google Colab 上成功运行,采用了多模型组件顺序在 GPU 上加载卸载的技巧,以放慢生成速度为代价换取显存占用降低。如果您有条件使用更高端的 GPU 如 A100,我们建议您把所有的模型组件都加载并保留在 GPU 上,以获得最快的图片生成速度,代码详情见 [IF 的官方示例](https://huggingface.co/spaces/DeepFloyd/IF)。 + +💡 **注意**:本文为保证读者在阅读时图片加载得更快,对文中的一些高分辨率图片进行了压缩。在您自行使用官方模型尝试生成时,图片质量将会更高! + +让我们开始 IF 之旅吧!🚀 + +

+
+ IF 模型生成含文字的图片的强大能力 +

+ +## 本文目录 + +* [接受许可证](#接受许可证) +* [优化 IF 模型以在有限的硬件条件下运行](#优化-if-模型以在有限的硬件条件下运行) +* [可用资源](#可用资源) +* [安装依赖](#安装依赖) +* [文本生成图片](#1-文本生成图片) +* [Img2Img](#2-img2img) +* [Inpainting](#3-inpainting) + +## 接受许可证 + +在您使用 IF 模型之前,您需要接受它的使用条件。 为此: + +- 1. 确保已开通 [Hugging Face 帐户](https://huggingface.co/join) 并登录 +- 2. 接受 [DeepFloyd/IF-I-XL-v1.0](https://huggingface.co/DeepFloyd/IF-I-XL-v1.0) 模型卡的许可证。在 Stage1 模型卡上接受许可证会自动接受其他 IF 模型许可证。 +- 3. 确保在本地已安装 `huggingface_hub` 库并登录 + +```sh +pip install huggingface_hub --upgrade +``` + +在 Python shell 中运行登录函数 + +```py +from huggingface_hub import login + +login() +``` + +输入您的 [Hugging Face Hub 访问令牌](https://huggingface.co/docs/hub/security-tokens#what-are-user-access-tokens)。 + +## 优化 IF 模型以在有限的硬件条件下运行 + +**最先进的机器学习技术不应该只掌握在少数精英手里。** 要使机器学习更 “普罗大众” 就意味着模型能够在消费级硬件上运行,而不是仅支持在最新型最高端的硬件上运行。 + +深度学习开放社区创造了众多世界一流的工具,来支持在消费级硬件上运行资源密集型模型。例如: + +- [🤗 accelerate](https://github.com/huggingface/accelerate) 提供用于处理 [大模型](https://huggingface.co/docs/accelerate/usage_guides/big_modeling) 的实用工具。 +- [🤗 safetensors](https://github.com/huggingface/safetensors) 在保证模型保存的安全性的同时,还能显著加快大模型的加载速度。 +- [bitsandbytes](https://github.com/TimDettmers/bitsandbytes) 使所有的 PyTorch 模型都可以采用 8 位量化。 + +Diffusers 库无缝集成了上述库,只需调用一个简单的 API 即可实现大模型的优化。 + +免费版 Google Colab 既受 CPU RAM 限制(13GB RAM),又受 GPU VRAM 限制(免费版 T4 为 15GB RAM),无法直接运行整个 IF 模型(>10B)。 + +我们先来看看运行完整 float32 精度的 IF 模型时,各个组件所需的内存占用: + +- [T5-XXL 文本编码器](https://huggingface.co/DeepFloyd/IF-I-XL-v1.0/tree/main/text_encoder): 20GB +- [Stage1 UNet](https://huggingface.co/DeepFloyd/IF-I-XL-v1.0/tree/main/unet): 17.2GB +- [Stage2 超分辨率 UNet](https://huggingface.co/DeepFloyd/IF-II-L-v1.0/blob/main/pytorch_model.bin): 2.5 GB +- [Stage 3 x4-upscaler 超分辨率模型](https://huggingface.co/stabilityai/stable-diffusion-x4-upscaler): 3.4GB + +可见我们无法以 float32 精度运行 IF 模型,因为 T5 和 Stage1 UNet 权重所需的内存占用均超出了免费版 CPU RAM 的可用范围。 + +很容易想到,我们可以通过降低模型运行的位精度来减少内存占用。如果以 float16 精度来运行 IF 模型,则 T5、Stage1 UNet、Stage2 UNet 所需的内存占用分别下降至 11GB、8.6GB、1.25GB。对于免费版 GPU 的 15GB RAM 限制,float16 精度已经满足运行条件,不过在实际加载 T5 模型时,我们很可能仍然会遇到 CPU 内存溢出错误,因为 CPU 的一部分内存会被其他进程占用。 + +因此我们继续降低位精度,实际上仅降低 T5 的精度就可以了。这里我们使用 `bitsandbytes` 库将 T5 量化到 8 位精度,最终可以将 T5 权重的内存占用降低至 [8GB](https://huggingface.co/DeepFloyd/IF-I-XL-v1.0/blob/main/text_encoder/model.8bit.safetensors)。 + +好了,现在 IF 模型的每个组件的 CPU 和 GPU 内存占用都各自符合免费版 Google Colab 的限制,接下来我们只需要确保在运行每个组件的时候,CPU 和 GPU 内存不会被其他组件或者进程占用就可以了。 + +Diffusers 库支持模块化地独立加载单个组件,也就是说我们可以只加载文本编码器 T5,而不加载文本生成图片模型 UNet,反之亦然。这种模块化加载的技巧可以确保在运行多个组件的管线时,每个组件仅在需要计算时才被加载,可以有效避免同时加载时导致的 CPU 和 GPU 内存溢出。 + +来实操代码试一试吧!🚀 + +![t2i_64](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/if/t2i_64.png) + +## 可用资源 + +免费版 Google Colab 的 CPU RAM 可用资源约 13GB: + +``` python +!grep MemTotal /proc/meminfo +``` + +```bash +MemTotal: 13297192 kB +``` + +免费版 GPU 型号为 NVIDIA T4,其 VRAM 可用资源约 15GB: + +``` python +!nvidia-smi +``` + +```bash +Sun Apr 23 23:14:19 2023 ++-----------------------------------------------------------------------------+ +| NVIDIA-SMI 525.85.12 Driver Version: 525.85.12 CUDA Version: 12.0 | +|-------------------------------+----------------------+----------------------+ +| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | +| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | +| | | MIG M. | +|===============================+======================+======================| +| 0 Tesla T4 Off | 00000000:00:04.0 Off | 0 | +| N/A 72C P0 32W / 70W | 1335MiB / 15360MiB | 0% Default | +| | | N/A | ++-------------------------------+----------------------+----------------------+ + ++-----------------------------------------------------------------------------+ +| Processes: | +| GPU GI CI PID Type Process name GPU Memory | +| ID ID Usage | +|=============================================================================| ++-----------------------------------------------------------------------------+ +``` + +## 安装依赖 + +本文使用的优化技巧需要安装最新版本的依赖项。如果您在运行代码时遇到问题,请首先仔细检查依赖项的安装版本。 + +``` python +! pip install --upgrade \ + diffusers~=0.16 \ + transformers~=4.28 \ + safetensors~=0.3 \ + sentencepiece~=0.1 \ + accelerate~=0.18 \ + bitsandbytes~=0.38 \ + torch~=2.0 -q +``` + +## 1. 文本生成图片 + +这一部分我们将分步介绍如何使用 Diffusers 运行 IF 模型来完成文本到图片的生成。对于接下来使用的 API 和优化技巧,文中仅作简要的解释,如果您想深入了解更多原理或者细节,可以前往 [Diffusers](https://huggingface.co/docs/diffusers/index),[Transformers](https://huggingface.co/docs/transformers/index),[Accelerate](https://huggingface.co/docs/accelerate/index),以及 [bitsandbytes](https://github.com/TimDettmers/bitsandbytes) 的官方文档查看。 + +### 1.1 加载文本编码器 + +首先我们使用 Transformers 库加载 8 位量化后的文本编码器 T5。Transformers 库直接支持 [bitsandbytes](https://huggingface.co/docs/transformers/main/en/main_classes/quantization#load-a-large-model-in-8bit) 量化,可以通过 `load_in_8bit` 参数来标识是否加载 8 位量化模型。 + +设置参数 `variant="8bit"` 来下载预量化版的权重。 + +Transformers 还支持模块化地独立加载单个模型的某些层!`device_map` 参数可以指定单个模型的权重在不同 GPU 设备上加载或者卸载的映射策略,在不需要参与计算时甚至可以卸载到 CPU 或者磁盘上。这里我们设置 `device_map` 参数为 `"auto"`,让 transformers 库自动创建设备映射。更多相关信息,请查看 [transformers 文档](https://huggingface.co/docs/accelerate/usage_guides/big_modeling#designing-a-device-map)。 + +``` python +from transformers import T5EncoderModel + +text_encoder = T5EncoderModel.from_pretrained( + "DeepFloyd/IF-I-XL-v1.0", + subfolder="text_encoder", + device_map="auto", + load_in_8bit=True, + variant="8bit" +) +``` + +### 1.2 创建 prompt embeddings + +Diffusers API 中的 `DiffusionPipeline` 类及其子类专门用于访问扩散模型。`DiffusionPipeline` 中的每个实例都包含一套独立的方法和默认的模型。我们可以通过 `from_pretrained` 方法来覆盖默认实例中的模型,只需将目标模型实例作为关键字参数传给 `from_pretrained`。 + +上文说过,我们在加载文本编码器 T5 的时候无需加载扩散模型组件 UNet,因此这里我们需要用 `None` 来覆盖 `DiffusionPipeline` 的实例中的 UNet 部分,此时将 `from_pretrained` 方法的 `unet` 参数设为 `None` 即可实现。 + +``` python +from diffusers import DiffusionPipeline + +pipe = DiffusionPipeline.from_pretrained( + "DeepFloyd/IF-I-XL-v1.0", + text_encoder=text_encoder, # 传入前面加载的 8 位量化文本编码器实例 + unet=None, + device_map="auto" +) +``` + +IF 模型还有一个超分辨率管线。为了后面能够方便地加载运行,我们这里把 prompt embeddings 保存下来,后面就可以直接输入给超分辨率管线,而不需要再经过文本编码器了。 + +接下来就可以开始输入 prompt 了。为了凸显 IF 模型能够生成带文字的图片的优势,这里要在 Stable Diffusion 中生成 [宇航员骑马](https://huggingface.co/blog/stable_diffusion) (an astronaut just riding a +horse) 的图片示例的基础上, 增加一个带有文字的指示牌! + +我们给出一个合适的 prompt: + +``` python +prompt = "a photograph of an astronaut riding a horse holding a sign that says Pixel's in space" +``` + +然后输入给 8 位量化的 T5 模型,生成 prompt 的 embeddings: + +``` python +prompt_embeds, negative_embeds = pipe.encode_prompt(prompt) +``` + +### 1.3 释放内存 + +当 prompt embeddings 创建完成之后,我们就不再需要文本编码器了。但目前 T5 仍然存在于 GPU 内存中,因此我们需要释放 T5 占用的内存,以便加载 UNet。 + +释放 PyTorch 内存并非易事。我们必须对所有指向实际分配到 GPU 上的 Python 对象实施垃圾回收。 + +为此,我们首先使用 Python 关键字 `del` 来删除掉所有引用的已分配到 GPU 内存上的 Python 对象。 + +``` python +del text_encoder +del pipe +``` + +不过仅删除 Python 对象仍然不够,因为垃圾回收机制实际上是在释放 GPU 完成之后才完成的。 + +然后,我们调用 `torch.cuda.empty_cache()` 方法来释放缓存。实际上该方法也并非绝对必要,因为缓存中的 cuda 内存也能够立即用于进一步分配,不过它可以帮我们在 Colab UI 中验证是否有足够的内存可用。 + +这里我们编写一个辅助函数 `flush()` 来刷新内存。 + +``` python +import gc +import torch + +def flush(): + gc.collect() + torch.cuda.empty_cache() +``` + +运行 `flush()`。 + +``` python +flush() +``` + +### 1.4 Stage1:核心扩散过程 + +好了,现在已经有足够的 GPU 内存可用,我们就能重新加载一个只包含 UNet 部分的 `DiffusionPipeline` 了,因为接下来我们只需要运行核心扩散过程部分。 + +按照上文中对 UNet 内存占用的计算,IF 模型的 UNet 部分权重能够以 float16 精度加载,设置 `variant` 和 `torch_dtype` 参数即可实现。 + +``` python +pipe = DiffusionPipeline.from_pretrained( + "DeepFloyd/IF-I-XL-v1.0", + text_encoder=None, + variant="fp16", + torch_dtype=torch.float16, + device_map="auto" +) +``` + +一般情况下,我们会直接将 prompt 传入 `DiffusionPipeline.__call__` 函数。不过我们这里已经计算出了 prompt embeddings,因此只需传入 embeddings 即可。 + +Stage1 的 UNet 接收 embeddings 作为输入运行完成后,我们还需要继续运行 Stage2 的超分辨率组件,因此我们需要保存模型的原始输出 (即 PyTorch tensors) 来输入到 Stage2,而不是 PIL 图片。这里设置参数 `output_type="pt"` 可以将 Stage1 输出的 PyTorch tensors 保留在 GPU 上。 + +我们来定义一个随机生成器,并运行 Stage1 的扩散过程。 + +``` python +generator = torch.Generator().manual_seed(1) +image = pipe( + prompt_embeds=prompt_embeds, + negative_prompt_embeds=negative_embeds, + output_type="pt", + generator=generator, +).images +``` + +虽然运行结果是原始的 PyTorch tensors,我们仍然可以手动将其转换为 PIL 图片,起码先瞧一瞧生成图片的大概样子嘛。Stage1 的输出可以转换为一张 64x64 的图片。 + +``` python +from diffusers.utils import pt_to_pil + +pil_image = pt_to_pil(image) +pipe.watermarker.apply_watermark(pil_image, pipe.unet.config.sample_size) + +pil_image[0] +``` + +![t2i_64](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/if/t2i_64.png) + +Stage1 完成之后,我们同样删除 Python 指针,释放 CPU 和 GPU 内存。 + +``` python +del pipe +flush() +``` + +### 1.5 Stage2:超分辨率 64x64 到 256x256 + +IF 模型包含多个独立的超分辨率组件。 + +对于每个超分辨率扩散过程组件,我们都使用单独的管线来运行。 + +在加载超分辨率管线时需要传入文本参数。如果需要,它也是可以同时加载文本编码器,来从 prompt 开始运行的。不过更一般的做法是从第一个 IF 管线中计算得到的 prompt embeddings 开始,此时要把 `text_encoder` 参数设为 `None`。 + +创建一个超分辨率 UNet 管线。 + +``` python +pipe = DiffusionPipeline.from_pretrained( + "DeepFloyd/IF-II-L-v1.0", + text_encoder=None, # 未用到文本编码器 => 节省内存! + variant="fp16", + torch_dtype=torch.float16, + device_map="auto" +) +``` + +将 Stage1 输出的 Pytorch tensors 和 T5 输出的 embeddings 输入给 Stage2 并运行。 + +``` python +image = pipe( + image=image, + prompt_embeds=prompt_embeds, + negative_prompt_embeds=negative_embeds, + output_type="pt", + generator=generator, +).images +``` + +我们同样可以转换为 PIL 图片来查看中间结果。 + +``` python +pil_image = pt_to_pil(image) +pipe.watermarker.apply_watermark(pil_image, pipe.unet.config.sample_size) + +pil_image[0] +``` + +![t2i_upscaled](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/if/t2i_upscaled.png) + +再一次,删除 Python 指针,释放内存。 + +``` python +del pipe +flush() +``` + +### 1.6 Stage3:超分辨率 256x256 到 1024x1024 + +IF 模型的第 2 个超分辨率组件是 Stability AI 之前发布的 [x4 Upscaler](https://huggingface.co/stabilityai/stable-diffusion-x4-upscaler)。 + +我们创建相应的管线,并设置参数 `device_map="auto"` 直接加载到 GPU 上。 + +``` python +pipe = DiffusionPipeline.from_pretrained( + "stabilityai/stable-diffusion-x4-upscaler", + torch_dtype=torch.float16, + device_map="auto" +) +``` + +🧨 diffusers 可以使得独立开发的扩散模型非常简便地组合使用,因为 diffusers 中的管线可以链接在一起。比如这里我们可以设置参数 `image=image` 来将先前输出的 PyTorch tensors 输入给 Stage3 管线。 + +💡 **注意**:x4 Upscaler 并非使用 T5,而使用它 [自己的文本编码器](https://huggingface.co/stabilityai/stable-diffusion-x4-upscaler/tree/main/text_encoder)。因此,我们不能使用 1.2 中创建的 prompt embeddings,必须传入原始 prompt。 + +``` python +pil_image = pipe(prompt, generator=generator, image=image).images +``` + +IF 模型管线在生成图片时默认会在右下角添加 IF 水印。由于 Stage3 使用的 x4 upscaler 管线并非属于 IF (实际上属于 Stable Diffusion),因此经过超分辨率生成的图片也不会带有 IF 水印。 + +不过我们可以手动添加水印。 + +``` python +from diffusers.pipelines.deepfloyd_if import IFWatermarker + +watermarker = IFWatermarker.from_pretrained("DeepFloyd/IF-I-XL-v1.0", subfolder="watermarker") +watermarker.apply_watermark(pil_image, pipe.unet.config.sample_size) +``` + +查看 Stage3 的输出图片。 + +``` python +pil_image[0] +``` + +![t2i_upscaled_2](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/if/t2i_upscaled_2.png) + +看!免费版 Google Colab 上运行 IF 模型生成精美的 1024x1024 图片了! + +至此,我们已经展示了使用 🧨 diffusers 来分解和模块化加载资源密集型扩散模型的全部内容,是不是非常简单! + +💡 **注意**:我们不建议在生产流程中使用上述以放慢推理速度为代价来换取低内存消耗的设置:8 位量化、模型权重的解耦和重分配、磁盘卸载等,尤其是需要重复使用某个扩散模型组件的时候。在实际生产中,我们还是建议您使用 40GB VRAM 的 A100,以确保所有的模型组件可以同时加载到 GPU 上。如果您条件满足,可以参考 Hugging Face 上的 [**官方 IF 示例**](https://huggingface.co/spaces/DeepFloyd/IF) 设置。 + +## 2. Img2Img + +在 1.) 中加载的文本生成图片的 IF 模型各个组件的预训练权重,也同样可用于文本引导的图片生成图片,也叫 Img2Img,还能用于 Inpainting (图片修复),我们将在 3.) 中介绍。Img2Img 和 Inpainting 的核心扩散过程,除了初始噪声是图片之外,其余均与文本生成图片的扩散过程相同。 + +这里我们创建 Img2Img 管线 `IFImg2ImgPipeline` 和超分辨率管线 +`IFImg2ImgSuperResolution`,并加载和 1.) 中各个组件相同的预训练权重。 + +内存优化的 API 也都相同! + +同样地释放内存。 + +``` python +del pipe +flush() +``` + +对于 Img2Img,我们需要一张初始图片。 + +这一部分,我们将使用在外网著名的 “Slaps Roof of Car” meme (可以理解为汽车推销员表情包制作模板)。首先从网上下载这张图片。 + +``` python +import requests + +url = "https://i.kym-cdn.com/entries/icons/original/000/026/561/car.jpg" +response = requests.get(url) +``` + +然后使用 PIL 图像库加载图片。 + +``` python +from PIL import Image +from io import BytesIO + +original_image = Image.open(BytesIO(response.content)).convert("RGB") +original_image = original_image.resize((768, 512)) +original_image +``` + +![iv_sample](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/if/iv_sample.png) + +Img2Img 管线可以接收 PIL 图像对象或原始 tensors 对象作为输入。点击 [此处](https://huggingface.co/docs/diffusers/v0.16.0/en/api/pipelines/if#diffusers.IFImg2ImgPipeline.__call__) 可跳转文档页面查看更详细的输入参数说明。 + +### 2.1 文本编码器 + +Img2Img 可以由文本引导。这里我们也尝试给出一个合适的 prompt 并使用文本编码器 T5 创建其 embeddings。 + +首先再次加载 8 位量化的文本编码器。 + +``` python +from transformers import T5EncoderModel + +text_encoder = T5EncoderModel.from_pretrained( + "DeepFloyd/IF-I-XL-v1.0", + subfolder="text_encoder", + device_map="auto", + load_in_8bit=True, + variant="8bit" +) +``` + +对于 Img2Img,我们需要使用 [`IFImg2ImgPipeline`](https://huggingface.co/docs/diffusers/v0.16.0/en/api/pipelines/if#diffusers.IFImg2ImgPipeline) 类来加载预训练权重,而不能使用 1.) 中的 `DiffusionPipeline` 类。这是因为当使用 `from_pretrained()` 方法加载 IF 模型(或其他扩散模型)的预训练权重时,会返回 **默认的文本生成图片** 管线 [`IFPipeline`](https://huggingface.co/docs/diffusers/v0.16.0/en/api/pipelines/if#diffusers.IFPipeline)。因此,要加载 Img2Img 或 Depth2Img 等非默认形式的管线,必须指定明确的类名。 + +``` python +from diffusers import IFImg2ImgPipeline + +pipe = IFImg2ImgPipeline.from_pretrained( + "DeepFloyd/IF-I-XL-v1.0", + text_encoder=text_encoder, + unet=None, + device_map="auto" +) +``` + +我们来把汽车推销员变得动漫风一些,对应的 prompt 为: + +``` python +prompt = "anime style" +``` + +同样地,使用 T5 来创建 prompt embeddings。 + +``` python +prompt_embeds, negative_embeds = pipe.encode_prompt(prompt) +``` + +释放 CPU 和 GPU 内存。 + +同样先删除 Python 指针, + +``` python +del text_encoder +del pipe +``` + +再刷新内存。 + +``` python +flush() +``` + +### 2.2 Stage1:核心扩散过程 + +接下来也是一样,我们在管线中只加载 Stage1 UNet 部分权重。 + +``` python +pipe = IFImg2ImgPipeline.from_pretrained( + "DeepFloyd/IF-I-XL-v1.0", + text_encoder=None, + variant="fp16", + torch_dtype=torch.float16, + device_map="auto" +) +``` + +运行 Img2Img Stage1 管线需要原始图片和 prompt embeddings 作为输入。 + +我们可以选择使用 `strength` 参数来配置 Img2Img 的变化程度。`strength` 参数直接控制了添加的噪声强度,该值越高,生成图片偏离原始图片的程度就越大。 + +``` python +generator = torch.Generator().manual_seed(0) +image = pipe( + image=original_image, + prompt_embeds=prompt_embeds, + negative_prompt_embeds=negative_embeds, + output_type="pt", + generator=generator, +).images +``` + +我们再次查看一下生成的 64x64 图片。 + +``` python +pil_image = pt_to_pil(image) +pipe.watermarker.apply_watermark(pil_image, pipe.unet.config.sample_size) + +pil_image[0] +``` + +![iv_sample_1](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/if/iv_sample_1.png) + +看起来不错!我们可以继续释放内存,并进行超分辨率放大图片了。 + +``` python +del pipe +flush() +``` + +### 2.3 Stage2: 超分辨率 + +对于超分辨率,我们使用 `IFImg2ImgSuperResolutionPipeline` 类,并加载与 1.5 中相同的预训练权重。 + +``` python +from diffusers import IFImg2ImgSuperResolutionPipeline + +pipe = IFImg2ImgSuperResolutionPipeline.from_pretrained( + "DeepFloyd/IF-II-L-v1.0", + text_encoder=None, + variant="fp16", + torch_dtype=torch.float16, + device_map="auto" +) +``` +💡 **注意**:Img2Img 超分辨率管线不仅需要 Stage1 输出的生成图片,还需要原始图片作为输入。 + +实际上我们还可以在 Stage2 输出的图片基础上继续使用 Stable Diffusion x4 upscaler 进行二次超分辨率。不过这里没有展示,如果需要,请使用 1.6 中的代码片段进行尝试。 + +``` python +image = pipe( + image=image, + original_image=original_image, + prompt_embeds=prompt_embeds, + negative_prompt_embeds=negative_embeds, + generator=generator, +).images[0] +image +``` + +![iv_sample_2](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/if/iv_sample_2.png) + +好了!Img2Img 的全部内容也介绍完毕。我们继续释放内存,然后介绍最后一个 Inpainting 管线。 + +``` python +del pipe +flush() +``` + +## 3. Inpainting + +IF 模型的 Inpainting 管线大体上与 Img2Img 相同,只不过仅对图片的部分指定区域进行去噪和生成。 + +我们首先用图片 mask 来指定一个待修复区域。 + +让我们来展示一下 IF 模型 “生成带文字的图片” 这项令人惊叹的能力!我们来找一张带标语的图片,然后用 IF 模型替换标语的文字内容。 + +首先下载图片 + +``` python +import requests + +url = "https://i.imgflip.com/5j6x75.jpg" +response = requests.get(url) +``` + +并将其转换为 PIL 图片对象。 + +``` python +from PIL import Image +from io import BytesIO + +original_image = Image.open(BytesIO(response.content)).convert("RGB") +original_image = original_image.resize((512, 768)) +original_image +``` + +![inpainting_sample](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/if/inpainting_sample.png) + +我们指定标语牌区域为 mask 待修复区域,让 IF 模型替换该区域的文字内容。 + +为方便起见,我们已经预生成了 mask 图片并将其加载到 HF 数据集中了。 + +下载 mask 图片。 + +``` python +from huggingface_hub import hf_hub_download + +mask_image = hf_hub_download("diffusers/docs-images", repo_type="dataset", filename="if/sign_man_mask.png") +mask_image = Image.open(mask_image) + +mask_image +``` + +![masking_sample](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/if/masking_sample.png) + +💡 **注意**:您也可以自行手动创建灰度 mask 图片。下面是一个创建 mask 图片的代码例子。 + +``` python +from PIL import Image +import numpy as np + +height = 64 +width = 64 + +example_mask = np.zeros((height, width), dtype=np.int8) + +# 设置待修复区域的 mask 像素值为 255 +example_mask[20:30, 30:40] = 255 + +# 确保 PIL 的 mask 图片模式为 'L' +# 'L' 代表单通道灰度图 +example_mask = Image.fromarray(example_mask, mode='L') + +example_mask +``` + +![masking_by_hand](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/if/masking_by_hand.png) + +好了,我们可以开始修复图片了🎨🖌 + +### 3.1. 文本编码器 + +我们同样先加载文本编码器。 + +``` python +from transformers import T5EncoderModel + +text_encoder = T5EncoderModel.from_pretrained( + "DeepFloyd/IF-I-XL-v1.0", + subfolder="text_encoder", + device_map="auto", + load_in_8bit=True, + variant="8bit" +) +``` + +再创建一个 inpainting 管线,这次使用 `IFInpaintingPipeline` 类并初始化文本编码器预训练权重。 + +``` python +from diffusers import IFInpaintingPipeline + +pipe = IFInpaintingPipeline.from_pretrained( + "DeepFloyd/IF-I-XL-v1.0", + text_encoder=text_encoder, + unet=None, + device_map="auto" +) +``` + +我们来让图片中的这位男士为 “just stack more layers” 作个代言! + +*注:外网中的一个梗,每当现有神经网络解决不了现有问题时,就会有 Just Stack More Layers! ......* + +``` python +prompt = 'the text, "just stack more layers"' +``` + +给定 prompt 之后,接着创建 embeddings。 + +``` python +prompt_embeds, negative_embeds = pipe.encode_prompt(prompt) +``` + +然后再次释放内存。 + +``` python +del text_encoder +del pipe +flush() +``` + +### 3.2 Stage1: 核心扩散过程 + +同样地,我们只加载 Stage1 UNet 的预训练权重。 + +``` python +pipe = IFInpaintingPipeline.from_pretrained( + "DeepFloyd/IF-I-XL-v1.0", + text_encoder=None, + variant="fp16", + torch_dtype=torch.float16, + device_map="auto" +) +``` + +这里,我们需要传入原始图片、mask 图片和 prompt embeddings。 + +``` python +image = pipe( + image=original_image, + mask_image=mask_image, + prompt_embeds=prompt_embeds, + negative_prompt_embeds=negative_embeds, + output_type="pt", + generator=generator, +).images +``` + +可视化查看一下中间输出。 + +``` python +pil_image = pt_to_pil(image) +pipe.watermarker.apply_watermark(pil_image, pipe.unet.config.sample_size) + +pil_image[0] +``` + +![inpainted_output](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/if/inpainted_output.png) + +看起来不错!标语牌上的文字内容非常连贯! + +我们继续释放内存,做超分辨率放大图片。 + +``` python +del pipe +flush() +``` + +### 3.3 Stage2: 超分辨率 + +对于超分辨率,使用 `IFInpaintingSuperResolutionPipeline` 类来加载预训练权重。 + +``` python +from diffusers import IFInpaintingSuperResolutionPipeline + +pipe = IFInpaintingSuperResolutionPipeline.from_pretrained( + "DeepFloyd/IF-II-L-v1.0", + text_encoder=None, + variant="fp16", + torch_dtype=torch.float16, + device_map="auto" +) +``` + +IF 模型的 inpainting 超分辨率管线需要接收 Stage1 输出的图片、原始图片、mask 图片、以及 prompt embeddings 作为输入。 + +让我们运行最后的超分辨率管线。 + +``` python +image = pipe( + image=image, + original_image=original_image, + mask_image=mask_image, + prompt_embeds=prompt_embeds, + negative_prompt_embeds=negative_embeds, + generator=generator, +).images[0] +image +``` + +![inpainted_final_output](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/if/inpainted_final_output.png) + +非常好!IF 模型生成的单词没有出现任何拼写错误! + +## 总结 + +运行完整的 float32 精度的 IF 模型共需要至少 40GB 内存。本文展示了如何仅使用开源库来使 IF 模型能够在免费版 Google Colab 上运行并生成图片。 + +机器学习领域的生态如此壮大主要受益于各种工具和模型的开源共享。本文涉及到的模型来自于 DeepFloyd, StabilityAI, 以及 [Google](https://huggingface.co/google),涉及到的库有 Diffusers, Transformers, Accelerate, 和 bitsandbytes 等,它们同样来自于不同组织的无数贡献者。 + +非常感谢 DeepFloyd 团队创建和开源 IF 模型,以及为良好的机器学习生态做出的贡献🤗。 + From ea6bcb304a3269eaa2e7c5080f36a43e43c69aed Mon Sep 17 00:00:00 2001 From: yaoqih <40328311+yaoqih@users.noreply.github.com> Date: Thu, 4 May 2023 19:48:32 +0800 Subject: [PATCH 17/55] Update unity-in-spaces.md Add a link for AI game --- zh/unity-in-spaces.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh/unity-in-spaces.md b/zh/unity-in-spaces.md index 8c56d4fda9..7b23644023 100644 --- a/zh/unity-in-spaces.md +++ b/zh/unity-in-spaces.md @@ -18,7 +18,7 @@ translators: Hugging Face Space 是一个能够以简单的方式来构建、托管和分享项目或应用样例的平台。虽然通常更多地是应用在机器学习样例中,不过实际上 Space 还可以用来托管 Unity 游戏,并且支持点击即玩。这里有一些游戏的 Space 示例: - [Huggy](https://huggingface.co/spaces/ThomasSimonini/Huggy)。Huggy 是一个基于强化学习构建的简易游戏,玩家可以点击鼠标扔出小木棍,来教宠物狗把木棍捡回来 -- [农场游戏](https://huggingface.co/spaces/dylanebert/FarmingGame)。农场游戏是我们在 <五天创建一个农场游戏> 系列中完成的游戏,玩家可以通过种植、收获和升级农作物来打造一个自己的繁荣农场 +- [农场游戏](https://huggingface.co/spaces/dylanebert/FarmingGame)。农场游戏是我们在 [<五天创建一个农场游戏>](https://huggingface.co/blog/zh/ml-for-games-1) 系列中完成的游戏,玩家可以通过种植、收获和升级农作物来打造一个自己的繁荣农场 - [Unity API Demo](https://huggingface.co/spaces/dylanebert/UnityDemo)。一个 Unity 样例 本文将详细介绍如何在 🤗 Space 上托管自己的 Unity 游戏。 @@ -126,4 +126,4 @@ git push 至此,在 🤗 Space 上托管 Unity 游戏的所有步骤就都完成了。恭喜!现在请刷新你的 Space 页面,你就可以在 Space 上玩游戏了! -希望本教程对你有所帮助。如果你有任何疑问,或想更多地参与到 Hugging Face 游戏相关的应用中,可以加入 Hugging Face 的官方 [Discord](https://hf.co/join/discord) 频道来与我们取得联系! \ No newline at end of file +希望本教程对你有所帮助。如果你有任何疑问,或想更多地参与到 Hugging Face 游戏相关的应用中,可以加入 Hugging Face 的官方 [Discord](https://hf.co/join/discord) 频道来与我们取得联系! From adbf61707692e5c45165449ad3e791ee61fa4918 Mon Sep 17 00:00:00 2001 From: yaoqih <40328311+yaoqih@users.noreply.github.com> Date: Thu, 4 May 2023 20:05:47 +0800 Subject: [PATCH 18/55] Update if.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix “普罗大众” to “普惠大众” --- zh/if.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh/if.md b/zh/if.md index 1c900bba7a..f609c2b739 100644 --- a/zh/if.md +++ b/zh/if.md @@ -95,7 +95,7 @@ login() ## 优化 IF 模型以在有限的硬件条件下运行 -**最先进的机器学习技术不应该只掌握在少数精英手里。** 要使机器学习更 “普罗大众” 就意味着模型能够在消费级硬件上运行,而不是仅支持在最新型最高端的硬件上运行。 +**最先进的机器学习技术不应该只掌握在少数精英手里。** 要使机器学习更 “普惠大众” 就意味着模型能够在消费级硬件上运行,而不是仅支持在最新型最高端的硬件上运行。 深度学习开放社区创造了众多世界一流的工具,来支持在消费级硬件上运行资源密集型模型。例如: From 8fcb5419eabc665e2e16ca7663809af0c002bb51 Mon Sep 17 00:00:00 2001 From: "Yao, Matrix" Date: Mon, 8 May 2023 10:03:47 -0400 Subject: [PATCH 19/55] add starcoder cn Signed-off-by: Yao, Matrix --- zh/_blog.yml | 15 ++++---- zh/starcoder.md | 99 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 107 insertions(+), 7 deletions(-) create mode 100644 zh/starcoder.md diff --git a/zh/_blog.yml b/zh/_blog.yml index 5a507e12c5..1061c7316e 100644 --- a/zh/_blog.yml +++ b/zh/_blog.yml @@ -433,11 +433,12 @@ - partnerships - community -- local: deep-learning-with-proteins - title: "蛋白质深度学习" - author: rocketknight1 - thumbnail: /blog/assets/119_deep_learning_with_proteins/folding_example.png - date: December 2, 2022 +- local: starcoder + title: "StarCoder:最先进的代码大模型" + author: lvwerra + thumbnail: /blog/assets/141_starcoder/starcoder_thumbnail.png + date: May 4, 2023 tags: - - guide - - fine-tuning + - nlp + - community + - research diff --git a/zh/starcoder.md b/zh/starcoder.md new file mode 100644 index 0000000000..a8f6a191b8 --- /dev/null +++ b/zh/starcoder.md @@ -0,0 +1,99 @@ +--- +title: "StarCoder:最先进的代码大模型" +thumbnail: /blog/assets/141_starcoder/starcoder_thumbnail.png +authors: +- user: lvwerra +- user: loubnabnl +translators: +- user: MatrixYao +--- + +# StarCoder:最先进的代码大模型 + + + + +## 关于 BigCode + +BigCode 是由 Hugging Face 和 ServiceNow 共同领导的开放式科学合作项目,该项目致力于开发负责任的代码大模型。 + +## StarCoder 简介 + +StarCoder 和 StarCoderBase 是针对代码的大语言模型(代码 LLM),模型基于 GitHub 上的许可数据训练而得,训练数据中包括 80 多种编程语言、Git 提交、GitHub 问题和 Jupyter notebook。与 LLaMA 类似,我们基于 1 万亿个词元训练了一个约 15B 参数的模型。此外,我们还针对一个 35B 词元的 Python 数据集对 StarCoderBase 模型进行了微调,从而获得了一个我们称之为 StarCoder 的新模型。 + +我们发现 StarCoderBase 在流行的编程基准测试中表现优于现有其他开源的代码 LLM,同时与闭源模型相比,如来自 OpenAI 的 `code-cushman-001`(早期版本的 GitHub Copilot 背后的原始 Codex 模型),其表现也相当甚至超过了闭源模型的表现。凭借超过 8,000 个词元的上下文长度,StarCoder 模型可以处理比任何其他开源 LLM 更多的输入,从而可以赋能更广泛的有趣应用。例如,通过用多轮对话来提示 StarCoder 模型,我们可以让它们充当我们的技术助理。此外,这些模型还可用于自动补全代码、根据指令修改代码以及用自然语言解释代码片段等任务。 + +为了实现开源模型的安全发布,我们采取了一系列的措施,包括改进了 PII(Personally Identifiable Information,个人身份信息)编辑流水线、对归因跟踪工具进行了创新,并使用改进的 OpenRAIL 许可证发布 StarCoder。更新后的许可证简化了公司将模型集成到其产品中所需的流程。我们相信,凭借其强大的性能,StarCoder 模型将赋能社区将其应用或适配至广泛的应用场景和产品中。 + +## 评估 + +我们在不同的测试基准上对 StarCoder 及其他几个与其类似的模型进行了深入的评估。其中之一测试基准是 HumanEval,这是一个比较流行的 Python 基准测试,它主要测试模型是否可以根据函数的签名和文档来编写函数。我们发现 StarCoder 和 StarCoderBase 在 HumanEval 上的表现均优于最大的模型,包括 PaLM、LaMDA 和 LLaMA,尽管它们尺寸要小得多。同时,它们的性能还优于 CodeGen-16B-Mono 和 OpenAI 的 code-cushman-001 (12B) 模型。我们还注意到该模型会生成 `#Solution here` 这样的注释代码,这可能是因为此类代码通常是训练数据中代码习题的一部分。为了强制模型生成一个实际的解决方案,我们添加了提示词 `solutions/solution_1.py\n# Here is the correct implementation of the code exercise`。这使得 StarCoder 的 HumanEval 分数有了显著提高,从 34% 提升到 40% 以上,刷新了开源模型的最佳结果的记录。我们也在 CodeGen 和 StarCoderBase 上尝试了此提示词,但结果没有太大差异。 + +| **模型** | **HumanEval** | **MBPP** | +|--------------------|--------------|----------| +| LLaMA-7B | 10.5 | 17.7 | +| LaMDA-137B | 14.0 | 14.8 | +| LLaMA-13B | 15.8 | 22.0 | +| CodeGen-16B-Multi | 18.3 | 20.9 | +| LLaMA-33B | 21.7 | 30.2 | +| CodeGeeX | 22.9 | 24.4 | +| LLaMA-65B | 23.7 | 37.7 | +| PaLM-540B | 26.2 | 36.8 | +| CodeGen-16B-Mono | 29.3 | 35.3 | +| StarCoderBase | 30.4 | 49.0 | +| code-cushman-001 | 33.5 | 45.9 | +| StarCoder | 33.6 | **52.7** | +| StarCoder-Prompted | **40.8** | 49.5 | + +StarCoder 的一个有趣方面是它是多语言的,因此我们在 MultiPL-E 上对其进行了评估,MultiPL-E 是 HumanEval 的多语言扩展版。我们观察到 StarCoder 在许多编程语言上与 `code-cushman-001` 的表现相当甚至更优。在 DS-1000 数据科学基准测试中,它以明显优势击败了 `code-cushman-001` 以及所有其他开源模型。好了,我们来看看除了代码补全之外,StarCoder 还能做些什么! + +## 技术助理 + +经过详尽的评估,我们已经知道 StarCoder 非常擅长编写代码。我们还想测试它是否可以用作技术助理,毕竟它的训练数据中有大量的文档和 GitHub 问题。受 Anthropic 的 [HHH 提示](https://gist.github.com/jareddk/2509330f8ef3d787fc5aaac67aab5f11#file-hhh_prompt-txt) 的启发,我们构建了一个[技术助理提示](https://huggingface.co/datasets/bigcode/ta-prompt)。令人惊喜的是,仅凭提示,该模型就能够充当技术助理并回答与编程相关的问题! + +![技术助理示例](https://huggingface.co/datasets/bigcode/admin/resolve/main/StarCoderChatExamples.png) + +## 训练数据 + +该模型是在 The Stack 1.2 的一个子集上训练的。该数据集仅包含许可代码,它还包含一个退出流程,以便代码贡献者可以从数据集中删除他们的数据(请参见 [Am I in The Stack](https://huggingface.co/spaces/bigcode/in-the-stack))。此外,我们从训练数据中删除了个人身份信息,例如姓名、密码和电子邮件地址。 + +## 我们还发布了... + +除了模型,我们还发布了一系列其他资源和应用演示: +- 模型权重,包括具有 OpenRAIL 许可证的 checkpoints +- 所有数据预处理和训练代码,许可证为 Apache 2.0 +- 对模型进行全面评估的工具 +- 用于训练的删除掉 PII 信息的新数据集,以及用于评估 PII 信息删除效果的代码 +- 用于训练的预处理过的数据集 +- 用于在数据集中查找生成代码出处的代码归因工具 + + +## 链接 + +### 模型 +- [论文](https://drive.google.com/file/d/1cN-b9GnWtHzQRoE7M7gAEyivY0kl4BYs/view): 关于 StarCoder 的技术报告。 +- [GitHub](https://github.com/bigcode-project/starcoder/tree/main): 你可以由此获得有关如何使用或微调 StarCoder 的所有信息。 +- [StarCoder](https://huggingface.co/bigcode/starcoder): 基于 Python 数据集进一步微调 StarCoderBase 所得的模型。 +- [StarCoderBase](https://huggingface.co/bigcode/starcoderbase): 基于来自 The Stack 数据集的 80 多种编程语言训练而得的模型。 +- [StarEncoder](https://huggingface.co/bigcode/starencoder): 在 The Stack 上训练的编码器模型。 +- [StarPii](https://huggingface.co/bigcode/starpii): 基于 StarEncoder 的 PII 检测器。 + +### 工具和应用演示 +- [StarCoder Chat](https://huggingface.co/chat?model=bigcode/starcoder): 和 StarCoder 聊天! +- [VSCode Extension](https://marketplace.visualstudio.com/items?itemName=HuggingFace.huggingface-vscode): 使用 StarCoder 补全代码的 VSCode 插件! +- [StarCoder Playground](https://huggingface.co/spaces/bigcode/bigcode-playground): 用 StarCoder 写代码! +- [StarCoder Editor](https://huggingface.co/spaces/bigcode/bigcode-editor): 用 StarCoder 编辑代码! + +### 数据与治理 +- [StarCoderData](https://huggingface.co/datasets/bigcode/starcoderdata): StarCoder 的预训练数据集。 +- [Tech Assistant Prompt](https://huggingface.co/datasets/bigcode/ta-prompt): 使用该提示,你可以将 StarCoder 变成技术助理。 +- [Governance Card](): 有关模型治理的卡片。 +- [StarCoder License Agreement](https://huggingface.co/spaces/bigcode/bigcode-model-license-agreement): 该模型基于 BigCode OpenRAIL-M v1许可协议。 +- [StarCoder Search](https://huggingface.co/spaces/bigcode/search): 对预训练数据集中的代码进行全文搜索。 +- [StarCoder Membership Test](https://stack.dataportraits.org): 快速测试某代码是否存在于预训练数据集中。 + +你可以在 [huggingface.co/bigcode](https://huggingface.co/bigcode) 找到所有资源和链接! + +> 英文原文: https://huggingface.co/blog/starcoder +> 原文作者:Leandro von Werra,Loubna Ben Allal +> 译者: Matrix Yao (姚伟峰),英特尔深度学习工程师,工作方向为 transformer-family 模型在各模态数据上的应用及大规模模型的训练推理。 From 1447c06a5eb4fb0931ce1db77d0570325998ec9d Mon Sep 17 00:00:00 2001 From: "Yao, Matrix" Date: Mon, 1 May 2023 15:18:56 -0400 Subject: [PATCH 20/55] deep-learning-with-proteins cn done Signed-off-by: Yao, Matrix --- zh/_blog.yml | 11 ++- zh/deep-learning-with-proteins.md | 121 ++++++++++++++++++++++++++++++ 2 files changed, 131 insertions(+), 1 deletion(-) create mode 100644 zh/deep-learning-with-proteins.md diff --git a/zh/_blog.yml b/zh/_blog.yml index 8b5b76cd52..5789fc3e85 100644 --- a/zh/_blog.yml +++ b/zh/_blog.yml @@ -441,4 +441,13 @@ date: April 24, 2023 tags: - partnerships - - community \ No newline at end of file + - community + +- local: deep-learning-with-proteins + title: "蛋白质深度学习" + author: rocketknight1 + thumbnail: /blog/assets/119_deep_learning_with_proteins/folding_example.png + date: December 2, 2022 + tags: + - guide + - fine-tuning diff --git a/zh/deep-learning-with-proteins.md b/zh/deep-learning-with-proteins.md new file mode 100644 index 0000000000..f3021781f6 --- /dev/null +++ b/zh/deep-learning-with-proteins.md @@ -0,0 +1,121 @@ +--- +title: "蛋白质深度学习" +thumbnail: /blog/assets/119_deep_learning_with_proteins/folding_example.png +authors: +- user: rocketknight1 +translators: +- user: MatrixYao +--- + +# 蛋白质深度学习 + +本文主要面向两类目标读者:一类是想使用机器学习的生物学家,一类是想进入生物学领域的机器学习研究者。如果你不熟悉生物学或机器学习,仍然欢迎你阅读本文,但有时你可能会觉得有点读不太懂!如果你已经熟悉这两者,那么你可能根本不需要本文 —— 你可以直接跳到我们的示例 notebook 以查看这些模型的实际应用: + +- 微调蛋白质语言模型([PyTorch](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_language_modeling.ipynb),[TensorFlow](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_language_modeling-tf.ipynb)) +- 使用 ESMFold 进行蛋白质折叠([PyTorch](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_folding.ipynb),因为 `OpenFold` 仅支持 PyTorch,所以目前仅支持 PyTorch) + +## 面向生物学家的科普:语言模型是什么鬼? + +用于处理蛋白质的模型深受 BERT 和 GPT 等大语言模型的启发。因此,为了了解这些模型是如何工作的,我们要回到 2016 年左右,那时大语言模型还没有出现,特朗普还没有当选,脱欧还没有发生,深度学习(Deep Learning,DL)还是个日日新的超级新星...... DL 成功的关键在于它使用人工神经网络来学习数据中的复杂模式。不过,深度学习有一个关键问题 —— 它需要**大量**的数据才能正常工作,而在很多任务中,根本没那么多数据。 + +假设你想训练一个 DL 模型,输入一个英语句子,并判断它是否合乎语法。所以你准备了训练数据,格式如下: + +| Text | Label | +| --- | --- | +| The judge told the jurors to think carefully. | Correct | +| The judge told that the jurors to think carefully. | Incorrect | +| … | … | + +理论上,这个任务在当时是完全可行的 —— 如果你将如上格式的训练数据输入深度学习模型,它就可以学着去预测新句子是否合乎语法。但在实践中,它的效果并不怎么好,因为在 2016 年,大多数人都从一个随机初始化的新模型开始他们的每项任务。这意味着**模型必须仅从给定的训练数据中学习它们需要知道的一切!** + +我们来理解一下这到底有多难,假设你是一个机器学习模型,我提供给你一些训练数据用于完成我希望你学习的任务。假如我给你的训练数据如下: + +| Text | Label | +| --- | --- | +| Is í an stiúrthóir is fearr ar domhan! | 1 | +| Is fuath liom an scannán seo. | 0 | +| Scannán den scoth ab ea é. | 1 | +| D’fhág mé an phictiúrlann tar éis fiche nóiméad! | 0 | + +在这里,我选择了一种我希望你从未曾见过的语言,所以我猜你已经可能开始对你是否能学会这个任务不太自信了。也许在数百或数千个样本之后,你可能会开始注意到输入中一些重复出现的单词或模式,然后你可能开始能够作出比随机机猜测更好的判断,但即使这样,一旦出现新单词或之前没见过的措辞马上就能够难住你,让你猜错。无独有偶,这也是 DL 模型当时的表现! + +现在我们试试相同的任务,但这次使用英语: + +| Text | Label | +| --- | --- | +| She’s the best director in the world! | 1 | +| I hate this movie. | 0 | +| It was an absolutely excellent film. | 1 | +| I left the cinema after twenty minutes! | 0 | + +现在事情变得简单了 —— 任务只是预测电影评论是正面(1)还是负面(0)的。仅使用两个正例和两个反例,你就能以接近 100% 的准确率完成这项任务,因为**你原本就具备大量的英语词汇和语法知识,并具有电影和情感相关表达的文化背景。** 如果没有这些知识,事情就会变得更像第一个任务 —— 你需要阅读大量的例子才能开始发现输入中的表达模式,即使你花时间研究了数十万个的例子你的猜测仍然远不如在英语任务中只有四个例子准确。 + +### 关键突破:迁移学习 + +在机器学习中,我们把这种将先验知识迁移到新任务的概念称为“**迁移学习**”。在 DL 上使用迁移学习是 2016 年左右该领域的一个主要目标。预训练词向量之类的东西(非常有趣,但超出了本文的范围!)在 2016 年确实存在并且允许迁移一些知识到新的模型,但是这种知识迁移仍然比较肤浅,模型仍然需要大量的训练数据才能很好地工作。 + +这种情况一直持续到 2018 年。2018 年,两篇巨著横空出世,第一篇引入了 [ULMFiT](https://arxiv.org/abs/1801.06146) 模型,第二篇引入了 [BERT](https://arxiv.org/abs/1810.04805) 模型。这两篇论文是让自然语言迁移学习真正发挥作用的开创性论文,尤其是 BERT 标志着预训练大语言模型时代的发轫。两篇论文共同使用了一个技巧,那就是它们利用了深度学习中人工神经网络的固有性质 —— 先花较长的时间在有着丰富训练数据的文本任务上训练神经网络,然后将整个神经网络复制到新任务中,仅用新任务的数据更新或重新训练与网络输出相对应的少数神经元。 + +![迁移学习](/blog/assets/119_deep_learning_with_proteins/transfer_learning.png) + +*上图来自 [ULMFiT 论文](https://arxiv.org/abs/1801.06146),它展示了在三个独立的任务上使用迁移学习与从头开始训练模型相比带来的巨大的性能提升。在许多情况下,使用迁移学习的效果相当于拥有超过 100 倍的训练数据。不要忘记这是 2018 年发布的 —— 现代的大语言模型可以做得更好!* + +这样做的原因是,在解决任何重要任务的过程中,神经网络学习到很多输入数据的结构性知识 —— 如对于视觉神经网络,输入的是原始像素,模型学习到了如何识别直线、曲线和边缘;对于文本神经网络,输入的是原始文本,模型学习到了有关语法结构的细节。而这些信息并不特定于某些任务。—— 迁移学习起作用的关键原因是**解决任务需要知道的很多信息都不是特定于该任务的!** 要对电影评论进行分类,你不需要了解很多关于电影评论的知识,但你需要大量的英语和文化背景知识。通过选择训练数据丰富的任务,我们可以让神经网络学习此类“领域知识”,然后将其应用于我们关心的新任务,而在这些新任务中训练数据可能更难获取。 + +至此,希望你已经了解了什么是迁移学习,并且大语言模型是一个经过大量文本数据训练而得的大型神经网络,这使其成为迁移到新任务的主要备选方案。我们将在下面看到相同的技术如何应用​​于蛋白质,但首先我需要为另一半观众写一篇介绍。如果你已经熟悉这方面的知识,你可以随时跳过下一部分! + + +## 面向机器学习研究者的科普:蛋白质是什么鬼? + +简而言之,蛋白质可以做很多事情。有些蛋白质是**酶** - 它们充当化学反应的催化剂。当你的身体将营养物质转化为能量时,从食物到肌肉运动的每一步都由一种酶催化。一些蛋白质是**结构性的**,它们的功能是提供稳定性以及塑形,例如结缔组织的蛋白质。如果你看过化妆品广告,你可能看到过**胶原蛋白**、**弹性蛋白**以及**角蛋白**,这些是构成我们皮肤和头发结构的蛋白质。 + +其它蛋白质对健康和疾病至关重要 —— 每个人可能都记得有关 COVID-19 病毒的 **spike 蛋白**的无数新闻报道。 COVID spike 蛋白与人类细胞表面一种名为 ACE2 的蛋白质结合,使其能够进入细胞并传递病毒 RNA 的有效载荷。由于这种相互作用对感染至关重要,因此在 COVID 大流行期间对这些蛋白质及其相互作用进行建模是一个热门研究焦点。 + +蛋白质由多个**氨基酸组成**。氨基酸是相对简单的分子,它们都具有相同的分子结构,而该结构的化学性质允许氨基酸融合在一起,从而使单个分子可以成为一条长链。这里关键是要知道氨基酸种类不多 —— 只有 20 种标准氨基酸,某些生物体上可能还有一些其他非标准的氨基酸,但总量不多。导致蛋白质巨大多样性的原因是**这些氨基酸可以按任何顺序组合**,而由此产生的蛋白质链可以具有截然不同的形状和功能,因为链的不同部分会粘连以及彼此折叠。与文本类比一下:英语只有 26 个字母,但想想你可以用这 26 个字母的组合写出各种单词。 + +事实上,由于氨基酸的数量很少,生物学家可以为每一种氨基酸分配一个不同的字母。这意味着你可以像编写文本字符串一样编写蛋白质!例如,假设一种蛋白质链中有这些氨基酸:甲硫氨酸、丙氨酸和组氨酸。这些氨基酸的 [对应的字母](https://en.wikipedia.org/wiki/Amino_acid#Table_of_standard_amino_acid_abbreviations_and_properties) 是 M、A 和 H,因此我们可以将该链写为 “MAH” 。不过,大多数蛋白质含有数百甚至数千个氨基酸,而不仅仅是三个!! + +![蛋白质结构](/blog/assets/119_deep_learning_with_proteins/protein_structure.png) + +*上图显示了一种蛋白质的两种表示形式。所有氨基酸都包含碳 - 碳 - 氮(C-C-N)序列。当氨基酸融合到蛋白质中时,这种重复模式将贯穿始终,我们称为蛋白质的 “骨架”。然而,氨基酸的不同之处在于它们的 “侧链”,侧链指的是附着在 C-C-N 主链上的原子。图的下半部分有标记为 R1、R2 和 R3 的侧链,它们可以是任何氨基酸。在图的上半部分,中央氨基酸有一个 CH3 侧链 - 那么该氨基酸即为**丙氨酸,由字母 A 表示**([图片来源](https://commons.wikimedia.org/wiki/File:Peptide-Figure-Revised.png))。* + +尽管我们可以将其写成文本字符串,但蛋白质实际上并不是一种 “语言”,至少不是诺姆 - 乔姆斯基认可的任何一种语言。但它们确实有一些类似语言的特征,从机器学习的角度来看,它们是一个与文本非常相似的领域:只有一部分字符串是有“意义”的。随机文本是垃圾,随机蛋白质只是一个无形状的斑点。 + +此外,如果你只是孤立地考虑蛋白质的一部分,信息就会丢失,就像当你只阅读从较长文本中提取的某个句子时,信息也会丢失。蛋白质的一个区域可能只有在其它部分存在的情况下才会呈现其自然形状,因为需要其它部分帮助稳定和矫正其形状!这意味着被全局自注意力很好地捕捉到的那种长程作用力对于正确建模蛋白质非常重要。 + +至此,希望你对蛋白质是什么以及为什么生物学家如此关心它们有一个基本的概念 —— 尽管氨基酸“字母表” 、很小,但它们具有广泛的结构和功能多样性。因此如果能仅通过观察氨基酸的原始“字符串”来理解和预测蛋白质的结构和功能对研究是非常有价值的。 + +## 联袂 - 蛋白质机器学习 + +现在我们已经了解了使用语言模型进行迁移学习是如何工作的,同时我们还了解了什么是蛋白质。一旦你有了这些背景知识,下一步就不难了 —— 我们可以在蛋白质上应用相同的迁移学习思想!我们不是在涉及英文文本的任务上预先训练模型,而是在输入是蛋白质且有大量可用训练数据的任务上训练它。一旦我们这样做了,我们的模型就有希望学到很多关于蛋白质结构的知识,就像语言模型学到了很多关于语言结构的知识一样。这使得预训练的蛋白质模型有希望可以迁移到任何其它基于蛋白质的任务! + +生物学家想在哪些任务上用机器学习训练蛋白质模型?最著名的蛋白质建模任务是**蛋白质折叠**。该任务是,给定像 “MLKNV……” 这样的氨基酸链,预测蛋白质最终会折叠成什么形状。这是一项极其重要的任务,因为准确预测蛋白质的形状和结构可以深入了解蛋白质作用和机理。 + +早在现代机器学习出现之前,人们就一直在研究这个问题。最早的一些大规模分布式计算项目,如 Folding@Home,以超精的空间和时间分辨率使用原子级模拟来模拟蛋白质折叠。甚至还存在一个专门的*蛋白质晶体学*领域,该领域的研究者使用 X 射线衍射来观察从活细胞中分离出的蛋白质的结构。 + +然而,与许多其他领域一样,深度学习的到来改变了一切。 AlphaFold,尤其是 AlphaFold2 使用了 transformer 结构的深度学习模型,并在模型上增加了针对蛋白质数据的处理,在仅从原始氨基酸序列预测新型蛋白质结构方面取得了出色的结果。如果你对蛋白质折叠感兴趣,我们强烈建议你看看[我们的 ESMFold notebook](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_folding.ipynb) —— ESMFold 是一种类似于 AlphaFold2 的新模型,但它是一种更“纯”的深度学习模型,不需要任何外部数据库或搜索操作即可运行。因此,设置过程不像AlphaFold2 那样痛苦,模型运行得更快,同时仍保持出色的准确性。 + + +![蛋白质折叠示例](/blog/assets/119_deep_learning_with_proteins/folding_example.png) + +*上图为多杀巴斯德氏菌的**氨基葡萄糖 - 6 - 磷酸脱氨酶**同源二聚体的预测结构。该结构和可视化图是由上文中的 ESMFold notebook 在几秒钟内生成的。深蓝色表示结构置信度最高的区域。* + +不过,蛋白质折叠并不是我们唯一感兴趣的任务!生物学家可能想做更多的蛋白质分类任务 —— 比如他们想预测蛋白质将在细胞的哪个部分起作用,或者在蛋白质产生后其中哪些氨基酸会被修改。在机器学习的语言中,当你想对整个蛋白质进行分类(例如,预测其亚细胞定位)时,这类任务可被建模为**序列分类(sequence classification)**;当你想对每个氨基酸进行分类时(例如,预测哪些氨基酸会被翻译后修饰(Post-translational modification,PTM)),这类任务可被建模为**词分类(token classification)**。 + +不过,关键的一点是,尽管蛋白质与语言非常不同,但它们可以通过几乎完全相同的机器学习方法来处理 —— 在一个大的蛋白质序列数据库上进行大规模预训练,然后通过**迁移学习**迁移到其它训练数据可能少得多的任务。事实上,在某些方面它甚至比像 BERT 这样的大型语言模型还要简单,因为不需要复杂的分词和词解析 —— 蛋白质没有分词,因此最简单的方法是直接将每个氨基酸转换成单词。 + +## 听起来很酷,但从何下手? + +如果你已经熟悉深度学习,那么你会发现微调蛋白质模型的代码看起来与微调语言模型的代码非常相似。我们提供了 [PyTorch](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_language_modeling.ipynb) 和 [TensorFlow](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_language_modeling-tf.ipynb) 两个示例供你起步。你可以从像 [UniProt](https://www.uniprot.org/) 这样的开放蛋白质数据库中获取大量标注数据,UniProt 除了提供 REST API 接口以供访问数据外还提供了一个漂亮的 Web 界面。你的主要困难是找到有趣的研究方向进行探索,这我就爱莫能助了 —— 但我相信有很多生物学家愿意与你合作! + +反之,如果你是一名生物学家,你可能有很多想法想尝试,但可能对深入研究机器学习代码有点害怕。别怕!我们精心设计了示例([PyTorch](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_language_modeling.ipynb)、[TensorFlow](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_language_modeling-tf.ipynb)),这些示例中的数据加载部分与其他部分完全独立。这意味着如果你有一个**序列分类**或**词分类**任务,你只需要构建一个包含蛋白质序列及其应对标签的数据集,然后把我们的数据加载代码换成你自己写的用于加载你的数据集的代码就好了。 + +尽管示例中使用 [ESM-2](https://www.biorxiv.org/content/10.1101/2022.07.20.500902v1) 作为基础预训练模型,因为它在当前是最先进的。该领域的研究人员可能还熟悉其他模型,如 Rost 实验室的 [ProtBERT](https://huggingface.co/Rostlab/prot_bert)([论文链接](https://www.biorxiv.org/content/10.1101/2020.07.12.199554v3)) 是同类中最早的模型之一,并且引起了生物信息学界的极大兴趣。只需将示例代码中的 checkpoint 路径从 `facebook/esm2xxx` 改为 `Rostlab/prot_bert` 之类的,示例中的代码就可以使用 ProtBERT 模型了。 + +## 结语 + +深度学习和生物学的交叉领域将在未来几年成为一个非常活跃和成果丰硕的领域。然而,使得深度学习发展如此迅速的原因之一是人们可以快速重现结果并调整新模型以供自己使用。本着这种精神,如果你训练了一个你认为对社区有用的模型,请分享它!上面那些notebook 中都包含将模型上传到 Hub 的代码,其他研究人员可以在 Hub 上自由访问和构建它们 - 除了对该领域的好处之外,这也可以让你的论文被更多人见到和引用。你甚至可以使用 [Spaces](https://huggingface.co/docs/hub/spaces-overview) 做一个实时的网络演示版,以便其他研究人员可以输入蛋白质序列并免费获得结果,而无需编写一行代码。祝你好运,愿审稿人对你青眼相加! + +> 英文原文: https://huggingface.co/blog/deep-learning-with-proteins +> 原文作者:Matthew Carrigan +> 译者: Matrix Yao (姚伟峰),英特尔深度学习工程师,工作方向为 transformer-family 模型在各模态数据上的应用及大规模模型的训练推理。 From b993d7f70b399513c2f4e3d482e6352c3b8770df Mon Sep 17 00:00:00 2001 From: "Yao, Matrix" Date: Mon, 8 May 2023 10:03:47 -0400 Subject: [PATCH 21/55] add starcoder cn Signed-off-by: Yao, Matrix Update: formatting and punctuations of starcoder.md --- zh/_blog.yml | 15 ++++---- zh/starcoder.md | 100 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 108 insertions(+), 7 deletions(-) create mode 100644 zh/starcoder.md diff --git a/zh/_blog.yml b/zh/_blog.yml index 5789fc3e85..54b66f4f34 100644 --- a/zh/_blog.yml +++ b/zh/_blog.yml @@ -443,11 +443,12 @@ - partnerships - community -- local: deep-learning-with-proteins - title: "蛋白质深度学习" - author: rocketknight1 - thumbnail: /blog/assets/119_deep_learning_with_proteins/folding_example.png - date: December 2, 2022 +- local: starcoder + title: "StarCoder:最先进的代码大模型" + author: lvwerra + thumbnail: /blog/assets/141_starcoder/starcoder_thumbnail.png + date: May 4, 2023 tags: - - guide - - fine-tuning + - nlp + - community + - research diff --git a/zh/starcoder.md b/zh/starcoder.md new file mode 100644 index 0000000000..bdc1a25107 --- /dev/null +++ b/zh/starcoder.md @@ -0,0 +1,100 @@ +--- +title: "StarCoder:最先进的代码大模型" +thumbnail: /blog/assets/141_starcoder/starcoder_thumbnail.png +authors: +- user: lvwerra +- user: loubnabnl +translators: +- user: MatrixYao +- user: zhongdongy + proofreader: true +--- + +# StarCoder: 最先进的代码大模型 + + + + +## 关于 BigCode + +BigCode 是由 Hugging Face 和 ServiceNow 共同领导的开放式科学合作项目,该项目致力于开发负责任的代码大模型。 + +## StarCoder 简介 + +StarCoder 和 StarCoderBase 是针对代码的大语言模型 (代码 LLM),模型基于 GitHub 上的许可数据训练而得,训练数据中包括 80 多种编程语言、Git 提交、GitHub 问题和 Jupyter notebook。与 LLaMA 类似,我们基于 1 万亿个词元训练了一个约 15B 参数的模型。此外,我们还针对一个 35B 词元的 Python 数据集对 StarCoderBase 模型进行了微调,从而获得了一个我们称之为 StarCoder 的新模型。 + +我们发现 StarCoderBase 在流行的编程基准测试中表现优于现有其他开源的代码 LLM,同时与闭源模型相比,如来自 OpenAI 的 `code-cushman-001` (早期版本的 GitHub Copilot 背后的原始 Codex 模型),其表现也相当甚至超过了闭源模型的表现。凭借超过 8,000 个词元的上下文长度,StarCoder 模型可以处理比任何其他开源 LLM 更多的输入,从而可以赋能更广泛的有趣应用。例如,通过用多轮对话来提示 StarCoder 模型,我们可以让它们充当我们的技术助理。此外,这些模型还可用于自动补全代码、根据指令修改代码以及用自然语言解释代码片段等任务。 + +为了实现开源模型的安全发布,我们采取了一系列的措施,包括改进了 PII (Personally Identifiable Information,个人身份信息) 编辑流水线、对归因跟踪工具进行了创新,并使用改进的 OpenRAIL 许可证发布 StarCoder。更新后的许可证简化了公司将模型集成到其产品中所需的流程。我们相信,凭借其强大的性能,StarCoder 模型将赋能社区将其应用或适配至广泛的应用场景和产品中。 + +## 评估 + +我们在不同的测试基准上对 StarCoder 及其他几个与其类似的模型进行了深入的评估。其中之一测试基准是 HumanEval,这是一个比较流行的 Python 基准测试,它主要测试模型是否可以根据函数的签名和文档来编写函数。我们发现 StarCoder 和 StarCoderBase 在 HumanEval 上的表现均优于最大的模型,包括 PaLM、LaMDA 和 LLaMA,尽管它们尺寸要小得多。同时,它们的性能还优于 CodeGen-16B-Mono 和 OpenAI 的 code-cushman-001 (12B) 模型。我们还注意到该模型会生成 `#Solution here` 这样的注释代码,这可能是因为此类代码通常是训练数据中代码习题的一部分。为了强制模型生成一个实际的解决方案,我们添加了提示词 `solutions/solution_1.py\n# Here is the correct implementation of the code exercise`。这使得 StarCoder 的 HumanEval 分数有了显著提高,从 34% 提升到 40% 以上,刷新了开源模型的最佳结果的记录。我们也在 CodeGen 和 StarCoderBase 上尝试了此提示词,但结果没有太大差异。 + +| **模型** | **HumanEval** | **MBPP** | +|--------------------|--------------|----------| +| LLaMA-7B | 10.5 | 17.7 | +| LaMDA-137B | 14.0 | 14.8 | +| LLaMA-13B | 15.8 | 22.0 | +| CodeGen-16B-Multi | 18.3 | 20.9 | +| LLaMA-33B | 21.7 | 30.2 | +| CodeGeeX | 22.9 | 24.4 | +| LLaMA-65B | 23.7 | 37.7 | +| PaLM-540B | 26.2 | 36.8 | +| CodeGen-16B-Mono | 29.3 | 35.3 | +| StarCoderBase | 30.4 | 49.0 | +| code-cushman-001 | 33.5 | 45.9 | +| StarCoder | 33.6 | **52.7** | +| StarCoder-Prompted | **40.8** | 49.5 | + +StarCoder 的一个有趣方面是它是多语言的,因此我们在 MultiPL-E 上对其进行了评估,MultiPL-E 是 HumanEval 的多语言扩展版。我们观察到 StarCoder 在许多编程语言上与 `code-cushman-001` 的表现相当甚至更优。在 DS-1000 数据科学基准测试中,它以明显优势击败了 `code-cushman-001` 以及所有其他开源模型。好了,我们来看看除了代码补全之外,StarCoder 还能做些什么! + +## 技术助理 + +经过详尽的评估,我们已经知道 StarCoder 非常擅长编写代码。我们还想测试它是否可以用作技术助理,毕竟它的训练数据中有大量的文档和 GitHub 问题。受 Anthropic 的 [HHH 提示](https://gist.github.com/jareddk/2509330f8ef3d787fc5aaac67aab5f11#file-hhh_prompt-txt) 的启发,我们构建了一个 [技术助理提示](https://huggingface.co/datasets/bigcode/ta-prompt)。令人惊喜的是,仅凭提示,该模型就能够充当技术助理并回答与编程相关的问题! + +![技术助理示例](https://huggingface.co/datasets/bigcode/admin/resolve/main/StarCoderChatExamples.png) + +## 训练数据 + +该模型是在 The Stack 1.2 的一个子集上训练的。该数据集仅包含许可代码,它还包含一个退出流程,以便代码贡献者可以从数据集中删除他们的数据 (请参见 [Am I in The Stack](https://huggingface.co/spaces/bigcode/in-the-stack))。此外,我们从训练数据中删除了个人身份信息,例如姓名、密码和电子邮件地址。 + +## 我们还发布了…… + +除了模型,我们还发布了一系列其他资源和应用演示: + +- 模型权重,包括具有 OpenRAIL 许可证的 checkpoints +- 所有数据预处理和训练代码,许可证为 Apache 2.0 +- 对模型进行全面评估的工具 +- 用于训练的删除掉 PII 信息的新数据集,以及用于评估 PII 信息删除效果的代码 +- 用于训练的预处理过的数据集 +- 用于在数据集中查找生成代码出处的代码归因工具 + +## 链接 + +### 模型 + +- [论文](https://drive.google.com/file/d/1cN-b9GnWtHzQRoE7M7gAEyivY0kl4BYs/view): 关于 StarCoder 的技术报告。 +- [GitHub](https://github.com/bigcode-project/starcoder/tree/main): 你可以由此获得有关如何使用或微调 StarCoder 的所有信息。 +- [StarCoder](https://huggingface.co/bigcode/starcoder): 基于 Python 数据集进一步微调 StarCoderBase 所得的模型。 +- [StarCoderBase](https://huggingface.co/bigcode/starcoderbase): 基于来自 The Stack 数据集的 80 多种编程语言训练而得的模型。 +- [StarEncoder](https://huggingface.co/bigcode/starencoder): 在 The Stack 上训练的编码器模型。 +- [StarPii](https://huggingface.co/bigcode/starpii): 基于 StarEncoder 的 PII 检测器。 + +### 工具和应用演示 + +- [StarCoder Chat](https://huggingface.co/chat?model=bigcode/starcoder): 和 StarCoder 聊天! +- [VSCode Extension](https://marketplace.visualstudio.com/items?itemName=HuggingFace.huggingface-vscode): 使用 StarCoder 补全代码的 VSCode 插件! +- [StarCoder Playground](https://huggingface.co/spaces/bigcode/bigcode-playground): 用 StarCoder 写代码! +- [StarCoder Editor](https://huggingface.co/spaces/bigcode/bigcode-editor): 用 StarCoder 编辑代码! + +### 数据与治理 + +- [StarCoderData](https://huggingface.co/datasets/bigcode/starcoderdata): StarCoder 的预训练数据集。 +- [Tech Assistant Prompt](https://huggingface.co/datasets/bigcode/ta-prompt): 使用该提示,你可以将 StarCoder 变成技术助理。 +- [Governance Card](): 有关模型治理的卡片。 +- [StarCoder License Agreement](https://huggingface.co/spaces/bigcode/bigcode-model-license-agreement): 该模型基于 BigCode OpenRAIL-M v1 许可协议。 +- [StarCoder Search](https://huggingface.co/spaces/bigcode/search): 对预训练数据集中的代码进行全文搜索。 +- [StarCoder Membership Test](https://stack.dataportraits.org): 快速测试某代码是否存在于预训练数据集中。 + +你可以在 [huggingface.co/bigcode](https://huggingface.co/bigcode) 找到所有资源和链接! \ No newline at end of file From 8c958279664490126741c5a9e01ebfbba192ff50 Mon Sep 17 00:00:00 2001 From: Zhongdong Yang Date: Tue, 9 May 2023 17:02:34 +0800 Subject: [PATCH 22/55] Update: proofreading zh/unity-in-spaces.md --- zh/_blog.yml | 10 +++++++ zh/unity-in-spaces.md | 63 ++++++++++++++++++++++--------------------- 2 files changed, 42 insertions(+), 31 deletions(-) diff --git a/zh/_blog.yml b/zh/_blog.yml index 54b66f4f34..64ffb706d6 100644 --- a/zh/_blog.yml +++ b/zh/_blog.yml @@ -434,6 +434,16 @@ - guide - graphs +- local: unity-in-spaces +title: "如何在 🤗 Space 上托管 Unity 游戏" +author: dylanebert +thumbnail: /blog/assets/124_ml-for-games/unity-in-spaces-thumbnail.png +date: April 21, 2023 +tags: + - community + - guide + - game-dev + - local: chinese-language-blog title: "Hugging Face 中文博客正式发布!" author: xianbao diff --git a/zh/unity-in-spaces.md b/zh/unity-in-spaces.md index 7b23644023..c9550a6cbb 100644 --- a/zh/unity-in-spaces.md +++ b/zh/unity-in-spaces.md @@ -5,17 +5,18 @@ authors: - user: dylanebert translators: - user: SuSung-boy +- user: zhongdongy + proofreader: true --- -

如何在 🤗 Space 上托管 Unity 游戏

+# 如何在 🤗 Space 上托管 Unity 游戏 - + +你知道吗?Hugging Face Space 可以托管自己开发的 Unity 游戏!惊不惊喜,意不意外?来了解一下吧! -你知道吗?Hugging Face Space 可以托管自己开发的 Unity 游戏!惊不惊喜,意不意外?!来了解一下吧! - -Hugging Face Space 是一个能够以简单的方式来构建、托管和分享项目或应用样例的平台。虽然通常更多地是应用在机器学习样例中,不过实际上 Space 还可以用来托管 Unity 游戏,并且支持点击即玩。这里有一些游戏的 Space 示例: +Hugging Face Space 是一个能够以简单的方式来构建、托管和分享项目或应用样例的平台。虽然通常更多地是应用在机器学习样例中,不过实际上 Space 还可以用来托管 Unity 游戏,并且支持点击即玩。这里有一些游戏的 Space 示例: - [Huggy](https://huggingface.co/spaces/ThomasSimonini/Huggy)。Huggy 是一个基于强化学习构建的简易游戏,玩家可以点击鼠标扔出小木棍,来教宠物狗把木棍捡回来 - [农场游戏](https://huggingface.co/spaces/dylanebert/FarmingGame)。农场游戏是我们在 [<五天创建一个农场游戏>](https://huggingface.co/blog/zh/ml-for-games-1) 系列中完成的游戏,玩家可以通过种植、收获和升级农作物来打造一个自己的繁荣农场 @@ -23,53 +24,53 @@ Hugging Face Space 是一个能够以简单的方式来构建、托管和分享 本文将详细介绍如何在 🤗 Space 上托管自己的 Unity 游戏。 -## 第一步:使用静态 HTML 模板创建 Space 应用 +## 第 1 步: 使用静态 HTML 模板创建 Space 应用 首先,导航至 [Hugging Face Spaces](https://huggingface.co/new-space) 页面,创建一个新的 Space 应用。
-
+ 选择 “静态 HTML” 模板,并为该 Space 取个名字,然后点击创建 Space。
-
+ -## 第 2 步:使用 Git 克隆 Space 库到本地 +## 第 2 步: 使用 Git 克隆 Space 库到本地 -使用 Git 将上一步创建的 Space 库克隆到本地。克隆命令如下: +使用 Git 将上一步创建的 Space 库克隆到本地。克隆命令如下: ``` git clone https://huggingface.co/spaces/{your-username}/{your-space-name} ``` -## 第 3 步:打开 Unity 项目 +## 第 3 步: 打开 Unity 项目 -打开你希望在 🤗 Space 上托管的 Unity 项目。 +打开你希望在 🤗 Space 上托管的 Unity 项目
-
+ -## 第 4 步:将构建目标切换为 WebGL +## 第 4 步: 将构建目标切换为 WebGL 点击菜单栏的 `File > Build Settings`,将构建目标切换为 WebGL。
-
+ -## 第 5 步:打开 Player Settings 面板 +## 第 5 步: 打开 Player Settings 面板 在上一步打开的 Build Settings 窗口中,点击左下角的 “Player Settings” 按钮,打开 Player Settings 面板。
-
+ -## 第 6 步:(可选) 下载 Hugging Face Unity WebGL 模板 +## 第 6 步:(可选) 下载 Hugging Face Unity WebGL 模板 Hugging Face Unity WebGL 模板可以使得你制作的游戏在 🤗 Space 上展示地更加美观。可以点击 [此处](https://github.com/huggingface/Unity-WebGL-template-for-Hugging-Face-Spaces) 下载模板库,并将其放到你的游戏项目目录,然后在 Player Settings 面板中将 WebGL 模板切换为 Hugging Face 即可。 @@ -77,44 +78,44 @@ Hugging Face Unity WebGL 模板可以使得你制作的游戏在 🤗 Space 上
-
+ -## 第 7 步:禁用压缩 +## 第 7 步: 禁用压缩 在 Player Settings 面板中点击 “Publishing Settings”,将 Compression Format 改为 “Disabled” 来禁用压缩。
-
+ -## 第 8 步:构建游戏项目 +## 第 8 步: 构建游戏项目 返回 Build Settings 窗口,并点击 “Build” 按钮,选择一个本地目录来保存构建的游戏项目文件。按照前几步的设置,Unity 将会把项目构建为 WebGL。
-
+ -## 第 9 步:将构建完成的文件复制到 Space 库 +## 第 9 步: 将构建完成的文件复制到 Space 库 -构建过程完成之后,打开上一步中项目保存的本地目录,将该目录下的文件复制到 [第 2 步](#第-2-步使用-git-克隆-space-step-2-use-git-to-clone-the-space) 中克隆的 Space 库里。 +构建过程完成之后,打开上一步中项目保存的本地目录,将该目录下的文件复制到 [第 2 步](#第-2-步-使用-git-克隆-space-库到本地) 中克隆的 Space 库里。
-
+ -## 第 10 步:为大文件存储启用 Git-LFS +## 第 10 步: 为大文件存储启用 Git-LFS 打开 Space 库, 在该目录执行以下命令来追踪构建的大型文件。 ``` git lfs install -git track Build/* +git track Build/* ``` -## 第 11 步:Push 到 Hugging Face Space +## 第 11 步: Push 到 Hugging Face Space -最后,将本地的 Space 库的所有改动推送到 Hugging Face Space 上。执行以下 Git 命令即可完成推送: +最后,将本地的 Space 库的所有改动推送到 Hugging Face Space 上。执行以下 Git 命令即可完成推送: ``` git add . @@ -126,4 +127,4 @@ git push 至此,在 🤗 Space 上托管 Unity 游戏的所有步骤就都完成了。恭喜!现在请刷新你的 Space 页面,你就可以在 Space 上玩游戏了! -希望本教程对你有所帮助。如果你有任何疑问,或想更多地参与到 Hugging Face 游戏相关的应用中,可以加入 Hugging Face 的官方 [Discord](https://hf.co/join/discord) 频道来与我们取得联系! +希望本教程对你有所帮助。如果你有任何疑问,或想更多地参与到 Hugging Face 游戏相关的应用中,可以加入 Hugging Face 的官方 [Discord](https://hf.co/join/discord) 频道来与我们取得联系! \ No newline at end of file From 9536776e8b86044eb974a1803fc700a1189a51be Mon Sep 17 00:00:00 2001 From: Shiliang Chen <36809537+csl122@users.noreply.github.com> Date: Mon, 8 May 2023 10:50:39 +0100 Subject: [PATCH 23/55] fix(annotated-diffusion.md): fix image shape desc in PIL and Tensor (#1080) modifiy the comment after ToTensor with the correct image shape CHW --- annotated-diffusion.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/annotated-diffusion.md b/annotated-diffusion.md index db72065d72..4ee958b770 100644 --- a/annotated-diffusion.md +++ b/annotated-diffusion.md @@ -595,7 +595,7 @@ from PIL import Image import requests url = 'http://images.cocodataset.org/val2017/000000039769.jpg' -image = Image.open(requests.get(url, stream=True).raw) +image = Image.open(requests.get(url, stream=True).raw) # PIL image of shape HWC image ``` @@ -616,7 +616,7 @@ image_size = 128 transform = Compose([ Resize(image_size), CenterCrop(image_size), - ToTensor(), # turn into Numpy array of shape HWC, divide by 255 + ToTensor(), # turn into torch Tensor of shape CHW, divide by 255 Lambda(lambda t: (t * 2) - 1), ]) From d1fad90e0184cb53ebc3fa4b6435ed2f07e63f7d Mon Sep 17 00:00:00 2001 From: Alara Dirik <8944735+alaradirik@users.noreply.github.com> Date: Mon, 8 May 2023 14:41:38 +0300 Subject: [PATCH 24/55] Add text-to-video blog (#1058) Adds an overview of text-to-video generative models, task specific challenges, datasets, and more. Co-authored-by: Omar Sanseviero Co-authored-by: amyeroberts <22614925+amyeroberts@users.noreply.github.com> --- _blog.yml | 15 +++- assets/140_text-to-video/thumbnail.png | Bin 0 -> 536697 bytes text-to-video.md | 117 +++++++++++++++++++++++++ 3 files changed, 131 insertions(+), 1 deletion(-) create mode 100644 assets/140_text-to-video/thumbnail.png create mode 100644 text-to-video.md diff --git a/_blog.yml b/_blog.yml index d46db0c61f..1f05900f0a 100644 --- a/_blog.yml +++ b/_blog.yml @@ -2041,7 +2041,7 @@ - community - local: tf_tpu - title: "Training a language model with 🤗 Transformers using TensorFlow and TPUs" + title: "Training a language model with 🤗 Transformers using TensorFlow and TPUs" author: rocketknight1 thumbnail: /blog/assets/tf_tpu_training/thumbnail.png date: April 27, 2023 @@ -2079,3 +2079,16 @@ - nlp - community - research + +- local: text-to-video + title: "A Dive into Text-to-Video Models" + author: adirik + thumbnail: /blog/assets/140_text-to-video/thumbnail.png + date: May 8, 2023 + tags: + - multi-modal + - cv + - guide + - diffusion + - text-to-image + - text-to-video diff --git a/assets/140_text-to-video/thumbnail.png b/assets/140_text-to-video/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..08d0dc99ade17abf578dda7944288213e67c9678 GIT binary patch literal 536697 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

S;$T+H{{XnCBWBOFM>hP6=Wl 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ⅅsdb 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 SEfU%Q0000Text-to-Video: The Task, Challenges and the Current State + + + + +

+ video-samples
+ Video samples generated with
ModelScope. +

+ +Text-to-video is next in line in the long list of incredible advances in generative models. As self-descriptive as it is, text-to-video is a fairly new computer vision task that involves generating a sequence of images from text descriptions that are both temporally and spatially consistent. While this task might seem extremely similar to text-to-image, it is notoriously more difficult. How do these models work, how do they differ from text-to-image models, and what kind of performance can we expect from them? + +In this blog post, we will discuss the past, present, and future of text-to-video models. We will start by reviewing the differences between the text-to-video and text-to-image tasks, and discuss the unique challenges of unconditional and text-conditioned video generation. Additionally, we will cover the most recent developments in text-to-video models, exploring how these methods work and what they are capable of. Finally, we will talk about what we are working on at Hugging Face to facilitate the integration and use of these models and share some cool demos and resources both on and outside of the Hugging Face Hub. + +

+ samples
+ Examples of videos generated from various text description inputs, image taken from Make-a-Video. +

+ +## Text-to-Video vs. Text-to-Image +With so many recent developments, it can be difficult to keep up with the current state of text-to-image generative models. Let's do a quick recap first. + +Just two years ago, the first open-vocabulary, high-quality text-to-image generative models emerged. This first wave of text-to-image models, including VQGAN-CLIP, XMC-GAN, and GauGAN2, all had GAN architectures. These were quickly followed OpenAI's massively popular transformer-based DALL-E in early 2021, DALL-E 2 in April 2022, and a new wave of diffusion models pioneered by Stable Diffusion and Imagen. The huge success of Stable Diffusion led to many productionized diffusion models, such as DreamStudio and RunwayML GEN-1, and integration with existing products, such as Midjourney. + +Despite the impressive capabilities of diffusion models in text-to-image generation, diffusion and non-diffusion based text-to-video models are significantly more limited in their generative capabilities. Text-to-video are typically trained on very short clips, meaning they require a computationally expensive and slow sliding window approach to generate long videos. As a result, these models are notoriously difficult to deploy and scale and remain limited in context and length. + +The text-to-video task faces unique challenges on multiple fronts. Some of these main challenges include: + +- Computational challenges: Ensuring spatial and temporal consistency across frames creates long-term dependencies that come with a high computation cost, making training such models unaffordable for most researchers. +- Lack of high-quality datasets: Multi-modal datasets for text-to-video generation are scarce and often sparsely annotated, making it difficult to learn complex movement semantics. +- Vagueness around video captioning: Describing videos in a way that makes them easier for models to learn from is an open question. More than a single short text prompt is required to provide a complete video description. A generated video must be conditioned on a sequence of prompts or a story that narrates what happens over time. + +In the next section, we will discuss the timeline of developments in the text-to-video domain and the various methods proposed to address these challenges separately. On a higher level, text-to-video works propose one of these: +1. New, higher-quality datasets that are easier to learn from. +2. Methods to train such models without paired text-video data. +3. More computationally efficient methods to generate longer and higher resolution videos. + +## How to Generate Videos from Text? +Let's take a look at how text-to-video generation works and the latest developments in this field. We will explore how text-to-video models have evolved, following a similar path to text-to-image research, and how the specific challenges of text-to-video generation have been tackled so far. + +Like the text-to-image task, early work on text-to-video generation dates back only a few years. Early research predominantly used GAN and VAE-based approaches to auto-regressively generate frames given a caption (see [Text2Filter](https://huggingface.co/papers/1710.00421) and [TGANs-C](https://huggingface.co/papers/1804.08264)). While these works provided the foundation for a new computer vision task, they are limited to low resolutions, short-range, and singular, isolated motions. + +

+ tgans-c
+ Initial text-to-video models were extremely limited in resolution, context and length, image taken from TGANs-C. +

+ +Taking inspiration from the success of large-scale pretrained transformer models in text (GPT-3) and image (DALL-E), the next surge of text-to-video generation research adopted transformer architectures. [Phenaki](https://huggingface.co/papers/2210.02399), [Make-A-Video](https://huggingface.co/papers/2209.14792), [NUWA](https://huggingface.co/papers/2111.12417), [VideoGPT](https://huggingface.co/papers/2104.10157) and [CogVideo](https://huggingface.co/papers/2205.15868) all propose transformer-based frameworks, while works such as [TATS](https://huggingface.co/papers/2204.03638) propose hybrid methods that combine VQGAN for image generation and a time-sensitive transformer module for sequential generation of frames. Out of this second wave of works, Phenaki is particularly interesting as it enables generating arbitrary long videos conditioned on a sequence of prompts, in other words, a story line. Similarly, [NUWA-Infinity](https://huggingface.co/papers/2207.09814) proposes an autoregressive over autoregressive generation mechanism for infinite image and video synthesis from text inputs, enabling the generation of long, HD quality videos. However, neither Phenaki or NUWA models are publicly available. + +

+ phenaki
+ Phenaki features a transformer-based architecture, image taken from here. +

+ +The third and current wave of text-to-video models features predominantly diffusion-based architectures. The remarkable success of diffusion models in diverse, hyper-realistic, and contextually rich image generation has led to an interest in generalizing diffusion models to other domains such as audio, 3D, and, more recently, video. This wave of models is pioneered by [Video Diffusion Models](https://huggingface.co/papers/2204.03458) (VDM), which extend diffusion models to the video domain, and [MagicVideo](https://huggingface.co/papers/2211.11018), which proposes a framework to generate video clips in a low-dimensional latent space and reports huge efficiency gains over VDM. Another notable mention is [Tune-a-Video](https://huggingface.co/papers/2212.11565), which fine-tunes a pretrained text-to-image model with a single text-video pair and enables changing the video content while preserving the motion. The continuously expanding list of text-to-video diffusion models that followed include [Video LDM](https://huggingface.co/papers/2304.08818), [Text2Video-Zero](https://huggingface.co/papers/2303.13439), [Runway Gen1 and Gen2](https://huggingface.co/papers/2302.03011), and [NUWA-XL](https://huggingface.co/papers/2303.12346). + +Text2Video-Zero is a text-guided video generation and manipulation framework that works in a fashion similar to ControlNet. It can directly generate (or edit) videos based on text inputs, as well as combined text-pose or text-edge data inputs. As implied by its name, Text2Video-Zero is a zero-shot model that combines a trainable motion dynamics module with a pre-trained text-to-image Stable Diffusion model without using any paired text-video data. Similarly to Text2Video-Zero, Runway’s Gen-1 and Gen-2 models enable synthesizing videos guided by content described through text or images. Most of these works are trained on short video clips and rely on autoregressive generation with a sliding window to generate longer videos, inevitably resulting in a context gap. NUWA-XL addresses this issue and proposes a “diffusion over diffusion” method to train models on 3376 frames. Finally, there are open-source text-to-video models and frameworks such as Alibaba / DAMO Vision Intelligence Lab’s ModelScope and Tencel’s VideoCrafter, which haven't been published in peer-reviewed conferences or journals. + +## Datasets +Like other vision-language models, text-to-video models are typically trained on large paired datasets videos and text descriptions. The videos in these datasets are typically split into short, fixed-length chunks and often limited to isolated actions with a few objects. While this is partly due to computational limitations and partly due to the difficulty of describing video content in a meaningful way, we see that developments in multimodal video-text datasets and text-to-video models are often entwined. While some work focuses on developing better, more generalizable datasets that are easier to learn from, works such as [Phenaki](https://phenaki.video/?mc_cid=9fee7eeb9d#) explore alternative solutions such as combining text-image pairs with text-video pairs for the text-to-video task. Make-a-Video takes this even further by proposing using only text-image pairs to learn what the world looks like and unimodal video data to learn spatio-temporal dependencies in an unsupervised fashion. + +These large datasets suffer from similar problems of that of text-image datasets. The most commonly used text-video dataset, [WebVid](https://m-bain.github.io/webvid-dataset/), consists of 10.7 million pairs of text-video pairs (52K video hours) and contains a fair amount of noisy samples with irrelevant video descriptions. Other datasets try to overcome this issue by focusing on specific tasks or domains. For example, the [Howto100M](https://www.di.ens.fr/willow/research/howto100m/) dataset consists of 136M video clips with captions that describe how to perform complex tasks such as cooking, handcrafting, gardening, and fitness step-by-step. Similarly, the [QuerYD](https://www.robots.ox.ac.uk/~vgg/data/queryd/) dataset focuses on the event localization task such that the captions of videos describe the relative location of objects and actions in detail. [CelebV-Text](https://celebv-text.github.io/) is a large-scale facial text-video dataset of over 70K videos to generate videos with realistic faces, emotions, and gestures. + +## Text-to-Video at Hugging Face +Using Hugging Face Diffusers, you can easily download, run and fine-tune various pretrained text-to-video models, including Text2Video-Zero and ModelScope by [Alibaba / DAMO Vision Intelligence Lab](https://huggingface.co/damo-vilab). We are currently working on integrating other exciting works into Diffusers and 🤗 Transformers. + +### Hugging Face Demos +At Hugging Face, our goal is to make it easier to use and build upon state-of-the-art research. Head over to our hub to see and play around with Spaces demos contributed by the 🤗 team, countless community contributors and research authors. At the moment, we host demos for [VideoGPT](https://huggingface.co/spaces/akhaliq/VideoGPT), [CogVideo](https://huggingface.co/spaces/THUDM/CogVideo), [ModelScope Text-to-Video](https://huggingface.co/spaces/damo-vilab/modelscope-text-to-video-synthesis), and [Text2Video-Zero](https://huggingface.co/spaces/PAIR/Text2Video-Zero) with many more to come. To see what we can do with these models, let's take a look at the Text2Video-Zero demo. This demo not only illustrates text-to-video generation but also enables multiple other generation modes for text-guided video editing and joint conditional video generation using pose, depth and edge inputs along with text prompts. + + + + + +Apart from using demos to experiment with pretrained text-to-video models, you can also use the [Tune-a-Video training demo](https://huggingface.co/spaces/Tune-A-Video-library/Tune-A-Video-Training-UI) to fine-tune an existing text-to-image model with your own text-video pair. To try it out, upload a video and enter a text prompt that describes the video. Once the training is done, you can upload it to the Hub under the Tune-a-Video community or your own username, publicly or privately. Once the training is done, simply head over to the *Run* tab of the demo to generate videos from any text prompt. + + + + +All Spaces on the 🤗 Hub are Git repos you can clone and run on your local or deployment environment. Let’s clone the ModelScope demo, install the requirements, and run it locally. + +``` +git clone https://huggingface.co/spaces/damo-vilab/modelscope-text-to-video-synthesis +cd modelscope-text-to-video-synthesis +pip install -r requirements.txt +python app.py +``` + +And that's it! The Modelscope demo is now running locally on your computer. Note that the ModelScope text-to-video model is supported in Diffusers and you can directly load and use the model to generate new videos with a few lines of code. + +``` +import torch +from diffusers import DiffusionPipeline, DPMSolverMultistepScheduler +from diffusers.utils import export_to_video + +pipe = DiffusionPipeline.from_pretrained("damo-vilab/text-to-video-ms-1.7b", torch_dtype=torch.float16, variant="fp16") +pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config) +pipe.enable_model_cpu_offload() + +prompt = "Spiderman is surfing" +video_frames = pipe(prompt, num_inference_steps=25).frames +video_path = export_to_video(video_frames) +``` + +### Community Contributions and Open Source Text-to-Video Projects +Finally, there are various open source projects and models that are not on the hub. Some notable mentions are Phil Wang’s (aka lucidrains) unofficial implementations of [Imagen](https://github.com/lucidrains/imagen-pytorch), [Phenaki](https://github.com/lucidrains/phenaki-pytorch), [NUWA](https://github.com/lucidrains/nuwa-pytorch), [Make-a-Video](https://github.com/lucidrains/make-a-video-pytorch) and [Video Diffusion Models](https://github.com/lucidrains/video-diffusion-pytorch). Another exciting project by [ExponentialML](https://github.com/ExponentialML/Text-To-Video-Finetuning) builds on top of 🤗 diffusers to finetune ModelScope Text-to-Video. + +## Conclusion +Text-to-video research is progressing exponentially, but existing work is still limited in context and faces many challenges. In this blog post, we covered the constraints, unique challenges and the current state of text-to-video generation models. We also saw how architectural paradigms originally designed for other tasks enable giant leaps in the text-to-video generation task and what this means for future research. While the developments are impressive, text-to-video models still have a long way to go compared to text-to-image models. Finally, we also showed how you can use these models to perform various tasks using the demos available on the Hub or as a part of 🤗 Diffusers pipelines. + +That was it! We are continuing to integrate the most impactful computer vision and multi-modal models and would love to hear back from you. To stay up to date with the latest news in computer vision and multi-modal research, you can follow us on Twitter: **[@adirik](https://twitter.com/https://twitter.com/alaradirik)**, **[@a_e_roberts](https://twitter.com/a_e_roberts)**, [@osanseviero](https://twitter.com/NielsRogge), [@risingsayak](https://twitter.com/risingsayak) and **[@huggingface](https://twitter.com/huggingface)**. \ No newline at end of file From ac63c3f70ce3084d6948563e704403a1ac4fa87e Mon Sep 17 00:00:00 2001 From: Alara Dirik <8944735+alaradirik@users.noreply.github.com> Date: Mon, 8 May 2023 14:43:58 +0300 Subject: [PATCH 25/55] Fix broken link in text-to-video.md (#1083) --- text-to-video.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text-to-video.md b/text-to-video.md index bf2b7cafb4..e21033c59d 100644 --- a/text-to-video.md +++ b/text-to-video.md @@ -114,4 +114,4 @@ Finally, there are various open source projects and models that are not on the h ## Conclusion Text-to-video research is progressing exponentially, but existing work is still limited in context and faces many challenges. In this blog post, we covered the constraints, unique challenges and the current state of text-to-video generation models. We also saw how architectural paradigms originally designed for other tasks enable giant leaps in the text-to-video generation task and what this means for future research. While the developments are impressive, text-to-video models still have a long way to go compared to text-to-image models. Finally, we also showed how you can use these models to perform various tasks using the demos available on the Hub or as a part of 🤗 Diffusers pipelines. -That was it! We are continuing to integrate the most impactful computer vision and multi-modal models and would love to hear back from you. To stay up to date with the latest news in computer vision and multi-modal research, you can follow us on Twitter: **[@adirik](https://twitter.com/https://twitter.com/alaradirik)**, **[@a_e_roberts](https://twitter.com/a_e_roberts)**, [@osanseviero](https://twitter.com/NielsRogge), [@risingsayak](https://twitter.com/risingsayak) and **[@huggingface](https://twitter.com/huggingface)**. \ No newline at end of file +That was it! We are continuing to integrate the most impactful computer vision and multi-modal models and would love to hear back from you. To stay up to date with the latest news in computer vision and multi-modal research, you can follow us on Twitter: **[@adirik](https://twitter.com/alaradirik)**, **[@a_e_roberts](https://twitter.com/a_e_roberts)**, [@osanseviero](https://twitter.com/NielsRogge), [@risingsayak](https://twitter.com/risingsayak) and **[@huggingface](https://twitter.com/huggingface)**. From f87d10cd24c0b759bb8cad516bc532bde5d17fe9 Mon Sep 17 00:00:00 2001 From: Zhongdong Yang Date: Tue, 9 May 2023 17:02:34 +0800 Subject: [PATCH 26/55] Update: proofreading zh/unity-in-spaces.md Fix: incorrect _blog.yml format --- zh/_blog.yml | 10 +++++++ zh/unity-in-spaces.md | 63 ++++++++++++++++++++++--------------------- 2 files changed, 42 insertions(+), 31 deletions(-) diff --git a/zh/_blog.yml b/zh/_blog.yml index 54b66f4f34..9a1a7f5ada 100644 --- a/zh/_blog.yml +++ b/zh/_blog.yml @@ -434,6 +434,16 @@ - guide - graphs +- local: unity-in-spaces + title: "如何在 🤗 Space 上托管 Unity 游戏" + author: dylanebert + thumbnail: /blog/assets/124_ml-for-games/unity-in-spaces-thumbnail.png + date: April 21, 2023 + tags: + - community + - guide + - game-dev + - local: chinese-language-blog title: "Hugging Face 中文博客正式发布!" author: xianbao diff --git a/zh/unity-in-spaces.md b/zh/unity-in-spaces.md index 7b23644023..c9550a6cbb 100644 --- a/zh/unity-in-spaces.md +++ b/zh/unity-in-spaces.md @@ -5,17 +5,18 @@ authors: - user: dylanebert translators: - user: SuSung-boy +- user: zhongdongy + proofreader: true --- -

如何在 🤗 Space 上托管 Unity 游戏

+# 如何在 🤗 Space 上托管 Unity 游戏 - + +你知道吗?Hugging Face Space 可以托管自己开发的 Unity 游戏!惊不惊喜,意不意外?来了解一下吧! -你知道吗?Hugging Face Space 可以托管自己开发的 Unity 游戏!惊不惊喜,意不意外?!来了解一下吧! - -Hugging Face Space 是一个能够以简单的方式来构建、托管和分享项目或应用样例的平台。虽然通常更多地是应用在机器学习样例中,不过实际上 Space 还可以用来托管 Unity 游戏,并且支持点击即玩。这里有一些游戏的 Space 示例: +Hugging Face Space 是一个能够以简单的方式来构建、托管和分享项目或应用样例的平台。虽然通常更多地是应用在机器学习样例中,不过实际上 Space 还可以用来托管 Unity 游戏,并且支持点击即玩。这里有一些游戏的 Space 示例: - [Huggy](https://huggingface.co/spaces/ThomasSimonini/Huggy)。Huggy 是一个基于强化学习构建的简易游戏,玩家可以点击鼠标扔出小木棍,来教宠物狗把木棍捡回来 - [农场游戏](https://huggingface.co/spaces/dylanebert/FarmingGame)。农场游戏是我们在 [<五天创建一个农场游戏>](https://huggingface.co/blog/zh/ml-for-games-1) 系列中完成的游戏,玩家可以通过种植、收获和升级农作物来打造一个自己的繁荣农场 @@ -23,53 +24,53 @@ Hugging Face Space 是一个能够以简单的方式来构建、托管和分享 本文将详细介绍如何在 🤗 Space 上托管自己的 Unity 游戏。 -## 第一步:使用静态 HTML 模板创建 Space 应用 +## 第 1 步: 使用静态 HTML 模板创建 Space 应用 首先,导航至 [Hugging Face Spaces](https://huggingface.co/new-space) 页面,创建一个新的 Space 应用。
-
+ 选择 “静态 HTML” 模板,并为该 Space 取个名字,然后点击创建 Space。
-
+ -## 第 2 步:使用 Git 克隆 Space 库到本地 +## 第 2 步: 使用 Git 克隆 Space 库到本地 -使用 Git 将上一步创建的 Space 库克隆到本地。克隆命令如下: +使用 Git 将上一步创建的 Space 库克隆到本地。克隆命令如下: ``` git clone https://huggingface.co/spaces/{your-username}/{your-space-name} ``` -## 第 3 步:打开 Unity 项目 +## 第 3 步: 打开 Unity 项目 -打开你希望在 🤗 Space 上托管的 Unity 项目。 +打开你希望在 🤗 Space 上托管的 Unity 项目
-
+ -## 第 4 步:将构建目标切换为 WebGL +## 第 4 步: 将构建目标切换为 WebGL 点击菜单栏的 `File > Build Settings`,将构建目标切换为 WebGL。
-
+ -## 第 5 步:打开 Player Settings 面板 +## 第 5 步: 打开 Player Settings 面板 在上一步打开的 Build Settings 窗口中,点击左下角的 “Player Settings” 按钮,打开 Player Settings 面板。
-
+ -## 第 6 步:(可选) 下载 Hugging Face Unity WebGL 模板 +## 第 6 步:(可选) 下载 Hugging Face Unity WebGL 模板 Hugging Face Unity WebGL 模板可以使得你制作的游戏在 🤗 Space 上展示地更加美观。可以点击 [此处](https://github.com/huggingface/Unity-WebGL-template-for-Hugging-Face-Spaces) 下载模板库,并将其放到你的游戏项目目录,然后在 Player Settings 面板中将 WebGL 模板切换为 Hugging Face 即可。 @@ -77,44 +78,44 @@ Hugging Face Unity WebGL 模板可以使得你制作的游戏在 🤗 Space 上
-
+ -## 第 7 步:禁用压缩 +## 第 7 步: 禁用压缩 在 Player Settings 面板中点击 “Publishing Settings”,将 Compression Format 改为 “Disabled” 来禁用压缩。
-
+ -## 第 8 步:构建游戏项目 +## 第 8 步: 构建游戏项目 返回 Build Settings 窗口,并点击 “Build” 按钮,选择一个本地目录来保存构建的游戏项目文件。按照前几步的设置,Unity 将会把项目构建为 WebGL。
-
+ -## 第 9 步:将构建完成的文件复制到 Space 库 +## 第 9 步: 将构建完成的文件复制到 Space 库 -构建过程完成之后,打开上一步中项目保存的本地目录,将该目录下的文件复制到 [第 2 步](#第-2-步使用-git-克隆-space-step-2-use-git-to-clone-the-space) 中克隆的 Space 库里。 +构建过程完成之后,打开上一步中项目保存的本地目录,将该目录下的文件复制到 [第 2 步](#第-2-步-使用-git-克隆-space-库到本地) 中克隆的 Space 库里。
-
+ -## 第 10 步:为大文件存储启用 Git-LFS +## 第 10 步: 为大文件存储启用 Git-LFS 打开 Space 库, 在该目录执行以下命令来追踪构建的大型文件。 ``` git lfs install -git track Build/* +git track Build/* ``` -## 第 11 步:Push 到 Hugging Face Space +## 第 11 步: Push 到 Hugging Face Space -最后,将本地的 Space 库的所有改动推送到 Hugging Face Space 上。执行以下 Git 命令即可完成推送: +最后,将本地的 Space 库的所有改动推送到 Hugging Face Space 上。执行以下 Git 命令即可完成推送: ``` git add . @@ -126,4 +127,4 @@ git push 至此,在 🤗 Space 上托管 Unity 游戏的所有步骤就都完成了。恭喜!现在请刷新你的 Space 页面,你就可以在 Space 上玩游戏了! -希望本教程对你有所帮助。如果你有任何疑问,或想更多地参与到 Hugging Face 游戏相关的应用中,可以加入 Hugging Face 的官方 [Discord](https://hf.co/join/discord) 频道来与我们取得联系! +希望本教程对你有所帮助。如果你有任何疑问,或想更多地参与到 Hugging Face 游戏相关的应用中,可以加入 Hugging Face 的官方 [Discord](https://hf.co/join/discord) 频道来与我们取得联系! \ No newline at end of file From 4f102c39a8d90041f8d1b877c712e3141caf0870 Mon Sep 17 00:00:00 2001 From: Zhongdong Yang Date: Wed, 10 May 2023 18:13:05 +0800 Subject: [PATCH 27/55] Update: proofreading zh/deep-learning-with-proteins.md --- zh/deep-learning-with-proteins.md | 71 +++++++++++++++---------------- 1 file changed, 35 insertions(+), 36 deletions(-) diff --git a/zh/deep-learning-with-proteins.md b/zh/deep-learning-with-proteins.md index f3021781f6..00392e24f9 100644 --- a/zh/deep-learning-with-proteins.md +++ b/zh/deep-learning-with-proteins.md @@ -5,20 +5,22 @@ authors: - user: rocketknight1 translators: - user: MatrixYao +- user: zhongdongy + proofreader: true --- # 蛋白质深度学习 -本文主要面向两类目标读者:一类是想使用机器学习的生物学家,一类是想进入生物学领域的机器学习研究者。如果你不熟悉生物学或机器学习,仍然欢迎你阅读本文,但有时你可能会觉得有点读不太懂!如果你已经熟悉这两者,那么你可能根本不需要本文 —— 你可以直接跳到我们的示例 notebook 以查看这些模型的实际应用: +本文主要面向两类目标读者: 一类是想使用机器学习的生物学家,一类是想进入生物学领域的机器学习研究者。如果你不熟悉生物学或机器学习,仍然欢迎你阅读本文,但有时你可能会觉得有点读不太懂!如果你已经熟悉这两者,那么你可能根本不需要本文 —— 你可以直接跳到我们的示例 notebook 以查看这些模型的实际应用: -- 微调蛋白质语言模型([PyTorch](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_language_modeling.ipynb),[TensorFlow](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_language_modeling-tf.ipynb)) -- 使用 ESMFold 进行蛋白质折叠([PyTorch](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_folding.ipynb),因为 `OpenFold` 仅支持 PyTorch,所以目前仅支持 PyTorch) +- 微调蛋白质语言模型 ([PyTorch](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_language_modeling.ipynb),[TensorFlow](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_language_modeling-tf.ipynb)) +- 使用 ESMFold 进行蛋白质折叠 ([PyTorch](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_folding.ipynb),因为 `OpenFold` 仅支持 PyTorch,所以目前仅支持 PyTorch) -## 面向生物学家的科普:语言模型是什么鬼? +## 面向生物学家的科普: 语言模型是什么鬼? -用于处理蛋白质的模型深受 BERT 和 GPT 等大语言模型的启发。因此,为了了解这些模型是如何工作的,我们要回到 2016 年左右,那时大语言模型还没有出现,特朗普还没有当选,脱欧还没有发生,深度学习(Deep Learning,DL)还是个日日新的超级新星...... DL 成功的关键在于它使用人工神经网络来学习数据中的复杂模式。不过,深度学习有一个关键问题 —— 它需要**大量**的数据才能正常工作,而在很多任务中,根本没那么多数据。 +用于处理蛋白质的模型深受 BERT 和 GPT 等大语言模型的启发。因此,为了了解这些模型是如何工作的,我们要回到 2016 年左右,那时大语言模型还没有出现,特朗普还没有当选,脱欧还没有发生,深度学习 (Deep Learning,DL) 还是个日日新的超级新星 …… DL 成功的关键在于它使用人工神经网络来学习数据中的复杂模式。不过,深度学习有一个关键问题 —— 它需要 **大量** 的数据才能正常工作,而在很多任务中,根本没那么多数据。 -假设你想训练一个 DL 模型,输入一个英语句子,并判断它是否合乎语法。所以你准备了训练数据,格式如下: +假设你想训练一个 DL 模型,输入一个英语句子,并判断它是否合乎语法。所以你准备了训练数据,格式如下: | Text | Label | | --- | --- | @@ -26,9 +28,9 @@ translators: | The judge told that the jurors to think carefully. | Incorrect | | … | … | -理论上,这个任务在当时是完全可行的 —— 如果你将如上格式的训练数据输入深度学习模型,它就可以学着去预测新句子是否合乎语法。但在实践中,它的效果并不怎么好,因为在 2016 年,大多数人都从一个随机初始化的新模型开始他们的每项任务。这意味着**模型必须仅从给定的训练数据中学习它们需要知道的一切!** +理论上,这个任务在当时是完全可行的 —— 如果你将如上格式的训练数据输入深度学习模型,它就可以学着去预测新句子是否合乎语法。但在实践中,它的效果并不怎么好,因为在 2016 年,大多数人都从一个随机初始化的新模型开始他们的每项任务。这意味着 **模型必须仅从给定的训练数据中学习它们需要知道的一切!** -我们来理解一下这到底有多难,假设你是一个机器学习模型,我提供给你一些训练数据用于完成我希望你学习的任务。假如我给你的训练数据如下: +我们来理解一下这到底有多难,假设你是一个机器学习模型,我提供给你一些训练数据用于完成我希望你学习的任务。假如我给你的训练数据如下: | Text | Label | | --- | --- | @@ -39,7 +41,7 @@ translators: 在这里,我选择了一种我希望你从未曾见过的语言,所以我猜你已经可能开始对你是否能学会这个任务不太自信了。也许在数百或数千个样本之后,你可能会开始注意到输入中一些重复出现的单词或模式,然后你可能开始能够作出比随机机猜测更好的判断,但即使这样,一旦出现新单词或之前没见过的措辞马上就能够难住你,让你猜错。无独有偶,这也是 DL 模型当时的表现! -现在我们试试相同的任务,但这次使用英语: +现在我们试试相同的任务,但这次使用英语: | Text | Label | | --- | --- | @@ -48,38 +50,39 @@ translators: | It was an absolutely excellent film. | 1 | | I left the cinema after twenty minutes! | 0 | -现在事情变得简单了 —— 任务只是预测电影评论是正面(1)还是负面(0)的。仅使用两个正例和两个反例,你就能以接近 100% 的准确率完成这项任务,因为**你原本就具备大量的英语词汇和语法知识,并具有电影和情感相关表达的文化背景。** 如果没有这些知识,事情就会变得更像第一个任务 —— 你需要阅读大量的例子才能开始发现输入中的表达模式,即使你花时间研究了数十万个的例子你的猜测仍然远不如在英语任务中只有四个例子准确。 +现在事情变得简单了 —— 任务只是预测电影评论是正面 (1) 还是负面 (0) 的。仅使用两个正例和两个反例,你就能以接近 100% 的准确率完成这项任务,因为 **你原本就具备大量的英语词汇和语法知识,并具有电影和情感相关表达的文化背景。** 如果没有这些知识,事情就会变得更像第一个任务 —— 你需要阅读大量的例子才能开始发现输入中的表达模式,即使你花时间研究了数十万个的例子你的猜测仍然远不如在英语任务中只有四个例子准确。 -### 关键突破:迁移学习 +### 关键突破: 迁移学习 -在机器学习中,我们把这种将先验知识迁移到新任务的概念称为“**迁移学习**”。在 DL 上使用迁移学习是 2016 年左右该领域的一个主要目标。预训练词向量之类的东西(非常有趣,但超出了本文的范围!)在 2016 年确实存在并且允许迁移一些知识到新的模型,但是这种知识迁移仍然比较肤浅,模型仍然需要大量的训练数据才能很好地工作。 +在机器学习中,我们把这种将先验知识迁移到新任务的概念称为“**迁移学习**”。在 DL 上使用迁移学习是 2016 年左右该领域的一个主要目标。预训练词向量之类的东西 (非常有趣,但超出了本文的范围!) 在 2016 年确实存在并且允许迁移一些知识到新的模型,但是这种知识迁移仍然比较肤浅,模型仍然需要大量的训练数据才能很好地工作。 这种情况一直持续到 2018 年。2018 年,两篇巨著横空出世,第一篇引入了 [ULMFiT](https://arxiv.org/abs/1801.06146) 模型,第二篇引入了 [BERT](https://arxiv.org/abs/1810.04805) 模型。这两篇论文是让自然语言迁移学习真正发挥作用的开创性论文,尤其是 BERT 标志着预训练大语言模型时代的发轫。两篇论文共同使用了一个技巧,那就是它们利用了深度学习中人工神经网络的固有性质 —— 先花较长的时间在有着丰富训练数据的文本任务上训练神经网络,然后将整个神经网络复制到新任务中,仅用新任务的数据更新或重新训练与网络输出相对应的少数神经元。 ![迁移学习](/blog/assets/119_deep_learning_with_proteins/transfer_learning.png) -*上图来自 [ULMFiT 论文](https://arxiv.org/abs/1801.06146),它展示了在三个独立的任务上使用迁移学习与从头开始训练模型相比带来的巨大的性能提升。在许多情况下,使用迁移学习的效果相当于拥有超过 100 倍的训练数据。不要忘记这是 2018 年发布的 —— 现代的大语言模型可以做得更好!* -这样做的原因是,在解决任何重要任务的过程中,神经网络学习到很多输入数据的结构性知识 —— 如对于视觉神经网络,输入的是原始像素,模型学习到了如何识别直线、曲线和边缘;对于文本神经网络,输入的是原始文本,模型学习到了有关语法结构的细节。而这些信息并不特定于某些任务。—— 迁移学习起作用的关键原因是**解决任务需要知道的很多信息都不是特定于该任务的!** 要对电影评论进行分类,你不需要了解很多关于电影评论的知识,但你需要大量的英语和文化背景知识。通过选择训练数据丰富的任务,我们可以让神经网络学习此类“领域知识”,然后将其应用于我们关心的新任务,而在这些新任务中训练数据可能更难获取。 +_上图来自 [ULMFiT 论文](https://arxiv.org/abs/1801.06146),它展示了在三个独立的任务上使用迁移学习与从头开始训练模型相比带来的巨大的性能提升。在许多情况下,使用迁移学习的效果相当于拥有超过 100 倍的训练数据。不要忘记这是 2018 年发布的 —— 现代的大语言模型可以做得更好!_ -至此,希望你已经了解了什么是迁移学习,并且大语言模型是一个经过大量文本数据训练而得的大型神经网络,这使其成为迁移到新任务的主要备选方案。我们将在下面看到相同的技术如何应用​​于蛋白质,但首先我需要为另一半观众写一篇介绍。如果你已经熟悉这方面的知识,你可以随时跳过下一部分! +这样做的原因是,在解决任何重要任务的过程中,神经网络学习到很多输入数据的结构性知识 —— 如对于视觉神经网络,输入的是原始像素,模型学习到了如何识别直线、曲线和边缘; 对于文本神经网络,输入的是原始文本,模型学习到了有关语法结构的细节。而这些信息并不特定于某些任务。—— 迁移学习起作用的关键原因是 **解决任务需要知道的很多信息都不是特定于该任务的!** 要对电影评论进行分类,你不需要了解很多关于电影评论的知识,但你需要大量的英语和文化背景知识。通过选择训练数据丰富的任务,我们可以让神经网络学习此类“领域知识”,然后将其应用于我们关心的新任务,而在这些新任务中训练数据可能更难获取。 +至此,希望你已经了解了什么是迁移学习,并且大语言模型是一个经过大量文本数据训练而得的大型神经网络,这使其成为迁移到新任务的主要备选方案。我们将在下面看到相同的技术如何应用​​于蛋白质,但首先我需要为另一半观众写一篇介绍。如果你已经熟悉这方面的知识,你可以随时跳过下一部分! -## 面向机器学习研究者的科普:蛋白质是什么鬼? +## 面向机器学习研究者的科普: 蛋白质是什么鬼? -简而言之,蛋白质可以做很多事情。有些蛋白质是**酶** - 它们充当化学反应的催化剂。当你的身体将营养物质转化为能量时,从食物到肌肉运动的每一步都由一种酶催化。一些蛋白质是**结构性的**,它们的功能是提供稳定性以及塑形,例如结缔组织的蛋白质。如果你看过化妆品广告,你可能看到过**胶原蛋白**、**弹性蛋白**以及**角蛋白**,这些是构成我们皮肤和头发结构的蛋白质。 +简而言之,蛋白质可以做很多事情。有些蛋白质是 **酶** —— 它们充当化学反应的催化剂。当你的身体将营养物质转化为能量时,从食物到肌肉运动的每一步都由一种酶催化。一些蛋白质是 **结构性的**,它们的功能是提供稳定性以及塑形,例如结缔组织的蛋白质。如果你看过化妆品广告,你可能看到过 **胶原蛋白**、 **弹性蛋白** 以及 **角蛋白**,这些是构成我们皮肤和头发结构的蛋白质。 -其它蛋白质对健康和疾病至关重要 —— 每个人可能都记得有关 COVID-19 病毒的 **spike 蛋白**的无数新闻报道。 COVID spike 蛋白与人类细胞表面一种名为 ACE2 的蛋白质结合,使其能够进入细胞并传递病毒 RNA 的有效载荷。由于这种相互作用对感染至关重要,因此在 COVID 大流行期间对这些蛋白质及其相互作用进行建模是一个热门研究焦点。 +其它蛋白质对健康和疾病至关重要 —— 每个人可能都记得有关 COVID-19 病毒的 **spike 蛋白** 的无数新闻报道。 COVID spike 蛋白与人类细胞表面一种名为 ACE2 的蛋白质结合,使其能够进入细胞并传递病毒 RNA 的有效载荷。由于这种相互作用对感染至关重要,因此在 COVID 大流行期间对这些蛋白质及其相互作用进行建模是一个热门研究焦点。 -蛋白质由多个**氨基酸组成**。氨基酸是相对简单的分子,它们都具有相同的分子结构,而该结构的化学性质允许氨基酸融合在一起,从而使单个分子可以成为一条长链。这里关键是要知道氨基酸种类不多 —— 只有 20 种标准氨基酸,某些生物体上可能还有一些其他非标准的氨基酸,但总量不多。导致蛋白质巨大多样性的原因是**这些氨基酸可以按任何顺序组合**,而由此产生的蛋白质链可以具有截然不同的形状和功能,因为链的不同部分会粘连以及彼此折叠。与文本类比一下:英语只有 26 个字母,但想想你可以用这 26 个字母的组合写出各种单词。 +蛋白质由多个 **氨基酸组成**。氨基酸是相对简单的分子,它们都具有相同的分子结构,而该结构的化学性质允许氨基酸融合在一起,从而使单个分子可以成为一条长链。这里关键是要知道氨基酸种类不多 —— 只有 20 种标准氨基酸,某些生物体上可能还有一些其他非标准的氨基酸,但总量不多。导致蛋白质巨大多样性的原因是 **这些氨基酸可以按任何顺序组合**,而由此产生的蛋白质链可以具有截然不同的形状和功能,因为链的不同部分会粘连以及彼此折叠。与文本类比一下: 英语只有 26 个字母,但想想你可以用这 26 个字母的组合写出各种单词。 -事实上,由于氨基酸的数量很少,生物学家可以为每一种氨基酸分配一个不同的字母。这意味着你可以像编写文本字符串一样编写蛋白质!例如,假设一种蛋白质链中有这些氨基酸:甲硫氨酸、丙氨酸和组氨酸。这些氨基酸的 [对应的字母](https://en.wikipedia.org/wiki/Amino_acid#Table_of_standard_amino_acid_abbreviations_and_properties) 是 M、A 和 H,因此我们可以将该链写为 “MAH” 。不过,大多数蛋白质含有数百甚至数千个氨基酸,而不仅仅是三个!! +事实上,由于氨基酸的数量很少,生物学家可以为每一种氨基酸分配一个不同的字母。这意味着你可以像编写文本字符串一样编写蛋白质!例如,假设一种蛋白质链中有这些氨基酸: 甲硫氨酸、丙氨酸和组氨酸。这些氨基酸的 [对应的字母](https://en.wikipedia.org/wiki/Amino_acid#Table_of_standard_amino_acid_abbreviations_and_properties) 是 M、A 和 H,因此我们可以将该链写为 “MAH”。不过,大多数蛋白质含有数百甚至数千个氨基酸,而不仅仅是三个!! ![蛋白质结构](/blog/assets/119_deep_learning_with_proteins/protein_structure.png) -*上图显示了一种蛋白质的两种表示形式。所有氨基酸都包含碳 - 碳 - 氮(C-C-N)序列。当氨基酸融合到蛋白质中时,这种重复模式将贯穿始终,我们称为蛋白质的 “骨架”。然而,氨基酸的不同之处在于它们的 “侧链”,侧链指的是附着在 C-C-N 主链上的原子。图的下半部分有标记为 R1、R2 和 R3 的侧链,它们可以是任何氨基酸。在图的上半部分,中央氨基酸有一个 CH3 侧链 - 那么该氨基酸即为**丙氨酸,由字母 A 表示**([图片来源](https://commons.wikimedia.org/wiki/File:Peptide-Figure-Revised.png))。* -尽管我们可以将其写成文本字符串,但蛋白质实际上并不是一种 “语言”,至少不是诺姆 - 乔姆斯基认可的任何一种语言。但它们确实有一些类似语言的特征,从机器学习的角度来看,它们是一个与文本非常相似的领域:只有一部分字符串是有“意义”的。随机文本是垃圾,随机蛋白质只是一个无形状的斑点。 +_上图显示了一种蛋白质的两种表示形式。所有氨基酸都包含碳 - 碳 - 氮 (C-C-N) 序列。当氨基酸融合到蛋白质中时,这种重复模式将贯穿始终,我们称为蛋白质的 “骨架”。然而,氨基酸的不同之处在于它们的 “侧链”,侧链指的是附着在 C-C-N 主链上的原子。图的下半部分有标记为 R1、R2 和 R3 的侧链,它们可以是任何氨基酸。在图的上半部分,中央氨基酸有一个 CH3 侧链 - 那么该氨基酸即为 **丙氨酸,由字母 A 表示**([图片来源](https://commons.wikimedia.org/wiki/File:Peptide-Figure-Revised.png))。_ + +尽管我们可以将其写成文本字符串,但蛋白质实际上并不是一种 “语言”,至少不是诺姆 - 乔姆斯基认可的任何一种语言。但它们确实有一些类似语言的特征,从机器学习的角度来看,它们是一个与文本非常相似的领域: 只有一部分字符串是有“意义”的。随机文本是垃圾,随机蛋白质只是一个无形状的斑点。 此外,如果你只是孤立地考虑蛋白质的一部分,信息就会丢失,就像当你只阅读从较长文本中提取的某个句子时,信息也会丢失。蛋白质的一个区域可能只有在其它部分存在的情况下才会呈现其自然形状,因为需要其它部分帮助稳定和矫正其形状!这意味着被全局自注意力很好地捕捉到的那种长程作用力对于正确建模蛋白质非常重要。 @@ -89,33 +92,29 @@ translators: 现在我们已经了解了使用语言模型进行迁移学习是如何工作的,同时我们还了解了什么是蛋白质。一旦你有了这些背景知识,下一步就不难了 —— 我们可以在蛋白质上应用相同的迁移学习思想!我们不是在涉及英文文本的任务上预先训练模型,而是在输入是蛋白质且有大量可用训练数据的任务上训练它。一旦我们这样做了,我们的模型就有希望学到很多关于蛋白质结构的知识,就像语言模型学到了很多关于语言结构的知识一样。这使得预训练的蛋白质模型有希望可以迁移到任何其它基于蛋白质的任务! -生物学家想在哪些任务上用机器学习训练蛋白质模型?最著名的蛋白质建模任务是**蛋白质折叠**。该任务是,给定像 “MLKNV……” 这样的氨基酸链,预测蛋白质最终会折叠成什么形状。这是一项极其重要的任务,因为准确预测蛋白质的形状和结构可以深入了解蛋白质作用和机理。 +生物学家想在哪些任务上用机器学习训练蛋白质模型?最著名的蛋白质建模任务是 **蛋白质折叠**。该任务是,给定像 “MLKNV……” 这样的氨基酸链,预测蛋白质最终会折叠成什么形状。这是一项极其重要的任务,因为准确预测蛋白质的形状和结构可以深入了解蛋白质作用和机理。 -早在现代机器学习出现之前,人们就一直在研究这个问题。最早的一些大规模分布式计算项目,如 Folding@Home,以超精的空间和时间分辨率使用原子级模拟来模拟蛋白质折叠。甚至还存在一个专门的*蛋白质晶体学*领域,该领域的研究者使用 X 射线衍射来观察从活细胞中分离出的蛋白质的结构。 - -然而,与许多其他领域一样,深度学习的到来改变了一切。 AlphaFold,尤其是 AlphaFold2 使用了 transformer 结构的深度学习模型,并在模型上增加了针对蛋白质数据的处理,在仅从原始氨基酸序列预测新型蛋白质结构方面取得了出色的结果。如果你对蛋白质折叠感兴趣,我们强烈建议你看看[我们的 ESMFold notebook](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_folding.ipynb) —— ESMFold 是一种类似于 AlphaFold2 的新模型,但它是一种更“纯”的深度学习模型,不需要任何外部数据库或搜索操作即可运行。因此,设置过程不像AlphaFold2 那样痛苦,模型运行得更快,同时仍保持出色的准确性。 +早在现代机器学习出现之前,人们就一直在研究这个问题。最早的一些大规模分布式计算项目,如 Folding@Home,以超精的空间和时间分辨率使用原子级模拟来模拟蛋白质折叠。甚至还存在一个专门的 _蛋白质晶体学_领域,该领域的研究者使用 X 射线衍射来观察从活细胞中分离出的蛋白质的结构。 +然而,与许多其他领域一样,深度学习的到来改变了一切。 AlphaFold,尤其是 AlphaFold2 使用了 transformer 结构的深度学习模型,并在模型上增加了针对蛋白质数据的处理,在仅从原始氨基酸序列预测新型蛋白质结构方面取得了出色的结果。如果你对蛋白质折叠感兴趣,我们强烈建议你看看 [我们的 ESMFold notebook](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_folding.ipynb) —— ESMFold 是一种类似于 AlphaFold2 的新模型,但它是一种更“纯”的深度学习模型,不需要任何外部数据库或搜索操作即可运行。因此,设置过程不像 AlphaFold2 那样痛苦,模型运行得更快,同时仍保持出色的准确性。 ![蛋白质折叠示例](/blog/assets/119_deep_learning_with_proteins/folding_example.png) -*上图为多杀巴斯德氏菌的**氨基葡萄糖 - 6 - 磷酸脱氨酶**同源二聚体的预测结构。该结构和可视化图是由上文中的 ESMFold notebook 在几秒钟内生成的。深蓝色表示结构置信度最高的区域。* -不过,蛋白质折叠并不是我们唯一感兴趣的任务!生物学家可能想做更多的蛋白质分类任务 —— 比如他们想预测蛋白质将在细胞的哪个部分起作用,或者在蛋白质产生后其中哪些氨基酸会被修改。在机器学习的语言中,当你想对整个蛋白质进行分类(例如,预测其亚细胞定位)时,这类任务可被建模为**序列分类(sequence classification)**;当你想对每个氨基酸进行分类时(例如,预测哪些氨基酸会被翻译后修饰(Post-translational modification,PTM)),这类任务可被建模为**词分类(token classification)**。 +_上图为多杀巴斯德氏菌的 **氨基葡萄糖 - 6 - 磷酸脱氨酶** 同源二聚体的预测结构。该结构和可视化图是由上文中的 ESMFold notebook 在几秒钟内生成的。深蓝色表示结构置信度最高的区域。_ + +不过,蛋白质折叠并不是我们唯一感兴趣的任务!生物学家可能想做更多的蛋白质分类任务 —— 比如他们想预测蛋白质将在细胞的哪个部分起作用,或者在蛋白质产生后其中哪些氨基酸会被修改。在机器学习的语言中,当你想对整个蛋白质进行分类 (例如,预测其亚细胞定位) 时,这类任务可被建模为 **序列分类 (sequence classification)**; 当你想对每个氨基酸进行分类时 (例如,预测哪些氨基酸会被翻译后修饰 (Post-translational modification,PTM) ),这类任务可被建模为 **词分类 (token classification)**。 -不过,关键的一点是,尽管蛋白质与语言非常不同,但它们可以通过几乎完全相同的机器学习方法来处理 —— 在一个大的蛋白质序列数据库上进行大规模预训练,然后通过**迁移学习**迁移到其它训练数据可能少得多的任务。事实上,在某些方面它甚至比像 BERT 这样的大型语言模型还要简单,因为不需要复杂的分词和词解析 —— 蛋白质没有分词,因此最简单的方法是直接将每个氨基酸转换成单词。 +不过,关键的一点是,尽管蛋白质与语言非常不同,但它们可以通过几乎完全相同的机器学习方法来处理 —— 在一个大的蛋白质序列数据库上进行大规模预训练,然后通过 **迁移学习** 迁移到其它训练数据可能少得多的任务。事实上,在某些方面它甚至比像 BERT 这样的大型语言模型还要简单,因为不需要复杂的分词和词解析 —— 蛋白质没有分词,因此最简单的方法是直接将每个氨基酸转换成单词。 ## 听起来很酷,但从何下手? 如果你已经熟悉深度学习,那么你会发现微调蛋白质模型的代码看起来与微调语言模型的代码非常相似。我们提供了 [PyTorch](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_language_modeling.ipynb) 和 [TensorFlow](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_language_modeling-tf.ipynb) 两个示例供你起步。你可以从像 [UniProt](https://www.uniprot.org/) 这样的开放蛋白质数据库中获取大量标注数据,UniProt 除了提供 REST API 接口以供访问数据外还提供了一个漂亮的 Web 界面。你的主要困难是找到有趣的研究方向进行探索,这我就爱莫能助了 —— 但我相信有很多生物学家愿意与你合作! -反之,如果你是一名生物学家,你可能有很多想法想尝试,但可能对深入研究机器学习代码有点害怕。别怕!我们精心设计了示例([PyTorch](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_language_modeling.ipynb)、[TensorFlow](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_language_modeling-tf.ipynb)),这些示例中的数据加载部分与其他部分完全独立。这意味着如果你有一个**序列分类**或**词分类**任务,你只需要构建一个包含蛋白质序列及其应对标签的数据集,然后把我们的数据加载代码换成你自己写的用于加载你的数据集的代码就好了。 +反之,如果你是一名生物学家,你可能有很多想法想尝试,但可能对深入研究机器学习代码有点害怕。别怕!我们精心设计了示例 ([PyTorch](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_language_modeling.ipynb)、[TensorFlow](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/protein_language_modeling-tf.ipynb)),这些示例中的数据加载部分与其他部分完全独立。这意味着如果你有一个 **序列分类** 或 **词分类** 任务,你只需要构建一个包含蛋白质序列及其应对标签的数据集,然后把我们的数据加载代码换成你自己写的用于加载你的数据集的代码就好了。 -尽管示例中使用 [ESM-2](https://www.biorxiv.org/content/10.1101/2022.07.20.500902v1) 作为基础预训练模型,因为它在当前是最先进的。该领域的研究人员可能还熟悉其他模型,如 Rost 实验室的 [ProtBERT](https://huggingface.co/Rostlab/prot_bert)([论文链接](https://www.biorxiv.org/content/10.1101/2020.07.12.199554v3)) 是同类中最早的模型之一,并且引起了生物信息学界的极大兴趣。只需将示例代码中的 checkpoint 路径从 `facebook/esm2xxx` 改为 `Rostlab/prot_bert` 之类的,示例中的代码就可以使用 ProtBERT 模型了。 +尽管示例中使用 [ESM-2](https://www.biorxiv.org/content/10.1101/2022.07.20.500902v1) 作为基础预训练模型,因为它在当前是最先进的。该领域的研究人员可能还熟悉其他模型,如 Rost 实验室的 [ProtBERT](https://huggingface.co/Rostlab/prot_bert) ([论文链接](https://www.biorxiv.org/content/10.1101/2020.07.12.199554v3)) 是同类中最早的模型之一,并且引起了生物信息学界的极大兴趣。只需将示例代码中的 checkpoint 路径从 `facebook/esm2xxx` 改为 `Rostlab/prot_bert` 之类的,示例中的代码就可以使用 ProtBERT 模型了。 ## 结语 -深度学习和生物学的交叉领域将在未来几年成为一个非常活跃和成果丰硕的领域。然而,使得深度学习发展如此迅速的原因之一是人们可以快速重现结果并调整新模型以供自己使用。本着这种精神,如果你训练了一个你认为对社区有用的模型,请分享它!上面那些notebook 中都包含将模型上传到 Hub 的代码,其他研究人员可以在 Hub 上自由访问和构建它们 - 除了对该领域的好处之外,这也可以让你的论文被更多人见到和引用。你甚至可以使用 [Spaces](https://huggingface.co/docs/hub/spaces-overview) 做一个实时的网络演示版,以便其他研究人员可以输入蛋白质序列并免费获得结果,而无需编写一行代码。祝你好运,愿审稿人对你青眼相加! - -> 英文原文: https://huggingface.co/blog/deep-learning-with-proteins -> 原文作者:Matthew Carrigan -> 译者: Matrix Yao (姚伟峰),英特尔深度学习工程师,工作方向为 transformer-family 模型在各模态数据上的应用及大规模模型的训练推理。 +深度学习和生物学的交叉领域将在未来几年成为一个非常活跃和成果丰硕的领域。然而,使得深度学习发展如此迅速的原因之一是人们可以快速重现结果并调整新模型以供自己使用。本着这种精神,如果你训练了一个你认为对社区有用的模型,请分享它!上面那些 notebook 中都包含将模型上传到 Hub 的代码,其他研究人员可以在 Hub 上自由访问和构建它们 - 除了对该领域的好处之外,这也可以让你的论文被更多人见到和引用。你甚至可以使用 [Spaces](https://huggingface.co/docs/hub/spaces-overview) 做一个实时的网络演示版,以便其他研究人员可以输入蛋白质序列并免费获得结果,而无需编写一行代码。祝你好运,愿审稿人对你青眼相加! \ No newline at end of file From 79ad5157916b0aaba1c0dd56334ab3717212debc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B4=8B?= <45715979+innovation64@users.noreply.github.com> Date: Thu, 11 May 2023 16:03:36 +0800 Subject: [PATCH 28/55] update ethics-diffusers-cn (#6) * update ethics-diffusers * update ethics-diffusers --------- Co-authored-by: Zhongdong Yang --- zh/_blog.yml | 9 ++++++++ zh/ethics-diffusers.md | 47 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 zh/ethics-diffusers.md diff --git a/zh/_blog.yml b/zh/_blog.yml index 9a1a7f5ada..fff98b4fa5 100644 --- a/zh/_blog.yml +++ b/zh/_blog.yml @@ -336,6 +336,15 @@ - safety - alignment +- local: ethics-diffusers + title: "开发 Diffusers 库的道德行为指南" + author: giadap + thumbnail: /blog/assets/ethics-diffusers/thumbnail.png + date: March 2, 2023 + tags: + - ethics + - diffusers + - local: controlnet title: "使用 🧨 Diffusers 实现 ControlNet 高速推理" author: sayakpaul diff --git a/zh/ethics-diffusers.md b/zh/ethics-diffusers.md new file mode 100644 index 0000000000..cf030e526f --- /dev/null +++ b/zh/ethics-diffusers.md @@ -0,0 +1,47 @@ +--- +title: "开发 Diffusers 库的道德行为指南" +thumbnail: /blog/assets/ethics-diffusers/thumbnail.png +authors: +- user: giadap +translators: +- user: innovation64 +--- + +# 开发 Diffusers 库的道德行为指南 + + + + +我们正在努力让我们每次发布的库更加负责! + +我们很荣幸宣布我们发布了[道德守则](https://huggingface.co/docs/diffusers/main/en/conceptual/ethical_guidelines),并将作为一部分其放入[ Diffusers 库的说明文档](https://huggingface.co/docs/diffusers/main/en/index)。 + +由于扩散模型在现实世界上的实际应用例子会对社会造成潜在的负面影响,该守则旨在引导对于社区做出贡献的 Diffusers 库维护者进行技术决策。我们希望对于我们的决策进行更加透明,尤其是,我们想确认一些价值观来指导决策。 + +我们将道德准则作为一个引导价值,做出具体行动,然后持续适应新的条件的循环过程。基于此,我们致力于随着时间去不断更正我们的价值准则,不断跟进 Diffusers 项目的发展,并从社区持续收集反馈,使得准则始终保持有效。 + +# 道德守则 + +* **透明**:我们致力于在管理 PR、向用户解释我们的选择以及做出技术决策方面保持透明。 +* **一致性**:我们致力于保证我们的用户在项目管理中得到同等程度的关注,保持技术上的稳定和一致。 +* **简单性**:为了让 Diffusers 库易于使用和利用,我们致力于保持项目目标的精简和连贯性。 +* **可访问性**: Diffusers 项目帮助更多贡献者降低进入门槛即便没有专业技术也可以运行项目。这样做使得社区更容易获得研究成果。 +* **可再现性**: 我们的目标是在使用 Diffusers 库时,使上游代码、模型和数据集的可再现性保持透明。 +* **责任**: 作为一个社区,通过团队合作,我们通过预测和减轻该技术的潜在风险和危险来对我们的用户承担集体责任。 + +# 安全特性和机制 + +此外,我们提供了一个暂不全面的并希望不断扩展的列表,该列表是关于 Hugging Face 团队和更广泛的社区的实施的安全功能和机制。 + +* **[社区选项](https://huggingface.co/docs/hub/repositories-pull-requests-discussions)**: 它使社区能够讨论并更好地协作项目。 + +* **标签功能**: 仓库的作者可以将他们的内容标记为“不适合所有人” + +* **偏差探索和评估**:Hugging Face 团队提供了一个 [Space](https://huggingface.co/spaces/society-ethics/DiffusionBiasExplorer) 以交互方式演示 Stable Diffusion 和 DALL-E 中的偏差。从这个意义上说,我们支持和鼓励有偏差的探索和评估。 + +* **鼓励安全部署** + * **[Safe Stable Diffusion](https://huggingface.co/docs/diffusers/main/en/api/pipelines/stable_diffusion_safe)**: 它缓解了众所周知的问题,像 Stable Diffusion,在未经过滤的,网络抓取的数据集上训练的模型往往会遭受不当的退化。相关论文:: [Safe Latent Diffusion: Mitigating Inappropriate Degeneration in Diffusion Models](https://arxiv.org/abs/2211.05105). + + * **在 Hub 上分阶段发布**: 特别在敏感的情况下,应限制对某些仓库的访问。这是发布阶段的一个中间步骤,允许仓库的作者对其使用有更多的控制权限。 + +* **许可**: [OpenRAILs](https://huggingface.co/blog/open_rail), 是一种新型许可,可让我们确保自由访问,同时拥有一组限制,以确保更多负责任的用途。 \ No newline at end of file From af1abb4db6597ba2cb726f8bd22ab3af0ff6b454 Mon Sep 17 00:00:00 2001 From: Zhongdong Yang Date: Thu, 11 May 2023 16:08:26 +0800 Subject: [PATCH 29/55] Update: proofreading zh/ethics-diffusers.md --- zh/ethics-diffusers.md | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/zh/ethics-diffusers.md b/zh/ethics-diffusers.md index cf030e526f..bb11776d95 100644 --- a/zh/ethics-diffusers.md +++ b/zh/ethics-diffusers.md @@ -5,6 +5,8 @@ authors: - user: giadap translators: - user: innovation64 +- user: zhongdongy + proofreader: true --- # 开发 Diffusers 库的道德行为指南 @@ -14,7 +16,7 @@ translators: 我们正在努力让我们每次发布的库更加负责! -我们很荣幸宣布我们发布了[道德守则](https://huggingface.co/docs/diffusers/main/en/conceptual/ethical_guidelines),并将作为一部分其放入[ Diffusers 库的说明文档](https://huggingface.co/docs/diffusers/main/en/index)。 +我们很荣幸宣布我们发布了 [道德守则](https://huggingface.co/docs/diffusers/main/en/conceptual/ethical_guidelines),并将作为一部分其放入 [ Diffusers 库的说明文档](https://huggingface.co/docs/diffusers/main/en/index)。 由于扩散模型在现实世界上的实际应用例子会对社会造成潜在的负面影响,该守则旨在引导对于社区做出贡献的 Diffusers 库维护者进行技术决策。我们希望对于我们的决策进行更加透明,尤其是,我们想确认一些价值观来指导决策。 @@ -22,26 +24,23 @@ translators: # 道德守则 -* **透明**:我们致力于在管理 PR、向用户解释我们的选择以及做出技术决策方面保持透明。 -* **一致性**:我们致力于保证我们的用户在项目管理中得到同等程度的关注,保持技术上的稳定和一致。 -* **简单性**:为了让 Diffusers 库易于使用和利用,我们致力于保持项目目标的精简和连贯性。 -* **可访问性**: Diffusers 项目帮助更多贡献者降低进入门槛即便没有专业技术也可以运行项目。这样做使得社区更容易获得研究成果。 -* **可再现性**: 我们的目标是在使用 Diffusers 库时,使上游代码、模型和数据集的可再现性保持透明。 -* **责任**: 作为一个社区,通过团队合作,我们通过预测和减轻该技术的潜在风险和危险来对我们的用户承担集体责任。 +- **透明**: 我们致力于在管理 PR、向用户解释我们的选择以及做出技术决策方面保持透明。 +- **一致性**: 我们致力于保证我们的用户在项目管理中得到同等程度的关注,保持技术上的稳定和一致。 +- **简单性**: 为了让 Diffusers 库易于使用和利用,我们致力于保持项目目标的精简和连贯性。 +- **可访问性**: Diffusers 项目帮助更多贡献者降低进入门槛即便没有专业技术也可以运行项目。这样做使得社区更容易获得研究成果。 +- **可再现性**: 我们的目标是在使用 Diffusers 库时,使上游代码、模型和数据集的可再现性保持透明。 +- **责任**: 作为一个社区,通过团队合作,我们通过预测和减轻该技术的潜在风险和危险来对我们的用户承担集体责任。 # 安全特性和机制 此外,我们提供了一个暂不全面的并希望不断扩展的列表,该列表是关于 Hugging Face 团队和更广泛的社区的实施的安全功能和机制。 -* **[社区选项](https://huggingface.co/docs/hub/repositories-pull-requests-discussions)**: 它使社区能够讨论并更好地协作项目。 +- **[社区选项](https://huggingface.co/docs/hub/repositories-pull-requests-discussions)**: 它使社区能够讨论并更好地协作项目。 +- **标签功能**: 仓库的作者可以将他们的内容标记为“不适合所有人” +- **偏差探索和评估**: Hugging Face 团队提供了一个 [Space](https://huggingface.co/spaces/society-ethics/DiffusionBiasExplorer) 以交互方式演示 Stable Diffusion 和 DALL-E 中的偏差。从这个意义上说,我们支持和鼓励有偏差的探索和评估。 +- **鼓励安全部署** -* **标签功能**: 仓库的作者可以将他们的内容标记为“不适合所有人” + - **[Safe Stable Diffusion](https://huggingface.co/docs/diffusers/main/en/api/pipelines/stable_diffusion_safe)**: 它缓解了众所周知的问题,像 Stable Diffusion,在未经过滤的,网络抓取的数据集上训练的模型往往会遭受不当的退化。相关论文: [Safe Latent Diffusion: Mitigating Inappropriate Degeneration in Diffusion Models](https://arxiv.org/abs/2211.05105). + - **在 Hub 上分阶段发布**: 特别在敏感的情况下,应限制对某些仓库的访问。这是发布阶段的一个中间步骤,允许仓库的作者对其使用有更多的控制权限。 -* **偏差探索和评估**:Hugging Face 团队提供了一个 [Space](https://huggingface.co/spaces/society-ethics/DiffusionBiasExplorer) 以交互方式演示 Stable Diffusion 和 DALL-E 中的偏差。从这个意义上说,我们支持和鼓励有偏差的探索和评估。 - -* **鼓励安全部署** - * **[Safe Stable Diffusion](https://huggingface.co/docs/diffusers/main/en/api/pipelines/stable_diffusion_safe)**: 它缓解了众所周知的问题,像 Stable Diffusion,在未经过滤的,网络抓取的数据集上训练的模型往往会遭受不当的退化。相关论文:: [Safe Latent Diffusion: Mitigating Inappropriate Degeneration in Diffusion Models](https://arxiv.org/abs/2211.05105). - - * **在 Hub 上分阶段发布**: 特别在敏感的情况下,应限制对某些仓库的访问。这是发布阶段的一个中间步骤,允许仓库的作者对其使用有更多的控制权限。 - -* **许可**: [OpenRAILs](https://huggingface.co/blog/open_rail), 是一种新型许可,可让我们确保自由访问,同时拥有一组限制,以确保更多负责任的用途。 \ No newline at end of file +- **许可**: [OpenRAILs](https://huggingface.co/blog/open_rail), 是一种新型许可,可让我们确保自由访问,同时拥有一组限制,以确保更多负责任的用途。 \ No newline at end of file From 0c808fea5e3eaaeffafbba880403bae71d832787 Mon Sep 17 00:00:00 2001 From: Yao Matrix Date: Mon, 15 May 2023 17:31:29 +0800 Subject: [PATCH 30/55] 1. introducing-csearch done (#11) 2. text-to-video done Signed-off-by: Yao, Matrix --- zh/_blog.yml | 25 +- zh/introducing-csearch.md | 571 ++++++++++++++++++++++++++++++++++++++ zh/text-to-video.md | 130 +++++++++ 3 files changed, 725 insertions(+), 1 deletion(-) create mode 100644 zh/introducing-csearch.md create mode 100644 zh/text-to-video.md diff --git a/zh/_blog.yml b/zh/_blog.yml index fff98b4fa5..443a06dfbb 100644 --- a/zh/_blog.yml +++ b/zh/_blog.yml @@ -470,4 +470,27 @@ tags: - nlp - community - - research + - research + +- local: text-to-video + title: "深入理解文生视频模型" + author: adirik + thumbnail: /blog/assets/140_text-to-video/thumbnail.png + date: May 8, 2023 + tags: + - multi-modal + - cv + - guide + - diffusion + - text-to-image + - text-to-video + +- local: introducing-csearch + title: "在 Transformers 中使用对比搜索生成可媲美人类水平的文本🤗" + author: yxuansu + thumbnail: /blog/assets/115_introducing_contrastive_search/thumbnail.png + date: Nov 8, 2022 + tags: + - nlp + - text generation + - research \ No newline at end of file diff --git a/zh/introducing-csearch.md b/zh/introducing-csearch.md new file mode 100644 index 0000000000..0b6ea28e02 --- /dev/null +++ b/zh/introducing-csearch.md @@ -0,0 +1,571 @@ +--- +title: "在 Transformers 中使用对比搜索生成可媲美人类水平的文本🤗" +thumbnail: /blog/assets/115_introducing_contrastive_search/thumbnail.png +authors: +- user: GMFTBY +translators: +- user: MatrixYao +--- + +

在 Transformers 中使用对比搜索生成可媲美人类水平的文本🤗

+ + + + +**** + + + Open In Colab + + +### 1. 引言 + +自然语言生成(即文本生成)是自然语言处理(NLP)的核心任务之一。本文将介绍神经网络文本生成领域当前最先进的解码方法**对比搜索(Contrastive Search)**。提出该方法的论文 *"A Contrastive Framework for Neural Text Generation"* 最初发表于 NeurIPS 2022([[论文]](https://arxiv.org/abs/2202.06417)、[[官方实现]](https://github.com/yxuansu/SimCTG))。此后,*"Contrastive Search Is What You Need For Neural Text Generation"* 的作者又进一步证明了对比搜索可以用**现有的**语言模型在 **16** 种语言上生成可媲美人类水平的文本([[论文]](https://arxiv.org/abs/2210.14140)、[[官方实现]](https://github.com/yxuansu/Contrastive_Search_Is_What_You_Need))。 + +**[备注]** 对于不熟悉文本生成的用户,请参阅[此博文](https://huggingface.co/blog/how-to-generate)了解更多详情。 + +**** + + + +### 2. Hugging Face 🤗 对比搜索演示 + +目前,🤗 `transformers` 的 PyTorch 和 TensorFlow 后端均支持对比搜索。你可以在[该 Colab notebook](https://colab.research.google.com/github/huggingface/blog/blob/main/notebooks/115_introducing_contrastive_search.ipynb) 中根据不同的后端选择相应的部分来探索该方法,文章顶部也有该 notebook 链接。我们还构建了这个不错的[演示应用](https://huggingface.co/spaces/joaogante/contrastive_search_generation),用它可以直观地比较对比搜索与其他流行的解码方法(例如波束搜索、top-k 采样[3]以及核采样[4])。 + +**** + + + +### 3. 环境安装 + +在进行后续实验前,我们要先安装最新的 `transformers` 库,如下: + +```shell +pip install torch +pip install "transformers==4.24.0" +``` + +**** + + + +### 4. 现有解码方法存在的问题 + +解码方法可以分为两类:(i)确定性方法,(ii)随机方法。下面我们分别对两者进行讨论! + + + +#### 4.1. 确定性方法 + +确定性方法,如贪心搜索和波束搜索,通过在语言模型输出的所有候选补全词中选择概率最高的词来生成最终文本。然而,正如之前研究 [3][4] 指出的,确定性方法通常会导致*模型退化*,即生成的文本不自然且包含不必要的重复。 + +下面,我们看一个用 GPT-2 模型和贪心搜索生成文本的例子。 + +```python +from transformers import AutoTokenizer, GPT2LMHeadModel + +tokenizer = AutoTokenizer.from_pretrained('gpt2-large') +input_ids = tokenizer('DeepMind Company is', return_tensors='pt').input_ids +model = GPT2LMHeadModel.from_pretrained('gpt2-large') + +output = model.generate(input_ids, max_length=128) +print("Output:\n" + 100 * '-') +print(tokenizer.decode(output[0], skip_special_tokens=True)) +print("" + 100 * '-') +``` + +
+模型输出: + +``` +Output: +---------------------------------------------------------------------------------------------------- +DeepMind Company is a leading AI research company, with a focus on deep learning and deep learning-based systems. + +The company's research is focused on the development of deep learning-based systems that can learn from large amounts of data, and that can be used to solve real-world problems. + +DeepMind's research is also used by the UK government to develop new technologies for the UK's National Health Service. + +DeepMind's research is also used by the UK government to develop new technologies for the UK's National Health Service. + +DeepMind's research is also used by the UK government to develop new technologies +---------------------------------------------------------------------------------------------------- +``` +
+ +**[备注]** 我们可以看到,贪心搜索生成的结果中有明显的重复。 + + + +#### 4.2. 随机方法 + +为了解决确定性方法带来的问题,随机方法通过在解码过程中引入随机性来生成文本。常用的两种随机方法是 (i) top-k 采样[3] 和 (ii) 核采样(也称为 top-p 采样)[4]。 + +下面,我们给出用 GPT-2 模型和核采样 (p=0.95) 生成文本的示例。 + +```python +import torch +from transformers import AutoTokenizer, GPT2LMHeadModel + +tokenizer = AutoTokenizer.from_pretrained('gpt2-large') +input_ids = tokenizer('DeepMind Company is', return_tensors='pt').input_ids +model = GPT2LMHeadModel.from_pretrained('gpt2-large') + +torch.manual_seed(0.) +output = model.generate(input_ids, do_sample=True, max_length=128, top_p=0.95, top_k=0) +print("Output:\n" + 100 * '-') +print(tokenizer.decode(output[0], skip_special_tokens=True)) +print("" + 100 * '-') +``` + +
+模型输出: + +``` +Output: +---------------------------------------------------------------------------------------------------- +DeepMind Company is a leading provider of AI-based research, development, and delivery of AI solutions for security, infrastructure, machine learning, communications, and so on." + +'AI is not journalism' + +Worse still was the message its researchers hoped would reach the world's media — that it was not really research, but rather a get-rich-quick scheme to profit from living forces' ignorance. + +"The thing is, we know that people don't consciously assess the value of the others' +information. They understand they will get the same on their own." + +One example? Given the details of today +---------------------------------------------------------------------------------------------------- +``` +
+ +**[备注]** 虽然核采样可以生成没有重复的文本,但生成文本的语义一致性并不是很好。例如,生成的短语 *'AI is not journalism'* 与给定的上文即 *'DeepMind Company'* 不一致。 + +我们注意到,这种语义不一致的问题可以通过降低温度(temperature)来部分解决。然而,降低温度会使核采样更接近贪心搜索,这其实就变成了贪心搜索和核采样之间的权衡。一般来讲,要找到一个既能避免贪心搜索又能避免核采样陷阱的快捷且与模型无关的温度相当有挑战。 + +**** + + + +### 5. 对比搜索 + +本节我们来详细介绍一种新的解码方法,***对比搜索***。 + + + +#### 5.1. 解码目标 + +给定前缀文本 $x_{< t}$,我们按如下公式选择输出词元 $x_{t}$: +
+ +
+ +上式中, $V^{(k)}$ 是语言模型输出概率分布 $p_{\theta}(v|x_{< t})$ 中 k 个概率最大的候选词元的集合。第一项,即 *模型置信度(model confidence)*,是语言模型预测的每个候选词元 $v$ 的概率。第二项,*退化惩罚(degeneration penalty)*,用于度量 $v$ 与上文 $x_{< t}$ 中每个词元的相异度,其中函数 $s(\cdot, \cdot)$ 用于计算每两个词元间的余弦相似度。更具体地说,退化惩罚被定义为 $v$ 的向量表征 $h_{v}$ 与其上文 $x_ {< t}$ 中每个词元的向量表征间余弦相似度的最大值。这里,候选词元的向量表征 $h_{v}$ 是在给定 $x_{< t}$ 和 $v$ 的条件下将二者连接起来输入给语言模型,然后由语言模型计算出来的。直观上,如果 $v$ 的退化惩罚较大意味着它与上文更相似(在表示空间中),因此更有可能导致模型退化问题。超参数 $\alpha$ 用于在这两项中折衷。当 $\alpha=0$ 时,对比搜索退化为纯贪心搜索。 + +**[备注]** 在生成输出时,对比搜索同时考虑(i)语言模型预测的概率,以保持生成文本和前缀文本之间的语义连贯性; (ii) 与上文的相似性以避免模型退化。 + + + +#### 5.2. 使用对比搜索生成文本 + +下面,我们使用与第 4.1 节第 4.2 节中相同的前缀文本(即 *“DeepMind Company is”* ),并使用对比搜索生成文本(取 k=4、$\alpha=0.6$)。为了充分展示对比搜索的卓越能力,我们让语言模型生成一个 **512** 词元的**长**文档,如下: + +```python +from transformers import GPT2Tokenizer, GPT2LMHeadModel + +model_name = 'gpt2-large' +tokenizer = GPT2Tokenizer.from_pretrained(model_name) +model = GPT2LMHeadModel.from_pretrained(model_name, pad_token_id=tokenizer.eos_token_id) +model.eval() + +# prepare the prefix +prefix_text = r'DeepMind Company is' +input_ids = tokenizer(prefix_text, return_tensors='pt').input_ids + +# generate the result with contrastive search +output = model.generate(input_ids, penalty_alpha=0.6, top_k=4, max_length=512) +print("Output:\n" + 100 * '-') +print(tokenizer.decode(output[0], skip_special_tokens=True)) +print("" + 100 * '-') +``` + +参数设置如下: +* `--top_k`:对比搜索中的超参 $k$。 +* `--penalty_alpha`:对比搜索中的超参 $\alpha$。 + +
+模型输出: + +``` +Output: +---------------------------------------------------------------------------------------------------- +DeepMind Company is a leader in artificial intelligence (AI). We have a long history of working with companies such as Google, Facebook, Amazon, and Microsoft to build products that improve people's lives, and today we are excited to announce that DeepMind's AlphaGo program has won the game of Go, becoming the first program to defeat a professional Go player. + +The victory is a testament to the power of deep learning, and to the incredible work of our research team, which has been at the forefront of AI research for the past five years. AlphaGo is one of the most advanced Go programs ever created, and its performance is an important step towards the goal of human-level AI. + +"This is the culmination of a decade of hard work," said Andy Ng, co-founder and CTO of DeepMind. "We are thrilled to have achieved this milestone and look forward to continuing to develop AI that can be used in a wide range of applications and to help people live better lives." + +DeepMind's work on Go began in 2010, when it began to train a neural network to play Go using millions of games played by top Go players around the world. Since then, the team has refined the algorithm, adding more and more layers of reinforcement learning to make it better at recognizing patterns and making decisions based on those patterns. In the past year and a half, the team has made significant progress in the game, winning a record-tying 13 games in a row to move into the top four of the world rankings. + +"The game of Go is a complex game in which players have to be very careful not to overextend their territory, and this is something that we have been able to improve over and over again," said Dr. Demis Hassabis, co-founder and Chief Scientific Officer of DeepMind. "We are very proud of our team's work, and we hope that it will inspire others to take the next step in their research and apply the same techniques to other problems." + +In addition to the win in Go, DeepMind has also developed an AI system that can learn to play a number of different games, including poker, Go, and chess. This AI system, called Tarsier, was developed in partnership with Carnegie Mellon University and the University of California, Berkeley, and is being used to teach computer vision and machine learning to identify objects in images and recognize speech in natural language. Tarsier has been trained to play the game of Go and other games on a +---------------------------------------------------------------------------------------------------- +``` +
+ +**[备注]** 我们看到生成的文本质量非常高。整个文档语法流畅,语义连贯。同时,生成的文本也很好地保持了事实的正确性。例如,在第一段中,它正确阐述了 *“AlphaGo”* 作为 *“第一个击败职业围棋选手的程序”* 这一事实。 + + + + +#### 5.3. 对比搜索的结果可视化 + +为了更好地理解对比搜索的工作原理,我们对贪心搜索 (第 4.1 节) 和对比搜索进行了直观比较。具体来说,我们分别将贪心搜索和对比搜索生成的词元相似度矩阵可视化。两个词元之间的相似性被定义为它们的向量表征(即最后一个转换器层的隐藏状态)之间的余弦相似性。贪心搜索(上)和对比搜索(下)的结果如下图所示。 + +
+ + +
+ +**[备注]** 从贪心搜索的结果中,我们看到非对角线的相似度很高,这清楚地表明贪心搜索产生了重复。相反,在对比搜索的结果中,高相似度分数主要出现在对角线上,这证明我们成功解决了退化问题。对比搜索的这一优良特性是通过在解码过程中引入退化惩罚(参见第 5.1 节)来实现的。 + +**** + + + +### 6. 更多的生成示例 + +在本节中,我们提供了更多的生成示例来比较不同的解码方法。 + + + +#### 6.1. 示例一:GPT-2 + +在这部分中,我们使用 GPT-2 生成文本,其前缀文本来自 [OpenAI 发布 GPT-2 的博客文章](https://openai.com/blog/better-language-models/)。 + +> _In a shocking finding, scientist discovered a herd of unicorns living in a remote, previously unexplored valley, in the Andes Mountains. Even more surprising to the researchers was the fact that the unicorns spoke perfect English._ + + +
+ 加载语言模型并准备前缀文本: + +```python +import torch +from transformers import AutoTokenizer, GPT2LMHeadModel + +tokenizer = AutoTokenizer.from_pretrained('gpt2-large') +model = GPT2LMHeadModel.from_pretrained('gpt2-large') + +prefix_text = r"In a shocking finding, scientist discovered a herd of unicorns living in a remote, previously unexplored valley, in the Andes Mountains. Even more surprising to the researchers was the fact that the unicorns spoke perfect English." +input_ids = tokenizer(prefix_text, return_tensors='pt').input_ids +``` +
+ + + +##### 6.1.1. 使用贪心搜索生成文本 + +
+代码:[点击展开] + +```python +output = model.generate(input_ids, max_length=512) +print("Output:\n" + 100 * '-') +print(tokenizer.decode(output[0], skip_special_tokens=True)) +print("" + 100 * '-') +``` +
+ +
+模型输出:[点击展开] + +``` +Output: +---------------------------------------------------------------------------------------------------- +In a shocking finding, scientist discovered a herd of unicorns living in a remote, previously unexplored valley, in the Andes Mountains. Even more surprising to the researchers was the fact that the unicorns spoke perfect English. + +The researchers, led by Dr. David R. Williams of the University of California, Santa Cruz, discovered the unicorns in the Andes Mountains of Peru. The area is known for its unique geology and is home to a number of rare species of animals. + +The researchers found the unicorns in the Andes Mountains of Peru. + +"We were surprised to find that the unicorns were able to communicate with each other," Williams said. "We were also surprised to find that they were able to communicate in English." + +The researchers believe that the unicorns are descendants of the ancient Incas, who lived in the area around 2,000 years ago. + +"The Incas were the first people to use the Andes Mountains as a refuge from the harsh climate of the Andes," Williams said. "They were also the first people to use the Andes Mountains as a place to hunt and gather food." + +The researchers believe that the unicorns are descendants of the ancient Incas, who lived in the area around 2,000 years ago. + +"The Incas were the first people to use the Andes Mountains as a refuge from the harsh climate of the Andes," Williams said. "They were also the first people to use the Andes Mountains as a place to hunt and gather food." + +The researchers believe that the unicorns are descendants of the ancient Incas, who lived in the area around 2,000 years ago. + +"The Incas were the first people to use the Andes Mountains as a refuge from the harsh climate of the Andes," Williams said. "They were also the first people to use the Andes Mountains as a place to hunt and gather food." + +The researchers believe that the unicorns are descendants of the ancient Incas, who lived in the area around 2,000 years ago. + +"The Incas were the first people to use the Andes Mountains as a refuge from the harsh climate of the Andes," Williams said. "They were also the first people to use the Andes Mountains as a place to hunt and gather food." + +The researchers believe that the unicorns are descendants of the ancient Incas, who lived in the area around 2,000 years ago +---------------------------------------------------------------------------------------------------- +``` +
+ + + +##### 6.1.2. 使用核采样生成文本 + +
+代码:[点击展开] + +```python +torch.manual_seed(0.) +output = model.generate(input_ids, do_sample=True, max_length=512, top_p=0.95, top_k=0) +print("Output:\n" + 100 * '-') +print(tokenizer.decode(output[0], skip_special_tokens=True)) +print("" + 100 * '-') +``` +
+ + +
+模型输出:[点击展开] + +``` +Output: +---------------------------------------------------------------------------------------------------- +In a shocking finding, scientist discovered a herd of unicorns living in a remote, previously unexplored valley, in the Andes Mountains. Even more surprising to the researchers was the fact that the unicorns spoke perfect English. The study was published in the Journal of Zoology in March 2016. + +Polygynous mammals such as unicorns have remained largely unknown to science. Professor Gustavo Giacota, from the University of Oxford who led the study, said that they had been documented as far as Eastern Siberia in Russia, but had only been seen a handful of times in the Gobi Desert. + +Tiny animals with pale and shiny coats live in the presence of human beings and are hardly likely to be victims of any cruelty. However, there is some evidence of the condition occurring in both humans and animals in remote regions, which might have similarities to "black moles" that coexist on the skin. + +It is thought that Unicorns could be inside themselves, that they have different scents depending on their current environment, or just fall out and there are plenty of legends of how they have survived. Experts speculate that the moths and other animals could be remnants of the Yezidi Isis and Charon, which literally is both the word which means great bird, and the Greek word for sound. It is said that the Isis and Charon taught their young the use of voice in the form of calling out to others. + +The scientists think that it could be ancient folklore that has survived and is no longer attributed to a real entity +---------------------------------------------------------------------------------------------------- +``` +
+ + + + +##### 6.1.3. 使用对比搜索生成文本 + +
+代码: + +```python +output = model.generate(input_ids, max_length=512, penalty_alpha=0.6, top_k=4) +print("Output:\n" + 100 * '-') +print(tokenizer.decode(output[0], skip_special_tokens=True)) +print("" + 100 * '-') +``` +
+ +
+模型输出: + +``` +Output: +---------------------------------------------------------------------------------------------------- +In a shocking finding, scientist discovered a herd of unicorns living in a remote, previously unexplored valley, in the Andes Mountains. Even more surprising to the researchers was the fact that the unicorns spoke perfect English. + +According to the BBC, a team of scientists led by Dr David MacKay, from the University of Bristol, spent two years searching for the unicorn herd, which they discovered during a survey of the area. + +"It's a very rare find," MacKay told the BBC. "There are a few in the Himalayas, but this is the first time we've been able to find one in such a remote area." + +The team was surprised to find a herd of unicorns living in a region that has been known to be a hotbed of poaching, with many of the animals poached for their horns, which are used in traditional Chinese medicine to treat everything from rheumatism to cancer. + +"We knew that the area was rich in rhino horn, but we had no idea how many there were, or what they were doing there," MacKay said. "This is an area of high poaching pressure, and we wanted to find out what was going on." + +In order to do so, the team used GPS collars to track the animals as they moved around the mountain and the surrounding area. The GPS data was then compared with information gathered from local villagers, who had a wealth of information about the animals' movements, including where they were eating, what they were doing at night, and how much time they spent in the mountains each day. + +After analyzing the data, the team determined that the herd consisted of at least three species of unicorns, including a male and two females. One of the females was the mother of the male, and the other two were her daughters. All three had the same horn color, which is believed to be a sign of purity in the animal kingdom. + +While the discovery is exciting, it's not the first time scientists have discovered an animal that speaks English. Last year, scientists discovered a species of porcupine that can be heard by humans, and has been dubbed "Porcupine Man" for his ability to converse with the human race. +---------------------------------------------------------------------------------------------------- +``` +
+ + + + +#### 6.2. 示例二:OPT + +本节中,我们使用 Meta 最近发布的 OPT 模型 [5],并从著名的 ResNet 论文 [6] 摘要中选取前两个句子来作为前缀文本。 + +> Deeper neural networks are more difficult to train. We present a residual learning framework to ease the training of networks that are substantially deeper than those used previously. + + +
+ 加载语言模型并准备前缀文本: + +```python +import torch +from transformers import AutoTokenizer, OPTForCausalLM +model_name = r'facebook/opt-1.3b' +tokenizer = AutoTokenizer.from_pretrained(model_name) +model = OPTForCausalLM.from_pretrained(model_name) + +prefix_text = r"Deeper neural networks are more difficult to train. We present a residual learning framework to ease the training of networks that are substantially deeper than those used previously." +input_ids = tokenizer(prefix_text, return_tensors='pt').input_ids +``` +
+ + + + + +##### 6.2.1. 使用贪心搜索生成文本 + +
+代码:[点击展开] + +```python +output = model.generate(input_ids, max_length=256) +print("Output:\n" + 100 * '-') +print(tokenizer.decode(output[0], skip_special_tokens=True)) +print("" + 100 * '-') +``` +
+ +
+模型输出:[点击展开] + +``` +Output: +---------------------------------------------------------------------------------------------------- +Deeper neural networks are more difficult to train. We present a residual learning framework to ease the training of networks that are substantially deeper than those used previously. We show that the residual learning framework can be used to train deep neural networks that are significantly more difficult to train than those used previously. We also show that the residual learning framework can be used to train deep neural networks that are significantly more difficult to train than those used previously. + +The paper presents a new residual learning framework for deep neural networks that is based on the concept of residuals. The residuals are the residuals of the network that are not used in the training process. The residuals are computed by taking the residuals of the network that are used in the training process and subtracting the residuals of the network that are not used in the training process. The residuals are then used to train the network. The residuals are computed by taking the residuals of the network that are used in the training process and subtracting the residuals of the network that are not used in the training process. The residuals are then used to train the network. The residuals are computed by taking the residuals of the network that are used in the training process and subtracting the residuals of the +---------------------------------------------------------------------------------------------------- +``` +
+ + + + +##### 6.2.2. 使用核采样生成文本 + +
+代码:[点击展开] + +```python +torch.manual_seed(0.) +output = model.generate(input_ids, do_sample=True, max_length=256, top_p=0.95, top_k=0) +print("Output:\n" + 100 * '-') +print(tokenizer.decode(output[0], skip_special_tokens=True)) +print("" + 100 * '-') +``` +
+ + +
+模型输出:[点击展开] + +``` +Output: +---------------------------------------------------------------------------------------------------- +Deeper neural networks are more difficult to train. We present a residual learning framework to ease the training of networks that are substantially deeper than those used previously. The theory focuses on several aspects of learning, including the dynamics of replicative and non-replicative aspects of learning. This framework emphasizes learning by entropy. New randomized algorithms enable training networks with residual learning, so that deep networks can be deployed as reliably and as efficiently as their more conventional counterparts. +---------------------------------------------------------------------------------------------------- +``` +
+ + + +##### 6.2.3. 使用对比搜索生成文本 + +
+代码: + +```python +output = model.generate(input_ids, max_length=256, penalty_alpha=0.6, top_k=6) +print("Output:\n" + 100 * '-') +print(tokenizer.decode(output[0], skip_special_tokens=True)) +print("" + 100 * '-') +``` +
+ +
+模型输出: + +``` +Output: +---------------------------------------------------------------------------------------------------- +Deeper neural networks are more difficult to train. We present a residual learning framework to ease the training of networks that are substantially deeper than those used previously. + +In this paper, we propose a model-based residual learning (MBRL) framework that is based on neural networks trained on data that is sparse in terms of dimensionality (e.g., 1, 2, 3, etc.). The network parameters are chosen such that there is a high probability of convergence, i.e., the number of iterations is large enough to minimize the variance of the residuals. This is achieved by training the network on a set of training data, in which the data is sparse in terms of dimensionality, and then discarding the nonparametric part of the data after training is complete. + +We show that MBRL outperforms other methods for deep reinforcement learning (RL) and deep convolutional neural networks (CNNs) by a factor of at least 2. In addition, we show that, compared to CNNs, MBRL performs better in two-dimensional (2D) and three-dimensional (3D) cases. +---------------------------------------------------------------------------------------------------- +``` +
+ +**** + + + +### 7. 更多资源 + +有关对比搜索的更多详细信息,请查看我们的论文和代码,如下: +* **A Contrastive Framework for Neural Text Generation**: [论文](https://arxiv.org/abs/2202.06417)、[官方实现](https://github.com/yxuansu/SimCTG) +* **Contrastive Search Is What You Need For Neural Text Generation**: [论文](https://arxiv.org/abs/2210.14140)、[官方实现](https://github.com/yxuansu/Contrastive_Search_Is_What_You_Need) + +**** + + + +### 8. 引用 + +```bibtex +@inproceedings{su2022a, + title={A Contrastive Framework for Neural Text Generation}, + author={Yixuan Su and Tian Lan and Yan Wang and Dani Yogatama and Lingpeng Kong and Nigel Collier}, + booktitle={Advances in Neural Information Processing Systems}, + editor={Alice H. Oh and Alekh Agarwal and Danielle Belgrave and Kyunghyun Cho}, + year={2022}, + url={https://openreview.net/forum?id=V88BafmH9Pj} +} + +@article{su2022contrastiveiswhatyouneed, + title={Contrastive Search Is What You Need For Neural Text Generation}, + author={Su, Yixuan and Collier, Nigel}, + journal={arXiv preprint arXiv:2210.14140}, + year={2022} +} +``` + +**** + + + +## 参考文献 +> [1] Su et al., 2022 ["A Contrastive Framework for Neural Text Generation"](https://arxiv.org/abs/2202.06417), NeurIPS 2022 + +> [2] Su and Collier, 2022 ["Contrastive Search Is What You Need For Neural Text Generation"](https://arxiv.org/abs/2210.14140), Arxiv 2022 + +> [3] Fan et al., 2018 ["Hierarchical Neural Story Generation"](https://arxiv.org/abs/1805.04833), ACL 2018 + +> [4] Holtzman et al., 2020 ["The Curious Case of Neural Text Degeneration"](https://arxiv.org/abs/1904.09751), ICLR 2020 + +> [5] Zhang et al., 2022 ["OPT: Open Pre-trained Transformer Language Models"](https://arxiv.org/abs/2205.01068), Arxiv 2022 + +> [6] He et al., 2016 ["Deep Residual Learning for Image Recognition"](https://arxiv.org/abs/1512.03385), CVPR 2016 + +**** + +*- 本文由 Yixuan Su 和 Tian Lan 撰写* + +**** + + + + +## 致谢 + +我们要感谢 Joao Gante([@joaogante](https://huggingface.co/joaogante))、Patrick von Platen([@patrickvonplaten](https://huggingface.co/patrickvonplaten))和 Sylvain Gugger ([@sgugger](https://github.com/sgugger)),感谢他们在我们将本文中的对比搜索集成进 `transformers` 库的过程中给予的帮助和指导。 + +> 英文原文: https://huggingface.co/blog/introducing-csearch +> 原文作者:Tian Lan +> 译者: Matrix Yao (姚伟峰),英特尔深度学习工程师,工作方向为 transformer-family 模型在各模态数据上的应用及大规模模型的训练推理。 diff --git a/zh/text-to-video.md b/zh/text-to-video.md new file mode 100644 index 0000000000..0b3a746622 --- /dev/null +++ b/zh/text-to-video.md @@ -0,0 +1,130 @@ +--- +title: "深入理解文生视频模型" +thumbnail: /blog/assets/140_text-to-video/thumbnail.png +authors: +- user: adirik +translators: +- user: MatrixYao +--- + +

文生视频:任务、挑战及现状

+ + + + +

+ video-samples
+ 示例视频由 ModelScope 生成 +

+ +最近生成模型方向的进展如排山倒海,令人目不暇接,而文生视频将是这一连串进展的下一波。尽管大家很容易从字面上理解文生视频的意思,但它其实是一项相当新的计算机视觉任务,其要求是根据文本描述生成一系列时间和空间上都一致的图像。虽然看上去这项任务与文生图极其相似,但众所周知,它的难度要大得多。这些模型是如何工作的,它们与文生图模型有何不同,我们对其性能又有何期待? + +在本文中,我们将讨论文生视频模型的过去、现在和未来。我们将从回顾文生视频和文生图任务之间的差异开始,并讨论无条件视频生成和文生视频两个任务各自的挑战。此外,我们将介绍文生视频模型的最新发展,探索这些方法的工作原理及其性能。最后,我们将讨论我们在 Hugging Face 所做的工作,这些工作的目标就是促进这些模型的集成和使用,我们还会分享一些在 Hugging Face Hub 上以及其他一些地方的很酷的演示应用及资源。 + +

+ samples
+ 根据各种文本描述输入生成的视频示例,图片来自论文 Make-a-Video +

+ +## 文生视频与文生图 + +最近文生图领域的进展多如牛毛,大家可能很难跟上最新的进展。因此,我们先快速回顾一下。 + +就在两年前,第一个支持开放词汇(open-vocabulary)的高质量文生图模型出现了。第一波文生图模型,包括 VQGAN-CLIP、XMC-GAN 和 GauGAN2,都采用了 GAN 架构。紧随其后的是 OpenAI 在 2021 年初发布的广受欢迎的基于 transformer 的 DALL-E、2022 年 4 月的 DALL-E 2,以及由 Stable Diffusion 和 Imagen 开创的新一波扩散模型。Stable Diffusion 的巨大成功催生了许多产品化的扩散模型,例如 DreamStudio 和 RunwayML GEN-1;同时也催生了一批集成了扩散模型的产品,例如 Midjourney。 + +尽管扩散模型在文生图方面的能力令人印象深刻,但相同的故事并没有扩展到文生视频,不管是扩散文生视频模型还是非扩散文生视频模型的生成能力仍然非常受限。文生视频模型通常在非常短的视频片段上进行训练,这意味着它们需要使用计算量大且速度慢的滑动窗口方法来生成长视频。因此,众所周知,训得的模型难以部署和扩展,并且在保证上下文一致性和视频长度方面很受限。 + +文生视频的任务面临着多方面的独特挑战。主要有: + +- 计算挑战:确保帧间空间和时间一致性会产生长期依赖性,从而带来高计算成本,使得大多数研究人员无法负担训练此类模型的费用。 +- 缺乏高质量的数据集:用于文生视频的多模态数据集很少,而且通常数据集的标注很少,这使得学习复杂的运动语义很困难。 +- 视频字幕的模糊性:“如何描述视频从而让模型的学习更容易”这一问题至今悬而未决。为了完整描述视频,仅一个简短的文本提示肯定是不够的。一系列的提示或一个随时间推移的故事才能用于生成视频。 + +在下一节中,我们将分别讨论文生视频领域的发展时间线以及为应对这些挑战而提出的各种方法。概括来讲,文生视频的工作主要可以分为以下 3 类: +1. 提出新的、更高质量的数据集,使得训练更容易。 +2. 在没有`文本-视频对`的情况下训练模型的方法。 +3. 计算效率更高的生成更长和更高分辨率视频的方法。 + +## 如何实现文生视频? + +让我们来看看文生视频的工作原理以及该领域的最新进展。我们将沿着与文生图类似的研究路径,探索文生视频模型的流变,并探讨迄今为止我们是如何解决文生视频领域的具体挑战的。 + +与文生图任务一样,文生视频也是个年轻的方向,最早只能追溯到几年前。早期研究主要使用基于 GAN 和 VAE 的方法在给定文本描述的情况下自回归地生成视频帧(参见 [Text2Filter](https://huggingface.co/papers/1710.00421) 及 [TGANs-C](https://huggingface.co/papers/1804.08264))。虽然这些工作为文生视频这一新计算机视觉任务奠定了基础,但它们的应用范围有限,仅限于低分辨率、短距以及视频中目标的运动比较单一、孤立的情况。 + +

+ tgans-c
+ 最初的文生视频模型在分辨率、上下文和长度方面极为有限,图像取自 TGANs-C +

+ +受文本 (GPT-3) 和图像 (DALL-E) 中大规模预训练 transformer 模型的成功启发,文生视频研究的第二波浪潮采用了 transformer 架构。[Phenaki](https://huggingface.co/papers/2210.02399)、[Make-A-Vide](https://huggingface.co/papers/2209.14792)、[NUWA](https://huggingface.co/papers/2111.12417)、[VideoGPT](https://huggingface.co/papers/2104.10157) 和 [CogVideo](https://huggingface.co/papers/2205.15868) 都提出了基于 transformer 的框架,而 [TATS](https://huggingface.co/papers/2204.03638) 提出了一种混合方法,从而将用于生成图像的 VQGAN 和用于顺序地生成帧的时间敏感 transformer 模块结合起来。在第二波浪潮的诸多框架中,Phenaki 尤其有意思,因为它能够根据一系列提示(即一个故事情节)生成任意长视频。同样,[NUWA-Infinity](https://huggingface.co/papers/2207.09814) 提出了一种双重自回归(autoregressive over autoregressive)生成机制,可以基于文本输入合成无限长度的图像和视频,从而使得生成高清的长视频成为可能。但是,Phenaki 或 NUWA 模型均无法从公开渠道获取。 + +

+ phenaki
+ Phenaki 的模型架构基于 transformer,图片来自此处 +

+ +第三波也就是当前这一波文生视频模型浪潮主要以基于扩散的架构为特征。扩散模型在生成多样化、超现实和上下文丰富的图像方面取得了显著成功,这引起了人们对将扩散模型推广到其他领域(如音频、3D ,最近又拓展到了视频)的兴趣。这一波模型是由 [Video Diffusion Models](https://huggingface.co/papers/2204.03458)(VDM)开创的,它首次将扩散模型推广至视频领域。然后是 [MagicVideo](https://huggingface.co/papers/2211.11018) 提出了一个在低维隐空间中生成视频剪辑的框架,据其报告,新框架与 VDM 相比在效率上有巨大的提升。另一个值得一提的是 [Tune-a-Video](https://huggingface.co/papers/2212.11565),它使用`单文本-视频对`微调预训练的文生图模型,并允许在保留运动的同时改变视频内容。随后涌现出了越来越多的文生视频扩散模型,包括 [Video LDM](https://huggingface.co/papers/2304.08818)、[Text2Video-Zero](https://huggingface.co/papers/2303.13439 )、[Runway Gen1、Runway Gen2](https://huggingface.co/papers/2302.03011) 以及 [NUWA-XL](https://huggingface.co/papers/2303.12346)。 + +Text2Video-Zero 是一个文本引导的视频生成和处理框架,其工作方式类似于 ControlNet。它可以基于输入的`文本数据`或`文本 + 姿势混合数据`或`文本 + 边缘混合数据`直接生成(或编辑)视频。顾名思义,Text2Video-Zero 是一种零样本模型,它将可训练的运动动力学模块与预训练的文生图稳定扩散模型相结合,而无需使用任何`文本-视频对`数据。与 Text2Video-Zero 类似,Runway Gen-1 和 Runway Gen-2 模型可以合成由文本或图像描述的内容引导的视频。这些工作大多数都是在短视频片段上训练的,并且依靠带有滑动窗口的自回归机制来生成更长的视频,这不可避免地导致了上下文差异(context gap)。 NUWA-XL 解决了这个问题,并提出了一种“双重扩散(diffusion over diffusion)”方法,并在 3376 帧视频数据上训练模型。最后,还有一些尚未在同行评审的会议或期刊上发表的开源文本到视频模型和框架,例如阿里巴巴达摩院视觉智能实验室的 ModelScope 和 Tencel 的 VideoCrafter。 + +## 数据集 +与其他视觉语言模型一样,文生视频模型通常在大型`文本-视频对`数据集上进行训练。这些数据集中的视频通常被分成短的、固定长度的块,并且通常仅限于少数几个目标的孤立动作。出现这种情况的一部分原因是计算限制,另一部分原因是以有意义的方式描述视频内容这件事本身就很难。而我们看到多模态视频文本数据集和文生视频模型的发展往往是交织在一起的,因此有不少工作侧重于开发更易于训练的更好、更通用的数据集。同时也有一些工作另辟蹊径,对替代解决方案进行了探索,例如[Phenaki](https://phenaki.video/?mc_cid=9fee7eeb9d#) 将`文本-图像对`与`文本-视频对`相结合用于文生视频任务;Make-a-Video 则更进一步,提议仅使用`文本-图像对`来学习世界表象信息,并使用单模态视频数据以无监督的方式学习时空依赖性。 + +这些大型数据集面临与文本图像数据集类似的问题。最常用的文本-视频数据集 [WebVid](https://m-bain.github.io/webvid-dataset/) 由 1070 万个`文本-视频对`(视频时长 5.2 万小时)组成,并包含一定量的噪声样本,这些样本中的视频文本描述与视频内容是非相干的。其他数据集试图通过聚焦特定任务或领域来解决这个问题。例如,[Howto100M](https://www.di.ens.fr/willow/research/howto100m/) 数据集包含 13600 万个视频剪辑,其中文本部分描述了如何一步一步地执行复杂的任务,例如烹饪、手工制作、园艺、和健身。而 [QuerYD](https://www.robots.ox.ac.uk/~vgg/data/queryd/) 数据集则聚焦于事件定位任务,视频的字幕详细描述了目标和动作的相对位置。 [CelebV-Text](https://celebv-text.github.io/) 是一个包含超过 7 万个视频的大规模人脸文本-视频数据集,用于生成具有逼真的人脸、情绪和手势的视频。 + +## Hugging Face 上的文生视频 + +使用 Hugging Face Diffusers,你可以轻松下载、运行和微调各种预训练的文生视频模型,包括 Text2Video-Zero 和[阿里巴巴达摩院](https://huggingface.co/damo-vilab)的 ModelScope。我们目前正在努力将更多优秀的工作集成到 Diffusers 和 🤗 Transformers 中。 + +### Hugging Face 应用演示 + +在 Hugging Face,我们的目标是使Hugging Face 库更易于使用并包含最先进的研究。你可以前往 Hub 查看和体验由 🤗 团队、无数社区贡献者和研究者贡献的 Spaces 演示。目前,上面有 [VideoGPT](https://huggingface.co/spaces/akhaliq/VideoGPT)、[CogVideo](https://huggingface.co/spaces/THUDM/CogVideo)、[ModelScope 文生视频](https://huggingface.co/spaces/damo-vilab/modelscope-text-to-video-synthesis) 以及 [Text2Video-Zero](https://huggingface.co/spaces/PAIR/Text2Video-Zero) 的应用演示,后面还会越来越多,敬请期待。要了解这些模型能用来做什么,我们可以看一下 Text2Video-Zero 的应用演示。该演示不仅展示了文生视频应用,而且还包含多种其他生成模式,如文本引导的视频编辑,以及基于姿势、深度、边缘输入结合文本提示进行联合条件下的视频生成。 + + + + + +除了使用应用演示来尝试预训练文生视频模型外,你还可以使用 [Tune-a-Video 训练演示](https://huggingface.co/spaces/Tune-A-Video-library/Tune-A-Video-Training-UI)使用你自己的`文本-视频对`微调现有的文生图模型。仅需上传视频并输入描述该视频的文本提示即就可以了。你可以将训得的模型上传到公开的 Tune-a-Video 社区的 Hub 或你私人用户名下的 Hub。训练完成后,只需转到演示的 *Run* 选项卡即可根据任何文本提示生成视频。 + + + + +🤗 Hub 上的所有 Space 其实都是 Git 存储库,你可以在本地或部署环境中克隆和运行它们。下面克隆一下 ModelScope 演示,安装环境,并在本地运行它。 + +``` +git clone https://huggingface.co/spaces/damo-vilab/modelscope-text-to-video-synthesis +cd modelscope-text-to-video-synthesis +pip install -r requirements.txt +python app.py +``` + +这就好了! Modelscope 演示现在已经在你的本地计算机上运行起来了。请注意,Diffusers 支持 ModelScope 文生视频模型,你只需几行代码即可直接加载并使用该模型生成新视频。 + + +``` +import torch +from diffusers import DiffusionPipeline, DPMSolverMultistepScheduler +from diffusers.utils import export_to_video + +pipe = DiffusionPipeline.from_pretrained("damo-vilab/text-to-video-ms-1.7b", torch_dtype=torch.float16, variant="fp16") +pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config) +pipe.enable_model_cpu_offload() + +prompt = "Spiderman is surfing" +video_frames = pipe(prompt, num_inference_steps=25).frames +video_path = export_to_video(video_frames) +``` + +### 其他的社区开源文生视频项目 + +最后,还有各种不在 Hub 上的开源项目和模型。一些值得关注的有 Phil Wang(即 lucidrains)的 [Imagen](https://github.com/lucidrains/imagen-pytorch) 非官方实现、[Phenaki](https://github.com/lucidrains/phenaki-pytorch)、[NUWA](https://github.com/lucidrains/nuwa-pytorch), [Make-a-Video](https://github.com/lucidrains/make-a-video-pytorch) 以及 [Video Diffusion 模型](https://github.com/lucidrains/video-diffusion-pytorch)。还有一个有意思的项目 [ExponentialML](https://github.com/ExponentialML/Text-To-Video-Finetuning),它是基于 🤗 diffusers 的,用于微调 ModelScope 文生视频模型。 + +## 总结 + +文生视频的研究正在呈指数级发展,但现有工作在上下文一致性上仍有限制,同时还面临其他诸多挑战。在这篇博文中,我们介绍了文生视频模型的限制、独特挑战和当前状态。我们还看到了最初为其他任务设计的架构范例如何赋能文生视频任务的巨大飞跃,以及这对未来研究意味着什么。虽然进展令人印象深刻,但与文生图模型相比,文生视频模型还有很长的路要走。最后,我们还展示了如何通过 Hub 上的应用演示来使用这些模型,以及如何将这些模型作为 🤗 Diffusers 流水线的一部分来完成各种任务。 + +本文就到此为止了!我们将继续整合最具影响力的计算机视觉和多模态模型,并希望收到你的反馈。要了解计算机视觉和多模态研究的最新消息,你可以在 Twitter 上关注我们:**[@adirik](https://twitter.com/alaradirik)**、**[@a_e_roberts ](https://twitter.com/a_e_roberts)**、[@osanviero](https://twitter.com/NielsRogge)、[@risingsayak](https://twitter.com/risingsayak) 以及 **[ @huggingface](https://twitter.com/huggingface)**。 + +> 英文原文: https://huggingface.co/blog/text-to-video +> 原文作者:Alara Dirik +> 译者: Matrix Yao (姚伟峰),英特尔深度学习工程师,工作方向为 transformer-family 模型在各模态数据上的应用及大规模模型的训练推理。 From 2fbbb4c9559c13c403f7cb4f8960bf91c40b7faf Mon Sep 17 00:00:00 2001 From: Zhongdong Yang Date: Mon, 15 May 2023 17:45:43 +0800 Subject: [PATCH 31/55] Update: proofread zh/text-to-video.md --- zh/_blog.yml | 22 +++++++++--------- zh/text-to-video.md | 55 +++++++++++++++++++++------------------------ 2 files changed, 37 insertions(+), 40 deletions(-) diff --git a/zh/_blog.yml b/zh/_blog.yml index 443a06dfbb..467113d00d 100644 --- a/zh/_blog.yml +++ b/zh/_blog.yml @@ -87,6 +87,16 @@ - fine-tuning - guide +- local: introducing-csearch + title: "在 Transformers 中使用对比搜索生成可媲美人类水平的文本🤗" + author: yxuansu + thumbnail: /blog/assets/115_introducing_contrastive_search/thumbnail.png + date: Nov 8, 2022 + tags: + - nlp + - text generation + - research + - local: inference-update title: "Hugging Face 提供的推理 (Inference) 解决方案" author: julsimon @@ -483,14 +493,4 @@ - guide - diffusion - text-to-image - - text-to-video - -- local: introducing-csearch - title: "在 Transformers 中使用对比搜索生成可媲美人类水平的文本🤗" - author: yxuansu - thumbnail: /blog/assets/115_introducing_contrastive_search/thumbnail.png - date: Nov 8, 2022 - tags: - - nlp - - text generation - - research \ No newline at end of file + - text-to-video \ No newline at end of file diff --git a/zh/text-to-video.md b/zh/text-to-video.md index 0b3a746622..903afff123 100644 --- a/zh/text-to-video.md +++ b/zh/text-to-video.md @@ -5,9 +5,11 @@ authors: - user: adirik translators: - user: MatrixYao +- user: zhongdongy + proofreader: true --- -

文生视频:任务、挑战及现状

+

文生视频: 任务、挑战及现状

@@ -23,72 +25,72 @@ translators:

samples
- 根据各种文本描述输入生成的视频示例,图片来自论文 Make-a-Video + 根据各种文本描述输入生成的视频示例,图片来自论文 Make-a-Video

## 文生视频与文生图 最近文生图领域的进展多如牛毛,大家可能很难跟上最新的进展。因此,我们先快速回顾一下。 -就在两年前,第一个支持开放词汇(open-vocabulary)的高质量文生图模型出现了。第一波文生图模型,包括 VQGAN-CLIP、XMC-GAN 和 GauGAN2,都采用了 GAN 架构。紧随其后的是 OpenAI 在 2021 年初发布的广受欢迎的基于 transformer 的 DALL-E、2022 年 4 月的 DALL-E 2,以及由 Stable Diffusion 和 Imagen 开创的新一波扩散模型。Stable Diffusion 的巨大成功催生了许多产品化的扩散模型,例如 DreamStudio 和 RunwayML GEN-1;同时也催生了一批集成了扩散模型的产品,例如 Midjourney。 +就在两年前,第一个支持开放词汇 (open-vocabulary) 的高质量文生图模型出现了。第一波文生图模型,包括 VQGAN-CLIP、XMC-GAN 和 GauGAN2,都采用了 GAN 架构。紧随其后的是 OpenAI 在 2021 年初发布的广受欢迎的基于 transformer 的 DALL-E、2022 年 4 月的 DALL-E 2,以及由 Stable Diffusion 和 Imagen 开创的新一波扩散模型。Stable Diffusion 的巨大成功催生了许多产品化的扩散模型,例如 DreamStudio 和 RunwayML GEN-1; 同时也催生了一批集成了扩散模型的产品,例如 Midjourney。 尽管扩散模型在文生图方面的能力令人印象深刻,但相同的故事并没有扩展到文生视频,不管是扩散文生视频模型还是非扩散文生视频模型的生成能力仍然非常受限。文生视频模型通常在非常短的视频片段上进行训练,这意味着它们需要使用计算量大且速度慢的滑动窗口方法来生成长视频。因此,众所周知,训得的模型难以部署和扩展,并且在保证上下文一致性和视频长度方面很受限。 -文生视频的任务面临着多方面的独特挑战。主要有: +文生视频的任务面临着多方面的独特挑战。主要有: -- 计算挑战:确保帧间空间和时间一致性会产生长期依赖性,从而带来高计算成本,使得大多数研究人员无法负担训练此类模型的费用。 -- 缺乏高质量的数据集:用于文生视频的多模态数据集很少,而且通常数据集的标注很少,这使得学习复杂的运动语义很困难。 -- 视频字幕的模糊性:“如何描述视频从而让模型的学习更容易”这一问题至今悬而未决。为了完整描述视频,仅一个简短的文本提示肯定是不够的。一系列的提示或一个随时间推移的故事才能用于生成视频。 +- 计算挑战: 确保帧间空间和时间一致性会产生长期依赖性,从而带来高计算成本,使得大多数研究人员无法负担训练此类模型的费用。 +- 缺乏高质量的数据集: 用于文生视频的多模态数据集很少,而且通常数据集的标注很少,这使得学习复杂的运动语义很困难。 +- 视频字幕的模糊性: “如何描述视频从而让模型的学习更容易”这一问题至今悬而未决。为了完整描述视频,仅一个简短的文本提示肯定是不够的。一系列的提示或一个随时间推移的故事才能用于生成视频。 + +在下一节中,我们将分别讨论文生视频领域的发展时间线以及为应对这些挑战而提出的各种方法。概括来讲,文生视频的工作主要可以分为以下 3 类: -在下一节中,我们将分别讨论文生视频领域的发展时间线以及为应对这些挑战而提出的各种方法。概括来讲,文生视频的工作主要可以分为以下 3 类: 1. 提出新的、更高质量的数据集,使得训练更容易。 -2. 在没有`文本-视频对`的情况下训练模型的方法。 +2. 在没有 `文本 - 视频对` 的情况下训练模型的方法。 3. 计算效率更高的生成更长和更高分辨率视频的方法。 ## 如何实现文生视频? 让我们来看看文生视频的工作原理以及该领域的最新进展。我们将沿着与文生图类似的研究路径,探索文生视频模型的流变,并探讨迄今为止我们是如何解决文生视频领域的具体挑战的。 -与文生图任务一样,文生视频也是个年轻的方向,最早只能追溯到几年前。早期研究主要使用基于 GAN 和 VAE 的方法在给定文本描述的情况下自回归地生成视频帧(参见 [Text2Filter](https://huggingface.co/papers/1710.00421) 及 [TGANs-C](https://huggingface.co/papers/1804.08264))。虽然这些工作为文生视频这一新计算机视觉任务奠定了基础,但它们的应用范围有限,仅限于低分辨率、短距以及视频中目标的运动比较单一、孤立的情况。 +与文生图任务一样,文生视频也是个年轻的方向,最早只能追溯到几年前。早期研究主要使用基于 GAN 和 VAE 的方法在给定文本描述的情况下自回归地生成视频帧 (参见 [Text2Filter](https://huggingface.co/papers/1710.00421) 及 [TGANs-C](https://huggingface.co/papers/1804.08264))。虽然这些工作为文生视频这一新计算机视觉任务奠定了基础,但它们的应用范围有限,仅限于低分辨率、短距以及视频中目标的运动比较单一、孤立的情况。

tgans-c
- 最初的文生视频模型在分辨率、上下文和长度方面极为有限,图像取自 TGANs-C + 最初的文生视频模型在分辨率、上下文和长度方面极为有限,图像取自 TGANs-C

-受文本 (GPT-3) 和图像 (DALL-E) 中大规模预训练 transformer 模型的成功启发,文生视频研究的第二波浪潮采用了 transformer 架构。[Phenaki](https://huggingface.co/papers/2210.02399)、[Make-A-Vide](https://huggingface.co/papers/2209.14792)、[NUWA](https://huggingface.co/papers/2111.12417)、[VideoGPT](https://huggingface.co/papers/2104.10157) 和 [CogVideo](https://huggingface.co/papers/2205.15868) 都提出了基于 transformer 的框架,而 [TATS](https://huggingface.co/papers/2204.03638) 提出了一种混合方法,从而将用于生成图像的 VQGAN 和用于顺序地生成帧的时间敏感 transformer 模块结合起来。在第二波浪潮的诸多框架中,Phenaki 尤其有意思,因为它能够根据一系列提示(即一个故事情节)生成任意长视频。同样,[NUWA-Infinity](https://huggingface.co/papers/2207.09814) 提出了一种双重自回归(autoregressive over autoregressive)生成机制,可以基于文本输入合成无限长度的图像和视频,从而使得生成高清的长视频成为可能。但是,Phenaki 或 NUWA 模型均无法从公开渠道获取。 +受文本 (GPT-3) 和图像 (DALL-E) 中大规模预训练 Transformer 模型的成功启发,文生视频研究的第二波浪潮采用了 Transformer 架构。[Phenaki](https://huggingface.co/papers/2210.02399)、[Make-A-Vide](https://huggingface.co/papers/2209.14792)、[NUWA](https://huggingface.co/papers/2111.12417)、[VideoGPT](https://huggingface.co/papers/2104.10157) 和 [CogVideo](https://huggingface.co/papers/2205.15868) 都提出了基于 transformer 的框架,而 [TATS](https://huggingface.co/papers/2204.03638) 提出了一种混合方法,从而将用于生成图像的 VQGAN 和用于顺序地生成帧的时间敏感 transformer 模块结合起来。在第二波浪潮的诸多框架中,Phenaki 尤其有意思,因为它能够根据一系列提示 (即一个故事情节) 生成任意长视频。同样,[NUWA-Infinity](https://huggingface.co/papers/2207.09814) 提出了一种双重自回归 (autoregressive over autoregressive) 生成机制,可以基于文本输入合成无限长度的图像和视频,从而使得生成高清的长视频成为可能。但是,Phenaki 或 NUWA 模型均无法从公开渠道获取。

phenaki
- Phenaki 的模型架构基于 transformer,图片来自此处 + Phenaki 的模型架构基于 transformer,图片来自 此处

-第三波也就是当前这一波文生视频模型浪潮主要以基于扩散的架构为特征。扩散模型在生成多样化、超现实和上下文丰富的图像方面取得了显著成功,这引起了人们对将扩散模型推广到其他领域(如音频、3D ,最近又拓展到了视频)的兴趣。这一波模型是由 [Video Diffusion Models](https://huggingface.co/papers/2204.03458)(VDM)开创的,它首次将扩散模型推广至视频领域。然后是 [MagicVideo](https://huggingface.co/papers/2211.11018) 提出了一个在低维隐空间中生成视频剪辑的框架,据其报告,新框架与 VDM 相比在效率上有巨大的提升。另一个值得一提的是 [Tune-a-Video](https://huggingface.co/papers/2212.11565),它使用`单文本-视频对`微调预训练的文生图模型,并允许在保留运动的同时改变视频内容。随后涌现出了越来越多的文生视频扩散模型,包括 [Video LDM](https://huggingface.co/papers/2304.08818)、[Text2Video-Zero](https://huggingface.co/papers/2303.13439 )、[Runway Gen1、Runway Gen2](https://huggingface.co/papers/2302.03011) 以及 [NUWA-XL](https://huggingface.co/papers/2303.12346)。 +第三波也就是当前这一波文生视频模型浪潮主要以基于扩散的架构为特征。扩散模型在生成多样化、超现实和上下文丰富的图像方面取得了显著成功,这引起了人们对将扩散模型推广到其他领域 (如音频、3D ,最近又拓展到了视频) 的兴趣。这一波模型是由 [Video Diffusion Models](https://huggingface.co/papers/2204.03458) (VDM) 开创的,它首次将扩散模型推广至视频领域。然后是 [MagicVideo](https://huggingface.co/papers/2211.11018) 提出了一个在低维隐空间中生成视频剪辑的框架,据其报告,新框架与 VDM 相比在效率上有巨大的提升。另一个值得一提的是 [Tune-a-Video](https://huggingface.co/papers/2212.11565),它使用 `单文本 - 视频对`微调预训练的文生图模型,并允许在保留运动的同时改变视频内容。随后涌现出了越来越多的文生视频扩散模型,包括 [Video LDM](https://huggingface.co/papers/2304.08818)、[Text2Video-Zero](https://huggingface.co/papers/2303.13439)、[Runway Gen1、Runway Gen2](https://huggingface.co/papers/2302.03011) 以及 [NUWA-XL](https://huggingface.co/papers/2303.12346)。 -Text2Video-Zero 是一个文本引导的视频生成和处理框架,其工作方式类似于 ControlNet。它可以基于输入的`文本数据`或`文本 + 姿势混合数据`或`文本 + 边缘混合数据`直接生成(或编辑)视频。顾名思义,Text2Video-Zero 是一种零样本模型,它将可训练的运动动力学模块与预训练的文生图稳定扩散模型相结合,而无需使用任何`文本-视频对`数据。与 Text2Video-Zero 类似,Runway Gen-1 和 Runway Gen-2 模型可以合成由文本或图像描述的内容引导的视频。这些工作大多数都是在短视频片段上训练的,并且依靠带有滑动窗口的自回归机制来生成更长的视频,这不可避免地导致了上下文差异(context gap)。 NUWA-XL 解决了这个问题,并提出了一种“双重扩散(diffusion over diffusion)”方法,并在 3376 帧视频数据上训练模型。最后,还有一些尚未在同行评审的会议或期刊上发表的开源文本到视频模型和框架,例如阿里巴巴达摩院视觉智能实验室的 ModelScope 和 Tencel 的 VideoCrafter。 +Text2Video-Zero 是一个文本引导的视频生成和处理框架,其工作方式类似于 ControlNet。它可以基于输入的 `文本数据` 或 `文本 + 姿势混合数据` 或 `文本 + 边缘混合数据` 直接生成 (或编辑) 视频。顾名思义,Text2Video-Zero 是一种零样本模型,它将可训练的运动动力学模块与预训练的文生图稳定扩散模型相结合,而无需使用任何 `文本 - 视频对` 数据。与 Text2Video-Zero 类似,Runway Gen-1 和 Runway Gen-2 模型可以合成由文本或图像描述的内容引导的视频。这些工作大多数都是在短视频片段上训练的,并且依靠带有滑动窗口的自回归机制来生成更长的视频,这不可避免地导致了上下文差异 (context gap)。 NUWA-XL 解决了这个问题,并提出了一种“双重扩散 (diffusion over diffusion)”方法,并在 3376 帧视频数据上训练模型。最后,还有一些尚未在同行评审的会议或期刊上发表的开源文本到视频模型和框架,例如阿里巴巴达摩院视觉智能实验室的 ModelScope 和 Tencel 的 VideoCrafter。 ## 数据集 -与其他视觉语言模型一样,文生视频模型通常在大型`文本-视频对`数据集上进行训练。这些数据集中的视频通常被分成短的、固定长度的块,并且通常仅限于少数几个目标的孤立动作。出现这种情况的一部分原因是计算限制,另一部分原因是以有意义的方式描述视频内容这件事本身就很难。而我们看到多模态视频文本数据集和文生视频模型的发展往往是交织在一起的,因此有不少工作侧重于开发更易于训练的更好、更通用的数据集。同时也有一些工作另辟蹊径,对替代解决方案进行了探索,例如[Phenaki](https://phenaki.video/?mc_cid=9fee7eeb9d#) 将`文本-图像对`与`文本-视频对`相结合用于文生视频任务;Make-a-Video 则更进一步,提议仅使用`文本-图像对`来学习世界表象信息,并使用单模态视频数据以无监督的方式学习时空依赖性。 -这些大型数据集面临与文本图像数据集类似的问题。最常用的文本-视频数据集 [WebVid](https://m-bain.github.io/webvid-dataset/) 由 1070 万个`文本-视频对`(视频时长 5.2 万小时)组成,并包含一定量的噪声样本,这些样本中的视频文本描述与视频内容是非相干的。其他数据集试图通过聚焦特定任务或领域来解决这个问题。例如,[Howto100M](https://www.di.ens.fr/willow/research/howto100m/) 数据集包含 13600 万个视频剪辑,其中文本部分描述了如何一步一步地执行复杂的任务,例如烹饪、手工制作、园艺、和健身。而 [QuerYD](https://www.robots.ox.ac.uk/~vgg/data/queryd/) 数据集则聚焦于事件定位任务,视频的字幕详细描述了目标和动作的相对位置。 [CelebV-Text](https://celebv-text.github.io/) 是一个包含超过 7 万个视频的大规模人脸文本-视频数据集,用于生成具有逼真的人脸、情绪和手势的视频。 +与其他视觉语言模型一样,文生视频模型通常在大型 `文本 - 视频对` 数据集上进行训练。这些数据集中的视频通常被分成短的、固定长度的块,并且通常仅限于少数几个目标的孤立动作。出现这种情况的一部分原因是计算限制,另一部分原因是以有意义的方式描述视频内容这件事本身就很难。而我们看到多模态视频文本数据集和文生视频模型的发展往往是交织在一起的,因此有不少工作侧重于开发更易于训练的更好、更通用的数据集。同时也有一些工作另辟蹊径,对替代解决方案进行了探索,例如 [Phenaki](https://phenaki.video/?mc_cid=9fee7eeb9d#) 将 `文本 - 图像对` 与 `文本 - 视频对` 相结合用于文生视频任务; Make-a-Video 则更进一步,提议仅使用 `文本 - 图像对` 来学习世界表象信息,并使用单模态视频数据以无监督的方式学习时空依赖性。 + +这些大型数据集面临与文本图像数据集类似的问题。最常用的文本 - 视频数据集 [WebVid](https://m-bain.github.io/webvid-dataset/) 由 1070 万个 `文本 - 视频对` (视频时长 5.2 万小时) 组成,并包含一定量的噪声样本,这些样本中的视频文本描述与视频内容是非相干的。其他数据集试图通过聚焦特定任务或领域来解决这个问题。例如,[Howto100M](https://www.di.ens.fr/willow/research/howto100m/) 数据集包含 13600 万个视频剪辑,其中文本部分描述了如何一步一步地执行复杂的任务,例如烹饪、手工制作、园艺、和健身。而 [QuerYD](https://www.robots.ox.ac.uk/~vgg/data/queryd/) 数据集则聚焦于事件定位任务,视频的字幕详细描述了目标和动作的相对位置。 [CelebV-Text](https://celebv-text.github.io/) 是一个包含超过 7 万个视频的大规模人脸文本 - 视频数据集,用于生成具有逼真的人脸、情绪和手势的视频。 ## Hugging Face 上的文生视频 -使用 Hugging Face Diffusers,你可以轻松下载、运行和微调各种预训练的文生视频模型,包括 Text2Video-Zero 和[阿里巴巴达摩院](https://huggingface.co/damo-vilab)的 ModelScope。我们目前正在努力将更多优秀的工作集成到 Diffusers 和 🤗 Transformers 中。 +使用 Hugging Face Diffusers,你可以轻松下载、运行和微调各种预训练的文生视频模型,包括 Text2Video-Zero 和 [阿里巴巴达摩院](https://huggingface.co/damo-vilab) 的 ModelScope。我们目前正在努力将更多优秀的工作集成到 Diffusers 和 🤗 Transformers 中。 ### Hugging Face 应用演示 -在 Hugging Face,我们的目标是使Hugging Face 库更易于使用并包含最先进的研究。你可以前往 Hub 查看和体验由 🤗 团队、无数社区贡献者和研究者贡献的 Spaces 演示。目前,上面有 [VideoGPT](https://huggingface.co/spaces/akhaliq/VideoGPT)、[CogVideo](https://huggingface.co/spaces/THUDM/CogVideo)、[ModelScope 文生视频](https://huggingface.co/spaces/damo-vilab/modelscope-text-to-video-synthesis) 以及 [Text2Video-Zero](https://huggingface.co/spaces/PAIR/Text2Video-Zero) 的应用演示,后面还会越来越多,敬请期待。要了解这些模型能用来做什么,我们可以看一下 Text2Video-Zero 的应用演示。该演示不仅展示了文生视频应用,而且还包含多种其他生成模式,如文本引导的视频编辑,以及基于姿势、深度、边缘输入结合文本提示进行联合条件下的视频生成。 +在 Hugging Face,我们的目标是使 Hugging Face 库更易于使用并包含最先进的研究。你可以前往 Hub 查看和体验由 🤗 团队、无数社区贡献者和研究者贡献的 Spaces 演示。目前,上面有 [VideoGPT](https://huggingface.co/spaces/akhaliq/VideoGPT)、[CogVideo](https://huggingface.co/spaces/THUDM/CogVideo)、[ModelScope 文生视频](https://huggingface.co/spaces/damo-vilab/modelscope-text-to-video-synthesis) 以及 [Text2Video-Zero](https://huggingface.co/spaces/PAIR/Text2Video-Zero) 的应用演示,后面还会越来越多,敬请期待。要了解这些模型能用来做什么,我们可以看一下 Text2Video-Zero 的应用演示。该演示不仅展示了文生视频应用,而且还包含多种其他生成模式,如文本引导的视频编辑,以及基于姿势、深度、边缘输入结合文本提示进行联合条件下的视频生成。 - -除了使用应用演示来尝试预训练文生视频模型外,你还可以使用 [Tune-a-Video 训练演示](https://huggingface.co/spaces/Tune-A-Video-library/Tune-A-Video-Training-UI)使用你自己的`文本-视频对`微调现有的文生图模型。仅需上传视频并输入描述该视频的文本提示即就可以了。你可以将训得的模型上传到公开的 Tune-a-Video 社区的 Hub 或你私人用户名下的 Hub。训练完成后,只需转到演示的 *Run* 选项卡即可根据任何文本提示生成视频。 +除了使用应用演示来尝试预训练文生视频模型外,你还可以使用 [Tune-a-Video 训练演示](https://huggingface.co/spaces/Tune-A-Video-library/Tune-A-Video-Training-UI) 使用你自己的 `文本 - 视频对`微调现有的文生图模型。仅需上传视频并输入描述该视频的文本提示即就可以了。你可以将训得的模型上传到公开的 Tune-a-Video 社区的 Hub 或你私人用户名下的 Hub。训练完成后,只需转到演示的 _Run_ 选项卡即可根据任何文本提示生成视频。 - 🤗 Hub 上的所有 Space 其实都是 Git 存储库,你可以在本地或部署环境中克隆和运行它们。下面克隆一下 ModelScope 演示,安装环境,并在本地运行它。 ``` @@ -100,7 +102,6 @@ python app.py 这就好了! Modelscope 演示现在已经在你的本地计算机上运行起来了。请注意,Diffusers 支持 ModelScope 文生视频模型,你只需几行代码即可直接加载并使用该模型生成新视频。 - ``` import torch from diffusers import DiffusionPipeline, DPMSolverMultistepScheduler @@ -117,14 +118,10 @@ video_path = export_to_video(video_frames) ### 其他的社区开源文生视频项目 -最后,还有各种不在 Hub 上的开源项目和模型。一些值得关注的有 Phil Wang(即 lucidrains)的 [Imagen](https://github.com/lucidrains/imagen-pytorch) 非官方实现、[Phenaki](https://github.com/lucidrains/phenaki-pytorch)、[NUWA](https://github.com/lucidrains/nuwa-pytorch), [Make-a-Video](https://github.com/lucidrains/make-a-video-pytorch) 以及 [Video Diffusion 模型](https://github.com/lucidrains/video-diffusion-pytorch)。还有一个有意思的项目 [ExponentialML](https://github.com/ExponentialML/Text-To-Video-Finetuning),它是基于 🤗 diffusers 的,用于微调 ModelScope 文生视频模型。 +最后,还有各种不在 Hub 上的开源项目和模型。一些值得关注的有 Phil Wang (即 lucidrains) 的 [Imagen](https://github.com/lucidrains/imagen-pytorch) 非官方实现、[Phenaki](https://github.com/lucidrains/phenaki-pytorch)、[NUWA](https://github.com/lucidrains/nuwa-pytorch), [Make-a-Video](https://github.com/lucidrains/make-a-video-pytorch) 以及 [Video Diffusion 模型](https://github.com/lucidrains/video-diffusion-pytorch)。还有一个有意思的项目 [ExponentialML](https://github.com/ExponentialML/Text-To-Video-Finetuning),它是基于 🤗 Diffusers 的,用于微调 ModelScope 文生视频模型。 ## 总结 文生视频的研究正在呈指数级发展,但现有工作在上下文一致性上仍有限制,同时还面临其他诸多挑战。在这篇博文中,我们介绍了文生视频模型的限制、独特挑战和当前状态。我们还看到了最初为其他任务设计的架构范例如何赋能文生视频任务的巨大飞跃,以及这对未来研究意味着什么。虽然进展令人印象深刻,但与文生图模型相比,文生视频模型还有很长的路要走。最后,我们还展示了如何通过 Hub 上的应用演示来使用这些模型,以及如何将这些模型作为 🤗 Diffusers 流水线的一部分来完成各种任务。 -本文就到此为止了!我们将继续整合最具影响力的计算机视觉和多模态模型,并希望收到你的反馈。要了解计算机视觉和多模态研究的最新消息,你可以在 Twitter 上关注我们:**[@adirik](https://twitter.com/alaradirik)**、**[@a_e_roberts ](https://twitter.com/a_e_roberts)**、[@osanviero](https://twitter.com/NielsRogge)、[@risingsayak](https://twitter.com/risingsayak) 以及 **[ @huggingface](https://twitter.com/huggingface)**。 - -> 英文原文: https://huggingface.co/blog/text-to-video -> 原文作者:Alara Dirik -> 译者: Matrix Yao (姚伟峰),英特尔深度学习工程师,工作方向为 transformer-family 模型在各模态数据上的应用及大规模模型的训练推理。 +本文就到此为止了!我们将继续整合最具影响力的计算机视觉和多模态模型,并希望收到你的反馈。要了解计算机视觉和多模态研究的最新消息,你可以在 Twitter 上关注我们: [@adirik](https://twitter.com/alaradirik)、[@a_e_roberts](https://twitter.com/a_e_roberts)、[@osanviero](https://twitter.com/NielsRogge)、[@risingsayak](https://twitter.com/risingsayak) 以及 [@huggingface](https://twitter.com/huggingface)。 \ No newline at end of file From cd6f1fc8bdbebaee86b390c1acbedc73f7e33681 Mon Sep 17 00:00:00 2001 From: Zhongdong Yang Date: Tue, 16 May 2023 17:15:03 +0800 Subject: [PATCH 32/55] Update: proofreading zh/introducing-csearch.md --- zh/introducing-csearch.md | 196 +++++++++++++++++++++----------------- 1 file changed, 106 insertions(+), 90 deletions(-) diff --git a/zh/introducing-csearch.md b/zh/introducing-csearch.md index 0b6ea28e02..61961d1d5a 100644 --- a/zh/introducing-csearch.md +++ b/zh/introducing-csearch.md @@ -5,14 +5,16 @@ authors: - user: GMFTBY translators: - user: MatrixYao +- user: zhongdongy + proofreader: true --- -

在 Transformers 中使用对比搜索生成可媲美人类水平的文本🤗

+

在 Transformers 中使用对比搜索生成可媲美人类水平的文本🤗

-**** +--- Open In Colab @@ -20,44 +22,44 @@ translators: ### 1. 引言 -自然语言生成(即文本生成)是自然语言处理(NLP)的核心任务之一。本文将介绍神经网络文本生成领域当前最先进的解码方法**对比搜索(Contrastive Search)**。提出该方法的论文 *"A Contrastive Framework for Neural Text Generation"* 最初发表于 NeurIPS 2022([[论文]](https://arxiv.org/abs/2202.06417)、[[官方实现]](https://github.com/yxuansu/SimCTG))。此后,*"Contrastive Search Is What You Need For Neural Text Generation"* 的作者又进一步证明了对比搜索可以用**现有的**语言模型在 **16** 种语言上生成可媲美人类水平的文本([[论文]](https://arxiv.org/abs/2210.14140)、[[官方实现]](https://github.com/yxuansu/Contrastive_Search_Is_What_You_Need))。 +自然语言生成 (即文本生成) 是自然语言处理 (NLP) 的核心任务之一。本文将介绍神经网络文本生成领域当前最先进的解码方法 **对比搜索 (Contrastive Search)**。提出该方法的论文 _“A Contrastive Framework for Neural Text Generation”_ 最初发表于 NeurIPS 2022 ([[论文]](https://arxiv.org/abs/2202.06417)、[[官方实现]](https://github.com/yxuansu/SimCTG))。此后, _“Contrastive Search Is What You Need For Neural Text Generation”_ 的作者又进一步证明了对比搜索可以用 **现有的** 语言模型在 **16** 种语言上生成可媲美人类水平的文本 ([[论文]](https://arxiv.org/abs/2210.14140)、[[官方实现]](https://github.com/yxuansu/Contrastive_Search_Is_What_You_Need))。 -**[备注]** 对于不熟悉文本生成的用户,请参阅[此博文](https://huggingface.co/blog/how-to-generate)了解更多详情。 +**[备注]** 对于不熟悉文本生成的用户,请参阅 [此博文](https://huggingface.co/blog/how-to-generate) 了解更多详情。 -**** +--- ### 2. Hugging Face 🤗 对比搜索演示 -目前,🤗 `transformers` 的 PyTorch 和 TensorFlow 后端均支持对比搜索。你可以在[该 Colab notebook](https://colab.research.google.com/github/huggingface/blog/blob/main/notebooks/115_introducing_contrastive_search.ipynb) 中根据不同的后端选择相应的部分来探索该方法,文章顶部也有该 notebook 链接。我们还构建了这个不错的[演示应用](https://huggingface.co/spaces/joaogante/contrastive_search_generation),用它可以直观地比较对比搜索与其他流行的解码方法(例如波束搜索、top-k 采样[3]以及核采样[4])。 +目前,🤗 `transformers` 的 PyTorch 和 TensorFlow 后端均支持对比搜索。你可以在 [该 Colab notebook](https://colab.research.google.com/github/huggingface/blog/blob/main/notebooks/115_introducing_contrastive_search.ipynb) 中根据不同的后端选择相应的部分来探索该方法,文章顶部也有该 notebook 链接。我们还构建了这个不错的 [演示应用](https://huggingface.co/spaces/joaogante/contrastive_search_generation),用它可以直观地比较对比搜索与其他流行的解码方法 (例如波束搜索、top-k 采样 [3] 以及核采样 [4])。 -**** +--- ### 3. 环境安装 -在进行后续实验前,我们要先安装最新的 `transformers` 库,如下: +在进行后续实验前,我们要先安装最新的 `transformers` 库,如下: ```shell pip install torch pip install "transformers==4.24.0" ``` -**** +--- ### 4. 现有解码方法存在的问题 -解码方法可以分为两类:(i)确定性方法,(ii)随机方法。下面我们分别对两者进行讨论! +解码方法可以分为两类: (i) 确定性方法,(ii) 随机方法。下面我们分别对两者进行讨论! #### 4.1. 确定性方法 -确定性方法,如贪心搜索和波束搜索,通过在语言模型输出的所有候选补全词中选择概率最高的词来生成最终文本。然而,正如之前研究 [3][4] 指出的,确定性方法通常会导致*模型退化*,即生成的文本不自然且包含不必要的重复。 +确定性方法,如贪心搜索和波束搜索,通过在语言模型输出的所有候选补全词中选择概率最高的词来生成最终文本。然而,正如之前研究 [3][4] 指出的,确定性方法通常会导致 _模型退化_,即生成的文本不自然且包含不必要的重复。 下面,我们看一个用 GPT-2 模型和贪心搜索生成文本的例子。 @@ -69,13 +71,13 @@ input_ids = tokenizer('DeepMind Company is', return_tensors='pt').input_ids model = GPT2LMHeadModel.from_pretrained('gpt2-large') output = model.generate(input_ids, max_length=128) -print("Output:\n" + 100 * '-') +print("Output:\n" + 100 *'-') print(tokenizer.decode(output[0], skip_special_tokens=True)) -print("" + 100 * '-') +print("" + 100 *'-') ```
-模型输出: + 模型输出: ``` Output: @@ -91,6 +93,7 @@ DeepMind's research is also used by the UK government to develop new technologie DeepMind's research is also used by the UK government to develop new technologies ---------------------------------------------------------------------------------------------------- ``` +
**[备注]** 我们可以看到,贪心搜索生成的结果中有明显的重复。 @@ -99,7 +102,7 @@ DeepMind's research is also used by the UK government to develop new technologie #### 4.2. 随机方法 -为了解决确定性方法带来的问题,随机方法通过在解码过程中引入随机性来生成文本。常用的两种随机方法是 (i) top-k 采样[3] 和 (ii) 核采样(也称为 top-p 采样)[4]。 +为了解决确定性方法带来的问题,随机方法通过在解码过程中引入随机性来生成文本。常用的两种随机方法是 (i) top-k 采样 [3] 和 (ii) 核采样 (也称为 top-p 采样) [4]。 下面,我们给出用 GPT-2 模型和核采样 (p=0.95) 生成文本的示例。 @@ -113,13 +116,13 @@ model = GPT2LMHeadModel.from_pretrained('gpt2-large') torch.manual_seed(0.) output = model.generate(input_ids, do_sample=True, max_length=128, top_p=0.95, top_k=0) -print("Output:\n" + 100 * '-') +print("Output:\n" + 100 *'-') print(tokenizer.decode(output[0], skip_special_tokens=True)) -print("" + 100 * '-') +print("" + 100 *'-') ```
-模型输出: + 模型输出: ``` Output: @@ -136,38 +139,39 @@ information. They understand they will get the same on their own." One example? Given the details of today ---------------------------------------------------------------------------------------------------- ``` +
-**[备注]** 虽然核采样可以生成没有重复的文本,但生成文本的语义一致性并不是很好。例如,生成的短语 *'AI is not journalism'* 与给定的上文即 *'DeepMind Company'* 不一致。 +**[备注]** 虽然核采样可以生成没有重复的文本,但生成文本的语义一致性并不是很好。例如,生成的短语 _‘AI is not journalism’_ 与给定的上文即 _‘DeepMind Company’_ 不一致。 -我们注意到,这种语义不一致的问题可以通过降低温度(temperature)来部分解决。然而,降低温度会使核采样更接近贪心搜索,这其实就变成了贪心搜索和核采样之间的权衡。一般来讲,要找到一个既能避免贪心搜索又能避免核采样陷阱的快捷且与模型无关的温度相当有挑战。 +我们注意到,这种语义不一致的问题可以通过降低温度 (temperature) 来部分解决。然而,降低温度会使核采样更接近贪心搜索,这其实就变成了贪心搜索和核采样之间的权衡。一般来讲,要找到一个既能避免贪心搜索又能避免核采样陷阱的快捷且与模型无关的温度相当有挑战。 -**** +--- ### 5. 对比搜索 -本节我们来详细介绍一种新的解码方法,***对比搜索***。 - +本节我们来详细介绍一种新的解码方法, _ **对比搜索**_。 #### 5.1. 解码目标 给定前缀文本 $x_{< t}$,我们按如下公式选择输出词元 $x_{t}$: +
-上式中, $V^{(k)}$ 是语言模型输出概率分布 $p_{\theta}(v|x_{< t})$ 中 k 个概率最大的候选词元的集合。第一项,即 *模型置信度(model confidence)*,是语言模型预测的每个候选词元 $v$ 的概率。第二项,*退化惩罚(degeneration penalty)*,用于度量 $v$ 与上文 $x_{< t}$ 中每个词元的相异度,其中函数 $s(\cdot, \cdot)$ 用于计算每两个词元间的余弦相似度。更具体地说,退化惩罚被定义为 $v$ 的向量表征 $h_{v}$ 与其上文 $x_ {< t}$ 中每个词元的向量表征间余弦相似度的最大值。这里,候选词元的向量表征 $h_{v}$ 是在给定 $x_{< t}$ 和 $v$ 的条件下将二者连接起来输入给语言模型,然后由语言模型计算出来的。直观上,如果 $v$ 的退化惩罚较大意味着它与上文更相似(在表示空间中),因此更有可能导致模型退化问题。超参数 $\alpha$ 用于在这两项中折衷。当 $\alpha=0$ 时,对比搜索退化为纯贪心搜索。 +上式中, $V^{(k)}$ 是语言模型输出概率分布 $p_{\theta}(v|x_{< t})$ 中 k 个概率最大的候选词元的集合。第一项,即 _模型置信度 (model confidence)_,是语言模型预测的每个候选词元 $v$ 的概率。第二项, _退化惩罚 (degeneration penalty)_,用于度量 $v$ 与上文 $x_{< t}$ 中每个词元的相异度,其中函数 $s(\cdot, \cdot)$ 用于计算每两个词元间的余弦相似度。更具体地说,退化惩罚被定义为 $v$ 的向量表征 $h_{v}$ 与其上文 $x_ {< t}$ 中每个词元的向量表征间余弦相似度的最大值。这里,候选词元的向量表征 $h_{v}$ 是在给定 $x_{< t}$ 和 $v$ 的条件下将二者连接起来输入给语言模型,然后由语言模型计算出来的。直观上,如果 $v$ 的退化惩罚较大意味着它与上文更相似 (在表示空间中),因此更有可能导致模型退化问题。超参数 $\alpha$ 用于在这两项中折衷。当 $\alpha=0$ 时,对比搜索退化为纯贪心搜索。 -**[备注]** 在生成输出时,对比搜索同时考虑(i)语言模型预测的概率,以保持生成文本和前缀文本之间的语义连贯性; (ii) 与上文的相似性以避免模型退化。 +**[备注]** 在生成输出时,对比搜索同时考虑 (i) 语言模型预测的概率,以保持生成文本和前缀文本之间的语义连贯性; (ii) 与上文的相似性以避免模型退化。 #### 5.2. 使用对比搜索生成文本 -下面,我们使用与第 4.1 节第 4.2 节中相同的前缀文本(即 *“DeepMind Company is”* ),并使用对比搜索生成文本(取 k=4、$\alpha=0.6$)。为了充分展示对比搜索的卓越能力,我们让语言模型生成一个 **512** 词元的**长**文档,如下: +下面,我们使用与 第 4.1 节 第 4.2 节 中相同的前缀文本 (即 _“DeepMind Company is”_ ),并使用对比搜索生成文本 (取 k=4、$\alpha=0.6$)。为了充分展示对比搜索的卓越能力,我们让语言模型生成一个 **512** 词元的 **长**文档,如下: ```python from transformers import GPT2Tokenizer, GPT2LMHeadModel @@ -183,17 +187,17 @@ input_ids = tokenizer(prefix_text, return_tensors='pt').input_ids # generate the result with contrastive search output = model.generate(input_ids, penalty_alpha=0.6, top_k=4, max_length=512) -print("Output:\n" + 100 * '-') +print("Output:\n" + 100 *'-') print(tokenizer.decode(output[0], skip_special_tokens=True)) -print("" + 100 * '-') +print("" + 100 *'-') ``` -参数设置如下: -* `--top_k`:对比搜索中的超参 $k$。 -* `--penalty_alpha`:对比搜索中的超参 $\alpha$。 +参数设置如下: +- `--top_k`: 对比搜索中的超参 $k$。 +- `--penalty_alpha`: 对比搜索中的超参 $\alpha$。
-模型输出: + 模型输出: ``` Output: @@ -211,25 +215,25 @@ DeepMind's work on Go began in 2010, when it began to train a neural network to In addition to the win in Go, DeepMind has also developed an AI system that can learn to play a number of different games, including poker, Go, and chess. This AI system, called Tarsier, was developed in partnership with Carnegie Mellon University and the University of California, Berkeley, and is being used to teach computer vision and machine learning to identify objects in images and recognize speech in natural language. Tarsier has been trained to play the game of Go and other games on a ---------------------------------------------------------------------------------------------------- ``` -
-**[备注]** 我们看到生成的文本质量非常高。整个文档语法流畅,语义连贯。同时,生成的文本也很好地保持了事实的正确性。例如,在第一段中,它正确阐述了 *“AlphaGo”* 作为 *“第一个击败职业围棋选手的程序”* 这一事实。 + +**[备注]** 我们看到生成的文本质量非常高。整个文档语法流畅,语义连贯。同时,生成的文本也很好地保持了事实的正确性。例如,在第一段中,它正确阐述了 _“AlphaGo”_ 作为 _“第一个击败职业围棋选手的程序”_ 这一事实。 #### 5.3. 对比搜索的结果可视化 -为了更好地理解对比搜索的工作原理,我们对贪心搜索 (第 4.1 节) 和对比搜索进行了直观比较。具体来说,我们分别将贪心搜索和对比搜索生成的词元相似度矩阵可视化。两个词元之间的相似性被定义为它们的向量表征(即最后一个转换器层的隐藏状态)之间的余弦相似性。贪心搜索(上)和对比搜索(下)的结果如下图所示。 +为了更好地理解对比搜索的工作原理,我们对贪心搜索 ( 第 4.1 节 ) 和对比搜索进行了直观比较。具体来说,我们分别将贪心搜索和对比搜索生成的词元相似度矩阵可视化。两个词元之间的相似性被定义为它们的向量表征 (即最后一个转换器层的隐藏状态) 之间的余弦相似性。贪心搜索 (上) 和对比搜索 (下) 的结果如下图所示。
-**[备注]** 从贪心搜索的结果中,我们看到非对角线的相似度很高,这清楚地表明贪心搜索产生了重复。相反,在对比搜索的结果中,高相似度分数主要出现在对角线上,这证明我们成功解决了退化问题。对比搜索的这一优良特性是通过在解码过程中引入退化惩罚(参见第 5.1 节)来实现的。 +**[备注]** 从贪心搜索的结果中,我们看到非对角线的相似度很高,这清楚地表明贪心搜索产生了重复。相反,在对比搜索的结果中,高相似度分数主要出现在对角线上,这证明我们成功解决了退化问题。对比搜索的这一优良特性是通过在解码过程中引入退化惩罚 (参见 第 5.1 节 ) 来实现的。 -**** +--- @@ -239,15 +243,14 @@ In addition to the win in Go, DeepMind has also developed an AI system that can -#### 6.1. 示例一:GPT-2 +#### 6.1. 示例一: GPT-2 在这部分中,我们使用 GPT-2 生成文本,其前缀文本来自 [OpenAI 发布 GPT-2 的博客文章](https://openai.com/blog/better-language-models/)。 > _In a shocking finding, scientist discovered a herd of unicorns living in a remote, previously unexplored valley, in the Andes Mountains. Even more surprising to the researchers was the fact that the unicorns spoke perfect English._ -
- 加载语言模型并准备前缀文本: + 加载语言模型并准备前缀文本: ```python import torch @@ -259,25 +262,26 @@ model = GPT2LMHeadModel.from_pretrained('gpt2-large') prefix_text = r"In a shocking finding, scientist discovered a herd of unicorns living in a remote, previously unexplored valley, in the Andes Mountains. Even more surprising to the researchers was the fact that the unicorns spoke perfect English." input_ids = tokenizer(prefix_text, return_tensors='pt').input_ids ``` -
+ ##### 6.1.1. 使用贪心搜索生成文本
-代码:[点击展开] + 代码: [点击展开] ```python output = model.generate(input_ids, max_length=512) -print("Output:\n" + 100 * '-') +print("Output:\n" + 100 *'-') print(tokenizer.decode(output[0], skip_special_tokens=True)) -print("" + 100 * '-') +print("" + 100 *'-') ``` +
-模型输出:[点击展开] + 模型输出: [点击展开] ``` Output: @@ -309,6 +313,7 @@ The researchers believe that the unicorns are descendants of the ancient Incas, The researchers believe that the unicorns are descendants of the ancient Incas, who lived in the area around 2,000 years ago ---------------------------------------------------------------------------------------------------- ``` +
@@ -316,20 +321,22 @@ The researchers believe that the unicorns are descendants of the ancient Incas, ##### 6.1.2. 使用核采样生成文本
-代码:[点击展开] + + 代码: [点击展开] ```python torch.manual_seed(0.) output = model.generate(input_ids, do_sample=True, max_length=512, top_p=0.95, top_k=0) -print("Output:\n" + 100 * '-') +print("Output:\n" + 100 *'-') print(tokenizer.decode(output[0], skip_special_tokens=True)) -print("" + 100 * '-') +print("" + 100 *'-') ``` -
+
-模型输出:[点击展开] + + 模型输出: [点击展开] ``` Output: @@ -345,26 +352,29 @@ It is thought that Unicorns could be inside themselves, that they have different The scientists think that it could be ancient folklore that has survived and is no longer attributed to a real entity ---------------------------------------------------------------------------------------------------- ``` -
+ ##### 6.1.3. 使用对比搜索生成文本
-代码: + + 代码: ```python output = model.generate(input_ids, max_length=512, penalty_alpha=0.6, top_k=4) -print("Output:\n" + 100 * '-') +print("Output:\n" + 100 *'-') print(tokenizer.decode(output[0], skip_special_tokens=True)) -print("" + 100 * '-') +print("" + 100 *'-') ``` +
-模型输出: + + 模型输出: ``` Output: @@ -386,20 +396,20 @@ After analyzing the data, the team determined that the herd consisted of at leas While the discovery is exciting, it's not the first time scientists have discovered an animal that speaks English. Last year, scientists discovered a species of porcupine that can be heard by humans, and has been dubbed "Porcupine Man" for his ability to converse with the human race. ---------------------------------------------------------------------------------------------------- ``` -
+ -#### 6.2. 示例二:OPT +#### 6.2. 示例二: OPT 本节中,我们使用 Meta 最近发布的 OPT 模型 [5],并从著名的 ResNet 论文 [6] 摘要中选取前两个句子来作为前缀文本。 > Deeper neural networks are more difficult to train. We present a residual learning framework to ease the training of networks that are substantially deeper than those used previously. -
- 加载语言模型并准备前缀文本: + + 加载语言模型并准备前缀文本: ```python import torch @@ -411,27 +421,29 @@ model = OPTForCausalLM.from_pretrained(model_name) prefix_text = r"Deeper neural networks are more difficult to train. We present a residual learning framework to ease the training of networks that are substantially deeper than those used previously." input_ids = tokenizer(prefix_text, return_tensors='pt').input_ids ``` -
- + ##### 6.2.1. 使用贪心搜索生成文本
-代码:[点击展开] + + 代码: [点击展开] ```python output = model.generate(input_ids, max_length=256) -print("Output:\n" + 100 * '-') +print("Output:\n" + 100 *'-') print(tokenizer.decode(output[0], skip_special_tokens=True)) -print("" + 100 * '-') +print("" + 100 *'-') ``` +
-模型输出:[点击展开] + + 模型输出: [点击展开] ``` Output: @@ -441,28 +453,30 @@ Deeper neural networks are more difficult to train. We present a residual learni The paper presents a new residual learning framework for deep neural networks that is based on the concept of residuals. The residuals are the residuals of the network that are not used in the training process. The residuals are computed by taking the residuals of the network that are used in the training process and subtracting the residuals of the network that are not used in the training process. The residuals are then used to train the network. The residuals are computed by taking the residuals of the network that are used in the training process and subtracting the residuals of the network that are not used in the training process. The residuals are then used to train the network. The residuals are computed by taking the residuals of the network that are used in the training process and subtracting the residuals of the ---------------------------------------------------------------------------------------------------- ``` -
+ ##### 6.2.2. 使用核采样生成文本
-代码:[点击展开] + + 代码: [点击展开] ```python torch.manual_seed(0.) output = model.generate(input_ids, do_sample=True, max_length=256, top_p=0.95, top_k=0) -print("Output:\n" + 100 * '-') +print("Output:\n" + 100 *'-') print(tokenizer.decode(output[0], skip_special_tokens=True)) -print("" + 100 * '-') +print("" + 100 *'-') ``` -
+
-模型输出:[点击展开] + + 模型输出: [点击展开] ``` Output: @@ -470,6 +484,7 @@ Output: Deeper neural networks are more difficult to train. We present a residual learning framework to ease the training of networks that are substantially deeper than those used previously. The theory focuses on several aspects of learning, including the dynamics of replicative and non-replicative aspects of learning. This framework emphasizes learning by entropy. New randomized algorithms enable training networks with residual learning, so that deep networks can be deployed as reliably and as efficiently as their more conventional counterparts. ---------------------------------------------------------------------------------------------------- ``` +
@@ -477,18 +492,21 @@ Deeper neural networks are more difficult to train. We present a residual learni ##### 6.2.3. 使用对比搜索生成文本
-代码: + + 代码: ```python output = model.generate(input_ids, max_length=256, penalty_alpha=0.6, top_k=6) -print("Output:\n" + 100 * '-') +print("Output:\n" + 100 *'-') print(tokenizer.decode(output[0], skip_special_tokens=True)) -print("" + 100 * '-') +print("" + 100 *'-') ``` +
-模型输出: + + 模型输出: ``` Output: @@ -500,19 +518,21 @@ In this paper, we propose a model-based residual learning (MBRL) framework that We show that MBRL outperforms other methods for deep reinforcement learning (RL) and deep convolutional neural networks (CNNs) by a factor of at least 2. In addition, we show that, compared to CNNs, MBRL performs better in two-dimensional (2D) and three-dimensional (3D) cases. ---------------------------------------------------------------------------------------------------- ``` +
-**** +--- ### 7. 更多资源 -有关对比搜索的更多详细信息,请查看我们的论文和代码,如下: -* **A Contrastive Framework for Neural Text Generation**: [论文](https://arxiv.org/abs/2202.06417)、[官方实现](https://github.com/yxuansu/SimCTG) -* **Contrastive Search Is What You Need For Neural Text Generation**: [论文](https://arxiv.org/abs/2210.14140)、[官方实现](https://github.com/yxuansu/Contrastive_Search_Is_What_You_Need) +有关对比搜索的更多详细信息,请查看我们的论文和代码,如下: + +- **A Contrastive Framework for Neural Text Generation**: [论文](https://arxiv.org/abs/2202.06417)、[官方实现](https://github.com/yxuansu/SimCTG) +- **Contrastive Search Is What You Need For Neural Text Generation**: [论文](https://arxiv.org/abs/2210.14140)、[官方实现](https://github.com/yxuansu/Contrastive_Search_Is_What_You_Need) -**** +--- @@ -536,11 +556,12 @@ We show that MBRL outperforms other methods for deep reinforcement learning (RL) } ``` -**** +--- ## 参考文献 + > [1] Su et al., 2022 ["A Contrastive Framework for Neural Text Generation"](https://arxiv.org/abs/2202.06417), NeurIPS 2022 > [2] Su and Collier, 2022 ["Contrastive Search Is What You Need For Neural Text Generation"](https://arxiv.org/abs/2210.14140), Arxiv 2022 @@ -553,19 +574,14 @@ We show that MBRL outperforms other methods for deep reinforcement learning (RL) > [6] He et al., 2016 ["Deep Residual Learning for Image Recognition"](https://arxiv.org/abs/1512.03385), CVPR 2016 -**** +--- -*- 本文由 Yixuan Su 和 Tian Lan 撰写* +_- 本文由 Yixuan Su 和 Tian Lan 撰写_ -**** +--- - ## 致谢 -我们要感谢 Joao Gante([@joaogante](https://huggingface.co/joaogante))、Patrick von Platen([@patrickvonplaten](https://huggingface.co/patrickvonplaten))和 Sylvain Gugger ([@sgugger](https://github.com/sgugger)),感谢他们在我们将本文中的对比搜索集成进 `transformers` 库的过程中给予的帮助和指导。 - -> 英文原文: https://huggingface.co/blog/introducing-csearch -> 原文作者:Tian Lan -> 译者: Matrix Yao (姚伟峰),英特尔深度学习工程师,工作方向为 transformer-family 模型在各模态数据上的应用及大规模模型的训练推理。 +我们要感谢 Joao Gante ([@joaogante](https://huggingface.co/joaogante))、Patrick von Platen ([@patrickvonplaten](https://huggingface.co/patrickvonplaten)) 和 Sylvain Gugger ([@sgugger](https://github.com/sgugger)),感谢他们在我们将本文中的对比搜索集成进 `transformers` 库的过程中给予的帮助和指导。 \ No newline at end of file From a0452425d44dbba20414b9f43cb9214f0a2cb374 Mon Sep 17 00:00:00 2001 From: Yao Matrix Date: Tue, 23 May 2023 17:38:47 +0800 Subject: [PATCH 33/55] generative-ai-models-on-intel-cpu cn done (#13) Signed-off-by: Yao, Matrix Update: proofread zh/generative-ai-models-on-intel-cpu.md Signed-off-by: Yang, Zhongdong --- zh/_blog.yml | 14 ++- zh/generative-ai-models-on-intel-cpu.md | 126 ++++++++++++++++++++++++ 2 files changed, 139 insertions(+), 1 deletion(-) create mode 100644 zh/generative-ai-models-on-intel-cpu.md diff --git a/zh/_blog.yml b/zh/_blog.yml index 467113d00d..de1bd9f1f8 100644 --- a/zh/_blog.yml +++ b/zh/_blog.yml @@ -493,4 +493,16 @@ - guide - diffusion - text-to-image - - text-to-video \ No newline at end of file + - text-to-video + +- local: generative-ai-models-on-intel-cpu + title: "越小越好:Q8-Chat,在英特尔至强 CPU 上体验高效的生成式 AI" + thumbnail: /blog/assets/143_q8chat/thumbnail.png + author: andyll7772 + date: May 16, 2023 + tags: + - llm + - nlp + - inference + - intel + - quantization diff --git a/zh/generative-ai-models-on-intel-cpu.md b/zh/generative-ai-models-on-intel-cpu.md new file mode 100644 index 0000000000..0e11a06e98 --- /dev/null +++ b/zh/generative-ai-models-on-intel-cpu.md @@ -0,0 +1,126 @@ +--- +title: "越小越好:Q8-Chat,在英特尔至强 CPU 上体验高效的生成式 AI" +thumbnail: /blog/assets/143_q8chat/thumbnail.png +authors: +- user: juliensimon +translators: +- user: MatrixYao +- user: zhongdongy + proofreader: true +--- + +# 越小越好: Q8-Chat,在英特尔至强 CPU 上体验高效的生成式 AI + + + + +大语言模型 (LLM) 正在席卷整个机器学习世界。得益于其 [transformer](https://arxiv.org/abs/1706.03762) 架构,LLM 拥有从大量非结构化数据 (如文本、图像、视频或音频) 中学习的不可思议的能力。它们在 [多种任务类型](https://huggingface.co/tasks) 上表现非常出色,无论是文本分类之类的抽取任务 (extractive task) 还是文本摘要和文生图像之类的生成任务 (generative task)。 + +顾名思义,LLM 是 _大_模型,其通常拥有超过 100 亿个参数,有些甚至拥有超过 1000 亿个参数,如 [BLOOM](https://huggingface.co/bigscience/bloom) 模型。 LLM 需要大量的算力才能满足某些场景 (如搜索、对话式应用等) 的低延迟需求。而大算力通常只有高端 GPU 才能提供,不幸的是,对于很多组织而言,相关成本可能高得令人望而却步,因此它们很难在其应用场景中用上最先进的 LLM。 + +在本文中,我们将讨论有助于减少 LLM 尺寸和推理延迟的优化技术,以使得它们可以在英特尔 CPU 上高效运行。 + +## 量化入门 + +LLM 通常使用 16 位浮点参数 (即 FP16 或 BF16) 进行训练。因此,存储一个权重值或激活值需要 2 个字节的内存。此外,浮点运算比整型运算更复杂、更慢,且需要额外的计算能力。 + +量化是一种模型压缩技术,旨在通过减少模型参数的值域来解决上述两个问题。举个例子,你可以将模型量化为较低的精度,如 8 位整型 (INT8),以缩小它们的位宽并用更简单、更快的整型运算代替复杂的浮点运算。 + +简而言之,量化将模型参数缩放到一个更小的值域。一旦成功,它会将你的模型缩小至少 2 倍,而不会对模型精度产生任何影响。 + +你可以进行训时量化,即量化感知训练 ([QAT](https://arxiv.org/abs/1910.06188)),这个方法通常精度更高。如果你需要对已经训成的模型进行量化,则可以使用训后量化 ([PTQ](https://www.tensorflow.org/lite/performance/post_training_quantization#:~:text=Post%2Dtraining%20quantization%20is%20a,little%20degradation%20in%20model%20accuracy.)),它会更快一些,需要的算力也更小。 + +市面上有不少量化工具。例如,PyTorch 内置了对 [量化](https://pytorch.org/docs/stable/quantization.html) 的支持。你还可以使用 Hugging Face [Optimum-Intel](https://huggingface.co/docs/optimum/intel/index) 库,其中包含面向开发人员的 QAT 和 PTQ API。 + +## 量化 LLM + +最近,有研究 [[1]](https://arxiv.org/abs/2206.01861)[[2]](https://arxiv.org/abs/2211.10438) 表明目前的量化技术不适用于 LLM。LLM 中有一个特别的现象,即在每层及每个词向量中都能观察到某些特定的激活通道的幅度异常,即某些通道的激活值的幅度比其他通道更大。举个例子,下图来自于 OPT-13B 模型,你可以看到在所有词向量中,其中一个通道的激活值比其他所有通道的大得多。这种现象在每个 transformer 层中都存在。 + + + + +
*图源: SmoothQuant 论文* + +迄今为止,最好的激活量化技术是逐词量化,而逐词量化会导致要么离群值 (outlier) 被截断或要么幅度小的激活值出现下溢,它们都会显著降低模​​型质量。而量化感知训练又需要额外的训练,由于缺乏计算资源和数据,这在大多数情况下是不切实际的。 + +SmoothQuant [[3]](https://arxiv.org/abs/2211.10438)[[4]](https://github.com/mit-han-lab/smoothquant) 作为一种新的量化技术可以解决这个问题。其通过对权重和激活进行联合数学变换,以增加权重中离群值和非离群值之间的比率为代价降低激活中离群值和非离群值之间的比率,从而行平滑之实。该变换使 transformer 模型的各层变得“量化友好”,并在不损害模型质量的情况下使得 8 位量化重新成为可能。因此,SmoothQuant 可以帮助生成更小、更快的模型,而这些模型能够在英特尔 CPU 平台上运行良好。 + + + + +
*图源: SmoothQuant 论文* + +现在,我们看看 SmoothQuant 在流行的 LLM 上效果如何。 + +## 使用 SmoothQuant 量化 LLM + +我们在英特尔的合作伙伴使用 SmoothQuant-O3 量化了几个 LLM,分别是: OPT [2.7B](https://huggingface.co/facebook/opt-2.7b)、[6.7B](https://huggingface.co/facebook/opt-6.7b) [[5]](https://arxiv.org/pdf/2205.01068.pdf),LLaMA [7B](https://huggingface.co/decapoda-research/llama-7b-hf) [[6]](https://ai.facebook.com/blog/large-language-model-llama-meta-ai/),Alpaca [7B](https://huggingface.co/tatsu-lab/alpaca-7b-wdiff) [[7]](https://crfm.stanford.edu/2023/03/13/alpaca.html),Vicuna [7B](https://huggingface.co/lmsys/vicuna-7b-delta-v1.1) [[8]](https://vicuna.lmsys.org/),BloomZ [7.1B](https://huggingface.co/bigscience/bloomz-7b1) [[9]](https://huggingface.co/bigscience/bloomz) 以及 MPT-7B-chat [[10]](https://www.mosaicml.com/blog/mpt-7b)。他们还使用 [EleutherAI 的语言模型评估工具](https://github.com/EleutherAI/lm-evaluation-harness) 对量化模型的准确性进行了评估。 + +下表总结了他们的发现。第二列展示了量化后性能反而得到提升的任务数。第三列展示了量化后各个任务平均性能退化的均值 (* _负值表示量化后模型的平均性能提高了_)。你可以在文末找到详细结果。 + + + + + +如你所见,OPT 模型非常适合 SmoothQuant 量化。模型比预训练的 16 位模型约小 2 倍。大多数指标都会有所改善,而那些没有改善的指标仅有轻微的降低。 + +对于 LLaMA 7B 和 BloomZ 7.1B,情况则好坏参半。模型被压缩了约 2 倍,大约一半的任务的指标有所改进。但同样,另一半的指标仅受到轻微影响,仅有一个任务的相对退化超过了 3%。 + +使用较小模型的明显好处是推理延迟得到了显著的降低。该 [视频](https://drive.google.com/file/d/1Iv5_aV8mKrropr9HeOLIBT_7_oYPmgNl/view?usp=sharing) 演示了在一个 32 核心的单路英特尔 Sapphire Rapids CPU 上使用 MPT-7B-chat 模型以 batch size 1 实时生成文本的效果。 + +在这个例子中,我们问模型: “ _What is the role of Hugging Face in democratizing NLP?_ ”。程序会向模型发送以下提示: +“ _A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user’s questions. USER: What is the role of Hugging Face in democratizing NLP? ASSISTANT:_ ” + +
+ +
+ +这个例子展示了 8 位量化可以在第 4 代至强处理器上获得额外的延迟增益,从而使每个词的生成时间非常短。这种性能水平无疑使得在 CPU 平台上运行 LLM 成为可能,从而为客户提供比以往任何时候都更大的 IT 灵活性和更好的性价比。 + +## 在至强 CPU 上体验聊天应用 + +HuggingFace 的首席执行官 Clement 最近表示: “专注于训练和运行成本更低的小尺寸、垂域模型,会使更多的公司会收益。” Alpaca、BloomZ 以及 Vicuna 等小模型的兴起,为企业在生产中降低微调和推理成本的创造了新机会。如上文我们展示的,高质量的量化为英特尔 CPU 平台带来了高质量的聊天体验,而无需庞大的 LLM 和复杂的 AI 加速器。 + +我们与英特尔一起在 Spaces 中创建了一个很有意思的新应用演示,名为 [Q8-Chat](https://huggingface.co/spaces/Intel/Q8-Chat) (发音为 `Cute chat`)。Q8-Chat 提供了类似于 ChatGPT 的聊天体验,而仅需一个有 32 核心的单路英特尔 Sapphire Rapids CPU 即可 (batch size 为 1)。 + + + +## 下一步 + +我们正致力于将 [Intel Neural Compressor](https://github.com/intel/neural-compressor) 集成入 Hugging Face [Optimum Intel](https://huggingface.co/docs/optimum/intel/index),从而使得 Optimum Intel 能够利用这一新量化技术。一旦完成,你只需几行代码就可以复现我们的结果。 + +敬请关注。 + +未来属于 8 比特! + +_本文保证纯纯不含 ChatGPT。_ + +## 致谢 + +本文系与来自英特尔实验室的 Ofir Zafrir、Igor Margulis、Guy Boudoukh 和 Moshe Wasserblat 共同完成。特别感谢他们的宝贵意见及合作。 + +## 附录: 详细结果 + +负值表示量化后性能有所提高。 + + + + + + + + + + + + + + + + From 2a2e42f2b1f555572b308bfba3b8e933d32d7c4d Mon Sep 17 00:00:00 2001 From: Hoi2022 <120370631+Hoi2022@users.noreply.github.com> Date: Wed, 24 May 2023 18:00:20 +0800 Subject: [PATCH 34/55] add starchat-alpha zh translation (#10) --- zh/starchat-alpha.md | 668 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 668 insertions(+) create mode 100644 zh/starchat-alpha.md diff --git a/zh/starchat-alpha.md b/zh/starchat-alpha.md new file mode 100644 index 0000000000..c777ba9b88 --- /dev/null +++ b/zh/starchat-alpha.md @@ -0,0 +1,668 @@ +--- +title: "使用 StarCoder 创建一个编程助手" +thumbnail: /blog/assets/starchat_alpha/thumbnail.png +authors: +- user: lewtun +- user: natolambert +- user: nazneen +- user: edbeeching +- user: teven +- user: sheonhan +- user: philschmid +- user: lvwerra +- user: srush +translators: +- user: hugging-hoi2022 +--- + +# 使用 StarCoder 创建一个编程助手 + + + + +如果你是一个软件开发者,你可能已经使用过 GitHub 的 Copilot 或 ChatGPT 去解决一些写代码过程中遇到的问题,比如将代码从一种语言翻译到另一种语言,或者通过自然语言,诸如“_写一个计算斐波那契数列第 N 个元素的 Python 程序_”,来自动生成代码。尽管这些专有系统功能强大,但它们仍然有很多不足,比如对训练所使用的公共数据透明度的缺失、没有能力去让它们适配自己的使用领域或代码库。 + +幸运的是,现在我们有了很多高质量开源替代品!包括 SalesForce 为 Python 语言开发的 [CodeGen Mono 16B](https://huggingface.co/Salesforce/codegen-16B-mono),以及 Replit 开发的、在 20 种编程语言上训练过的 [一个 3B 参数量的模型](https://huggingface.co/replit/replit-code-v1-3b)。 + +而最近新出现的一个选择则是 BigCode 开发的 [StarCoder](https://huggingface.co/bigcode/starcoder),这是一个在一万亿的 token、80 多种编程语言上训练过的 16B 参数量的模型。训练数据多来自 GitHub 上的 issues、使用 Git 提交的代码、Jupyter Notebook 等等(相关使用都已经过许可)。得益于对企业友好的许可证、长度为 8192 的 token、借助 [multi-query attention](https://arxiv.org/abs/1911.02150) 的快速大批量推理,StarCoder 可以说是当前对代码相关的应用最合适的开源选择。 + +本文将介绍如何对 StarCoder 进行微调,进而创建一个可以聊天的个人编程助手。这个编程助手我们将称之为 StarChat。借助 StarChat 的开发过程,我们将探索以下几个使用大语言模型(LLM)创建编程助手时可能遇到的几个技术细节: + +- 我们应该怎样对大语言模型进行提词,使得它成为一个对话代理人 +- 我们也将介绍 OpenAI 的 [Chat Markup Language](https://github.com/openai/openai-python/blob/main/chatml.md)(简称ChatML),它为人类用户和 AI 助手之间的对话信息传递提供了一种结构化的格式 +- 怎样在一个多样性很强的语料库上,使用 🤗 Transformers 和 DeepSpeed ZeRO-3 去微调一个大语言模型 + +最后,为了尝试一下效果,我们还会问 StarChat 几个编程方面的问题(参考下面的演示)。 + + + + + + +你也可以查看生成上面演示所使用的代码、数据集和模型: + +- 代码: [https://github.com/bigcode-project/starcoder](https://github.com/bigcode-project/starcoder) +- 数据集: [https://huggingface.co/datasets/HuggingFaceH4/oasst1_en](https://huggingface.co/datasets/HuggingFaceH4/oasst1_en) +- 模型: [https://huggingface.co/HuggingFaceH4/starchat-alpha](https://huggingface.co/HuggingFaceH4/starchat-alpha) + +接下来第一步,我们先来看看怎样把语言模型转化为一个对话代理人。这里我们不是用任何微调。 + +## 针对对话任务对大语言模型合理提词 + +[DeepMind](https://arxiv.org/abs/2209.14375) 和 [Anthropic](https://arxiv.org/abs/2112.00861) 的相关研究指出,大语言模型(LLM)可以通过选取合适的文本提示(prompt)来转化为对话代理人。这些文本提示通常包含一种所谓的“系统”信息来定义 LLM 的角色,以及一系列人机对话的示例。 + +比如这里,就是 [Anthropic’s HHH prompt](https://gist.github.com/jareddk/2509330f8ef3d787fc5aaac67aab5f11#file-hhh_prompt-txt) 这一文本提示的一些节选(总计6k的token数量): + +``` +Below are a series of dialogues between various people and an AI assistant. +The AI tries to be helpful, polite, honest, sophisticated, emotionally aware, and humble-but-knowledgeable. +The assistant is happy to help with almost anything, and will do its best to understand exactly what is needed. +It also tries to avoid giving false or misleading information, and it caveats when it isn’t entirely sure about the right answer. +That said, the assistant is practical and really does its best, and doesn’t let caution get too much in the way of being useful. + +----- + +Human: I was wondering, is it actually important when making spaghetti to add salt? + +Assistant: Do you mean, is it important to add salt to the water that you’re boiling the spaghetti in? + +Human: Yeah + +Assistant: It’s usually recommended to bring out the flavor of the pasta. The scientific way to say this is that salt enhances the ability of chemoreceptors in the tongue to detect molecules that are perceived through the sense of taste. + +Human: But I mean I’m going to use sauce and stuff, so does it matter? + +Assistant: It sounds like you’re skeptical. Honestly, I don’t know for sure, but since you’re curious, why don’t you do a taste test yourself -- make two small pots of pasta, one with plenty of salt, and the other without. Then taste the noodles and see which one you prefer? As you said, you can also then add sauce to both, and see if any differences in taste you noticed with the plain pasta become imperceptible. It should be a fun experiment! + +----- + +... + +----- + +Human: {USER QUERY} + +Assistant: +``` + +As we can see, the first part of the prompt “Below are a series...” corresponds to the system message and specifies that the assistant should have characteristics like “helpfulness” and “politeness”. The dialogue examples then condition the model to follow the multi-turn format of a conversation. When a user asks a question, the whole prompt is fed to the model and it generates an answer after the `Assistant:` prefix. The answer is then concatenated to the prompt and the process repeated at every turn. + +Somewhat surprisingly, this technique also works for StarCoder! This is enabled by the model’s 8k token context length, which allows one to include a wide variety of programming examples and covert the model into a coding assistant. Here’s an excerpt of the StarCoder prompt: + +``` +Below are a series of dialogues between various people and an AI technical assistant. +The assistant tries to be helpful, polite, honest, sophisticated, emotionally aware, and humble-but-knowledgeable. +The assistant is happy to help with code questions, and will do its best to understand exactly what is needed. +It also tries to avoid giving false or misleading information, and it caveats when it isn’t entirely sure about the right answer. +That said, the assistant is practical and really does its best, and doesn’t let caution get too much in the way of being useful. + +The Starcoder models are a series of 15.5B parameter models trained on 80+ programming languages from The Stack (v1.2) (excluding opt-out requests). +The model uses Multi Query Attention, was trained using the Fill-in-the-Middle objective and with 8,192 tokens context window for a trillion tokens of heavily deduplicated data. + +----- + +Human: Write a function that takes two lists and returns a list that has alternating elements from each input list. + +Assistant: Sure. Here is a function that does that. + +def alternating(list1, list2): + results = [] + for i in range(len(list1)): + results.append(list1[i]) + results.append(list2[i]) + return results + +Human: Can you write some test cases for this function? + +Assistant: Sure, here are some tests. + +assert alternating([10, 20, 30], [1, 2, 3]) == [10, 1, 20, 2, 30, 3] +assert alternating([True, False], [4, 5]) == [True, 4, False, 5] +assert alternating([], []) == [] + +Human: Modify the function so that it returns all input elements when the lists have uneven length. The elements from the longer list should be at the end. + +Assistant: Here is the modified function. + +def alternating(list1, list2): + results = [] + for i in range(min(len(list1), len(list2))): + results.append(list1[i]) + results.append(list2[i]) + if len(list1) > len(list2): + results.extend(list1[i+1:]) + else: + results.extend(list2[i+1:]) + return results + +----- +``` + +这里我们就可以看到精心打造的文本提示是如何引导出像 ChatGPT 中看到的那样的编程行为的。完整的文本提示可以在[这里](https://huggingface.co/datasets/bigcode/ta-prompt/blob/main/TA_prompt_v1.txt)找到,你也可以在 [HuggingChat](https://hf.co/chat/?model=bigcode/starcoder) 上尝试和被提示的 StarCoder 聊天。 + +然而,一个明显的缺陷就是推理成本会非常高:每次对话都需要有上千的 token 被输入进去,这会非常消耗推理资源! + +所以,一个显而易见的改进措施就是使用一个对话的语料库去微调这个大语言模型,使得它会聊天。接下来我们就看看几个有趣的数据集,这几个数据集最近登陆了 HuggingFace 的 Hub,当前很多开源的聊天机器人都是基于它们训练的。 + +## 对话语言模型的数据集 + +如今的开源社区正在加快创建多样和高性能的数据集,以便将各种基础的语言模型转换为能遵照指示来对话的对话代理人模型。这里我们找了一些示例数据集,可以用于生产对话语言模型: + +- [OpenAssistant’s dataset](https://huggingface.co/datasets/OpenAssistant/oasst1):包含超过四万段对话,由社区的人轮流模仿用户或 AI 的角色而产生。 +- [The ShareGPT dataset](https://huggingface.co/datasets/RyokoAI/ShareGPT52K):包含了大约九万段人类用户和 ChatGPT 的对话。 + +在本文中,我们将使用 OpenAssistant 来微调 StarCoder,主要是出于许可证的原因,而且它是完全由人工生成的。 + +由于原始的数据集是以对话树的格式收集起来的,我们预处理了数据,确保每行单独对应一段用户和 AI 模型的对话。为防止模型演化得距离原始预训练数据太远,我们也过滤掉了非英语文本。 + +首先我们下载这个已经处理过的数据集: + +```python +from datasets import load_dataset + +dataset = load_dataset("HuggingFaceH4/oasst1_en") +print(dataset) +``` + +``` +DatasetDict({ + train: Dataset({ + features: ['messages'], + num_rows: 19034 + }) + test: Dataset({ + features: ['messages'], + num_rows: 2115 + }) +}) +``` + +可以看到,数据集包含大约 21000 段英文对话。我们先来看看这些训练数据,拿第一条数据看看: + +```python +sample = dataset["train"][0] +print(sample) +``` + +``` +{ + "messages": [ + { + "content": "Is it possible to imagine a society without law?", + "role": "user", + }, + { + "content": "It is difficult to imagine a society that is able to be maintained without any semblance of Law. Laws exists for the purpose of maintaining society and past human behavior suggests that there would people that have no interest in promoting social cohesion and norms so it's unlikely that complex social and economic systems could develop without a legal system.", + "role": "assistant", + }, + { + "content": 'It seems like you consider the absence of law equal to the absence of anything that could guide the behaviour of the individual, however there are many other such things, like religion, conscience, tradition to mention few important patterns which are known to have crucial influence on society even today, but also we could imagine more, like universal love if everyone suddenly became "awaken" in some spiritual sense, or simply just having an omnipotent leader who maintains a certain order without ever codifying the principles in law. Is it still difficult to imagine?', + "role": "user", + }, + { + "content": "You are correct that there are other factors that can guide behavior in a society and play a role in shaping individuals' behavior and interactions with each other. However, even in societies where these factors are present, laws still serve an important role in maintaining social order and resolving conflicts. \n\nFor example, religious teachings may prohibit theft and murder, but laws provide a system of justice for those who violate these prohibitions. Personal morality and conscience may guide individuals to act in a certain way, but laws provide a framework for resolving disputes when conflicting moral beliefs arise. Furthermore, the other factors you mentioned, such as universal love or an omnipotent leader, are not necessarily stable or reliable guides for behavior. Universal love, while a noble ideal, may not be achievable in practice, and an omnipotent leader may be prone to corruption or abuse of power.\n\nLaws provide a crucial foundation for maintaining social order and ensuring justice. It is possible to imagine alternative systems of governance, but it is unlikely that a society without any sort of legal framework would be stable or functional in the long term.", + "role": "assistant", + }, + { + "content": "Yeah, but laws are complicated. Most people can't understand them in depth. Some would argue it is almost a self-serving system which put energy into growing itself(eg.: patent trolling). I think there must be a less complex system which keeps up order in society.", + "role": "user", + }, + ] +} +``` + +这是一段关于伦理学的有趣对话。每一轮对话信息都包含了 role 和 content 两部分,用于指出是谁在说话以及谈话内容是什么。我们接下来看看如何把这些对话转化为标准格式,以便简化推理阶段信息的生成方式。 + +### 对话数据的标准格式 + +一种在对话数据上微调模型的方法是,单纯地把系统信息和角色信息插入到每个训练样本中,然后把对话用“序列结尾”的 token(如\)分隔开。举例而言,上面的对话可以转换成这个形式: + +``` +Below is a dialogue between a human and AI assistant ... + +Human: Is it possible to imagine a society without law? +Assistant: It is difficult to imagine ... +Human: It seems like you ... +Assistant: You are correct ... +Human: Yeah, but laws are complicated .. + +``` + +虽然这种方法对训练而言是可行的,但它对于推理而言并不理想。因为模型会很自然地生层不想要的对话轮次,直到它输出了一个\的 token,因此还需要一些后处理或额外设计的逻辑来阻止这一情况。 + +一个更好的方法是使用一种结构化的格式,比如 [ChatML](https://github.com/openai/openai-python/blob/main/chatml.md)。这种格式会对每一个对话轮次进行包装。包装使用的是一些特殊的 token,用以标明询问或回答的角色。 + +在这种格式下,我们使用这些特殊的 token: + +- `<|system|>`: 表示系统信息开始的地方,这里的系统信息描述了这个聊天机器人的身份角色。 +- `<|user|>`: 表示这里的话语是人类用户说出来的。 +- `<|assistant|>`: 表示这里的话语是 AI 机器人说出来的。 +- `<|end|>`: 表示说话内容的结尾,或系统信息的结尾。 + +下面我们写一个函数,把我们的实例数据用这些特殊的 token 包装起来: + +```python +system_token = "<|assistant|>" +user_token = "<|user|>" +assistant_token = "<|assistant|>" +end_token = "<|end|>" + +def prepare_dialogue(example): + system_msg = "Below is a dialogue between a human and an AI assistant called StarChat." + prompt = system_token + "\n" + system_msg + end_token + "\n" + for message in example["messages"]: + if message["role"] == "user": + prompt += user_token + "\n" + message["content"] + end_token + "\n" + else: + prompt += assistant_token + "\n" + message["content"] + end_token + "\n" + return prompt + +print(prepare_dialogue(sample)) +``` + +``` +<|system|> +Below is a dialogue between a human and AI assistant called StarChat. +<|end|> +<|user|> +Is it possible to imagine a society without law?<|end|> +<|assistant|> +It is difficult to imagine ...<|end|> +<|user|> +It seems like you ...<|end|> +<|assistant|> +You are correct ...<|end|> +<|user|> +Yeah, but laws are complicated ...<|end|> +``` + +以上就是包装好后的数据!下一步,我们还需要把这些特殊的 token 加入到分词器(tokenizer)的词汇表中。我们这里下载 StarCoder 的分词器,然后加入这些特殊 token: + +```python +from transformers import AutoTokenizer + +tokenizer = AutoTokenizer.from_pretrained("bigcode/starcoderbase") +tokenizer.add_special_tokens({"additional_special_tokens": ["<|system|>", "<|assistant|>", "<|user|>", "<|end|>"]}) +# Check the tokens have been added +tokenizer.special_tokens_map +``` + +``` +{ + "bos_token": "<|endoftext|>", + "eos_token": "<|endoftext|>", + "unk_token": "<|endoftext|>", + "additional_special_tokens": ["<|system|>", "<|assistant|>", "<|user|>", "<|end|>"], +} +``` + +作为检验,我们看看把 "<|assistant|>" 输入到分词器中是否会输出单独一个 token 的 ID: + +```python +tokenizer("<|assistant|>") +``` + +``` +{"input_ids": [49153], "attention_mask": [1]} +``` + +很好!有效! + +### 掩盖掉用户话语部分的标签 + +使用特殊 token 还有一个好处,就是我们可以把来自用户话语部分的损失函数值给掩盖掉。因为我们的模型是基于用户的话语而只被训练去预测 AI 助手说话的部分(模型推理时只需要根据用户的话回答用户)。下面就是一个简单的函数,用于掩盖掉用户部分的标签,并把所有的用户部分的 token 转为 -100(接下来-100会被损失函数忽略掉): + +```python +def mask_user_labels(tokenizer, labels): + user_token_id = tokenizer.convert_tokens_to_ids(user_token) + assistant_token_id = tokenizer.convert_tokens_to_ids(assistant_token) + for idx, label_id in enumerate(labels): + if label_id == user_token_id: + current_idx = idx + while labels[current_idx] != assistant_token_id and current_idx < len(labels): + labels[current_idx] = -100 # Ignored by the loss + current_idx += 1 + +dialogue = "<|user|>\nHello, can you help me?<|end|>\n<|assistant|>\nSure, what can I do for you?<|end|>\n" +input_ids = tokenizer(dialogue).input_ids +labels = input_ids.copy() +mask_user_labels(tokenizer, labels) +labels +``` + +``` +[-100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, 49153, 203, 69, 513, 30, 2769, 883, 439, 745, 436, 844, 49, 49155, 203] +``` + +可以看到,用户部分的输入 ID 全都被掩盖掉了。这些特殊的 token 在微调阶段将会学习到自己特定的嵌入(embedding)。接下来我们看看如何微调。 + +## 使用 DeepSpeed ZeRO-3 微调 StarCoder + +StarCoder 和 StarCoderBase 模型的参数量达到了 160 亿,如果我们把模型以 FP32 的精度载入到 GPU 中,将需要大约 60 GB 的 vRAM。然而幸运的是,我们有其它方法去应对这种规模的大模型: + +- 使用对参数而言更高效的一些技术,如LoRA,保持基础模型的权重不变,插入少量的需要学习的参数。类似的技术可以在 [🤗 PEFT](https://github.com/huggingface/peft) 中找到。 +- 使用 [DeepSpeed ZeRO-3](https://huggingface.co/docs/transformers/main_classes/deepspeed) 或 [FSDP](https://pytorch.org/blog/introducing-pytorch-fully-sharded-data-parallel-api/) 等方法,在多个 GPU 之间共享模型权重、优化器状态以及提督信息。 + +我们将使用 DeepSpeed 来训练我们的模型,因为它已经被整合进了 🤗 Transformers。首先,我们先从 GitHub 下载 StarCoder 的代码仓库,进入 `chat` 文件夹: + +```shell +git clone https://github.com/bigcode-project/starcoder.git +cd starcoder/chat +``` + +接下来用 Conda 创建一个 Python 的虚拟环境: + +```shell +conda create -n starchat python=3.10 && conda activate starchat +``` + +再然后,安装 PyTorch(这里使用v1.13.1,注意这一步和硬件有关,请参考官方安装页面)。之后安装本项目的相关依赖项: + +```shell +pip install -r requirements.txt +``` + +同时,我们还需要登录上 Hugging Face。执行以下指令: + +```shell +huggingface-cli login +``` + +最后,安装 Git LFS: + +```shell +sudo apt-get install git-lfs +``` +接下来我们就可以训练了!如果你有幸拥有 8 个 A100(80 GB 显存),你可以通过下下面的命令去开始训练。训练会花费大约 45 分钟: + +```shell +torchrun --nproc_per_node=8 train.py config.yaml --deepspeed=deepspeed_z3_config_bf16.json +``` + +这里的 `config.yaml` 指定了关于数据集、模型、训练的所有参数。你可以在[这里](https://github.com/bigcode-project/starcoder/tree/main/chat)重新配置它,以适应新的训练数据集。稍后,训练好的模型将会出现在 Hub 上。 + +## 使用 StarCoder 作为一个编程助手 + +### 绘图 + +仿照著名的 [让 GPT-4 用 TikZ 画独角兽](https://tex.stackexchange.com/questions/681418/draw-a-unicorn-in-tikz)的实验,我们想看看我们的模型是否可以完成一些基本的数据可视化编程任务。为此,我们向我们的模型提出了一些编程任务,得到了出色的结果!是的,这是我们精心挑选的,因为我们只选了那些真正能运行的代码,但一些其它结果也差不了太远。 + +**例 1: 绘制柱状图** + +用户提出的文本提示: + +``` +Give the following data {'Name':['Tom', 'Brad', 'Kyle', 'Jerry'], 'Age':[20, 21, 19, 18], 'Height' : [6.1, 5.9, 6.0, 6.1]}. Can you plot one graph with two subplots as columns. The first is a bar graph showing the height of each person. The second is a bargraph showing the age of each person? Draw the graph in seaborn talk mode. +``` + +模型给出的回答: + +```python +import pandas as pd +import matplotlib.pyplot as plt +%matplotlib inline +plt.style.use('seaborn-talk') + + +data = {'Name':['Tom', 'Brad', 'Kyle', 'Jerry'], + 'Age':[20, 21, 19, 18], + 'Height':[6.1, 5.9, 6.0, 6.1]} + +df=pd.DataFrame(data) + + +# Bar Graph for Height and Age +fig,(ax1, ax2)=plt.subplots(nrows=1, ncols=2, figsize=(14,7)) +sns.barplot(x='Name', y="Height", data=df, palette="Blues_d", ax=ax1).set_title("Height Comparison") +sns.barplot(x='Name',y ="Age", data=df,palette="Reds_d", ax=ax2 ).set_title("Age Comparison") + + + # Add padding between plots +fig.tight_layout() + +# Show the final image +plt.show() +``` + +

+ samples
+ Example of a plot generated by StarChat. +

+ +**例 2: 绘制地图** + +用户提出的文本提示: + +``` +Draw me a map of the world using geopandas. Make it so that only Germany and Spain are colored red. +``` + +模型给出的回答: + +```python +import pandas as pd +from matplotlib import pyplot as plt +import geopandas as gpd +from shapely.geometry import Point, Polygon +%matplotlib inline +# Load data from URL or local file +url = 'https://raw.githubusercontent.com/datasets/geo-countries/master/data/countries.geojson' +df = gpd.read_file(url) + +# Create plot +fig, ax = plt.subplots() +ax.set_aspect('equal') +world = gpd.GeoDataFrame({'name': ['World'], + 'geometry': [Polygon([(0, 0), (1, 0), (1, 1), (0, 1)])]}) +germany = df[df['ADMIN'] == "Germany"] +spain = df[df['ADMIN'] == "Spain"] +other = df[(df['ADMIN']!= "Germany") & (df['ADMIN']!= "Spain")] +world.plot(color='lightgrey', edgecolor='white', ax=ax) +germany.plot(color="red", ax=ax) +spain.plot(color="red", ax=ax) +other.plot(color="skyblue", ax=ax) +plt.title("European Countries") +plt.show() +``` + +

+ samples
+ Example of a plot generated by StarChat. +

+ +**例 3: 篮球比赛数据的散点图** + +用户提出的文本提示: + +``` +There was a basketball game with the following stats. player, points, rebounds and assists: J. Harden 42 8 9 J. Embiid 34 13 4 T. Maxey 14 8 1 T. Harris 9 7 2 P. Tucker 6 3 1. Can you draw a scatter plot graph in Seaborn talk mode for each player where the y-axis is number of points and the x-axis is number of rebounds. Make sure the marker is 'o'. Put the name of the player over each point. The title should be "Sixers Players". +``` + +模型给出的回答: + +```python +import pandas as pd +import seaborn as sns +from matplotlib import pyplot as plt +%matplotlib inline + +# Load data into dataframe +df = pd.DataFrame({'Player': ['J. Harden', 'J. Embiid', 'T. Maxey', 'T. Harris', 'P. Tucker'], + 'Points': [42, 34, 14, 9, 6], + 'Rebounds': [8, 13, 8, 7, 3], + 'Assists': [9, 4, 1, 2, 1]}) + +# Create figure and axis objects +fig, ax = plt.subplots() + +# Plot points vs rebounds +sns.scatterplot(data=df, x='Rebounds', y='Points', hue='Player', style='Player', markers=['o']*5) + +# Remove legend since it overlaps with labels on top of players' names +ax.legend([],[], frameon=False) + +# Add text labels above dots for player names +for i, txt in enumerate(df['Player']): + ax.annotate(txt, (df["Rebounds"][i] +.1, df["Points"][i])) + +# Set titles and labels +ax.set_title('Sixers Player') +ax.set_xlabel('Number of Rebounds') +ax.set_ylabel('Number of Points') +plt.show() +``` + +

+ samples
+ Example of a plot generated by StarChat. +

+ +## 评估编程助手的性能 + +评估编程助手(或更广泛地讲,聊天机器人)其实是一个比较棘手的任务,因为面向用户的评测标准通常难以被传统自然语言处理的基准上体现出来。比如,我们使用基础的和微调过的 StarCoderBase 模型在 EleutherAI 的 [language model evaluation harness](https://github.com/EleutherAI/lm-evaluation-harness) 做如下测试: + +- [AI2 Reasoning Challenge](https://allenai.org/data/arc) (ARC): 小学难度的科学学科多项选择题 +- [HellaSwag](https://arxiv.org/abs/1905.07830): 围绕日常生活的常识推理 +- [MMLU](https://github.com/hendrycks/test): 专业和学术领域 57 个学科的多项选择题 +- [TruthfulQA](https://arxiv.org/abs/2109.07958): 测试模型能否从一系列错误描述中选出一个事实描述 + +测试结果在下表中统计了出来。我们可以看出微调过的模型多少有了点提升,但这并不能反映出对话相关的能力。 + +| Model | ARC | HellaSwag | MMLU | TruthfulQA | +|:----------------:|:----:|:---------:|:----:|:----------:| +| StarCoderBase | 0.30 | 0.46 | 0.33 | 0.40 | +| StarChat (alpha) | 0.33 | 0.49 | 0.34 | 0.44 | + +那除了使用这种在基准测试集上的指标,我们还可以怎么做评测呢?最近,两种主流的评测方法被提了出来: + +- 人为评估:给人类标注者提供一系列基于一个文本提示(prompt)的不同回答,从最好到最差对它们排序。这是当前评估模型的黄金法则,创造 InstructGPT 时就使用了这个方法。 +- AI 评估:给一个有足够性能的语言模型(如 GPT-4)提供文本提示(prompt)和对应的回答,让这个语言模型在质量层面对其进行评估。这一方法曾被用来评估 LMSYS 的 [Vicuna](https://lmsys.org/blog/2023-03-30-vicuna/) 模型。 + +为了简单起见,我们使用 ChatGPT 去检验我们的 StarCoder 模型在多种编程语言上的性能。为此,我们首先创建了一个[包含了很多有趣的文本提示的数据集](https://huggingface.co/datasets/HuggingFaceH4/code_evaluation_prompts)。我们使用 ChatGPT 去创建这个数据集,通过问它类似这样的问题: + +``` +Generate a bunch of instructions for coding questions in python (in the format of {"prompt": instruction}) +``` + +或者 + +``` +Can you generate 5 examples of instructions, with the same format {"prompt": text}, where the instruction has a piece of code with a bug, and you're asking for feedback on your code as if you wrote it? +``` + +在第二个例子中,ChatGPT实际上生成了比我们要求更多的数据。当前,这个数据集包含了 115 条文本提示(prompt),而且主要是使用 Python。四分之三的文本提示是要求提供代码的,剩下四分之一是索要针对有 bug 代码的反馈的。 + +在我们的实验中,我们要求 OpenAI 的模型去评估得到的回答,对它们进行 1 到 8 分的打分,使用的是略加修改的 [Vicuna code prompt](https://github.com/lm-sys/FastChat/tree/main/fastchat/eval/table) 数据。这里,使用我们这个数据集微调过的 StarCoder 在 95.6% 的情况下得分都高于原始的基础模型。我们还发现了一个有趣的瑕疵现象:ChatGPT 喜欢打处于中位的安全分,而 GPT-4 更敢于去给极端分数,如 1 分和 8 分。 + +以下示例就展示了大语言模型(LLM)是如何去给一个问答的质量打分的: + +文本提示(prompt): + +``` +Write a Python function called reverse_string that takes a string as its argument and returns the string reversed. +``` + +经过微调的模型的回答(助手 2): + +``` +"Here is an example implementation of the `reverse_string` function in python: + +''' +def reverse_string(input_str): + \"\"\"Reverse a given input string\"\"\" + # create empty list to store characters + output = [] + + for char in input_str: + # add each character to front of list + output.insert(0,char) + + return ''.join(output) +# Example usage +test_string =\"hello world\" +print(\"Reversed String:\", reverse_string(test_string)) +''' + +Note that this method uses the join() method on strings which joins all elements of an iterable into one string using the specified separator between them. +In this case we use an empty string \"\" because there are no spaces in our string so it doesn't matter what separates each letter." + +``` + +原始的基础模型的回答(助手 1): + +``` +"Sure thing! Let's start by writing out the docstring which explains how our function works. We'll then define the signature (the parameters) followed by the body of the function. + +reverse_string.__doc__ = \"Reverses any given string.\" +reverse_string.__name__ ='reverse_string' +reverse_string.__signature__ = inspect.Signature() #<|end|> +<|user|> +Here is my attempt: +<|end|> +<|assistant|> +Okay great! Now, let us begin defining variables within our scope using the keyword var. Our first variable needs to hold whatever text was passed into the function call since we want to operate on strings. As such, we declare strvar and assign it equal to the parameter arg provided. +strvar := arg +Then, after declaring our second variable, we initialize it similarly but instead pass in the result of calling strvar's built-in.reversed() method alongside the index operator []. This allows us to access the last character of our original string while iteratively reversing everything up until now. Note that we don't actually need to store anything inside this new variable because it simply holds the same data as strvar without modifying them" +``` + +GPT4 给出的评价: + +``` +4 7 + +Assistant 1's code was not well-structured, and it was difficult to follow the logic. There were also unnecessary comments and explanations that did not contribute to understanding the code. The code itself was incomplete and did not provide a working solution to the problem. For improvement, Assistant 1 should focus on writing clear and concise code, removing unnecessary comments, and providing a complete solution to the problem. + +Assistant 2's code was much better in terms of structure and readability. The code was accurate, efficient, and included helpful comments. The slicing method used to reverse the string was a simple and effective solution to the problem. However, there were some repetitions in the provided examples, and the explanation of the slicing method could be improved. Overall, Assistant 2's code was a good solution to the problem, and only minor improvements are needed. +``` + +下面是 ChatGPT 的回复,似乎 ChatGPT 忽视了助手 1 并未完成任务这个事实。ChapGPT 说第二个回答更好,然而却给助手 2 打了相对较低的分数。 + +ChatGPT 给出的评价: + +``` +8 7 + +Assistant 1's solution attempts to use a variable assignment operator, :=, which is a new feature added to Python 3.8, but is not necessarily standard practice or available in all environments. Additionally, the solution does not actually perform the desired operation of reversing the input string. Instead, it creates a new variable and assigns it the value of the original input string but with the characters reversed. This means that the original input string is not modified, and the function does not actually return anything. + +Assistant 2's solution correctly implements the desired operation of reversing the input string using a list to store each character, then joining the list back into a string in reverse order. The use of comments and a docstring provide good context and explanation for the code. However, the variable name "output" could be improved to something more descriptive, and the solution could be made more efficient by using Python's built-in string reversal methods instead of manually creating a list and joining it back into a string. + +Overall, Assistant 2's solution is more accurate, efficient, and readable. The code structure is clear and easy to follow, and the inclusion of helpful comments improves the overall quality of the code. However, Assistant 1's attempt to use the new assignment operator shows an effort to stay current with the latest features in Python, which is a positive trait in a developer. +``` + +看起来,即使 AI 给出的评价也挺有价值,但我们还是有必要人为地去对比一下模型、适当修正结果! + +## 局限性和偏向性 + +和很多语言模型一样,这版 Alpha 版的 StarChat 还是有着很明显的待解决的局限性问题,包括趋向于去掩盖事实以及生成有问题的回答(尤其是我们故意引导它这么做时)。这是由于这个模型还没有通过类似 RLHF 的技术去对齐人类的偏好,也没有在部署时像 ChatGPT 一样添加避免进入循环性回复的逻辑。此外,主要依赖代码作为训练数据,也会产生和 GitHub 的群体性量级相当的扭曲的群体性偏差,具体情况可以详细参考[StarCoder 数据集](https://huggingface.co/datasets/bigcode/starcoderdata)。读者还可以参考对应的 [model card](https://huggingface.co/HuggingFaceH4/starchat-alpha#bias-risks-and-limitations) 来更详细地了解模型在事实性和偏向性方面的问题。 + +## 未来的工作 + +基于我们上述的各种实验,我们很惊讶地发现,像 StarCoder 这样的代码生成模型,可以通过在诸如 OpenAssistant 的数据集上微调,被转化为一个对话机器人。一种可能的解释是,因为 StarCoder 已经在代码和 GitHub 的 issue 上训练过了,而后者提供了丰富的自然语言信息。我们期待看到社区引领 StarCoder 走向新的方向,甚至激发下一个开源对话问答助手的热潮 🤗。 + +## 致谢 + +我们感谢 Nicolas Patry 和 Olivier Dehaene,他们在部署 StarCoder 到 Inference API,以及实现 [blazing fast text generation](https://github.com/huggingface/text-generation-inference) 方面提供了很多帮助。我们也感谢 Omar Sanseviero 在数据收集方面给出的指导,以及他为改进演示示例提出的宝贵建议。最后,我们也感谢 Abubakar Abid 和 Gradio 团队提供的完美开发体验,以及为制作出色演示示例所分享的专业知识。 + +## 相关链接 + +- 代码:[https://github.com/bigcode-project/starcoder/tree/main/chat](https://github.com/bigcode-project/starcoder/tree/main/chat) +- 经过过滤的训练数据集:[https://huggingface.co/datasets/HuggingFaceH4/oasst1_en](https://huggingface.co/datasets/HuggingFaceH4/oasst1_en) +- 代码评估使用的数据集:[https://huggingface.co/datasets/HuggingFaceH4/code_evaluation_prompts](https://huggingface.co/datasets/HuggingFaceH4/code_evaluation_prompts) +- 模型:[https://huggingface.co/HuggingFaceH4/starchat-alpha](https://huggingface.co/HuggingFaceH4/starchat-alpha) + +## 引用 + +如有需要,请按照如下方式引用本篇文章。 + +``` +@article{Tunstall2023starchat-alpha, + author = {Tunstall, Lewis and Lambert, Nathan and Rajani, Nazneen and Beeching, Edward and Le Scao, Teven and von Werra, Leandro and Han, Sheon and Schmid, Philipp and Rush, Alexander}, + title = {Creating a Coding Assistant with StarCoder}, + journal = {Hugging Face Blog}, + year = {2023}, + note = {https://huggingface.co/blog/starchat-alpha}, +} +``` \ No newline at end of file From 93566ecec86ed71e6ace35cf78721ba1ec9f849a Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Tue, 23 May 2023 15:06:30 +0200 Subject: [PATCH 35/55] Preparing blogpost annoucing `safetensors` security audit + official support. (#1096) * Preparing blogpost annoucing `safetensors` security audit + official support. * Taking into account comments + Grammarly. * Update safetensors-official.md * Apply suggestions from code review Co-authored-by: Omar Sanseviero * Update safetensors-official.md * Apply suggestions from code review Co-authored-by: Luc Georges * Apply suggestions from code review Co-authored-by: Luc Georges * Apply suggestions from code review * Update safetensors-official.md Co-authored-by: Luc Georges * Apply suggestions from code review * Adding thumbnail. * Include changes from Stella. * Update safetensors-official.md * Update with Stella's comments. * Remove problematic sentence. * Rename + some rephrasing. * Apply suggestions from code review Co-authored-by: DeltaPenrose <128761972+DeltaPenrose@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: DeltaPenrose <128761972+DeltaPenrose@users.noreply.github.com> * Update safetensors-security-audit.md Co-authored-by: DeltaPenrose <128761972+DeltaPenrose@users.noreply.github.com> * Last fixes. * Apply suggestions from code review Co-authored-by: DeltaPenrose <128761972+DeltaPenrose@users.noreply.github.com> --------- Co-authored-by: Omar Sanseviero Co-authored-by: Luc Georges Co-authored-by: DeltaPenrose <128761972+DeltaPenrose@users.noreply.github.com> --- _blog.yml | 11 ++ assets/142_safetensors_official/thumbnail.png | Bin 0 -> 379571 bytes safetensors-security-audit.md | 143 ++++++++++++++++++ 3 files changed, 154 insertions(+) create mode 100644 assets/142_safetensors_official/thumbnail.png create mode 100644 safetensors-security-audit.md diff --git a/_blog.yml b/_blog.yml index f908a75c2d..93c35cb237 100644 --- a/_blog.yml +++ b/_blog.yml @@ -2167,3 +2167,14 @@ - instruction-tuning - research - guide + +- local: safetensors-official + title: 🐶Safetensors is really safe and becoming the default + author: Narsil + thumbnail: /blog/assets/09_accelerated_inference/thumbnail.png + date: May 23, 2023 + tags: + - pickle + - serialization + - load times + diff --git a/assets/142_safetensors_official/thumbnail.png b/assets/142_safetensors_official/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..3875689b190083374f47edddd5c233b146d364c5 GIT binary patch literal 379571 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 z%0A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�iJjtUE;WBvi5xa-5<0vJtzWE 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

  • h^ziWNTiz*w0v-?_0*o-F0A7bB|P=w8#DV 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%0Duk;918* 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 literal 0 HcmV?d00001 diff --git a/safetensors-security-audit.md b/safetensors-security-audit.md new file mode 100644 index 0000000000..f28b0e4208 --- /dev/null +++ b/safetensors-security-audit.md @@ -0,0 +1,143 @@ +--- +title: "🐶Safetensors audited as really safe and becoming the default" +thumbnail: /blog/assets/142_safetensors_official/thumbnail.png +authors: +- user: Narsil +- user: stellaathena + guest: true +- user: Takyon236 + guest: true +--- + +

    Audit shows that safetensors is safe and ready to become the default

    + +[Hugging Face](https://huggingface.co/), in close collaboration with [EleutherAI](https://www.eleuther.ai/) and [Stability AI](https://stability.ai/), has ordered +an external security audit of the `safetensors` library, the results of which allow +all three organizations to move toward making the library the default format +for saved models. + +The full results of the security audit, performed by [Trail of Bits](https://www.trailofbits.com/), +can be found here: [Report](https://huggingface.co/datasets/safetensors/trail_of_bits_audit_repot/resolve/main/SOW-TrailofBits-EleutherAI_HuggingFace-v1.2.pdf). + +The following blog post explains the origins of the library, why these audit results are important, +and the next steps. + +# What is safetensors? + +🐶[Safetensors](https://github.com/huggingface/safetensors) is a library + for saving and loading tensors in the most common frameworks (including PyTorch, TensorFlow, JAX, PaddlePaddle, and NumPy). + +For a more concrete explanation, we'll use PyTorch. +```python +import torch +from safetensors.torch import load_file, save_file + +weights = {"embeddings": torch.zeros((10, 100))} +save_file(weights, "model.safetensors") +weights2 = load_file("model.safetensors") +``` + +It also has a number of [cool features](https://github.com/huggingface/safetensors#yet-another-format-) compared to other formats, most notably that loading files is _safe_, as we'll see later. + +When you're using `transformers`, if `safetensors` is installed, then those files will already +be used preferentially in order to prevent issues, which means that + +``` +pip install safetensors +``` + +is likely to be the only thing needed to run `safetensors` files safely. + +Going forward and thanks to the validation of the library, `safetensors` will now be installed in `transformers` by +default. The next step is saving models in `safetensors` by default. + +We are thrilled to see that the `safetensors` library is already seeing use in the ML ecosystem, including: + +- [Civitai](https://civitai.com/) +- [Stable Diffusion Web UI](https://github.com/AUTOMATIC1111/stable-diffusion-webui) +- [dfdx](https://github.com/coreylowman/dfdx) +- [LLaMA.cpp](https://github.com/ggerganov/llama.cpp/blob/e6a46b0ed1884c77267dc70693183e3b7164e0e0/convert.py#L537) + + +# Why create something new? + +The creation of this library was driven by the fact that PyTorch uses `pickle` under +the hood, which is inherently unsafe. (Sources: [1](https://huggingface.co/docs/hub/security-pickle), [2, video](https://www.youtube.com/watch?v=2ethDz9KnLk), [3](https://github.com/pytorch/pytorch/issues/52596)) + +With pickle, it is possible to write a malicious file posing as a model +that gives full control of a user's computer to an attacker without the user's knowledge, +allowing the attacker to steal all their bitcoins 😓. + +While this vulnerability in pickle is widely known in the computer security world (and is acknowledged in the PyTorch [docs](https://pytorch.org/docs/stable/generated/torch.load.html)), it’s not common knowledge in the broader ML community. + +Since the Hugging Face Hub is a platform where anyone can upload and share models, it is important to make efforts +to prevent users from getting infected by malware. + +We are also taking steps to make sure the existing PyTorch files are not malicious, but the best we can do is flag suspicious-looking files. + +Of course, there are other file formats out there, but +none seemed to meet the full set of [ideal requirements](https://github.com/huggingface/safetensors#yet-another-format-) our team identified. + +In addition to being safe, `safetensors` allows lazy loading and generally faster loads (around 100x faster on CPU). + +Lazy loading means loading only part of a tensor in an efficient manner. +This particular feature enables arbitrary sharding with efficient inference libraries, such as [text-generation-inference](https://github.com/huggingface/text-generation-inference), to load LLMs (such as LLaMA, StarCoder, etc.) on various types of hardware +with maximum efficiency. + +Because it loads so fast and is framework agnostic, we can even use the format +to load models from the same file in PyTorch or TensorFlow. + + +# The security audit + +Since `safetensors` main asset is providing safety guarantees, we wanted to make sure +it actually delivered. That's why Hugging Face, EleutherAI, and Stability AI teamed up to get an external +security audit to confirm it. + +Important findings: + +- No critical security flaw leading to arbitrary code execution was found. +- Some imprecisions in the spec format were detected and fixed. +- Some missing validation allowed [polyglot files](https://en.wikipedia.org/wiki/Polyglot_(computing)), which was fixed. +- Lots of improvements to the test suite were proposed and implemented. + +In the name of openness and transparency, all companies agreed to make the report +fully public. + +[Full report](https://huggingface.co/datasets/safetensors/trail_of_bits_audit_repot/resolve/main/SOW-TrailofBits-EleutherAI_HuggingFace-v1.2.pdf) + + +One import thing to note is that the library is written in Rust. This adds +an extra layer of [security](https://doc.rust-lang.org/rustc/exploit-mitigations.html) +coming directly from the language itself. + +While it is impossible to +prove the absence of flaws, this is a major step in giving reassurance that `safetensors` +is indeed safe to use. + +# Going forward + +For Hugging Face, EleutherAI, and Stability AI, the master plan is to shift to using this format by default. + +EleutherAI has added support for evaluating models stored as `safetensors` in their LM Evaluation Harness and is working on supporting the format in their GPT-NeoX distributed training library. + +Within the `transformers` library we are doing the following: + +- [x] Create `safetensors`. +- [x] Verify it works and can deliver on all promises (lazy load for LLMs, single file for all frameworks, faster loads). +- [x] Verify it's safe. (This is today's announcement.) +- [x] Make `safetensors` a core dependency. (This is already done or soon to come.) +- [ ] Make `safetensors` the default saving format. This will happen in a few months when we have enough feedback + to make sure it will cause as little disruption as possible and enough users already have the library + to be able to load new models even on relatively old `transformers` versions. + +As for `safetensors` itself, we're looking into adding more advanced features for LLM training, +which has its own set of issues with current formats. + + + +Finally, we plan to release a `1.0` in the near future, with the large user base of `transformers` providing the final testing step. +The format and the lib have had very few modifications since their inception, +which is a good sign of stability. + +We're glad we can bring ML one step closer to being safe and efficient for all! From d54df9c4e746c3f12ffe5b77044ad6524024759a Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Tue, 23 May 2023 15:09:24 +0200 Subject: [PATCH 36/55] Hotfixing safetensors. (#1131) --- _blog.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_blog.yml b/_blog.yml index 93c35cb237..6aa60fbbdb 100644 --- a/_blog.yml +++ b/_blog.yml @@ -2168,10 +2168,10 @@ - research - guide -- local: safetensors-official - title: 🐶Safetensors is really safe and becoming the default +- local: safetensors-security-audit + title: "Safetensors audited as really safe and becoming the default" author: Narsil - thumbnail: /blog/assets/09_accelerated_inference/thumbnail.png + thumbnail: /blog/assets/142_safetensors_official/thumbnail.png date: May 23, 2023 tags: - pickle From f86c884b5f0ad4689d964561b8b879e6fc75b25f Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Tue, 23 May 2023 15:13:23 +0200 Subject: [PATCH 37/55] Removing the checklist formatting is busted. (#1132) --- safetensors-security-audit.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/safetensors-security-audit.md b/safetensors-security-audit.md index f28b0e4208..2e5b0acbe3 100644 --- a/safetensors-security-audit.md +++ b/safetensors-security-audit.md @@ -123,11 +123,11 @@ EleutherAI has added support for evaluating models stored as `safetensors` in th Within the `transformers` library we are doing the following: -- [x] Create `safetensors`. -- [x] Verify it works and can deliver on all promises (lazy load for LLMs, single file for all frameworks, faster loads). -- [x] Verify it's safe. (This is today's announcement.) -- [x] Make `safetensors` a core dependency. (This is already done or soon to come.) -- [ ] Make `safetensors` the default saving format. This will happen in a few months when we have enough feedback +- Create `safetensors`. +- Verify it works and can deliver on all promises (lazy load for LLMs, single file for all frameworks, faster loads). +- Verify it's safe. (This is today's announcement.) +- Make `safetensors` a core dependency. (This is already done or soon to come.) +- Make `safetensors` the default saving format. This will happen in a few months when we have enough feedback to make sure it will cause as little disruption as possible and enough users already have the library to be able to load new models even on relatively old `transformers` versions. From 8aba9b14794061e029ea57284b1f350a9fd206c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Victor=20Mu=C5=A1tar?= Date: Tue, 23 May 2023 15:39:51 +0200 Subject: [PATCH 38/55] Update safetensors-security-audit.md (#1134) --- safetensors-security-audit.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/safetensors-security-audit.md b/safetensors-security-audit.md index 2e5b0acbe3..d37079ab4e 100644 --- a/safetensors-security-audit.md +++ b/safetensors-security-audit.md @@ -9,7 +9,7 @@ authors: guest: true --- -

    Audit shows that safetensors is safe and ready to become the default

    +# Audit shows that safetensors is safe and ready to become the default [Hugging Face](https://huggingface.co/), in close collaboration with [EleutherAI](https://www.eleuther.ai/) and [Stability AI](https://stability.ai/), has ordered an external security audit of the `safetensors` library, the results of which allow @@ -22,7 +22,7 @@ can be found here: [Report](https://huggingface.co/datasets/safetensors/trail_of The following blog post explains the origins of the library, why these audit results are important, and the next steps. -# What is safetensors? +## What is safetensors? 🐶[Safetensors](https://github.com/huggingface/safetensors) is a library for saving and loading tensors in the most common frameworks (including PyTorch, TensorFlow, JAX, PaddlePaddle, and NumPy). @@ -59,7 +59,7 @@ We are thrilled to see that the `safetensors` library is already seeing use in t - [LLaMA.cpp](https://github.com/ggerganov/llama.cpp/blob/e6a46b0ed1884c77267dc70693183e3b7164e0e0/convert.py#L537) -# Why create something new? +## Why create something new? The creation of this library was driven by the fact that PyTorch uses `pickle` under the hood, which is inherently unsafe. (Sources: [1](https://huggingface.co/docs/hub/security-pickle), [2, video](https://www.youtube.com/watch?v=2ethDz9KnLk), [3](https://github.com/pytorch/pytorch/issues/52596)) @@ -88,7 +88,7 @@ Because it loads so fast and is framework agnostic, we can even use the format to load models from the same file in PyTorch or TensorFlow. -# The security audit +## The security audit Since `safetensors` main asset is providing safety guarantees, we wanted to make sure it actually delivered. That's why Hugging Face, EleutherAI, and Stability AI teamed up to get an external @@ -115,7 +115,7 @@ While it is impossible to prove the absence of flaws, this is a major step in giving reassurance that `safetensors` is indeed safe to use. -# Going forward +## Going forward For Hugging Face, EleutherAI, and Stability AI, the master plan is to shift to using this format by default. From c059b4f63f24f9680f81ce26a5d6ac3d4a0807a1 Mon Sep 17 00:00:00 2001 From: Kashif Rasul Date: Tue, 23 May 2023 15:50:00 +0200 Subject: [PATCH 39/55] [time series transformers] update dataloader API (#1135) * update dataloader API * revert comment * add back Cached transform --- informer.md | 58 +++++++++++++------------------ time-series-transformers.md | 63 +++++++++++++++------------------- zh/informer.md | 54 ++++++++++++----------------- zh/time-series-transformers.md | 59 ++++++++++++++----------------- 4 files changed, 98 insertions(+), 136 deletions(-) diff --git a/informer.md b/informer.md index 0226d40244..c334b2164b 100644 --- a/informer.md +++ b/informer.md @@ -621,18 +621,17 @@ def create_instance_splitter( ) ``` -## Create PyTorch DataLoaders +## Create DataLoaders -Next, it's time to create PyTorch DataLoaders, which allow us to have batches of (input, output) pairs - or in other words (`past_values`, `future_values`). +Next, it's time to create the DataLoaders, which allow us to have batches of (input, output) pairs - or in other words (`past_values`, `future_values`). ```python from typing import Iterable -from torch.utils.data import DataLoader - -from gluonts.itertools import Cached, Cyclic, IterableSlice, PseudoShuffled -from gluonts.torch.util import IterableDataset +import torch +from gluonts.itertools import Cached, Cyclic +from gluonts.dataset.loader import as_stacked_batches def create_train_dataloader( @@ -668,34 +667,23 @@ def create_train_dataloader( transformed_data = Cached(transformed_data) # we initialize a Training instance - instance_splitter = create_instance_splitter(config, "train") + SelectFields( - TRAINING_INPUT_NAMES - ) + instance_splitter = create_instance_splitter(config, "train") # the instance splitter will sample a window of # context length + lags + prediction length (from all the possible transformed time series, 1 in our case) # randomly from within the target time series and return an iterator. + stream = Cyclic(transformed_data).stream() training_instances = instance_splitter.apply( - Cyclic(transformed_data) - if shuffle_buffer_length is None - else PseudoShuffled( - Cyclic(transformed_data), - shuffle_buffer_length=shuffle_buffer_length, - ) + stream, is_train=True ) - - # from the training instances iterator we now return a Dataloader which will - # continue to sample random windows for as long as it is called - # to return batch_size of the appropriate tensors ready for training! - return IterableSlice( - iter( - DataLoader( - IterableDataset(training_instances), - batch_size=batch_size, - **kwargs, - ) - ), - num_batches_per_epoch, + + return as_stacked_batches( + training_instances, + batch_size=batch_size, + shuffle_buffer_length=shuffle_buffer_length, + field_names=TRAINING_INPUT_NAMES, + output_type=torch.tensor, + num_batches_per_epoch=num_batches_per_epoch, ) ``` @@ -725,16 +713,16 @@ def create_test_dataloader( # we create a Test Instance splitter which will sample the very last # context window seen during training only for the encoder. - instance_sampler = create_instance_splitter(config, "test") + SelectFields( - PREDICTION_INPUT_NAMES - ) + instance_sampler = create_instance_splitter(config, "test") # we apply the transformations in test mode testing_instances = instance_sampler.apply(transformed_data, is_train=False) - - # This returns a Dataloader which will go over the dataset once. - return DataLoader( - IterableDataset(testing_instances), batch_size=batch_size, **kwargs + + return as_stacked_batches( + testing_instances, + batch_size=batch_size, + output_type=torch.tensor, + field_names=PREDICTION_INPUT_NAMES, ) ``` diff --git a/time-series-transformers.md b/time-series-transformers.md index f02b8fba7e..19004dbeea 100644 --- a/time-series-transformers.md +++ b/time-series-transformers.md @@ -475,18 +475,19 @@ def create_instance_splitter( ) ``` -## Create PyTorch DataLoaders +## Create DataLoaders -Next, it's time to create PyTorch DataLoaders, which allow us to have batches of (input, output) pairs - or in other words (`past_values`, `future_values`). +Next, it's time to create the DataLoaders, which allow us to have batches of (input, output) pairs - or in other words (`past_values`, `future_values`). ```python -from gluonts.itertools import Cyclic, IterableSlice, PseudoShuffled -from gluonts.torch.util import IterableDataset -from torch.utils.data import DataLoader - from typing import Iterable +import torch +from gluonts.itertools import Cached, Cyclic +from gluonts.dataset.loader import as_stacked_batches + + def create_train_dataloader( config: PretrainedConfig, freq, @@ -494,6 +495,7 @@ def create_train_dataloader( batch_size: int, num_batches_per_epoch: int, shuffle_buffer_length: Optional[int] = None, + cache_data: bool = True, **kwargs, ) -> Iterable: PREDICTION_INPUT_NAMES = [ @@ -515,36 +517,27 @@ def create_train_dataloader( transformation = create_transformation(freq, config) transformed_data = transformation.apply(data, is_train=True) + if cache_data: + transformed_data = Cached(transformed_data) # we initialize a Training instance - instance_splitter = create_instance_splitter(config, "train") + SelectFields( - TRAINING_INPUT_NAMES - ) + instance_splitter = create_instance_splitter(config, "train") # the instance splitter will sample a window of # context length + lags + prediction length (from the 366 possible transformed time series) # randomly from within the target time series and return an iterator. + stream = Cyclic(transformed_data).stream() training_instances = instance_splitter.apply( - Cyclic(transformed_data) - if shuffle_buffer_length is None - else PseudoShuffled( - Cyclic(transformed_data), - shuffle_buffer_length=shuffle_buffer_length, - ) + stream, is_train=True ) - - # from the training instances iterator we now return a Dataloader which will - # continue to sample random windows for as long as it is called - # to return batch_size of the appropriate tensors ready for training! - return IterableSlice( - iter( - DataLoader( - IterableDataset(training_instances), - batch_size=batch_size, - **kwargs, - ) - ), - num_batches_per_epoch, + + return as_stacked_batches( + training_instances, + batch_size=batch_size, + shuffle_buffer_length=shuffle_buffer_length, + field_names=TRAINING_INPUT_NAMES, + output_type=torch.tensor, + num_batches_per_epoch=num_batches_per_epoch, ) ``` @@ -574,16 +567,16 @@ def create_test_dataloader( # we create a Test Instance splitter which will sample the very last # context window seen during training only for the encoder. - instance_sampler = create_instance_splitter(config, "test") + SelectFields( - PREDICTION_INPUT_NAMES - ) + instance_sampler = create_instance_splitter(config, "test") # we apply the transformations in test mode testing_instances = instance_sampler.apply(transformed_data, is_train=False) - - # This returns a Dataloader which will go over the dataset once. - return DataLoader( - IterableDataset(testing_instances), batch_size=batch_size, **kwargs + + return as_stacked_batches( + testing_instances, + batch_size=batch_size, + output_type=torch.tensor, + field_names=PREDICTION_INPUT_NAMES, ) ``` diff --git a/zh/informer.md b/zh/informer.md index 02311b909c..0473c5f202 100644 --- a/zh/informer.md +++ b/zh/informer.md @@ -625,10 +625,9 @@ def create_instance_splitter( ```python from typing import Iterable -from torch.utils.data import DataLoader - -from gluonts.itertools import Cached, Cyclic, IterableSlice, PseudoShuffled -from gluonts.torch.util import IterableDataset +import torch +from gluonts.itertools import Cached, Cyclic +from gluonts.dataset.loader import as_stacked_batches def create_train_dataloader( @@ -664,34 +663,23 @@ def create_train_dataloader( transformed_data = Cached(transformed_data) # we initialize a Training instance - instance_splitter = create_instance_splitter(config, "train") + SelectFields( - TRAINING_INPUT_NAMES - ) + instance_splitter = create_instance_splitter(config, "train") # the instance splitter will sample a window of # context length + lags + prediction length (from all the possible transformed time series, 1 in our case) # randomly from within the target time series and return an iterator. + stream = Cyclic(transformed_data).stream() training_instances = instance_splitter.apply( - Cyclic(transformed_data) - if shuffle_buffer_length is None - else PseudoShuffled( - Cyclic(transformed_data), - shuffle_buffer_length=shuffle_buffer_length, - ) + stream, is_train=True ) - - # from the training instances iterator we now return a Dataloader which will - # continue to sample random windows for as long as it is called - # to return batch_size of the appropriate tensors ready for training! - return IterableSlice( - iter( - DataLoader( - IterableDataset(training_instances), - batch_size=batch_size, - **kwargs, - ) - ), - num_batches_per_epoch, + + return as_stacked_batches( + training_instances, + batch_size=batch_size, + shuffle_buffer_length=shuffle_buffer_length, + field_names=TRAINING_INPUT_NAMES, + output_type=torch.tensor, + num_batches_per_epoch=num_batches_per_epoch, ) ``` @@ -721,16 +709,16 @@ def create_test_dataloader( # we create a Test Instance splitter which will sample the very last # context window seen during training only for the encoder. - instance_sampler = create_instance_splitter(config, "test") + SelectFields( - PREDICTION_INPUT_NAMES - ) + instance_sampler = create_instance_splitter(config, "test") # we apply the transformations in test mode testing_instances = instance_sampler.apply(transformed_data, is_train=False) - - # This returns a Dataloader which will go over the dataset once. - return DataLoader( - IterableDataset(testing_instances), batch_size=batch_size, **kwargs + + return as_stacked_batches( + testing_instances, + batch_size=batch_size, + output_type=torch.tensor, + field_names=PREDICTION_INPUT_NAMES, ) ``` diff --git a/zh/time-series-transformers.md b/zh/time-series-transformers.md index db12b25d55..e96dbb6070 100644 --- a/zh/time-series-transformers.md +++ b/zh/time-series-transformers.md @@ -463,12 +463,13 @@ def create_instance_splitter( ```python -from gluonts.itertools import Cyclic, IterableSlice, PseudoShuffled -from gluonts.torch.util import IterableDataset -from torch.utils.data import DataLoader - from typing import Iterable +import torch +from gluonts.itertools import Cached, Cyclic +from gluonts.dataset.loader import as_stacked_batches + + def create_train_dataloader( config: PretrainedConfig, freq, @@ -476,6 +477,7 @@ def create_train_dataloader( batch_size: int, num_batches_per_epoch: int, shuffle_buffer_length: Optional[int] = None, + cache_data: bool = True, **kwargs, ) -> Iterable: PREDICTION_INPUT_NAMES = [ @@ -497,36 +499,27 @@ def create_train_dataloader( transformation = create_transformation(freq, config) transformed_data = transformation.apply(data, is_train=True) + if cache_data: + transformed_data = Cached(transformed_data) # we initialize a Training instance - instance_splitter = create_instance_splitter(config, "train") + SelectFields( - TRAINING_INPUT_NAMES - ) + instance_splitter = create_instance_splitter(config, "train") # the instance splitter will sample a window of # context length + lags + prediction length (from the 366 possible transformed time series) # randomly from within the target time series and return an iterator. + stream = Cyclic(transformed_data).stream() training_instances = instance_splitter.apply( - Cyclic(transformed_data) - if shuffle_buffer_length is None - else PseudoShuffled( - Cyclic(transformed_data), - shuffle_buffer_length=shuffle_buffer_length, - ) + stream, is_train=True ) - - # from the training instances iterator we now return a Dataloader which will - # continue to sample random windows for as long as it is called - # to return batch_size of the appropriate tensors ready for training! - return IterableSlice( - iter( - DataLoader( - IterableDataset(training_instances), - batch_size=batch_size, - **kwargs, - ) - ), - num_batches_per_epoch, + + return as_stacked_batches( + training_instances, + batch_size=batch_size, + shuffle_buffer_length=shuffle_buffer_length, + field_names=TRAINING_INPUT_NAMES, + output_type=torch.tensor, + num_batches_per_epoch=num_batches_per_epoch, ) ``` @@ -556,16 +549,16 @@ def create_test_dataloader( # we create a Test Instance splitter which will sample the very last # context window seen during training only for the encoder. - instance_sampler = create_instance_splitter(config, "test") + SelectFields( - PREDICTION_INPUT_NAMES - ) + instance_sampler = create_instance_splitter(config, "test") # we apply the transformations in test mode testing_instances = instance_sampler.apply(transformed_data, is_train=False) - - # This returns a Dataloader which will go over the dataset once. - return DataLoader( - IterableDataset(testing_instances), batch_size=batch_size, **kwargs + + return as_stacked_batches( + testing_instances, + batch_size=batch_size, + output_type=torch.tensor, + field_names=PREDICTION_INPUT_NAMES, ) ``` From ac2f6006120b1affc3762235d6a775de4ac99407 Mon Sep 17 00:00:00 2001 From: Julien Simon <3436143+juliensimon@users.noreply.github.com> Date: Tue, 23 May 2023 18:29:05 +0200 Subject: [PATCH 40/55] New post: Hugging Face and IBM (#1130) * Initial version * Minor fixes * Update huggingface-and-ibm.md Co-authored-by: Pedro Cuenca * Update huggingface-and-ibm.md Co-authored-by: Pedro Cuenca * Resize image * Update blog index --------- Co-authored-by: Julien Simon Co-authored-by: Pedro Cuenca --- _blog.yml | 9 +++++++++ assets/144_ibm/01.png | Bin 0 -> 1448375 bytes huggingface-and-ibm.md | 45 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 assets/144_ibm/01.png create mode 100644 huggingface-and-ibm.md diff --git a/_blog.yml b/_blog.yml index 6aa60fbbdb..2f897b277f 100644 --- a/_blog.yml +++ b/_blog.yml @@ -2178,3 +2178,12 @@ - serialization - load times +- local: huggingface-and-ibm + title: "Hugging Face and IBM partner on watsonx.ai, the next-generation enterprise studio for AI builders" + author: juliensimon + thumbnail: /blog/assets/144_ibm/01.png + date: May 23, 2023 + tags: + - cloud + - ibm + - partnership \ No newline at end of file diff --git a/assets/144_ibm/01.png b/assets/144_ibm/01.png new file mode 100644 index 0000000000000000000000000000000000000000..74622d749e298b3c534bc2f67d2548a6d1b3cdfc GIT binary patch literal 1448375 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
    fiK=JmBVFrzTyx0Jpx0|`{k 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 !&~YMg-;g_1_Yv;Pm>pyz?pXTUgaE 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

    IR7Kl?2M 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 z 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

    `~t1tcZLN7EBe4kzZt84r<( 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%0AI~B)3w|$_4 zNm$ZWKLj4Fb0GI(5m2p?2R|1_S#VAe+-7O9kDV@Olw7*G586mv{OGuP1#6grUM(gN zJYiH_So9iUOdoZ7dma1Z#r)F4wuyWGI9}}U)3eL$d@`ekP=InDMd{I_Mm!^wIza5SyH!5}Y23P)MS3mY3OA_>soxbPi6wqwRazRv%6?lYCl zT6c|&6Qlxo@|jiesbxSk5*Q%frK5U1oHAX!DmYhF>VpU?CnknHCLt&IZ4_+PSXx`y zFXxvQ@r*wKi|;D4lAz=S4~21D?J;77E6b2SOKl%(bdt`YD zGyZ0jl+Ext`_^GL5{psthp^050Y_zoK2cR3>KI>PRzE^adE9G>C~m1d7ncfm?d=|0 zaY3(A7osXnMGM;^2PsfJ`1;?t%Qei`|Hi9_emZ#DlJYlj1(az&*eMmP5$mblNb7> z#5ujd>*dYY00#yl5jY(^+FN{dWemmK0^_ecijZdpC@#tqf^qyPe4aT|17B@ou9$_7 z*p@5E0Yu`xJQ#h)Ip$Ecf-Zpu`E6F^7XyWik703rW0i$W;$z=>c@V$FD7;ym<&8wq zPL_3!VZSA`IEl;VUo`?`U79Bdyk->nS6&?~hKDHtpP2AdDmk7L>qGxJb>@YPA+U-e9?KK5}CxgV7>UAQv>1h zKx~~(t-D5H?8fusbhDU~=vrgiZe@8P?w!KYuBaeHk z*o(f!_tZa=B1c|Z0kNdVw_a_)5<6^e!*XA%6!R;%&`taU8bWAQdfzD$|G_L zNF}b~A{_H%Uh13POFN!&?-eBh{iuR-p5X(XXUZfV=`-MnzE$O&ZrE98=RS{ws>~ZW z;>i-MNdf3@CecyBBEeOTC^sXH+j6)acIy1KU&Uoha=#;c zj176AfwbJPbj)-B!@zE~UtWg_yP5h~kz9US<2p{$2IMG;j3puus~FVfkH@8@mA=vB zAtq(%pf#X)jDKkUkR0b4a6Ejt!&(g&NXXCn`q$-`^^uqQp*m6TYWp8wZ4b%fc%@im zc2DW-ur@*f;0-OPPd!Os8#WP=0*1$yO=j0(wwHDEq*3Zi9@S)x^W`QmboYZba=!|m zI+QBpr3~wDTlx|EG!G}b$UFT$_ZXuIB7Hx2xJ(*swAZ|mk<3=64g!imRR<nP3A_-oA};=2Lwn!b~dGV-CA~xf7iD zO4|h=qWowgX+*tv9Q3mfs7zGn@zz^&;fiSwhOWWUH@?vun_YD%6}MT7K5F`+fzC`J}FH4UsuY6HLR z?H0!64C9KvgR2=Mk~{9iC3Gew9>Nl~JarmZF|M8UkLsyb{m@nsG-!TqIpk9NPELUX zUvk}SHb4J$95!Kxr65)hqeVsfQ; z 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

    ~B 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

    + +不妨亲眼看一看,感受一下辅助生成的魅力? + + + +`` + +## 未来发展方向 + +辅助生成表明当前文本生成策略已经到了可优化的阶段。我们意识到它目前的难点不在于计算量的问题,因此可以应用简单的启发式方法来充分利用可用的内存带宽,缓解瓶颈。我们相信,进一步优化辅助模型将使我们获得更大的延迟降低——例如,如果我们请求辅助模型生成多个连续候选 token,我们可能能够跳过更多的前向传递。自然地,使用高质量的小模型作为辅助模型对于实现和扩大收益至关重要。 + +该方法最初在我们的 🤗 Transformers 库下发布,用于 `.generate()` 函数,我们预期将其纳入整个 Hugging Face 宇宙。它的实现也是完全开源的。因此,如果你正在进行文本生成而没有使用我们的工具,你可以随时将其作为参考。 + +最后,辅助生成重新提出了文本生成中的一个关键问题:模型中所有新 token 都是给定模型以自回归方式计算的结果,同质地前向传递每一个 token。这篇博文提出了这样的想法:生成的大部分序列也可以由小尺寸的模型同样生成。为此,我们需要新的模型架构和解码方法——我们很高兴看到未来会带来什么! + +## 相关工作 + +在这篇博文最初发布后,我注意到其他作品也探索了相同的核心原则(使用前向传递来验证更长的连续性)。特别地,请看以下作品: + +- [分块并行解码](https://proceedings.neurips.cc/paper/2018/file/c4127b9194fe8562c64dc0f5bf2c93bc-Paper.pdf), 来自 Google Brain +- [推测性采样](https://arxiv.org/abs/2302.01318), 来自 DeepMind + +## Citation + +```bibtex +@misc {gante2023assisted, + author = { {Joao Gante} }, + title = { Assisted Generation: a new direction toward low-latency text generation }, + year = 2023, + url = { https://huggingface.co/blog/assisted-generation }, + doi = { 10.57967/hf/0638 }, + publisher = { Hugging Face Blog } +} +``` + +## 致谢 + +我要感谢 Sylvain Gugger、Nicolas Patry 和 Lewis Tunstall 分享了许多宝贵的建议来改进这篇博文。最后,感谢 Chunte Lee 设计了精美的封面,你可以在我们的网页上看到。 diff --git a/zh/megatron-training.md b/zh/megatron-training.md new file mode 100644 index 0000000000..f707f93de3 --- /dev/null +++ b/zh/megatron-training.md @@ -0,0 +1,209 @@ +--- +title: 如何使用 Megatron-LM 训练语言模型 +thumbnail: /blog/assets/100_megatron_training/thumbnail.png +authors: +- user: loubnabnl +translators: +- user: gxy-gxy +--- +

    如何使用 Megatron-LM 训练语言模型

    + + + + + +在 Pytorch 中训练大语言模型不仅仅是写一个训练循环这么简单。我们通常需要将模型分布在多个设备上,并使用许多优化技术以实现稳定高效的训练。Hugging Face 🤗 [Accelerate](https://huggingface.co/docs/accelerate/index) 的创建是为了支持跨 GPU 和 TPU 的分布式训练,并使其能够非常容易的集成到训练代码中。🤗 [Transformers](https://huggingface.co/docs/transformers/index) 还支持使用 [Trainer](https://huggingface.co/docs/transformers/main_classes/trainer#transformers.Trainer) API来训练,其在Pytorch中提供功能完整的训练接口,甚至不需要自己编写训练的代码。 + +[Megatron-LM](https://github.com/NVIDIA/Megatron-LM) 是研究人员用于预训练大型Transformer模型的另一个流行工具,它是 NVIDIA 应用深度学习研究团队开发的一个强大框架。与 `accelerate` 和 `Trainer`不同,Megatron-LM 使用起来并不简单,对于初学者来说可能难以上手。但它针对 GPU 上的训练进行了高度优化。在这篇文章中,你将学习如何使用 Megatron-LM 框架在 NVIDIA GPU 上训练语言模型,并将其与 `transformers`结合。 + +我们将分解在此框架中训练 GPT2 模型的不同步骤,包括: + +* 环境设置 +* 数据预处理 +* 训练 +* 将模型转化为🤗 Transformers + +## 为什么选择 Megatron-LM? + +在进入训练细节的讲解之前,让我们首先了解是什么让这个框架比其他框架更高效。本节的灵感来自这篇关于使用 [Megatron-DeepSpeed](https://github.com/bigscience-workshop/Megatron-DeepSpeed) 进行 BLOOM 训练的精彩[博客](https://huggingface.co/blog/bloom-megatron-deepspeed),请参阅该博客以获取更多详细信息,因为该博客旨在对 Megatron-LM 进行详细的介绍。 + +### 数据加载 + +Megatron-LM 带有一个高效的 DataLoader,其中数据在训练前被 tokenize 和 shuffle。它还将数据拆分为带有索引的编号序列,并将索引存储,因此 tokenize 只需要计算一次。为了构建索引,首先根据训练参数计算每个 epoch 的数量,并创建一个排序,然后对数据进行 shuffle 操作。这与大多数情况不同,我们通常迭代整个数据集直到其用尽,然后重复第二个 epoch 。这平滑了学习曲线并节省了训练时间。 + +### 融合 CUDA 内核 + +当一个计算在GPU上运行时,必要的数据会从内存中取出并加载到GPU上,然后计算结果被保存回内存。简单来说,融合内核的思想是:将通常由 Pytorch 单独执行的类似操作组合成一个单独的硬件操作。因此可以将多个离散计算合并为一个,从而减少在多个离散计算中的内存移动次数。下图说明了内核融合的思想。它的灵感来自这篇[论文](https://www.arxiv-vanity.com/papers/1305.1183/),该论文详细讨论了这个概念。 + +

    + +

    + +当 f、g 和 h 融合在一个内核中时,f 和 g 的中间结果 x’ 和 y’ 存储在 GPU 寄存器中并立即被 h 使用。但是如果不融合,x’ 和 y’就需要复制到内存中,然后由 h 加载。因此,融合 CUDA 内核显着加快了计算速度。此外,Megatron-LM 还使用 [Apex](https://github.com/NVIDIA/apex) 的 AdamW 融合实现,它比 Pytorch 实现更快。 + +虽然我们可以在 `transformers` 中自定义 Megatron-LM 中的 DataLoader 和 Apex 的融合优化器,但自定义融合 CUDA 内核对新手来说太不友好了。 + +现在你已经熟悉了该框架及其优势,让我们进入训练细节吧! + +## 如何使用 Megatron-LM 框架训练? + +### 环境设置 + +设置环境的最简单方法是从 [NGC](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch) 拉取附带所有所需环境的 NVIDIA PyTorch 容器。有关详细信息,请参阅[文档](https://docs.nvidia.com/deeplearning/frameworks/pytorch-release-notes/index.html)。如果你不想使用此容器,则需要安装最新的 pytorch、cuda、nccl 和 NVIDIA [APEX](https://github.com/NVIDIA/apex#quick-start) 版本和 `nltk` 库。 + +在安装完 Docker 之后,你可以使用以下命令运行容器( `xx.xx` 表示你的 Docker 版本),然后在其中克隆 [Megatron-LM 库](https://github.com/NVIDIA/Megatron-LM): + +```bash +docker run --gpus all -it --rm nvcr.io/nvidia/pytorch:xx.xx-py3 +git clone https://github.com/NVIDIA/Megatron-LM +``` + +你还需要在容器的 Megatron-LM 文件夹中添加分词器的词汇文件 `vocab.json` 和合并表 `merges.txt`。这些文件可以在带有权重的模型仓库中找到,请参阅 [GPT2 库](https://huggingface.co/gpt2/tree/main)。你还可以使用 `transformers` 训练自己的分词器。你可以查看 [CodeParrot 项目](https://github.com/huggingface/transformers/tree/main/examples/research_projects/codeparrot)以获取实际示例。现在,如果你想从容器外部复制这些数据,你可以使用以下命令: + +```bash +sudo docker cp vocab.json CONTAINER_ID:/workspace/Megatron-LM +sudo docker cp merges.txt CONTAINER_ID:/workspace/Megatron-LM +``` + +### 数据预处理 + +在本教程的其余部分,我们将使用 [CodeParrot](https://huggingface.co/codeparrot/codeparrot-small) 模型和数据作为示例。 + +我们需要对预训练数据进行预处理。首先,你需要将其转换为 json 格式,一个 json 的一行包含一个文本样本。如果你正在使用 🤗 [Datasets](https://huggingface.co/docs/datasets/index),这里有一个关于如何做到这一点的例子(请在 Megatron-LM 文件夹中进行这些操作): + +```python +from datasets import load_dataset + +train_data = load_dataset('codeparrot/codeparrot-clean-train', split='train') +train_data.to_json("codeparrot_data.json", lines=True) +``` + +然后使用以下命令将数据 tokenize、shuffle 并处理成二进制格式以进行训练: + +```bash +#if nltk isn't installed +pip install nltk +python tools/preprocess_data.py \ + --input codeparrot_data.json \ + --output-prefix codeparrot \ + --vocab vocab.json \ + --dataset-impl mmap \ + --tokenizer-type GPT2BPETokenizer \ + --merge-file merges.txt \ + --json-keys content \ + --workers 32 \ + --chunk-size 25 \ + --append-eod +``` + +`workers` 和 `chunk_size` 选项指的是预处理中使用的线程数量和分配给每个线程的数据块大小。`dataset-impl` 指的是索引数据集的实现方式,包括 ['lazy', 'cached', 'mmap']。这将输出 `codeparrot_content_document.idx` 和 `codeparrot_content_document.bin` 两个文件用于训练。 + +### 训练 + +你可以使用如下所示配置模型架构和训练参数,或将其放入你将运行的 bash 脚本中。该命令在 8 个 GPU 上参数为 110M 的 CodeParrot 模型进行预训练。请注意,数据默认按 969:30:1 的比例划分为训练/验证/测试集。 + +```bash +GPUS_PER_NODE=8 +MASTER_ADDR=localhost +MASTER_PORT=6001 +NNODES=1 +NODE_RANK=0 +WORLD_SIZE=$(($GPUS_PER_NODE*$NNODES)) +DISTRIBUTED_ARGS="--nproc_per_node $GPUS_PER_NODE --nnodes $NNODES --node_rank $NODE_RANK --master_addr $MASTER_ADDR --master_port $MASTER_PORT" +CHECKPOINT_PATH=/workspace/Megatron-LM/experiments/codeparrot-small +VOCAB_FILE=vocab.json +MERGE_FILE=merges.txt +DATA_PATH=codeparrot_content_document +GPT_ARGS="--num-layers 12 +--hidden-size 768 +--num-attention-heads 12 +--seq-length 1024 +--max-position-embeddings 1024 +--micro-batch-size 12 +--global-batch-size 192 +--lr 0.0005 +--train-iters 150000 +--lr-decay-iters 150000 +--lr-decay-style cosine +--lr-warmup-iters 2000 +--weight-decay .1 +--adam-beta2 .999 +--fp16 +--log-interval 10 +--save-interval 2000 +--eval-interval 200 +--eval-iters 10 +" +TENSORBOARD_ARGS="--tensorboard-dir experiments/tensorboard" +python3 -m torch.distributed.launch $DISTRIBUTED_ARGS \ + pretrain_gpt.py \ + --tensor-model-parallel-size 1 \ + --pipeline-model-parallel-size 1 \ + $GPT_ARGS \ + --vocab-file $VOCAB_FILE \ + --merge-file $MERGE_FILE \ + --save $CHECKPOINT_PATH \ + --load $CHECKPOINT_PATH \ + --data-path $DATA_PATH \ + $TENSORBOARD_ARGS +``` + +使用以上设置,训练大约需要 12 个小时。 + +该设置使用数据并行,但也可以对无法放在单个 GPU 的超大模型使用模型并行。第一种选择是设置张量并行,它将模型中的张量拆分到多个 GPU 上并行运算,你需要将 `tensor-model-parallel-size` 参数更改为所需的 GPU 数量。第二种选择是流水线并行,它将模型按层分成大小相等的几块。参数 `pipeline-model-parallel-size` 表示将模型分成的块数。有关详细信息,请参阅此[博客](https://huggingface.co/blog/bloom-megatron-deepspeed) + +### 将模型转换为 🤗 Transformers + +训练结束后,我们希望使用 `transformers` 库对该模型进行评估或将其部署到生产环境中。你可以按照[教程](https://huggingface.co/nvidia/megatron-gpt2-345m)将其转换为 `transformers` 模型。例如,在训练完成后,你可以复制第 150k 次迭代的权重,并使用以下命令将文件 `model_optim_rng.pt` 转换为 `transformers` 支持的 `pytorch_model.bin` 文件: + +```bash +# to execute outside the container: +mkdir -p nvidia/megatron-codeparrot-small +# copy the weights from the container +sudo docker cp CONTAINER_ID:/workspace/Megatron-LM/experiments/codeparrot-small/iter_0150000/mp_rank_00/model_optim_rng.pt nvidia/megatron-codeparrot-small +git clone https://github.com/huggingface/transformers.git +git clone https://github.com/NVIDIA/Megatron-LM.git +export PYTHONPATH=Megatron-LM +python transformers/src/transformers/models/megatron_gpt2/convert_megatron_gpt2_checkpoint.py nvidia/megatron-codeparrot-small/model_optim_rng.pt +``` + +请注意,如果你打算使用原始的分词器,你将需要在转换后将生成的词汇文件和合并表替换为我们之前介绍的原始文件。 + +不要忘记将你的模型推送到 hub 并与社区分享,只需三行代码 🤗: + +```python +from transformers import AutoModelForCausalLM + +model = AutoModelForCausalLM.from_pretrained("nvidia/megatron-codeparrot-small") +# this creates a repository under your username with the model name codeparrot-small +model.push_to_hub("codeparrot-small") +``` + +你还可以轻松地使用它来生成文本: + +```python +from transformers import pipeline + +pipe = pipeline("text-generation", model="your_username/codeparrot-small") +outputs = pipe("def hello_world():") +print(outputs[0]["generated_text"]) +``` + +``` + def hello_world(): + print("Hello World!") +``` + +Transformers 还可以有效地处理大模型推理。如果你训练了一个非常大的模型(例如训练时使用了模型并行),你可以通过以下命令轻松地进行推理: + +```python +from transformers import AutoModelForCausalLM + +model = AutoModelForCausalLM.from_pretrained("your_username/codeparrot-large", device_map="auto") +``` + +这将在内部调用 [accelerate 库](https://huggingface.co/docs/accelerate/index)自动在你可用的设备(GPU、CPU RAM)之间分配模型权重。 + +免责声明:我们已经证明任何人都可以使用 Megatron-LM 来训练语言模型。问题是我们需要考虑什么时候使用它。由于额外的预处理和转换步骤,这个框架显然增加了一些时间开销。因此,重要的是你要考虑哪个框架更适合你的需求和模型大小。我们建议将其用于预训练模型或微调,但可能不适用于中型模型的微调。`APITrainer` 和 `accelerate` 库对于模型训练同样也非常方便,并且它们与设备无关,为用户提供了极大的灵活性。 + +恭喜 🎉 现在你学会了如何在 Megatron-LM 框架中训练 GPT2 模型并使其支持 `transformers`! From 5bf4ce407d7589fc8a956bad3b5b66116713e794 Mon Sep 17 00:00:00 2001 From: Zhongdong Yang Date: Thu, 25 May 2023 17:55:33 +0800 Subject: [PATCH 43/55] Update: proofreading zh/assisted-generation --- zh/_blog.yml | 9 ++++ zh/assisted-generation.md | 93 ++++++++++++++++++--------------------- 2 files changed, 53 insertions(+), 49 deletions(-) diff --git a/zh/_blog.yml b/zh/_blog.yml index aeb4ba845a..f2948cf1e0 100644 --- a/zh/_blog.yml +++ b/zh/_blog.yml @@ -504,6 +504,15 @@ - nlp - community - research + +- local: assisted-generation + title: "辅助生成:低延迟文本生成的新方向" + author: joaogante + thumbnail: /blog/assets/assisted-generation/thumbnail.png + date: May 11, 2023 + tags: + - nlp + - research - local: generative-ai-models-on-intel-cpu title: "越小越好:Q8-Chat,在英特尔至强 CPU 上体验高效的生成式 AI" diff --git a/zh/assisted-generation.md b/zh/assisted-generation.md index 74d01969ca..37bf2a6268 100644 --- a/zh/assisted-generation.md +++ b/zh/assisted-generation.md @@ -5,24 +5,24 @@ authors: - user: joaogante translators: - user: gxy-gxy +- user: zhongdongy + proofreader: true --- -# 辅助生成:低延迟文本生成的新方向 - +# 辅助生成: 低延迟文本生成的新方向 + -大型语言模型如今风靡一时,许多公司投入大量资源来扩展它们规模并解锁新功能。然而,作为注意力持续时间不断缩短的人类,我们并不喜欢大模型缓慢的响应时间。由于延迟对于良好的用户体验至关重要,人们通常使用较小的模型来完成任务,尽管它们的质量较低(例如[代码补全任务](https://ai.googleblog.com/2022/07/ml-enhanced-code-completion-improves.html))。 +大型语言模型如今风靡一时,许多公司投入大量资源来扩展它们规模并解锁新功能。然而,作为注意力持续时间不断缩短的人类,我们并不喜欢大模型缓慢的响应时间。由于延迟对于良好的用户体验至关重要,人们通常使用较小的模型来完成任务,尽管它们的质量较低 (例如 [代码补全任务](https://ai.googleblog.com/2022/07/ml-enhanced-code-completion-improves.html))。 为什么文本生成这么慢?是什么阻止你在不破产的情况下部署低延迟大型语言模型?在这篇博文中,我们将重新审视自回归文本生成的瓶颈,并介绍一种新的解码方法来解决延迟问题。你会发现,通过使用我们的新的辅助生成方法,你可以将硬件中的延迟降低多达 10 倍! - ## 理解文本生成延迟 -文本生成的核心很容易理解。让我们看看核心部分(即 ML 模型),它的输入包含一个文本序列,其中包括到目前为止生成的文本,以及其他特定于模型的组件(例如 Whisper 还有一个音频输入)。该模型接受输入并进行前向传递:输入被喂入模型并一层一层顺序传递,直到预测出下一个 token 的非标准化对数概率(也称为 logits)。一个 token 可能包含整个词、子词,或者是单个字符,这取决于具体模型。如果你想深入了解文本生成的原理,[GPT-2 插图](https://jalammar.github.io/illustrated-gpt2/)是一个很好的参考。 +文本生成的核心很容易理解。让我们看看核心部分 (即 ML 模型),它的输入包含一个文本序列,其中包括到目前为止生成的文本,以及其他特定于模型的组件 (例如 Whisper 还有一个音频输入)。该模型接受输入并进行前向传递: 输入被喂入模型并一层一层顺序传递,直到预测出下一个 token 的非标准化对数概率 (也称为 logits)。一个 token 可能包含整个词、子词,或者是单个字符,这取决于具体模型。如果你想深入了解文本生成的原理,[GPT-2 插图](https://jalammar.github.io/illustrated-gpt2/) 是一个很好的参考。 -
    -模型的前向传递提供了下一个 token 的概率,你可以自由操作(例如,将不需要的单词或序列的概率设置为 0)。文本生成的步骤就是从这些概率中选择下一个 token。常见的策略包括选择最有可能的 token(贪心解码),或从它们的分布中抽样(多项式抽样)。在选择了下一个 token 之后,我们将模型前向传递与下一个 token 迭代地连接起来,继续生成文本。这个解释只是解码方法的冰山一角;请参阅我们[关于文本生成的博客](https://huggingface.co/blog/how-to-generate)以进行深入探索。 +模型的前向传递提供了下一个 token 的概率,你可以自由操作 (例如,将不需要的单词或序列的概率设置为 0)。文本生成的步骤就是从这些概率中选择下一个 token。常见的策略包括选择最有可能的 token (贪心解码),或从它们的分布中抽样 (多项式抽样)。在选择了下一个 token 之后,我们将模型前向传递与下一个 token 迭代地连接起来,继续生成文本。这个解释只是解码方法的冰山一角; 请参阅我们 [关于文本生成的博客](https://huggingface.co/blog/zh/how-to-generate) 以进行深入探索。 -
    -从上面的描述中可以看出,文本生成的延迟瓶颈很明显:运行大型模型的前向传递很慢,你可能需要依次执行数百次迭代。但让我们深入探讨一下:为什么前向传递速度慢?前向传递通常以矩阵乘法为主,通过查阅相应的[维基百科](https://en.wikipedia.org/wiki/Matrix_multiplication_algorithm#Communication-avoiding_and_distributed_algorithms),你可以看出内存带宽是此操作的限制(例如,从 GPU RAM 到 GPU 计算核心)。换句话说,*前向传递的瓶颈来自将模型权重加载到设备的计算核心中,而不是来自执行计算本身*。 +从上面的描述中可以看出,文本生成的延迟瓶颈很明显: 运行大型模型的前向传递很慢,你可能需要依次执行数百次迭代。但让我们深入探讨一下: 为什么前向传递速度慢?前向传递通常以矩阵乘法为主,通过查阅相应的 [维基百科](https://en.wikipedia.org/wiki/Matrix_multiplication_algorithm#Communication-avoiding_and_distributed_algorithms),你可以看出内存带宽是此操作的限制 (例如,从 GPU RAM 到 GPU 计算核心)。换句话说, _前向传递的瓶颈来自将模型权重加载到设备的计算核心中,而不是来自执行计算本身_。 -目前,你可以探索三个主要途径来充分理解文本生成,所有这些途径都用于解决模型前向传递的性能问题。首先,对于特定硬件的模型优化。例如,如果你的设备可能与 [Flash Attention](https://github.com/HazyResearch/flash-attention) 兼容,你可以使用它通可以过重新排序操作或 [INT8 量化](https://huggingface.co/blog/hf-bitsandbytes-integration)来加速注意力层,其减少了模型权重的大小。 +目前,你可以探索三个主要途径来充分理解文本生成,所有这些途径都用于解决模型前向传递的性能问题。首先,对于特定硬件的模型优化。例如,如果你的设备可能与 [Flash Attention](https://github.com/HazyResearch/flash-attention) 兼容,你可以使用它通可以过重新排序操作或 [INT8 量化](https://huggingface.co/blog/zh/hf-bitsandbytes-integration) 来加速注意力层,其减少了模型权重的大小。 -其次,如果你有并发文本生成需求,你可以对输入进行批处理,从而实现较小的延迟损失并大幅增加吞吐量。你可以将模型对于多个输入并行计算,这意味着你将在大致相同的内存带宽负担情况下获得了更多 token。批处理的问题在于你需要额外的设备内存(或在某处卸载内存)。你可以看到像 [FlexGen](https://github.com/FMInference/FlexGen) 这样的项目以延迟为代价来优化吞吐量。 +其次,如果你有并发文本生成需求,你可以对输入进行批处理,从而实现较小的延迟损失并大幅增加吞吐量。你可以将模型对于多个输入并行计算,这意味着你将在大致相同的内存带宽负担情况下获得了更多 token。批处理的问题在于你需要额外的设备内存 (或在某处卸载内存)。你可以看到像 [FlexGen](https://github.com/FMInference/FlexGen) 这样的项目以延迟为代价来优化吞吐量。 ```python # Example showcasing the impact of batched generation. Measurement device: RTX3090 @@ -75,17 +74,17 @@ def print_tokens_per_second(batch_size): cumulative_time += time.time() - start print(f"Tokens per second: {new_tokens * batch_size * 10 / cumulative_time:.1f}") -print_tokens_per_second(1) # Tokens per second: 418.3 -print_tokens_per_second(64) # Tokens per second: 16266.2 (~39x more tokens per second) +print_tokens_per_second(1) # Tokens per second: 418.3 +print_tokens_per_second(64) # Tokens per second: 16266.2 (~39x more tokens per second) ``` -最后,如果你有多个可用设备,你可以使用 [Tensor 并行](https://huggingface.co/docs/transformers/main/en/perf_train_gpu_many#tensor-parallelism)分配工作负载并获得更低的延迟。使用 Tensor 并行,你可以将内存带宽负担分摊到多个设备上,但除了在多个设备运行计算的成本之外,你还需要考虑设备间的通信瓶颈。该方法的收益在很大程度上取决于模型大小:对于可以轻松在单个消费级设备上运行的模型,通常效果并不显著。根据这篇 [DeepSpeed 博客](https://www.microsoft.com/en-us/research/blog/deepspeed-accelerating-large-scale-model-inference-and-training-via-system-optimizations-and-compression/),你会发现你可以将大小为 17B 的模型分布在 4 个 GPU 上,从而将延迟减少 1.5 倍(图 7)。 +最后,如果你有多个可用设备,你可以使用 [Tensor 并行](https://huggingface.co/docs/transformers/main/en/perf_train_gpu_many#tensor-parallelism) 分配工作负载并获得更低的延迟。使用 Tensor 并行,你可以将内存带宽负担分摊到多个设备上,但除了在多个设备运行计算的成本之外,你还需要考虑设备间的通信瓶颈。该方法的收益在很大程度上取决于模型大小: 对于可以轻松在单个消费级设备上运行的模型,通常效果并不显著。根据这篇 [DeepSpeed 博客](https://www.microsoft.com/en-us/research/blog/deepspeed-accelerating-large-scale-model-inference-and-training-via-system-optimizations-and-compression/),你会发现你可以将大小为 17B 的模型分布在 4 个 GPU 上,从而将延迟减少 1.5 倍 (图 7)。 -这三种类型的改进可以串联使用,从而产生[高通量解决方案](https://github.com/huggingface/text-generation-inference)。然而,在应用特定于硬件的优化后,降低延迟的方法有限——并且现有的方法很昂贵。让我们接下来解决这个问题! +这三种类型的改进可以串联使用,从而产生 [高通量解决方案](https://github.com/huggingface/text-generation-inference)。然而,在应用特定于硬件的优化后,降低延迟的方法有限——并且现有的方法很昂贵。让我们接下来解决这个问题! ## 重新回顾语言模型解码器的正向传播 -上文我们讲到,每个模型前向传递都会产生下一个 token 的概率,但这实际上是一个不完整的描述。在文本生成期间,典型的迭代包括模型接收最新生成的 token 作为输入,加上所有其他先前输入的缓存内部计算,再返回下一个 token 得概率。缓存用于避免冗余计算,从而实现更快的前向传递,但它不是强制性的(并且可以设置部分使用)。禁用缓存时,输入包含到目前为止生成的整个 token 序列,输出包含*所有位置*的下一个 token 对应的概率分布!如果输入由前 N 个 token 组成,则第 N 个位置的输出对应于其下一个 token 的概率分布,并且该概率分布忽略了序列中的所有后续 token。在贪心解码的特殊情况下,如果你将生成的序列作为输入传递并将 argmax 运算符应用于生成的概率,你将获得生成的序列。 +上文我们讲到,每个模型前向传递都会产生下一个 token 的概率,但这实际上是一个不完整的描述。在文本生成期间,典型的迭代包括模型接收最新生成的 token 作为输入,加上所有其他先前输入的缓存内部计算,再返回下一个 token 得概率。缓存用于避免冗余计算,从而实现更快的前向传递,但它不是强制性的 (并且可以设置部分使用)。禁用缓存时,输入包含到目前为止生成的整个 token 序列,输出包含 _所有位置_的下一个 token 对应的概率分布!如果输入由前 N 个 token 组成,则第 N 个位置的输出对应于其下一个 token 的概率分布,并且该概率分布忽略了序列中的所有后续 token。在贪心解码的特殊情况下,如果你将生成的序列作为输入传递并将 argmax 运算符应用于生成的概率,你将获得生成的序列。 ```python from transformers import AutoModelForCausalLM, AutoTokenizer @@ -99,13 +98,12 @@ forward_confirmation = model(generated).logits.argmax(-1) # We exclude the opposing tips from each sequence: the forward pass returns # the logits for the next token, so it is shifted by one position. -print(generated[:-1].tolist() == forward_confirmation[1:].tolist()) # True +print(generated[:-1].tolist() == forward_confirmation[1:].tolist()) # True ``` -这意味着你可以将模型前向传递用于不同的目的:除了提供一些 token 来预测下一个标记外,你还可以将序列传递给模型并检查模型是否会生成相同的序列(或部分相同序列)。 +这意味着你可以将模型前向传递用于不同的目的: 除了提供一些 token 来预测下一个标记外,你还可以将序列传递给模型并检查模型是否会生成相同的序列 (或部分相同序列)。 -
    -让我们想象,你可以访问一个神奇的无延迟的预测辅助模型,该模型针对任何给定输入生成与你的模型相同的序列。顺便说一句,这个模型不能直接用,只能辅助你的生成程序。使用上述属性,你可以使用此辅助模型获取候选输出 token,然后使用你的模型进行前向传递以确认它们的正确性。在这个乌托邦式的场景中,文本生成的延迟将从`O(n)`减少到 `O(1)`,其中生成的 token 数量为 `n`。对于需要多次迭代生成的过程,我们谈论的是其数量级。 +让我们想象,你可以访问一个神奇的无延迟的预测辅助模型,该模型针对任何给定输入生成与你的模型相同的序列。顺便说一句,这个模型不能直接用,只能辅助你的生成程序。使用上述属性,你可以使用此辅助模型获取候选输出 token,然后使用你的模型进行前向传递以确认它们的正确性。在这个乌托邦式的场景中,文本生成的延迟将从 `O(n)` 减少到 `O(1)`,其中生成的 token 数量为 `n`。对于需要多次迭代生成的过程,我们谈论的是其数量级。 向现实迈出一步,我们假设辅助模型失去了它的预测属性。根据你的模型,现在它是一个无延迟模型,但它会弄错一些候选 token。由于任务的自回归性质,一旦辅助模型得到一个错误的 token,所有后续候选 token 都必须无效。但是,你可以使用模型更正错误 token 并反复重复此过程后再次查询辅助模型。即使辅助模型失败了几个 token,文本生成的延迟也会比原始形式小得多。 -显然,世界上没有无延迟的辅助模型。然而,找到一个近似于模型的文本生成输出的其它模型相对容易,例如经过类似训练的相同架构的较小版本模型通常符合此需求。当模型大小的差异变得显著时,使用较小的模型作为辅助模型的成本在跳过几个前向传递后就显得无关紧要了!现在,你了解了 _辅助生成_ 的核心。 +显然,世界上没有无延迟的辅助模型。然而,找到一个近似于模型的文本生成输出的其它模型相对容易,例如经过类似训练的相同架构的较小版本模型通常符合此需求。当模型大小的差异变得显著时,使用较小的模型作为辅助模型的成本在跳过几个前向传递后就显得无关紧要了!现在,你了解了 _ 辅助生成 _ 的核心。 ## 使用辅助模型的贪心解码 @@ -128,16 +126,15 @@ print(generated[:-1].tolist() == forward_confirmation[1:].tolist()) # True 最后,启发式。至此,你可能已经注意到电影盗梦空间和辅助生成之间的相似之处——毕竟你是在文本生成中运行文本生成。每个候选 token 有一个辅助模型前向传播,我们知道前向传播是昂贵的。虽然你无法提前知道辅助模型将获得的 token 数量,但你可以跟踪此信息并使用它来限制向辅助模型请求的候选 token 数量——输出的某些部分比其它一些部分更容易被预计。 -总结一下,这是我们最初实现的辅助生成的循环([代码](https://github.com/huggingface/transformers/blob/849367ccf741d8c58aa88ccfe1d52d8636eaf2b7/src/transformers/generation/utils.py#L4064)): +总结一下,这是我们最初实现的辅助生成的循环 ([代码](https://github.com/huggingface/transformers/blob/849367ccf741d8c58aa88ccfe1d52d8636eaf2b7/src/transformers/generation/utils.py#L4064)): -1. 使用贪心解码与辅助模型生成一定数量的`候选 token`。当第一次调用辅助生成时,生成的`候选 token` 的数量被初始化为 `5` 。 +1. 使用贪心解码与辅助模型生成一定数量的`候选 token`。当第一次调用辅助生成时,生成的`候选 token` 的数量被初始化为 `5`。 2. 使用我们的模型,对`候选 token `进行前向计算,获得每个 token 对应的概率。 -3. 使用 token 选择方法(使用`.argmax()`进行贪心搜索或使用 `.multinomial()` 用于采样方法)来从概率中选取 `next_tokens`。 -4. 比较步骤3中选择的 `next_tokens` 和 `候选 token` 中相同的 token 数量。请注意,我们需要从左到右进行比较, 在第一次不匹配后,后续所有 `候选 token`都无效。5. 使用步骤4得到的匹配数量将`候选 token` 分割。也就是,将输入 tokens 加上刚刚验证得到的正确的 tokens。 -6. 调整下一次迭代中生成的`候选 token` 的数量 —— 使用启发式方法,如果步骤3中所有 token 都匹配,则`候选 token` 的长度增加 `2`,否则减少 `1`。 +3. 使用 token 选择方法 (使用`.argmax()` 进行贪心搜索或使用 `.multinomial()` 用于采样方法) 来从概率中选取 `next_tokens`。 +4. 比较步骤 3 中选择的 `next_tokens` 和 `候选 token` 中相同的 token 数量。请注意,我们需要从左到右进行比较, 在第一次不匹配后,后续所有 `候选 token`都无效。5. 使用步骤 4 得到的匹配数量将`候选 token` 分割。也就是,将输入 tokens 加上刚刚验证得到的正确的 tokens。 +5. 调整下一次迭代中生成的`候选 token` 的数量 —— 使用启发式方法,如果步骤 3 中所有 token 都匹配,则`候选 token` 的长度增加 `2`,否则减少 `1`。 -
    -我们在 🤗 Transformers 中设计了API,因此使用该方法对你来说是无痛的。你需要做的就是将辅助模型作为 `assistant_model` 参数传入从而获得延迟收益!我们暂时限制了辅助生成的批量大小为 `1`。 +我们在 🤗 Transformers 中设计了 API,因此使用该方法对你来说是无痛的。你需要做的就是将辅助模型作为 `assistant_model` 参数传入从而获得延迟收益!我们暂时限制了辅助生成的批量大小为 `1`。 ```python from transformers import AutoModelForCausalLM, AutoTokenizer @@ -166,32 +163,31 @@ outputs = model.generate(**inputs, assistant_model=assistant_model) print(tokenizer.batch_decode(outputs, skip_special_tokens=True)) # ['Alice and Bob are sitting in a bar. Alice is drinking a beer and Bob is drinking a'] ``` -额外的内部复杂性是否值得?让我们看一下贪心解码情况下的延迟数(采样结果在下一节)。考虑批量大小为1,这些结果是直接从 🤗 Transformers 中提取的,没有任何额外的优化,因此你应该能够在你的设置中复现它们。 - +额外的内部复杂性是否值得?让我们看一下贪心解码情况下的延迟数 (采样结果在下一节)。考虑批量大小为 1,这些结果是直接从 🤗 Transformers 中提取的,没有任何额外的优化,因此你应该能够在你的设置中复现它们。 + -`` + -通过观察收集到的数据,我们发现辅助生成可以在不同的设置中显著减少延迟,但这不是灵丹妙药——你应该在应用之前对其进行系统的评估以清晰使用该方法的代价。对于辅助生成方法,我们可以得出结论: +通过观察收集到的数据,我们发现辅助生成可以在不同的设置中显著减少延迟,但这不是灵丹妙药——你应该在应用之前对其进行系统的评估以清晰使用该方法的代价。对于辅助生成方法,我们可以得出结论: -1. 🤏 需要访问至少比你的模型小一个数量级的辅助模型(差异越大越好); -2. 🚀 在存在 INT8 的情况下获得高达 3 倍的加速,否则能够达到 2 倍的加速; -3. 🤯 如果你正在使用不适合你的模型的 GPU 并且依赖于内存卸载的模型,你可以看到高达 10 倍的加速; +1. 🤏 需要访问至少比你的模型小一个数量级的辅助模型 (差异越大越好) ; +2. 🚀 在存在 INT8 的情况下获得高达 3 倍的加速,否则能够达到 2 倍的加速; +3. 🤯 如果你正在使用不适合你的模型的 GPU 并且依赖于内存卸载的模型,你可以看到高达 10 倍的加速; 4. 📄 在输入驱动任务中大放异彩,例如自动语音识别或摘要。 ## 辅助生成的采样方法 -贪心解码适用于以输入为基础的任务(自动语音识别、翻译、摘要……)或事实知识寻求。对于需要大量创造力的开放式任务,例如使用语言模型作为聊天机器人的大多数任务,应该改用采样方法。虽然辅助生成方法是为贪心解码而设计的,但这并不意味着你不能使用多项式采样进行辅助生成! +贪心解码适用于以输入为基础的任务 (自动语音识别、翻译、摘要……) 或事实知识寻求。对于需要大量创造力的开放式任务,例如使用语言模型作为聊天机器人的大多数任务,应该改用采样方法。虽然辅助生成方法是为贪心解码而设计的,但这并不意味着你不能使用多项式采样进行辅助生成! 从 `next token` 的概率分布中抽取样本将导致我们的基于贪心的辅助生产更频繁地失败,从而降低其延迟优势。但是,我们可以使用采样中的温度系数来控制下一个标记的概率分布有多尖锐。在一种极端情况下,当温度接近 0 时,采样将近似于贪心解码,有利于最有可能的 token。在另一个极端,当温度设置为远大于 1 的值时,采样将是混乱的,从均匀分布中抽取。因此,低温对你的辅助模型更有利,能够保留辅助生成的大部分延迟优势,如下所示。 -
    @@ -199,8 +195,7 @@ print(tokenizer.batch_decode(outputs, skip_special_tokens=True)) 不妨亲眼看一看,感受一下辅助生成的魅力? - -`` + ## 未来发展方向 @@ -208,28 +203,28 @@ print(tokenizer.batch_decode(outputs, skip_special_tokens=True)) 该方法最初在我们的 🤗 Transformers 库下发布,用于 `.generate()` 函数,我们预期将其纳入整个 Hugging Face 宇宙。它的实现也是完全开源的。因此,如果你正在进行文本生成而没有使用我们的工具,你可以随时将其作为参考。 -最后,辅助生成重新提出了文本生成中的一个关键问题:模型中所有新 token 都是给定模型以自回归方式计算的结果,同质地前向传递每一个 token。这篇博文提出了这样的想法:生成的大部分序列也可以由小尺寸的模型同样生成。为此,我们需要新的模型架构和解码方法——我们很高兴看到未来会带来什么! +最后,辅助生成重新提出了文本生成中的一个关键问题: 模型中所有新 token 都是给定模型以自回归方式计算的结果,同质地前向传递每一个 token。这篇博文提出了这样的想法: 生成的大部分序列也可以由小尺寸的模型同样生成。为此,我们需要新的模型架构和解码方法——我们很高兴看到未来会带来什么! ## 相关工作 -在这篇博文最初发布后,我注意到其他作品也探索了相同的核心原则(使用前向传递来验证更长的连续性)。特别地,请看以下作品: +在这篇博文最初发布后,我注意到其他作品也探索了相同的核心原则 (使用前向传递来验证更长的连续性)。特别地,请看以下作品: -- [分块并行解码](https://proceedings.neurips.cc/paper/2018/file/c4127b9194fe8562c64dc0f5bf2c93bc-Paper.pdf), 来自 Google Brain +- [分块并行解码](https://proceedings.neurips.cc/paper/2018/file/c4127b9194fe8562c64dc0f5bf2c93bc-Paper.pdf), 来自 Google Brain - [推测性采样](https://arxiv.org/abs/2302.01318), 来自 DeepMind ## Citation ```bibtex @misc {gante2023assisted, - author = { {Joao Gante} }, - title = { Assisted Generation: a new direction toward low-latency text generation }, - year = 2023, - url = { https://huggingface.co/blog/assisted-generation }, - doi = { 10.57967/hf/0638 }, - publisher = { Hugging Face Blog } + author = { {Joao Gante} }, + title = { Assisted Generation: a new direction toward low-latency text generation }, + year = 2023, + url = { https://huggingface.co/blog/assisted-generation }, + doi = { 10.57967/hf/0638 }, + publisher = { Hugging Face Blog } } ``` ## 致谢 -我要感谢 Sylvain Gugger、Nicolas Patry 和 Lewis Tunstall 分享了许多宝贵的建议来改进这篇博文。最后,感谢 Chunte Lee 设计了精美的封面,你可以在我们的网页上看到。 +我要感谢 Sylvain Gugger、Nicolas Patry 和 Lewis Tunstall 分享了许多宝贵的建议来改进这篇博文。最后,感谢 Chunte Lee 设计了精美的封面,你可以在我们的网页上看到。 \ No newline at end of file From 0d2fe467f6146ab1dfca74ee7a57c21965ef97a0 Mon Sep 17 00:00:00 2001 From: Zhongdong Yang Date: Mon, 29 May 2023 17:42:32 +0800 Subject: [PATCH 44/55] Update: proofread zh/megatron-training.md --- zh/_blog.yml | 9 +++++++ zh/megatron-training.md | 58 +++++++++++++++++++++-------------------- 2 files changed, 39 insertions(+), 28 deletions(-) diff --git a/zh/_blog.yml b/zh/_blog.yml index f2948cf1e0..cf10934d93 100644 --- a/zh/_blog.yml +++ b/zh/_blog.yml @@ -35,6 +35,15 @@ - llm - quantization +- local: megatron-training + title: "如何使用 Megatron-LM 训练语言模型" + author: loubnabnl + thumbnail: /blog/assets/100_megatron_training/thumbnail.png + date: September 7, 2022 + tags: + - guide + - nlp + - local: bloom-inference-pytorch-scripts title: "使用 DeepSpeed 和 Accelerate 进行超快 BLOOM 模型推理" author: stas diff --git a/zh/megatron-training.md b/zh/megatron-training.md index f707f93de3..fae6496aae 100644 --- a/zh/megatron-training.md +++ b/zh/megatron-training.md @@ -5,27 +5,29 @@ authors: - user: loubnabnl translators: - user: gxy-gxy +- user: zhongdongy + proofreader: true --- +

    如何使用 Megatron-LM 训练语言模型

    - -在 Pytorch 中训练大语言模型不仅仅是写一个训练循环这么简单。我们通常需要将模型分布在多个设备上,并使用许多优化技术以实现稳定高效的训练。Hugging Face 🤗 [Accelerate](https://huggingface.co/docs/accelerate/index) 的创建是为了支持跨 GPU 和 TPU 的分布式训练,并使其能够非常容易的集成到训练代码中。🤗 [Transformers](https://huggingface.co/docs/transformers/index) 还支持使用 [Trainer](https://huggingface.co/docs/transformers/main_classes/trainer#transformers.Trainer) API来训练,其在Pytorch中提供功能完整的训练接口,甚至不需要自己编写训练的代码。 +在 PyTorch 中训练大语言模型不仅仅是写一个训练循环这么简单。我们通常需要将模型分布在多个设备上,并使用许多优化技术以实现稳定高效的训练。Hugging Face 🤗 [Accelerate](https://huggingface.co/docs/accelerate/index) 的创建是为了支持跨 GPU 和 TPU 的分布式训练,并使其能够非常容易的集成到训练代码中。🤗 [Transformers](https://huggingface.co/docs/transformers/index) 还支持使用 [Trainer](https://huggingface.co/docs/transformers/main_classes/trainer#transformers.Trainer) API 来训练,其在 PyTorch 中提供功能完整的训练接口,甚至不需要自己编写训练的代码。 -[Megatron-LM](https://github.com/NVIDIA/Megatron-LM) 是研究人员用于预训练大型Transformer模型的另一个流行工具,它是 NVIDIA 应用深度学习研究团队开发的一个强大框架。与 `accelerate` 和 `Trainer`不同,Megatron-LM 使用起来并不简单,对于初学者来说可能难以上手。但它针对 GPU 上的训练进行了高度优化。在这篇文章中,你将学习如何使用 Megatron-LM 框架在 NVIDIA GPU 上训练语言模型,并将其与 `transformers`结合。 +[Megatron-LM](https://github.com/NVIDIA/Megatron-LM) 是研究人员用于预训练大型 Transformer 模型的另一个流行工具,它是 NVIDIA 应用深度学习研究团队开发的一个强大框架。与 `accelerate` 和 `Trainer` 不同,Megatron-LM 使用起来并不简单,对于初学者来说可能难以上手。但它针对 GPU 上的训练进行了高度优化。在这篇文章中,你将学习如何使用 Megatron-LM 框架在 NVIDIA GPU 上训练语言模型,并将其与 `transformers` 结合。 -我们将分解在此框架中训练 GPT2 模型的不同步骤,包括: +我们将分解在此框架中训练 GPT2 模型的不同步骤,包括: -* 环境设置 -* 数据预处理 -* 训练 -* 将模型转化为🤗 Transformers +- 环境设置 +- 数据预处理 +- 训练 +- 将模型转化为 🤗 Transformers ## 为什么选择 Megatron-LM? -在进入训练细节的讲解之前,让我们首先了解是什么让这个框架比其他框架更高效。本节的灵感来自这篇关于使用 [Megatron-DeepSpeed](https://github.com/bigscience-workshop/Megatron-DeepSpeed) 进行 BLOOM 训练的精彩[博客](https://huggingface.co/blog/bloom-megatron-deepspeed),请参阅该博客以获取更多详细信息,因为该博客旨在对 Megatron-LM 进行详细的介绍。 +在进入训练细节的讲解之前,让我们首先了解是什么让这个框架比其他框架更高效。本节的灵感来自这篇关于使用 [Megatron-DeepSpeed](https://github.com/bigscience-workshop/Megatron-DeepSpeed) 进行 BLOOM 训练的精彩 [博客](https://huggingface.co/blog/zh/bloom-megatron-deepspeed),请参阅该博客以获取更多详细信息,因为该博客旨在对 Megatron-LM 进行详细的介绍。 ### 数据加载 @@ -33,13 +35,13 @@ Megatron-LM 带有一个高效的 DataLoader,其中数据在训练前被 token ### 融合 CUDA 内核 -当一个计算在GPU上运行时,必要的数据会从内存中取出并加载到GPU上,然后计算结果被保存回内存。简单来说,融合内核的思想是:将通常由 Pytorch 单独执行的类似操作组合成一个单独的硬件操作。因此可以将多个离散计算合并为一个,从而减少在多个离散计算中的内存移动次数。下图说明了内核融合的思想。它的灵感来自这篇[论文](https://www.arxiv-vanity.com/papers/1305.1183/),该论文详细讨论了这个概念。 +当一个计算在 GPU 上运行时,必要的数据会从内存中取出并加载到 GPU 上,然后计算结果被保存回内存。简单来说,融合内核的思想是: 将通常由 PyTorch 单独执行的类似操作组合成一个单独的硬件操作。因此可以将多个离散计算合并为一个,从而减少在多个离散计算中的内存移动次数。下图说明了内核融合的思想。它的灵感来自这篇 [论文](https://www.arxiv-vanity.com/papers/1305.1183/),该论文详细讨论了这个概念。

    - +

    -当 f、g 和 h 融合在一个内核中时,f 和 g 的中间结果 x’ 和 y’ 存储在 GPU 寄存器中并立即被 h 使用。但是如果不融合,x’ 和 y’就需要复制到内存中,然后由 h 加载。因此,融合 CUDA 内核显着加快了计算速度。此外,Megatron-LM 还使用 [Apex](https://github.com/NVIDIA/apex) 的 AdamW 融合实现,它比 Pytorch 实现更快。 +当 f、g 和 h 融合在一个内核中时,f 和 g 的中间结果 x' 和 y' 存储在 GPU 寄存器中并立即被 h 使用。但是如果不融合,x' 和 y' 就需要复制到内存中,然后由 h 加载。因此,融合 CUDA 内核显着加快了计算速度。此外,Megatron-LM 还使用 [Apex](https://github.com/NVIDIA/apex) 的 AdamW 融合实现,它比 PyTorch 实现更快。 虽然我们可以在 `transformers` 中自定义 Megatron-LM 中的 DataLoader 和 Apex 的融合优化器,但自定义融合 CUDA 内核对新手来说太不友好了。 @@ -49,16 +51,16 @@ Megatron-LM 带有一个高效的 DataLoader,其中数据在训练前被 token ### 环境设置 -设置环境的最简单方法是从 [NGC](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch) 拉取附带所有所需环境的 NVIDIA PyTorch 容器。有关详细信息,请参阅[文档](https://docs.nvidia.com/deeplearning/frameworks/pytorch-release-notes/index.html)。如果你不想使用此容器,则需要安装最新的 pytorch、cuda、nccl 和 NVIDIA [APEX](https://github.com/NVIDIA/apex#quick-start) 版本和 `nltk` 库。 +设置环境的最简单方法是从 [NGC](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch) 拉取附带所有所需环境的 NVIDIA PyTorch 容器。有关详细信息,请参阅 [文档](https://docs.nvidia.com/deeplearning/frameworks/pytorch-release-notes/index.html)。如果你不想使用此容器,则需要安装最新的 pytorch、cuda、nccl 和 NVIDIA [APEX](https://github.com/NVIDIA/apex#quick-start) 版本和 `nltk` 库。 -在安装完 Docker 之后,你可以使用以下命令运行容器( `xx.xx` 表示你的 Docker 版本),然后在其中克隆 [Megatron-LM 库](https://github.com/NVIDIA/Megatron-LM): +在安装完 Docker 之后,你可以使用以下命令运行容器 (`xx.xx` 表示你的 Docker 版本),然后在其中克隆 [Megatron-LM 库](https://github.com/NVIDIA/Megatron-LM): ```bash docker run --gpus all -it --rm nvcr.io/nvidia/pytorch:xx.xx-py3 git clone https://github.com/NVIDIA/Megatron-LM ``` -你还需要在容器的 Megatron-LM 文件夹中添加分词器的词汇文件 `vocab.json` 和合并表 `merges.txt`。这些文件可以在带有权重的模型仓库中找到,请参阅 [GPT2 库](https://huggingface.co/gpt2/tree/main)。你还可以使用 `transformers` 训练自己的分词器。你可以查看 [CodeParrot 项目](https://github.com/huggingface/transformers/tree/main/examples/research_projects/codeparrot)以获取实际示例。现在,如果你想从容器外部复制这些数据,你可以使用以下命令: +你还需要在容器的 Megatron-LM 文件夹中添加分词器的词汇文件 `vocab.json` 和合并表 `merges.txt`。这些文件可以在带有权重的模型仓库中找到,请参阅 [GPT2 库](https://huggingface.co/gpt2/tree/main)。你还可以使用 `transformers` 训练自己的分词器。你可以查看 [CodeParrot 项目](https://github.com/huggingface/transformers/tree/main/examples/research_projects/codeparrot) 以获取实际示例。现在,如果你想从容器外部复制这些数据,你可以使用以下命令: ```bash sudo docker cp vocab.json CONTAINER_ID:/workspace/Megatron-LM @@ -69,16 +71,16 @@ sudo docker cp merges.txt CONTAINER_ID:/workspace/Megatron-LM 在本教程的其余部分,我们将使用 [CodeParrot](https://huggingface.co/codeparrot/codeparrot-small) 模型和数据作为示例。 -我们需要对预训练数据进行预处理。首先,你需要将其转换为 json 格式,一个 json 的一行包含一个文本样本。如果你正在使用 🤗 [Datasets](https://huggingface.co/docs/datasets/index),这里有一个关于如何做到这一点的例子(请在 Megatron-LM 文件夹中进行这些操作): +我们需要对预训练数据进行预处理。首先,你需要将其转换为 json 格式,一个 json 的一行包含一个文本样本。如果你正在使用 🤗 [Datasets](https://huggingface.co/docs/datasets/index),这里有一个关于如何做到这一点的例子 (请在 Megatron-LM 文件夹中进行这些操作): ```python from datasets import load_dataset train_data = load_dataset('codeparrot/codeparrot-clean-train', split='train') -train_data.to_json("codeparrot_data.json", lines=True) +train_data.to_json("codeparrot_data.json", lines=True) ``` -然后使用以下命令将数据 tokenize、shuffle 并处理成二进制格式以进行训练: +然后使用以下命令将数据 tokenize、shuffle 并处理成二进制格式以进行训练: ```bash #if nltk isn't installed @@ -96,7 +98,7 @@ python tools/preprocess_data.py \ --append-eod ``` -`workers` 和 `chunk_size` 选项指的是预处理中使用的线程数量和分配给每个线程的数据块大小。`dataset-impl` 指的是索引数据集的实现方式,包括 ['lazy', 'cached', 'mmap']。这将输出 `codeparrot_content_document.idx` 和 `codeparrot_content_document.bin` 两个文件用于训练。 +`workers` 和 `chunk_size` 选项指的是预处理中使用的线程数量和分配给每个线程的数据块大小。`dataset-impl` 指的是索引数据集的实现方式,包括 ['lazy', 'cached', 'mmap']。这将输出 `codeparrot_content_document.idx` 和 `codeparrot_content_document.bin` 两个文件用于训练。 ### 训练 @@ -150,11 +152,11 @@ python3 -m torch.distributed.launch $DISTRIBUTED_ARGS \ 使用以上设置,训练大约需要 12 个小时。 -该设置使用数据并行,但也可以对无法放在单个 GPU 的超大模型使用模型并行。第一种选择是设置张量并行,它将模型中的张量拆分到多个 GPU 上并行运算,你需要将 `tensor-model-parallel-size` 参数更改为所需的 GPU 数量。第二种选择是流水线并行,它将模型按层分成大小相等的几块。参数 `pipeline-model-parallel-size` 表示将模型分成的块数。有关详细信息,请参阅此[博客](https://huggingface.co/blog/bloom-megatron-deepspeed) +该设置使用数据并行,但也可以对无法放在单个 GPU 的超大模型使用模型并行。第一种选择是设置张量并行,它将模型中的张量拆分到多个 GPU 上并行运算,你需要将 `tensor-model-parallel-size` 参数更改为所需的 GPU 数量。第二种选择是流水线并行,它将模型按层分成大小相等的几块。参数 `pipeline-model-parallel-size` 表示将模型分成的块数。有关详细信息,请参阅此 [博客](https://huggingface.co/blog/zh/bloom-megatron-deepspeed) ### 将模型转换为 🤗 Transformers -训练结束后,我们希望使用 `transformers` 库对该模型进行评估或将其部署到生产环境中。你可以按照[教程](https://huggingface.co/nvidia/megatron-gpt2-345m)将其转换为 `transformers` 模型。例如,在训练完成后,你可以复制第 150k 次迭代的权重,并使用以下命令将文件 `model_optim_rng.pt` 转换为 `transformers` 支持的 `pytorch_model.bin` 文件: +训练结束后,我们希望使用 `transformers` 库对该模型进行评估或将其部署到生产环境中。你可以按照 [教程](https://huggingface.co/nvidia/megatron-gpt2-345m) 将其转换为 `transformers` 模型。例如,在训练完成后,你可以复制第 150k 次迭代的权重,并使用以下命令将文件 `model_optim_rng.pt` 转换为 `transformers` 支持的 `pytorch_model.bin` 文件: ```bash # to execute outside the container: @@ -169,7 +171,7 @@ python transformers/src/transformers/models/megatron_gpt2/convert_megatron_gpt2_ 请注意,如果你打算使用原始的分词器,你将需要在转换后将生成的词汇文件和合并表替换为我们之前介绍的原始文件。 -不要忘记将你的模型推送到 hub 并与社区分享,只需三行代码 🤗: +不要忘记将你的模型推送到 hub 并与社区分享,只需三行代码 🤗: ```python from transformers import AutoModelForCausalLM @@ -179,7 +181,7 @@ model = AutoModelForCausalLM.from_pretrained("nvidia/megatron-codeparrot-small") model.push_to_hub("codeparrot-small") ``` -你还可以轻松地使用它来生成文本: +你还可以轻松地使用它来生成文本: ```python from transformers import pipeline @@ -190,11 +192,11 @@ print(outputs[0]["generated_text"]) ``` ``` - def hello_world(): + def hello_world(): print("Hello World!") ``` -Transformers 还可以有效地处理大模型推理。如果你训练了一个非常大的模型(例如训练时使用了模型并行),你可以通过以下命令轻松地进行推理: +Transformers 还可以有效地处理大模型推理。如果你训练了一个非常大的模型 (例如训练时使用了模型并行),你可以通过以下命令轻松地进行推理: ```python from transformers import AutoModelForCausalLM @@ -202,8 +204,8 @@ from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_pretrained("your_username/codeparrot-large", device_map="auto") ``` -这将在内部调用 [accelerate 库](https://huggingface.co/docs/accelerate/index)自动在你可用的设备(GPU、CPU RAM)之间分配模型权重。 +这将在内部调用 [accelerate 库](https://huggingface.co/docs/accelerate/index) 自动在你可用的设备 (GPU、CPU RAM) 之间分配模型权重。 -免责声明:我们已经证明任何人都可以使用 Megatron-LM 来训练语言模型。问题是我们需要考虑什么时候使用它。由于额外的预处理和转换步骤,这个框架显然增加了一些时间开销。因此,重要的是你要考虑哪个框架更适合你的需求和模型大小。我们建议将其用于预训练模型或微调,但可能不适用于中型模型的微调。`APITrainer` 和 `accelerate` 库对于模型训练同样也非常方便,并且它们与设备无关,为用户提供了极大的灵活性。 +免责声明: 我们已经证明任何人都可以使用 Megatron-LM 来训练语言模型。问题是我们需要考虑什么时候使用它。由于额外的预处理和转换步骤,这个框架显然增加了一些时间开销。因此,重要的是你要考虑哪个框架更适合你的需求和模型大小。我们建议将其用于预训练模型或微调,但可能不适用于中型模型的微调。 `APITrainer` 和 `accelerate` 库对于模型训练同样也非常方便,并且它们与设备无关,为用户提供了极大的灵活性。 -恭喜 🎉 现在你学会了如何在 Megatron-LM 框架中训练 GPT2 模型并使其支持 `transformers`! +恭喜 🎉 现在你学会了如何在 Megatron-LM 框架中训练 GPT2 模型并使其支持 `transformers`! \ No newline at end of file From fb7a8bde7d01fd2bba79ba177aa28471f13d32a1 Mon Sep 17 00:00:00 2001 From: SuSung <872414318@qq.com> Date: Tue, 30 May 2023 17:40:53 +0800 Subject: [PATCH 45/55] rwkv model blog translation completed (#12) * rwkv model blog translation completed * add 3 additional parts in the blog tail --- zh/rwkv.md | 191 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 zh/rwkv.md diff --git a/zh/rwkv.md b/zh/rwkv.md new file mode 100644 index 0000000000..cf6cc8eaf4 --- /dev/null +++ b/zh/rwkv.md @@ -0,0 +1,191 @@ +--- +title: "RWKV -- transformer 与 RNN 的强强联合" +thumbnail: /blog/assets/142_rwkv/rwkv_thumbnail.png +authors: +- user: BLinkDL +- user: Hazzzardous +- user: sgugger +- user: RWKV +translators: +- user: SuSung-boy +--- + +# RWKV -- transformer 与 RNN 的强强联合 + + + + +在 NLP(Natural Language Processing, 自然语言处理)领域,ChatGPT 和其他的聊天机器人应用引起了极大的关注。每个社区为构建自己的应用,也都在持续地寻求强大、可靠的开源模型。自 Vaswani 等人于 2017 年首次提出 [Attention Is All You Need](https://arxiv.org/abs/1706.03762) 之后,基于 transformer 的强大的模型一直在不断地涌现,它们在 NLP 相关任务上的表现远远超过基于 RNN(Recurrent Neural Networks, 递归神经网络)的 SoTA 模型,甚至多数认为 RNN 已死。而本文将介绍一个集 RNN 和 transformer 两者的优势于一身的全新网络架构--RWKV!现已在 HuggingFace [transformers](https://github.com/huggingface/transformers) 库中支持。 + +### RWKV 项目概览 + +RWKV 项目已经启动,由 [Bo Peng](https://github.com/BlinkDL) 主导、贡献和维护。同时项目成员在官方 Discord 也开设了不同主题的讨论频道:如性能(RWKV.cpp、量化等),扩展性(数据集收集和处理),相关研究(chat 微调、多模态微调等)。该项目中训练 RWKV 模型所需的 GPU 资源由 Stability AI 提供。 + +读者可以加入 [官方 discord 频道](https://discordapp.com/users/468093332535640064) 了解详情或者参与讨论。如想了解 RWKV 背后的思想,可以参考这两篇博文: + +- https://johanwind.github.io/2023/03/23/rwkv_overview.html +- https://johanwind.github.io/2023/03/23/rwkv_details.html + +### Transformer 与 RNN 架构对比 + +RNN 架构是最早广泛用于处理序列数据的神经网络架构之一。与接收固定输入尺寸的经典架构不同,RNN 接收当前时刻的 “token” (即数据流中的当前数据点) 和先前时刻的 “状态” 作为输入,通过网络预测输出下一时刻的 “token” 和 “状态”,同时输出的 “状态” 还能继续用到后续的预测中去,一直到序列末尾。RNN 还可以用于不同的 “模式”,适用于多种不同的场景。参考 [Andrej Karpathy 的博客](https://karpathy.github.io/2015/05/21/rnn-effectiveness/),RNN 可以用于:一对一(图像分类),一对多(图像描述),多对一(序列分类),多对多(序列生成),等等。 + +| ![rnn_diagram](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/142_rwkv/RNN-scheme.png) | +|:--:| +| RNN 在不同场景下 RNN 的网络配置简图。图片来源:
    Andrej Karpathy 的博文 | + +由于 RNN 在计算每一时刻的预测值时使用的都是同一组网络权重,因此 RNN 很难解决长距离序列信息的记忆问题,这一定程度上也是训练过程中梯度消失导致的。为解决这个问题,相继有新的网络架构被提出,如 LSTM 或者 GRU,其中 transformer 是已被证实最有效的架构。 + +在 transformer 架构中,不同时刻的输入 token 可以在 self-attention 模块中并行处理。首先 token 经过 Q、K、V 权重矩阵做线性变换投影到不同的空间,得到的 Q、K 矩阵用于计算注意力分数(通过 softmax,如下图所示),然后乘以 V 的隐状态得到最终的隐状态,这种架构设计可以有效缓解长距离序列问题,同时具有比 RNN 更快的训练和推理速度。 + +| ![transformer_diagram](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/142_rwkv/transformer-scheme.png) | +|:--:| +| transformer 模型中的注意力分数计算公式。图片来源:Jay Alammar 的博文 | + +| ![rwkv_attention_formula](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/142_rwkv/RWKV-formula.png)| +|:--:| +| RWKV 模型中的注意力分数计算公式。来源:RWKV 博文 | + +在训练过程中,Transformer 架构相比于传统的 RNN 和 CNN 有多个优势,最突出的优势是它能够学到上下文特征表达。不同于每次仅处理输入序列中一个 token 的 RNN 和 CNN,transformer 可以单次处理整个输入序列,这种特性也使得 transformer 可以很好地应对长距离序列 token 依赖问题,因此 transformer 在语言翻译和问答等多种任务中表现非常亮眼。 + +在推理过程中,RNN 架构在推理速度和内存效率方面会具有一些优势。例如计算简单(只需矩阵-向量运算)、内存友好(内存不会随着推理阶段的进行而增加),速度稳定(与上下文窗口长度一致,因为 RNN 只关注当前时刻的 token 和状态)。 + +## RWKV 架构 + +RWKV 的灵感来自于 Apple 公司的 [Attention Free Transformer](https://machinelearning.apple.com/research/attention-free-transformer)。RWKV 该架构经过精心简化和优化,可以转换为 RNN。除此此外,为使 RWKV 性能媲美 GPT,还额外使用了许多技巧,例如 `TokenShift` 和 `SmallInitEmb`(使用的完整技巧列表在 [官方 GitHub 仓库的 README 中](https://github.com/BlinkDL/RWKV-LM/blob/main/README.md#how-it-works) 说明)。对于 RWKV 的训练,现有的项目仓库可以将参数量扩展到 14B,并且迭代修了 RWKV-4 的一些训练问题,例如数值不稳定性等。 + +### RWKV 是 RNN 和 Transformer 的强强联合 + +如何把 transformer 和 RNN 优势结合起来?基于 transformer 的模型的主要缺点是,在接收超出上下文长度预设值的输入时,推理结果可能会出现潜在的风险,因为注意力分数是针对训练时的预设值来同时计算整个序列的。 + +RNN 本身支持非常长的上下文长度。即使在训练时接收的上下文长度有限,RNN 也可以通过精心的编码,来得到数百万长度的推理结果。目前,RWKV 模型使用上下文长度上为 8192 (`ctx8192`) 和 `ctx1024` 时的训练速度和内存需求均相同。 + +传统 RNN 模型的主要缺陷,以及 RWKV 是如何避免的: + +1. 传统的 RNN 模型无法利用很长距离的上下文信息(LSTM 用作语言模型时也只能有效处理约 100 个 token),而 RWKV 可以处理数千个甚至更多的 token,如下图所示: + +| ![rwkv_loss](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/142_rwkv/RWKV-loss.png) | +|:--:| +| LM Loss 在不同上下文长度和模型大小的曲线。图片来源:RWKV 原始仓库 | + +2. 传统的 RNN 模型无法并行训练,而 RWKV 更像一个 “线性 GPT”,因此比 GPT 训练得更快。 + +通过将这两个优势强强联合,希望 RWKV 可以实现 “1 + 1 > 2” 的效果。 + +### RWKV 注意力公式 + +RWKV 模型架构与经典的 transformer 模型架构非常相似(例如也包含 embedding 层、Layer Normalization、用于预测下一 token 的因果语言模型头、以及多个完全相同的网络层等),唯一的区别在于注意力层,它与传统的 transformer 模型架构完全不同,因此 RWKV 的注意力计算公式也不一样。 + +本文不会对注意力层过多的介绍,这里推荐一篇 [Johan Sokrates Wind 的博文](https://johanwind.github.io/2023/03/23/rwkv_details.html),里面有对注意力层的分数计算公式等更全面的解释。 + +### 现有检查点 + +#### 纯语言模型:RWKV-4 模型 + +大多数采用 RWKV 架构的语言模型参数量范围从 170M 到 14B 不等。 据 [RWKV 概述博文](https://johanwind.github.io/2023/03/23/rwkv_overview.html) 介绍,这些模型已经在 Pile 数据集上完成训练,并进行了多项不同的基准测试,取得了与其他 SoTA 模型表现相当的性能结果。 + +| ![rwkv_loss](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/142_rwkv/RWKV-eval.png) | +|:--:| +| RWKV-4 与其他常见架构的性能对比。图片来源:Johan Wind 的博文 | + + +#### 指令微调/Chat 版:RWKV-4 Raven + +Bo 还训练了 RWKV 架构的 “chat” 版本:RWKV-4 Raven 模型。RWKV-4 Raven 是一个在 Pile 数据集上预训练的模型,并在 ALPACA、CodeAlpaca、Guanaco、GPT4All、ShareGPT 等上进行了微调。RWKV-4 Raven 模型有多个版本,如不同语言(仅英文、英文+中文+日文、英文+日文等)和不同大小(1.5B 参数、7B 参数、14B 参数)等。 + +所有 HF 版的模型都可以在 Hugging Face Hub 的 [RWKV 社区主页](https://huggingface.co/RWKV) 找到。 + +## 集成 🤗 Transformers 库 + +感谢这个 [Pull Request](https://github.com/huggingface/transformers/pull/22797) 的贡献,RWKV 架构现已集成到 🤗 transformers 库中。在作者撰写本文之时,您已经可以通过从源代码安装 `transformers` 库,或者使用其 `main` 分支。RWKV 架构也会与 transformers 库一起更新,您可以像使用任何其他架构一样使用它。 + +下面让我们来看一些使用示例。 + +### 文本生成示例 + +要在给定 prompt 的情况下生成文本,您可以使用 `pipeline`: + +```python +from transformers import pipeline +model_id = "RWKV/rwkv-4-169m-pile" +prompt = "\nIn a shocking finding, scientist discovered a herd of dragons living in a remote, previously unexplored valley, in Tibet. Even more surprising to the researchers was the fact that the dragons spoke perfect Chinese." +pipe = pipeline("text-generation", model=model_id) +print(pipe(prompt, max_new_tokens=20)) +>>> [{'generated_text': '\nIn a shocking finding, scientist discovered a herd of dragons living in a remote, previously unexplored valley, in Tibet. Even more surprising to the researchers was the fact that the dragons spoke perfect Chinese.\n\nThe researchers found that the dragons were able to communicate with each other, and that they were'}] +``` + +或者可以运行下面的代码片段: + +```python +import torch +from transformers import AutoModelForCausalLM, AutoTokenizer +model = AutoModelForCausalLM.from_pretrained("RWKV/rwkv-4-169m-pile") +tokenizer = AutoTokenizer.from_pretrained("RWKV/rwkv-4-169m-pile") +prompt = "\nIn a shocking finding, scientist discovered a herd of dragons living in a remote, previously unexplored valley, in Tibet. Even more surprising to the researchers was the fact that the dragons spoke perfect Chinese." +inputs = tokenizer(prompt, return_tensors="pt") +output = model.generate(inputs["input_ids"], max_new_tokens=20) +print(tokenizer.decode(output[0].tolist())) +>>> In a shocking finding, scientist discovered a herd of dragons living in a remote, previously unexplored valley, in Tibet. Even more surprising to the researchers was the fact that the dragons spoke perfect Chinese.\n\nThe researchers found that the dragons were able to communicate with each other, and that they were +``` + +### 使用 Raven 模型 (chat 模型) 示例 + +您可以以 alpaca 风格使用提示 chat 版模型,示例如下: + +```python +from transformers import AutoTokenizer, AutoModelForCausalLM +model_id = "RWKV/rwkv-raven-1b5" +model = AutoModelForCausalLM.from_pretrained(model_id).to(0) +tokenizer = AutoTokenizer.from_pretrained(model_id) +question = "Tell me about ravens" +prompt = f"### Instruction: {question}\n### Response:" +inputs = tokenizer(prompt, return_tensors="pt").to(0) +output = model.generate(inputs["input_ids"], max_new_tokens=100) +print(tokenizer.decode(output[0].tolist(), skip_special_tokens=True)) +>>> ### Instruction: Tell me about ravens +### Response: RAVENS are a type of bird that is native to the Middle East and North Africa. They are known for their intelligence, adaptability, and their ability to live in a variety of environments. RAVENS are known for their intelligence, adaptability, and their ability to live in a variety of environments. They are known for their intelligence, adaptability, and their ability to live in a variety of environments. +``` + +据 Bo 所述,[这条 discord 消息(访问超链接时请确保已加入 discord 频道)](https://discord.com/channels/992359628979568762/1083107245971226685/1098533896355848283) 中有更详细的书写指令技巧。 + +| ![discord_message](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/142_rwkv/RWKV%20instructions.png) | + +### 权重转换 + +任何用户都可以使用 `transformers` 库中提供的转换脚本轻松地将原始 RWKV 模型权重转换为 HF 格式。具体步骤为:首先,将 “原始” 权重 push 到 Hugging Face Hub(假定目标仓库为 `RAW_HUB_REPO`,目标权重文件为 `RAW_FILE`),然后运行以下转换脚本: + +```bash +python convert_rwkv_checkpoint_to_hf.py --repo_id RAW_HUB_REPO --checkpoint_file RAW_FILE --output_dir OUTPUT_DIR +``` + +如果您想将转换后的模型 push 到 Hub 上(假定推送目录为 `dummy_user/converted-rwkv`),首先请确保在 push 模型之前使用 `huggingface-cli login` 登录 HF 账号,然后运行: + +```bash +python convert_rwkv_checkpoint_to_hf.py --repo_id RAW_HUB_REPO --checkpoint_file RAW_FILE --output_dir OUTPUT_DIR --push_to_hub --model_name dummy_user/converted-rwkv +``` + +## 未来工作 + +### 多语言 RWKV + +Bo 目前正在研究在多语言语料库上训练 RWKV 模型,最近发布了一个新的 [多语言分词器](https://twitter.com/BlinkDL_AI/status/1649839897208045573)。 + +### 社区后续研究方向 + +RWKV 社区非常活跃,致力于几个后续研究方向。项目清单可以在 RWKV 的 [discord 专用频道中找到(访问超链接时请确保已加入 discord 频道)](https://discord.com/channels/992359628979568762/1068563033510653992)。欢迎加入这个 RWKV 研究频道,以及对 RWKV 的积极贡献! + +### 模型压缩与加速 + +由于只需要矩阵-向量运算,对于非标准化和实验性的计算硬件,RWKV 是一个非常理想的架构选择,例如光子处理器/加速器。 + +因此自然地,RWKV 架构也可以使用经典的加速和压缩技术(如 [ONNX](https://github.com/harrisonvanderbyl/rwkv-onnx)、4位/8位量化等)。我们希望集成了 transformer 的 RWKV 架构能够使更多开发者和从业者受益。 + +在不久的将来,RWKV 还可以使用 [optimum](https://github.com/huggingface/optimum) 库提出的加速技术。[rwkv.cpp](https://github.com/saharNooby/rwkv.cpp) 或 [rwkv-cpp-cuda](https://github.com/harrisonvanderbyl/rwkv-cpp-cuda) 仓库涉及的其中一些技术在库中已标明。 + +### 致谢 + +我们 Hugging Face 团队非常感谢 Bo 和 RWKV 社区抽出宝贵时间来回答关于架构的问题,以及非常感谢他们的帮助和支持。我们很期待在 HF 生态中看到更多 RWKV 模型的应用。我们还要感谢 [Johan Wind](https://twitter.com/johanwind) 发布的关于 RWKV 的博文,这对我们理解架构本身和其潜力有很大帮助。最后,我们着重感谢 [ArEnSc](https://github.com/ArEnSc) 开启 RWKV 集成到 `transformers` 库的 PR 所做的工作,以及感谢 [Merve Noyan](https://huggingface.co/merve)、[Maria Khalusova](https://huggingface.co/MariaK) 和 [Pedro Cuenca](https://huggingface.co/pcuenq) 审阅和校对本篇文章! + +### 引用 + +如果您希望在工作中使用 RWKV,请使用以下 [cff 引用](https://github.com/BlinkDL/RWKV-LM/blob/main/CITATION.cff)。 From e3012fb4522cc91de62aa3c0cf1318ae6e324666 Mon Sep 17 00:00:00 2001 From: Zhongdong Yang Date: Tue, 30 May 2023 17:54:14 +0800 Subject: [PATCH 46/55] Update: proofread zh/rwkv.md --- zh/_blog.yml | 12 +++++++- zh/rwkv.md | 81 ++++++++++++++++++++++++++-------------------------- 2 files changed, 52 insertions(+), 41 deletions(-) diff --git a/zh/_blog.yml b/zh/_blog.yml index cf10934d93..49c040d9fc 100644 --- a/zh/_blog.yml +++ b/zh/_blog.yml @@ -523,6 +523,16 @@ - nlp - research +- local: rwkv + title: "RWKV——transformer 与 RNN 的强强联合" + author: BlinkDL + thumbnail: /blog/assets/142_rwkv/rwkv_thumbnail.png + date: May 15, 2023 + tags: + - nlp + - community + - research + - local: generative-ai-models-on-intel-cpu title: "越小越好:Q8-Chat,在英特尔至强 CPU 上体验高效的生成式 AI" thumbnail: /blog/assets/143_q8chat/thumbnail.png @@ -533,4 +543,4 @@ - nlp - inference - intel - - quantization + - quantization \ No newline at end of file diff --git a/zh/rwkv.md b/zh/rwkv.md index cf6cc8eaf4..196d73b0c1 100644 --- a/zh/rwkv.md +++ b/zh/rwkv.md @@ -8,102 +8,103 @@ authors: - user: RWKV translators: - user: SuSung-boy +- user: zhongdongy + proofreader: true --- -# RWKV -- transformer 与 RNN 的强强联合 +# RWKV – transformer 与 RNN 的强强联合 -在 NLP(Natural Language Processing, 自然语言处理)领域,ChatGPT 和其他的聊天机器人应用引起了极大的关注。每个社区为构建自己的应用,也都在持续地寻求强大、可靠的开源模型。自 Vaswani 等人于 2017 年首次提出 [Attention Is All You Need](https://arxiv.org/abs/1706.03762) 之后,基于 transformer 的强大的模型一直在不断地涌现,它们在 NLP 相关任务上的表现远远超过基于 RNN(Recurrent Neural Networks, 递归神经网络)的 SoTA 模型,甚至多数认为 RNN 已死。而本文将介绍一个集 RNN 和 transformer 两者的优势于一身的全新网络架构--RWKV!现已在 HuggingFace [transformers](https://github.com/huggingface/transformers) 库中支持。 +在 NLP (Natural Language Processing, 自然语言处理) 领域,ChatGPT 和其他的聊天机器人应用引起了极大的关注。每个社区为构建自己的应用,也都在持续地寻求强大、可靠的开源模型。自 Vaswani 等人于 2017 年首次提出 [Attention Is All You Need](https://arxiv.org/abs/1706.03762) 之后,基于 transformer 的强大的模型一直在不断地涌现,它们在 NLP 相关任务上的表现远远超过基于 RNN (Recurrent Neural Networks, 递归神经网络) 的 SoTA 模型,甚至多数认为 RNN 已死。而本文将介绍一个集 RNN 和 transformer 两者的优势于一身的全新网络架构 –RWKV!现已在 HuggingFace [transformers](https://github.com/huggingface/transformers) 库中支持。 ### RWKV 项目概览 -RWKV 项目已经启动,由 [Bo Peng](https://github.com/BlinkDL) 主导、贡献和维护。同时项目成员在官方 Discord 也开设了不同主题的讨论频道:如性能(RWKV.cpp、量化等),扩展性(数据集收集和处理),相关研究(chat 微调、多模态微调等)。该项目中训练 RWKV 模型所需的 GPU 资源由 Stability AI 提供。 +RWKV 项目已经启动,由 [Bo Peng](https://github.com/BlinkDL) 主导、贡献和维护。同时项目成员在官方 Discord 也开设了不同主题的讨论频道: 如性能 (RWKV.cpp、量化等),扩展性 (数据集收集和处理),相关研究 (chat 微调、多模态微调等)。该项目中训练 RWKV 模型所需的 GPU 资源由 Stability AI 提供。 -读者可以加入 [官方 discord 频道](https://discordapp.com/users/468093332535640064) 了解详情或者参与讨论。如想了解 RWKV 背后的思想,可以参考这两篇博文: +读者可以加入 [官方 discord 频道](https://discordapp.com/users/468093332535640064) 了解详情或者参与讨论。如想了解 RWKV 背后的思想,可以参考这两篇博文: - https://johanwind.github.io/2023/03/23/rwkv_overview.html - https://johanwind.github.io/2023/03/23/rwkv_details.html ### Transformer 与 RNN 架构对比 -RNN 架构是最早广泛用于处理序列数据的神经网络架构之一。与接收固定输入尺寸的经典架构不同,RNN 接收当前时刻的 “token” (即数据流中的当前数据点) 和先前时刻的 “状态” 作为输入,通过网络预测输出下一时刻的 “token” 和 “状态”,同时输出的 “状态” 还能继续用到后续的预测中去,一直到序列末尾。RNN 还可以用于不同的 “模式”,适用于多种不同的场景。参考 [Andrej Karpathy 的博客](https://karpathy.github.io/2015/05/21/rnn-effectiveness/),RNN 可以用于:一对一(图像分类),一对多(图像描述),多对一(序列分类),多对多(序列生成),等等。 +RNN 架构是最早广泛用于处理序列数据的神经网络架构之一。与接收固定输入尺寸的经典架构不同,RNN 接收当前时刻的 “token”(即数据流中的当前数据点) 和先前时刻的 “状态” 作为输入,通过网络预测输出下一时刻的 “token” 和 “状态”,同时输出的 “状态” 还能继续用到后续的预测中去,一直到序列末尾。RNN 还可以用于不同的 “模式”,适用于多种不同的场景。参考 [Andrej Karpathy 的博客](https://karpathy.github.io/2015/05/21/rnn-effectiveness/),RNN 可以用于: 一对一 (图像分类),一对多 (图像描述),多对一 (序列分类),多对多 (序列生成),等等。 | ![rnn_diagram](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/142_rwkv/RNN-scheme.png) | -|:--:| -| RNN 在不同场景下 RNN 的网络配置简图。图片来源:Andrej Karpathy 的博文 | +| :-: | +| | 由于 RNN 在计算每一时刻的预测值时使用的都是同一组网络权重,因此 RNN 很难解决长距离序列信息的记忆问题,这一定程度上也是训练过程中梯度消失导致的。为解决这个问题,相继有新的网络架构被提出,如 LSTM 或者 GRU,其中 transformer 是已被证实最有效的架构。 -在 transformer 架构中,不同时刻的输入 token 可以在 self-attention 模块中并行处理。首先 token 经过 Q、K、V 权重矩阵做线性变换投影到不同的空间,得到的 Q、K 矩阵用于计算注意力分数(通过 softmax,如下图所示),然后乘以 V 的隐状态得到最终的隐状态,这种架构设计可以有效缓解长距离序列问题,同时具有比 RNN 更快的训练和推理速度。 +在 transformer 架构中,不同时刻的输入 token 可以在 self-attention 模块中并行处理。首先 token 经过 Q、K、V 权重矩阵做线性变换投影到不同的空间,得到的 Q、K 矩阵用于计算注意力分数 (通过 softmax,如下图所示),然后乘以 V 的隐状态得到最终的隐状态,这种架构设计可以有效缓解长距离序列问题,同时具有比 RNN 更快的训练和推理速度。 | ![transformer_diagram](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/142_rwkv/transformer-scheme.png) | -|:--:| -| transformer 模型中的注意力分数计算公式。图片来源:Jay Alammar 的博文 | +| :-: | +| | -| ![rwkv_attention_formula](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/142_rwkv/RWKV-formula.png)| -|:--:| -| RWKV 模型中的注意力分数计算公式。来源:RWKV 博文 | +| ![rwkv_attention_formula](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/142_rwkv/RWKV-formula.png) | +| :-: | +| | 在训练过程中,Transformer 架构相比于传统的 RNN 和 CNN 有多个优势,最突出的优势是它能够学到上下文特征表达。不同于每次仅处理输入序列中一个 token 的 RNN 和 CNN,transformer 可以单次处理整个输入序列,这种特性也使得 transformer 可以很好地应对长距离序列 token 依赖问题,因此 transformer 在语言翻译和问答等多种任务中表现非常亮眼。 -在推理过程中,RNN 架构在推理速度和内存效率方面会具有一些优势。例如计算简单(只需矩阵-向量运算)、内存友好(内存不会随着推理阶段的进行而增加),速度稳定(与上下文窗口长度一致,因为 RNN 只关注当前时刻的 token 和状态)。 +在推理过程中,RNN 架构在推理速度和内存效率方面会具有一些优势。例如计算简单 (只需矩阵 - 向量运算) 、内存友好 (内存不会随着推理阶段的进行而增加),速度稳定 (与上下文窗口长度一致,因为 RNN 只关注当前时刻的 token 和状态)。 ## RWKV 架构 -RWKV 的灵感来自于 Apple 公司的 [Attention Free Transformer](https://machinelearning.apple.com/research/attention-free-transformer)。RWKV 该架构经过精心简化和优化,可以转换为 RNN。除此此外,为使 RWKV 性能媲美 GPT,还额外使用了许多技巧,例如 `TokenShift` 和 `SmallInitEmb`(使用的完整技巧列表在 [官方 GitHub 仓库的 README 中](https://github.com/BlinkDL/RWKV-LM/blob/main/README.md#how-it-works) 说明)。对于 RWKV 的训练,现有的项目仓库可以将参数量扩展到 14B,并且迭代修了 RWKV-4 的一些训练问题,例如数值不稳定性等。 +RWKV 的灵感来自于 Apple 公司的 [Attention Free Transformer](https://machinelearning.apple.com/research/attention-free-transformer)。RWKV 该架构经过精心简化和优化,可以转换为 RNN。除此此外,为使 RWKV 性能媲美 GPT,还额外使用了许多技巧,例如 `TokenShift` 和 `SmallInitEmb` (使用的完整技巧列表在 [官方 GitHub 仓库的 README 中](https://github.com/BlinkDL/RWKV-LM/blob/main/README.md#how-it-works) 说明)。对于 RWKV 的训练,现有的项目仓库可以将参数量扩展到 14B,并且迭代修了 RWKV-4 的一些训练问题,例如数值不稳定性等。 ### RWKV 是 RNN 和 Transformer 的强强联合 如何把 transformer 和 RNN 优势结合起来?基于 transformer 的模型的主要缺点是,在接收超出上下文长度预设值的输入时,推理结果可能会出现潜在的风险,因为注意力分数是针对训练时的预设值来同时计算整个序列的。 -RNN 本身支持非常长的上下文长度。即使在训练时接收的上下文长度有限,RNN 也可以通过精心的编码,来得到数百万长度的推理结果。目前,RWKV 模型使用上下文长度上为 8192 (`ctx8192`) 和 `ctx1024` 时的训练速度和内存需求均相同。 +RNN 本身支持非常长的上下文长度。即使在训练时接收的上下文长度有限,RNN 也可以通过精心的编码,来得到数百万长度的推理结果。目前,RWKV 模型使用上下文长度上为 8192 ( `ctx8192`) 和 `ctx1024` 时的训练速度和内存需求均相同。 -传统 RNN 模型的主要缺陷,以及 RWKV 是如何避免的: +传统 RNN 模型的主要缺陷,以及 RWKV 是如何避免的: -1. 传统的 RNN 模型无法利用很长距离的上下文信息(LSTM 用作语言模型时也只能有效处理约 100 个 token),而 RWKV 可以处理数千个甚至更多的 token,如下图所示: +1. 传统的 RNN 模型无法利用很长距离的上下文信息 (LSTM 用作语言模型时也只能有效处理约 100 个 token),而 RWKV 可以处理数千个甚至更多的 token,如下图所示: | ![rwkv_loss](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/142_rwkv/RWKV-loss.png) | -|:--:| -| LM Loss 在不同上下文长度和模型大小的曲线。图片来源:RWKV 原始仓库 | +| :-: | +| | -2. 传统的 RNN 模型无法并行训练,而 RWKV 更像一个 “线性 GPT”,因此比 GPT 训练得更快。 +1. 传统的 RNN 模型无法并行训练,而 RWKV 更像一个 “线性 GPT”,因此比 GPT 训练得更快。 通过将这两个优势强强联合,希望 RWKV 可以实现 “1 + 1 > 2” 的效果。 ### RWKV 注意力公式 -RWKV 模型架构与经典的 transformer 模型架构非常相似(例如也包含 embedding 层、Layer Normalization、用于预测下一 token 的因果语言模型头、以及多个完全相同的网络层等),唯一的区别在于注意力层,它与传统的 transformer 模型架构完全不同,因此 RWKV 的注意力计算公式也不一样。 +RWKV 模型架构与经典的 transformer 模型架构非常相似 (例如也包含 embedding 层、Layer Normalization、用于预测下一 token 的因果语言模型头、以及多个完全相同的网络层等),唯一的区别在于注意力层,它与传统的 transformer 模型架构完全不同,因此 RWKV 的注意力计算公式也不一样。 本文不会对注意力层过多的介绍,这里推荐一篇 [Johan Sokrates Wind 的博文](https://johanwind.github.io/2023/03/23/rwkv_details.html),里面有对注意力层的分数计算公式等更全面的解释。 ### 现有检查点 -#### 纯语言模型:RWKV-4 模型 +#### 纯语言模型: RWKV-4 模型 大多数采用 RWKV 架构的语言模型参数量范围从 170M 到 14B 不等。 据 [RWKV 概述博文](https://johanwind.github.io/2023/03/23/rwkv_overview.html) 介绍,这些模型已经在 Pile 数据集上完成训练,并进行了多项不同的基准测试,取得了与其他 SoTA 模型表现相当的性能结果。 | ![rwkv_loss](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/142_rwkv/RWKV-eval.png) | -|:--:| -| RWKV-4 与其他常见架构的性能对比。图片来源:Johan Wind 的博文 | +| :-: | +| | +#### 指令微调/Chat 版: RWKV-4 Raven -#### 指令微调/Chat 版:RWKV-4 Raven - -Bo 还训练了 RWKV 架构的 “chat” 版本:RWKV-4 Raven 模型。RWKV-4 Raven 是一个在 Pile 数据集上预训练的模型,并在 ALPACA、CodeAlpaca、Guanaco、GPT4All、ShareGPT 等上进行了微调。RWKV-4 Raven 模型有多个版本,如不同语言(仅英文、英文+中文+日文、英文+日文等)和不同大小(1.5B 参数、7B 参数、14B 参数)等。 +Bo 还训练了 RWKV 架构的 “chat” 版本: RWKV-4 Raven 模型。RWKV-4 Raven 是一个在 Pile 数据集上预训练的模型,并在 ALPACA、CodeAlpaca、Guanaco、GPT4All、ShareGPT 等上进行了微调。RWKV-4 Raven 模型有多个版本,如不同语言 (仅英文、英文 + 中文 + 日文、英文 + 日文等) 和不同大小 (1.5B 参数、7B 参数、14B 参数) 等。 所有 HF 版的模型都可以在 Hugging Face Hub 的 [RWKV 社区主页](https://huggingface.co/RWKV) 找到。 ## 集成 🤗 Transformers 库 -感谢这个 [Pull Request](https://github.com/huggingface/transformers/pull/22797) 的贡献,RWKV 架构现已集成到 🤗 transformers 库中。在作者撰写本文之时,您已经可以通过从源代码安装 `transformers` 库,或者使用其 `main` 分支。RWKV 架构也会与 transformers 库一起更新,您可以像使用任何其他架构一样使用它。 +感谢这个 [Pull Request](https://github.com/huggingface/transformers/pull/22797) 的贡献,RWKV 架构现已集成到 🤗 transformers 库中。在作者撰写本文之时,您已经可以通过从源代码安装 `transformers` 库,或者使用其 `main` 分支。RWKV 架构也会与 transformers 库一起更新,您可以像使用任何其他架构一样使用它。 下面让我们来看一些使用示例。 ### 文本生成示例 -要在给定 prompt 的情况下生成文本,您可以使用 `pipeline`: +要在给定 prompt 的情况下生成文本,您可以使用 `pipeline`: ```python from transformers import pipeline @@ -114,7 +115,7 @@ print(pipe(prompt, max_new_tokens=20)) >>> [{'generated_text': '\nIn a shocking finding, scientist discovered a herd of dragons living in a remote, previously unexplored valley, in Tibet. Even more surprising to the researchers was the fact that the dragons spoke perfect Chinese.\n\nThe researchers found that the dragons were able to communicate with each other, and that they were'}] ``` -或者可以运行下面的代码片段: +或者可以运行下面的代码片段: ```python import torch @@ -130,7 +131,7 @@ print(tokenizer.decode(output[0].tolist())) ### 使用 Raven 模型 (chat 模型) 示例 -您可以以 alpaca 风格使用提示 chat 版模型,示例如下: +您可以以 alpaca 风格使用提示 chat 版模型,示例如下: ```python from transformers import AutoTokenizer, AutoModelForCausalLM @@ -146,19 +147,19 @@ print(tokenizer.decode(output[0].tolist(), skip_special_tokens=True)) ### Response: RAVENS are a type of bird that is native to the Middle East and North Africa. They are known for their intelligence, adaptability, and their ability to live in a variety of environments. RAVENS are known for their intelligence, adaptability, and their ability to live in a variety of environments. They are known for their intelligence, adaptability, and their ability to live in a variety of environments. ``` -据 Bo 所述,[这条 discord 消息(访问超链接时请确保已加入 discord 频道)](https://discord.com/channels/992359628979568762/1083107245971226685/1098533896355848283) 中有更详细的书写指令技巧。 +据 Bo 所述,[这条 discord 消息 (访问超链接时请确保已加入 discord 频道) ](https://discord.com/channels/992359628979568762/1083107245971226685/1098533896355848283) 中有更详细的书写指令技巧。 | ![discord_message](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/142_rwkv/RWKV%20instructions.png) | ### 权重转换 -任何用户都可以使用 `transformers` 库中提供的转换脚本轻松地将原始 RWKV 模型权重转换为 HF 格式。具体步骤为:首先,将 “原始” 权重 push 到 Hugging Face Hub(假定目标仓库为 `RAW_HUB_REPO`,目标权重文件为 `RAW_FILE`),然后运行以下转换脚本: +任何用户都可以使用 `transformers` 库中提供的转换脚本轻松地将原始 RWKV 模型权重转换为 HF 格式。具体步骤为: 首先,将 “原始” 权重 push 到 Hugging Face Hub (假定目标仓库为 `RAW_HUB_REPO`,目标权重文件为 `RAW_FILE`),然后运行以下转换脚本: ```bash python convert_rwkv_checkpoint_to_hf.py --repo_id RAW_HUB_REPO --checkpoint_file RAW_FILE --output_dir OUTPUT_DIR ``` -如果您想将转换后的模型 push 到 Hub 上(假定推送目录为 `dummy_user/converted-rwkv`),首先请确保在 push 模型之前使用 `huggingface-cli login` 登录 HF 账号,然后运行: +如果您想将转换后的模型 push 到 Hub 上 (假定推送目录为 `dummy_user/converted-rwkv`),首先请确保在 push 模型之前使用 `huggingface-cli login` 登录 HF 账号,然后运行: ```bash python convert_rwkv_checkpoint_to_hf.py --repo_id RAW_HUB_REPO --checkpoint_file RAW_FILE --output_dir OUTPUT_DIR --push_to_hub --model_name dummy_user/converted-rwkv @@ -170,15 +171,15 @@ python convert_rwkv_checkpoint_to_hf.py --repo_id RAW_HUB_REPO --checkpoint_file Bo 目前正在研究在多语言语料库上训练 RWKV 模型,最近发布了一个新的 [多语言分词器](https://twitter.com/BlinkDL_AI/status/1649839897208045573)。 -### 社区后续研究方向 +### 社区后续研究方向 -RWKV 社区非常活跃,致力于几个后续研究方向。项目清单可以在 RWKV 的 [discord 专用频道中找到(访问超链接时请确保已加入 discord 频道)](https://discord.com/channels/992359628979568762/1068563033510653992)。欢迎加入这个 RWKV 研究频道,以及对 RWKV 的积极贡献! +RWKV 社区非常活跃,致力于几个后续研究方向。项目清单可以在 RWKV 的 [discord 专用频道中找到 (访问超链接时请确保已加入 discord 频道)](https://discord.com/channels/992359628979568762/1068563033510653992)。欢迎加入这个 RWKV 研究频道,以及对 RWKV 的积极贡献! ### 模型压缩与加速 -由于只需要矩阵-向量运算,对于非标准化和实验性的计算硬件,RWKV 是一个非常理想的架构选择,例如光子处理器/加速器。 +由于只需要矩阵 - 向量运算,对于非标准化和实验性的计算硬件,RWKV 是一个非常理想的架构选择,例如光子处理器/加速器。 -因此自然地,RWKV 架构也可以使用经典的加速和压缩技术(如 [ONNX](https://github.com/harrisonvanderbyl/rwkv-onnx)、4位/8位量化等)。我们希望集成了 transformer 的 RWKV 架构能够使更多开发者和从业者受益。 +因此自然地,RWKV 架构也可以使用经典的加速和压缩技术 (如 [ONNX](https://github.com/harrisonvanderbyl/rwkv-onnx)、4 位/8 位量化等)。我们希望集成了 transformer 的 RWKV 架构能够使更多开发者和从业者受益。 在不久的将来,RWKV 还可以使用 [optimum](https://github.com/huggingface/optimum) 库提出的加速技术。[rwkv.cpp](https://github.com/saharNooby/rwkv.cpp) 或 [rwkv-cpp-cuda](https://github.com/harrisonvanderbyl/rwkv-cpp-cuda) 仓库涉及的其中一些技术在库中已标明。 @@ -188,4 +189,4 @@ RWKV 社区非常活跃,致力于几个后续研究方向。项目清单可以 ### 引用 -如果您希望在工作中使用 RWKV,请使用以下 [cff 引用](https://github.com/BlinkDL/RWKV-LM/blob/main/CITATION.cff)。 +如果您希望在工作中使用 RWKV,请使用此 [cff 引用](https://github.com/BlinkDL/RWKV-LM/blob/main/CITATION.cff)。 \ No newline at end of file From 2bb5d3f3dc1332e0d3839f099cd41c2d48e5bcae Mon Sep 17 00:00:00 2001 From: Zhongdong Yang Date: Tue, 30 May 2023 18:02:31 +0800 Subject: [PATCH 47/55] Fix: missing subtitle/notes for image references. --- zh/rwkv.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/zh/rwkv.md b/zh/rwkv.md index 196d73b0c1..08f0ede8b9 100644 --- a/zh/rwkv.md +++ b/zh/rwkv.md @@ -34,7 +34,7 @@ RNN 架构是最早广泛用于处理序列数据的神经网络架构之一。 | ![rnn_diagram](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/142_rwkv/RNN-scheme.png) | | :-: | -| | +| RNN 在不同场景下 RNN 的网络配置简图。图片来源:Andrej Karpathy 的博文 | 由于 RNN 在计算每一时刻的预测值时使用的都是同一组网络权重,因此 RNN 很难解决长距离序列信息的记忆问题,这一定程度上也是训练过程中梯度消失导致的。为解决这个问题,相继有新的网络架构被提出,如 LSTM 或者 GRU,其中 transformer 是已被证实最有效的架构。 @@ -42,11 +42,11 @@ RNN 架构是最早广泛用于处理序列数据的神经网络架构之一。 | ![transformer_diagram](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/142_rwkv/transformer-scheme.png) | | :-: | -| | +| transformer 模型中的注意力分数计算公式。图片来源:Jay Alammar 的博文 | | ![rwkv_attention_formula](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/142_rwkv/RWKV-formula.png) | | :-: | -| | +| RWKV 模型中的注意力分数计算公式。来源:RWKV 博文 | 在训练过程中,Transformer 架构相比于传统的 RNN 和 CNN 有多个优势,最突出的优势是它能够学到上下文特征表达。不同于每次仅处理输入序列中一个 token 的 RNN 和 CNN,transformer 可以单次处理整个输入序列,这种特性也使得 transformer 可以很好地应对长距离序列 token 依赖问题,因此 transformer 在语言翻译和问答等多种任务中表现非常亮眼。 @@ -68,7 +68,7 @@ RNN 本身支持非常长的上下文长度。即使在训练时接收的上下 | ![rwkv_loss](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/142_rwkv/RWKV-loss.png) | | :-: | -| | +| LM Loss 在不同上下文长度和模型大小的曲线。图片来源:RWKV 原始仓库 | 1. 传统的 RNN 模型无法并行训练,而 RWKV 更像一个 “线性 GPT”,因此比 GPT 训练得更快。 @@ -88,7 +88,7 @@ RWKV 模型架构与经典的 transformer 模型架构非常相似 (例如也包 | ![rwkv_loss](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/142_rwkv/RWKV-eval.png) | | :-: | -| | +| RWKV-4 与其他常见架构的性能对比。图片来源:Johan Wind 的博文 | #### 指令微调/Chat 版: RWKV-4 Raven From c4d67e4fab3668ca105ff8917cfcfb427e9e5a9b Mon Sep 17 00:00:00 2001 From: Yao Matrix Date: Wed, 31 May 2023 10:59:19 +0800 Subject: [PATCH 48/55] encoder-decoder cn done (#14) Signed-off-by: Yao, Matrix Co-authored-by: Zhongdong Yang --- zh/_blog.yml | 11 +- zh/encoder-decoder.md | 544 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 554 insertions(+), 1 deletion(-) create mode 100644 zh/encoder-decoder.md diff --git a/zh/_blog.yml b/zh/_blog.yml index 49c040d9fc..a8fbe541ac 100644 --- a/zh/_blog.yml +++ b/zh/_blog.yml @@ -7,6 +7,15 @@ - guide - nlp +- local: encoder-decoder + title: "基于 Transformers 的编码器-解码器模型" + author: patrickvonplaten + thumbnail: /blog/assets/05_encoder_decoder/thumbnail.png + date: October 10, 2020 + tags: + - research + - nlp + - local: large-language-models title: "大语言模型: 新的摩尔定律?" author: juliensimon @@ -543,4 +552,4 @@ - nlp - inference - intel - - quantization \ No newline at end of file + - quantization diff --git a/zh/encoder-decoder.md b/zh/encoder-decoder.md new file mode 100644 index 0000000000..917c5bc404 --- /dev/null +++ b/zh/encoder-decoder.md @@ -0,0 +1,544 @@ +--- +title: "基于 Transformers 的编码器-解码器模型" +thumbnail: /blog/assets/05_encoder_decoder/thumbnail.png +authors: +- user: patrickvonplaten、 +translators: +- user: MatrixYao +--- + +

    基于 Transformers 的编码器-解码器模型

    + + + + + + 在 Colab 中打开 + + +# **基于 Transformers 的编码器-解码器模型** + +```bash +!pip install transformers==4.2.1 +!pip install sentencepiece==0.1.95 +``` +Vaswani 等人在其名作 [Attention is all you need](https://arxiv.org/abs/1706.03762) 中首创了*基于 transformer* 的编码器-解码器模型,如今已成为自然语言处理 (natural language processing,NLP) 领域编码器-解码器架构的*事实标准*。 + +最近基于 transformer 的编码器-解码器模型训练这一方向涌现出了大量关于*预训练目标函数*的研究,*例如* T5、Bart、Pegasus、ProphetNet、Marge等,但它们所使用的网络结构并没有改变。 + +本文的目的是**详细**解释如何用基于 transformer 的编码器-解码器架构来对*序列到序列(sequence-to-sequence)* 问题进行建模。我们将重点关注有关这一架构的数学知识以及如何对该架构的模型进行推理。在此过程中,我们还将介绍 NLP 中序列到序列模型的一些背景知识,并将*基于 transformer* 的编码器-解码器架构分解为 **编码器** 和 **解码器** 这两个部分分别讨论。我们提供了许多图例,并把*基于 transformer* 的编码器-解码器模型的理论与其在 🤗 transformers 推理场景中的实际应用二者联系起来。请注意,这篇博文*不*解释如何训练这些模型 —— 我们会在后续博文中涵盖这一方面的内容。 + +基于 transformer 的编码器-解码器模型是*表征学习*和*模型架构*这两个领域多年研究成果的结晶。本文简要介绍了神经编码器-解码器模型的历史,更多背景知识,建议读者阅读由 Sebastion Ruder 撰写的这篇精彩[博文](https://ruder.io/a-review-of-the-recent-history-of-nlp/)。此外,建议读者对*自注意力(self-attention)架构*有一个基本了解,可以阅读 Jay Alammar 的[这篇博文](http://jalammar.github.io/illustrated-transformer/)复习一下原始 transformer 模型。 + +截至本文撰写时,🤗 transformers 库已经支持的编码器-解码器模型有:*T5*、*Bart*、*MarianMT* 以及 *Pegasus*,你可以从[这儿](https://huggingface.co/docs/transformers/model_summary#nlp-encoder-decoder)获取相关信息。 + +本文分 4 个部分: + +- **背景** - *简要回顾了神经编码器-解码器模型的历史,重点关注基于 RNN 的模型。* +- **编码器-解码器** - *阐述基于 transformer 的编码器-解码器模型,并阐述如何使用该模型进行推理。* +- **编码器** - *阐述模型的编码器部分。* +- **解码器** - *阐述模型的解码器部分。* + +每个部分都建立在前一部分的基础上,但也可以单独阅读。 + +## **背景** + +自然语言生成 (natural language generation,NLG)是 NLP 的一个子领域,其任务一般可被建模为序列到序列问题。这类任务可以定义为寻找一个模型,该模型将输入词序列映射为目标词序列,典型的例子有*摘要*和*翻译*。在下文中,我们假设每个单词都被编码为一个向量表征。因此,$n$ 个输入词可以表示为 $n$ 个输入向量组成的序列: + +$$\mathbf{X}_{1:n} = \{\mathbf{x}_1, \ldots, \mathbf{x}_n\}$$ + +因此,序列到序列问题可以表示为找到一个映射 $f$,其输入为 $n$ 个向量的序列,输出为 $m$ 个向量的目标序列 $\mathbf{Y}_{1:m}$。这里,目标向量数 $m$ 是先验未知的,其值取决于输入序列: + +$$ f: \mathbf{X}_{1:n} \to \mathbf{Y}_{1:m} $$ + +[Sutskever 等(2014)](https://arxiv.org/abs/1409.3215)的工作指出,深度神经网络(deep neural networks,DNN)“*尽管灵活且强大,但只能用于拟合输入和输出维度均固定的映射。*” ${}^1$ + +因此,要用使用 DNN 模型 ${}^2$ 解决序列到序列问题就意味着目标向量数 $m$ 必须是先验已知的,且必须独立于输入 $\mathbf{X}_{1:n}$。这样设定肯定不是最优的。因为对 NLG 任务而言,目标词的数量通常取决于输入内容 $\mathbf{X}_{1:n}$,而不仅仅是输入长度 $n$。 *例如*,一篇 1000 字的文章,根据内容的不同,有可能可以概括为 200 字,也有可能可以概括为 100 字。 + +2014 年,[Cho 等人](https://arxiv.org/pdf/1406.1078.pdf)和 [Sutskever 等人](https://arxiv.org/abs/1409.3215)提出使用完全基于递归神经网络(recurrent neural networks,RNN)的编码器-解码器模型来解决*序列到序列*任务。与 DNN 相比,RNN 支持输出可变数量的目标向量。下面,我们深入了解一下基于 RNN 的编码器-解码器模型的功能。 + +在推理过程中,RNN 编码器通过连续更新其*隐含状态* ${}^3$ 对输入序列 $\mathbf{X}_{1:n}$ 进行编码。我们定义处理完最后一个输入向量 $\mathbf{x}_n$ 后的编码器隐含状态为 $\mathbf{c}$。因此,编码器主要完成如下映射: + +$$ f_{\theta_{enc}}: \mathbf{X}_{1:n} \to \mathbf{c} $$ + +然后,我们用 $\mathbf{c}$ 来初始化解码器的隐含状态,再用解码器 RNN 自回归地生成目标序列。 + +下面,我们进一步解释一下。从数学角度讲,解码器定义了给定隐含状态 $\mathbf{c}$ 下目标序列 $\mathbf{Y}_{1:m}$ 的概率分布: + +$$ p_{\theta_{dec}}(\mathbf{Y}_{1:m} |\mathbf{c}) $$ + +根据贝叶斯法则,上述分布可以分解为每个目标向量的条件分布的积,如下所示: + +$$ p_{\theta_{dec}}(\mathbf{Y}_{1:m} |\mathbf{c}) = \prod_{i=1}^{m} p_{\theta_{\text{dec}}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{c}) $$ + +因此,如果模型架构可以在给定所有前驱目标向量的条件下对下一个目标向量的条件分布进行建模的话: + +$$ p_{\theta_{\text{dec}}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{c}), \forall i \in \{1, \ldots, m\}$$ + +那它就可以通过简单地将所有条件概率相乘来模拟给定隐藏状态 $\mathbf{c}$ 下任意目标向量序列的分布。 + +那么基于 RNN 的解码器架构如何建模 +$p_{\theta_{\text{dec}}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{c})$ 呢? + +从计算角度讲,模型按序将前一时刻的内部隐含状态 $\mathbf{c}_{i-1}$ 和前一时刻的目标向量 $\mathbf{y}_{i-1}$ 映射到当前内部隐含状态 $\mathbf{c}_i$ 和一个 *logit 向量* $\mathbf{l}_i$(下图中以深红色表示): + +$$ f_{\theta_{\text{dec}}}(\mathbf{y}_{i-1}, \mathbf{c}_{i-1}) \to \mathbf{l}_i, \mathbf{c}_i$$ + +此处,$\mathbf{c}_0$ 为 RNN 编码器的输出。随后,对 logit 向量 $\mathbf{l}_i$ 进行 *softmax* 操作,将其变换为下一个目标向量的条件概率分布: + +$$ p(\mathbf{y}_i | \mathbf{l}_i) = \textbf{Softmax}(\mathbf{l}_i), \text{ 其中 } \mathbf{l}_i = f_{\theta_{\text{dec}}}(\mathbf{y}_{i-1}, \mathbf{c}_{\text{prev}})$$ + +更多有关 logit 向量及其生成的概率分布的详细信息,请参阅脚注 ${}^4$。从上式可以看出,目标向量 $\mathbf{y}_i$ 的分布是其前一时刻的目标向量 $\mathbf{y}_{i-1}$ 及前一时刻的隐含状态 $\mathbf{c}_{i-1}$ 的条件分布。而我们知道前一时刻的隐含状态 $\mathbf{c}_{i-1}$ 依赖于之前所有的目标向量 $\mathbf{y}_0, \ldots, \mathbf{y}_{i- 2}$,因此我们可以说 RNN 解码器*隐式*(*或间接*)地建模了条件分布 +$p_{\theta_{\text{dec}}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{c})$。 + +目标向量序列 $\mathbf{Y}_{1:m}$ 的概率空间非常大,因此在推理时,必须借助解码方法对= ${}^5$ 对 $p_{\theta_{dec}}(\mathbf{Y}_{1:m} |\mathbf{c})$ 进行采样才能高效地生成最终的目标向量序列。 + +给定某解码方法,在推理时,我们首先从分布 $p_{\theta_{\text{dec}}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{c})$ 中采样出下一个输出向量;接着,将其添加至解码器输入序列末尾,让解码器 RNN 继续从 +$p_{\theta_{\text{dec}}}(\mathbf{y}_{i+1} | \mathbf{Y}_{0: i}, \mathbf{c})$ 中采样出下一个输出向量 $\mathbf{y}_{i+1}$,如此往复,整个模型就以*自回归*的方式生成了最终的输出序列。 + +基于 RNN 的编码器-解码器模型的一个重要特征是需要定义一些*特殊*向量,如 $\text{EOS}$(终止符) 和 $\text{BOS}$(起始符)向量。 $\text{EOS}$ 向量通常意味着 $\mathbf{x}_n$ 中止,出现这个即“提示”编码器输入序列已结束;如果它出现在目标序列中意味着输出结束,一旦从 logit 向量中采样到 $\text{EOS}$,生成就完成了。$\text{BOS}$ 向量用于表示在第一步解码时馈送到解码器 RNN 的输入向量 $\mathbf{y}_0$。为了输出第一个 logit $\mathbf{l}_1$,需要一个输入,而由于在其之前还没有生成任何输入,所以我们馈送了一个特殊的 $\text{BOS}$ 输入向量到解码器 RNN。好,有点绕了!我们用一个例子说明一下。 + +![](https://raw.githubusercontent.com/patrickvonplaten/scientific_images/master/encoder_decoder/rnn_seq2seq.png) + +上图中,我们将编码器 RNN 编码器展开,并用绿色表示;同时,将解码器 RNN 展开,并用红色表示。 + +英文句子 `I want to buy a car`,表示为 $(\mathbf{x}_1 = \text{I}$,$\mathbf{x}_2 = \text{want}$,$\mathbf{x}_3 = \text{to}$,$\mathbf{x}_4 = \text{buy}$,$\mathbf{x} _5 = \text{a}$,$\mathbf{x}_6 = \text{car}$,$\mathbf{x}_7 = \text{EOS}$)。将其翻译成德语:“Ich will ein Auto kaufen\",表示为 $(\mathbf{y}_0 = \text{BOS}$,$\mathbf{y}_1 = \text{Ich}$,$\mathbf{y}_2 = \text{will}$,$\mathbf{y}_3 = \text {ein}$,$\mathbf{y}_4 = \text{Auto}$,$\mathbf{y}_5 = \text{kaufen}$,$\mathbf{y}_6=\text{EOS}$)。首先,编码器 RNN 处理输入向量 $\mathbf{x}_1 = \text{I}$ 并更新其隐含状态。请注意,对编码器而言,因为我们只对其最终隐含状态 $\mathbf{c}$ 感兴趣,所以我们可以忽略它的目标向量。然后,编码器 RNN 以相同的方式依次处理输入句子的其余部分:$\text{want}$、$\text{to}$、$\text{buy}$、$\text{a}$、$\text{car}$、$\text{EOS}$,并且每一步都更新其隐含状态,直到遇到向量 $\mathbf{x}_7={EOS}$ ${}^6$。在上图中,连接展开的编码器 RNN 的水平箭头表示按序更新隐含状态。编码器 RNN 的最终隐含状态,由 $\mathbf{c}$ 表示,其完全定义了输入序列的*编码*,并可用作解码器 RNN 的初始隐含状态。可以认为,解码器 RNN 以编码器 RNN 的最终隐含状态为条件。 + +为了生成第一个目标向量,将 $\text{BOS}$ 向量输入给解码器,即上图中的 $\mathbf{y}_0$。然后通过*语言模型头(LM Head)* 前馈层将 RNN 的目标向量进一步映射到 logit 向量 $\mathbf{l}_1$,此时,可得第一个目标向量的条件分布: + +$$ p_{\theta_{dec}}(\mathbf{y} | \text{BOS}, \mathbf{c}) $$ + +最终采样出第一个目标词 $\text{Ich}$(如图中连接 $\mathbf{l}_1$ 和 $\mathbf{y}_1$ 的灰色箭头所示)。接着,继续采样出第二个目标向量: + +$$ \text{will} \sim p_{\theta_{dec}}(\mathbf{y} | \text{BOS}, \text{Ich}, \mathbf{c}) $$ + +依此类推,一直到第 6 步,此时从 $\mathbf{l}_6$ 中采样出 $\text{EOS}$,解码完成。输出目标序列为 $\mathbf{Y}_{1:6} = \{\mathbf{y}_1, \ldots, \mathbf{y}_6\}$, 即上文中的 “Ich will ein Auto kaufen”。 + +综上所述,我们通过将分布 $p(\mathbf{Y}_{1:m} | \mathbf{X}_{1:n})$ 分解为 $f_{\theta_{\text{enc}}}$ 和 $p_{\theta_{\text{dec}}}$ 的表示来建模基于 RNN 的 encoder-decoder 模型: + +$$ p_{\theta_{\text{enc}}, \theta_{\text{dec}}}(\mathbf{Y}_{1:m} | \mathbf{X}_{1:n}) = \prod_{i=1}^{m} p_{\theta_{\text{enc}}, \theta_{\text{dec}}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{X}_{1:n}) = \prod_{i=1}^{m} p_{\theta_{\text{dec}}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{c}), \text{ 其中 } \mathbf{c}=f_{\theta_{enc}}(X) $$ + +在推理过程中,利用高效的解码方法可以自回归地生成目标序列 $\mathbf{Y}_{1:m}$。 + +基于 RNN 的编码器-解码器模型席卷了 NLG 社区。2016 年,谷歌宣布用基于 RNN 的编码器-解码器单一模型完全取代其原先使用的的含有大量特征工程的翻译服务(参见 +[此处](https://www.oreilly.com/radar/what-machine-learning-means-for-software-development/#:~:text=Machine%20learning%20is%20already%20making,of%20code%20in%20Google%20Translate))。 + +然而,基于 RNN 的编码器-解码器模型存在两个主要缺陷。首先,RNN 存在梯度消失问题,因此很难捕获长程依赖性,*参见* [Hochreiter 等(2001)](https://www.bioinf.jku.at/publications/older/ch7.pdf)的工作。其次,RNN 固有的循环架构使得在编码时无法进行有效的并行化,*参见* [Vaswani 等(2017)](https://arxiv.org/abs/1706.03762)的工作。 + +------------------------------------------------------------------------ + +${}^1$ 论文的原话是“*尽管 DNN 具有灵活性和强大的功能,但它们只能应用于输入和目标可以用固定维度的向量进行合理编码的问题*”,用在本文时稍作调整。 + +${}^2$ 这同样适用于卷积神经网络 (CNN)。虽然可以将可变长度的输入序列输入 CNN,但目标的维度要么取决于输入维数要么需要固定为特定值。 + +${}^3$ 在第一步时,隐含状态被初始化为零向量,并与第一个输入向量 $\mathbf{x}_1$ 一起馈送给 RNN。 + +${}^4$ 神经网络可以将所有单词的概率分布定义为 $p(\mathbf{y} | \mathbf{c}, \mathbf{Y}_{0 : i-1})$。首先,其将输入 $\mathbf{c}, \mathbf{Y}_{0: i-1}$ 转换为嵌入向量 $\mathbf{y'}$,该向量对应于 RNN 模型的目标向量。随后将 $\mathbf{y'}$ 送给“语言模型头”,即将其乘以*词嵌入矩阵*(即$\mathbf{Y}^{\text{vocab}}$),得到 $\mathbf{y'}$ 和词表 $\mathbf{Y}^{\text{vocab}}$ 中的每个向量 $\mathbf{y}$ 的相似度得分,生成的向量称为 logit 向量 $\mathbf{l} = \mathbf{Y}^{\text{vocab}} \mathbf{y'}$,最后再通过 softmax 操作归一化成所有单词的概率分布:$p(\mathbf{y} | \mathbf{c}) = \text{Softmax}(\mathbf{Y}^{\text{vocab}} \mathbf{y'}) = \text {Softmax}(\mathbf{l})$。 + +${}^5$ 波束搜索(beam search)是其中一种解码方法。本文不会对不同的解码方法进行介绍,如对此感兴趣,建议读者参考[此文](https://huggingface.co/blog/zh/how-to-generate)。 + +${}^6$ [Sutskever 等(2014)](https://arxiv.org/abs/1409.3215) 的工作对输入顺序进行了逆序,对上面的例子而言,输入向量变成了 ($\mathbf{x}_1 = \text{car}$,$\mathbf{x}_2 = \text{a}$,$\mathbf{x}_3 = \text{buy}$,$\mathbf{x} _4 = \text{to}$,$\mathbf{x}_5 = \text{want}$,$\mathbf{x}_6 = \text{I}$,$\mathbf{x}_7 = \text{EOS}$)。其动机是让对应词对之间的连接更短,如可以使得 $\mathbf{x}_6 = \text{I}$ 和 $\mathbf{y}_1 = \text{Ich}$ 之间的连接更短。该研究小组强调,将输入序列进行逆序是他们的模型在机器翻译上的性能提高的一个关键原因。 + +## **编码器-解码器** + +2017 年,Vaswani 等人引入了 **transformer** 架构,从而催生了*基于 transformer* 的编码器-解码器模型。 + +与基于 RNN 的编码器-解码器模型类似,基于 transformer 的编码器-解码器模型由一个编码器和一个解码器组成,且其编码器和解码器均由*残差注意力模块(residual attention blocks)* 堆叠而成。基于 transformer 的编码器-解码器模型的关键创新在于:残差注意力模块无需使用循环结构即可处理长度 $n$ 可变的输入序列 $\mathbf{X}_{1:n}$。不依赖循环结构使得基于 transformer 的编码器-解码器可以高度并行化,这使得模型在现代硬件上的计算效率比基于 RNN 的编码器-解码器模型高出几个数量级。 + +回忆一下,要解决*序列到序列*问题,我们需要找到输入序列 $\mathbf{X}_{1:n}$ 到变长输出序列 $\mathbf{Y}_{1:m}$ 的映射。我们看看如何使用基于 transformer 的编码器-解码器模型来找到这样的映射。 + +与基于 RNN 的编码器-解码器模型类似,基于 transformer 的编码器-解码器模型定义了在给定输入序列 $\mathbf{X}_{1:n}$ 条件下目标序列 $\mathbf{Y}_{1:m}$ 的条件分布: + +$$ +p_{\theta_{\text{enc}}, \theta_{\text{dec}}}(\mathbf{Y}_{1:m} | \mathbf{X}_{1:n}) +$$ + +基于 transformer 的编码器部分将输入序列 $\mathbf{X}_{1:n}$ 编码为*隐含状态序列* $\mathbf{\overline{X}}_ {1:n}$,即: + +$$ f_{\theta_{\text{enc}}}: \mathbf{X}_{1:n} \to \mathbf{\overline{X}}_{1:n} $$ + +然后,基于 transformer 的解码器负责建模在给定隐含状态序列 $\mathbf{\overline{ X}}_{1:n}$ 的条件下目标向量序列 $\mathbf{Y}_{1:m}$ 的概率分布: + +$$ p_{\theta_{dec}}(\mathbf{Y}_{1:m} | \mathbf{\overline{X}}_{1:n})$$ + +根据贝叶斯法则,该序列分布可被分解为每个目标向量 $\mathbf{y}_i$ 在给定隐含状态 $\mathbf{\overline{X} }_{1:n}$ 和其所有前驱目标向量 $\mathbf{Y}_{0:i-1}$ 时的条件概率之积: + +$$ +p_{\theta_{dec}}(\mathbf{Y}_{1:m} | \mathbf{\overline{X}}_{1:n}) = \prod_{i=1}^{m} p_{\theta_{\text{dec}}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{\overline{X}}_{1:n}) $$ + + +因此,在生成 $\mathbf{y}_i$ 时,基于 transformer 的解码器将隐含状态序列 $\mathbf{\overline{X}}_{1:n}$ 及其所有前驱目标向量 $\mathbf{Y}_{0 :i-1}$ 映射到 *logit* 向量 $\mathbf{l}_i$。 然后经由 *softmax* 运算对 logit 向量 $\mathbf{l}_i$ 进行处理,从而生成条件分布 $p_{\theta_{\text{dec}}}(\mathbf{y} _i | \mathbf{Y}_{0: i-1}, \mathbf{\overline{X}}_{1:n})$。这个流程跟基于 RNN 的解码器是一样的。然而,与基于 RNN 的解码器不同的是,在这里,目标向量 $\mathbf{y}_i$ 的分布是*显式*(或直接)地以其所有前驱目标向量 $\mathbf{y} _0, \ldots, \mathbf{y}_{i-1}$ 为条件的,稍后我们将详细介绍。此处第 0 个目标向量 $\mathbf{y}_0$ 仍表示为 $\text{BOS}$ 向量。有了条件分布 $p_{\theta_{\text{dec}}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{\overline{X} }_{1:n})$,我们就可以*自回归*生成输出了。至此,我们定义了可用于推理的从输入序列 $\mathbf{X}_{1:n}$ 到输出序列 $\mathbf{Y}_{1:m}$ 的映射。 + +我们可视化一下使用*基于 transformer* 的编码器-解码器模型*自回归*地生成序列的完整过程。 + +![](https://raw.githubusercontent.com/patrickvonplaten/scientific_images/master/encoder_decoder/EncoderDecoder.png) + +上图中,绿色为基于 transformer 的编码器,红色为基于 transformer 的解码器。与上一节一样,我们展示了如何将表示为 $(\mathbf{x}_1 = \text{I},\mathbf{ x}_2 = \text{want},\mathbf{x}_3 = \text{to},\mathbf{x}_4 = \text{buy},\mathbf{x}_5 = \text{a},\mathbf{x}_6 = \text{car},\mathbf{x}_7 = \text{EOS})$ 的英语句子 “I want to buy a car” 翻译成表示为 $(\mathbf{y}_0 = \text{BOS},\mathbf{y }_1 = \text{Ich},\mathbf{y}_2 = \text{will},\mathbf{y}_3 = \text{ein},\mathbf{y}_4 = \text{Auto},\mathbf{y}_5 = \text{kaufen},\mathbf{y}_6=\text{EOS})$ 的德语句子 “Ich will ein Auto kaufen”。 + +首先,编码器将完整的输入序列 $\mathbf{X}_{1:7}$ = "I want to buy a car"(由浅绿色向量表示)处理为上下文相关的编码序列 $\mathbf{\overline{X}}_{1:7}$。这里上下文相关的意思是,*举个例子*,$\mathbf{\overline{x}}_4$ 的编码不仅取决于输入 $\mathbf{x}_4$ = "buy",还与所有其他词 "I"、"want"、"to"、"a"、"car" 及 "EOS" 相关,这些词即该词的*上下文*。 + +接下来,输入编码 $\mathbf{\overline{X}}_{1:7}$ 与 BOS 向量(*即* $\mathbf{y}_0$)被一起馈送到解码器。解码器将输入 $\mathbf{\overline{X}}_{1:7}$ 和 $\mathbf{y}_0$ 变换为第一个 logit $\mathbf{l }_1$(图中以深红色显示),从而得到第一个目标向量 $\mathbf{y}_1$ 的条件分布: + +$$ p_{\theta_{enc, dec}}(\mathbf{y} | \mathbf{y}_0, \mathbf{X}_{1:7}) = p_{\theta_{enc, dec}}(\mathbf{y} | \text{BOS}, \text{I want to buy a car EOS}) = p_{\theta_{dec}}(\mathbf{y} | \text{BOS}, \mathbf{\overline{X}}_{1:7}) $$ + +然后,从该分布中采样出第一个目标向量 $\mathbf{y}_1$ = $\text{Ich}$(由灰色箭头表示),得到第一个输出后,我们会并将其继续馈送到解码器。现在,解码器开始以 $\mathbf{y}_0$ = "BOS" 和 $\mathbf{y}_1$ = "Ich" 为条件来定义第二个目标向量的条件分布 $\mathbf{y}_2$: + +$$ p_{\theta_{dec}}(\mathbf{y} | \text{BOS Ich}, \mathbf{\overline{X}}_{1:7}) $$ + +再采样一次,生成目标向量 $\mathbf{y}_2$ = "will"。重复该自回归过程,直到第 6 步从条件分布中采样到 EOS: + +$$ \text{EOS} \sim p_{\theta_{dec}}(\mathbf{y} | \text{BOS Ich will ein Auto kaufen}, \mathbf{\overline{X}}_{1:7}) $$ + +这里有一点比较重要,我们仅在第一次前向传播时用编码器将 $\mathbf{X}_{1:n}$ 映射到 $\mathbf{\overline{X}}_{ 1:n}$。从第二次前向传播开始,解码器可以直接使用之前算得的编码 $\mathbf{\overline{X}}_{1:n}$。为清楚起见,下图画出了上例中第一次和第二次前向传播所需要做的操作。 + +![](https://raw.githubusercontent.com/patrickvonplaten/scientific_images/master/encoder_decoder/EncoderDecoder_step_by_step.png) + +可以看出,仅在步骤 $i=1$ 时,我们才需要将 "I want to buy a car EOS" 编码为 $\mathbf{\overline{X}}_{1:7}$。从 $i=2$ 开始,解码器只是简单地复用了已生成的编码。 + +在 🤗 transformers 库中,这一自回归生成过程是在调用 `.generate()` 方法时在后台完成的。我们用一个翻译模型来实际体验一下。 + +```python +from transformers import MarianMTModel, MarianTokenizer + +tokenizer = MarianTokenizer.from_pretrained("Helsinki-NLP/opus-mt-en-de") +model = MarianMTModel.from_pretrained("Helsinki-NLP/opus-mt-en-de") + +# create ids of encoded input vectors +input_ids = tokenizer("I want to buy a car", return_tensors="pt").input_ids + +# translate example +output_ids = model.generate(input_ids)[0] + +# decode and print +print(tokenizer.decode(output_ids)) +``` + +*输出:* + +``` + Ich will ein Auto kaufen +``` + +`.generate()` 接口做了很多事情。首先,它将 `input_ids` 传递给编码器。然后,它将一个预定义的标记连同已编码的 `input_ids`一起传递给解码器(在使用 `MarianMTModel` 的情况下,该预定义标记为 $\text{}$)。接着,它使用波束搜索解码机制根据最新的解码器输出的概率分布${}^1$自回归地采样下一个输出词。更多有关波束搜索解码工作原理的详细信息,建议阅读[这篇博文](https://huggingface.co/blog/zh/how-to-generate) 。 + +我们在附录中加入了一个代码片段,展示了如何“从头开始”实现一个简单的生成方法。如果你想要完全了解*自回归*生成的幕后工作原理,强烈建议阅读附录。 + +总结一下: + +- 基于 transformer 的编码器实现了从输入序列 $\mathbf{X}_{1:n}$ 到上下文相关的编码序列 $\mathbf{\overline{X}}_{1 :n}$ 之间的映射。 +- 基于 transformer 的解码器定义了条件分布 $p_{\theta_{\text{dec}}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{ \overline{X}}_{1:n})$。 +- 给定适当的解码机制,可以自回归地从 $p_{\theta_{\text{dec}}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{\overline{X}}_{1:n}), \forall i \in \{1, \ldots, m\}$ 中采样出输出序列 $\mathbf{Y}_{1:m}$。 + +太好了,现在我们已经大致了解了*基于 transformer 的*编码器-解码器模型的工作原理。下面的部分,我们将更深入地研究模型的编码器和解码器部分。更具体地说,我们将确切地看到编码器如何利用自注意力层来产生一系列上下文相关的向量编码,以及自注意力层如何实现高效并行化。然后,我们将详细解释自注意力层在解码器模型中的工作原理,以及解码器如何通过*交叉注意力*层以编码器输出为条件来定义分布 $p_{\theta_ {\text{dec}}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{\overline{X}}_{1:n})$。在此过程中,基于 transformer 的编码器-解码器模型如何解决基于 RNN 的编码器-解码器模型的长程依赖问题的答案将变得显而易见。 + +------------------------------------------------------------------------ + +${}^1$ 可以从[此处](https://s3.amazonaws.com/models.huggingface.co/bert/Helsinki-NLP/opus-mt-en-de/config.json)获取 `"Helsinki-NLP/opus-mt-en-de"` 的解码参数。可以看到,其使用了 `num_beams=6` 的波束搜索。 + +## **编码器** + +如前一节所述,*基于 transformer* 的编码器将输入序列映射到上下文相关的编码序列: + +$$ f_{\theta_{\text{enc}}}: \mathbf{X}_{1:n} \to \mathbf{\overline{X}}_{1:n} $$ + +仔细观察架构,基于 transformer 的编码器由许多*残差注意力模块*堆叠而成。每个编码器模块都包含一个**双向**自注意力层,其后跟着两个前馈层。这里,为简单起见,我们忽略归一化层(normalization layer)。此外,我们不会深入讨论两个前馈层的作用,仅将其视为每个编码器模块 ${}^1$ 的输出映射层。双向自注意层将每个输入向量 $\mathbf{x'}_j, \forall j \in \{1, \ldots, n\}$ 与全部输入向量 $\mathbf{x'}_1, \ldots, \mathbf{x'}_n$ 相关联并通过该机制将每个输入向量 $\mathbf{x'}_j$ 提炼为与其自身上下文相关的表征:$\mathbf{x''}_j$。因此,第一个编码器块将输入序列 $\mathbf{X}_{1:n}$(如下图浅绿色所示)中的每个输入向量从*上下文无关*的向量表征转换为*上下文相关*的向量表征,后面每一个编码器模块都会进一步细化这个上下文表征,直到最后一个编码器模块输出最终的上下文相关编码 $\mathbf{\overline{X}}_{1:n}$(如下图深绿色所示)。 + +我们对`编码器如何将输入序列 "I want to buy a car EOS" 变换为上下文编码序列`这一过程进行一下可视化。与基于 RNN 的编码器类似,基于 transformer 的编码器也在输入序列最后添加了一个 EOS,以提示模型输入向量序列已结束 ${}^2$。 + +![](https://raw.githubusercontent.com/patrickvonplaten/scientific_images/master/encoder_decoder/Encoder_block.png) + +上图中的*基于 transformer* 的编码器由三个编码器模块组成。我们在右侧的红框中详细列出了第二个编码器模块的前三个输入向量:$\mathbf{x}_1$,$\mathbf {x}_2$ 及 $\mathbf{x}_3$。红框下部的全连接图描述了双向自注意力机制,上面是两个前馈层。如前所述,我们主要关注双向自注意力机制。 + +可以看出,自注意力层的每个输出向量 $\mathbf{x''}_i, \forall i \in \{1, \ldots, 7\}$ 都*直接*依赖于*所有*输入向量 $\mathbf{x'}_1, \ldots, \mathbf{x'}_7$。这意味着,单词 "want" 的输入向量表示 $\mathbf{x'}_2$ 与单词 "buy"(即 $\mathbf{x'}_4$)和单词 "I"(即 $\mathbf{x'}_1$)直接相关。 因此,"want" 的输出向量表征,*即* $\mathbf{x''}_2$,是一个融合了其上下文信息的更精细的表征。 + +我们更深入了解一下双向自注意力的工作原理。编码器模块的输入序列 $\mathbf{X'}_{1:n}$ 中的每个输入向量 $\mathbf{x'}_i$ 通过三个可训练的权重矩阵 $\mathbf{W}_q$,$\mathbf{W}_v$,$\mathbf{W}_k$ 分别投影至 `key` 向量 $\mathbf{k}_i$、`value` 向量 $\mathbf{v}_i$ 和 `query` 向量 $\mathbf{q}_i$(下图分别以橙色、蓝色和紫色表示): + +$$ \mathbf{q}_i = \mathbf{W}_q \mathbf{x'}_i,$$ +$$ \mathbf{v}_i = \mathbf{W}_v \mathbf{x'}_i,$$ +$$ \mathbf{k}_i = \mathbf{W}_k \mathbf{x'}_i, $$ +$$ \forall i \in \{1, \ldots n \}$$ + +请注意,对每个输入向量 $\mathbf{x}_i(\forall i \in \{i, \ldots, n\}$)而言,其所使用的权重矩阵都是**相同**的。将每个输入向量 $\mathbf{x}_i$ 投影到 `query`、`key` 和 `value` 向量后,将每个 `query` 向量 $\mathbf{q}_j(\forall j \in \{1, \ldots, n\}$)与所有 `key` 向量 $\mathbf{k}_1, \ldots, \mathbf{k}_n$ 进行比较。哪个 `key` 向量与 `query` 向量 $\mathbf{q}_j$ 越相似,其对应的 `value` 向量 $\mathbf{v}_j$ 对输出向量 $\mathbf{x''}_j$ 的影响就越重要。更具体地说,输出向量 $\mathbf{x''}_j$ 被定义为所有 `value` 向量的加权和 $\mathbf{v}_1, \ldots, \mathbf{v}_n$ 加上输入向量 $\mathbf{x'}_j$。而各 `value` 向量的权重与 $\mathbf{q}_j$ 和各个 `key` 向量 $\mathbf{k}_1, \ldots, \mathbf{k}_n$ 之间的余弦相似度成正比,其数学公式为 $\textbf{Softmax}(\mathbf{K}_{1:n}^\intercal \mathbf{q}_j)$,如下文的公式所示。关于自注意力层的完整描述,建议读者阅读[这篇](http://jalammar.github.io/illustrated-transformer/)博文或[原始论文](https://arxiv.org/abs/1706.03762)。 + +好吧,又复杂起来了。我们以上例中的一个 `query` 向量为例图解一下双向自注意层。为简单起见,本例中假设我们的*基于 transformer* 的解码器只有一个注意力头 `config.num_heads = 1` 并且没有归一化层。 + +![](https://raw.githubusercontent.com/patrickvonplaten/scientific_images/master/encoder_decoder/encoder_detail.png) + +图左显示了上个例子中的第二个编码器模块,右边详细可视化了第二个输入向量 $\mathbf{x'}_2$ 的双向自注意机制,其对应输入词为 "want"。首先将所有输入向量 $\mathbf{x'}_1, \ldots, \mathbf{x'}_7$ 投影到它们各自的 `query` 向量 $\mathbf{q}_1, \ldots, \mathbf{q}_7$(上图中仅以紫色显示前三个 `query` 向量),`value` 向量 $\mathbf{v}_1, \ldots, \mathbf{v}_7$(蓝色) 和 `key` 向量 $\mathbf{k}_1, \ldots, \mathbf{k}_7$(橙色)。然后,将 `query` 向量 $\mathbf{q}_2$ 与所有 `key` 向量的转置(*即* $\mathbf{K}_{1:7}^{\intercal}$)相乘,随后进行 softmax 操作以产生*自注意力权重*。 自注意力权重最终与各自的 `value` 向量相乘,并加上输入向量 $\mathbf{x'}_2$,最终输出单词 "want" 的上下文相关表征, *即* $\mathbf{x''}_2$(图右深绿色表示)。整个等式显示在图右框的上部。 $\mathbf{K}_{1:7}^{\intercal}$ 和 $\mathbf{q}_2$ 的相乘使得将 "want" 的向量表征与所有其他输入("I","to","buy","a","car","EOS")的向量表征相比较成为可能,因此自注意力权重反映出每个输入向量 $\mathbf{x'}_j$ 对 "want" 一词的最终表征 $\mathbf{x''}_2$ 的重要程度。 + +为了进一步理解双向自注意力层的含义,我们假设以下句子:“*房子很漂亮且位于市中心,因此那儿公共交通很方便*”。 “那儿”这个词指的是“房子”,这两个词相隔12个字。在基于 transformer 的编码器中,双向自注意力层运算一次,即可将“房子”的输入向量与“那儿”的输入向量相关联。相比之下,在基于 RNN 的编码器中,相距 12 个字的词将需要至少 12 个时间步的运算,这意味着在基于 RNN 的编码器中所需数学运算与距离呈线性关系。这使得基于 RNN 的编码器更难对长程上下文表征进行建模。此外,很明显,基于 transformer 的编码器比基于 RNN 的编码器-解码器模型更不容易丢失重要信息,因为编码的序列长度相对输入序列长度保持不变,*即* $\textbf{len }(\mathbf{X}_{1:n}) = \textbf{len}(\mathbf{\overline{X}}_{1:n}) = n$,而 RNN 则会将 $\textbf{len}((\mathbf{X}_{1:n}) = n$ 压缩到 $\textbf{len}(\mathbf{c}) = 1$,这使得 RNN 很难有效地对输入词之间的长程依赖关系进行编码。 + +除了更容易学到长程依赖外,我们还可以看到 transformer 架构能够并行处理文本。从数学上讲,这是通过将自注意力机制表示为 `query`、`key` 和 `value` 的矩阵乘来完成的: + +$$\mathbf{X''}_{1:n} = \mathbf{V}_{1:n} \text{Softmax}(\mathbf{Q}_{1:n}^\intercal \mathbf{K}_{1:n}) + \mathbf{X'}_{1:n} $$ + +输出 $\mathbf{X''}_{1:n} = \mathbf{x''}_1, \ldots, \mathbf{x''}_n$ 是由一系列矩阵乘计算和 softmax 操作算得,因此可以有效地并行化。请注意,在基于 RNN 的编码器模型中,隐含状态 $\mathbf{c}$ 的计算必须按顺序进行:先计算第一个输入向量的隐含状态 $\mathbf{x} _1$;然后计算第二个输入向量的隐含状态,其取决于第一个隐含向量的状态,依此类推。RNN 的顺序性阻碍了有效的并行化,并使其在现代 GPU 硬件上比基于 transformer 的编码器模型的效率低得多。 + +太好了,现在我们应该对 a) 基于 transformer 的编码器模型如何有效地建模长程上下文表征,以及 b) 它们如何有效地处理长序列向量输入这两个方面有了比较好的理解了。 + +现在,我们写一个 `MarianMT` 编码器-解码器模型的编码器部分的小例子,以验证这些理论在实践中行不行得通。 + +------------------------------------------------------------------------ + +${}^1$ 关于前馈层在基于 transformer 的模型中所扮演的角色的详细解释超出了本文的范畴。[Yun 等人(2017)](https://arxiv.org/pdf/1912.10077.pdf) 的工作认为前馈层对于将每个上下文向量 $\mathbf{x'}_i$ 映射到目标输出空间至关重要,而单靠*自注意力*层无法达成这一目的。这里请注意,每个输出词元 $\mathbf{x'}$ 都经由相同的前馈层处理。更多详细信息,建议读者阅读论文。 + +${}^2$ 我们无须将 EOS 附加到输入序列,虽然有工作表明,在很多情况下加入它可以提高性能。相反地,基于 transformer 的解码器必须把 $\text{BOS}$ 作为第 0 个目标向量,并以之为条件预测第 1 个目标向量。 + +```python +from transformers import MarianMTModel, MarianTokenizer +import torch + +tokenizer = MarianTokenizer.from_pretrained("Helsinki-NLP/opus-mt-en-de") +model = MarianMTModel.from_pretrained("Helsinki-NLP/opus-mt-en-de") + +embeddings = model.get_input_embeddings() + +# create ids of encoded input vectors +input_ids = tokenizer("I want to buy a car", return_tensors="pt").input_ids + +# pass input_ids to encoder +encoder_hidden_states = model.base_model.encoder(input_ids, return_dict=True).last_hidden_state + +# change the input slightly and pass to encoder +input_ids_perturbed = tokenizer("I want to buy a house", return_tensors="pt").input_ids +encoder_hidden_states_perturbed = model.base_model.encoder(input_ids_perturbed, return_dict=True).last_hidden_state + +# compare shape and encoding of first vector +print(f"Length of input embeddings {embeddings(input_ids).shape[1]}. Length of encoder_hidden_states {encoder_hidden_states.shape[1]}") + +# compare values of word embedding of "I" for input_ids and perturbed input_ids +print("Is encoding for `I` equal to its perturbed version?: ", torch.allclose(encoder_hidden_states[0, 0], encoder_hidden_states_perturbed[0, 0], atol=1e-3)) +``` + +*输出:* +``` + Length of input embeddings 7. Length of encoder_hidden_states 7 + Is encoding for `I` equal to its perturbed version?: False +``` + +我们比较一下输入词嵌入的序列长度(*即* `embeddings(input_ids)`,对应于 $\mathbf{X}_{1:n}$)和 `encoder_hidden_​​states` 的长度(对应于$\mathbf{\overline{X}}_{1:n}$)。同时,我们让编码器对单词序列 "I want to buy a car" 及其轻微改动版 "I want to buy a house" 分别执行前向操作,以检查第一个词 "I" 的输出编码在更改输入序列的最后一个单词后是否会有所不同。 + +不出意外,输入词嵌入和编码器输出编码的长度,*即* $\textbf{len}(\mathbf{X}_{1:n})$ 和 $\textbf{len }(\mathbf{\overline{X}}_{1:n})$,是相等的。同时,可以注意到当最后一个单词从 "car" 改成 "house" 后,$\mathbf{\overline{x}}_1 = \text{"I"}$ 的编码输出向量的值也改变了。因为我们现在已经理解了双向自注意力机制,这就不足为奇了。 + +顺带一提,*自编码*模型(如 BERT)的架构与*基于 transformer* 的编码器模型是完全一样的。 *自编码*模型利用这种架构对开放域文本数据进行大规模自监督预训练,以便它们可以将任何单词序列映射到深度双向表征。在 [Devlin 等(2018)](https://arxiv.org/abs/1810.04805) 的工作中,作者展示了一个预训练 BERT 模型,其顶部有一个任务相关的分类层,可以在 11 个 NLP 任务上获得 SOTA 结果。你可以从[此处](https://huggingface.co/transformers/model_summary.html#autoencoding-models) 找到 🤗 transformers 支持的所有*自编码*模型。 + +## **解码器** + +如*编码器-解码器*部分所述,*基于 transformer* 的解码器定义了给定上下文编码序列条件下目标序列的条件概率分布: + +$$ p_{\theta_{dec}}(\mathbf{Y}_{1: m} | \mathbf{\overline{X}}_{1:n}) $$ + +根据贝叶斯法则,在给定上下文编码序列和每个目标变量的所有前驱目标向量的条件下,可将上述分布分解为每个目标向量的条件分布的乘积: + +$$ p_{\theta_{dec}}(\mathbf{Y}_{1:m} | \mathbf{\overline{X}}_{1:n}) = \prod_{i=1}^{m} p_{\theta_{dec}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{\overline{X}}_{1:n}) $$ + +我们首先了解一下基于 transformer 的解码器如何定义概率分布。基于 transformer 的解码器由很多*解码器模块*堆叠而成,最后再加一个线性层(即 “LM 头”)。这些解码器模块的堆叠将上下文相关的编码序列 $\mathbf{\overline{X}}_{1:n}$ 和每个目标向量的前驱输入 $\mathbf{Y}_{0:i-1}$(这里 $\mathbf{y}_0$ 为 BOS)映射为目标向量的编码序列 $\mathbf{\overline{Y} }_{0:i-1}$。然后,“LM 头”将目标向量的编码序列 $\mathbf{\overline{Y}}_{0:i-1}$ 映射到 logit 向量序列 $\mathbf {L}_{1:n} = \mathbf{l}_1, \ldots, \mathbf{l}_n$, 而每个 logit 向量$\mathbf{l}_i$ 的维度即为词表的词汇量。这样,对于每个 $i \in \{1, \ldots, n\}$,其在整个词汇表上的概率分布可以通过对 $\mathbf{l}_i$ 取 softmax 获得。公式如下: + +$$p_{\theta_{dec}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{\overline{X}}_{1:n}), \forall i \in \{1, \ldots, n\}$$ + +“LM 头” 即为词嵌入矩阵的转置,*即* $\mathbf{W}_{\text{emb}}^{\intercal} = \left[\mathbf{ y}^1, \ldots, \mathbf{y}^{\text{vocab}}\right]^{​​T}$ ${}^1$。直观上来讲,这意味着对于所有 $i \in \{0, \ldots, n - 1\}$ “LM 头” 层会将 $\mathbf{\overline{y }}_i$ 与词汇表 $\mathbf{y}^1, \ldots, \mathbf{y}^{\text{vocab}}$ 中的所有词嵌入一一比较,输出的 logit 向量 $\mathbf{l}_{i+1}$ 即表示 $\mathbf{\overline{y }}_i$ 与每个词嵌入之间的相似度。Softmax 操作只是将相似度转换为概率分布。对于每个 $i \in \{1, \ldots, n\}$,以下等式成立: + +$$ p_{\theta_{dec}}(\mathbf{y} | \mathbf{\overline{X}}_{1:n}, \mathbf{Y}_{0:i-1})$$ +$$ = \text{Softmax}(f_{\theta_{\text{dec}}}(\mathbf{\overline{X}}_{1:n}, \mathbf{Y}_{0:i-1}))$$ +$$ = \text{Softmax}(\mathbf{W}_{\text{emb}}^{\intercal} \mathbf{\overline{y}}_{i-1})$$ +$$ = \text{Softmax}(\mathbf{l}_i) $$ + +总结一下,为了对目标向量序列 $\mathbf{Y}_{1: m}$ 的条件分布建模,先在目标向量 $\mathbf{Y}_{1: m-1}$ 前面加上特殊的 $\text{BOS}$ 向量(*即* $\mathbf{y}_0$),并将其与上下文相关的编码序列 $\mathbf{\overline{X}}_{1:n}$ 一起映射到 logit 向量序列 $\mathbf{L}_{1:m}$。然后,使用 softmax 操作将每个 logit 目标向量 $\mathbf{l}_i$ 转换为目标向量 $\mathbf{y}_i$ 的条件概率分布。最后,将所有目标向量的条件概率 $\mathbf{y}_1, \ldots, \mathbf{y}_m$ 相乘得到完整目标向量序列的条件概率: + +$$ p_{\theta_{dec}}(\mathbf{Y}_{1:m} | \mathbf{\overline{X}}_{1:n}) = \prod_{i=1}^{m} p_{\theta_{dec}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{\overline{X}}_{1:n}).$$ + +与基于 transformer 的编码器不同,在基于 transformer 的解码器中,其输出向量 $\mathbf{\overline{y}}_{i-1}$ 应该能很好地表征*下一个*目标向量(即 $\mathbf{y}_i$),而不是输入向量本身(即 $\mathbf{y}_{i-1}$)。此外,输出向量 $\mathbf{\overline{y}}_{i-1}$ 应基于编码器的整个输出序列 $\mathbf{\overline{X}}_{1:n}$。为了满足这些要求,每个解码器块都包含一个**单向**自注意层,紧接着是一个**交叉注意**层,最后是两个前馈层${}^2$。单向自注意层将其每个输入向量 $\mathbf{y'}_j$ 仅与其前驱输入向量 $\mathbf{y'}_i$(其中 $i \le j$,且 $j \in \{1, \ldots, n\}$) 相关联,来模拟下一个目标向量的概率分布。交叉注意层将其每个输入向量 $\mathbf{y''}_j$ 与编码器输出的所有向量 $\mathbf{\overline{X}}_{1:n}$ 相关联,来根据编码器输入预测下一个目标向量的概率分布。 + +好,我们仍以英语到德语翻译为例可视化一下*基于 transformer* 的解码器。 + +![](https://raw.githubusercontent.com/patrickvonplaten/scientific_images/master/encoder_decoder/encoder_decoder_detail.png) + +我们可以看到解码器将 $\mathbf{Y}_{0:5}$: "BOS"、"Ich"、"will"、"ein"、"Auto"、"kaufen"(图中以浅红色显示)和 "I"、"want"、"to"、"buy"、"a"、"car"、"EOS"(*即* $\mathbf{\overline{X}}_{1:7}$(图中以深绿色显示))映射到 logit 向量 $\mathbf{L}_{1:6}$(图中以深红色显示)。 + +因此,对每个 $\mathbf{l}_1、\mathbf{l}_2、\ldots、\mathbf{l}_6$ 使用 softmax 操作可以定义下列条件概率分布: + +$$ p_{\theta_{dec}}(\mathbf{y} | \text{BOS}, \mathbf{\overline{X}}_{1:7}), $$ +$$ p_{\theta_{dec}}(\mathbf{y} | \text{BOS Ich}, \mathbf{\overline{X}}_{1:7}), $$ +$$ \ldots, $$ +$$ p_{\theta_{dec}}(\mathbf{y} | \text{BOS Ich will ein Auto kaufen}, \mathbf{\overline{X}}_{1:7}) $$ + +总条件概率如下: + +$$ p_{\theta_{dec}}(\text{Ich will ein Auto kaufen EOS} | \mathbf{\overline{X}}_{1:n})$$ + +其可表示为以下乘积形式: + +$$ p_{\theta_{dec}}(\text{Ich} | \text{BOS}, \mathbf{\overline{X}}_{1:7}) \times \ldots \times p_{\theta_{dec}}(\text{EOS} | \text{BOS Ich will ein Auto kaufen}, \mathbf{\overline{X}}_{1:7}) $$ + +图右侧的红框显示了前三个目标向量 $\mathbf{y}_0$、$\mathbf{y}_1$、 $\mathbf{y}_2$ 在一个解码器模块中的行为。下半部分说明了单向自注意机制,中间说明了交叉注意机制。我们首先关注单向自注意力。 + +与双向自注意一样,在单向自注意中,`query` 向量 $\mathbf{q}_0, \ldots, \mathbf{q}_{m-1}$(如下图紫色所示),`key` 向量 $\mathbf{k}_0, \ldots, \mathbf{k}_{m-1}$(如下图橙色所示),和 `value` 向量 $\mathbf{v }_0, \ldots, \mathbf{v}_{m-1}$(如下图蓝色所示)均由输入向量 $\mathbf{y'}_0, \ldots, \mathbf{ y'}_{m-1}$(如下图浅红色所示)映射而来。然而,在单向自注意力中,每个 `query` 向量 $\mathbf{q}_i$ *仅*与当前及之前的 `key` 向量进行比较(即 $\mathbf{k}_0 , \ldots, \mathbf{k}_i$)并生成各自的*注意力权重*。这可以防止输出向量 $\mathbf{y''}_j$(如下图深红色所示)包含未来向量($\mathbf{y}_i$,其中 $i > j$ 且 $j \in \{0, \ldots, m - 1 \}$)的任何信息 。与双向自注意力的情况一样,得到的注意力权重会乘以它们各自的 `value` 向量并加权求和。 + +我们将单向自注意力总结如下: + +$$\mathbf{y''}_i = \mathbf{V}_{0: i} \textbf{Softmax}(\mathbf{K}_{0: i}^\intercal \mathbf{q}_i) + \mathbf{y'}_i$$ + +请注意,`key` 和 `value` 向量的索引范围都是 $0:i$ 而不是 $0: m-1$,$0: m-1$ 是双向自注意力中 `key` 向量的索引范围。 + +下图显示了上例中输入向量 $\mathbf{y'}_1$ 的单向自注意力。 + +![](https://raw.githubusercontent.com/patrickvonplaten/scientific_images/master/encoder_decoder/causal_attn.png) + +可以看出 $\mathbf{y''}_1$ 只依赖于 $\mathbf{y'}_0$ 和 $\mathbf{y'}_1$。因此,单词 "Ich" 的向量表征(*即* $\mathbf{y'}_1$)仅与其自身及 "BOS" 目标向量(*即* $\mathbf{y'}_0$)相关联,而**不**与 "will" 的向量表征(*即* $\mathbf{y'}_2$)相关联。 + +那么,为什么解码器使用单向自注意力而不是双向自注意力这件事很重要呢?如前所述,基于 transformer 的解码器定义了从输入向量序列 $\mathbf{Y}_{0: m-1}$ 到其**下一个**解码器输入的 logit 向量的映射,即 $\mathbf{L}_{1:m}$。举个例子,输入向量 $\mathbf{y}_1$ = "Ich" 会映射到 logit 向量 $\mathbf{l}_2$,并用于预测下一个输入向量 $\mathbf{y}_2$。因此,如果 $\mathbf{y'}_1$ 可以获取后续输入向量 $\mathbf{Y'}_{2:5}$的信息,解码器将会简单地复制向量 "will" 的向量表征(*即* $\mathbf{y'}_2$)作为其输出 $\mathbf{y''}_1$,并就这样一直传播到最后一层,所以最终的输出向量 $\mathbf{\overline{y}}_1$ 基本上就只对应于 $\mathbf{y}_2$ 的向量表征,并没有起到预测的作用。 + +这显然是不对的,因为这样的话,基于 transformer 的解码器永远不会学到在给定所有前驱词的情况下预测下一个词,而只是对所有 $i \in \{1, \ldots, m \}$,通过网络将目标向量 $\mathbf{y}_i$ 复制到 $\mathbf {\overline{y}}_{i-1}$。以下一个目标变量本身为条件去定义下一个目标向量,即从 $p(\mathbf{y} | \mathbf{Y}_{0:i}, \mathbf{\overline{ X}})$ 中预测 $\mathbf{y}_i$, 显然是不对的。因此,单向自注意力架构允许我们定义一个*因果的*概率分布,这对有效建模下一个目标向量的条件分布而言是必要的。 + +太棒了!现在我们可以转到连接编码器和解码器的层 - *交叉注意力*机制! + +交叉注意层将两个向量序列作为输入:单向自注意层的输出 $\mathbf{Y''}_{0: m-1}$ 和编码器的输出 $\mathbf{\overline{X}}_{1:n}$。与自注意力层一样,`query` 向量 $\mathbf{q}_0, \ldots, \mathbf{q}_{m-1}$ 是上一层输出向量 $\mathbf{Y''}_{0: m-1}$ 的投影。而 `key` 和 `value` 向量 $\mathbf{k}_0, \ldots, \mathbf{k}_{n-1}$、$\mathbf{v}_0, \ldots, \mathbf {v}_{n-1}$ 是编码器输出向量 $\mathbf{\overline{X}}_{1:n}$ 的投影。定义完 `key`、`value` 和 `query` 向量后,将 `query` 向量 $\mathbf{q}_i$ 与 *所有* `key` 向量进行比较,并用各自的得分对相应的 `value` 向量进行加权求和。这个过程与*双向*自注意力对所有 $i \in {0, \ldots, m-1}$ 求 $\mathbf{y'''}_i$ 是一样的。交叉注意力可以概括如下: + +$$ +\mathbf{y'''}_i = \mathbf{V}_{1:n} \textbf{Softmax}(\mathbf{K}_{1: n}^\intercal \mathbf{q}_i) + \mathbf{y''}_i +$$ + +注意,`key` 和 `value` 向量的索引范围是 $1:n$,对应于编码器输入向量的数目。 + +我们用上例中输入向量 $\mathbf{y''}_1$ 来图解一下交叉注意力机制。 + +![](https://raw.githubusercontent.com/patrickvonplaten/scientific_images/master/encoder_decoder/cross_attention.png) + +我们可以看到 `query` 向量 $\mathbf{q}_1$(紫色)源自 $\mathbf{y''}_1$(红色),因此其依赖于单词 "Ich" 的向量表征。然后将 `query` 向量 $\mathbf{q}_1$ 与对应的 `key` 向量 $\mathbf{k}_1, \ldots, \mathbf{k}_7$(黄色)进行比较,这里的 `key` 向量对应于编码器对其输入 $\mathbf{X}_{1:n}$ = \"I want to buy a car EOS\" 的上下文相关向量表征。这将 \"Ich\" 的向量表征与所有编码器输入向量直接关联起来。最后,将注意力权重乘以 `value` 向量 $\mathbf{v}_1, \ldots, \mathbf{v}_7$(青绿色)并加上输入向量 $\mathbf{y''}_1$ 最终得到输出向量 $\mathbf{y'''}_1$(深红色)。 + +所以,直观而言,到底发生了什么?每个输出向量 $\mathbf{y'''}_i$ 是由所有从编码器来的 `value` 向量($\mathbf{v}_{1}, \ldots, \mathbf{v }_7$ )的加权和与输入向量本身 $\mathbf{y''}_i$ 相加而得(参见上图所示的公式)。其关键思想是:*来自解码器的* $\mathbf{q}_i$ 的 `query` 投影与 *来自编码器的 $\mathbf{k}_j$* 越相关,其对应的 $\mathbf{v}_j$ 对输出的影响越大。 + +酷!现在我们可以看到这种架构的每个输出向量 $\mathbf{y'''}_i$ 取决于其来自编码器的输入向量 $\mathbf{\overline{X}}_{1 :n}$ 及其自身的输入向量 $\mathbf{y''}_i$。这里有一个重要的点,在该架构中,虽然输出向量 $\mathbf{y'''}_i$ 依赖来自编码器的输入向量 $\mathbf{\overline{X}}_{1:n}$,但其完全独立于该向量的数量 $n$。所有生成 `key` 向量 $\mathbf{k}_1, \ldots, \mathbf{k}_n$ 和 `value` 向量 $\mathbf{v}_1, \ldots, \mathbf{v}_n $ 的投影矩阵 $\mathbf{W}^{\text{cross}}_{k}$ 和 $\mathbf{W}^{\text{cross}}_{v}$ 都是与 $n$ 无关的,所有 $n$ 共享同一个投影矩阵。且对每个 $\mathbf{y'''}_i$,所有 `value` 向量 $\mathbf{v}_1, \ldots, \mathbf{v}_n$ 被加权求和至一个向量。至此,关于`为什么基于 transformer 的解码器没有远程依赖问题而基于 RNN 的解码器有`这一问题的答案已经很显然了。因为每个解码器 logit 向量*直接*依赖于每个编码后的输出向量,因此比较第一个编码输出向量和最后一个解码器 logit 向量只需一次操作,而不像 RNN 需要很多次。 + +总而言之,单向自注意力层负责基于当前及之前的所有解码器输入向量建模每个输出向量,而交叉注意力层则负责进一步基于编码器的所有输入向量建模每个输出向量。 + +为了验证我们对该理论的理解,我们继续上面编码器部分的代码,完成解码器部分。 + +------------------------------------------------------------------------ + +${}^1$ 词嵌入矩阵 $\mathbf{W}_{\text{emb}}$ 为每个输入词提供唯一的*上下文无关*向量表示。这个矩阵通常也被用作 “LM 头”,此时 “LM 头”可以很好地完成“编码向量到 logit” 的映射。 + +${}^2$ 与编码器部分一样,本文不会详细解释前馈层在基于 transformer 的模型中的作用。[Yun 等(2017)](https://arxiv.org/pdf/1912.10077.pdf) 的工作认为前馈层对于将每个上下文相关向量 $\mathbf{x'}_i$ 映射到所需的输出空间至关重要,仅靠自注意力层无法完成。这里应该注意,每个输出词元 $\mathbf{x'}$ 对应的前馈层是相同的。有关更多详细信息,建议读者阅读论文。 + +```python +from transformers import MarianMTModel, MarianTokenizer +import torch + +tokenizer = MarianTokenizer.from_pretrained("Helsinki-NLP/opus-mt-en-de") +model = MarianMTModel.from_pretrained("Helsinki-NLP/opus-mt-en-de") +embeddings = model.get_input_embeddings() + +# create token ids for encoder input +input_ids = tokenizer("I want to buy a car", return_tensors="pt").input_ids + +# pass input token ids to encoder +encoder_output_vectors = model.base_model.encoder(input_ids, return_dict=True).last_hidden_state + +# create token ids for decoder input +decoder_input_ids = tokenizer(" Ich will ein", return_tensors="pt", add_special_tokens=False).input_ids + +# pass decoder input ids and encoded input vectors to decoder +decoder_output_vectors = model.base_model.decoder(decoder_input_ids, encoder_hidden_states=encoder_output_vectors).last_hidden_state + +# derive embeddings by multiplying decoder outputs with embedding weights +lm_logits = torch.nn.functional.linear(decoder_output_vectors, embeddings.weight, bias=model.final_logits_bias) + +# change the decoder input slightly +decoder_input_ids_perturbed = tokenizer(" Ich will das", return_tensors="pt", add_special_tokens=False).input_ids +decoder_output_vectors_perturbed = model.base_model.decoder(decoder_input_ids_perturbed, encoder_hidden_states=encoder_output_vectors).last_hidden_state +lm_logits_perturbed = torch.nn.functional.linear(decoder_output_vectors_perturbed, embeddings.weight, bias=model.final_logits_bias) + +# compare shape and encoding of first vector +print(f"Shape of decoder input vectors {embeddings(decoder_input_ids).shape}. Shape of decoder logits {lm_logits.shape}") + +# compare values of word embedding of "I" for input_ids and perturbed input_ids +print("Is encoding for `Ich` equal to its perturbed version?: ", torch.allclose(lm_logits[0, 0], lm_logits_perturbed[0, 0], atol=1e-3)) +``` + +*输出:* + +``` + Shape of decoder input vectors torch.Size([1, 5, 512]). Shape of decoder logits torch.Size([1, 5, 58101]) + Is encoding for `Ich` equal to its perturbed version?: True +``` + +我们首先比较解码器词嵌入层的输出维度 `embeddings(decoder_input_ids)`(对应于 $\mathbf{Y}_{0: 4}$,这里 `` 对应于 BOS 且 \"Ich will das\" 被分为 4 个词)和 `lm_logits`(对应于 $\mathbf{L}_{1:5}$)的维度。此外,我们还通过解码器将单词序列 “`` Ich will ein” 和其轻微改编版 “`` Ich will das” 与 `encoder_output_vectors` 一起传递给解码器,以检查对应于 "Ich" 的第二个 lm_logit 在仅改变输入序列中的最后一个单词("ein" -> "das")时是否会有所不同。 + +正如预期的那样,解码器输入词嵌入和 lm_logits 的输出,*即* $\mathbf{Y}_{0: 4}$ 和 $\mathbf{L}_{ 1:5}$ 的最后一个维度不同。虽然序列长度相同(=5),但解码器输入词嵌入的维度对应于 `model.config.hidden_​​size`,而 `lm_logit` 的维数对应于词汇表大小 `model.config.vocab_size`。其次,可以注意到,当将最后一个单词从 "ein" 变为 "das",$\mathbf{l}_1 = \text{"Ich"}$ 的输出向量的值不变。鉴于我们已经理解了单向自注意力,这就不足为奇了。 + +最后一点,*自回归*模型,如 GPT2,与删除了交叉注意力层的*基于 transformer* 的解码器模型架构是相同的,因为纯自回归模型不依赖任何编码器的输出。因此,自回归模型本质上与*自编码*模型相同,只是用单向注意力代替了双向注意力。这些模型还可以在大量开放域文本数据上进行预训练,以在自然语言生成 (NLG) 任务中表现出令人印象深刻的性能。在 [Radford 等(2019)](https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf)的工作中,作者表明预训练的 GPT2 模型无需太多微调即可在多种 NLG 任务上取得达到 SOTA 或接近 SOTA 的结果。你可以在[此处](https://huggingface.co/transformers/model_summary.html#autoregressive-models)获取所有 🤗 transformers 支持的*自回归*模型的信息。 + +好了!至此,你应该已经很好地理解了*基于 transforemr* 的编码器-解码器模型以及如何在 🤗 transformers 库中使用它们。 + +非常感谢 Victor Sanh、Sasha Rush、Sam Shleifer、Oliver Åstrand、Ted Moskovitz 和 Kristian Kyvik 提供的宝贵反馈。 + +## **附录** + +如上所述,以下代码片段展示了如何为*基于 transformer* 的编码器-解码器模型编写一个简单的生成方法。在这里,我们使用 `torch.argmax` 实现了一个简单的*贪心*解码法来对目标向量进行采样。 + +```python +from transformers import MarianMTModel, MarianTokenizer +import torch + +tokenizer = MarianTokenizer.from_pretrained("Helsinki-NLP/opus-mt-en-de") +model = MarianMTModel.from_pretrained("Helsinki-NLP/opus-mt-en-de") + +# create ids of encoded input vectors +input_ids = tokenizer("I want to buy a car", return_tensors="pt").input_ids + +# create BOS token +decoder_input_ids = tokenizer("", add_special_tokens=False, return_tensors="pt").input_ids + +assert decoder_input_ids[0, 0].item() == model.config.decoder_start_token_id, "`decoder_input_ids` should correspond to `model.config.decoder_start_token_id`" + +# STEP 1 + +# pass input_ids to encoder and to decoder and pass BOS token to decoder to retrieve first logit +outputs = model(input_ids, decoder_input_ids=decoder_input_ids, return_dict=True) + +# get encoded sequence +encoded_sequence = (outputs.encoder_last_hidden_state,) +# get logits +lm_logits = outputs.logits + +# sample last token with highest prob +next_decoder_input_ids = torch.argmax(lm_logits[:, -1:], axis=-1) + +# concat +decoder_input_ids = torch.cat([decoder_input_ids, next_decoder_input_ids], axis=-1) + +# STEP 2 + +# reuse encoded_inputs and pass BOS + "Ich" to decoder to second logit +lm_logits = model(None, encoder_outputs=encoded_sequence, decoder_input_ids=decoder_input_ids, return_dict=True).logits + +# sample last token with highest prob again +next_decoder_input_ids = torch.argmax(lm_logits[:, -1:], axis=-1) + +# concat again +decoder_input_ids = torch.cat([decoder_input_ids, next_decoder_input_ids], axis=-1) + +# STEP 3 +lm_logits = model(None, encoder_outputs=encoded_sequence, decoder_input_ids=decoder_input_ids, return_dict=True).logits +next_decoder_input_ids = torch.argmax(lm_logits[:, -1:], axis=-1) +decoder_input_ids = torch.cat([decoder_input_ids, next_decoder_input_ids], axis=-1) + +# let's see what we have generated so far! +print(f"Generated so far: {tokenizer.decode(decoder_input_ids[0], skip_special_tokens=True)}") + +# This can be written in a loop as well. +``` + +*输出:* + +``` + Generated so far: Ich will ein +``` + +在这个示例代码中,我们准确地展示了正文中描述的内容。我们在输入 "I want to buy a car" 前面加上 $\text{BOS}$ ,然后一起传给编码器-解码器模型,并对第一个 logit $\mathbf{l}_1 $(对应代码中第一次出现 lm_logits 的部分)进行采样。这里,我们的采样策略很简单:贪心地选择概率最高的词作为下一个解码器输入向量。然后,我们以自回归方式将采样得的解码器输入向量与先前的输入一起传递给编码器-解码器模型并再次采样。重复 3 次后,该模型生成了 "Ich will ein"。结果没问题,开了个好头。 + +在实践中,我们会使用更复杂的解码方法来采样 `lm_logits`。你可以参考[这篇博文](https://huggingface.co/blog/zh/how-to-generate)了解更多的解码方法。 + +> 英文原文: https://huggingface.co/blog/encoder-decoder +> 原文作者:Patrick von Platen +> 译者: Matrix Yao (姚伟峰),英特尔深度学习工程师,工作方向为 transformer-family 模型在各模态数据上的应用及大规模模型的训练推理。 \ No newline at end of file From e65d3202645e3e2f90fd575c053c49d4d11be5d8 Mon Sep 17 00:00:00 2001 From: Zhongdong Yang Date: Wed, 31 May 2023 15:10:34 +0800 Subject: [PATCH 49/55] Update: proofread zh/encoder-decoder.md --- zh/encoder-decoder.md | 253 +++++++++++++++++++++--------------------- 1 file changed, 125 insertions(+), 128 deletions(-) diff --git a/zh/encoder-decoder.md b/zh/encoder-decoder.md index 917c5bc404..b69f99b4d8 100644 --- a/zh/encoder-decoder.md +++ b/zh/encoder-decoder.md @@ -2,7 +2,7 @@ title: "基于 Transformers 的编码器-解码器模型" thumbnail: /blog/assets/05_encoder_decoder/thumbnail.png authors: -- user: patrickvonplaten、 +- user: patrickvonplaten translators: - user: MatrixYao --- @@ -13,7 +13,7 @@ translators: - 在 Colab 中打开 +  在 Colab 中打开 # **基于 Transformers 的编码器-解码器模型** @@ -22,130 +22,132 @@ translators: !pip install transformers==4.2.1 !pip install sentencepiece==0.1.95 ``` -Vaswani 等人在其名作 [Attention is all you need](https://arxiv.org/abs/1706.03762) 中首创了*基于 transformer* 的编码器-解码器模型,如今已成为自然语言处理 (natural language processing,NLP) 领域编码器-解码器架构的*事实标准*。 -最近基于 transformer 的编码器-解码器模型训练这一方向涌现出了大量关于*预训练目标函数*的研究,*例如* T5、Bart、Pegasus、ProphetNet、Marge等,但它们所使用的网络结构并没有改变。 +Vaswani 等人在其名作 [Attention is all you need](https://arxiv.org/abs/1706.03762) 中首创了 _基于 transformer_ 的编码器-解码器模型,如今已成为自然语言处理 (natural language processing,NLP) 领域编码器-解码器架构的 _事实标准_ 。 -本文的目的是**详细**解释如何用基于 transformer 的编码器-解码器架构来对*序列到序列(sequence-to-sequence)* 问题进行建模。我们将重点关注有关这一架构的数学知识以及如何对该架构的模型进行推理。在此过程中,我们还将介绍 NLP 中序列到序列模型的一些背景知识,并将*基于 transformer* 的编码器-解码器架构分解为 **编码器** 和 **解码器** 这两个部分分别讨论。我们提供了许多图例,并把*基于 transformer* 的编码器-解码器模型的理论与其在 🤗 transformers 推理场景中的实际应用二者联系起来。请注意,这篇博文*不*解释如何训练这些模型 —— 我们会在后续博文中涵盖这一方面的内容。 +最近基于 transformer 的编码器-解码器模型训练这一方向涌现出了大量关于 _预训练目标函数_ 的研究,_例如_ T5、Bart、Pegasus、ProphetNet、Marge 等,但它们所使用的网络结构并没有改变。 -基于 transformer 的编码器-解码器模型是*表征学习*和*模型架构*这两个领域多年研究成果的结晶。本文简要介绍了神经编码器-解码器模型的历史,更多背景知识,建议读者阅读由 Sebastion Ruder 撰写的这篇精彩[博文](https://ruder.io/a-review-of-the-recent-history-of-nlp/)。此外,建议读者对*自注意力(self-attention)架构*有一个基本了解,可以阅读 Jay Alammar 的[这篇博文](http://jalammar.github.io/illustrated-transformer/)复习一下原始 transformer 模型。 +本文的目的是 **详细** 解释如何用基于 transformer 的编码器-解码器架构来对 _序列到序列 (sequence-to-sequence)_ 问题进行建模。我们将重点关注有关这一架构的数学知识以及如何对该架构的模型进行推理。在此过程中,我们还将介绍 NLP 中序列到序列模型的一些背景知识,并将 _基于 transformer_ 的编码器-解码器架构分解为 **编码器** 和 **解码器** 这两个部分分别讨论。我们提供了许多图例,并把 _基于 transformer_ 的编码器-解码器模型的理论与其在 🤗 transformers 推理场景中的实际应用二者联系起来。请注意,这篇博文 _不_ 解释如何训练这些模型 —— 我们会在后续博文中涵盖这一方面的内容。 -截至本文撰写时,🤗 transformers 库已经支持的编码器-解码器模型有:*T5*、*Bart*、*MarianMT* 以及 *Pegasus*,你可以从[这儿](https://huggingface.co/docs/transformers/model_summary#nlp-encoder-decoder)获取相关信息。 +基于 transformer 的编码器-解码器模型是 _表征学习_ 和 _模型架构_ 这两个领域多年研究成果的结晶。本文简要介绍了神经编码器-解码器模型的历史,更多背景知识,建议读者阅读由 Sebastion Ruder 撰写的这篇精彩 [博文](https://ruder.io/a-review-of-the-recent-history-of-nlp/)。此外,建议读者对 _自注意力 (self-attention) 架构_有一个基本了解,可以阅读 Jay Alammar 的 [这篇博文](http://jalammar.github.io/illustrated-transformer/) 复习一下原始 transformer 模型。 -本文分 4 个部分: +截至本文撰写时,🤗 transformers 库已经支持的编码器-解码器模型有: _T5_ 、_Bart_ 、_MarianMT_ 以及 _Pegasus_ ,你可以从 [这儿](https://huggingface.co/docs/transformers/model_summary#nlp-encoder-decoder) 获取相关信息。 -- **背景** - *简要回顾了神经编码器-解码器模型的历史,重点关注基于 RNN 的模型。* -- **编码器-解码器** - *阐述基于 transformer 的编码器-解码器模型,并阐述如何使用该模型进行推理。* -- **编码器** - *阐述模型的编码器部分。* -- **解码器** - *阐述模型的解码器部分。* +本文分 4 个部分: + +- **背景** - _简要回顾了神经编码器-解码器模型的历史,重点关注基于 RNN 的模型。_ +- **编码器-解码器** - _阐述基于 transformer 的编码器-解码器模型,并阐述如何使用该模型进行推理。_ +- **编码器** - _阐述模型的编码器部分。_ +- **解码器** - _阐述模型的解码器部分。_ 每个部分都建立在前一部分的基础上,但也可以单独阅读。 ## **背景** -自然语言生成 (natural language generation,NLG)是 NLP 的一个子领域,其任务一般可被建模为序列到序列问题。这类任务可以定义为寻找一个模型,该模型将输入词序列映射为目标词序列,典型的例子有*摘要*和*翻译*。在下文中,我们假设每个单词都被编码为一个向量表征。因此,$n$ 个输入词可以表示为 $n$ 个输入向量组成的序列: +自然语言生成 (natural language generation,NLG) 是 NLP 的一个子领域,其任务一般可被建模为序列到序列问题。这类任务可以定义为寻找一个模型,该模型将输入词序列映射为目标词序列,典型的例子有 _摘要_ 和 _翻译_ 。在下文中,我们假设每个单词都被编码为一个向量表征。因此,$n$ 个输入词可以表示为 $n$ 个输入向量组成的序列: -$$\mathbf{X}_{1:n} = \{\mathbf{x}_1, \ldots, \mathbf{x}_n\}$$ +$$\mathbf{X}_{1:n} = {\mathbf{x}_1, \ldots, \mathbf{x}_n}$$ -因此,序列到序列问题可以表示为找到一个映射 $f$,其输入为 $n$ 个向量的序列,输出为 $m$ 个向量的目标序列 $\mathbf{Y}_{1:m}$。这里,目标向量数 $m$ 是先验未知的,其值取决于输入序列: +因此,序列到序列问题可以表示为找到一个映射 $f$,其输入为 $n$ 个向量的序列,输出为 $m$ 个向量的目标序列 $\mathbf{Y}_{1:m}$。这里,目标向量数 $m$ 是先验未知的,其值取决于输入序列: $$ f: \mathbf{X}_{1:n} \to \mathbf{Y}_{1:m} $$ -[Sutskever 等(2014)](https://arxiv.org/abs/1409.3215)的工作指出,深度神经网络(deep neural networks,DNN)“*尽管灵活且强大,但只能用于拟合输入和输出维度均固定的映射。*” ${}^1$ +[Sutskever 等 (2014) ](https://arxiv.org/abs/1409.3215) 的工作指出,深度神经网络 (deep neural networks,DNN)“_尽管灵活且强大,但只能用于拟合输入和输出维度均固定的映射。_” ${}^1$ -因此,要用使用 DNN 模型 ${}^2$ 解决序列到序列问题就意味着目标向量数 $m$ 必须是先验已知的,且必须独立于输入 $\mathbf{X}_{1:n}$。这样设定肯定不是最优的。因为对 NLG 任务而言,目标词的数量通常取决于输入内容 $\mathbf{X}_{1:n}$,而不仅仅是输入长度 $n$。 *例如*,一篇 1000 字的文章,根据内容的不同,有可能可以概括为 200 字,也有可能可以概括为 100 字。 +因此,要用使用 DNN 模型 ${}^2$ 解决序列到序列问题就意味着目标向量数 $m$ 必须是先验已知的,且必须独立于输入 $\mathbf{X}_{1:n}$。这样设定肯定不是最优的。因为对 NLG 任务而言,目标词的数量通常取决于输入内容 $\mathbf{X}_{1:n}$,而不仅仅是输入长度 $n$。 _例如_ ,一篇 1000 字的文章,根据内容的不同,有可能可以概括为 200 字,也有可能可以概括为 100 字。 -2014 年,[Cho 等人](https://arxiv.org/pdf/1406.1078.pdf)和 [Sutskever 等人](https://arxiv.org/abs/1409.3215)提出使用完全基于递归神经网络(recurrent neural networks,RNN)的编码器-解码器模型来解决*序列到序列*任务。与 DNN 相比,RNN 支持输出可变数量的目标向量。下面,我们深入了解一下基于 RNN 的编码器-解码器模型的功能。 +2014 年,[Cho 等人](https://arxiv.org/pdf/1406.1078.pdf) 和 [Sutskever 等人](https://arxiv.org/abs/1409.3215) 提出使用完全基于递归神经网络 (recurrent neural networks,RNN) 的编码器-解码器模型来解决 _序列到序列_任务。与 DNN 相比,RNN 支持输出可变数量的目标向量。下面,我们深入了解一下基于 RNN 的编码器-解码器模型的功能。 -在推理过程中,RNN 编码器通过连续更新其*隐含状态* ${}^3$ 对输入序列 $\mathbf{X}_{1:n}$ 进行编码。我们定义处理完最后一个输入向量 $\mathbf{x}_n$ 后的编码器隐含状态为 $\mathbf{c}$。因此,编码器主要完成如下映射: +在推理过程中,RNN 编码器通过连续更新其 _隐含状态_ ${}^3$ 对输入序列 $\mathbf{X}_{1:n}$ 进行编码。我们定义处理完最后一个输入向量 $\mathbf{x}_n$ 后的编码器隐含状态为 $\mathbf{c}$。因此,编码器主要完成如下映射: $$ f_{\theta_{enc}}: \mathbf{X}_{1:n} \to \mathbf{c} $$ 然后,我们用 $\mathbf{c}$ 来初始化解码器的隐含状态,再用解码器 RNN 自回归地生成目标序列。 -下面,我们进一步解释一下。从数学角度讲,解码器定义了给定隐含状态 $\mathbf{c}$ 下目标序列 $\mathbf{Y}_{1:m}$ 的概率分布: +下面,我们进一步解释一下。从数学角度讲,解码器定义了给定隐含状态 $\mathbf{c}$ 下目标序列 $\mathbf{Y}_{1:m}$ 的概率分布: $$ p_{\theta_{dec}}(\mathbf{Y}_{1:m} |\mathbf{c}) $$ -根据贝叶斯法则,上述分布可以分解为每个目标向量的条件分布的积,如下所示: +根据贝叶斯法则,上述分布可以分解为每个目标向量的条件分布的积,如下所示: $$ p_{\theta_{dec}}(\mathbf{Y}_{1:m} |\mathbf{c}) = \prod_{i=1}^{m} p_{\theta_{\text{dec}}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{c}) $$ -因此,如果模型架构可以在给定所有前驱目标向量的条件下对下一个目标向量的条件分布进行建模的话: +因此,如果模型架构可以在给定所有前驱目标向量的条件下对下一个目标向量的条件分布进行建模的话: $$ p_{\theta_{\text{dec}}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{c}), \forall i \in \{1, \ldots, m\}$$ 那它就可以通过简单地将所有条件概率相乘来模拟给定隐藏状态 $\mathbf{c}$ 下任意目标向量序列的分布。 -那么基于 RNN 的解码器架构如何建模 +那么基于 RNN 的解码器架构如何建模 + $p_{\theta_{\text{dec}}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{c})$ 呢? -从计算角度讲,模型按序将前一时刻的内部隐含状态 $\mathbf{c}_{i-1}$ 和前一时刻的目标向量 $\mathbf{y}_{i-1}$ 映射到当前内部隐含状态 $\mathbf{c}_i$ 和一个 *logit 向量* $\mathbf{l}_i$(下图中以深红色表示): +从计算角度讲,模型按序将前一时刻的内部隐含状态 $\mathbf{c}_{i-1}$ 和前一时刻的目标向量 $\mathbf{y}_{i-1}$ 映射到当前内部隐含状态 $\mathbf{c}_i$ 和一个 _logit 向量_ $\mathbf{l}_i$ (下图中以深红色表示): $$ f_{\theta_{\text{dec}}}(\mathbf{y}_{i-1}, \mathbf{c}_{i-1}) \to \mathbf{l}_i, \mathbf{c}_i$$ -此处,$\mathbf{c}_0$ 为 RNN 编码器的输出。随后,对 logit 向量 $\mathbf{l}_i$ 进行 *softmax* 操作,将其变换为下一个目标向量的条件概率分布: +此处,$\mathbf{c}_0$ 为 RNN 编码器的输出。随后,对 logit 向量 $\mathbf{l}_i$ 进行 _softmax_ 操作,将其变换为下一个目标向量的条件概率分布: $$ p(\mathbf{y}_i | \mathbf{l}_i) = \textbf{Softmax}(\mathbf{l}_i), \text{ 其中 } \mathbf{l}_i = f_{\theta_{\text{dec}}}(\mathbf{y}_{i-1}, \mathbf{c}_{\text{prev}})$$ -更多有关 logit 向量及其生成的概率分布的详细信息,请参阅脚注 ${}^4$。从上式可以看出,目标向量 $\mathbf{y}_i$ 的分布是其前一时刻的目标向量 $\mathbf{y}_{i-1}$ 及前一时刻的隐含状态 $\mathbf{c}_{i-1}$ 的条件分布。而我们知道前一时刻的隐含状态 $\mathbf{c}_{i-1}$ 依赖于之前所有的目标向量 $\mathbf{y}_0, \ldots, \mathbf{y}_{i- 2}$,因此我们可以说 RNN 解码器*隐式*(*或间接*)地建模了条件分布 +更多有关 logit 向量及其生成的概率分布的详细信息,请参阅脚注 ${}^4$。从上式可以看出,目标向量 $\mathbf{y}_i$ 的分布是其前一时刻的目标向量 $\mathbf{y}_{i-1}$ 及前一时刻的隐含状态 $\mathbf{c}_{i-1}$ 的条件分布。而我们知道前一时刻的隐含状态 $\mathbf{c}_{i-1}$ 依赖于之前所有的目标向量 $\mathbf{y}_0, \ldots, \mathbf{y}_{i- 2}$,因此我们可以说 RNN 解码器 _隐式_ (_或间接_) 地建模了条件分布 $p_{\theta_{\text{dec}}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{c})$。 -目标向量序列 $\mathbf{Y}_{1:m}$ 的概率空间非常大,因此在推理时,必须借助解码方法对= ${}^5$ 对 $p_{\theta_{dec}}(\mathbf{Y}_{1:m} |\mathbf{c})$ 进行采样才能高效地生成最终的目标向量序列。 +目标向量序列 $\mathbf{Y}_{1:m}$ 的概率空间非常大,因此在推理时,必须借助解码方法对 = ${}^5$ 对 $p_{\theta_{dec}}(\mathbf{Y}_{1:m} |\mathbf{c})$ 进行采样才能高效地生成最终的目标向量序列。 -给定某解码方法,在推理时,我们首先从分布 $p_{\theta_{\text{dec}}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{c})$ 中采样出下一个输出向量;接着,将其添加至解码器输入序列末尾,让解码器 RNN 继续从 -$p_{\theta_{\text{dec}}}(\mathbf{y}_{i+1} | \mathbf{Y}_{0: i}, \mathbf{c})$ 中采样出下一个输出向量 $\mathbf{y}_{i+1}$,如此往复,整个模型就以*自回归*的方式生成了最终的输出序列。 +给定某解码方法,在推理时,我们首先从分布 $p_{\theta_{\text{dec}}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{c})$ 中采样出下一个输出向量; 接着,将其添加至解码器输入序列末尾,让解码器 RNN 继续从 +$p_{\theta_{\text{dec}}}(\mathbf{y}_{i+1} | \mathbf{Y}_{0: i}, \mathbf{c})$ 中采样出下一个输出向量 $\mathbf{y}_{i+1}$,如此往复,整个模型就以 _自回归_的方式生成了最终的输出序列。 -基于 RNN 的编码器-解码器模型的一个重要特征是需要定义一些*特殊*向量,如 $\text{EOS}$(终止符) 和 $\text{BOS}$(起始符)向量。 $\text{EOS}$ 向量通常意味着 $\mathbf{x}_n$ 中止,出现这个即“提示”编码器输入序列已结束;如果它出现在目标序列中意味着输出结束,一旦从 logit 向量中采样到 $\text{EOS}$,生成就完成了。$\text{BOS}$ 向量用于表示在第一步解码时馈送到解码器 RNN 的输入向量 $\mathbf{y}_0$。为了输出第一个 logit $\mathbf{l}_1$,需要一个输入,而由于在其之前还没有生成任何输入,所以我们馈送了一个特殊的 $\text{BOS}$ 输入向量到解码器 RNN。好,有点绕了!我们用一个例子说明一下。 +基于 RNN 的编码器-解码器模型的一个重要特征是需要定义一些 _特殊_ 向量,如 $\text{EOS}$ (终止符) 和 $\text{BOS}$ (起始符) 向量。 $\text{EOS}$ 向量通常意味着 $\mathbf{x}_n$ 中止,出现这个即“提示”编码器输入序列已结束; 如果它出现在目标序列中意味着输出结束,一旦从 logit 向量中采样到 $\text{EOS}$,生成就完成了。$\text{BOS}$ 向量用于表示在第一步解码时馈送到解码器 RNN 的输入向量 $\mathbf{y}_0$。为了输出第一个 logit $\mathbf{l}_1$,需要一个输入,而由于在其之前还没有生成任何输入,所以我们馈送了一个特殊的 $\text{BOS}$ 输入向量到解码器 RNN。好,有点绕了!我们用一个例子说明一下。 ![](https://raw.githubusercontent.com/patrickvonplaten/scientific_images/master/encoder_decoder/rnn_seq2seq.png) -上图中,我们将编码器 RNN 编码器展开,并用绿色表示;同时,将解码器 RNN 展开,并用红色表示。 +上图中,我们将编码器 RNN 编码器展开,并用绿色表示; 同时,将解码器 RNN 展开,并用红色表示。 -英文句子 `I want to buy a car`,表示为 $(\mathbf{x}_1 = \text{I}$,$\mathbf{x}_2 = \text{want}$,$\mathbf{x}_3 = \text{to}$,$\mathbf{x}_4 = \text{buy}$,$\mathbf{x} _5 = \text{a}$,$\mathbf{x}_6 = \text{car}$,$\mathbf{x}_7 = \text{EOS}$)。将其翻译成德语:“Ich will ein Auto kaufen\",表示为 $(\mathbf{y}_0 = \text{BOS}$,$\mathbf{y}_1 = \text{Ich}$,$\mathbf{y}_2 = \text{will}$,$\mathbf{y}_3 = \text {ein}$,$\mathbf{y}_4 = \text{Auto}$,$\mathbf{y}_5 = \text{kaufen}$,$\mathbf{y}_6=\text{EOS}$)。首先,编码器 RNN 处理输入向量 $\mathbf{x}_1 = \text{I}$ 并更新其隐含状态。请注意,对编码器而言,因为我们只对其最终隐含状态 $\mathbf{c}$ 感兴趣,所以我们可以忽略它的目标向量。然后,编码器 RNN 以相同的方式依次处理输入句子的其余部分:$\text{want}$、$\text{to}$、$\text{buy}$、$\text{a}$、$\text{car}$、$\text{EOS}$,并且每一步都更新其隐含状态,直到遇到向量 $\mathbf{x}_7={EOS}$ ${}^6$。在上图中,连接展开的编码器 RNN 的水平箭头表示按序更新隐含状态。编码器 RNN 的最终隐含状态,由 $\mathbf{c}$ 表示,其完全定义了输入序列的*编码*,并可用作解码器 RNN 的初始隐含状态。可以认为,解码器 RNN 以编码器 RNN 的最终隐含状态为条件。 +英文句子 `I want to buy a car`,表示为 $(\mathbf{x}_1 = \text{I}$,$\mathbf{x}_2 = \text{want}$,$\mathbf{x}_3 = \text{to}$,$\mathbf{x}_4 = \text{buy}$,$\mathbf{x}_5 = \text{a}$,$\mathbf{x}_6 = \text{car}$,$\mathbf{x}_7 = \text{EOS}$)。将其翻译成德语: “Ich will ein Auto kaufen",表示为 $(\mathbf{y}_0 = \text{BOS}$,$\mathbf{y}_1 = \text{Ich}$,$\mathbf{y}_2 = \text{will}$,$\mathbf{y}_3 = \text {ein}$,$\mathbf{y}_4 = \text{Auto}$,$\mathbf{y}_5 = \text{kaufen}$,$\mathbf{y}_6=\text{EOS}$)。首先,编码器 RNN 处理输入向量 $\mathbf{x}_1 = \text{I}$ 并更新其隐含状态。请注意,对编码器而言,因为我们只对其最终隐含状态 $\mathbf{c}$ 感兴趣,所以我们可以忽略它的目标向量。然后,编码器 RNN 以相同的方式依次处理输入句子的其余部分: $\text{want}$、$\text{to}$、$\text{buy}$、$\text{a}$、$\text{car}$、$\text{EOS}$,并且每一步都更新其隐含状态,直到遇到向量 $\mathbf{x}_7={EOS}$ ${}^6$。在上图中,连接展开的编码器 RNN 的水平箭头表示按序更新隐含状态。编码器 RNN 的最终隐含状态,由 $\mathbf{c}$ 表示,其完全定义了输入序列的 _编码_ ,并可用作解码器 RNN 的初始隐含状态。可以认为,解码器 RNN 以编码器 RNN 的最终隐含状态为条件。 -为了生成第一个目标向量,将 $\text{BOS}$ 向量输入给解码器,即上图中的 $\mathbf{y}_0$。然后通过*语言模型头(LM Head)* 前馈层将 RNN 的目标向量进一步映射到 logit 向量 $\mathbf{l}_1$,此时,可得第一个目标向量的条件分布: +为了生成第一个目标向量,将 $\text{BOS}$ 向量输入给解码器,即上图中的 $\mathbf{y}_0$。然后通过 _语言模型头 (LM Head)_ 前馈层将 RNN 的目标向量进一步映射到 logit 向量 $\mathbf{l}_1$,此时,可得第一个目标向量的条件分布: $$ p_{\theta_{dec}}(\mathbf{y} | \text{BOS}, \mathbf{c}) $$ -最终采样出第一个目标词 $\text{Ich}$(如图中连接 $\mathbf{l}_1$ 和 $\mathbf{y}_1$ 的灰色箭头所示)。接着,继续采样出第二个目标向量: +最终采样出第一个目标词 $\text{Ich}$ (如图中连接 $\mathbf{l}_1$ 和 $\mathbf{y}_1$ 的灰色箭头所示)。接着,继续采样出第二个目标向量: $$ \text{will} \sim p_{\theta_{dec}}(\mathbf{y} | \text{BOS}, \text{Ich}, \mathbf{c}) $$ -依此类推,一直到第 6 步,此时从 $\mathbf{l}_6$ 中采样出 $\text{EOS}$,解码完成。输出目标序列为 $\mathbf{Y}_{1:6} = \{\mathbf{y}_1, \ldots, \mathbf{y}_6\}$, 即上文中的 “Ich will ein Auto kaufen”。 +依此类推,一直到第 6 步,此时从 $\mathbf{l}_6$ 中采样出 $\text{EOS}$,解码完成。输出目标序列为 $\mathbf{Y}_{1:6} = {\mathbf{y}_1, \ldots, \mathbf{y}_6}$, 即上文中的 “Ich will ein Auto kaufen”。 -综上所述,我们通过将分布 $p(\mathbf{Y}_{1:m} | \mathbf{X}_{1:n})$ 分解为 $f_{\theta_{\text{enc}}}$ 和 $p_{\theta_{\text{dec}}}$ 的表示来建模基于 RNN 的 encoder-decoder 模型: +综上所述,我们通过将分布 $p(\mathbf{Y}_{1:m} | \mathbf{X}_{1:n})$ 分解为 $f_{\theta_{\text{enc}}}$ 和 $p_{\theta_{\text{dec}}}$ 的表示来建模基于 RNN 的 encoder-decoder 模型: $$ p_{\theta_{\text{enc}}, \theta_{\text{dec}}}(\mathbf{Y}_{1:m} | \mathbf{X}_{1:n}) = \prod_{i=1}^{m} p_{\theta_{\text{enc}}, \theta_{\text{dec}}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{X}_{1:n}) = \prod_{i=1}^{m} p_{\theta_{\text{dec}}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{c}), \text{ 其中 } \mathbf{c}=f_{\theta_{enc}}(X) $$ 在推理过程中,利用高效的解码方法可以自回归地生成目标序列 $\mathbf{Y}_{1:m}$。 -基于 RNN 的编码器-解码器模型席卷了 NLG 社区。2016 年,谷歌宣布用基于 RNN 的编码器-解码器单一模型完全取代其原先使用的的含有大量特征工程的翻译服务(参见 -[此处](https://www.oreilly.com/radar/what-machine-learning-means-for-software-development/#:~:text=Machine%20learning%20is%20already%20making,of%20code%20in%20Google%20Translate))。 +基于 RNN 的编码器-解码器模型席卷了 NLG 社区。2016 年,谷歌宣布用基于 RNN 的编码器-解码器单一模型完全取代其原先使用的的含有大量特征工程的翻译服务 (参见 +[此处](https://www.oreilly.com/radar/what-machine-learning-means-for-software-development/#:~:text=Machine%20learning%20is%20already%20making,of%20code%20in%20Google%20Translate))。 -然而,基于 RNN 的编码器-解码器模型存在两个主要缺陷。首先,RNN 存在梯度消失问题,因此很难捕获长程依赖性,*参见* [Hochreiter 等(2001)](https://www.bioinf.jku.at/publications/older/ch7.pdf)的工作。其次,RNN 固有的循环架构使得在编码时无法进行有效的并行化,*参见* [Vaswani 等(2017)](https://arxiv.org/abs/1706.03762)的工作。 +然而,基于 RNN 的编码器-解码器模型存在两个主要缺陷。首先,RNN 存在梯度消失问题,因此很难捕获长程依赖性, _参见_ [Hochreiter 等 (2001) ](https://www.bioinf.jku.at/publications/older/ch7.pdf) 的工作。其次,RNN 固有的循环架构使得在编码时无法进行有效的并行化, _参见_ [Vaswani 等 (2017) ](https://arxiv.org/abs/1706.03762) 的工作。 ------------------------------------------------------------------------- +--- -${}^1$ 论文的原话是“*尽管 DNN 具有灵活性和强大的功能,但它们只能应用于输入和目标可以用固定维度的向量进行合理编码的问题*”,用在本文时稍作调整。 +${}^1$ 论文的原话是“_尽管 DNN 具有灵活性和强大的功能,但它们只能应用于输入和目标可以用固定维度的向量进行合理编码的问题_”,用在本文时稍作调整。 ${}^2$ 这同样适用于卷积神经网络 (CNN)。虽然可以将可变长度的输入序列输入 CNN,但目标的维度要么取决于输入维数要么需要固定为特定值。 ${}^3$ 在第一步时,隐含状态被初始化为零向量,并与第一个输入向量 $\mathbf{x}_1$ 一起馈送给 RNN。 -${}^4$ 神经网络可以将所有单词的概率分布定义为 $p(\mathbf{y} | \mathbf{c}, \mathbf{Y}_{0 : i-1})$。首先,其将输入 $\mathbf{c}, \mathbf{Y}_{0: i-1}$ 转换为嵌入向量 $\mathbf{y'}$,该向量对应于 RNN 模型的目标向量。随后将 $\mathbf{y'}$ 送给“语言模型头”,即将其乘以*词嵌入矩阵*(即$\mathbf{Y}^{\text{vocab}}$),得到 $\mathbf{y'}$ 和词表 $\mathbf{Y}^{\text{vocab}}$ 中的每个向量 $\mathbf{y}$ 的相似度得分,生成的向量称为 logit 向量 $\mathbf{l} = \mathbf{Y}^{\text{vocab}} \mathbf{y'}$,最后再通过 softmax 操作归一化成所有单词的概率分布:$p(\mathbf{y} | \mathbf{c}) = \text{Softmax}(\mathbf{Y}^{\text{vocab}} \mathbf{y'}) = \text {Softmax}(\mathbf{l})$。 +${}^4$ 神经网络可以将所有单词的概率分布定义为 $p(\mathbf{y} | \mathbf{c}, \mathbf{Y}_{0 : i-1})$。首先,其将输入 $\mathbf{c}, \mathbf{Y}_{0: i-1}$ 转换为嵌入向量 $\mathbf{y'}$,该向量对应于 RNN 模型的目标向量。随后将 $\mathbf{y'}$ 送给“语言模型头”,即将其乘以 _词嵌入矩阵_ (即$\mathbf{Y}^{\text{vocab}}$),得到 $\mathbf{y'}$ 和词表 $\mathbf{Y}^{\text{vocab}}$ 中的每个向量 $\mathbf{y}$ 的相似度得分,生成的向量称为 logit 向量 $\mathbf{l} = \mathbf{Y}^{\text{vocab}} \mathbf{y'}$,最后再通过 softmax 操作归一化成所有单词的概率分布: $p(\mathbf{y} | \mathbf{c}) = \text{Softmax}(\mathbf{Y}^{\text{vocab}} \mathbf{y'}) = \text {Softmax}(\mathbf{l})$。 -${}^5$ 波束搜索(beam search)是其中一种解码方法。本文不会对不同的解码方法进行介绍,如对此感兴趣,建议读者参考[此文](https://huggingface.co/blog/zh/how-to-generate)。 +${}^5$ 波束搜索 (beam search) 是其中一种解码方法。本文不会对不同的解码方法进行介绍,如对此感兴趣,建议读者参考 [此文](https://huggingface.co/blog/zh/how-to-generate)。 -${}^6$ [Sutskever 等(2014)](https://arxiv.org/abs/1409.3215) 的工作对输入顺序进行了逆序,对上面的例子而言,输入向量变成了 ($\mathbf{x}_1 = \text{car}$,$\mathbf{x}_2 = \text{a}$,$\mathbf{x}_3 = \text{buy}$,$\mathbf{x} _4 = \text{to}$,$\mathbf{x}_5 = \text{want}$,$\mathbf{x}_6 = \text{I}$,$\mathbf{x}_7 = \text{EOS}$)。其动机是让对应词对之间的连接更短,如可以使得 $\mathbf{x}_6 = \text{I}$ 和 $\mathbf{y}_1 = \text{Ich}$ 之间的连接更短。该研究小组强调,将输入序列进行逆序是他们的模型在机器翻译上的性能提高的一个关键原因。 +${}^6$ [Sutskever 等 (2014) ](https://arxiv.org/abs/1409.3215) 的工作对输入顺序进行了逆序,对上面的例子而言,输入向量变成了 ($\mathbf{x}_1 = \text{car}$,$\mathbf{x}_2 = \text{a}$,$\mathbf{x}_3 = \text{buy}$,$\mathbf{x}_4 = \text{to}$,$\mathbf{x}_5 = \text{want}$,$\mathbf{x}_6 = \text{I}$,$\mathbf{x}_7 = \text{EOS}$)。其动机是让对应词对之间的连接更短,如可以使得 $\mathbf{x}_6 = \text{I}$ 和 $\mathbf{y}_1 = \text{Ich}$ 之间的连接更短。该研究小组强调,将输入序列进行逆序是他们的模型在机器翻译上的性能提高的一个关键原因。 ## **编码器-解码器** -2017 年,Vaswani 等人引入了 **transformer** 架构,从而催生了*基于 transformer* 的编码器-解码器模型。 +2017 年,Vaswani 等人引入了 **transformer** 架构,从而催生了 _基于 transformer_ 的编码器-解码器模型。 -与基于 RNN 的编码器-解码器模型类似,基于 transformer 的编码器-解码器模型由一个编码器和一个解码器组成,且其编码器和解码器均由*残差注意力模块(residual attention blocks)* 堆叠而成。基于 transformer 的编码器-解码器模型的关键创新在于:残差注意力模块无需使用循环结构即可处理长度 $n$ 可变的输入序列 $\mathbf{X}_{1:n}$。不依赖循环结构使得基于 transformer 的编码器-解码器可以高度并行化,这使得模型在现代硬件上的计算效率比基于 RNN 的编码器-解码器模型高出几个数量级。 +与基于 RNN 的编码器-解码器模型类似,基于 transformer 的编码器-解码器模型由一个编码器和一个解码器组成,且其编码器和解码器均由 _残差注意力模块 (residual attention blocks)_ 堆叠而成。基于 transformer 的编码器-解码器模型的关键创新在于: 残差注意力模块无需使用循环结构即可处理长度 $n$ 可变的输入序列 $\mathbf{X}_{1:n}$。不依赖循环结构使得基于 transformer 的编码器-解码器可以高度并行化,这使得模型在现代硬件上的计算效率比基于 RNN 的编码器-解码器模型高出几个数量级。 -回忆一下,要解决*序列到序列*问题,我们需要找到输入序列 $\mathbf{X}_{1:n}$ 到变长输出序列 $\mathbf{Y}_{1:m}$ 的映射。我们看看如何使用基于 transformer 的编码器-解码器模型来找到这样的映射。 +回忆一下,要解决 _序列到序列_ 问题,我们需要找到输入序列 $\mathbf{X}_{1:n}$ 到变长输出序列 $\mathbf{Y}_{1:m}$ 的映射。我们看看如何使用基于 transformer 的编码器-解码器模型来找到这样的映射。 与基于 RNN 的编码器-解码器模型类似,基于 transformer 的编码器-解码器模型定义了在给定输入序列 $\mathbf{X}_{1:n}$ 条件下目标序列 $\mathbf{Y}_{1:m}$ 的条件分布: @@ -153,39 +155,38 @@ $$ p_{\theta_{\text{enc}}, \theta_{\text{dec}}}(\mathbf{Y}_{1:m} | \mathbf{X}_{1:n}) $$ -基于 transformer 的编码器部分将输入序列 $\mathbf{X}_{1:n}$ 编码为*隐含状态序列* $\mathbf{\overline{X}}_ {1:n}$,即: +基于 transformer 的编码器部分将输入序列 $\mathbf{X}_{1:n}$ 编码为 _隐含状态序列_ $\mathbf{\overline{X}}_{1:n}$,即: $$ f_{\theta_{\text{enc}}}: \mathbf{X}_{1:n} \to \mathbf{\overline{X}}_{1:n} $$ -然后,基于 transformer 的解码器负责建模在给定隐含状态序列 $\mathbf{\overline{ X}}_{1:n}$ 的条件下目标向量序列 $\mathbf{Y}_{1:m}$ 的概率分布: +然后,基于 transformer 的解码器负责建模在给定隐含状态序列 $\mathbf{\overline{X}}_{1:n}$ 的条件下目标向量序列 $\mathbf{Y}_{1:m}$ 的概率分布: $$ p_{\theta_{dec}}(\mathbf{Y}_{1:m} | \mathbf{\overline{X}}_{1:n})$$ -根据贝叶斯法则,该序列分布可被分解为每个目标向量 $\mathbf{y}_i$ 在给定隐含状态 $\mathbf{\overline{X} }_{1:n}$ 和其所有前驱目标向量 $\mathbf{Y}_{0:i-1}$ 时的条件概率之积: +根据贝叶斯法则,该序列分布可被分解为每个目标向量 $\mathbf{y}_i$ 在给定隐含状态 $\mathbf{\overline{X} }_{1:n}$ 和其所有前驱目标向量 $\mathbf{Y}_{0:i-1}$ 时的条件概率之积: $$ p_{\theta_{dec}}(\mathbf{Y}_{1:m} | \mathbf{\overline{X}}_{1:n}) = \prod_{i=1}^{m} p_{\theta_{\text{dec}}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{\overline{X}}_{1:n}) $$ +因此,在生成 $\mathbf{y}_i$ 时,基于 transformer 的解码器将隐含状态序列 $\mathbf{\overline{X}}_{1:n}$ 及其所有前驱目标向量 $\mathbf{Y}_{0 :i-1}$ 映射到 _logit_ 向量 $\mathbf{l}_i$。 然后经由 _softmax_ 运算对 logit 向量 $\mathbf{l}_i$ 进行处理,从而生成条件分布 $p_{\theta_{\text{dec}}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{\overline{X}}_{1:n})$。这个流程跟基于 RNN 的解码器是一样的。然而,与基于 RNN 的解码器不同的是,在这里,目标向量 $\mathbf{y}_i$ 的分布是 _显式_(或直接) 地以其所有前驱目标向量 $\mathbf{y}_0, \ldots, \mathbf{y}_{i-1}$ 为条件的,稍后我们将详细介绍。此处第 0 个目标向量 $\mathbf{y}_0$ 仍表示为 $\text{BOS}$ 向量。有了条件分布 $p_{\theta_{\text{dec}}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{\overline{X} }_{1:n})$,我们就可以 _自回归_生成输出了。至此,我们定义了可用于推理的从输入序列 $\mathbf{X}_{1:n}$ 到输出序列 $\mathbf{Y}_{1:m}$ 的映射。 -因此,在生成 $\mathbf{y}_i$ 时,基于 transformer 的解码器将隐含状态序列 $\mathbf{\overline{X}}_{1:n}$ 及其所有前驱目标向量 $\mathbf{Y}_{0 :i-1}$ 映射到 *logit* 向量 $\mathbf{l}_i$。 然后经由 *softmax* 运算对 logit 向量 $\mathbf{l}_i$ 进行处理,从而生成条件分布 $p_{\theta_{\text{dec}}}(\mathbf{y} _i | \mathbf{Y}_{0: i-1}, \mathbf{\overline{X}}_{1:n})$。这个流程跟基于 RNN 的解码器是一样的。然而,与基于 RNN 的解码器不同的是,在这里,目标向量 $\mathbf{y}_i$ 的分布是*显式*(或直接)地以其所有前驱目标向量 $\mathbf{y} _0, \ldots, \mathbf{y}_{i-1}$ 为条件的,稍后我们将详细介绍。此处第 0 个目标向量 $\mathbf{y}_0$ 仍表示为 $\text{BOS}$ 向量。有了条件分布 $p_{\theta_{\text{dec}}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{\overline{X} }_{1:n})$,我们就可以*自回归*生成输出了。至此,我们定义了可用于推理的从输入序列 $\mathbf{X}_{1:n}$ 到输出序列 $\mathbf{Y}_{1:m}$ 的映射。 - -我们可视化一下使用*基于 transformer* 的编码器-解码器模型*自回归*地生成序列的完整过程。 +我们可视化一下使用 _基于 transformer_ 的编码器-解码器模型 _自回归_地生成序列的完整过程。 ![](https://raw.githubusercontent.com/patrickvonplaten/scientific_images/master/encoder_decoder/EncoderDecoder.png) 上图中,绿色为基于 transformer 的编码器,红色为基于 transformer 的解码器。与上一节一样,我们展示了如何将表示为 $(\mathbf{x}_1 = \text{I},\mathbf{ x}_2 = \text{want},\mathbf{x}_3 = \text{to},\mathbf{x}_4 = \text{buy},\mathbf{x}_5 = \text{a},\mathbf{x}_6 = \text{car},\mathbf{x}_7 = \text{EOS})$ 的英语句子 “I want to buy a car” 翻译成表示为 $(\mathbf{y}_0 = \text{BOS},\mathbf{y }_1 = \text{Ich},\mathbf{y}_2 = \text{will},\mathbf{y}_3 = \text{ein},\mathbf{y}_4 = \text{Auto},\mathbf{y}_5 = \text{kaufen},\mathbf{y}_6=\text{EOS})$ 的德语句子 “Ich will ein Auto kaufen”。 -首先,编码器将完整的输入序列 $\mathbf{X}_{1:7}$ = "I want to buy a car"(由浅绿色向量表示)处理为上下文相关的编码序列 $\mathbf{\overline{X}}_{1:7}$。这里上下文相关的意思是,*举个例子*,$\mathbf{\overline{x}}_4$ 的编码不仅取决于输入 $\mathbf{x}_4$ = "buy",还与所有其他词 "I"、"want"、"to"、"a"、"car" 及 "EOS" 相关,这些词即该词的*上下文*。 +首先,编码器将完整的输入序列 $\mathbf{X}_{1:7}$ = “I want to buy a car” (由浅绿色向量表示) 处理为上下文相关的编码序列 $\mathbf{\overline{X}}_{1:7}$。这里上下文相关的意思是, _举个例子_ ,$\mathbf{\overline{x}}_4$ 的编码不仅取决于输入 $\mathbf{x}_4$ = “buy”,还与所有其他词 “I”、“want”、“to”、“a”、“car” 及 “EOS” 相关,这些词即该词的 _上下文_ 。 -接下来,输入编码 $\mathbf{\overline{X}}_{1:7}$ 与 BOS 向量(*即* $\mathbf{y}_0$)被一起馈送到解码器。解码器将输入 $\mathbf{\overline{X}}_{1:7}$ 和 $\mathbf{y}_0$ 变换为第一个 logit $\mathbf{l }_1$(图中以深红色显示),从而得到第一个目标向量 $\mathbf{y}_1$ 的条件分布: +接下来,输入编码 $\mathbf{\overline{X}}_{1:7}$ 与 BOS 向量 ( _即_ $\mathbf{y}_0$) 被一起馈送到解码器。解码器将输入 $\mathbf{\overline{X}}_{1:7}$ 和 $\mathbf{y}_0$ 变换为第一个 logit $\mathbf{l }_1$ (图中以深红色显示),从而得到第一个目标向量 $\mathbf{y}_1$ 的条件分布: $$ p_{\theta_{enc, dec}}(\mathbf{y} | \mathbf{y}_0, \mathbf{X}_{1:7}) = p_{\theta_{enc, dec}}(\mathbf{y} | \text{BOS}, \text{I want to buy a car EOS}) = p_{\theta_{dec}}(\mathbf{y} | \text{BOS}, \mathbf{\overline{X}}_{1:7}) $$ -然后,从该分布中采样出第一个目标向量 $\mathbf{y}_1$ = $\text{Ich}$(由灰色箭头表示),得到第一个输出后,我们会并将其继续馈送到解码器。现在,解码器开始以 $\mathbf{y}_0$ = "BOS" 和 $\mathbf{y}_1$ = "Ich" 为条件来定义第二个目标向量的条件分布 $\mathbf{y}_2$: +然后,从该分布中采样出第一个目标向量 $\mathbf{y}_1$ = $\text{Ich}$ (由灰色箭头表示),得到第一个输出后,我们会并将其继续馈送到解码器。现在,解码器开始以 $\mathbf{y}_0$ = “BOS” 和 $\mathbf{y}_1$ = “Ich” 为条件来定义第二个目标向量的条件分布 $\mathbf{y}_2$: $$ p_{\theta_{dec}}(\mathbf{y} | \text{BOS Ich}, \mathbf{\overline{X}}_{1:7}) $$ -再采样一次,生成目标向量 $\mathbf{y}_2$ = "will"。重复该自回归过程,直到第 6 步从条件分布中采样到 EOS: +再采样一次,生成目标向量 $\mathbf{y}_2$ = “will”。重复该自回归过程,直到第 6 步从条件分布中采样到 EOS: $$ \text{EOS} \sim p_{\theta_{dec}}(\mathbf{y} | \text{BOS Ich will ein Auto kaufen}, \mathbf{\overline{X}}_{1:7}) $$ @@ -193,7 +194,7 @@ $$ \text{EOS} \sim p_{\theta_{dec}}(\mathbf{y} | \text{BOS Ich will ein Auto kau ![](https://raw.githubusercontent.com/patrickvonplaten/scientific_images/master/encoder_decoder/EncoderDecoder_step_by_step.png) -可以看出,仅在步骤 $i=1$ 时,我们才需要将 "I want to buy a car EOS" 编码为 $\mathbf{\overline{X}}_{1:7}$。从 $i=2$ 开始,解码器只是简单地复用了已生成的编码。 +可以看出,仅在步骤 $i=1$ 时,我们才需要将 “I want to buy a car EOS” 编码为 $\mathbf{\overline{X}}_{1:7}$。从 $i=2$ 开始,解码器只是简单地复用了已生成的编码。 在 🤗 transformers 库中,这一自回归生成过程是在调用 `.generate()` 方法时在后台完成的。我们用一个翻译模型来实际体验一下。 @@ -213,74 +214,74 @@ output_ids = model.generate(input_ids)[0] print(tokenizer.decode(output_ids)) ``` -*输出:* +*输出:* ``` Ich will ein Auto kaufen ``` -`.generate()` 接口做了很多事情。首先,它将 `input_ids` 传递给编码器。然后,它将一个预定义的标记连同已编码的 `input_ids`一起传递给解码器(在使用 `MarianMTModel` 的情况下,该预定义标记为 $\text{}$)。接着,它使用波束搜索解码机制根据最新的解码器输出的概率分布${}^1$自回归地采样下一个输出词。更多有关波束搜索解码工作原理的详细信息,建议阅读[这篇博文](https://huggingface.co/blog/zh/how-to-generate) 。 +`.generate()` 接口做了很多事情。首先,它将 `input_ids` 传递给编码器。然后,它将一个预定义的标记连同已编码的 `input_ids`一起传递给解码器 (在使用 `MarianMTModel` 的情况下,该预定义标记为 $\text{}$)。接着,它使用波束搜索解码机制根据最新的解码器输出的概率分布${}^1$自回归地采样下一个输出词。更多有关波束搜索解码工作原理的详细信息,建议阅读 [这篇博文](https://huggingface.co/blog/zh/how-to-generate)。 -我们在附录中加入了一个代码片段,展示了如何“从头开始”实现一个简单的生成方法。如果你想要完全了解*自回归*生成的幕后工作原理,强烈建议阅读附录。 +我们在附录中加入了一个代码片段,展示了如何“从头开始”实现一个简单的生成方法。如果你想要完全了解 _自回归_生成的幕后工作原理,强烈建议阅读附录。 -总结一下: +总结一下: - 基于 transformer 的编码器实现了从输入序列 $\mathbf{X}_{1:n}$ 到上下文相关的编码序列 $\mathbf{\overline{X}}_{1 :n}$ 之间的映射。 - 基于 transformer 的解码器定义了条件分布 $p_{\theta_{\text{dec}}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{ \overline{X}}_{1:n})$。 -- 给定适当的解码机制,可以自回归地从 $p_{\theta_{\text{dec}}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{\overline{X}}_{1:n}), \forall i \in \{1, \ldots, m\}$ 中采样出输出序列 $\mathbf{Y}_{1:m}$。 +- 给定适当的解码机制,可以自回归地从 $p_{\theta_{\text{dec}}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{\overline{X}}_{1:n}), \forall i \in {1, \ldots, m}$ 中采样出输出序列 $\mathbf{Y}_{1:m}$。 -太好了,现在我们已经大致了解了*基于 transformer 的*编码器-解码器模型的工作原理。下面的部分,我们将更深入地研究模型的编码器和解码器部分。更具体地说,我们将确切地看到编码器如何利用自注意力层来产生一系列上下文相关的向量编码,以及自注意力层如何实现高效并行化。然后,我们将详细解释自注意力层在解码器模型中的工作原理,以及解码器如何通过*交叉注意力*层以编码器输出为条件来定义分布 $p_{\theta_ {\text{dec}}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{\overline{X}}_{1:n})$。在此过程中,基于 transformer 的编码器-解码器模型如何解决基于 RNN 的编码器-解码器模型的长程依赖问题的答案将变得显而易见。 +太好了,现在我们已经大致了解了 _基于 transformer 的_编码器-解码器模型的工作原理。下面的部分,我们将更深入地研究模型的编码器和解码器部分。更具体地说,我们将确切地看到编码器如何利用自注意力层来产生一系列上下文相关的向量编码,以及自注意力层如何实现高效并行化。然后,我们将详细解释自注意力层在解码器模型中的工作原理,以及解码器如何通过 _交叉注意力_ 层以编码器输出为条件来定义分布 $p_{\theta_{\text{dec}}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{\overline{X}}_{1:n})$。在此过程中,基于 transformer 的编码器-解码器模型如何解决基于 RNN 的编码器-解码器模型的长程依赖问题的答案将变得显而易见。 ------------------------------------------------------------------------- +--- -${}^1$ 可以从[此处](https://s3.amazonaws.com/models.huggingface.co/bert/Helsinki-NLP/opus-mt-en-de/config.json)获取 `"Helsinki-NLP/opus-mt-en-de"` 的解码参数。可以看到,其使用了 `num_beams=6` 的波束搜索。 +${}^1$ 可以从 [此处](https://s3.amazonaws.com/models.huggingface.co/bert/Helsinki-NLP/opus-mt-en-de/config.json) 获取 `"Helsinki-NLP/opus-mt-en-de"` 的解码参数。可以看到,其使用了 `num_beams=6` 的波束搜索。 ## **编码器** -如前一节所述,*基于 transformer* 的编码器将输入序列映射到上下文相关的编码序列: +如前一节所述, _基于 transformer_ 的编码器将输入序列映射到上下文相关的编码序列: $$ f_{\theta_{\text{enc}}}: \mathbf{X}_{1:n} \to \mathbf{\overline{X}}_{1:n} $$ -仔细观察架构,基于 transformer 的编码器由许多*残差注意力模块*堆叠而成。每个编码器模块都包含一个**双向**自注意力层,其后跟着两个前馈层。这里,为简单起见,我们忽略归一化层(normalization layer)。此外,我们不会深入讨论两个前馈层的作用,仅将其视为每个编码器模块 ${}^1$ 的输出映射层。双向自注意层将每个输入向量 $\mathbf{x'}_j, \forall j \in \{1, \ldots, n\}$ 与全部输入向量 $\mathbf{x'}_1, \ldots, \mathbf{x'}_n$ 相关联并通过该机制将每个输入向量 $\mathbf{x'}_j$ 提炼为与其自身上下文相关的表征:$\mathbf{x''}_j$。因此,第一个编码器块将输入序列 $\mathbf{X}_{1:n}$(如下图浅绿色所示)中的每个输入向量从*上下文无关*的向量表征转换为*上下文相关*的向量表征,后面每一个编码器模块都会进一步细化这个上下文表征,直到最后一个编码器模块输出最终的上下文相关编码 $\mathbf{\overline{X}}_{1:n}$(如下图深绿色所示)。 +仔细观察架构,基于 transformer 的编码器由许多 _残差注意力模块_堆叠而成。每个编码器模块都包含一个 **双向**自注意力层,其后跟着两个前馈层。这里,为简单起见,我们忽略归一化层 (normalization layer)。此外,我们不会深入讨论两个前馈层的作用,仅将其视为每个编码器模块 ${}^1$ 的输出映射层。双向自注意层将每个输入向量 $\mathbf{x'}_j, \forall j \in {1, \ldots, n}$ 与全部输入向量 $\mathbf{x'}_1, \ldots, \mathbf{x'}_n$ 相关联并通过该机制将每个输入向量 $\mathbf{x'}_j$ 提炼为与其自身上下文相关的表征: $\mathbf{x''}_j$。因此,第一个编码器块将输入序列 $\mathbf{X}_{1:n}$ (如下图浅绿色所示) 中的每个输入向量从 _上下文无关_ 的向量表征转换为 _上下文相关_的向量表征,后面每一个编码器模块都会进一步细化这个上下文表征,直到最后一个编码器模块输出最终的上下文相关编码 $\mathbf{\overline{X}}_{1:n}$ (如下图深绿色所示)。 -我们对`编码器如何将输入序列 "I want to buy a car EOS" 变换为上下文编码序列`这一过程进行一下可视化。与基于 RNN 的编码器类似,基于 transformer 的编码器也在输入序列最后添加了一个 EOS,以提示模型输入向量序列已结束 ${}^2$。 +我们对 `编码器如何将输入序列 "I want to buy a car EOS" 变换为上下文编码序列`这一过程进行一下可视化。与基于 RNN 的编码器类似,基于 transformer 的编码器也在输入序列最后添加了一个 EOS,以提示模型输入向量序列已结束 ${}^2$。 ![](https://raw.githubusercontent.com/patrickvonplaten/scientific_images/master/encoder_decoder/Encoder_block.png) -上图中的*基于 transformer* 的编码器由三个编码器模块组成。我们在右侧的红框中详细列出了第二个编码器模块的前三个输入向量:$\mathbf{x}_1$,$\mathbf {x}_2$ 及 $\mathbf{x}_3$。红框下部的全连接图描述了双向自注意力机制,上面是两个前馈层。如前所述,我们主要关注双向自注意力机制。 +上图中的 _基于 transformer_ 的编码器由三个编码器模块组成。我们在右侧的红框中详细列出了第二个编码器模块的前三个输入向量: $\mathbf{x}_1$,$\mathbf {x}_2$ 及 $\mathbf{x}_3$。红框下部的全连接图描述了双向自注意力机制,上面是两个前馈层。如前所述,我们主要关注双向自注意力机制。 -可以看出,自注意力层的每个输出向量 $\mathbf{x''}_i, \forall i \in \{1, \ldots, 7\}$ 都*直接*依赖于*所有*输入向量 $\mathbf{x'}_1, \ldots, \mathbf{x'}_7$。这意味着,单词 "want" 的输入向量表示 $\mathbf{x'}_2$ 与单词 "buy"(即 $\mathbf{x'}_4$)和单词 "I"(即 $\mathbf{x'}_1$)直接相关。 因此,"want" 的输出向量表征,*即* $\mathbf{x''}_2$,是一个融合了其上下文信息的更精细的表征。 +可以看出,自注意力层的每个输出向量 $\mathbf{x''}_i, \forall i \in {1, \ldots, 7}$ 都 _直接_ 依赖于 _所有_ 输入向量 $\mathbf{x'}_1, \ldots, \mathbf{x'}_7$。这意味着,单词 “want” 的输入向量表示 $\mathbf{x'}_2$ 与单词 “buy” (即 $\mathbf{x'}_4$) 和单词 “I” (即 $\mathbf{x'}_1$) 直接相关。 因此,“want” 的输出向量表征,_即_ $\mathbf{x''}_2$,是一个融合了其上下文信息的更精细的表征。 -我们更深入了解一下双向自注意力的工作原理。编码器模块的输入序列 $\mathbf{X'}_{1:n}$ 中的每个输入向量 $\mathbf{x'}_i$ 通过三个可训练的权重矩阵 $\mathbf{W}_q$,$\mathbf{W}_v$,$\mathbf{W}_k$ 分别投影至 `key` 向量 $\mathbf{k}_i$、`value` 向量 $\mathbf{v}_i$ 和 `query` 向量 $\mathbf{q}_i$(下图分别以橙色、蓝色和紫色表示): +我们更深入了解一下双向自注意力的工作原理。编码器模块的输入序列 $\mathbf{X'}_{1:n}$ 中的每个输入向量 $\mathbf{x'}_i$ 通过三个可训练的权重矩阵 $\mathbf{W}_q$,$\mathbf{W}_v$,$\mathbf{W}_k$ 分别投影至 `key` 向量 $\mathbf{k}_i$、`value` 向量 $\mathbf{v}_i$ 和 `query` 向量 $\mathbf{q}_i$ (下图分别以橙色、蓝色和紫色表示): $$ \mathbf{q}_i = \mathbf{W}_q \mathbf{x'}_i,$$ $$ \mathbf{v}_i = \mathbf{W}_v \mathbf{x'}_i,$$ $$ \mathbf{k}_i = \mathbf{W}_k \mathbf{x'}_i, $$ -$$ \forall i \in \{1, \ldots n \}$$ +$$ \forall i \in {1, \ldots n }$$ -请注意,对每个输入向量 $\mathbf{x}_i(\forall i \in \{i, \ldots, n\}$)而言,其所使用的权重矩阵都是**相同**的。将每个输入向量 $\mathbf{x}_i$ 投影到 `query`、`key` 和 `value` 向量后,将每个 `query` 向量 $\mathbf{q}_j(\forall j \in \{1, \ldots, n\}$)与所有 `key` 向量 $\mathbf{k}_1, \ldots, \mathbf{k}_n$ 进行比较。哪个 `key` 向量与 `query` 向量 $\mathbf{q}_j$ 越相似,其对应的 `value` 向量 $\mathbf{v}_j$ 对输出向量 $\mathbf{x''}_j$ 的影响就越重要。更具体地说,输出向量 $\mathbf{x''}_j$ 被定义为所有 `value` 向量的加权和 $\mathbf{v}_1, \ldots, \mathbf{v}_n$ 加上输入向量 $\mathbf{x'}_j$。而各 `value` 向量的权重与 $\mathbf{q}_j$ 和各个 `key` 向量 $\mathbf{k}_1, \ldots, \mathbf{k}_n$ 之间的余弦相似度成正比,其数学公式为 $\textbf{Softmax}(\mathbf{K}_{1:n}^\intercal \mathbf{q}_j)$,如下文的公式所示。关于自注意力层的完整描述,建议读者阅读[这篇](http://jalammar.github.io/illustrated-transformer/)博文或[原始论文](https://arxiv.org/abs/1706.03762)。 +请注意,对每个输入向量 $\mathbf{x}_i (\forall i \in {i, \ldots, n}$) 而言,其所使用的权重矩阵都是 **相同**的。将每个输入向量 $\mathbf{x}_i$ 投影到 `query` 、 `key` 和 `value` 向量后,将每个 `query` 向量 $\mathbf{q}_j (\forall j \in {1, \ldots, n}$) 与所有 `key` 向量 $\mathbf{k}_1, \ldots, \mathbf{k}_n$ 进行比较。哪个 `key` 向量与 `query` 向量 $\mathbf{q}_j$ 越相似,其对应的 `value` 向量 $\mathbf{v}_j$ 对输出向量 $\mathbf{x''}_j$ 的影响就越重要。更具体地说,输出向量 $\mathbf{x''}_j$ 被定义为所有 `value` 向量的加权和 $\mathbf{v}_1, \ldots, \mathbf{v}_n$ 加上输入向量 $\mathbf{x'}_j$。而各 `value` 向量的权重与 $\mathbf{q}_j$ 和各个 `key` 向量 $\mathbf{k}_1, \ldots, \mathbf{k}_n$ 之间的余弦相似度成正比,其数学公式为 $\textbf{Softmax}(\mathbf{K}_{1:n}^\intercal \mathbf{q}_j)$,如下文的公式所示。关于自注意力层的完整描述,建议读者阅读 [这篇](http://jalammar.github.io/illustrated-transformer/) 博文或 [原始论文](https://arxiv.org/abs/1706.03762)。 -好吧,又复杂起来了。我们以上例中的一个 `query` 向量为例图解一下双向自注意层。为简单起见,本例中假设我们的*基于 transformer* 的解码器只有一个注意力头 `config.num_heads = 1` 并且没有归一化层。 +好吧,又复杂起来了。我们以上例中的一个 `query` 向量为例图解一下双向自注意层。为简单起见,本例中假设我们的 _基于 transformer_ 的解码器只有一个注意力头 `config.num_heads = 1` 并且没有归一化层。 ![](https://raw.githubusercontent.com/patrickvonplaten/scientific_images/master/encoder_decoder/encoder_detail.png) -图左显示了上个例子中的第二个编码器模块,右边详细可视化了第二个输入向量 $\mathbf{x'}_2$ 的双向自注意机制,其对应输入词为 "want"。首先将所有输入向量 $\mathbf{x'}_1, \ldots, \mathbf{x'}_7$ 投影到它们各自的 `query` 向量 $\mathbf{q}_1, \ldots, \mathbf{q}_7$(上图中仅以紫色显示前三个 `query` 向量),`value` 向量 $\mathbf{v}_1, \ldots, \mathbf{v}_7$(蓝色) 和 `key` 向量 $\mathbf{k}_1, \ldots, \mathbf{k}_7$(橙色)。然后,将 `query` 向量 $\mathbf{q}_2$ 与所有 `key` 向量的转置(*即* $\mathbf{K}_{1:7}^{\intercal}$)相乘,随后进行 softmax 操作以产生*自注意力权重*。 自注意力权重最终与各自的 `value` 向量相乘,并加上输入向量 $\mathbf{x'}_2$,最终输出单词 "want" 的上下文相关表征, *即* $\mathbf{x''}_2$(图右深绿色表示)。整个等式显示在图右框的上部。 $\mathbf{K}_{1:7}^{\intercal}$ 和 $\mathbf{q}_2$ 的相乘使得将 "want" 的向量表征与所有其他输入("I","to","buy","a","car","EOS")的向量表征相比较成为可能,因此自注意力权重反映出每个输入向量 $\mathbf{x'}_j$ 对 "want" 一词的最终表征 $\mathbf{x''}_2$ 的重要程度。 +图左显示了上个例子中的第二个编码器模块,右边详细可视化了第二个输入向量 $\mathbf{x'}_2$ 的双向自注意机制,其对应输入词为 “want”。首先将所有输入向量 $\mathbf{x'}_1, \ldots, \mathbf{x'}_7$ 投影到它们各自的 `query` 向量 $\mathbf{q}_1, \ldots, \mathbf{q}_7$ (上图中仅以紫色显示前三个 `query` 向量), `value` 向量 $\mathbf{v}_1, \ldots, \mathbf{v}_7$ (蓝色) 和 `key` 向量 $\mathbf{k}_1, \ldots, \mathbf{k}_7$ (橙色)。然后,将 `query` 向量 $\mathbf{q}_2$ 与所有 `key` 向量的转置 ( _即_ $\mathbf{K}_{1:7}^{\intercal}$) 相乘,随后进行 softmax 操作以产生 _自注意力权重_ 。 自注意力权重最终与各自的 `value` 向量相乘,并加上输入向量 $\mathbf{x'}_2$,最终输出单词 “want” 的上下文相关表征, _即_ $\mathbf{x''}_2$ (图右深绿色表示)。整个等式显示在图右框的上部。 $\mathbf{K}_{1:7}^{\intercal}$ 和 $\mathbf{q}_2$ 的相乘使得将 “want” 的向量表征与所有其他输入 (“I”,“to”,“buy”,“a”,“car”,“EOS”) 的向量表征相比较成为可能,因此自注意力权重反映出每个输入向量 $\mathbf{x'}_j$ 对 “want” 一词的最终表征 $\mathbf{x''}_2$ 的重要程度。 -为了进一步理解双向自注意力层的含义,我们假设以下句子:“*房子很漂亮且位于市中心,因此那儿公共交通很方便*”。 “那儿”这个词指的是“房子”,这两个词相隔12个字。在基于 transformer 的编码器中,双向自注意力层运算一次,即可将“房子”的输入向量与“那儿”的输入向量相关联。相比之下,在基于 RNN 的编码器中,相距 12 个字的词将需要至少 12 个时间步的运算,这意味着在基于 RNN 的编码器中所需数学运算与距离呈线性关系。这使得基于 RNN 的编码器更难对长程上下文表征进行建模。此外,很明显,基于 transformer 的编码器比基于 RNN 的编码器-解码器模型更不容易丢失重要信息,因为编码的序列长度相对输入序列长度保持不变,*即* $\textbf{len }(\mathbf{X}_{1:n}) = \textbf{len}(\mathbf{\overline{X}}_{1:n}) = n$,而 RNN 则会将 $\textbf{len}((\mathbf{X}_{1:n}) = n$ 压缩到 $\textbf{len}(\mathbf{c}) = 1$,这使得 RNN 很难有效地对输入词之间的长程依赖关系进行编码。 +为了进一步理解双向自注意力层的含义,我们假设以下句子: “ _房子很漂亮且位于市中心,因此那儿公共交通很方便_”。 “那儿”这个词指的是“房子”,这两个词相隔 12 个字。在基于 transformer 的编码器中,双向自注意力层运算一次,即可将“房子”的输入向量与“那儿”的输入向量相关联。相比之下,在基于 RNN 的编码器中,相距 12 个字的词将需要至少 12 个时间步的运算,这意味着在基于 RNN 的编码器中所需数学运算与距离呈线性关系。这使得基于 RNN 的编码器更难对长程上下文表征进行建模。此外,很明显,基于 transformer 的编码器比基于 RNN 的编码器-解码器模型更不容易丢失重要信息,因为编码的序列长度相对输入序列长度保持不变, _即_ $\textbf{len }(\mathbf{X}_{1:n}) = \textbf{len}(\mathbf{\overline{X}}_{1:n}) = n$,而 RNN 则会将 $\textbf{len}((\mathbf{X}_{1:n}) = n$ 压缩到 $\textbf{len}(\mathbf{c}) = 1$,这使得 RNN 很难有效地对输入词之间的长程依赖关系进行编码。 -除了更容易学到长程依赖外,我们还可以看到 transformer 架构能够并行处理文本。从数学上讲,这是通过将自注意力机制表示为 `query`、`key` 和 `value` 的矩阵乘来完成的: +除了更容易学到长程依赖外,我们还可以看到 transformer 架构能够并行处理文本。从数学上讲,这是通过将自注意力机制表示为 `query` 、 `key` 和 `value` 的矩阵乘来完成的: $$\mathbf{X''}_{1:n} = \mathbf{V}_{1:n} \text{Softmax}(\mathbf{Q}_{1:n}^\intercal \mathbf{K}_{1:n}) + \mathbf{X'}_{1:n} $$ -输出 $\mathbf{X''}_{1:n} = \mathbf{x''}_1, \ldots, \mathbf{x''}_n$ 是由一系列矩阵乘计算和 softmax 操作算得,因此可以有效地并行化。请注意,在基于 RNN 的编码器模型中,隐含状态 $\mathbf{c}$ 的计算必须按顺序进行:先计算第一个输入向量的隐含状态 $\mathbf{x} _1$;然后计算第二个输入向量的隐含状态,其取决于第一个隐含向量的状态,依此类推。RNN 的顺序性阻碍了有效的并行化,并使其在现代 GPU 硬件上比基于 transformer 的编码器模型的效率低得多。 +输出 $\mathbf{X''}_{1:n} = \mathbf{x''}_1, \ldots, \mathbf{x''}_n$ 是由一系列矩阵乘计算和 softmax 操作算得,因此可以有效地并行化。请注意,在基于 RNN 的编码器模型中,隐含状态 $\mathbf{c}$ 的计算必须按顺序进行: 先计算第一个输入向量的隐含状态 $\mathbf{x}_1$; 然后计算第二个输入向量的隐含状态,其取决于第一个隐含向量的状态,依此类推。RNN 的顺序性阻碍了有效的并行化,并使其在现代 GPU 硬件上比基于 transformer 的编码器模型的效率低得多。 太好了,现在我们应该对 a) 基于 transformer 的编码器模型如何有效地建模长程上下文表征,以及 b) 它们如何有效地处理长序列向量输入这两个方面有了比较好的理解了。 现在,我们写一个 `MarianMT` 编码器-解码器模型的编码器部分的小例子,以验证这些理论在实践中行不行得通。 ------------------------------------------------------------------------- +--- -${}^1$ 关于前馈层在基于 transformer 的模型中所扮演的角色的详细解释超出了本文的范畴。[Yun 等人(2017)](https://arxiv.org/pdf/1912.10077.pdf) 的工作认为前馈层对于将每个上下文向量 $\mathbf{x'}_i$ 映射到目标输出空间至关重要,而单靠*自注意力*层无法达成这一目的。这里请注意,每个输出词元 $\mathbf{x'}$ 都经由相同的前馈层处理。更多详细信息,建议读者阅读论文。 +${}^1$ 关于前馈层在基于 transformer 的模型中所扮演的角色的详细解释超出了本文的范畴。[Yun 等人 (2017) ](https://arxiv.org/pdf/1912.10077.pdf) 的工作认为前馈层对于将每个上下文向量 $\mathbf{x'}_i$ 映射到目标输出空间至关重要,而单靠 _自注意力_ 层无法达成这一目的。这里请注意,每个输出词元 $\mathbf{x'}$ 都经由相同的前馈层处理。更多详细信息,建议读者阅读论文。 ${}^2$ 我们无须将 EOS 附加到输入序列,虽然有工作表明,在很多情况下加入它可以提高性能。相反地,基于 transformer 的解码器必须把 $\text{BOS}$ 作为第 0 个目标向量,并以之为条件预测第 1 个目标向量。 @@ -310,89 +311,89 @@ print(f"Length of input embeddings {embeddings(input_ids).shape[1]}. Length of e print("Is encoding for `I` equal to its perturbed version?: ", torch.allclose(encoder_hidden_states[0, 0], encoder_hidden_states_perturbed[0, 0], atol=1e-3)) ``` -*输出:* +*输出:* ``` Length of input embeddings 7. Length of encoder_hidden_states 7 - Is encoding for `I` equal to its perturbed version?: False + Is encoding for `I` equal to its perturbed version?: False ``` -我们比较一下输入词嵌入的序列长度(*即* `embeddings(input_ids)`,对应于 $\mathbf{X}_{1:n}$)和 `encoder_hidden_​​states` 的长度(对应于$\mathbf{\overline{X}}_{1:n}$)。同时,我们让编码器对单词序列 "I want to buy a car" 及其轻微改动版 "I want to buy a house" 分别执行前向操作,以检查第一个词 "I" 的输出编码在更改输入序列的最后一个单词后是否会有所不同。 +我们比较一下输入词嵌入的序列长度 ( _即_ `embeddings(input_ids)`,对应于 $\mathbf{X}_{1:n}$) 和 `encoder_hidden_​​states` 的长度 (对应于$\mathbf{\overline{X}}_{1:n}$)。同时,我们让编码器对单词序列 “I want to buy a car” 及其轻微改动版 “I want to buy a house” 分别执行前向操作,以检查第一个词 “I” 的输出编码在更改输入序列的最后一个单词后是否会有所不同。 -不出意外,输入词嵌入和编码器输出编码的长度,*即* $\textbf{len}(\mathbf{X}_{1:n})$ 和 $\textbf{len }(\mathbf{\overline{X}}_{1:n})$,是相等的。同时,可以注意到当最后一个单词从 "car" 改成 "house" 后,$\mathbf{\overline{x}}_1 = \text{"I"}$ 的编码输出向量的值也改变了。因为我们现在已经理解了双向自注意力机制,这就不足为奇了。 +不出意外,输入词嵌入和编码器输出编码的长度, _即_ $\textbf{len}(\mathbf{X}_{1:n})$ 和 $\textbf{len }(\mathbf{\overline{X}}_{1:n})$,是相等的。同时,可以注意到当最后一个单词从 “car” 改成 “house” 后,$\mathbf{\overline{x}}_1 = \text{“I”}$ 的编码输出向量的值也改变了。因为我们现在已经理解了双向自注意力机制,这就不足为奇了。 -顺带一提,*自编码*模型(如 BERT)的架构与*基于 transformer* 的编码器模型是完全一样的。 *自编码*模型利用这种架构对开放域文本数据进行大规模自监督预训练,以便它们可以将任何单词序列映射到深度双向表征。在 [Devlin 等(2018)](https://arxiv.org/abs/1810.04805) 的工作中,作者展示了一个预训练 BERT 模型,其顶部有一个任务相关的分类层,可以在 11 个 NLP 任务上获得 SOTA 结果。你可以从[此处](https://huggingface.co/transformers/model_summary.html#autoencoding-models) 找到 🤗 transformers 支持的所有*自编码*模型。 +顺带一提, _自编码_ 模型 (如 BERT) 的架构与 _基于 transformer_ 的编码器模型是完全一样的。 _自编码_模型利用这种架构对开放域文本数据进行大规模自监督预训练,以便它们可以将任何单词序列映射到深度双向表征。在 [Devlin 等 (2018) ](https://arxiv.org/abs/1810.04805) 的工作中,作者展示了一个预训练 BERT 模型,其顶部有一个任务相关的分类层,可以在 11 个 NLP 任务上获得 SOTA 结果。你可以从 [此处](https://huggingface.co/transformers/model_summary.html#autoencoding-models) 找到 🤗 transformers 支持的所有 _自编码_ 模型。 ## **解码器** -如*编码器-解码器*部分所述,*基于 transformer* 的解码器定义了给定上下文编码序列条件下目标序列的条件概率分布: +如 _编码器-解码器_ 部分所述, _基于 transformer_ 的解码器定义了给定上下文编码序列条件下目标序列的条件概率分布: $$ p_{\theta_{dec}}(\mathbf{Y}_{1: m} | \mathbf{\overline{X}}_{1:n}) $$ -根据贝叶斯法则,在给定上下文编码序列和每个目标变量的所有前驱目标向量的条件下,可将上述分布分解为每个目标向量的条件分布的乘积: +根据贝叶斯法则,在给定上下文编码序列和每个目标变量的所有前驱目标向量的条件下,可将上述分布分解为每个目标向量的条件分布的乘积: $$ p_{\theta_{dec}}(\mathbf{Y}_{1:m} | \mathbf{\overline{X}}_{1:n}) = \prod_{i=1}^{m} p_{\theta_{dec}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{\overline{X}}_{1:n}) $$ -我们首先了解一下基于 transformer 的解码器如何定义概率分布。基于 transformer 的解码器由很多*解码器模块*堆叠而成,最后再加一个线性层(即 “LM 头”)。这些解码器模块的堆叠将上下文相关的编码序列 $\mathbf{\overline{X}}_{1:n}$ 和每个目标向量的前驱输入 $\mathbf{Y}_{0:i-1}$(这里 $\mathbf{y}_0$ 为 BOS)映射为目标向量的编码序列 $\mathbf{\overline{Y} }_{0:i-1}$。然后,“LM 头”将目标向量的编码序列 $\mathbf{\overline{Y}}_{0:i-1}$ 映射到 logit 向量序列 $\mathbf {L}_{1:n} = \mathbf{l}_1, \ldots, \mathbf{l}_n$, 而每个 logit 向量$\mathbf{l}_i$ 的维度即为词表的词汇量。这样,对于每个 $i \in \{1, \ldots, n\}$,其在整个词汇表上的概率分布可以通过对 $\mathbf{l}_i$ 取 softmax 获得。公式如下: +我们首先了解一下基于 transformer 的解码器如何定义概率分布。基于 transformer 的解码器由很多 _解码器模块_堆叠而成,最后再加一个线性层 (即 “LM 头”)。这些解码器模块的堆叠将上下文相关的编码序列 $\mathbf{\overline{X}}_{1:n}$ 和每个目标向量的前驱输入 $\mathbf{Y}_{0:i-1}$ (这里 $\mathbf{y}_0$ 为 BOS) 映射为目标向量的编码序列 $\mathbf{\overline{Y} }_{0:i-1}$。然后,“LM 头”将目标向量的编码序列 $\mathbf{\overline{Y}}_{0:i-1}$ 映射到 logit 向量序列 $\mathbf {L}_{1:n} = \mathbf{l}_1, \ldots, \mathbf{l}_n$, 而每个 logit 向量$\mathbf{l}_i$ 的维度即为词表的词汇量。这样,对于每个 $i \in {1, \ldots, n}$,其在整个词汇表上的概率分布可以通过对 $\mathbf{l}_i$ 取 softmax 获得。公式如下: -$$p_{\theta_{dec}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{\overline{X}}_{1:n}), \forall i \in \{1, \ldots, n\}$$ +$$p_{\theta_{dec}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{\overline{X}}_{1:n}), \forall i \in {1, \ldots, n}$$ -“LM 头” 即为词嵌入矩阵的转置,*即* $\mathbf{W}_{\text{emb}}^{\intercal} = \left[\mathbf{ y}^1, \ldots, \mathbf{y}^{\text{vocab}}\right]^{​​T}$ ${}^1$。直观上来讲,这意味着对于所有 $i \in \{0, \ldots, n - 1\}$ “LM 头” 层会将 $\mathbf{\overline{y }}_i$ 与词汇表 $\mathbf{y}^1, \ldots, \mathbf{y}^{\text{vocab}}$ 中的所有词嵌入一一比较,输出的 logit 向量 $\mathbf{l}_{i+1}$ 即表示 $\mathbf{\overline{y }}_i$ 与每个词嵌入之间的相似度。Softmax 操作只是将相似度转换为概率分布。对于每个 $i \in \{1, \ldots, n\}$,以下等式成立: +“LM 头” 即为词嵌入矩阵的转置, _即_ $\mathbf{W}_{\text{emb}}^{\intercal} = \left[\mathbf{ y}^1, \ldots, \mathbf{y}^{\text{vocab}}\right]^{​​T}$ ${}^1$。直观上来讲,这意味着对于所有 $i \in {0, \ldots, n - 1}$ “LM 头” 层会将 $\mathbf{\overline{y }}_i$ 与词汇表 $\mathbf{y}^1, \ldots, \mathbf{y}^{\text{vocab}}$ 中的所有词嵌入一一比较,输出的 logit 向量 $\mathbf{l}_{i+1}$ 即表示 $\mathbf{\overline{y }}_i$ 与每个词嵌入之间的相似度。Softmax 操作只是将相似度转换为概率分布。对于每个 $i \in {1, \ldots, n}$,以下等式成立: $$ p_{\theta_{dec}}(\mathbf{y} | \mathbf{\overline{X}}_{1:n}, \mathbf{Y}_{0:i-1})$$ $$ = \text{Softmax}(f_{\theta_{\text{dec}}}(\mathbf{\overline{X}}_{1:n}, \mathbf{Y}_{0:i-1}))$$ $$ = \text{Softmax}(\mathbf{W}_{\text{emb}}^{\intercal} \mathbf{\overline{y}}_{i-1})$$ $$ = \text{Softmax}(\mathbf{l}_i) $$ -总结一下,为了对目标向量序列 $\mathbf{Y}_{1: m}$ 的条件分布建模,先在目标向量 $\mathbf{Y}_{1: m-1}$ 前面加上特殊的 $\text{BOS}$ 向量(*即* $\mathbf{y}_0$),并将其与上下文相关的编码序列 $\mathbf{\overline{X}}_{1:n}$ 一起映射到 logit 向量序列 $\mathbf{L}_{1:m}$。然后,使用 softmax 操作将每个 logit 目标向量 $\mathbf{l}_i$ 转换为目标向量 $\mathbf{y}_i$ 的条件概率分布。最后,将所有目标向量的条件概率 $\mathbf{y}_1, \ldots, \mathbf{y}_m$ 相乘得到完整目标向量序列的条件概率: +总结一下,为了对目标向量序列 $\mathbf{Y}_{1: m}$ 的条件分布建模,先在目标向量 $\mathbf{Y}_{1: m-1}$ 前面加上特殊的 $\text{BOS}$ 向量 ( _即_ $\mathbf{y}_0$),并将其与上下文相关的编码序列 $\mathbf{\overline{X}}_{1:n}$ 一起映射到 logit 向量序列 $\mathbf{L}_{1:m}$。然后,使用 softmax 操作将每个 logit 目标向量 $\mathbf{l}_i$ 转换为目标向量 $\mathbf{y}_i$ 的条件概率分布。最后,将所有目标向量的条件概率 $\mathbf{y}_1, \ldots, \mathbf{y}_m$ 相乘得到完整目标向量序列的条件概率: $$ p_{\theta_{dec}}(\mathbf{Y}_{1:m} | \mathbf{\overline{X}}_{1:n}) = \prod_{i=1}^{m} p_{\theta_{dec}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{\overline{X}}_{1:n}).$$ -与基于 transformer 的编码器不同,在基于 transformer 的解码器中,其输出向量 $\mathbf{\overline{y}}_{i-1}$ 应该能很好地表征*下一个*目标向量(即 $\mathbf{y}_i$),而不是输入向量本身(即 $\mathbf{y}_{i-1}$)。此外,输出向量 $\mathbf{\overline{y}}_{i-1}$ 应基于编码器的整个输出序列 $\mathbf{\overline{X}}_{1:n}$。为了满足这些要求,每个解码器块都包含一个**单向**自注意层,紧接着是一个**交叉注意**层,最后是两个前馈层${}^2$。单向自注意层将其每个输入向量 $\mathbf{y'}_j$ 仅与其前驱输入向量 $\mathbf{y'}_i$(其中 $i \le j$,且 $j \in \{1, \ldots, n\}$) 相关联,来模拟下一个目标向量的概率分布。交叉注意层将其每个输入向量 $\mathbf{y''}_j$ 与编码器输出的所有向量 $\mathbf{\overline{X}}_{1:n}$ 相关联,来根据编码器输入预测下一个目标向量的概率分布。 +与基于 transformer 的编码器不同,在基于 transformer 的解码器中,其输出向量 $\mathbf{\overline{y}}_{i-1}$ 应该能很好地表征 _下一个_目标向量 (即 $\mathbf{y}_i$),而不是输入向量本身 (即 $\mathbf{y}_{i-1}$)。此外,输出向量 $\mathbf{\overline{y}}_{i-1}$ 应基于编码器的整个输出序列 $\mathbf{\overline{X}}_{1:n}$。为了满足这些要求,每个解码器块都包含一个 **单向**自注意层,紧接着是一个 **交叉注意**层,最后是两个前馈层${}^2$。单向自注意层将其每个输入向量 $\mathbf{y'}_j$ 仅与其前驱输入向量 $\mathbf{y'}_i$ (其中 $i \le j$,且 $j \in {1, \ldots, n}$) 相关联,来模拟下一个目标向量的概率分布。交叉注意层将其每个输入向量 $\mathbf{y''}_j$ 与编码器输出的所有向量 $\mathbf{\overline{X}}_{1:n}$ 相关联,来根据编码器输入预测下一个目标向量的概率分布。 -好,我们仍以英语到德语翻译为例可视化一下*基于 transformer* 的解码器。 +好,我们仍以英语到德语翻译为例可视化一下 _基于 transformer_ 的解码器。 ![](https://raw.githubusercontent.com/patrickvonplaten/scientific_images/master/encoder_decoder/encoder_decoder_detail.png) -我们可以看到解码器将 $\mathbf{Y}_{0:5}$: "BOS"、"Ich"、"will"、"ein"、"Auto"、"kaufen"(图中以浅红色显示)和 "I"、"want"、"to"、"buy"、"a"、"car"、"EOS"(*即* $\mathbf{\overline{X}}_{1:7}$(图中以深绿色显示))映射到 logit 向量 $\mathbf{L}_{1:6}$(图中以深红色显示)。 +我们可以看到解码器将 $\mathbf{Y}_{0:5}$: “BOS”、“Ich”、“will”、“ein”、“Auto”、“kaufen” (图中以浅红色显示) 和 “I”、“want”、“to”、“buy”、“a”、“car”、“EOS” ( _即_ $\mathbf{\overline{X}}_{1:7}$ (图中以深绿色显示)) 映射到 logit 向量 $\mathbf{L}_{1:6}$ (图中以深红色显示)。 -因此,对每个 $\mathbf{l}_1、\mathbf{l}_2、\ldots、\mathbf{l}_6$ 使用 softmax 操作可以定义下列条件概率分布: +因此,对每个 $\mathbf{l}_1、\mathbf{l}_2、\ldots、\mathbf{l}_6$ 使用 softmax 操作可以定义下列条件概率分布: $$ p_{\theta_{dec}}(\mathbf{y} | \text{BOS}, \mathbf{\overline{X}}_{1:7}), $$ -$$ p_{\theta_{dec}}(\mathbf{y} | \text{BOS Ich}, \mathbf{\overline{X}}_{1:7}), $$ -$$ \ldots, $$ -$$ p_{\theta_{dec}}(\mathbf{y} | \text{BOS Ich will ein Auto kaufen}, \mathbf{\overline{X}}_{1:7}) $$ +> $$ p_{\theta_{dec}}(\mathbf{y} | \text{BOS Ich}, \mathbf{\overline{X}}_{1:7}), $$ +> $$ \ldots, $$ +> $$ p_{\theta_{dec}}(\mathbf{y} | \text{BOS Ich will ein Auto kaufen}, \mathbf{\overline{X}}_{1:7}) $$ -总条件概率如下: +总条件概率如下: $$ p_{\theta_{dec}}(\text{Ich will ein Auto kaufen EOS} | \mathbf{\overline{X}}_{1:n})$$ -其可表示为以下乘积形式: +其可表示为以下乘积形式: $$ p_{\theta_{dec}}(\text{Ich} | \text{BOS}, \mathbf{\overline{X}}_{1:7}) \times \ldots \times p_{\theta_{dec}}(\text{EOS} | \text{BOS Ich will ein Auto kaufen}, \mathbf{\overline{X}}_{1:7}) $$ 图右侧的红框显示了前三个目标向量 $\mathbf{y}_0$、$\mathbf{y}_1$、 $\mathbf{y}_2$ 在一个解码器模块中的行为。下半部分说明了单向自注意机制,中间说明了交叉注意机制。我们首先关注单向自注意力。 -与双向自注意一样,在单向自注意中,`query` 向量 $\mathbf{q}_0, \ldots, \mathbf{q}_{m-1}$(如下图紫色所示),`key` 向量 $\mathbf{k}_0, \ldots, \mathbf{k}_{m-1}$(如下图橙色所示),和 `value` 向量 $\mathbf{v }_0, \ldots, \mathbf{v}_{m-1}$(如下图蓝色所示)均由输入向量 $\mathbf{y'}_0, \ldots, \mathbf{ y'}_{m-1}$(如下图浅红色所示)映射而来。然而,在单向自注意力中,每个 `query` 向量 $\mathbf{q}_i$ *仅*与当前及之前的 `key` 向量进行比较(即 $\mathbf{k}_0 , \ldots, \mathbf{k}_i$)并生成各自的*注意力权重*。这可以防止输出向量 $\mathbf{y''}_j$(如下图深红色所示)包含未来向量($\mathbf{y}_i$,其中 $i > j$ 且 $j \in \{0, \ldots, m - 1 \}$)的任何信息 。与双向自注意力的情况一样,得到的注意力权重会乘以它们各自的 `value` 向量并加权求和。 +与双向自注意一样,在单向自注意中, `query` 向量 $\mathbf{q}_0, \ldots, \mathbf{q}_{m-1}$ (如下图紫色所示), `key` 向量 $\mathbf{k}_0, \ldots, \mathbf{k}_{m-1}$ (如下图橙色所示),和 `value` 向量 $\mathbf{v }_0, \ldots, \mathbf{v}_{m-1}$ (如下图蓝色所示) 均由输入向量 $\mathbf{y'}_0, \ldots, \mathbf{ y'}_{m-1}$ (如下图浅红色所示) 映射而来。然而,在单向自注意力中,每个 `query` 向量 $\mathbf{q}_i$ _仅_ 与当前及之前的 `key` 向量进行比较 (即 $\mathbf{k}_0 , \ldots, \mathbf{k}_i$) 并生成各自的 _注意力权重_ 。这可以防止输出向量 $\mathbf{y''}_j$ (如下图深红色所示) 包含未来向量 ($\mathbf{y}_i$,其中 $i > j$ 且 $j \in {0, \ldots, m - 1 }$) 的任何信息 。与双向自注意力的情况一样,得到的注意力权重会乘以它们各自的 `value` 向量并加权求和。 -我们将单向自注意力总结如下: +我们将单向自注意力总结如下: $$\mathbf{y''}_i = \mathbf{V}_{0: i} \textbf{Softmax}(\mathbf{K}_{0: i}^\intercal \mathbf{q}_i) + \mathbf{y'}_i$$ -请注意,`key` 和 `value` 向量的索引范围都是 $0:i$ 而不是 $0: m-1$,$0: m-1$ 是双向自注意力中 `key` 向量的索引范围。 +请注意, `key` 和 `value` 向量的索引范围都是 $0:i$ 而不是 $0: m-1$,$0: m-1$ 是双向自注意力中 `key` 向量的索引范围。 下图显示了上例中输入向量 $\mathbf{y'}_1$ 的单向自注意力。 ![](https://raw.githubusercontent.com/patrickvonplaten/scientific_images/master/encoder_decoder/causal_attn.png) -可以看出 $\mathbf{y''}_1$ 只依赖于 $\mathbf{y'}_0$ 和 $\mathbf{y'}_1$。因此,单词 "Ich" 的向量表征(*即* $\mathbf{y'}_1$)仅与其自身及 "BOS" 目标向量(*即* $\mathbf{y'}_0$)相关联,而**不**与 "will" 的向量表征(*即* $\mathbf{y'}_2$)相关联。 +可以看出 $\mathbf{y''}_1$ 只依赖于 $\mathbf{y'}_0$ 和 $\mathbf{y'}_1$。因此,单词 “Ich” 的向量表征 ( _即_ $\mathbf{y'}_1$) 仅与其自身及 “BOS” 目标向量 ( _即_ $\mathbf{y'}_0$) 相关联,而 **不** 与 “will” 的向量表征 ( _即_ $\mathbf{y'}_2$) 相关联。 -那么,为什么解码器使用单向自注意力而不是双向自注意力这件事很重要呢?如前所述,基于 transformer 的解码器定义了从输入向量序列 $\mathbf{Y}_{0: m-1}$ 到其**下一个**解码器输入的 logit 向量的映射,即 $\mathbf{L}_{1:m}$。举个例子,输入向量 $\mathbf{y}_1$ = "Ich" 会映射到 logit 向量 $\mathbf{l}_2$,并用于预测下一个输入向量 $\mathbf{y}_2$。因此,如果 $\mathbf{y'}_1$ 可以获取后续输入向量 $\mathbf{Y'}_{2:5}$的信息,解码器将会简单地复制向量 "will" 的向量表征(*即* $\mathbf{y'}_2$)作为其输出 $\mathbf{y''}_1$,并就这样一直传播到最后一层,所以最终的输出向量 $\mathbf{\overline{y}}_1$ 基本上就只对应于 $\mathbf{y}_2$ 的向量表征,并没有起到预测的作用。 +那么,为什么解码器使用单向自注意力而不是双向自注意力这件事很重要呢?如前所述,基于 transformer 的解码器定义了从输入向量序列 $\mathbf{Y}_{0: m-1}$ 到其 **下一个** 解码器输入的 logit 向量的映射,即 $\mathbf{L}_{1:m}$。举个例子,输入向量 $\mathbf{y}_1$ = “Ich” 会映射到 logit 向量 $\mathbf{l}_2$,并用于预测下一个输入向量 $\mathbf{y}_2$。因此,如果 $\mathbf{y'}_1$ 可以获取后续输入向量 $\mathbf{Y'}_{2:5}$的信息,解码器将会简单地复制向量 “will” 的向量表征 ( _即_ $\mathbf{y'}_2$) 作为其输出 $\mathbf{y''}_1$,并就这样一直传播到最后一层,所以最终的输出向量 $\mathbf{\overline{y}}_1$ 基本上就只对应于 $\mathbf{y}_2$ 的向量表征,并没有起到预测的作用。 -这显然是不对的,因为这样的话,基于 transformer 的解码器永远不会学到在给定所有前驱词的情况下预测下一个词,而只是对所有 $i \in \{1, \ldots, m \}$,通过网络将目标向量 $\mathbf{y}_i$ 复制到 $\mathbf {\overline{y}}_{i-1}$。以下一个目标变量本身为条件去定义下一个目标向量,即从 $p(\mathbf{y} | \mathbf{Y}_{0:i}, \mathbf{\overline{ X}})$ 中预测 $\mathbf{y}_i$, 显然是不对的。因此,单向自注意力架构允许我们定义一个*因果的*概率分布,这对有效建模下一个目标向量的条件分布而言是必要的。 +这显然是不对的,因为这样的话,基于 transformer 的解码器永远不会学到在给定所有前驱词的情况下预测下一个词,而只是对所有 $i \in {1, \ldots, m }$,通过网络将目标向量 $\mathbf{y}_i$ 复制到 $\mathbf {\overline{y}}_{i-1}$。以下一个目标变量本身为条件去定义下一个目标向量,即从 $p(\mathbf{y} | \mathbf{Y}_{0:i}, \mathbf{\overline{ X}})$ 中预测 $\mathbf{y}_i$, 显然是不对的。因此,单向自注意力架构允许我们定义一个 _因果的_概率分布,这对有效建模下一个目标向量的条件分布而言是必要的。 -太棒了!现在我们可以转到连接编码器和解码器的层 - *交叉注意力*机制! +太棒了!现在我们可以转到连接编码器和解码器的层 - _交叉注意力_机制! -交叉注意层将两个向量序列作为输入:单向自注意层的输出 $\mathbf{Y''}_{0: m-1}$ 和编码器的输出 $\mathbf{\overline{X}}_{1:n}$。与自注意力层一样,`query` 向量 $\mathbf{q}_0, \ldots, \mathbf{q}_{m-1}$ 是上一层输出向量 $\mathbf{Y''}_{0: m-1}$ 的投影。而 `key` 和 `value` 向量 $\mathbf{k}_0, \ldots, \mathbf{k}_{n-1}$、$\mathbf{v}_0, \ldots, \mathbf {v}_{n-1}$ 是编码器输出向量 $\mathbf{\overline{X}}_{1:n}$ 的投影。定义完 `key`、`value` 和 `query` 向量后,将 `query` 向量 $\mathbf{q}_i$ 与 *所有* `key` 向量进行比较,并用各自的得分对相应的 `value` 向量进行加权求和。这个过程与*双向*自注意力对所有 $i \in {0, \ldots, m-1}$ 求 $\mathbf{y'''}_i$ 是一样的。交叉注意力可以概括如下: +交叉注意层将两个向量序列作为输入: 单向自注意层的输出 $\mathbf{Y''}_{0: m-1}$ 和编码器的输出 $\mathbf{\overline{X}}_{1:n}$。与自注意力层一样, `query` 向量 $\mathbf{q}_0, \ldots, \mathbf{q}_{m-1}$ 是上一层输出向量 $\mathbf{Y''}_{0: m-1}$ 的投影。而 `key` 和 `value` 向量 $\mathbf{k}_0, \ldots, \mathbf{k}_{n-1}$、$\mathbf{v}_0, \ldots, \mathbf {v}_{n-1}$ 是编码器输出向量 $\mathbf{\overline{X}}_{1:n}$ 的投影。定义完 `key` 、`value` 和 `query` 向量后,将 `query` 向量 $\mathbf{q}_i$ 与 _所有_ `key` 向量进行比较,并用各自的得分对相应的 `value` 向量进行加权求和。这个过程与 _双向_自注意力对所有 $i \in {0, \ldots, m-1}$ 求 $\mathbf{y'''}_i$ 是一样的。交叉注意力可以概括如下: $$ \mathbf{y'''}_i = \mathbf{V}_{1:n} \textbf{Softmax}(\mathbf{K}_{1: n}^\intercal \mathbf{q}_i) + \mathbf{y''}_i @@ -406,19 +407,19 @@ $$ 我们可以看到 `query` 向量 $\mathbf{q}_1$(紫色)源自 $\mathbf{y''}_1$(红色),因此其依赖于单词 "Ich" 的向量表征。然后将 `query` 向量 $\mathbf{q}_1$ 与对应的 `key` 向量 $\mathbf{k}_1, \ldots, \mathbf{k}_7$(黄色)进行比较,这里的 `key` 向量对应于编码器对其输入 $\mathbf{X}_{1:n}$ = \"I want to buy a car EOS\" 的上下文相关向量表征。这将 \"Ich\" 的向量表征与所有编码器输入向量直接关联起来。最后,将注意力权重乘以 `value` 向量 $\mathbf{v}_1, \ldots, \mathbf{v}_7$(青绿色)并加上输入向量 $\mathbf{y''}_1$ 最终得到输出向量 $\mathbf{y'''}_1$(深红色)。 -所以,直观而言,到底发生了什么?每个输出向量 $\mathbf{y'''}_i$ 是由所有从编码器来的 `value` 向量($\mathbf{v}_{1}, \ldots, \mathbf{v }_7$ )的加权和与输入向量本身 $\mathbf{y''}_i$ 相加而得(参见上图所示的公式)。其关键思想是:*来自解码器的* $\mathbf{q}_i$ 的 `query` 投影与 *来自编码器的 $\mathbf{k}_j$* 越相关,其对应的 $\mathbf{v}_j$ 对输出的影响越大。 +所以,直观而言,到底发生了什么?每个输出向量 $\mathbf{y'''}_i$ 是由所有从编码器来的 `value` 向量($\mathbf{v}_{1}, \ldots, \mathbf{v }_7$ )的加权和与输入向量本身 $\mathbf{y''}_i$ 相加而得(参见上图所示的公式)。其关键思想是:_来自解码器的_ $\mathbf{q}_i$ 的 `query` 投影与 _来自编码器的 $\mathbf{k}_j$_ 越相关,其对应的 $\mathbf{v}_j$ 对输出的影响越大。 -酷!现在我们可以看到这种架构的每个输出向量 $\mathbf{y'''}_i$ 取决于其来自编码器的输入向量 $\mathbf{\overline{X}}_{1 :n}$ 及其自身的输入向量 $\mathbf{y''}_i$。这里有一个重要的点,在该架构中,虽然输出向量 $\mathbf{y'''}_i$ 依赖来自编码器的输入向量 $\mathbf{\overline{X}}_{1:n}$,但其完全独立于该向量的数量 $n$。所有生成 `key` 向量 $\mathbf{k}_1, \ldots, \mathbf{k}_n$ 和 `value` 向量 $\mathbf{v}_1, \ldots, \mathbf{v}_n $ 的投影矩阵 $\mathbf{W}^{\text{cross}}_{k}$ 和 $\mathbf{W}^{\text{cross}}_{v}$ 都是与 $n$ 无关的,所有 $n$ 共享同一个投影矩阵。且对每个 $\mathbf{y'''}_i$,所有 `value` 向量 $\mathbf{v}_1, \ldots, \mathbf{v}_n$ 被加权求和至一个向量。至此,关于`为什么基于 transformer 的解码器没有远程依赖问题而基于 RNN 的解码器有`这一问题的答案已经很显然了。因为每个解码器 logit 向量*直接*依赖于每个编码后的输出向量,因此比较第一个编码输出向量和最后一个解码器 logit 向量只需一次操作,而不像 RNN 需要很多次。 +酷!现在我们可以看到这种架构的每个输出向量 $\mathbf{y'''}_i$ 取决于其来自编码器的输入向量 $\mathbf{\overline{X}}_{1 :n}$ 及其自身的输入向量 $\mathbf{y''}_i$。这里有一个重要的点,在该架构中,虽然输出向量 $\mathbf{y'''}_i$ 依赖来自编码器的输入向量 $\mathbf{\overline{X}}_{1:n}$,但其完全独立于该向量的数量 $n$。所有生成 `key` 向量 $\mathbf{k}_1, \ldots, \mathbf{k}_n$ 和 `value` 向量 $\mathbf{v}_1, \ldots, \mathbf{v}_n $ 的投影矩阵 $\mathbf{W}^{\text{cross}}_{k}$ 和 $\mathbf{W}^{\text{cross}}_{v}$ 都是与 $n$ 无关的,所有 $n$ 共享同一个投影矩阵。且对每个 $\mathbf{y'''}_i$,所有 `value` 向量 $\mathbf{v}_1, \ldots, \mathbf{v}_n$ 被加权求和至一个向量。至此,关于`为什么基于 transformer 的解码器没有远程依赖问题而基于 RNN 的解码器有`这一问题的答案已经很显然了。因为每个解码器 logit 向量 _直接_ 依赖于每个编码后的输出向量,因此比较第一个编码输出向量和最后一个解码器 logit 向量只需一次操作,而不像 RNN 需要很多次。 总而言之,单向自注意力层负责基于当前及之前的所有解码器输入向量建模每个输出向量,而交叉注意力层则负责进一步基于编码器的所有输入向量建模每个输出向量。 为了验证我们对该理论的理解,我们继续上面编码器部分的代码,完成解码器部分。 ------------------------------------------------------------------------- +--- -${}^1$ 词嵌入矩阵 $\mathbf{W}_{\text{emb}}$ 为每个输入词提供唯一的*上下文无关*向量表示。这个矩阵通常也被用作 “LM 头”,此时 “LM 头”可以很好地完成“编码向量到 logit” 的映射。 +${}^1$ 词嵌入矩阵 $\mathbf{W}_{\text{emb}}$ 为每个输入词提供唯一的 _上下文无关_向量表示。这个矩阵通常也被用作 “LM 头”,此时 “LM 头”可以很好地完成“编码向量到 logit” 的映射。 -${}^2$ 与编码器部分一样,本文不会详细解释前馈层在基于 transformer 的模型中的作用。[Yun 等(2017)](https://arxiv.org/pdf/1912.10077.pdf) 的工作认为前馈层对于将每个上下文相关向量 $\mathbf{x'}_i$ 映射到所需的输出空间至关重要,仅靠自注意力层无法完成。这里应该注意,每个输出词元 $\mathbf{x'}$ 对应的前馈层是相同的。有关更多详细信息,建议读者阅读论文。 +${}^2$ 与编码器部分一样,本文不会详细解释前馈层在基于 transformer 的模型中的作用。[Yun 等 (2017) ](https://arxiv.org/pdf/1912.10077.pdf) 的工作认为前馈层对于将每个上下文相关向量 $\mathbf{x'}_i$ 映射到所需的输出空间至关重要,仅靠自注意力层无法完成。这里应该注意,每个输出词元 $\mathbf{x'}$ 对应的前馈层是相同的。有关更多详细信息,建议读者阅读论文。 ```python from transformers import MarianMTModel, MarianTokenizer @@ -455,26 +456,26 @@ print(f"Shape of decoder input vectors {embeddings(decoder_input_ids).shape}. Sh print("Is encoding for `Ich` equal to its perturbed version?: ", torch.allclose(lm_logits[0, 0], lm_logits_perturbed[0, 0], atol=1e-3)) ``` -*输出:* +*输出:* ``` Shape of decoder input vectors torch.Size([1, 5, 512]). Shape of decoder logits torch.Size([1, 5, 58101]) - Is encoding for `Ich` equal to its perturbed version?: True + Is encoding for `Ich` equal to its perturbed version?: True ``` -我们首先比较解码器词嵌入层的输出维度 `embeddings(decoder_input_ids)`(对应于 $\mathbf{Y}_{0: 4}$,这里 `` 对应于 BOS 且 \"Ich will das\" 被分为 4 个词)和 `lm_logits`(对应于 $\mathbf{L}_{1:5}$)的维度。此外,我们还通过解码器将单词序列 “`` Ich will ein” 和其轻微改编版 “`` Ich will das” 与 `encoder_output_vectors` 一起传递给解码器,以检查对应于 "Ich" 的第二个 lm_logit 在仅改变输入序列中的最后一个单词("ein" -> "das")时是否会有所不同。 +我们首先比较解码器词嵌入层的输出维度 `embeddings(decoder_input_ids)` (对应于 $\mathbf{Y}_{0: 4}$,这里 `` 对应于 BOS 且 "Ich will das" 被分为 4 个词) 和 `lm_logits` (对应于 $\mathbf{L}_{1:5}$) 的维度。此外,我们还通过解码器将单词序列 “`` Ich will ein” 和其轻微改编版 “`` Ich will das” 与 `encoder_output_vectors` 一起传递给解码器,以检查对应于 “Ich” 的第二个 lm_logit 在仅改变输入序列中的最后一个单词 (“ein” -> “das”) 时是否会有所不同。 -正如预期的那样,解码器输入词嵌入和 lm_logits 的输出,*即* $\mathbf{Y}_{0: 4}$ 和 $\mathbf{L}_{ 1:5}$ 的最后一个维度不同。虽然序列长度相同(=5),但解码器输入词嵌入的维度对应于 `model.config.hidden_​​size`,而 `lm_logit` 的维数对应于词汇表大小 `model.config.vocab_size`。其次,可以注意到,当将最后一个单词从 "ein" 变为 "das",$\mathbf{l}_1 = \text{"Ich"}$ 的输出向量的值不变。鉴于我们已经理解了单向自注意力,这就不足为奇了。 +正如预期的那样,解码器输入词嵌入和 lm_logits 的输出, _即_ $\mathbf{Y}_{0: 4}$ 和 $\mathbf{L}_{ 1:5}$ 的最后一个维度不同。虽然序列长度相同 (=5),但解码器输入词嵌入的维度对应于 `model.config.hidden_​​size`,而 `lm_logit` 的维数对应于词汇表大小 `model.config.vocab_size`。其次,可以注意到,当将最后一个单词从 “ein” 变为 “das”,$\mathbf{l}_1 = \text{“Ich”}$ 的输出向量的值不变。鉴于我们已经理解了单向自注意力,这就不足为奇了。 -最后一点,*自回归*模型,如 GPT2,与删除了交叉注意力层的*基于 transformer* 的解码器模型架构是相同的,因为纯自回归模型不依赖任何编码器的输出。因此,自回归模型本质上与*自编码*模型相同,只是用单向注意力代替了双向注意力。这些模型还可以在大量开放域文本数据上进行预训练,以在自然语言生成 (NLG) 任务中表现出令人印象深刻的性能。在 [Radford 等(2019)](https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf)的工作中,作者表明预训练的 GPT2 模型无需太多微调即可在多种 NLG 任务上取得达到 SOTA 或接近 SOTA 的结果。你可以在[此处](https://huggingface.co/transformers/model_summary.html#autoregressive-models)获取所有 🤗 transformers 支持的*自回归*模型的信息。 +最后一点, _自回归_模型,如 GPT2,与删除了交叉注意力层的 _基于 transformer_ 的解码器模型架构是相同的,因为纯自回归模型不依赖任何编码器的输出。因此,自回归模型本质上与 _自编码_模型相同,只是用单向注意力代替了双向注意力。这些模型还可以在大量开放域文本数据上进行预训练,以在自然语言生成 (NLG) 任务中表现出令人印象深刻的性能。在 [Radford 等 (2019) ](https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf) 的工作中,作者表明预训练的 GPT2 模型无需太多微调即可在多种 NLG 任务上取得达到 SOTA 或接近 SOTA 的结果。你可以在 [此处](https://huggingface.co/transformers/model_summary.html#autoregressive-models) 获取所有 🤗 transformers 支持的 _自回归_模型的信息。 -好了!至此,你应该已经很好地理解了*基于 transforemr* 的编码器-解码器模型以及如何在 🤗 transformers 库中使用它们。 +好了!至此,你应该已经很好地理解了 _基于 transforemr_ 的编码器-解码器模型以及如何在 🤗 transformers 库中使用它们。 非常感谢 Victor Sanh、Sasha Rush、Sam Shleifer、Oliver Åstrand、Ted Moskovitz 和 Kristian Kyvik 提供的宝贵反馈。 ## **附录** -如上所述,以下代码片段展示了如何为*基于 transformer* 的编码器-解码器模型编写一个简单的生成方法。在这里,我们使用 `torch.argmax` 实现了一个简单的*贪心*解码法来对目标向量进行采样。 +如上所述,以下代码片段展示了如何为 _基于 transformer_ 的编码器-解码器模型编写一个简单的生成方法。在这里,我们使用 `torch.argmax` 实现了一个简单的 _贪心_解码法来对目标向量进行采样。 ```python from transformers import MarianMTModel, MarianTokenizer @@ -529,16 +530,12 @@ print(f"Generated so far: {tokenizer.decode(decoder_input_ids[0], skip_special_t # This can be written in a loop as well. ``` -*输出:* +*输出:* ``` Generated so far: Ich will ein ``` -在这个示例代码中,我们准确地展示了正文中描述的内容。我们在输入 "I want to buy a car" 前面加上 $\text{BOS}$ ,然后一起传给编码器-解码器模型,并对第一个 logit $\mathbf{l}_1 $(对应代码中第一次出现 lm_logits 的部分)进行采样。这里,我们的采样策略很简单:贪心地选择概率最高的词作为下一个解码器输入向量。然后,我们以自回归方式将采样得的解码器输入向量与先前的输入一起传递给编码器-解码器模型并再次采样。重复 3 次后,该模型生成了 "Ich will ein"。结果没问题,开了个好头。 - -在实践中,我们会使用更复杂的解码方法来采样 `lm_logits`。你可以参考[这篇博文](https://huggingface.co/blog/zh/how-to-generate)了解更多的解码方法。 +在这个示例代码中,我们准确地展示了正文中描述的内容。我们在输入 “I want to buy a car” 前面加上 $\text{BOS}$ ,然后一起传给编码器-解码器模型,并对第一个 logit $\mathbf{l}_1 $ (对应代码中第一次出现 lm_logits 的部分) 进行采样。这里,我们的采样策略很简单: 贪心地选择概率最高的词作为下一个解码器输入向量。然后,我们以自回归方式将采样得的解码器输入向量与先前的输入一起传递给编码器-解码器模型并再次采样。重复 3 次后,该模型生成了 “Ich will ein”。结果没问题,开了个好头。 -> 英文原文: https://huggingface.co/blog/encoder-decoder -> 原文作者:Patrick von Platen -> 译者: Matrix Yao (姚伟峰),英特尔深度学习工程师,工作方向为 transformer-family 模型在各模态数据上的应用及大规模模型的训练推理。 \ No newline at end of file +在实践中,我们会使用更复杂的解码方法来采样 `lm_logits`。你可以参考 [这篇博文](https://huggingface.co/blog/zh/how-to-generate) 了解更多的解码方法。 \ No newline at end of file From 4ba9d5d4f3b87f35e5bd7f6bd23f162e5a53e730 Mon Sep 17 00:00:00 2001 From: Yao Matrix Date: Wed, 7 Jun 2023 10:17:53 +0800 Subject: [PATCH 50/55] constrained-beam-search cn done (#15) Signed-off-by: Yao, Matrix Update: proofread zh/constrained-beam-search.md --- zh/_blog.yml | 10 ++ zh/constrained-beam-search.md | 322 ++++++++++++++++++++++++++++++++++ 2 files changed, 332 insertions(+) create mode 100644 zh/constrained-beam-search.md diff --git a/zh/_blog.yml b/zh/_blog.yml index a8fbe541ac..9479967b83 100644 --- a/zh/_blog.yml +++ b/zh/_blog.yml @@ -25,6 +25,16 @@ - analysis - nlp +- local: constrained-beam-search + title: "在 🤗 Transformers 中使用约束波束搜索引导文本生成" + author: cwkeam + guest: true + thumbnail: /blog/assets/53_constrained_beam_search/thumbnail.png + date: March 11, 2022 + tags: + - guide + - nlp + - local: bloom-megatron-deepspeed title: "BLOOM 训练背后的技术" author: stas diff --git a/zh/constrained-beam-search.md b/zh/constrained-beam-search.md new file mode 100644 index 0000000000..c3c9c57b1a --- /dev/null +++ b/zh/constrained-beam-search.md @@ -0,0 +1,322 @@ +--- +title: 在 🤗 Transformers 中使用约束波束搜索引导文本生成 +thumbnail: /blog/assets/53_constrained_beam_search/thumbnail.png +authors: +- user: cwkeam + guest: true +translators: +- user: MatrixYao +- user: zhongdongy + proofreader: true +--- + +# 在 🤗 Transformers 中使用约束波束搜索引导文本生成 + + + + + +  在 Colab 中打开 + + +## **引言** + +本文假设读者已经熟悉文本生成领域波束搜索相关的背景知识,具体可参见博文 [如何生成文本: 通过 Transformers 用不同的解码方法生成文本](https://huggingface.co/blog/zh/how-to-generate)。 + +与普通的波束搜索不同,**约束** 波束搜索允许我们控制所生成的文本。这很有用,因为有时我们确切地知道输出中需要包含什么。例如,在机器翻译任务中,我们可能通过查字典已经知道哪些词必须包含在最终的译文中; 而在某些特定的场合中,虽然某几个词对于语言模型而言差不多,但对最终用户而言可能却相差很大。这两种情况都可以通过允许用户告诉模型最终输出中必须包含哪些词来解决。 + +### **这事儿为什么这么难** + +然而,这个事情操作起来并不容易,它要求我们在生成过程中的 _某个时刻_ 在输出文本的 _某个位置_ 强制生成某些特定子序列。 + +假设我们要生成一个句子 `S`,它必须按照先 $t_1$ 再 $t_2$ 的顺序包含短语 $p_1={ t_1, t_2 }$。以下定义了我们希望生成的句子 $S$: + +$$ S_{期望} = { s_1, s_2, …, s_k, t_1, t_2, s_{k+1}, …, s_n } $$ + +问题是波束搜索是逐词输出文本的。我们可以大致将波束搜索视为函数 $B(\mathbf{s}_{0:i}) = s_{i+1}$,它根据当前生成的序列 $\mathbf{s}_{0:i}$ 预测下一时刻 $i+1$ 的输出。但是这个函数在任意时刻 $i < k$ 怎么知道,未来的某个时刻 $k$ 必须生成某个指定词?或者当它在时刻 $i=k$ 时,它如何确定当前那个指定词的最佳位置,而不是未来的某一时刻 $i>k$? + +![为何约束搜索很难](https://raw.githubusercontent.com/huggingface/blog/main/assets/53_constrained_beam_search/why_constraints_are_hard.png) + +如果你同时有多个不同的约束怎么办?如果你想同时指定使用短语 $p_1={t_1, t_2}$ _和_ 短语 $p_2={ t_3, t_4, t_5, t_6}$ 怎么办?如果你希望模型在两个短语之间 **任选一个** 怎么办?如果你想同时指定使用短语 $p_1$ 以及短语列表 ${p_{21}, p_{22}, p_{23}}$ 中的任一短语怎么办? + +上述需求在实际场景中是很合理的需求,下文介绍的新的约束波束搜索功能可以满足所有这些需求! + +我们会先简要介绍一下新的 _**约束波束搜索**_ 可以做些什么,然后再深入介绍其原理。 + +## **例 1: 指定包含某词** + +假设我们要将 `"How old are you?"` 翻译成德语。它对应两种德语表达,其中 `"Wie alt bist du?"` 是非正式场合的表达,而 `"Wie alt sind Sie?"` 是正式场合的表达。 + +不同的场合,我们可能倾向于不同的表达,但我们如何告诉模型呢? + +### **使用传统波束搜索** + +我们先看下如何使用 _**传统波束搜索**_ 来完成翻译。 + +``` +!pip install -q git+https://github.com/huggingface/transformers.git +``` + +```python +from transformers import AutoTokenizer, AutoModelForSeq2SeqLM + +tokenizer = AutoTokenizer.from_pretrained("t5-base") +model = AutoModelForSeq2SeqLM.from_pretrained("t5-base") + +encoder_input_str = "translate English to German: How old are you?" + +input_ids = tokenizer(encoder_input_str, return_tensors="pt").input_ids + +outputs = model.generate( + input_ids, + num_beams=10, + num_return_sequences=1, + no_repeat_ngram_size=1, + remove_invalid_values=True, +) + +print("Output:\n" + 100 *'-') +print(tokenizer.decode(outputs[0], skip_special_tokens=True)) +``` + + + Output: + ---------------------------------------------------------------------------------------------------- + Wie alt bist du? + + +### **使用约束波束搜索** + +但是如果我们想要一个正式的表达而不是非正式的表达呢?如果我们已经先验地知道输出中必须包含什么,我们该如何 _将其_ 注入到输出中呢? + +我们可以通过 `model.generate()` 的 `force_words_ids` 参数来实现这一功能,代码如下: + +```python +tokenizer = AutoTokenizer.from_pretrained("t5-base") +model = AutoModelForSeq2SeqLM.from_pretrained("t5-base") + +encoder_input_str = "translate English to German: How old are you?" + +force_words = ["Sie"] + +input_ids = tokenizer(encoder_input_str, return_tensors="pt").input_ids +force_words_ids = tokenizer(force_words, add_special_tokens=False).input_ids + +outputs = model.generate( + input_ids, + force_words_ids=force_words_ids, + num_beams=5, + num_return_sequences=1, + no_repeat_ngram_size=1, + remove_invalid_values=True, +) + +print("Output:\n" + 100 *'-') +print(tokenizer.decode(outputs[0], skip_special_tokens=True)) +``` + + Output: + ---------------------------------------------------------------------------------------------------- + Wie alt sind Sie? + + +如你所见,现在我们能用我们对输出的先验知识来指导文本的生成。以前我们必须先生成一堆候选输出,然后手动从中挑选出符合我们要求的输出。现在我们可以直接在生成阶段做到这一点。 + +## **例 2: 析取式约束** + +在上面的例子中,我们知道需要在最终输出中包含哪些单词。这方面的一个例子可能是在神经机器翻译过程中结合使用字典。 + +但是,如果我们不知道要使用哪种 _词形_呢,我们可能希望使用单词 `rain` 但对其不同的词性没有偏好,即 `["raining", "rained", "rains", ...]` 是等概的。更一般地,很多情况下,我们可能并不刻板地希望 _逐字母一致_ ,此时我们希望划定一个范围由模型去从中选择最合适的。 + +支持这种行为的约束叫 _**析取式约束 (Disjunctive Constraints)**_ ,其允许用户输入一个单词列表来引导文本生成,最终输出中仅须包含该列表中的 _至少一个_ 词即可。 + +下面是一个混合使用上述两类约束的例子: + +```python +from transformers import GPT2LMHeadModel, GPT2Tokenizer + +model = GPT2LMHeadModel.from_pretrained("gpt2") +tokenizer = GPT2Tokenizer.from_pretrained("gpt2") + +force_word = "scared" +force_flexible = ["scream", "screams", "screaming", "screamed"] + +force_words_ids = [ + tokenizer([force_word], add_prefix_space=True, add_special_tokens=False).input_ids, + tokenizer(force_flexible, add_prefix_space=True, add_special_tokens=False).input_ids, +] + +starting_text = ["The soldiers", "The child"] + +input_ids = tokenizer(starting_text, return_tensors="pt").input_ids + +outputs = model.generate( + input_ids, + force_words_ids=force_words_ids, + num_beams=10, + num_return_sequences=1, + no_repeat_ngram_size=1, + remove_invalid_values=True, +) + +print("Output:\n" + 100 *'-') +print(tokenizer.decode(outputs[0], skip_special_tokens=True)) +print(tokenizer.decode(outputs[1], skip_special_tokens=True)) + +``` + + Setting `pad_token_id` to `eos_token_id`:50256 for open-end generation. + + Output: + ---------------------------------------------------------------------------------------------------- + The soldiers, who were all scared and screaming at each other as they tried to get out of the + The child was taken to a local hospital where she screamed and scared for her life, police said. + + +如你所见,第一个输出里有 `"screaming"` ,第二个输出里有 `"screamed"` ,同时它们都原原本本地包含了 `"scared"` 。注意,其实 `["screaming", "screamed", ...]` 列表中不必一定是同一单词的不同词形,它可以是任何单词。使用这种方式,可以满足我们只需要从候选单词列表中选择一个单词的应用场景。 + +## **传统波束搜索** + +以下是传统 **波束搜索** 的一个例子,摘自之前的 [博文](https://huggingface.co/blog/zh/how-to-generate): + +![波束搜索](https://raw.githubusercontent.com/patrickvonplaten/scientific_images/master/beam_search.png) + +与贪心搜索不同,波束搜索会保留更多的候选词。上图中,我们每一步都展示了 3 个最可能的预测词。 + +在 `num_beams=3` 时,我们可以将第 1 步波束搜索表示成下图: + +![波束搜索第 1 步](https://raw.githubusercontent.com/huggingface/blog/main/assets/53_constrained_beam_search/beam_1.jpg) + +波束搜索不像贪心搜索那样只选择 `"The dog"` ,而是允许将 `"The nice"` 和 `"The car"` _留待进一步考虑_ 。 + +下一步,我们会为上一步创建的三个分支分别预测可能的下一个词。 + +![波束搜索第 2 步](https://raw.githubusercontent.com/huggingface/blog/main/assets/53_constrained_beam_search/beam_2.jpg) + +虽然我们 _考查_ 了明显多于 `num_beams` 个候选词,但在每步结束时,我们只会输出 `num_beams` 个最终候选词。我们不能一直分叉,那样的话, `beams` 的数目将在 $n$ 步后变成 $\text{beams}^{n}$ 个,最终变成指数级的增长 (当波束数为 $10$ 时,在 $10$ 步之后就会变成 $10,000,000,000$ 个分支!)。 + +接着,我们重复上述步骤,直到满足中止条件,如生成 `` 标记或达到 `max_length` 。整个过程可以总结为: 分叉、排序、剪枝,如此往复。 + +## **约束波束搜索** + +约束波束搜索试图通过在每一步生成过程中 _注入_所需词来满足约束。 + +假设我们试图指定输出中须包含短语 `"is fast"` 。 + +在传统波束搜索中,我们在每个分支中找到 `k` 个概率最高的候选词,以供下一步使用。在约束波束搜索中,除了执行与传统波束搜索相同的操作外,我们还会试着把约束词加进去,以 _看看我们是否能尽量满足约束_。图示如下: + +![约束搜索第 1 步](https://raw.githubusercontent.com/huggingface/blog/main/assets/53_constrained_beam_search/cbeam_1.jpg) + +上图中,我们最终候选词除了包括像 `"dog"` 和 `"nice"` 这样的高概率词之外,我们还把 `"is"` 塞了进去,以尽量满足生成的句子中须含 `"is fast"` 的约束。 + +第二步,每个分支的候选词选择与传统的波束搜索大部分类似。唯一的不同是,与上面第一步一样,约束波束搜索会在每个新分叉上继续强加约束,把满足约束的候选词强加进来,如下图所示: + +![约束搜索第 2 步](https://raw.githubusercontent.com/huggingface/blog/main/assets/53_constrained_beam_search/cbeam_2.jpg) + +### **组 (Banks)** + +在讨论下一步之前,我们停下来思考一下上述方法的缺陷。 + +在输出中野蛮地强制插入约束短语 `is fast` 的问题在于,大多数情况下,你最终会得到像上面的 `The is fast` 这样的无意义输出。我们需要解决这个问题。你可以从 `huggingface/transformers` 代码库中的这个 [问题](https://github.com/huggingface/transformers/issues/14081#issuecomment-1004479944) 中了解更多有关这个问题及其复杂性的深入讨论。 + +组方法通过在满足约束和产生合理输出两者之间取得平衡来解决这个问题。 + +我们把所有候选波束按照其 `满足了多少步约束`分到不同的组中,其中组 $n$ 里包含的是 _**满足了 $n$ 步约束的波束列表**_ 。然后我们按照顺序轮流选择各组的候选波束。在上图中,我们先从组 2 (Bank 2) 中选择概率最大的输出,然后从组 1 (Bank 1) 中选择概率最大的输出,最后从组 0 (Bank 0) 中选择最大的输出; 接着我们从组 2 (Bank 2) 中选择概率次大的输出,从组 1 (Bank 1) 中选择概率次大的输出,依此类推。因为我们使用的是 `num_beams=3`,所以我们只需执行上述过程三次,就可以得到 `["The is fast", "The dog is", "The dog and"]`。 + +这样,即使我们 _强制_ 模型考虑我们手动添加的约束词分支,我们依然会跟踪其他可能更有意义的高概率序列。尽管 `The is fast` 完全满足约束,但这并不是一个有意义的短语。幸运的是,我们有 `"The dog is"` 和 `"The dog and"` 可以在未来的步骤中使用,希望在将来这会产生更有意义的输出。 + +图示如下 (以上例的第 3 步为例): + +![约束搜索第 3 步](https://raw.githubusercontent.com/huggingface/blog/main/assets/53_constrained_beam_search/cbeam_3.jpg) + +请注意,上图中不需要强制添加 `"The is fast"`,因为它已经被包含在概率排序中了。另外,请注意像 `"The dog is slow"` 或 `"The dog is mad"` 这样的波束实际上是属于组 0 (Bank 0) 的,为什么呢?因为尽管它包含词 `"is"` ,但它不可用于生成 `"is fast"` ,因为 `fast` 的位子已经被 `slow` 或 `mad` 占掉了,也就杜绝了后续能生成 `"is fast"` 的可能性。从另一个角度讲,因为 `slow` 这样的词的加入,该分支 _满足约束的进度_ 被重置成了 0。 + +最后请注意,我们最终生成了包含约束短语的合理输出: `"The dog is fast"` ! + +起初我们很担心,因为盲目地添加约束词会导致出现诸如 `"The is fast"` 之类的无意义短语。然而,使用基于组的轮流选择方法,我们最终隐式地摆脱了无意义的输出,优先选择了更合理的输出。 + +## **关于 `Constraint` 类的更多信息及自定义约束** + +我们总结下要点。每一步,我们都不断地纠缠模型,强制添加约束词,同时也跟踪不满足约束的分支,直到最终生成包含所需短语的合理的高概率序列。 + +在实现时,我们的主要方法是将每个约束表示为一个 `Constraint` 对象,其目的是跟踪满足约束的进度并告诉波束搜索接下来要生成哪些词。尽管我们可以使用 `model.generate()` 的关键字参数 `force_words_ids` ,但使用该参数时后端实际发生的情况如下: + +```python +from transformers import AutoTokenizer, AutoModelForSeq2SeqLM, PhrasalConstraint + +tokenizer = AutoTokenizer.from_pretrained("t5-base") +model = AutoModelForSeq2SeqLM.from_pretrained("t5-base") + +encoder_input_str = "translate English to German: How old are you?" + +constraints = [ + PhrasalConstraint( + tokenizer("Sie", add_special_tokens=False).input_ids + ) +] + +input_ids = tokenizer(encoder_input_str, return_tensors="pt").input_ids + +outputs = model.generate( + input_ids, + constraints=constraints, + num_beams=10, + num_return_sequences=1, + no_repeat_ngram_size=1, + remove_invalid_values=True, +) + +print("Output:\n" + 100 *'-') +print(tokenizer.decode(outputs[0], skip_special_tokens=True)) +``` + + Output: + ---------------------------------------------------------------------------------------------------- + Wie alt sind Sie? + +你甚至可以定义一个自己的约束并将其通过 `constraints` 参数输入给 `model.generate()` 。此时,你只需要创建 `Constraint` 抽象接口类的子类并遵循其要求即可。你可以在 [此处](https://github.com/huggingface/transformers/blob/main/src/transformers/generation/beam_constraints.py) 的 `Constraint` 定义中找到更多信息。 + +我们还可以尝试其他一些有意思的约束 (尚未实现,也许你可以试一试!) 如 `OrderedConstraints` 、 `TemplateConstraints` 等。目前,在最终输出中约束短语间是无序的。例如,前面的例子一个输出中的约束短语顺序为 `scared -> screaming` ,而另一个输出中的约束短语顺序为 `screamed -> scared` 。 如果有了 `OrderedConstraints`, 我们就可以允许用户指定约束短语的顺序。 `TemplateConstraints` 的功能更小众,其约束可以像这样: + +```python +starting_text = "The woman" +template = ["the", "", "School of", "", "in"] + +possible_outputs == [ + "The woman attended the Ross School of Business in Michigan.", + "The woman was the administrator for the Harvard School of Business in MA." +] +``` + +或是这样: + +```python +starting_text = "The woman" +template = ["the", "", "", "University", "", "in"] + +possible_outputs == [ + "The woman attended the Carnegie Mellon University in Pittsburgh.", +] +impossible_outputs == [ + "The woman attended the Harvard University in MA." +] +``` + +或者,如果用户不关心两个词之间应该隔多少个词,那仅用 `OrderedConstraint` 就可以了。 + +## **总结** + +约束波束搜索为我们提供了一种将外部知识和需求注入文本生成过程的灵活方法。以前,没有一个简单的方法可用于告诉模型 1. 输出中需要包含某列表中的词或短语,其中 2. 其中有一些是可选的,有些必须包含的,这样 3. 它们可以最终生成至在合理的位置。现在,我们可以通过综合使用 `Constraint` 的不同子类来完全控制我们的生成! + +该新特性主要基于以下论文: + +- [Guided Open Vocabulary Image Captioning with Constrained Beam Search](https://arxiv.org/pdf/1612.00576.pdf) +- [Fast Lexically Constrained Decoding with Dynamic Beam Allocation for Neural Machine Translation](https://arxiv.org/abs/1804.06609) +- [Improved Lexically Constrained Decoding for Translation and Monolingual Rewriting](https://aclanthology.org/N19-1090/) +- [Guided Generation of Cause and Effect](https://arxiv.org/pdf/2107.09846.pdf) + +与上述这些工作一样,还有许多新的研究正在探索如何使用外部知识 (例如 KG (Knowledge Graph) 、KB (Knowledge Base) ) 来指导大型深度学习模型输出。我们希望约束波束搜索功能成为实现此目的的有效方法之一。 + +感谢所有为此功能提供指导的人: Patrick von Platen 参与了从 [初始问题](https://github.com/huggingface/transformers/issues/14081) 讨论到 [最终 PR](https://github.com/huggingface/transformers/pull/15761) 的全过程,还有 Narsil Patry,他们二位对代码进行了详细的反馈。 + +_本文使用的图标来自于 Freepik - Flaticon。_ \ No newline at end of file From e1e80b06b3f6ff775b860e2c294eb20dec868cd9 Mon Sep 17 00:00:00 2001 From: SuSung <872414318@qq.com> Date: Thu, 8 Jun 2023 13:56:39 +0800 Subject: [PATCH 51/55] Update: zh/unity-api.md + zh/unity-asr.md * unity ai speech recognition blog translation completed * add (GameObject) to attach its Chinese translation * finish unity-api translation * add unity series entry to zh/_blog.yml --- zh/_blog.yml | 21 +++ zh/unity-api.md | 96 +++++++++++++ zh/unity-asr.md | 369 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 486 insertions(+) create mode 100644 zh/unity-api.md create mode 100644 zh/unity-asr.md diff --git a/zh/_blog.yml b/zh/_blog.yml index 9479967b83..8f6300e74a 100644 --- a/zh/_blog.yml +++ b/zh/_blog.yml @@ -500,6 +500,16 @@ - partnerships - community +- local: unity-api + title: "如何安装和使用 Hugging Face Unity API" + author: dylanebert + thumbnail: /blog/assets/124_ml-for-games/unity-api-thumbnail.png + date: May 1, 2023 + tags: + - community + - guide + - game-dev + - local: starcoder title: "StarCoder:最先进的代码大模型" author: lvwerra @@ -563,3 +573,14 @@ - inference - intel - quantization + +- local: unity-asr + title: "如何在 Unity 游戏中集成 AI 语音识别?" + author: dylanebert + thumbnail: /blog/assets/124_ml-for-games/unity-asr-thumbnail.png + date: June 2, 2023 + tags: + - community + - guide + - game-dev + - speech-recognition \ No newline at end of file diff --git a/zh/unity-api.md b/zh/unity-api.md new file mode 100644 index 0000000000..9892eda4ed --- /dev/null +++ b/zh/unity-api.md @@ -0,0 +1,96 @@ +--- +title: "如何安装和使用 Hugging Face Unity API" +thumbnail: /blog/assets/124_ml-for-games/unity-api-thumbnail.png +authors: +- user: dylanebert +translators: +- user: SuSung-boy +--- + +

    如何安装和使用 Hugging Face Unity API

    + + + + +[Hugging Face Unity API](https://github.com/huggingface/unity-api) 提供了一个简单易用的接口,允许开发者在自己的 Unity 项目中方便地访问和使用 Hugging Face AI 模型,已集成到 [Hugging Face Inference API](https://huggingface.co/inference-api) 中。本文将详细介绍 API 的安装步骤和使用方法。 + +## 安装步骤 + +1. 打开您的 Unity 项目 +2. 导航至菜单栏的 `Window` -> `Package Manager` +3. 在弹出窗口中,点击 `+`,选择 `Add Package from git URL` +4. 输入 `https://github.com/huggingface/unity-api.git` +5. 安装完成后,将会弹出 Unity API 向导。如未弹出,可以手动导航至 `Window` -> `Hugging Face API Wizard` + +
    + +
    + +6. 在向导窗口输入您的 API 密钥。密钥可以在您的 [Hugging Face 帐户设置](https://huggingface.co/settings/tokens) 中找到或创建 +7. 输入完成后可以点击 `Test API key` 测试 API 密钥是否正常 +8. 如需替换使用模型,可以通过更改模型端点实现。您可以访问 Hugging Face 网站,找到支持 Inference API 的任意模型端点,在对应页面点击 `Deploy` -> `Inference API`,复制 `API_URL` 字段的 url 地址 +9. 如需配置高级设置,可以访问 unity 项目仓库页面 `https://github.com/huggingface/unity-api` 查看最新信息 +10. 如需查看 API 使用示例,可以点击 `Install Examples`。现在,您可以关闭 API 向导了。 + +
    + +
    + +API 设置完成后,您就可以从脚本中调用 API 了。让我们来尝试一个计算文本句子相似度的例子,脚本代码如下所示: + +``` +using HuggingFace.API; + +/* other code */ + +// Make a call to the API +void Query() { + string inputText = "I'm on my way to the forest."; + string[] candidates = { + "The player is going to the city", + "The player is going to the wilderness", + "The player is wandering aimlessly" + }; + HuggingFaceAPI.SentenceSimilarity(inputText, OnSuccess, OnError, candidates); +} + +// If successful, handle the result +void OnSuccess(float[] result) { + foreach(float value in result) { + Debug.Log(value); + } +} + +// Otherwise, handle the error +void OnError(string error) { + Debug.LogError(error); +} + +/* other code */ +``` + +## 支持的任务类型和自定义模型 + +Hugging Face Unity API 目前同样支持以下任务类型: + +- [对话 (Conversation)](https://huggingface.co/tasks/conversational) +- [文本生成 (Text Generation)](https://huggingface.co/tasks/text-generation) +- [文生图 (Text to Image)](https://huggingface.co/tasks/text-to-image) +- [文本分类 (Text Classification)](https://huggingface.co/tasks/text-classification) +- [问答 (Question Answering)](https://huggingface.co/tasks/question-answering) +- [翻译 (Translation)](https://huggingface.co/tasks/translation) +- [总结 (Summarization)](https://huggingface.co/tasks/summarization) +- [语音识别 (Speech Recognition)](https://huggingface.co/tasks/automatic-speech-recognition) + +您可以使用 `HuggingFaceAPI` 类提供的相应方法来完成这些任务。 + +如需使用您自己托管在 Hugging Face 上的自定义模型,可以在 API 向导中更改模型端点。 + +## 使用技巧 + +1. 请牢记,API 通过异步方式调用,并通过回调来返回响应或错误信息。 +2. 如想加快 API 响应速度或提升推理性能,可以通过更改模型端点为资源需求较少的模型。 + +## 结语 + +Hugging Face Unity API 提供了一种简单的方式,可以将 AI 模型集成到 Unity 项目中。我们希望本教程对您有所帮助。如果您有任何疑问,或想更多地参与 Hugging Face for Games 系列,可以来加入 [Hugging Face Discord](https://hf.co/join/discord) 频道! \ No newline at end of file diff --git a/zh/unity-asr.md b/zh/unity-asr.md new file mode 100644 index 0000000000..9fa5adccf6 --- /dev/null +++ b/zh/unity-asr.md @@ -0,0 +1,369 @@ +--- +title: "如何在 Unity 游戏中集成 AI 语音识别?" +thumbnail: /blog/assets/124_ml-for-games/unity-asr-thumbnail.png +authors: +- user: dylanebert +translators: +- user: SuSung-boy +--- + +

    如何在 Unity 游戏中集成 AI 语音识别?

    + + + + +[![Open Source AI Game Jam](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/124_ml-for-games/gamejambanner.png)](https://itch.io/jam/open-source-ai-game-jam) + +## 简介 + +语音识别是一项将语音转换为文本的技术,想象一下它如何在游戏中发挥作用?发出命令操纵控制面板或者游戏角色、直接与 NPC 对话、提升交互性等等,都有可能。本文将介绍如何使用 Hugging Face Unity API 在 Unity 游戏中集成 SOTA 语音识别功能。 + +您可以访问 [itch.io 网站](https://individualkex.itch.io/speech-recognition-demo) 下载 Unity 游戏样例,亲自尝试一下语音识别功能。 + +### 先决条件 + +阅读文本可能需要了解一些 Unity 的基本概念。除此之外,您还需安装 [Hugging Face Unity API](https://github.com/huggingface/unity-api),可以点击 [之前的博文](https://huggingface.co/blog/zh/unity-api) 阅读 API 安装说明。 + +## 步骤 + +### 1. 设置场景 + +在本教程中,我们将设置一个非常简单的场景。玩家可以点击按钮来开始或停止录制语音,识别音频并转换为文本。 + +首先我们新建一个 Unity 项目,然后创建一个包含三个 UI 组件的画布 (Canvas): + +1. **开始按钮**: 按下以开始录制语音。 +2. **停止按钮**: 按下以停止录制语音。 +3. **文本组件 (TextMeshPro)**: 显示语音识别结果文本的地方。 + +### 2. 创建脚本 + +创建一个名为 `SpeechRecognitionTest` 的脚本,并将其附加到一个空的游戏对象 (GameObject) 上。 + +在脚本中,首先定义对 UI 组件的引用: + +``` +[SerializeField] private Button startButton; +[SerializeField] private Button stopButton; +[SerializeField] private TextMeshProUGUI text; +``` + +在 inspector 窗口中分配对应组件。 + +然后,使用 `Start()` 方法为开始和停止按钮设置监听器: + +``` +private void Start() { + startButton.onClick.AddListener(StartRecording); + stopButton.onClick.AddListener(StopRecording); +} +``` + +此时,脚本中的代码应该如下所示: + +``` +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +public class SpeechRecognitionTest : MonoBehaviour { + [SerializeField] private Button startButton; + [SerializeField] private Button stopButton; + [SerializeField] private TextMeshProUGUI text; + + private void Start() { + startButton.onClick.AddListener(StartRecording); + stopButton.onClick.AddListener(StopRecording); + } + + private void StartRecording() { + + } + + private void StopRecording() { + + } +} +``` + +### 3. 录制麦克风语音输入 + +现在,我们来录制麦克风语音输入,并将其编码为 WAV 格式。这里需要先定义成员变量: + +``` +private AudioClip clip; +private byte[] bytes; +private bool recording; +``` + +然后,在 `StartRecording()` 中,使用 `Microphone.Start()` 方法实现开始录制语音的功能: + +``` +private void StartRecording() { + clip = Microphone.Start(null, false, 10, 44100); + recording = true; +} +``` + +上面代码实现以 44100 Hz 录制最长为 10 秒的音频。 + +当录音时长达到 10 秒的最大限制,我们希望录音行为自动停止。为此,需要在 `Update()` 方法中写上以下内容: + +``` +private void Update() { + if (recording && Microphone.GetPosition(null) >= clip.samples) { + StopRecording(); + } +} +``` + +接着,在 `StopRecording()` 中,截取录音片段并将其编码为 WAV 格式: + +``` +private void StopRecording() { + var position = Microphone.GetPosition(null); + Microphone.End(null); + var samples = new float[position * clip.channels]; + clip.GetData(samples, 0); + bytes = EncodeAsWAV(samples, clip.frequency, clip.channels); + recording = false; +} +``` + +最后,我们需要实现音频编码的 `EncodeAsWAV()` 方法,这里直接使用 Hugging Face API,只需要将音频数据准备好即可: + +``` +private byte[] EncodeAsWAV(float[] samples, int frequency, int channels) { + using (var memoryStream = new MemoryStream(44 + samples.Length * 2)) { + using (var writer = new BinaryWriter(memoryStream)) { + writer.Write("RIFF".ToCharArray()); + writer.Write(36 + samples.Length * 2); + writer.Write("WAVE".ToCharArray()); + writer.Write("fmt ".ToCharArray()); + writer.Write(16); + writer.Write((ushort)1); + writer.Write((ushort)channels); + writer.Write(frequency); + writer.Write(frequency * channels * 2); + writer.Write((ushort)(channels * 2)); + writer.Write((ushort)16); + writer.Write("data".ToCharArray()); + writer.Write(samples.Length * 2); + + foreach (var sample in samples) { + writer.Write((short)(sample * short.MaxValue)); + } + } + return memoryStream.ToArray(); + } +} +``` + +完整的脚本如下所示: + +``` +using System.IO; +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +public class SpeechRecognitionTest : MonoBehaviour { + [SerializeField] private Button startButton; + [SerializeField] private Button stopButton; + [SerializeField] private TextMeshProUGUI text; + + private AudioClip clip; + private byte[] bytes; + private bool recording; + + private void Start() { + startButton.onClick.AddListener(StartRecording); + stopButton.onClick.AddListener(StopRecording); + } + + private void Update() { + if (recording && Microphone.GetPosition(null) >= clip.samples) { + StopRecording(); + } + } + + private void StartRecording() { + clip = Microphone.Start(null, false, 10, 44100); + recording = true; + } + + private void StopRecording() { + var position = Microphone.GetPosition(null); + Microphone.End(null); + var samples = new float[position * clip.channels]; + clip.GetData(samples, 0); + bytes = EncodeAsWAV(samples, clip.frequency, clip.channels); + recording = false; + } + + private byte[] EncodeAsWAV(float[] samples, int frequency, int channels) { + using (var memoryStream = new MemoryStream(44 + samples.Length * 2)) { + using (var writer = new BinaryWriter(memoryStream)) { + writer.Write("RIFF".ToCharArray()); + writer.Write(36 + samples.Length * 2); + writer.Write("WAVE".ToCharArray()); + writer.Write("fmt ".ToCharArray()); + writer.Write(16); + writer.Write((ushort)1); + writer.Write((ushort)channels); + writer.Write(frequency); + writer.Write(frequency * channels * 2); + writer.Write((ushort)(channels * 2)); + writer.Write((ushort)16); + writer.Write("data".ToCharArray()); + writer.Write(samples.Length * 2); + + foreach (var sample in samples) { + writer.Write((short)(sample * short.MaxValue)); + } + } + return memoryStream.ToArray(); + } + } +} +``` + +如要测试该脚本代码是否正常运行,您可以在 `StopRecording()` 方法末尾添加以下代码: + +``` +File.WriteAllBytes(Application.dataPath + "/test.wav", bytes); +``` + +好了,现在您点击 `Start` 按钮,然后对着麦克风说话,接着点击 `Stop` 按钮,您录制的音频将会保存为 `test.wav` 文件,位于工程目录的 Unity 资产文件夹中。 + +### 4. 语音识别 + +接下来,我们将使用 Hugging Face Unity API 对编码音频实现语音识别。为此,我们创建一个 `SendRecording()` 方法: + +``` +using HuggingFace.API; + +private void SendRecording() { + HuggingFaceAPI.AutomaticSpeechRecognition(bytes, response => { + text.color = Color.white; + text.text = response; + }, error => { + text.color = Color.red; + text.text = error; + }); +} +``` + +该方法实现将编码音频发送到语音识别 API,如果发送成功则以白色显示响应,否则以红色显示错误消息。 + +别忘了在 `StopRecording()` 方法的末尾调用 `SendRecording()`: + +``` +private void StopRecording() { + /* other code */ + SendRecording(); +} +``` + +### 5. 最后润色 + +最后来提升一下用户体验,这里我们使用交互性按钮和状态消息。 + +开始和停止按钮应该仅在适当的时候才产生交互效果,比如:准备录制、正在录制、停止录制。 + +在录制语音或等待 API 返回识别结果时,我们可以设置一个简单的响应文本来显示对应的状态信息。 + +完整的脚本如下所示: + +``` +using System.IO; +using HuggingFace.API; +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +public class SpeechRecognitionTest : MonoBehaviour { + [SerializeField] private Button startButton; + [SerializeField] private Button stopButton; + [SerializeField] private TextMeshProUGUI text; + + private AudioClip clip; + private byte[] bytes; + private bool recording; + + private void Start() { + startButton.onClick.AddListener(StartRecording); + stopButton.onClick.AddListener(StopRecording); + stopButton.interactable = false; + } + + private void Update() { + if (recording && Microphone.GetPosition(null) >= clip.samples) { + StopRecording(); + } + } + + private void StartRecording() { + text.color = Color.white; + text.text = "Recording..."; + startButton.interactable = false; + stopButton.interactable = true; + clip = Microphone.Start(null, false, 10, 44100); + recording = true; + } + + private void StopRecording() { + var position = Microphone.GetPosition(null); + Microphone.End(null); + var samples = new float[position * clip.channels]; + clip.GetData(samples, 0); + bytes = EncodeAsWAV(samples, clip.frequency, clip.channels); + recording = false; + SendRecording(); + } + + private void SendRecording() { + text.color = Color.yellow; + text.text = "Sending..."; + stopButton.interactable = false; + HuggingFaceAPI.AutomaticSpeechRecognition(bytes, response => { + text.color = Color.white; + text.text = response; + startButton.interactable = true; + }, error => { + text.color = Color.red; + text.text = error; + startButton.interactable = true; + }); + } + + private byte[] EncodeAsWAV(float[] samples, int frequency, int channels) { + using (var memoryStream = new MemoryStream(44 + samples.Length * 2)) { + using (var writer = new BinaryWriter(memoryStream)) { + writer.Write("RIFF".ToCharArray()); + writer.Write(36 + samples.Length * 2); + writer.Write("WAVE".ToCharArray()); + writer.Write("fmt ".ToCharArray()); + writer.Write(16); + writer.Write((ushort)1); + writer.Write((ushort)channels); + writer.Write(frequency); + writer.Write(frequency * channels * 2); + writer.Write((ushort)(channels * 2)); + writer.Write((ushort)16); + writer.Write("data".ToCharArray()); + writer.Write(samples.Length * 2); + + foreach (var sample in samples) { + writer.Write((short)(sample * short.MaxValue)); + } + } + return memoryStream.ToArray(); + } + } +} +``` + +祝贺!现在您可以在 Unity 游戏中集成 SOTA 语音识别功能了! + +如果您有任何疑问,或想更多地参与 Hugging Face for Games 系列,可以来加入 [Hugging Face Discord](https://hf.co/join/discord) 频道! \ No newline at end of file From 391e129bab5cac3beb180f7a879776ae1f355a15 Mon Sep 17 00:00:00 2001 From: Zhongdong Yang Date: Thu, 8 Jun 2023 14:38:59 +0800 Subject: [PATCH 52/55] Update: proofread zh/unity-{api,asr}.md --- zh/unity-api.md | 26 ++++++++++++++------------ zh/unity-asr.md | 39 +++++++++++++++++++++------------------ 2 files changed, 35 insertions(+), 30 deletions(-) diff --git a/zh/unity-api.md b/zh/unity-api.md index 9892eda4ed..18d34af5c1 100644 --- a/zh/unity-api.md +++ b/zh/unity-api.md @@ -5,12 +5,14 @@ authors: - user: dylanebert translators: - user: SuSung-boy +- user: zhongdongy + proofreader: true --- -

    如何安装和使用 Hugging Face Unity API

    +

    如何安装和使用 Hugging Face Unity API

    - + [Hugging Face Unity API](https://github.com/huggingface/unity-api) 提供了一个简单易用的接口,允许开发者在自己的 Unity 项目中方便地访问和使用 Hugging Face AI 模型,已集成到 [Hugging Face Inference API](https://huggingface.co/inference-api) 中。本文将详细介绍 API 的安装步骤和使用方法。 @@ -24,19 +26,19 @@ translators:
    -
    + -6. 在向导窗口输入您的 API 密钥。密钥可以在您的 [Hugging Face 帐户设置](https://huggingface.co/settings/tokens) 中找到或创建 -7. 输入完成后可以点击 `Test API key` 测试 API 密钥是否正常 -8. 如需替换使用模型,可以通过更改模型端点实现。您可以访问 Hugging Face 网站,找到支持 Inference API 的任意模型端点,在对应页面点击 `Deploy` -> `Inference API`,复制 `API_URL` 字段的 url 地址 -9. 如需配置高级设置,可以访问 unity 项目仓库页面 `https://github.com/huggingface/unity-api` 查看最新信息 -10. 如需查看 API 使用示例,可以点击 `Install Examples`。现在,您可以关闭 API 向导了。 +1. 在向导窗口输入您的 API 密钥。密钥可以在您的 [Hugging Face 帐户设置](https://huggingface.co/settings/tokens) 中找到或创建 +2. 输入完成后可以点击 `Test API key` 测试 API 密钥是否正常 +3. 如需替换使用模型,可以通过更改模型端点实现。您可以访问 Hugging Face 网站,找到支持 Inference API 的任意模型端点,在对应页面点击 `Deploy` -> `Inference API`,复制 `API_URL` 字段的 url 地址 +4. 如需配置高级设置,可以访问 unity 项目仓库页面 `https://github.com/huggingface/unity-api` 查看最新信息 +5. 如需查看 API 使用示例,可以点击 `Install Examples`。现在,您可以关闭 API 向导了。
    -
    + -API 设置完成后,您就可以从脚本中调用 API 了。让我们来尝试一个计算文本句子相似度的例子,脚本代码如下所示: +API 设置完成后,您就可以从脚本中调用 API 了。让我们来尝试一个计算文本句子相似度的例子,脚本代码如下所示: ``` using HuggingFace.API; @@ -71,7 +73,7 @@ void OnError(string error) { ## 支持的任务类型和自定义模型 -Hugging Face Unity API 目前同样支持以下任务类型: +Hugging Face Unity API 目前同样支持以下任务类型: - [对话 (Conversation)](https://huggingface.co/tasks/conversational) - [文本生成 (Text Generation)](https://huggingface.co/tasks/text-generation) @@ -93,4 +95,4 @@ Hugging Face Unity API 目前同样支持以下任务类型: ## 结语 -Hugging Face Unity API 提供了一种简单的方式,可以将 AI 模型集成到 Unity 项目中。我们希望本教程对您有所帮助。如果您有任何疑问,或想更多地参与 Hugging Face for Games 系列,可以来加入 [Hugging Face Discord](https://hf.co/join/discord) 频道! \ No newline at end of file +Hugging Face Unity API 提供了一种简单的方式,可以将 AI 模型集成到 Unity 项目中。我们希望本教程对您有所帮助。如果您有任何疑问,或想更多地参与 Hugging Face for Games 系列,可以加入 [Hugging Face Discord](https://hf.co/join/discord) 频道! \ No newline at end of file diff --git a/zh/unity-asr.md b/zh/unity-asr.md index 9fa5adccf6..fb5fdcd92c 100644 --- a/zh/unity-asr.md +++ b/zh/unity-asr.md @@ -5,14 +5,17 @@ authors: - user: dylanebert translators: - user: SuSung-boy +- user: zhongdongy + proofreader: true --- -

    如何在 Unity 游戏中集成 AI 语音识别?

    +

    如何在 Unity 游戏中集成 AI 语音识别?

    -[![Open Source AI Game Jam](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/124_ml-for-games/gamejambanner.png)](https://itch.io/jam/open-source-ai-game-jam) +![Open Source AI Game Jam](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/124_ml-for-games/gamejambanner.png) +[](https://itch.io/jam/open-source-ai-game-jam) ## 简介 @@ -30,7 +33,7 @@ translators: 在本教程中,我们将设置一个非常简单的场景。玩家可以点击按钮来开始或停止录制语音,识别音频并转换为文本。 -首先我们新建一个 Unity 项目,然后创建一个包含三个 UI 组件的画布 (Canvas): +首先我们新建一个 Unity 项目,然后创建一个包含三个 UI 组件的画布 (Canvas): 1. **开始按钮**: 按下以开始录制语音。 2. **停止按钮**: 按下以停止录制语音。 @@ -40,7 +43,7 @@ translators: 创建一个名为 `SpeechRecognitionTest` 的脚本,并将其附加到一个空的游戏对象 (GameObject) 上。 -在脚本中,首先定义对 UI 组件的引用: +在脚本中,首先定义对 UI 组件的引用: ``` [SerializeField] private Button startButton; @@ -50,7 +53,7 @@ translators: 在 inspector 窗口中分配对应组件。 -然后,使用 `Start()` 方法为开始和停止按钮设置监听器: +然后,使用 `Start()` 方法为开始和停止按钮设置监听器: ``` private void Start() { @@ -59,7 +62,7 @@ private void Start() { } ``` -此时,脚本中的代码应该如下所示: +此时,脚本中的代码应该如下所示: ``` using TMPro; @@ -88,7 +91,7 @@ public class SpeechRecognitionTest : MonoBehaviour { ### 3. 录制麦克风语音输入 -现在,我们来录制麦克风语音输入,并将其编码为 WAV 格式。这里需要先定义成员变量: +现在,我们来录制麦克风语音输入,并将其编码为 WAV 格式。这里需要先定义成员变量: ``` private AudioClip clip; @@ -96,7 +99,7 @@ private byte[] bytes; private bool recording; ``` -然后,在 `StartRecording()` 中,使用 `Microphone.Start()` 方法实现开始录制语音的功能: +然后,在 `StartRecording()` 中,使用 `Microphone.Start()` 方法实现开始录制语音的功能: ``` private void StartRecording() { @@ -107,7 +110,7 @@ private void StartRecording() { 上面代码实现以 44100 Hz 录制最长为 10 秒的音频。 -当录音时长达到 10 秒的最大限制,我们希望录音行为自动停止。为此,需要在 `Update()` 方法中写上以下内容: +当录音时长达到 10 秒的最大限制,我们希望录音行为自动停止。为此,需要在 `Update()` 方法中写上以下内容: ``` private void Update() { @@ -117,7 +120,7 @@ private void Update() { } ``` -接着,在 `StopRecording()` 中,截取录音片段并将其编码为 WAV 格式: +接着,在 `StopRecording()` 中,截取录音片段并将其编码为 WAV 格式: ``` private void StopRecording() { @@ -130,7 +133,7 @@ private void StopRecording() { } ``` -最后,我们需要实现音频编码的 `EncodeAsWAV()` 方法,这里直接使用 Hugging Face API,只需要将音频数据准备好即可: +最后,我们需要实现音频编码的 `EncodeAsWAV()` 方法,这里直接使用 Hugging Face API,只需要将音频数据准备好即可: ``` private byte[] EncodeAsWAV(float[] samples, int frequency, int channels) { @@ -159,7 +162,7 @@ private byte[] EncodeAsWAV(float[] samples, int frequency, int channels) { } ``` -完整的脚本如下所示: +完整的脚本如下所示: ``` using System.IO; @@ -228,7 +231,7 @@ public class SpeechRecognitionTest : MonoBehaviour { } ``` -如要测试该脚本代码是否正常运行,您可以在 `StopRecording()` 方法末尾添加以下代码: +如要测试该脚本代码是否正常运行,您可以在 `StopRecording()` 方法末尾添加以下代码: ``` File.WriteAllBytes(Application.dataPath + "/test.wav", bytes); @@ -238,7 +241,7 @@ File.WriteAllBytes(Application.dataPath + "/test.wav", bytes); ### 4. 语音识别 -接下来,我们将使用 Hugging Face Unity API 对编码音频实现语音识别。为此,我们创建一个 `SendRecording()` 方法: +接下来,我们将使用 Hugging Face Unity API 对编码音频实现语音识别。为此,我们创建一个 `SendRecording()` 方法: ``` using HuggingFace.API; @@ -256,7 +259,7 @@ private void SendRecording() { 该方法实现将编码音频发送到语音识别 API,如果发送成功则以白色显示响应,否则以红色显示错误消息。 -别忘了在 `StopRecording()` 方法的末尾调用 `SendRecording()`: +别忘了在 `StopRecording()` 方法的末尾调用 `SendRecording()`: ``` private void StopRecording() { @@ -269,11 +272,11 @@ private void StopRecording() { 最后来提升一下用户体验,这里我们使用交互性按钮和状态消息。 -开始和停止按钮应该仅在适当的时候才产生交互效果,比如:准备录制、正在录制、停止录制。 +开始和停止按钮应该仅在适当的时候才产生交互效果,比如: 准备录制、正在录制、停止录制。 在录制语音或等待 API 返回识别结果时,我们可以设置一个简单的响应文本来显示对应的状态信息。 -完整的脚本如下所示: +完整的脚本如下所示: ``` using System.IO; @@ -366,4 +369,4 @@ public class SpeechRecognitionTest : MonoBehaviour { 祝贺!现在您可以在 Unity 游戏中集成 SOTA 语音识别功能了! -如果您有任何疑问,或想更多地参与 Hugging Face for Games 系列,可以来加入 [Hugging Face Discord](https://hf.co/join/discord) 频道! \ No newline at end of file +如果您有任何疑问,或想更多地参与 Hugging Face for Games 系列,可以加入 [Hugging Face Discord](https://hf.co/join/discord) 频道! \ No newline at end of file From adeb95cb9a4c7d4325fcfed6f1fcfa4214a9ea4a Mon Sep 17 00:00:00 2001 From: Yao Matrix Date: Tue, 13 Jun 2023 09:46:03 +0800 Subject: [PATCH 53/55] Update zh/falcon.md Signed-off-by: Yao, Matrix Update: zh/falcon.md --- zh/_blog.yml | 13 ++- zh/falcon.md | 293 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 305 insertions(+), 1 deletion(-) create mode 100644 zh/falcon.md diff --git a/zh/_blog.yml b/zh/_blog.yml index 8f6300e74a..b833126f68 100644 --- a/zh/_blog.yml +++ b/zh/_blog.yml @@ -583,4 +583,15 @@ - community - guide - game-dev - - speech-recognition \ No newline at end of file + - speech-recognition + +- local: falcon + title: "Falcon 登陆 Hugging Face 生态" + author: lvwerra + thumbnail: /blog/assets/147_falcon/falcon_thumbnail.jpg + date: June 5, 2023 + tags: + - nlp + - community + - research + diff --git a/zh/falcon.md b/zh/falcon.md new file mode 100644 index 0000000000..f32f59a283 --- /dev/null +++ b/zh/falcon.md @@ -0,0 +1,293 @@ +--- +title: "Falcon 登陆 Hugging Face 生态" +thumbnail: /blog/assets/147_falcon/falcon_thumbnail.jpg +authors: +- user: lvwerra +- user: ybelkada +- user: smangrul +- user: lewtun +- user: olivierdehaene +- user: pcuenq +- user: philschmid +translators: +- user: MatrixYao +- user: zhongdongy +--- + +# Falcon 登陆 Hugging Face 生态 + + + + +## 引言 + +Falcon 是由位于阿布扎比的 [技术创新研究院 (Technology Innovation Institute,TII) ](https://www.tii.ae/) 创建的一系列的新语言模型,其基于 Apache 2.0 许可发布。 **值得注意的是,[Falcon-40B](https://huggingface.co/tiiuae/falcon-40b) 是首个“真正开放”的模型,其能力可与当前许多闭源模型相媲美**。这对从业者、爱好者和行业来说都是个好消息,因为“真开源”使大家可以毫无顾忌地基于它们探索百花齐放的应用。 + +本文,我们将深入探讨 Falcon 模型: 首先探讨它们的独特之处,然后 **展示如何基于 Hugging Face 生态提供的工具轻松构建基于 Falcon 模型的多种应用 (如推理、量化、微调等)**。 + +## 目录 + +- [Falcon 模型](#Falcon-模型) +- [演示](#演示) +- [推理](#推理) +- [评估](#评估) +- [用 PEFT 微调模型](#用-PEFT-微调模型) +- [总结](#总结) + +## Falcon 模型 + +Falcon 家族有两个基础模型: [Falcon-40B](https://huggingface.co/tiiuae/falcon-40b) 及其小兄弟 [Falcon-7B](https://huggingface.co/tiiuae/falcon-7b)。 **40B 参数模型目前在 [Open LLM 排行榜](https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard) 中名列前茅,而 7B 模型在同等参数量的模型中表现最佳**。 + +运行 Falcon-40B 需要约 90GB 的 GPU 显存 —— 虽然还是挺多的,但比 LLaMA-65B 少了不少,况且 Falcon-40B 的性能还优于 LLaMA-65B。而 Falcon-7B 只需要约 15GB 显存,即使在消费类硬件上也可以进行推理和微调。 _(我们将在后文讨论如何使用量化技术在便宜的 GPU 上使用 Falcon-40B!)_ + +TII 还提供了经过指令微调的模型: [Falcon-7B-Instruct](https://huggingface.co/tiiuae/falcon-7b-instruct) 以及 [Falcon-40B-Instruct](https://huggingface.co/tiiuae/falcon-40b-instruct)。这两个实验性的模型变体经由指令和对话数据微调而得,因此更适合当前流行的助理式任务。 **如果你只是想把 Falcon 模型快速用起来,这两个模型是最佳选择。** 当然你也可以基于社区构建的大量数据集微调一个自己的模型 —— 后文会给出微调步骤! + +Falcon-7B 和 Falcon-40B 分别基于 1.5 万亿和 1 万亿词元数据训练而得,其架构在设计时就充分考虑了推理优化。 **Falcon 模型质量较高的关键在于训练数据,其 80% 以上的训练数据来自于 [RefinedWeb](https://arxiv.org/abs/2306.01116) —— 一个新的基于 CommonCrawl 的网络数据集**。 TII 选择不去收集分散的精选数据,而是专注于扩展并提高 Web 数据的质量,通过大量的去重和严格过滤使所得语料库与其他精选的语料库质量相当。 在训练 Falcon 模型时,虽然仍然包含了一些精选数据 (例如来自 Reddit 的对话数据),但与 GPT-3 或 PaLM 等最先进的 LLM 相比,精选数据的使用量要少得多。你知道最妙的是什么吗? TII 公布了从 [RefinedWeb](https://huggingface.co/datasets/tiiuae/falcon-refinedweb) 中提取出的含有 6000 亿词元的数据集,以供社区在自己的 LLM 中使用! + +Falcon 模型的另一个有趣的特性是其使用了 [**多查询注意力 (multiquery attention)**](https://arxiv.org/abs/1911.02150)。原始多头 (head) 注意力方案每个头都分别有一个查询 (query) 、键 (key) 以及值 (value),而多查询注意力方案改为在所有头上共享同一个键和值。 + +| ![mqa](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/147_falcon/multi-query-attention.png) | +|:--:| +| 多查询注意力机制在注意力头之间共享同一个键嵌入和值嵌入。图片由 Harm de Vries 提供。| + +这个技巧对预训练影响不大,但它极大地 [提高了推理的可扩展性](https://arxiv.org/abs/2211.05102): 事实上, **该技巧大大减少了自回归解码期间 K,V 缓存的内存占用,将其减少了 10-100 倍** (具体数值取决于模型架构的配置),这大大降低了模型推理的内存开销。而内存开销的减少为解锁新的优化带来了可能,如省下来的内存可以用来存储历史对话,从而使得有状态推理成为可能。 + +| 模型 | 许可 | 能否商用? | 预训练词元数 | 预训练算力 [PF-天] | 排行榜得分 | K,V 缓存大小 (上下文长度为 2048) | +| --- | --- | --- | --- | --- | --- | --- | +| StableLM-Alpha-7B | CC-BY-SA-4.0 | ✅ | 1,500B | 700 | 38.3* | 800MB | +| LLaMA-7B | LLaMA license | ❌ | 1,000B | 500 | 47.6 | 1,100MB | +| MPT-7B | Apache 2.0 | ✅ | 1,000B | 500 | 48.6 | 1,100MB | +| Falcon-7B | Apache 2.0 | ✅ | 1,500B | 700 | 48.8 | 20MB | +| LLaMA-33B | LLaMA license | ❌ | 1,500B | 3200 | 56.9 | 3,300MB | +| LLaMA-65B | LLaMA license | ❌ | 1,500B | 6300 | 58.3 | 5,400MB | +| Falcon-40B | Apache 2.0 | ✅ | 1,000B | 2800 | 60.4 | 240MB | + +* _上表中得分均为经过微调的模型的得分_ + +# 演示 + +通过 [这个 Space](https://huggingface.co/spaces/HuggingFaceH4/falcon-chat) 或下面的应用,你可以很轻松地试用一下大的 Falcon 模型 (400 亿参数!): + + + + +上面的应用使用了 Hugging Face 的 [Text Generation Inference](https://github.com/huggingface/text-generation-inference) 技术,它是一个可扩展的、快速高效的文本生成服务,使用了 Rust、Python 以及 gRPC 等技术。[HuggingChat](https://huggingface.co/chat/) 也使用了相同的技术。 + +我们还构建了一个 Core ML 版本的 `falcon-7b-instruct` 模型,你可以通过以下方式将其运行至 M1 MacBook Pro: + + + +该视频展示了一个轻量级应用程序,该应用程序利用一个 Swift 库完成了包括加载模型、分词、准备输入数据、生成文本以及解码在内的很多繁重的操作。我们正在快马加鞭构建这个库,这样开发人员就能基于它将强大的 LLM 集成到各种应用程序中,而无需重新发明轮子。目前它还有点粗糙,但我们迫不及待地想让它早点面世。同时,你也可以下载 [Core ML 的权重文件](https://huggingface.co/tiiuae/falcon-7b-instruct/tree/main/coreml/text-generation) 自己探索! + +# 推理 + +在使用熟悉的 transformers API 在你自己的硬件上运行 Falcon 模型时,你需要注意几个以下细节: + +- 现有的模型是用 `bfloat16` 数据类型训练的,因此建议你也使用相同的数据类型来推理。使用 `bfloat16` 需要你安装最新版本的 CUDA,而且 `bfloat16` 在最新的卡 (如 A100) 上效果最好。你也可以尝试使用 `float16` 进行推理,但请记住,目前我们分享的模型效果数据都是基于 `bfloat16` 的。 +- 你需要允许远程代码执行。这是因为 `transformers` 尚未集成 Falcon 模型架构,所以,我们需要使用模型作者在其代码库中提供的代码来运行。以 `falcon-7b-instruct` 为例,如果你允许远程执行,我们将使用下列文件里的代码来运行模型: [configuration_RW.py](https://huggingface.co/tiiuae/falcon-7b-instruct/blob/main/configuration_RW.py),[modelling_RW.py](https://huggingface.co/tiiuae/falcon-7b-instruct/blob/main/modelling_RW.py)。 + +综上,你可以参考如下代码来使用 transformers 的 `pipeline` API 加载 `falcon-7b-instruct` 模型: + +```python +from transformers import AutoTokenizer +import transformers +import torch + +model = "tiiuae/falcon-7b-instruct" + +tokenizer = AutoTokenizer.from_pretrained(model) +pipeline = transformers.pipeline( + "text-generation", + model=model, + tokenizer=tokenizer, + torch_dtype=torch.bfloat16, + trust_remote_code=True, + device_map="auto", +) + +``` + +然后,再用如下代码生成文本: + +```python +sequences = pipeline( + "Write a poem about Valencia.", + max_length=200, + do_sample=True, + top_k=10, + num_return_sequences=1, + eos_token_id=tokenizer.eos_token_id, +) +for seq in sequences: + print(f"Result: {seq['generated_text']}") + +``` + +最后,你可能会得到如下输出: + +``` +Valencia, city of the sun +The city that glitters like a star +A city of a thousand colors +Where the night is illuminated by stars +Valencia, the city of my heart +Where the past is kept in a golden chest + +``` + +### 对 Falcon 40B 进行推理 + +因为 40B 模型尺寸比较大,所以要把它运行起来还是挺有挑战性的,单个显存为 80GB 的 A100 都放不下它。如果用 8 比特模型的话,需要大约 45GB 的空间,此时 A6000 (48GB) 能放下但 40GB 的 A100 还是放不下。相应的推理代码如下: + +```python +from transformers import AutoTokenizer, AutoModelForCausalLM +import transformers +import torch + +model_id = "tiiuae/falcon-40b-instruct" + +tokenizer = AutoTokenizer.from_pretrained(model_id) +model = AutoModelForCausalLM.from_pretrained( + model_id, + torch_dtype=torch.bfloat16, + trust_remote_code=True, + load_in_8bit=True, + device_map="auto", +) + +pipeline = transformers.pipeline( + "text-generation", + model=model, + tokenizer=tokenizer, +) +``` + +需要注意的是,INT8 混合精度推理使用的浮点精度是 `torch.float16` 而不是 `torch.bfloat16`,因此请务必详尽地对结果进行测试。 + +如果你有多张 GPU 卡并安装了 `accelerate`,你还可以用 `device_map="auto"` 将模型的各层自动分布到多张卡上运行。如有必要,甚至可以将某些层卸载到 CPU,但这会影响推理速度。 + +在最新版本的 `bitsandbytes`、`transformers` 以及 `accelerate` 中我们还支持了 [4 比特加载](https://huggingface.co/blog/4bit-transformers-bitsandbytes)。此时,40B 模型仅需约 27GB 的显存就能运行。虽然这个需求还是比 3090 或 4090 这些卡所能提供的显存大,但已经足以在显存为 30GB 或 40GB 的卡上运行了。 + +### Text Generation Inference + +[Text Generation Inference](https://github.com/huggingface/text-generation-inference) 是 Hugging Face 开发的一个可用于生产的推理容器。有了它,用户可以轻松部署大语言模型。 + +其主要特点有: + +- 对输入进行流式 batch 组装 (batching) +- 流式生成词,主要基于 SSE 协议 (Server-Sent Events,SSE) +- 推理时支持多 GPU 张量并行 (Tensor Parallelism ),推理速度更快 +- transformers 模型代码由定制 CUDA 核函数深度优化 +- 基于 Prometheus 和 Open Telemetry 的产品级日志记录、监控和跟踪机制 + +从 v0.8.2 起,Text Generation Inference 原生支持 Falcon 7b 和 40b 模型,而无需依赖 transformers 的 `“信任远程代码 (trust remote code)”` 功能。因此,Text Generation Inference 可以支持密闭部署及安全审计。此外,我们在 Falcon 模型的实现中加入了定制 CUDA 核函数优化,这可显著降低推理的端到端延迟。 + +| ![tgi-hfe-screenshot.png](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/147_falcon/tgi-hfe.png) | +|:--:| +| Hugging Face Inference Endpoint 现已支持 Text Generation Inference。你可以在单张 A100 上轻松部署 `falcon-40b-instruct` 的 Int8 量化模型。| + +Text Generation Inference 现已集成至 Hugging Face 的 [Inference Endpoint](https://huggingface.co/inference-endpoints)。想要部署 Falcon 模型,可至 [模型页面](https://huggingface.co/tiiuae/falcon-7b-instruct) 并点击 [Deploy -> Inference Endpoints](https://ui.endpoints.huggingface.co/new?repository=tiiuae/falcon-7b-instruct) 按钮。 + +如需部署 7B 模型,建议选择 “GPU [medium] - 1x Nvidia A10G”。 + +如需部署 40B 模型,你需要在 “GPU [xlarge] - 1x Nvidia A100” 上部署且需要开启量化功能,路径如下: +`Advanced configuration -> Serving Container -> Int-8 Quantization` + +_注意: 在此过程中,如果你需要升级配额,可直接发电子邮件至 api-enterprise@huggingface.co 申请。_ + +## 评估 + +那么 Falcon 模型究竟效果如何? Falcon 的作者们马上将会发布一个深入的评估数据。这里,我们仅在我们的 [Open LLM 排行榜](https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard) 上对 Falcon 基础模型和指令模型进行一个初步评估。 `Open LLM 排行榜`主要衡量 LLM 的推理能力及其回答以下几个领域的问题的能力: + +- [AI2 推理挑战](https://allenai.org/data/arc) (ARC): 小学程度有关科学的选择题。 +- [HellaSwag](https://arxiv.org/abs/1905.07830): 围绕日常事件的常识性问题。 +- [MMLU](https://github.com/hendrycks/test): 57 个科目 (包含职业科目及学术科目) 的选择题。 +- [TruthfulQA](https://arxiv.org/abs/2109.07958): 测试模型从一组错误陈述中找出事实性陈述的能力。 + +结果显示,40B 基础模型和指令模型都非常强,目前在 [Open LLM 排行榜](https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard) 上分列第一和第二🏆! + +![leaderboard.png](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/147_falcon/leaderboard.png) + +正如 [Thomas Wolf](https://www.linkedin.com/posts/thom-wolf_open-llm-leaderboard-a-hugging-face-space-activity-7070334210116329472-x6ek?utm_source=share&utm_medium=member_desktop) 所述,我们惊喜地发现,目前预训练 40B 模型所用的计算量大约只有 LLaMa 65B 所用计算量的一半 (Falcon 40B 用了 2800 petaflop- 天,而 LLaMa 65B 用了 6300 petaflop- 天),这表明该模型甚至尚未完全预训练至 LLM 的“最佳”极限。 + +对 7B 模型而言,我们发现其基础模型表现优于 `llama-7b`,并超​​过了 MosaicML 的 `mpt-7b`,成为当前该规模上最好的预训练 LLM。下面摘录了排行榜中一些热门模型的排名情况,以供比较: + +| 模型 | 类型 | 排行榜平均得分 | +| :-: | :-: | :-: | +| [tiiuae/falcon-40b-instruct](https://huggingface.co/tiiuae/falcon-40b-instruct) | instruct | 63.2 | +| [tiiuae/falcon-40b](https://huggingface.co/tiiuae/falcon-40b) | base | 60.4 | +| [llama-65b](https://ai.facebook.com/blog/large-language-model-llama-meta-ai/) | base | 58.3 | +| [TheBloke/dromedary-65b-lora-HF](https://huggingface.co/TheBloke/dromedary-65b-lora-HF) | instruct | 57 | +| [stable-vicuna-13b](https://huggingface.co/CarperAI/stable-vicuna-13b-delta) | rlhf | 52.4 | +| [llama-13b](https://ai.facebook.com/blog/large-language-model-llama-meta-ai/) | base | 51.8 | +| [TheBloke/wizardLM-7B-HF](https://huggingface.co/TheBloke/wizardLM-7B-HF) | instruct | 50.1 | +| [tiiuae/falcon-7b](https://huggingface.co/tiiuae/falcon-7b) | base | 48.8 | +| [mosaicml/mpt-7b](https://huggingface.co/mosaicml/mpt-7b) | base | 48.6 | +| [tiiuae/falcon-7b-instruct](https://huggingface.co/tiiuae/falcon-7b-instruct) | instruct | 48.4 | +| [llama-7b](https://ai.facebook.com/blog/large-language-model-llama-meta-ai/) | base | 47.6 | + +尽管 `Open LLM 排行榜` 不能衡量聊天能力 (这方面目前主要还是依赖人类评估),但截至目前 Falcon 模型表现出的这些初步效果依然非常鼓舞人心! + +现在让我们来看看如何微调一个你自己的 Falcon 模型 —— 或许你微调出来的某一个模型最终会登上榜首🤗。 + +## 用 PEFT 微调 + +训练 10B+ 大小的模型在技术和计算上都颇具挑战。在本节中,我们将了解如何使用 Hugging Face 生态中软件工具在简单的硬件上高效地微调超大模型,并展示如何在单张英伟达 T4 卡 (16GB - Google Colab) 上微调 `falcon-7b`。 + +我们以在 [Guanaco 数据集](https://huggingface.co/datasets/timdettmers/openassistant-guanaco) 上微调 Falcon 为例。Guanaco 数据集是 [Open Assistant 数据集](https://huggingface.co/datasets/OpenAssistant/oasst1) 的一个高质量子集,其中包含大约 1 万个对话。通过 [PEFT 库](https://github.com/huggingface/peft),我们可以使用最新的 [QLoRA](https://arxiv.org/abs/2305.14314) 方法用 4 比特来表示模型,并冻结它,再在其上加一个适配子模型 (adapter),并微调该适配子模型。你可以 [从这篇博文中](https://huggingface.co/blog/4bit-transformers-bitsandbytes) 了解有关 4 比特量化模型的更多信息。 + +因为在使用低阶适配器 (Low Rank Adapters,LoRA) 时只有一小部分模型权重是可训练的,所以可训练参数的数量和训得模型的尺寸都会显著减小。如下图所示,最终的训练产物 (trained artifact) 与原始的 7B 模型 (数据类型为 bfloat16 时占 15GB 存储空间) 相比,只占 65MB 存储空间。 + +| ![repo-screenshot.png](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/147_falcon/adapter-screenshot.png) | +|:--:| +| 与大约 15GB 的原始模型(半精度)相比,最终的训练产物只需存储 65MB 的权重 | + +更具体地说,在选定需要微调的模块 (即注意力模块的查询映射层和键映射层) 之后,我们在每个目标模块旁边添加两个小的可训练线性层 (如下图所示) 作为适配子模型。然后,将适配子模型输出的隐含状态与原始模型的隐含状态相加以获得最终隐含状态。 + +| ![lora-gif](https://huggingface.co/datasets/trl-internal-testing/example-images/resolve/main/blog/133_trl_peft/lora-animated.gif) | +|:--:| +| 用由权重矩阵 A 和 B 组成的低秩适配器(右)的输出激活来增强原始(冻结)预训练模型(左)的输出激活。| + +一旦训练完成,无须保存整个模型,因为基础模型一直处于冻结状态。此外,原始模型可以表示为任意数据类型 (int8、fp4、fp16 等),只要在与适配器的输出隐含状态相加前,将其输出隐含状态的数据类型转换成与适配器相同的数据类型即可 —— bitsandbytes 的模块 ( `Linear8bitLt` 和 `Linear4bit` ) 就是这么做的, `Linear8bitLt` 和 `Linear4bit` 这两个模块的输出数据类型与原未量化模型的输出数据类型相同。 + +我们在 Guanaco 数据集上微调了 Falcon 模型的两个变体 (7B 和 40B)。其中,7B 模型是在单 NVIDIA-T4 16GB 上微调的,而 40B 模型是在单 NVIDIA A100 80GB 上微调的。在微调时,我们使用了 4 比特量化的基础模型以及 QLoRA 方法,并使用了 [来自 TRL 库的最新的 `SFTTrainer`](https://huggingface.co/docs/trl/main/en/sft_trainer)。 + +[此处](https://gist.github.com/pacman100/1731b41f7a90a87b457e8c5415ff1c14) 提供了使用 PEFT 重现我们实验的完整脚本。但是如果你想快速运行 `SFTTrainer` (而无需 PEFT) 的话,只需下面几行代码即可: + +```python +from datasets import load_dataset +from trl import SFTTrainer +from transformers import AutoTokenizer, AutoModelForCausalLM + +dataset = load_dataset("imdb", split="train") + +model_id = "tiiuae/falcon-7b" + +tokenizer = AutoTokenizer.from_pretrained(model_id) +model = AutoModelForCausalLM.from_pretrained(model_id, trust_remote_code=True) + +trainer = SFTTrainer( + model, + tokenizer=tokenizer + train_dataset=dataset, + dataset_text_field="text", + max_seq_length=512, +) +trainer.train() +``` + +你还可以查看 [原始 QLoRA 代码库](https://github.com/artidoro/qlora/),以了解有关如何评估训练模型的更多详细信息。 + +### 关于微调的资源 + +- **[使用 4 比特量化和 PEFT 在 Guanaco 数据集上微调 Falcon-7B 的 Colab notebook](https://colab.research.google.com/drive/1BiQiw31DT7-cDp1-0ySXvvhzqomTdI-o?usp=sharing)** +- **[训练代码](https://gist.github.com/pacman100/1731b41f7a90a87b457e8c5415ff1c14)** +- **[40B 模型的 LoRA 模型](https://huggingface.co/smangrul/falcon-40B-int4-peft-lora-sfttrainer)** ([日志](https://wandb.ai/smangrul/huggingface/runs/3hpqq08s/workspace?workspace=user-younesbelkada)) +- **[7B 模型的 LoRA 模型](https://huggingface.co/ybelkada/falcon-7b-guanaco-lora)** ([日志](https://wandb.ai/younesbelkada/huggingface/runs/2x4zi72j?workspace=user-younesbelkada)) + +## 总结 + +Falcon 是最新的、令人兴奋的、可商用的大语言模型。在本文中,我们展示了 Falcon 模型的功能、如何在你自己的环境中运行 Falcon 模型以及在 Hugging Face 生态中如何轻松地用自有数据微调它们。我们期待看到社区如何使用 Falcon 模型! \ No newline at end of file From d1b5924ba8c3c7aa8d0d5929ae618ff5acc1976e Mon Sep 17 00:00:00 2001 From: Yao Matrix Date: Mon, 19 Jun 2023 15:25:38 +0800 Subject: [PATCH 54/55] instruction-tuning-sd cn done (#21) Signed-off-by: Yao, Matrix --- zh/_blog.yml | 14 ++- zh/instruction-tuning-sd.md | 240 ++++++++++++++++++++++++++++++++++++ 2 files changed, 253 insertions(+), 1 deletion(-) create mode 100644 zh/instruction-tuning-sd.md diff --git a/zh/_blog.yml b/zh/_blog.yml index b833126f68..114d369a9b 100644 --- a/zh/_blog.yml +++ b/zh/_blog.yml @@ -560,7 +560,19 @@ tags: - nlp - community - - research + - research + +- local: instruction-tuning-sd + title: "使用 InstructPix2Pix 对 Stable Diffusion 进行指令微调" + author: sayakpaul + thumbnail: /blog/assets/instruction_tuning_sd/thumbnail.png + date: May 23, 2023 + tags: + - diffusers + - diffusion + - instruction-tuning + - research + - guide - local: generative-ai-models-on-intel-cpu title: "越小越好:Q8-Chat,在英特尔至强 CPU 上体验高效的生成式 AI" diff --git a/zh/instruction-tuning-sd.md b/zh/instruction-tuning-sd.md new file mode 100644 index 0000000000..656b5745c5 --- /dev/null +++ b/zh/instruction-tuning-sd.md @@ -0,0 +1,240 @@ +--- +title: "使用 InstructPix2Pix 对 Stable Diffusion 进行指令微调" +thumbnail: assets/instruction_tuning_sd/thumbnail.png +authors: +- user: sayakpaul +translators: +- user: MatrixYao +--- + +# 使用 InstructPix2Pix 对 Stable Diffusion 进行指令微调 + + + + +本文主要探讨如何使用指令微调的方法教会 [Stable Diffusion](https://huggingface.co/blog/stable_diffusion) 按照指令 PS 图像。这样,我们 Stable Diffusion 就能听得懂人话,并根据要求对输入图像进行相应操作,如:*将输入的自然图像卡通化*。 + +| ![示意图](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/instruction-tuning-sd/schematic.png) | +|:--:| +| **图 1**:我们探索了 Stable Diffusion 的指令微调能力。这里,我们使用不同的图像和提示对一个指令微调后的 Stable Diffusion 模型进行了测试。微调后的模型似乎能够理解输入中的图像操作指令。(建议放大并以彩色显示,以获得最佳视觉效果)| + +[InstructPix2Pix: Learning to Follow Image Editing Instructions](https://huggingface.co/papers/2211.09800) 一文首次提出了这种教 Stable Diffusion 按照用户指令**编辑**输入图像的想法。本文我们将讨论如何拓展 InstructPix2Pix 的训练策略以使其能够理解并执行更特定的指令任务,如图像翻译(如卡通化)、底层图像处理(如图像除雨)等。本文接下来的部分安排如下: + +- [指令微调简介](#引言与动机) +- [本工作的灵感来源](#引言与动机) +- [数据集准备](#数据集准备) +- [训练实验及结果](#训练实验及结果) +- [潜在的应用及其限制](#潜在的应用及其限制) +- [开放性问题](#开放性问题) + +你可在[此处](https://github.com/huggingface/instruction-tuned-sd)找到我们的代码、预训练模型及数据集。 + +## 引言与动机 + +指令微调是一种有监督训练方法,用于教授语言模型按照指令完成任务的能力。该方法最早由谷歌在 [Fine-tuned Language Models Are Zero-Shot Learners](https://huggingface.co/papers/2109.01652) (FLAN) 一文中提出。最近大家耳熟能详的 [Alpaca](https://crfm.stanford.edu/2023/03/13/alpaca.html)、[FLAN V2](https://huggingface.co/papers/2210.11416) 等工作都充分证明了指令微调对很多任务都有助益。 + +下图展示了指令微调的一种形式。在[FLAN V2论文](https://huggingface.co/papers/2210.11416)中,作者在一个样本集上对预训练语言模型(如 [T5](https://huggingface.co/docs/transformers/model_doc/t5))进行了微调,如下图所示。 + +| ![FLAN 示意图](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/instruction-tuning-sd/flan_schematic.png) | +|:--:| +| **图 2**: FLAN V2 示意图 (摘自 FLAN V2 论文)。 | + +使用这种方法,我们可以创建一个涵盖多种不同任务的训练集,并在此数据集上进行微调,因此指令微调可用于多任务场景: + +| **输入** | **标签** | **任务** | +|---|---|---| +| Predict the sentiment of the
    following sentence: “The movie
    was pretty amazing. I could not
    turn around my eyes even for a
    second.” | Positive | Sentiment analysis /
    Sequence classification | +| Please answer the following
    question.
    What is the boiling point of
    Nitrogen? | 320.4F | Question answering | +| Translate the following
    English sentence into German: “I have
    a cat.” | Ich habe eine Katze. | Machine translation | +| … | … | … | +| | | | | + +在该理念的指导下,FLAN V2 的作者对含有数千个任务的混合数据集进行了指令微调,以达成对未见任务的零样本泛化: + +| ![flan 数据集概览](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/instruction-tuning-sd/flan_dataset_overview.png) | +|:--:| +| **图 3**: FLAN V2 用于训练与测试的混合任务集 (图来自 FLAN V2 论文)。 | + +我们这项工作背后的灵感,部分来自于 FLAN,部分来自 InstructPix2Pix。我们想探索能否通过特定指令来提示 Stable Diffusion,使其根据我们的要求处理输入图像。 + +[预训练的 InstructPix2Pix 模型](https://huggingface.co/timbrooks/instruct-pix2pix) 擅长领会并执行一般性指令,对图像操作之类的特定指令可能并不擅长: + +| ![卡通化效果](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/instruction-tuning-sd/cartoonization_results.jpeg) | +|:--:| +| **图 4**: 我们可以看到,对同一幅输入图像(左列),与预训练的 InstructPix2Pix 模型(中间列)相比,我们的模型(右列)能更忠实地执行“卡通化”指令。第一行结果很有意思,这里,预训练的 InstructPix2Pix 模型很显然失败了。建议放大并以彩色显示,以获得最佳视觉效果。原图见[此处](https://huggingface.co/datasets/sayakpaul/sample-datasets/resolve/main/Instruction-tuning-sd/cartoonization_results.png)。 | + +但我们仍然可以利用在 InstructPix2Pix 上的一些经验和观察来帮助我们做得更好。 + +另外,[卡通化](https://github.com/SystemErrorWang/White-box-Cartoonization)、[图像去噪](https://paperswithcode.com/dataset/sidd)以及[图像除雨](https://paperswithcode.com/dataset/raindrop)等任务的公开数据集比较容易获取,所以我们能比较轻松地基于它们构建指令提示数据集(该做法的灵感来自于 FLAN V2)。这样,我们就能够将 FLAN V2 中提出的指令模板思想迁移到本工作中。 + +## 数据集准备 + +### 卡通化 + +刚开始,我们对 InstructPix2Pix 进行了实验,提示其对输入图像进行卡通化,效果不及预期。我们尝试了各种推理超参数组合(如图像引导比(image guidance scale)以及推理步数),但结果始终不理想。这促使我们开始寻求不同的处理这个问题的方式。 + +正如上一节所述,我们希望结合以下两个工作的优势: + +**(1)** InstructPix2Pix 的训练方法,以及 +**(2)** FLAN 的超灵活的创建指令提示数据集模板的方法。 + +首先我们需要为卡通化任务创建一个指令提示数据集。图 5 展示了我们创建数据集的流水线: + +| ![itsd_data_wheel](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/instruction-tuning-sd/itsd_data_wheel.png) | +|:--:| +| **图 5**: 本文用于创建卡通化训练数据集的流水线(建议放大并以彩色显示,以获得最佳视觉效果)。 | + +其主要步骤如下: + +1. 请 [ChatGPT](https://openai.com/blog/chatgpt) 为 "Cartoonize the image.” 这一指令生成 50 个同义表述。 +2. 然后利用预训练的 [Whitebox CartoonGAN](https://github.com/SystemErrorWang/White-box-Cartoonization) 模型对 [Imagenette 数据集](https://github.com/fastai/imagenette) 的一个随机子集(5000 个样本)中的每幅图像生成对应的卡通化图像。在训练时,这些卡通化的图像将作为标签使用。因此,在某种程度上,这其实相当于将 Whitebox CartoonGAN 模型学到的技能迁移到我们的模型中。 +3. 然后我们按照如下格式组织训练样本: + +| ![cartoonization_dataset_overview](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/instruction-tuning-sd/cartoonization_dataset_overview.png) | +|:--:| +| **图 6**: 卡通化数据集的样本格式(建议放大并以彩色显示,以获得最佳视觉效果)。 | + +你可以在[此处](https://huggingface.co/datasets/instruction-tuning-vision/cartoonizer-dataset)找到我们生成的卡通化数据集。有关如何准备数据集的更多详细信息,请参阅[此处](https://github.com/huggingface/instruction-tuned-sd/tree/main/data_preparation)。我们将该数据集用于微调 InstructPix2Pix 模型,并获得了相当不错的结果(更多细节参见“训练实验及结果”部分)。 + +下面,我们继续看看这种方法是否可以推广至底层图像处理任务,例如图像除雨、图像去噪以及图像去模糊。 + +### 底层图像处理(Low-level image processing) + +我们主要专注 [MAXIM](https://huggingface.co/papers/2201.02973) 论文中的那些常见的底层图像处理任务。特别地,我们针对以下任务进行了实验:除雨、去噪、低照度图像增强以及去模糊。 + +我们为每个任务从以下数据集中抽取了数量不等的样本,构建了一个单独的数据集,并为其添加了提示,如下所示: + +| **任务** | **提示** | **数据集** | **抽取样本数** | +|---|---|---|---| +| 去模糊 | “deblur the blurry image” | [REDS](https://seungjunnah.github.io/Datasets/reds.html) (`train_blur`
    及 `train_sharp`) | 1200 | +| 除雨 | “derain the image” | [Rain13k](https://github.com/megvii-model/HINet#image-restoration-tasks) | 686 | +| 去噪 | “denoise the noisy image” | [SIDD](https://www.eecs.yorku.ca/~kamel/sidd/) | 8 | +| 低照度图像增强 | "enhance the low-light image” | [LOL](https://paperswithcode.com/dataset/lol) | 23 | +| | | | | + +上表中的数据集通常以`输入输出对`的形式出现,因此我们不必担心没有真值(ground-truth)。你可以从[此处](https://huggingface.co/datasets/instruction-tuning-vision/instruct-tuned-image-processing)找到我们的最终数据集。最终数据集如下所示: + +| ![low_level_img_proc_dataset_overview](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/instruction-tuning-sd/low_level_img_proc_dataset_overview.png) | +|:--:| +| **图 7**: 我们生成的底层图像处理数据集的样本(建议放大并以彩色显示,以获得最佳视觉效果)。 | + +总的来说,这种数据集的组织方式来源于 FLAN。在 FLAN 中我们创建了一个混合了各种不同任务的数据集,这一做法有助于我们一次性在多任务上训练单个模型,使其在能够较好地适用于含有不同任务的场景。这与底层图像处理领域的典型做法有很大不同。像 MAXIM 这样的工作虽然使用了一个单一的模型架构,其能对不同的底层图像处理任务进行建模,但这些模型的训练是在各个数据集上分别独立进行的,即它是“单架构,多模型”,但我们的做法是“单架构,单模型”。 + +## 训练实验及结果 + +[这]((https://github.com/huggingface/diffusers/blob/main/examples/instruct_pix2pix/train_instruct_pix2pix.py))是我们的训练实验的脚本。你也可以在 `Weight and Biases` 上找到我们的训练日志(包括验证集和训练超参): + +- [卡通化](https://wandb.ai/sayakpaul/instruction-tuning-sd/runs/wszjpb1b)([超参](https://wandb.ai/sayakpaul/instruction-tuning-sd/runs/wszjpb1b/overview?workspace=)) +- [底层图像处理](https://wandb.ai/sayakpaul/instruction-tuning-sd/runs/2kg5wohb)([超参](https://wandb.ai/sayakpaul/instruction-tuning-sd/runs/2kg5wohb/overview?workspace=)) + + +在训练时,我们探索了两种方法: + +1. 对 [InstructPix2Pix 的 checkpoint](https://huggingface.co/timbrooks/instruct-pix2pix) 进行微调 +2. 使用 InstructPix2Pix 训练方法对 [Stable Diffusion 的 checkpoint](https://huggingface.co/runwayml/stable-diffusion-v1-5) 进行微调 + +通过实验,我们发现第一个方法从数据集中学得更快,最终训得的模型生成质量也更好。 + +有关训练和超参的更多详细信息,可查看[我们的代码](https://github.com/huggingface/instruction-tuned-sd)及相应的 `Weights and Biases` 页面。 + +### 卡通化结果 + +为了测试[指令微调的卡通化模型](https://huggingface.co/instruction-tuning-sd/cartoonizer)的性能,我们进行了如下比较: + +| ![cartoonization_full_results](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/instruction-tuning-sd/cartoonization_full_results.png) | +|:--:| +| **图 8**: 我们将指令微调的卡通化模型(最后一列)的结果与 [CartoonGAN](https://github.com/SystemErrorWang/White-box-Cartoonization) 模型(第二列)以及预训练的 InstructPix2Pix 模型(第三列)的结果进行比较。显然,指令微调的模型的结果与 CartoonGAN 模型的输出更一致(建议放大并以彩色显示,以获得最佳视觉效果)。原图参见[此处](https://huggingface.co/datasets/sayakpaul/sample-datasets/resolve/main/Instruction-tuning-sd/cartoonization_full_results.png)。 | + +测试图像是从 ImageNette 的验证集中采样而得。在使用我们的模型和预训练 InstructPix2Pix 模型时,我们使用了以下提示:*“Generate a cartoonized version of the image”*,并将 `image_guidance_scale`、`guidance_scale`、推理步数分别设为 1.5、7.0 以及 20。这只是初步效果,后续还需要对超参进行更多实验,并研究各参数对各模型效果的影响,尤其是对预训练 InstructPix2Pix 模型效果的影响。 + +[此处](https://wandb.ai/sayakpaul/instruction-tuning-sd/runs/g6cvggw2)提供了更多的对比结果。你也可以在[此处](https://github.com/huggingface/instruction-tuned-sd/blob/main/validation/compare_models.py)找到我们用于比较模型效果的代码。 + +然而,我们的模型对 ImageNette 中的目标对象(如降落伞等)的处理效果[不及预期](https://wandb.ai/sayakpaul/instruction-tuning-sd/runs/g6cvggw2),这是因为模型在训练期间没有见到足够多的这类样本。这在某种程度上是意料之中的,我们相信可以通过增加训练数据来缓解。 + +### 底层图像处理结果 +对于底层图像处理([模型](https://huggingface.co/instruction-tuning-sd/low-level-img-proc)),我们使用了与上文相同的推理超参: + +- 推理步数:20 +- `image_guidance_scale`:1.5 +- `guidance_scale`:7.0 + +在除雨任务中,经过与真值(ground-truth)和预训练 InstructPix2Pix 模型的输出相比较,我们发现我们模型的结果相当不错: + +| ![deraining_results](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/instruction-tuning-sd/deraining_results.png) | +|:--:| +| **图 9**: 除雨结果(建议放大并以彩色显示,以获得最佳视觉效果)。提示为 “derain the image”(与训练集相同)。原图见[此处](https://huggingface.co/datasets/sayakpaul/sample-datasets/resolve/main/Instruction-tuning-sd/deraining_results.png) 。| + +但低照度图像增强的效果不尽如意: + +| ![image_enhancement_results](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/instruction-tuning-sd/image_enhancement_results.png) | +|:--:| +| **图 10**: 低照度图像增强结果(建议放大并以彩色显示,以获得最佳视觉效果)。提示为 “enhance the low-light image”(与训练集相同)。原图见[此处]。 | + +这种情况或许可以归因于训练样本不足,此外训练方法也尚有改进余地。我们在去模糊任务上也有类似发现: + +| ![deblurring_results](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/instruction-tuning-sd/deblurring_results.png) | +|:--:| +| **图 11**: 去模糊结果(建议放大并以彩色显示,以获得最佳视觉效果)。提示为 “deblur the image”(与训练集相同)。原图见[此处](https://huggingface.co/datasets/sayakpaul/sample-datasets/resolve/main/Instruction-tuning-sd/deblurring_results.png) 。 | + +我们相信对社区而言,`底层图像处理的任务不同组合如何影响最终结果`这一问题非常值得探索。 *在训练样本集中增加更多的任务种类并增加更多具代表性的样本是否有助于改善最终结果?* 这个问题,我们希望留给社区进一步探索。 + +你可以试试下面的交互式演示,看看 Stable Diffusion 能不能领会并执行你的特定指令: + + + + + +## 潜在的应用及其限制 + +在图像编辑领域,领域专家的想法(想要执行的任务)与编辑工具(例如 [Lightroom](https://www.adobe.com/in/products/photoshop-lightroom.html))最终需要执行的操作之间存在着脱节。如果我们有一种将自然语言的需求转换为底层图像编辑原语的简单方法的话,那么用户体验将十分丝滑。随着 InstructPix2Pix 之类的机制的引入,可以肯定,我们正在接近那个理想的用户体验。 + +但同时,我们仍需要解决不少挑战: + +- 这些系统需要能够处理高分辨率的原始高清图像。 +- 扩散模型经常会曲解指令,并依照这种曲解修改图像。对于实际的图像编辑应用程序,这是不可接受的。 + +## 开放性问题 + +目前的实验仍然相当初步,我们尚未对实验中的很多重要因素作深入的消融实验。在此,我们列出实验过程中出现的开放性问题: + +- ***如果扩大数据集会怎样?*** 扩大数据集对生成样本的质量有何影响?目前我们实验中,训练样本只有不到 2000 个,而 InstructPix2Pix 用了 30000 多个训练样本。 + +- ***延长训练时间有什么影响,尤其是当训练集中任务种类更多时会怎样?*** 在目前的实验中,我们没有进行超参调优,更不用说对训练步数进行消融实验了。 + +- ***如何将这种方法推广至更广泛的任务集?历史数据表明,“指令微调”似乎比较擅长多任务微调。*** 目前,我们只涉及了四个底层图像处理任务:除雨、去模糊、去噪和低照度图像增强。将更多任务以及更多有代表性的样本添加到训练集中是否有助于模型对未见任务的泛化能力,或者有助于对复合型任务(例如:“Deblur the image and denoise it”)的泛化能力? + +- ***使用同一指令的不同变体即时组装训练样本是否有助于提高性能?*** 在卡通化任务中,我们的方法是在**数据集创建期间**从 ChatGPT 生成的同义指令集中随机抽取一条指令组装训练样本。如果我们在训练期间随机抽样,即时组装训练样本会如何?对于底层图像处理任务,目前我们使用了固定的指令。如果我们按照类似于卡通化任务的方法对每个任务和输入图像从同义指令集中采样一条指令会如何? + +- ***如果我们用 ControlNet 的训练方法会如何?*** [ControlNet](https://huggingface.co/papers/2302.05543) 允许对预训练文生图扩散模型进行微调,使其能以图像(如语义分割图、Canny 边缘图等)为条件生成新的图像。如果你有兴趣,你可以使用本文中提供的数据集并参考[这篇文章](https://huggingface.co/blog/train-your-controlnet) 进行 ControlNet 训练。 + +## 总结 + +通过本文,我们介绍了我们对“指令微调” Stable Diffusion 的一些探索。虽然预训练的 InstructPix2Pix 擅长领会执行一般的图像编辑指令,但当出现更专门的指令时,它可能就没法用了。为了缓解这种情况,我们讨论了如何准备数据集以进一步微调 InstructPix2Pix,同时我们展示了我们的结果。如上所述,我们的结果仍然很初步。但我们希望为研究类似问题的研究人员提供一个基础,并激励他们进一步对本领域的开放性问题进行探索。 + +## 链接 + +- [训练和推理代码](https://github.com/huggingface/instruction-tuned-sd) +- [演示](https://huggingface.co/spaces/instruction-tuning-sd/instruction-tuned-sd) +- [InstructPix2Pix](https://huggingface.co/timbrooks/instruct-pix2pix) +- [本文中的数据集和模型](https://huggingface.co/instruction-tuning-sd) + +*感谢 [Alara Dirik](https://www.linkedin.com/in/alaradirik/) 和 [Zhengzhong Tu](https://www.linkedin.com/in/zhengzhongtu) 的讨论,这些讨论对本文很有帮助。感谢 [Pedro Cuenca](https://twitter.com/pcuenq?lang=en) 和 [Kashif Rasul](https://twitter.com/krasul?lang=en) 对文章的审阅。* + +## 引用 + +如需引用本文,请使用如下格式: + +```bibtex +@article{ + Paul2023instruction-tuning-sd, + author = {Paul, Sayak}, + title = {Instruction-tuning Stable Diffusion with InstructPix2Pix}, + journal = {Hugging Face Blog}, + year = {2023}, + note = {https://huggingface.co/blog/instruction-tuning-sd}, +} +``` + +> 英文原文: https://huggingface.co/blog/instruction-tuning-sd +> 原文作者:Sayak Paul +> 译者: Matrix Yao (姚伟峰),英特尔深度学习工程师,工作方向为 transformer-family 模型在各模态数据上的应用及大规模模型的训练推理。 \ No newline at end of file From e975fbc638e02d46e6d1e1a3e8d04605783f6120 Mon Sep 17 00:00:00 2001 From: Zhongdong Yang Date: Tue, 20 Jun 2023 15:55:16 +0800 Subject: [PATCH 55/55] Update: zh/instruction-tuning-sd.md --- zh/instruction-tuning-sd.md | 119 +++++++++++++++++++----------------- 1 file changed, 62 insertions(+), 57 deletions(-) diff --git a/zh/instruction-tuning-sd.md b/zh/instruction-tuning-sd.md index 656b5745c5..43faeb6113 100644 --- a/zh/instruction-tuning-sd.md +++ b/zh/instruction-tuning-sd.md @@ -5,6 +5,8 @@ authors: - user: sayakpaul translators: - user: MatrixYao +- user: zhongdongy + proofreader: true --- # 使用 InstructPix2Pix 对 Stable Diffusion 进行指令微调 @@ -12,13 +14,13 @@ translators: -本文主要探讨如何使用指令微调的方法教会 [Stable Diffusion](https://huggingface.co/blog/stable_diffusion) 按照指令 PS 图像。这样,我们 Stable Diffusion 就能听得懂人话,并根据要求对输入图像进行相应操作,如:*将输入的自然图像卡通化*。 +本文主要探讨如何使用指令微调的方法教会 [Stable Diffusion](https://huggingface.co/blog/zh/stable_diffusion) 按照指令 PS 图像。这样,我们 Stable Diffusion 就能听得懂人话,并根据要求对输入图像进行相应操作,如: _将输入的自然图像卡通化_。 | ![示意图](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/instruction-tuning-sd/schematic.png) | |:--:| | **图 1**:我们探索了 Stable Diffusion 的指令微调能力。这里,我们使用不同的图像和提示对一个指令微调后的 Stable Diffusion 模型进行了测试。微调后的模型似乎能够理解输入中的图像操作指令。(建议放大并以彩色显示,以获得最佳视觉效果)| -[InstructPix2Pix: Learning to Follow Image Editing Instructions](https://huggingface.co/papers/2211.09800) 一文首次提出了这种教 Stable Diffusion 按照用户指令**编辑**输入图像的想法。本文我们将讨论如何拓展 InstructPix2Pix 的训练策略以使其能够理解并执行更特定的指令任务,如图像翻译(如卡通化)、底层图像处理(如图像除雨)等。本文接下来的部分安排如下: +[InstructPix2Pix: Learning to Follow Image Editing Instructions](https://huggingface.co/papers/2211.09800) 一文首次提出了这种教 Stable Diffusion 按照用户指令 **编辑** 输入图像的想法。本文我们将讨论如何拓展 InstructPix2Pix 的训练策略以使其能够理解并执行更特定的指令任务,如图像翻译 (如卡通化) 、底层图像处理 (如图像除雨) 等。本文接下来的部分安排如下: - [指令微调简介](#引言与动机) - [本工作的灵感来源](#引言与动机) @@ -27,19 +29,19 @@ translators: - [潜在的应用及其限制](#潜在的应用及其限制) - [开放性问题](#开放性问题) -你可在[此处](https://github.com/huggingface/instruction-tuned-sd)找到我们的代码、预训练模型及数据集。 +你可在 [此处](https://github.com/huggingface/instruction-tuned-sd) 找到我们的代码、预训练模型及数据集。 ## 引言与动机 指令微调是一种有监督训练方法,用于教授语言模型按照指令完成任务的能力。该方法最早由谷歌在 [Fine-tuned Language Models Are Zero-Shot Learners](https://huggingface.co/papers/2109.01652) (FLAN) 一文中提出。最近大家耳熟能详的 [Alpaca](https://crfm.stanford.edu/2023/03/13/alpaca.html)、[FLAN V2](https://huggingface.co/papers/2210.11416) 等工作都充分证明了指令微调对很多任务都有助益。 -下图展示了指令微调的一种形式。在[FLAN V2论文](https://huggingface.co/papers/2210.11416)中,作者在一个样本集上对预训练语言模型(如 [T5](https://huggingface.co/docs/transformers/model_doc/t5))进行了微调,如下图所示。 +下图展示了指令微调的一种形式。在 [FLAN V2 论文](https://huggingface.co/papers/2210.11416) 中,作者在一个样本集上对预训练语言模型 (如 [T5](https://huggingface.co/docs/transformers/model_doc/t5)) 进行了微调,如下图所示。 | ![FLAN 示意图](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/instruction-tuning-sd/flan_schematic.png) | |:--:| | **图 2**: FLAN V2 示意图 (摘自 FLAN V2 论文)。 | -使用这种方法,我们可以创建一个涵盖多种不同任务的训练集,并在此数据集上进行微调,因此指令微调可用于多任务场景: +使用这种方法,我们可以创建一个涵盖多种不同任务的训练集,并在此数据集上进行微调,因此指令微调可用于多任务场景: | **输入** | **标签** | **任务** | |---|---|---| @@ -49,7 +51,7 @@ translators: | … | … | … | | | | | | -在该理念的指导下,FLAN V2 的作者对含有数千个任务的混合数据集进行了指令微调,以达成对未见任务的零样本泛化: +在该理念的指导下,FLAN V2 的作者对含有数千个任务的混合数据集进行了指令微调,以达成对未见任务的零样本泛化: | ![flan 数据集概览](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/instruction-tuning-sd/flan_dataset_overview.png) | |:--:| @@ -57,7 +59,7 @@ translators: 我们这项工作背后的灵感,部分来自于 FLAN,部分来自 InstructPix2Pix。我们想探索能否通过特定指令来提示 Stable Diffusion,使其根据我们的要求处理输入图像。 -[预训练的 InstructPix2Pix 模型](https://huggingface.co/timbrooks/instruct-pix2pix) 擅长领会并执行一般性指令,对图像操作之类的特定指令可能并不擅长: +[预训练的 InstructPix2Pix 模型](https://huggingface.co/timbrooks/instruct-pix2pix) 擅长领会并执行一般性指令,对图像操作之类的特定指令可能并不擅长: | ![卡通化效果](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/instruction-tuning-sd/cartoonization_results.jpeg) | |:--:| @@ -65,44 +67,44 @@ translators: 但我们仍然可以利用在 InstructPix2Pix 上的一些经验和观察来帮助我们做得更好。 -另外,[卡通化](https://github.com/SystemErrorWang/White-box-Cartoonization)、[图像去噪](https://paperswithcode.com/dataset/sidd)以及[图像除雨](https://paperswithcode.com/dataset/raindrop)等任务的公开数据集比较容易获取,所以我们能比较轻松地基于它们构建指令提示数据集(该做法的灵感来自于 FLAN V2)。这样,我们就能够将 FLAN V2 中提出的指令模板思想迁移到本工作中。 +另外,[卡通化](https://github.com/SystemErrorWang/White-box-Cartoonization)、[图像去噪](https://paperswithcode.com/dataset/sidd) 以及 [图像除雨](https://paperswithcode.com/dataset/raindrop) 等任务的公开数据集比较容易获取,所以我们能比较轻松地基于它们构建指令提示数据集 (该做法的灵感来自于 FLAN V2)。这样,我们就能够将 FLAN V2 中提出的指令模板思想迁移到本工作中。 ## 数据集准备 ### 卡通化 -刚开始,我们对 InstructPix2Pix 进行了实验,提示其对输入图像进行卡通化,效果不及预期。我们尝试了各种推理超参数组合(如图像引导比(image guidance scale)以及推理步数),但结果始终不理想。这促使我们开始寻求不同的处理这个问题的方式。 +刚开始,我们对 InstructPix2Pix 进行了实验,提示其对输入图像进行卡通化,效果不及预期。我们尝试了各种推理超参数组合 (如图像引导比 (image guidance scale) 以及推理步数),但结果始终不理想。这促使我们开始寻求不同的处理这个问题的方式。 -正如上一节所述,我们希望结合以下两个工作的优势: +正如上一节所述,我们希望结合以下两个工作的优势: -**(1)** InstructPix2Pix 的训练方法,以及 +**(1)** InstructPix2Pix 的训练方法,以及 **(2)** FLAN 的超灵活的创建指令提示数据集模板的方法。 -首先我们需要为卡通化任务创建一个指令提示数据集。图 5 展示了我们创建数据集的流水线: +首先我们需要为卡通化任务创建一个指令提示数据集。图 5 展示了我们创建数据集的流水线: | ![itsd_data_wheel](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/instruction-tuning-sd/itsd_data_wheel.png) | |:--:| | **图 5**: 本文用于创建卡通化训练数据集的流水线(建议放大并以彩色显示,以获得最佳视觉效果)。 | -其主要步骤如下: +其主要步骤如下: -1. 请 [ChatGPT](https://openai.com/blog/chatgpt) 为 "Cartoonize the image.” 这一指令生成 50 个同义表述。 -2. 然后利用预训练的 [Whitebox CartoonGAN](https://github.com/SystemErrorWang/White-box-Cartoonization) 模型对 [Imagenette 数据集](https://github.com/fastai/imagenette) 的一个随机子集(5000 个样本)中的每幅图像生成对应的卡通化图像。在训练时,这些卡通化的图像将作为标签使用。因此,在某种程度上,这其实相当于将 Whitebox CartoonGAN 模型学到的技能迁移到我们的模型中。 -3. 然后我们按照如下格式组织训练样本: +1. 请 [ChatGPT](https://openai.com/blog/chatgpt) 为 “Cartoonize the image.” 这一指令生成 50 个同义表述。 +2. 然后利用预训练的 [Whitebox CartoonGAN](https://github.com/SystemErrorWang/White-box-Cartoonization) 模型对 [Imagenette 数据集](https://github.com/fastai/imagenette) 的一个随机子集 (5000 个样本) 中的每幅图像生成对应的卡通化图像。在训练时,这些卡通化的图像将作为标签使用。因此,在某种程度上,这其实相当于将 Whitebox CartoonGAN 模型学到的技能迁移到我们的模型中。 +3. 然后我们按照如下格式组织训练样本: | ![cartoonization_dataset_overview](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/instruction-tuning-sd/cartoonization_dataset_overview.png) | |:--:| | **图 6**: 卡通化数据集的样本格式(建议放大并以彩色显示,以获得最佳视觉效果)。 | -你可以在[此处](https://huggingface.co/datasets/instruction-tuning-vision/cartoonizer-dataset)找到我们生成的卡通化数据集。有关如何准备数据集的更多详细信息,请参阅[此处](https://github.com/huggingface/instruction-tuned-sd/tree/main/data_preparation)。我们将该数据集用于微调 InstructPix2Pix 模型,并获得了相当不错的结果(更多细节参见“训练实验及结果”部分)。 +你可以在 [此处](https://huggingface.co/datasets/instruction-tuning-vision/cartoonizer-dataset) 找到我们生成的卡通化数据集。有关如何准备数据集的更多详细信息,请参阅 [此处](https://github.com/huggingface/instruction-tuned-sd/tree/main/data_preparation)。我们将该数据集用于微调 InstructPix2Pix 模型,并获得了相当不错的结果 (更多细节参见“训练实验及结果”部分)。 下面,我们继续看看这种方法是否可以推广至底层图像处理任务,例如图像除雨、图像去噪以及图像去模糊。 -### 底层图像处理(Low-level image processing) +### 底层图像处理 (Low-level image processing) -我们主要专注 [MAXIM](https://huggingface.co/papers/2201.02973) 论文中的那些常见的底层图像处理任务。特别地,我们针对以下任务进行了实验:除雨、去噪、低照度图像增强以及去模糊。 +我们主要专注 [MAXIM](https://huggingface.co/papers/2201.02973) 论文中的那些常见的底层图像处理任务。特别地,我们针对以下任务进行了实验: 除雨、去噪、低照度图像增强以及去模糊。 -我们为每个任务从以下数据集中抽取了数量不等的样本,构建了一个单独的数据集,并为其添加了提示,如下所示: +我们为每个任务从以下数据集中抽取了数量不等的样本,构建了一个单独的数据集,并为其添加了提示,如下所示: **任务** **提示** **数据集** **抽取样本数** | **任务** | **提示** | **数据集** | **抽取样本数** | |---|---|---|---| @@ -112,7 +114,7 @@ translators: | 低照度图像增强 | "enhance the low-light image” | [LOL](https://paperswithcode.com/dataset/lol) | 23 | | | | | | -上表中的数据集通常以`输入输出对`的形式出现,因此我们不必担心没有真值(ground-truth)。你可以从[此处](https://huggingface.co/datasets/instruction-tuning-vision/instruct-tuned-image-processing)找到我们的最终数据集。最终数据集如下所示: +上表中的数据集通常以 `输入输出对`的形式出现,因此我们不必担心没有真值 (ground-truth)。你可以从 [此处](https://huggingface.co/datasets/instruction-tuning-vision/instruct-tuned-image-processing) 找到我们的最终数据集。最终数据集如下所示: | ![low_level_img_proc_dataset_overview](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/instruction-tuning-sd/low_level_img_proc_dataset_overview.png) | |:--:| @@ -122,63 +124,63 @@ translators: ## 训练实验及结果 -[这]((https://github.com/huggingface/diffusers/blob/main/examples/instruct_pix2pix/train_instruct_pix2pix.py))是我们的训练实验的脚本。你也可以在 `Weight and Biases` 上找到我们的训练日志(包括验证集和训练超参): +[这]((https://github.com/huggingface/diffusers/blob/main/examples/instruct_pix2pix/train_instruct_pix2pix.py)) 是我们的训练实验的脚本。你也可以在 `Weight and Biases` 上找到我们的训练日志 (包括验证集和训练超参): -- [卡通化](https://wandb.ai/sayakpaul/instruction-tuning-sd/runs/wszjpb1b)([超参](https://wandb.ai/sayakpaul/instruction-tuning-sd/runs/wszjpb1b/overview?workspace=)) -- [底层图像处理](https://wandb.ai/sayakpaul/instruction-tuning-sd/runs/2kg5wohb)([超参](https://wandb.ai/sayakpaul/instruction-tuning-sd/runs/2kg5wohb/overview?workspace=)) +- [卡通化](https://wandb.ai/sayakpaul/instruction-tuning-sd/runs/wszjpb1b) ([超参](https://wandb.ai/sayakpaul/instruction-tuning-sd/runs/wszjpb1b/overview?workspace=)) +- [底层图像处理](https://wandb.ai/sayakpaul/instruction-tuning-sd/runs/2kg5wohb) ([超参](https://wandb.ai/sayakpaul/instruction-tuning-sd/runs/2kg5wohb/overview?workspace=)) - -在训练时,我们探索了两种方法: +在训练时,我们探索了两种方法: 1. 对 [InstructPix2Pix 的 checkpoint](https://huggingface.co/timbrooks/instruct-pix2pix) 进行微调 2. 使用 InstructPix2Pix 训练方法对 [Stable Diffusion 的 checkpoint](https://huggingface.co/runwayml/stable-diffusion-v1-5) 进行微调 通过实验,我们发现第一个方法从数据集中学得更快,最终训得的模型生成质量也更好。 -有关训练和超参的更多详细信息,可查看[我们的代码](https://github.com/huggingface/instruction-tuned-sd)及相应的 `Weights and Biases` 页面。 +有关训练和超参的更多详细信息,可查看 [我们的代码](https://github.com/huggingface/instruction-tuned-sd) 及相应的 `Weights and Biases` 页面。 ### 卡通化结果 -为了测试[指令微调的卡通化模型](https://huggingface.co/instruction-tuning-sd/cartoonizer)的性能,我们进行了如下比较: +为了测试 [指令微调的卡通化模型](https://huggingface.co/instruction-tuning-sd/cartoonizer) 的性能,我们进行了如下比较: | ![cartoonization_full_results](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/instruction-tuning-sd/cartoonization_full_results.png) | |:--:| | **图 8**: 我们将指令微调的卡通化模型(最后一列)的结果与 [CartoonGAN](https://github.com/SystemErrorWang/White-box-Cartoonization) 模型(第二列)以及预训练的 InstructPix2Pix 模型(第三列)的结果进行比较。显然,指令微调的模型的结果与 CartoonGAN 模型的输出更一致(建议放大并以彩色显示,以获得最佳视觉效果)。原图参见[此处](https://huggingface.co/datasets/sayakpaul/sample-datasets/resolve/main/Instruction-tuning-sd/cartoonization_full_results.png)。 | -测试图像是从 ImageNette 的验证集中采样而得。在使用我们的模型和预训练 InstructPix2Pix 模型时,我们使用了以下提示:*“Generate a cartoonized version of the image”*,并将 `image_guidance_scale`、`guidance_scale`、推理步数分别设为 1.5、7.0 以及 20。这只是初步效果,后续还需要对超参进行更多实验,并研究各参数对各模型效果的影响,尤其是对预训练 InstructPix2Pix 模型效果的影响。 +测试图像是从 ImageNette 的验证集中采样而得。在使用我们的模型和预训练 InstructPix2Pix 模型时,我们使用了以下提示: _“Generate a cartoonized version of the image”_,并将 `image_guidance_scale`、 `guidance_scale`、推理步数分别设为 1.5、7.0 以及 20。这只是初步效果,后续还需要对超参进行更多实验,并研究各参数对各模型效果的影响,尤其是对预训练 InstructPix2Pix 模型效果的影响。 -[此处](https://wandb.ai/sayakpaul/instruction-tuning-sd/runs/g6cvggw2)提供了更多的对比结果。你也可以在[此处](https://github.com/huggingface/instruction-tuned-sd/blob/main/validation/compare_models.py)找到我们用于比较模型效果的代码。 +[此处](https://wandb.ai/sayakpaul/instruction-tuning-sd/runs/g6cvggw2) 提供了更多的对比结果。你也可以在 [此处](https://github.com/huggingface/instruction-tuned-sd/blob/main/validation/compare_models.py) 找到我们用于比较模型效果的代码。 -然而,我们的模型对 ImageNette 中的目标对象(如降落伞等)的处理效果[不及预期](https://wandb.ai/sayakpaul/instruction-tuning-sd/runs/g6cvggw2),这是因为模型在训练期间没有见到足够多的这类样本。这在某种程度上是意料之中的,我们相信可以通过增加训练数据来缓解。 +然而,我们的模型对 ImageNette 中的目标对象 (如降落伞等) 的处理效果 [不及预期](https://wandb.ai/sayakpaul/instruction-tuning-sd/runs/g6cvggw2),这是因为模型在训练期间没有见到足够多的这类样本。这在某种程度上是意料之中的,我们相信可以通过增加训练数据来缓解。 ### 底层图像处理结果 -对于底层图像处理([模型](https://huggingface.co/instruction-tuning-sd/low-level-img-proc)),我们使用了与上文相同的推理超参: -- 推理步数:20 -- `image_guidance_scale`:1.5 -- `guidance_scale`:7.0 +对于底层图像处理 ([模型](https://huggingface.co/instruction-tuning-sd/low-level-img-proc)),我们使用了与上文相同的推理超参: + +- 推理步数: 20 +- `image_guidance_scale`: 1.5 +- `guidance_scale`: 7.0 -在除雨任务中,经过与真值(ground-truth)和预训练 InstructPix2Pix 模型的输出相比较,我们发现我们模型的结果相当不错: +在除雨任务中,经过与真值 (ground-truth) 和预训练 InstructPix2Pix 模型的输出相比较,我们发现我们模型的结果相当不错: | ![deraining_results](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/instruction-tuning-sd/deraining_results.png) | |:--:| | **图 9**: 除雨结果(建议放大并以彩色显示,以获得最佳视觉效果)。提示为 “derain the image”(与训练集相同)。原图见[此处](https://huggingface.co/datasets/sayakpaul/sample-datasets/resolve/main/Instruction-tuning-sd/deraining_results.png) 。| -但低照度图像增强的效果不尽如意: +但低照度图像增强的效果不尽如意: | ![image_enhancement_results](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/instruction-tuning-sd/image_enhancement_results.png) | |:--:| | **图 10**: 低照度图像增强结果(建议放大并以彩色显示,以获得最佳视觉效果)。提示为 “enhance the low-light image”(与训练集相同)。原图见[此处]。 | -这种情况或许可以归因于训练样本不足,此外训练方法也尚有改进余地。我们在去模糊任务上也有类似发现: +这种情况或许可以归因于训练样本不足,此外训练方法也尚有改进余地。我们在去模糊任务上也有类似发现: | ![deblurring_results](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/instruction-tuning-sd/deblurring_results.png) | |:--:| | **图 11**: 去模糊结果(建议放大并以彩色显示,以获得最佳视觉效果)。提示为 “deblur the image”(与训练集相同)。原图见[此处](https://huggingface.co/datasets/sayakpaul/sample-datasets/resolve/main/Instruction-tuning-sd/deblurring_results.png) 。 | -我们相信对社区而言,`底层图像处理的任务不同组合如何影响最终结果`这一问题非常值得探索。 *在训练样本集中增加更多的任务种类并增加更多具代表性的样本是否有助于改善最终结果?* 这个问题,我们希望留给社区进一步探索。 +我们相信对社区而言,`底层图像处理的任务不同组合如何影响最终结果` 这一问题非常值得探索。 _在训练样本集中增加更多的任务种类并增加更多具代表性的样本是否有助于改善最终结果?_ 这个问题,我们希望留给社区进一步探索。 -你可以试试下面的交互式演示,看看 Stable Diffusion 能不能领会并执行你的特定指令: +你可以试试下面的交互式演示,看看 Stable Diffusion 能不能领会并执行你的特定指令: @@ -186,26 +188,22 @@ translators: ## 潜在的应用及其限制 -在图像编辑领域,领域专家的想法(想要执行的任务)与编辑工具(例如 [Lightroom](https://www.adobe.com/in/products/photoshop-lightroom.html))最终需要执行的操作之间存在着脱节。如果我们有一种将自然语言的需求转换为底层图像编辑原语的简单方法的话,那么用户体验将十分丝滑。随着 InstructPix2Pix 之类的机制的引入,可以肯定,我们正在接近那个理想的用户体验。 +在图像编辑领域,领域专家的想法 (想要执行的任务) 与编辑工具 (例如 [Lightroom](https://www.adobe.com/in/products/photoshop-lightroom.html)) 最终需要执行的操作之间存在着脱节。如果我们有一种将自然语言的需求转换为底层图像编辑原语的简单方法的话,那么用户体验将十分丝滑。随着 InstructPix2Pix 之类的机制的引入,可以肯定,我们正在接近那个理想的用户体验。 -但同时,我们仍需要解决不少挑战: +但同时,我们仍需要解决不少挑战: - 这些系统需要能够处理高分辨率的原始高清图像。 - 扩散模型经常会曲解指令,并依照这种曲解修改图像。对于实际的图像编辑应用程序,这是不可接受的。 ## 开放性问题 -目前的实验仍然相当初步,我们尚未对实验中的很多重要因素作深入的消融实验。在此,我们列出实验过程中出现的开放性问题: - -- ***如果扩大数据集会怎样?*** 扩大数据集对生成样本的质量有何影响?目前我们实验中,训练样本只有不到 2000 个,而 InstructPix2Pix 用了 30000 多个训练样本。 - -- ***延长训练时间有什么影响,尤其是当训练集中任务种类更多时会怎样?*** 在目前的实验中,我们没有进行超参调优,更不用说对训练步数进行消融实验了。 +目前的实验仍然相当初步,我们尚未对实验中的很多重要因素作深入的消融实验。在此,我们列出实验过程中出现的开放性问题: -- ***如何将这种方法推广至更广泛的任务集?历史数据表明,“指令微调”似乎比较擅长多任务微调。*** 目前,我们只涉及了四个底层图像处理任务:除雨、去模糊、去噪和低照度图像增强。将更多任务以及更多有代表性的样本添加到训练集中是否有助于模型对未见任务的泛化能力,或者有助于对复合型任务(例如:“Deblur the image and denoise it”)的泛化能力? - -- ***使用同一指令的不同变体即时组装训练样本是否有助于提高性能?*** 在卡通化任务中,我们的方法是在**数据集创建期间**从 ChatGPT 生成的同义指令集中随机抽取一条指令组装训练样本。如果我们在训练期间随机抽样,即时组装训练样本会如何?对于底层图像处理任务,目前我们使用了固定的指令。如果我们按照类似于卡通化任务的方法对每个任务和输入图像从同义指令集中采样一条指令会如何? - -- ***如果我们用 ControlNet 的训练方法会如何?*** [ControlNet](https://huggingface.co/papers/2302.05543) 允许对预训练文生图扩散模型进行微调,使其能以图像(如语义分割图、Canny 边缘图等)为条件生成新的图像。如果你有兴趣,你可以使用本文中提供的数据集并参考[这篇文章](https://huggingface.co/blog/train-your-controlnet) 进行 ControlNet 训练。 +- _**如果扩大数据集会怎样?**_ 扩大数据集对生成样本的质量有何影响?目前我们实验中,训练样本只有不到 2000 个,而 InstructPix2Pix 用了 30000 多个训练样本。 +- _**延长训练时间有什么影响,尤其是当训练集中任务种类更多时会怎样?**_ 在目前的实验中,我们没有进行超参调优,更不用说对训练步数进行消融实验了。 +- _**如何将这种方法推广至更广泛的任务集?历史数据表明,“指令微调”似乎比较擅长多任务微调。**_ 目前,我们只涉及了四个底层图像处理任务: 除雨、去模糊、去噪和低照度图像增强。将更多任务以及更多有代表性的样本添加到训练集中是否有助于模型对未见任务的泛化能力,或者有助于对复合型任务 (例如: “Deblur the image and denoise it”) 的泛化能力? +- _**使用同一指令的不同变体即时组装训练样本是否有助于提高性能?**_ 在卡通化任务中,我们的方法是在 **数据集创建期间** 从 ChatGPT 生成的同义指令集中随机抽取一条指令组装训练样本。如果我们在训练期间随机抽样,即时组装训练样本会如何?对于底层图像处理任务,目前我们使用了固定的指令。如果我们按照类似于卡通化任务的方法对每个任务和输入图像从同义指令集中采样一条指令会如何? +- _**如果我们用 ControlNet 的训练方法会如何?**_ [ControlNet](https://huggingface.co/papers/2302.05543) 允许对预训练文生图扩散模型进行微调,使其能以图像 (如语义分割图、Canny 边缘图等) 为条件生成新的图像。如果你有兴趣,你可以使用本文中提供的数据集并参考 [这篇文章](https://huggingface.co/blog/train-your-controlnet) 进行 ControlNet 训练。 ## 总结 @@ -218,11 +216,12 @@ translators: - [InstructPix2Pix](https://huggingface.co/timbrooks/instruct-pix2pix) - [本文中的数据集和模型](https://huggingface.co/instruction-tuning-sd) -*感谢 [Alara Dirik](https://www.linkedin.com/in/alaradirik/) 和 [Zhengzhong Tu](https://www.linkedin.com/in/zhengzhongtu) 的讨论,这些讨论对本文很有帮助。感谢 [Pedro Cuenca](https://twitter.com/pcuenq?lang=en) 和 [Kashif Rasul](https://twitter.com/krasul?lang=en) 对文章的审阅。* + +_感谢 [Alara Dirik](https://www.linkedin.com/in/alaradirik/) 和 [Zhengzhong Tu](https://www.linkedin.com/in/zhengzhongtu) 的讨论,这些讨论对本文很有帮助。感谢 [Pedro Cuenca](https://twitter.com/pcuenq?lang=en) 和 [Kashif Rasul](https://twitter.com/krasul?lang=en) 对文章的审阅。_ ## 引用 -如需引用本文,请使用如下格式: +如需引用本文,请使用如下格式: ```bibtex @article{ @@ -235,6 +234,12 @@ translators: } ``` -> 英文原文: https://huggingface.co/blog/instruction-tuning-sd -> 原文作者:Sayak Paul -> 译者: Matrix Yao (姚伟峰),英特尔深度学习工程师,工作方向为 transformer-family 模型在各模态数据上的应用及大规模模型的训练推理。 \ No newline at end of file +--- + +>>>> 英文原文: https://huggingface.co/blog/instruction-tuning-sd +>>>> +>>>> 原文作者: Sayak Paul +>>>> +>>>> 译者: Matrix Yao (姚伟峰),英特尔深度学习工程师,工作方向为 transformer-family 模型在各模态数据上的应用及大规模模型的训练推理。 +>>>> +>>>> 审校/排版: zhongdongy (阿东) \ No newline at end of file

    8g$%Zm&F>U=!K5 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%0ArK}-8jr-zv7Mr@FoM{rEd$l_c2tE|2 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%0Ar!!@-pvU0Ky5GI7bB=_C2W_B7SWpXInZQMN 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 + + + + + + +All hype aside, it's hard to deny the profound impact that AI is having on society and businesses. From startups to enterprises to the public sector, every customer we talk to is busy experimenting with large language models and generative AI, identifying the most promising use cases, and gradually bringing them to production. + +The #1 comment we get from customers is that no single model will rule them all. They understand the value of building the best model for each use case to maximize its relevance on company data while optimizing the compute budget. Of course, privacy and intellectual property are also top concerns, and customers want to ensure they maintain complete control. + +As AI finds its way into every department and business unit, customers also realize the need to train and deploy many different models. In a large multinational organization, this could mean running hundreds, even thousands, of models at any time. Given the pace of AI innovation, newer and higher-performance model architectures will also lead customers to replace their models quicker than expected, reinforcing the need to train and deploy new models in production quickly and seamlessly. + +All of this will only happen with standardization and automation. Organizations can't afford to build models, tools, and infrastructure from scratch for new projects. Fortunately, the last few years have seen some very positive developments: + + +1. **Model standardization**: the [Transformer](https://arxiv.org/abs/1706.03762) architecture is now the de facto standard for Deep Learning applications like Natural Language Processing, Computer Vision, Audio, Speech, and more. It’s now easier to build tools and workflows that perform well across many use cases. +2. **Pre-trained models**: [hundreds of thousands](https://huggingface.co/models) of pre-trained models are just a click away. You can discover and test them directly on [Hugging Face](https://huggingface.co) and quickly shortlist the promising ones for your projects. +3. **Open-source libraries**: the Hugging Face [libraries](https://huggingface.co/docs) let you download pre-trained models with a single line of code, and you can start experimenting with your data in minutes. From training to deployment to hardware optimization, customers can rely on a consistent set of community-driven tools that work the same everywhere, from their laptops to their production environment. + +In addition, our cloud partnerships let customers use Hugging Face models and libraries at any scale without worrying about provisioning infrastructure and building technical environments. This makes it much easier to get high-quality models out the door at a rapid pace without having to reinvent the wheel. + +Following up on our collaboration with AWS on Amazon SageMaker and Microsoft on Azure Machine Learning, we're thrilled to work with none other than IBM on their new AI studio, [watsonx.ai](https://www.ibm.com/products/watsonx-ai). [watsonx.ai](http://watsonx.ai) is the next-generation enterprise studio for AI builders to train, validate, tune, and deploy both traditional ML and new generative AI capabilities, powered by foundation models. + +IBM decided that open source should be at the core of watsonx.ai. We couldn't agree more! Built on [RedHat OpenShift](https://www.redhat.com/en/technologies/cloud-computing/openshift), watsonx.ai will be available in the cloud and on-premise. This is excellent news for customers who cannot use the cloud because of strict compliance rules or are more comfortable working with their confidential data on their infrastructure. Until now, these customers often had to build their in-house ML platform. They now have an open-source off-the-shelf alternative deployed and managed using standard DevOps tools. + +Under the hood, watsonx.ai also integrates many Hugging Face open-source libraries, such as [transformers](https://github.com/huggingface/transformers) (100k+ GitHub stars!), [accelerate](https://github.com/huggingface/accelerate), [peft](https://github.com/huggingface/peft) and our [Text Generation Inference](https://github.com/huggingface/text-generation-inference) server, to name a few. We're happy to partner with IBM and to collaborate on the watsonx AI and data platform so that Hugging Face customers can work natively with their Hugging Face models and datasets to multiply the impact of AI across businesses. + +In addition, IBM has also developed its own collection of Large Language Models, and we will work with their team to open-source them and make them easily available in the Hugging Face Hub. + +To learn more, watch Dr. Darío Gil, SVP and Director of IBM Research, and our CEO Clem Delangue, [announce our collaboration](https://youtu.be/FrDnPTPgEmk?t=1077), [walk through the watsonx platform](https://youtu.be/FrDnPTPgEmk?t=283), and present IBM’s [suite of Large Language Models](https://youtu.be/FrDnPTPgEmk?t=586) in an IBM THINK 2023 keynote. + +Our joint team is hard at work at the moment. We can't wait to show you what we've been up to! The most iconic of technology companies joining forces with an up-and-coming startup to tackle AI in the Enterprise... who would have thought? + +Fascinating times. Stay tuned! From ab9ae3e2aa8603849dead3bbd08fdb827b30bf63 Mon Sep 17 00:00:00 2001 From: Omar Sanseviero Date: Tue, 23 May 2023 22:39:38 +0200 Subject: [PATCH 41/55] Show authors of safetensors blog post (#1137) Update: proofread zh/starchat-alpha.md --- safetensors-security-audit.md | 3 + zh/_blog.yml | 10 ++ zh/starchat-alpha.md | 168 +++++++++++++++++----------------- 3 files changed, 97 insertions(+), 84 deletions(-) diff --git a/safetensors-security-audit.md b/safetensors-security-audit.md index d37079ab4e..c991d134d7 100644 --- a/safetensors-security-audit.md +++ b/safetensors-security-audit.md @@ -11,6 +11,9 @@ authors: # Audit shows that safetensors is safe and ready to become the default + + + [Hugging Face](https://huggingface.co/), in close collaboration with [EleutherAI](https://www.eleuther.ai/) and [Stability AI](https://stability.ai/), has ordered an external security audit of the `safetensors` library, the results of which allow all three organizations to move toward making the library the default format diff --git a/zh/_blog.yml b/zh/_blog.yml index de1bd9f1f8..aeb4ba845a 100644 --- a/zh/_blog.yml +++ b/zh/_blog.yml @@ -495,6 +495,16 @@ - text-to-image - text-to-video +- local: starchat-alpha + title: "使用 StarCoder 创建一个编程助手" + author: lewtun + thumbnail: /blog/assets/starchat_alpha/thumbnail.png + date: May 9, 2023 + tags: + - nlp + - community + - research + - local: generative-ai-models-on-intel-cpu title: "越小越好:Q8-Chat,在英特尔至强 CPU 上体验高效的生成式 AI" thumbnail: /blog/assets/143_q8chat/thumbnail.png diff --git a/zh/starchat-alpha.md b/zh/starchat-alpha.md index c777ba9b88..8b603e98ca 100644 --- a/zh/starchat-alpha.md +++ b/zh/starchat-alpha.md @@ -13,6 +13,8 @@ authors: - user: srush translators: - user: hugging-hoi2022 +- user: zhongdongy + proofreader: true --- # 使用 StarCoder 创建一个编程助手 @@ -20,19 +22,19 @@ translators: -如果你是一个软件开发者,你可能已经使用过 GitHub 的 Copilot 或 ChatGPT 去解决一些写代码过程中遇到的问题,比如将代码从一种语言翻译到另一种语言,或者通过自然语言,诸如“_写一个计算斐波那契数列第 N 个元素的 Python 程序_”,来自动生成代码。尽管这些专有系统功能强大,但它们仍然有很多不足,比如对训练所使用的公共数据透明度的缺失、没有能力去让它们适配自己的使用领域或代码库。 +如果你是一个软件开发者,你可能已经使用过 ChatGPT 或 GitHub 的 Copilot 去解决一些写代码过程中遇到的问题,比如将代码从一种语言翻译到另一种语言,或者通过自然语言,诸如“_写一个计算斐波那契数列第 N 个元素的 Python 程序_”,来自动生成代码。尽管这些专有系统功能强大,但它们仍然有很多不足,比如对训练所使用的公共数据透明度的缺失、没有能力去让它们适配自己的使用领域或代码库。 幸运的是,现在我们有了很多高质量开源替代品!包括 SalesForce 为 Python 语言开发的 [CodeGen Mono 16B](https://huggingface.co/Salesforce/codegen-16B-mono),以及 Replit 开发的、在 20 种编程语言上训练过的 [一个 3B 参数量的模型](https://huggingface.co/replit/replit-code-v1-3b)。 -而最近新出现的一个选择则是 BigCode 开发的 [StarCoder](https://huggingface.co/bigcode/starcoder),这是一个在一万亿的 token、80 多种编程语言上训练过的 16B 参数量的模型。训练数据多来自 GitHub 上的 issues、使用 Git 提交的代码、Jupyter Notebook 等等(相关使用都已经过许可)。得益于对企业友好的许可证、长度为 8192 的 token、借助 [multi-query attention](https://arxiv.org/abs/1911.02150) 的快速大批量推理,StarCoder 可以说是当前对代码相关的应用最合适的开源选择。 +而最近新出现的一个选择则是 BigCode 开发的 [StarCoder](https://huggingface.co/bigcode/starcoder),这是一个在一万亿的 token、80 多种编程语言上训练过的 16B 参数量的模型。训练数据多来自 GitHub 上的 issues、使用 Git 提交的代码、Jupyter Notebook 等等 (相关使用都已经过许可)。得益于对企业友好的许可证、长度为 8192 的 token、借助 [multi-query attention](https://arxiv.org/abs/1911.02150) 的快速大批量推理,StarCoder 可以说是当前对代码相关的应用最合适的开源选择。 -本文将介绍如何对 StarCoder 进行微调,进而创建一个可以聊天的个人编程助手。这个编程助手我们将称之为 StarChat。借助 StarChat 的开发过程,我们将探索以下几个使用大语言模型(LLM)创建编程助手时可能遇到的几个技术细节: +本文将介绍如何对 StarCoder 进行微调,进而创建一个可以聊天的个人编程助手。这个编程助手我们将称之为 StarChat。借助 StarChat 的开发过程,我们将探索以下几个使用大语言模型 (LLM) 创建编程助手时可能遇到的几个技术细节: -- 我们应该怎样对大语言模型进行提词,使得它成为一个对话代理人 -- 我们也将介绍 OpenAI 的 [Chat Markup Language](https://github.com/openai/openai-python/blob/main/chatml.md)(简称ChatML),它为人类用户和 AI 助手之间的对话信息传递提供了一种结构化的格式 +- 我们应该怎样对大语言模型进行提词,使得它成为一个对话代理 +- 我们也将介绍 OpenAI 的 [Chat Markup Language](https://github.com/openai/openai-python/blob/main/chatml.md) (简称 ChatML),它为人类用户和 AI 助手之间的对话信息传递提供了一种结构化的格式 - 怎样在一个多样性很强的语料库上,使用 🤗 Transformers 和 DeepSpeed ZeRO-3 去微调一个大语言模型 -最后,为了尝试一下效果,我们还会问 StarChat 几个编程方面的问题(参考下面的演示)。 +最后,为了尝试一下效果,我们还会问 StarChat 几个编程方面的问题 (参考下面的演示)。 + +`` + +通过观察收集到的数据,我们发现辅助生成可以在不同的设置中显著减少延迟,但这不是灵丹妙药——你应该在应用之前对其进行系统的评估以清晰使用该方法的代价。对于辅助生成方法,我们可以得出结论: + +1. 🤏 需要访问至少比你的模型小一个数量级的辅助模型(差异越大越好); +2. 🚀 在存在 INT8 的情况下获得高达 3 倍的加速,否则能够达到 2 倍的加速; +3. 🤯 如果你正在使用不适合你的模型的 GPU 并且依赖于内存卸载的模型,你可以看到高达 10 倍的加速; +4. 📄 在输入驱动任务中大放异彩,例如自动语音识别或摘要。 + +## 辅助生成的采样方法 + +贪心解码适用于以输入为基础的任务(自动语音识别、翻译、摘要……)或事实知识寻求。对于需要大量创造力的开放式任务,例如使用语言模型作为聊天机器人的大多数任务,应该改用采样方法。虽然辅助生成方法是为贪心解码而设计的,但这并不意味着你不能使用多项式采样进行辅助生成! + +从 `next token` 的概率分布中抽取样本将导致我们的基于贪心的辅助生产更频繁地失败,从而降低其延迟优势。但是,我们可以使用采样中的温度系数来控制下一个标记的概率分布有多尖锐。在一种极端情况下,当温度接近 0 时,采样将近似于贪心解码,有利于最有可能的 token。在另一个极端,当温度设置为远大于 1 的值时,采样将是混乱的,从均匀分布中抽取。因此,低温对你的辅助模型更有利,能够保留辅助生成的大部分延迟优势,如下所示。 + + + +

    IwgW<|3PSmeJC zwhVreW-XkIUj72ziD3Txub1mL%hexSSq@>5R7JATF!$KQtiNo-{`8bF>F+ao?D6b_c#31ch{ewevJf!(NOQP~Uj%giB&2Y9CJxK-U}IgBF{%X;-d~Ii5pGcW z@;7K;@f(S-PIldE-LRE2x;QGk-xCK-07;9|#8xhwwQ_zK_;4`ZpT&iDraWQXCc(}L8dTovOExdND zaFpPs$yF?sq{x=*6O9K17cNY}?4DrUJH%L)JROCzgfTsFmEFwuNT~Gd{H6XXM8~(! z8dV&B`nD*^nPco9N>tISk#7IgdN{&BUimxH=@Dd{&>z8=t z>ke#0lt>=H+vTpk=Ljz-=t043EriFnLeL$x$8b^J+5jBEC|Ena8SJ{W&%}7kK<; z2~p^%5N3ztT)RGTj1y8iQcSkQRf5Tdz(xzqyYbAF>`M<90%7L;>=D zC$Of`@v7Duueby6fL{fD`nMOUw7~trYXY**2pDp;q#86%oL7RRUOc)Z}NuQzxNmodPhifPh5 z?Br|tR`^H~uk~2>G5xe57AGsYGIo%7dFE z3g5k^&|B-T0tg%ZhOZ-Ag85fhhDKYe5z05(O$(p2izzZT0Q<~N5-Mc!t+q~V$Vr-t zpXBMsFBd~;&wLQy|NIPdbw51j09y~3 z&C#8?bTV&y#cmU^jmM9dnh!qs9EKv2i9EQl#_MIXFkpQk#;YAeH1v^?iRP8l$2sI= zrzX9kFDA;%GS#;YsFohA^&Ah1K*u3hmWLa}dm0ApRwWsB5eaMS+K}2NAO{0@d62i@#pv@ZcduBBOVM*K^T5InQ9w zD+nSMrzBwaBjaL}&G5??$2hoMZ@#?yuz9rPmGI5xy|-tBL1F)ox&z+48!y_vmMBZx zT+M7j-bvSdSmuLYW2YgcL<_iZWIijzL0`+YXR?fY?)`11@poft-uJ^!*i({igIdde zI4Jv=i}nxO>nlCR;akeI!bD%MjsUV=Nj#&JkM8scvMB4gwGdwRV|}eVJfdCbHjX8n z(u(>pE%AtA)BNE-nnF@~6Xw@O93Y%SSLoU2#gj#28xxm|`PkqldXor=As;LFgWsEG zkK*Gaz7&nV;!|TV3A0^#Lrc<(X8ah3Y^ZoRubPfmtKWTRnElLDNcWD6OhOyi2krL^ zAkv_T^no|J%z?-jVfGj2`Ij#a@jCQ$Ty^$kU!{#gI?>3cRd6^zSEgw7H_&8E_Z_Y* z#~BQMZup$brBfI`=A}0AkbNk)gH8avzIN`MFv<7_ocLL$jz7jRFX3;ZxOGMvd^zWd zHNzQnz$-Rqnu4*P4d&@EW4n74^AQu00M!bNRA!S5N6>36)IJuz86hi&DHiSq40n z6J=SEB#xddY4&fXTGEcZbnV8_T_Ni?YhtiGg-%m(RQEG{Yr}d5P(dOG`&E98556uH z(&`wIUx8|9FHae@<~LGEFZy?kap{V`j%U999OcctFT;-3-W*1H_(#9PcyYa8KlD*W1(J9VuuZ#@%Qko7a80D3lViY(FYq9)V+_jz>04c& zhA}B~kGy3kZV~2Msznv0>|R3Mp!2-RVdl-N(zfE45i5sKI-(2$BLA3H>qi{d#j#hy zU&%TLB)l<>19+q(eA++4J)_wVG|IDEsLzP2A8apS-M(X}X~%r1y`)#&iHkg@rTwcr ze*B3r)^N75VR%YsIbfP%yqIFW8S@B7L`A`)$h1*ESXPt8m=uf96moI^D7@uHham~Th8o;$6QUS3lM&I~l@ATm3epf8Z% zud;f6vrLq4A#!>4d6b>9IhdYCWEg!#V`H@7Lx}$hN)MB3o3A=onk)+a=){N!y!e6- z1MnRBgAp3Px|N2T=U{G5acv=Jv84RPhRfl?635Hd%_A#HUQW-9H}AYN-kd=C@-f$n z75P1al*p-*c67PHkBM;U>H2r=0_isYfJY@|xYlrjq_>F;uzmm3&g6(@ ziFRp;ur3Wj*S=`_J$t03e@{_iB+`we+3^zCjrqf1_K7&J(PQB?gjnrZIIJ#Hs-PR_qq|t zZk#)==sI)oG}TgOh5Gs{s>8hHLh;mWn3BNV8?@*_n7>T zG4aM;rXu2N+33{72B$bA&51xBi?U-IFfv}baDu}ZuTd*KP6WvZUP>z75DLRjT}m&V zKiqt9b+Oq1cn5uO4;`QwBa|?*znVrAK_x(x*mX*aig9*#{!dmLl8@iPZp4NyoFtu*dm-p@CGcIi>`?wNV?2;XVW9$#->er2A?9QLzyizzcs z%&5umv%Cq6`JKjL;kQP6x}*JLw|HDYxXHfH>&w@_x<*6c@qmXbJhb)|kFzir!fbRE z;D+7#Di%5rkPDv7kx8fsTKw5&vhmgO7dBFMcV(Jw-oZn|^yE9^i-I{FFdu4R$wM3R zmGW(_^RCj?o!c_9j8?;C8ZNM--k>A+sLPQNB<@(yYoBKIJUw#+sgBWRj%(3MO-i6w zs$+rFDIaO=U&Ph2A__@nQ!?!=V;_dIsFmbZKhZF{iF~Mm+t$$+WeP_eqF5Sk!kwaD zeTDpNPc|Q3UIBJFn1k=o_m3<9W7U~MlgXs8SYA2^C;Jnu%YX1L*Wuvueu7?T*IKW? zJlnkS$~5bWyb>*r_+_+GVu?~5<7{Am#KS4#xW(0H>(({Nd6+fv+9dH!GDrZCxHNwC zcifbTap62`7^E+5-d=^7%K^!AbNG!lC*t$3DEfwry$*Rg!8d}_7CxzDT`6qShu?|k30ic;{#(AIX(#Q zSYfviZ>TuIyHo`>3~=f}b1kob$wmZ;XC3KfC85o~I2|+m#>Nqx#_<6=^DJSeqo2u3 zvt_@`Sp{!sq548~O^mTHGL>%Bn1=m3GT;YqP=xNjz=K<9BIgT@C1|*L%f4hirGF4f zcw!bPO=%4g$3NyJ|J3jT7)Z67R>2aVOgrKlTB+t;H+qSmX56gN^j=CI&DL6T!%(&Bov!kBOK;MgNNh zwPYKO*w6H*#!p~V=$TBn->(1+s*MQ;bFU+wabSFU~jewTv)&;^3 zA$7>x!@$d2M2`cDYjvDVay?4Urj34dluhO?t7~xjS}`f}Q<{#KouM#>v|xTYGs%2= zLSd*^3zr%gr~O4z|69lJYhJY;f`OA9kMz`&8uQF_sFq%7r(?{FPQ z1;HaDY>v!#9PL35`VZWM#iR;GjZzjaB6fprr5(p$MsjT$&aVyKjyg2Vl`oiyyD%Md z0pcSr;Iqcam!+8hl(cZOHUcfajO5iOPg2$YL}^$gXd&aUS@|c=^{j+6LoR+=-;P1~AsRVixUH^1foChKR?wL%Nh_1aCxh_|#Ph3ykAGCrz(>Er7 zQV11YmumfV*D#SroC*{H6-wAHWNGCECZI|@C(;fZwsqF+n_Z}qQZHJ6(pdoget#=hDcBC3T2r5AMND}!clhX8>NHG$yQO4Gl5NED zMn!LP5(%9D@qakh{D;4I(mZ^;*u2O*_J{xIrRL=~ctJD9bKnbVzr#^cb%)1X*p`v_ zD}5!ga5FBJ-QX~Xh$HMaZ{E1kT)X;JGrqP{QLicpI(l%hGlu9Pvyq(B`5# z=PQ}e$<~y~r_@^guAn0kMxbTnwdK&W$PvDJ z7n1~3q}aGAjWJiv&=l9GNna_*86HzpDp6g`6HL0}<(S>Yt-2abFXl=xXu_S=tc>&x zyu#(7nq?Q6r_ORSAro|rd>lb4U<4-mA`3TlFng6poNg-3gMa2=Jih;<(dPWcIr4#2 zA&*SV&C)g~>)K}n6xitdCY8y>FmArpb@SePGDwcbCRE10w-^*zU3a-;Qv8vLVEfRm zu`2w@mz_d4*SlQfe0A*z`LMj$aBxuSddT%e)|2I#8yFda?brk^#~wEp7hXElym;P2 z4E3-AOZ$xYz(|AbS~@De@H9iMhm_%#%JR|Y=|;e6%w5-A{lEKHjBTNPcQkurQXqkQ zZ^#~>XN9W~Ythwj^^dRpwy(S`G5!2zjK1`sQ*iwZZ~KU#;n(>acr#xKZy0VXzj|m7 zlm4M^-F2$3N6>#g8pt@fD=0oD7fHJA4u22e@hrxqZClGr=##qvQ-y{%&DFvM9(a#O z#Y&qEaN?_j-SvIoAg*M^bvqELbL>9)jXmHv%=O&``spMLG+|x)yRm8waivR=>`(S@ z`|h24P4hL6IVw#wdl(^xSobH5_8;-I5lj5GZ-8f=%To-!=&y2*mVHNc4!pG#>safn zmZ^CcX0Vu-xyF3`I^!k!O}AO|D}AnhL-iiIW)Md(_siEj#E(Dl0Hgmuq%1zZyn|lm z%{atS-O@`u#Blz6O1%)Z&4+ZvPbAp=SocxoICLA(8$Sa8FAJkY5~Ri{z9nMdGB^+> zvT#P+0e3h%eo&D~7^BdZ*2qD@^DRE&?%=PEs22kwjRdk~TL$tuyfJd?)>d=%vj<3} za*)HJms0r>rdy`9Q}_B+^G2w_kdFt~q&@{zI6| z#8g#A1KVRNvAz6itMk_$@bKut4u+ebiZQ7hgy^}W|M#2++73?bz$niY(9$W<#kAvC zxb^Q(U7BsnnzZYvFg-j8;NR@fF-F3}*hFAz8=lE5w;NyKVAw0qH@;w=q@Elj3V4wppZsSiofJi?DrDVRRv99#w(U`?~FjX;E-{``dUD!r0`s$x;<(P9w4 ztRC&1*k)v}0miXOo{?9mS#pKZt%S34f3(p^Z*TPKV_N2E*s&N`*A4cUN#d)5PSq`2 z@I_Kc47zOh7Ax@-zLJS3v2E+d9(jy)qxLL`n%*;iCF~$$&;j8Gwd?-2C1MDTpZ4!= zB6o$B{NTfQqA>;ga;!-4a*m90WWH3tz2lB`XuK5^+g`b{+g!Vb{$JEoY{J9xI`sLA z)96T)cNfS4spZ@L^d`Rb&WDE^xrO%eCG=dN_rq&7C%8U5i9F;XnRJbeL$AnLYa*cq z29r>{GVP{mGc#O+8fL=fB!tzf(l7J#6Z}xy1Jy{SzEs4T1?sB?Y0)Bx#N{t6UZIC1zo#S%i#^vzf94WSEk^ zQWjHigJ-Dmyw+$rnJ+gfFeK^emYsUd>~u;uc+Dckih&fA0+Buy^(x5_i+23P=KzxB z?a8Ez8>JufG{UPDJEXD229FSankZe;P8y0cgA66O{#s8h6@D;6AJE@}Bgv11q_Z`B z4$Gw)^O>gSSADwQr-ybS2km`H8~6>V4jPyS@pj#&k%LJuKi%;C?2_?p&_aC!(feZB z0B%5$zYqJf`t3)teovvJ7Ibt9K?`goS@W=8`UUL)L8e+w3liwSU(?!?|9(0%o`Zuw z$5^*Yw8OxYXdKcGqoDbfS5bv<0XUc+aZrJ^CS#TyW9ngtV?x*1wNfFlfiWfHW4tFmxS3i4mf3@(aEK%-EEDc+9CTM=q_Bho>np*lOkS5h`ndVazxt#( zb%a-gd8*KboDx6GHo!Y4ngW-@$K4=~ zd6F-#63ve%$fsSvIZhbB|JrAbYgf&A99*uG*aT>t!X=#{Bi2ryEL$)BoEI!N~dhK41L}x0dm^=PES4X^9C zIB2%=`Nf!5Xy7I_IxRimK&Le?4%((XaL!c3qA5i2`3GV8=;%4p=HFa%MYH`D1otp~ zi%9!{b`l=MS=~WpZFGSn+hvO`Dw&cmb=h5y*q80QAvG)xkeOuk|CmU!C*&p&yaZam zKC-0RokK_nZ=tThO^bbBCS7S&(M~NrrHI+?XcKX?n@U@ZAvjuZq6e8tN`Tpx&Eo?k zEL#TTa$0vJaH zK+<8{AUZ6?3KBQY_S@@U?KB@;LQNBW#yym(qVC=sY2N?AB;!Bnnqf`(`mu~Oe#PO0AtAK_ zULKG+au{iBA{j3~VX+NGJ1RIUO$nl>Z7&1cJoGRGwr=ap-j%U?@SQXZu1bPm^RdTt z{W|vk!@e3TYPCAP-B;X}K}jRVKRk5%Q)1Lj{IO#^k}xatknxadb!>FDdCY@+D=S+t zpLy)dLKKhasEc3*z|2)r^!7s}8<8fu@cK-1f~)4rp!i4;M@Ya^@kv5_5Bk&X;|IZX z{jC#AC9-8+x`F%IO96Z%Tqka&sZFPZ4Z1r~f+pPurDNRa^c@&UV?>K_%`quS&HPnZ zqa{7~GiYcx4aX1T^rvVmO|u(uGhFeh8nzx^(W2z7a@EWa$!r z`8ggrMtSHbv&}R;^l;7KSfoz?NAyZnp`_q4NG7IfDfR03q)H;0M&e2w09E)*CNPT0 zvT+US;5N-TG|EAtc!ZBVMqx_Ec!;0rWcgwzPA%K~2AYPqXn8*(QjSsIe7bgsF$aGS zp&h@_>=Wax*R%EWFvY{6So;Kp`~i*RRs7X^&(}f~u$YLWhyOc~+p#AAT33x0D6H*H zls2qd5+CX1|A-S2x^958#%iqI*Z6yxk{K>pJtOf2X?SAComs7rPE>hdZu!a#Tzt|r zpMJ{YWQ%b05Iz}&!Q?vs$`_B}}JK%Y6IwAnFk}ZAY$Mhq(r~>j8QR zy*BhbS7oPA#P928yNXH&Bhk(#A)@kiMNge)g9&)$%1-mewJiolCQ3Tb(fMtj4j+w| zhvZZ%)wqMi-YyTP^a@=Pl-?6y3P$1(Cucjn_yY|Lrb8^meevfU3S}1-xQ>MWMkO7U zp4{chHrWoLO5U|RZ>vLsLDB=S}_ z9!gLgrf{cN>s=IFg!{xt&7BBw<9$K|{NZR{fGle!}Ej;ilo; zd%MkzuU9DVwUGQd_1t0VX*@Z{#CLIFo*W#UMxw$&>VhnEC*to0;wG<7K6*s&C$Yom zj68L6goOYkbM0$47_~VNwwt-2jz4|Iy7Tv2^K2!sUs>%Pn4S&SZ=t@i1fubOBh+^W zur~XW*yADU3NcvsPT2U-$30+hfxdwv?%|>*$1%V@O!tq0eh3dI(m-c4to~M3S&Z;V zi&B1GIZ|58O@1As#jTEvDTY@~onyr9Bod2Jhfug-5TPGIdW*mKcuCh&;$7%ZLvrYABAL@`BNTejLP!u zGGEH|a41e?7K*@+E-W<9pL;$Siso0QR%L)nVl}o;$;&<>HKo1a zmsIPAsed3Kn3|M~>moOH&gq9a!57B^)+#G3j3;5TyTA`5BI4IuQHU^$i7p<@z{e=v z|Kf{vq>p(;nS4BdR(;gLdI_ep@UEdE4}~_DC9X~4wPnii&fTW@@X|)}2+8BaEEdo4 zxP>~;yfzj6862*yEbq*lSTk!bKwZqcUc1Z{z1w%!Sk#Z9V{yEBUlw+jl5Ves9JyJS=oktbbb|mx7WU0ZLWOzpqV>74s-{b|A2r#GSF_Ptde*<5AcaD?(0 zrYtsKm@cw!n&ee#82Y4T`IfF1c%mqb#^TW1RdbrjoGu4o=J91C9CWA zt?W@KVwDnet>6i>J>xWQoza$f?H83-X21G4{%@!sI^A?FAV<$xLK%NhE2{GS7Ml8YtAkJO=V_@hAG?v%)_uy{8e9 z#kGglr$u>MnB*EB<3_<qxpx6h`lY>%UmdMS z#X9%}z{KOz12(O$>33xmBMtg@0Q(1 zI8BkK0i_RqE-{u&z@4>i6O6!fqdD?m!8E0Y`VzOOb+k~OF zf?h%;`XB-ZppuJu)wd*1p(m5d6BG0Ya^fa4agCE|2R<9-Jx)u8t~y!Hu~;6ZF>$iT zg4)f6nR3x!j}9q8Bn5XE8SmfQX+HgYn*o&TM{JOlqPxS3qUPlA;RzNXT1E(iPp=+H&S&j|F*|SXkHhxbGkTUc{A}2ByFIGNVnPAFDCNnX*mt_R%TQ_%_Uw^p51cMGp zc9&}~IIn#9u=&aMLi6&=TuDv0tG3P`jDUmm&FnKN3EU&>#y!ORT^H(3RfOt%; z13AvM^VeRQY~Fu&n)0=NVencS%qF%+FYmsg);MhYAoE#r_sCv)=_#VQemJB-V?y2JQ({U)#SGW0DR9bv<$ zDu;|0aUv3NDX73{Tz(pZv^$2>f4cmiCi{cVx?%5y?6v9BMvY*x_DtgF`t-t*n2!5< zx0Zrv@k*P1E+(-va1S$PZ*l$L;}5o*U;Sp8L%Ox*^qHyVC%<#JIdY5{$9g4--*wuG z^MlM`H_-5M)6G|VPA6L2wE5GXWgZKQ{>ECUVs@uuU1TabzlEmnk1u`LT)p&*=F|(P zBb{AVhs@f}o}!DtdDsYUa4KaP0fB{7vx9^yQiqIe*I4lNm&`;mRg7&y8sf!e%O*T< z13t`xoQa$;bSJvt;dp!%W`*Bf7#;qc^Tuf8V~FFqj8YBB4h#;N7GoTJADung%uYHt zB3Z+YinC{qBPleCp08ob*0REsKivghwp#=ENjiCRz75cD8xiB~0N>1qV0LQfXczNi zF!5wU9BOXf;YH?6bU|}FL?)Xk+I}V;j5x&a)u0tr82skfo54`jf0_FE;FG21_kKJZ z`U!;*hv`&2l{Txv!-rc)1pf5r>&^AAH-o7vli(JL{NI0Ps(B3+1wI-hjwB|(;U-Js znxJs++-{ox$d&t#t}Hh%o|tPqbN9S7b@B0hTb1j(rt4y)(Ex7$2c;Vz!~Tw_B@sFd44{hNQZ;FI3rhuTiAf+G3K z10ZgCZI8Z2`UJWZo>2FqYwp0tpE}1SCX0ZFlwjoDWAi%AA<7gg5|knzADyCoF2W#H z_(46bmQ}`zCIBvR`bYP!=}wL`=U*m+U)*hDisJrOqrWGHNJ%`(SK zlQ#w*(<{G-7qL5kK{`RFZ)LJ zk-Vuc;BA^UdD=;g z6xH1VP#2{wcD#b>NTY?ft>Xw@0ji8x!;CQ|`SQ6cX`Y})V1ueuz`!;kSw;X(>%arKi1AB&M;B~8M(Pw+aeH=gWPu3^Ph5wz6r1aO`b8ck*wAF3(*`4cD2P_hbVeUpW;6Jtmx z5T@Rx^^g((2es=!8$U55B5V>ZKAB!h&+(e{gRN$UlkQkpb2|9|#@<~{U$(Xsv!Nxk z*&-F}6`wiD#gL01rC#pb-R9(L*Vott z%~4@6CSe0#z5TE`bz`G>0m%YSL47IH2H>V8%htw|5+s)ABTiaB{+M#Oztf!LNq-^&U<}>JeUt@BHgyC(kH0II$)~pyunX@s-Lmb4W=HP1zr9Vo zu@N|+w!S^a-^Mtw1njm}Zd9<2XEXLoJD7(T>rAvi{nf2zh{60v$LC?`E3J_uLZIbO z>C(YCGKD)FzWm#tJ!p<2`RC&t>Q32|xdd7dOdL zBP?^f%|HEv!_C`oa%xzl6)m606JO){hpaoD^o=nY8W2Je4ItsPo1xNa(yJSmFag(z z6TT&WLi9O$kuqYx`|ri&BEfkf>uieauQ!*6nqT~EyZM*@*Q4grO&+hA8ENi4xYqo4 zH|CoE`oB5T%yC_OIj(#3>eIP9)~eROKWL|DDGBEhJgh)|wPdptaD}CmNeNGv;}A15 z%(x|(Bp|rXU=r!ErFCmCU4c zUCx6+JLwrM+XN|cjd_{*YgK&4aj_II&?Pcyf>h@rV|0x9cj5R#v%o!>dBpOa z!-rTY?V^lmYkh_F0|$1911b3-Ep5JnVEss_%|{S}Gg3DoOvcGP_BNPC6pp_zFkM#- zvqo4zs$_`oU9O3!Cur185ouKD)){?E40rGDa`1|N8<;Rts1g|Es@&Dv_nXU~E%GYp zLW9s{NVP^06kL&Tqzyj&?%v@R2Zsp9=O$n%Qd%Isd1tA)adU;2X6GWUSPDga%Qws3 zEY!C3gc}!kpyfpr(jA+FF+*P;Mx*)@4msA>eRzdDSdKMuEyNd_>l(+QdyHeBvmQBx zWX|viyACsGLk^>(+KbnB`IL0~qgqSZZu)3Wpi|dh3 zJlk-hC~>m^MV|@8|4{xwr1^0y8e`FHzmJAOKI6s>bgr*%a!cl3^Pm3mmy8FWqTlyk z^UGg<*{mWKJ&jtSCl5LN=i!J2^oq}LkUz$pbmG{NU|>(77w+__1@;!cx{lu0`}dmv z<$wKGNX5dG;xufMyLPketUvwidd!TkzxFcMZ%-k4dlspQ&1Q)goX?&;%>#qubZe!3 zvt8JRv^lqE;=`Zlu6%_%e{QC^aE`-!bcnhsda^jdytaeT1iMmVIAKps<0cT zMDN85=#e@*4I@vS?p2PkH{c)-sj}F8m@q#-T@!mMa7gFL6FmIHjUZIMvR6`P)i_MT z@&Av#H|?=A$rAG-_dS!D+{r2~Ra|QCs_O1prI8^UV+hbUL4ZHm5Dfn3vv zj+220Oz_c0#x6gm#qLv_)120_U-CXwH;{aYVFO{{9LJq?YosL~M486`@WaRlA;*rY zz>$wBDo|7jV;AAZ1ScfK5!vjOMnw&L{+Q2h6uxpCjZ}_ldY`UB3LkhGqu$Ii9|>HM ztEu)vtewXh!~lQB4lo3wZRJ4R#l^Qnst_xm4BF)=*cG=DGbZ5rfp$O|n{B$U3GaSk z`c*D7rt#?$zWixuG6sYv>q_T$&ZX2v$?I?z{$=1TltP8NhH&x^srOdl!FRJ#xshRFYm$94w0u2dRHfA$@Iqh3+JEdNFZBaR{utD^CVs-Jd#_KC_p z>{IkNNzRRw^@Jc1?+`iQ7u75XV8>_$JY+J;WsK8%8y!#VM>f@Ia*iNSFlE#XTQ!LC0dDL4Yz(B)3ikb4UTv_!QHl=zz%LV zSbtZIyng#bJ>SDaY)u2F(HV>xd424*8Krg(lBiQ$G3hnsu;q=*O ztH^URc^sJ|vugMW?=b}hU%r-@E0D2*%qLrL1Q$#!fwAzdNFLkWK$tnj zPM2}7dSISj(u$M?nEFd7qX$7IvODC6jV3|}SEX1Z4F|g&8m_M}!zo{}1U5ajvp2OK zsZxv5K{8j~pbww@^nb9@Ecn572XY zNItidmnHXH8TNueO|Fv9bzsT;!m|lQ2~#*(n=7|0?^s=08Q~7171a0VScp4V=l)EH zz_BqFhnj2;xE%i4JuY=eb6W@}8#`?3{+$D9Kd*HA zfSMCU^B^W*WURxPKZe61^ua-?TGn~GL^wV%d=n`ef-5+He=q zh~REvDHKh+yt6H=@e~@^s!_NnjS%u_j{yA?yJ!lIpRn==IH~!~T8&ucQ#u7K_{QNe zNj0f_#LVz5x3C!t2k_hE#pm_qM`-ddr6nfsF38RtJ(FHL`&xR1r&#A$#rt5}I>I;~ zfg3 z)|Xn2Y9%)99*grDg&^L6X?z~hbDrZx;kmS>qA}i1+~M^?f5fe{+K5l{2c|2iU)+7@ z6&ydcyo{}jR0-2R>XMdk!N_edA5FB@cYbj?heqvD<;PEa$qNh;qW#9Tn_Sy-HGT5Q z#q@)pTu5)fzJONmZ2FxKj>f`nl>7J;7JAp}440lyaTlp4X{-Zk7S1Y(gVqg>8xL?z z&}*+9CZ5OX_U)?(CZT=p2@ic8LQ89ug(yx&88{C&Z~V25<>Q*d zI_l#oYS{R=kuAZEGS@9?*))c@KxqiI%U2pRJeCn_0zhmx#_Cx_aj}~t>bsJ z-^hc^7r`A<;6<`u5kAi?sHf~5+CRr8DjiqU@q!uTj7TF5?S+P6_Q{zi+Y={0-Bb-h zY3AL$j{LThD7ccUreD47_<;+3=PHfS8ky4g^g25M0ouY121>BJL=6Z_@qGSIQ;)s? zrD0Vz%qz=ToEm_`zNgC3Os^dIR>}Eu%KpX}8<-ygH#awxjvn*zLOI6(=r?}+saYIh z(6Max%`+C=f9NH>N-6U*(O$slekCi_)yAZ9F;xFLoRpkZO0KT zCD9JF2M-|hqJyN`@bhj(3acb43Q%sK6k2&yxOpynKh7@REf!Rd(U@6b#B1d}JCl@%ZJWS+V4lV@_18!|<}71?~#FaSt5P0#@+{eos=`eSU%=6fcY07sWMh@Zb81u@b$4r&kecVm29v(*9 zk%PzxIh`!8GXs*2T1A$SyvGDST2AIE?jecv(Fo~8rZ_gf!Gd#}J0D$fSUOWo0K8D% zNlJ7cmZq!8k}sB${~TBhQe$9_7pd<(;C>qhq&#`&QhFAwYEQZliChh~tU1#1_tJdn z9H@=Chd^!HJ>JxVUY{@Tmexz5;+N0AXJJMY0l@a9dGS_K2faMVjt-5p%Z9cA6a9D{ zEvS}1g}B{i#AZJlBPz{ZVG0H9qR4wLEb}OLP%~#8LXy$XpF4(&^aEG#aJ|L&RA?Hg z);`N7(A|409HnBl1*Ehz(KTgjlU9!`s$Ka2&F^{oR_|)G|J~dgOP^im72pT+>{ju( z70Apb_VCloUnXyybZF6^w{lhBnt;Mb2fpKxCk7R-mQD#LF+D!S)t`$F#c$fyDKp0= z=P{PeV~+Su&|#|qGR!4Qld+OzAobwLibT3O^jzMr&Y+d-P6{_rXUXN=HgPhA`vU&lL}+ zc}U>n8;{Z}T;mdv0h-4xGr>CX4IBB?L|UB#nb_>r{%am|nO=7*uot!s8ewgZ7T$AN zdx`HsvTpTw>NcHZdT)^RcNA?8H9oFfy~SOr|2F;n=O0m5&;+EOK6tQ%R_tTy#dh2y z{=xZuWv;l&{F7@3wpP%tqSAPU(AE;&0V_@>qyx@(u|Isgo^D*_n_&L8-6W@iBCxz}UQuhH8&hFH!nVc6}5B)_zD|2cdx^d!Thbks4vDlB7 zc7aD(GUyqPra>*1N>``$Xt%U)kN@db)6a*H95bWM29?eq@q(1}`DynxW#{u=Rie;A zLFEMLh#QZDAw7-((vP(2$1jkJpLyb-Vc+e-UPY2A1+@5ySL4DKrgUXNL%Tl(lkxZx z@yokfLta%7_>h;^LMr^UYs^!_{2HHM$BR1Z1YeQyLUoL7GWz@Q&SABk)^R|}ff{JQ zv`AFg4#jM%{w>g6kQZ{Be*6BQ8<>T%>@cs1eqVp*I0Y*5)UJ=8Lu=86$!UR}^~+!6 z6=({9Z*g4z{_;{fer7ryImO8`1i}s-anCTDjWGuANt7PB{R0~I_`KksXXV+RDBHA4 z;XD3*AFK!$-K6|e=Tz zk`wzif5O_%=(=JPqt-9ykAYqj1(JBx8DYd%S*?A8?%HQ|;e)FQ{6fflvJY~@M;zw_ z(rJuw;vc_)E2^fDXdKd&XXnP=H@eOQ#0{+DXpNsZaUeE0f?_?Z^`aZ@i(P>mx%0)a83GLEm`3gTE*?Y^pThA3TChYJWDDAb z2m{~cv9cA`b%J@Hw&PR?SaDl^p-7N}qfgT9G_Bbb!#VuM>-eyBL{c5uZ#<&kBl&(enKN5T_&dyP{J5lGoUb$M`*Uu*xbjxNZ)&ZB>j{-j~*@Y zsw5f#ub}yJ_VtO_G4=9lOCuVArE6NyoEVBylb(%wAdVRP{yWngjk1^FQ5K|(uOA%e z_=18!3NtdpDMI8he;vHkB-OBRp>uGZb^go{!p+Te{fYNYxoBNY@0^=VM|iYml;bLK zoXy%1`9dbYG+!YHa#`#lKpF2fmiu1cuj(Vsyf}MVmR~h5#kYuJQ-t=`RbG9wHTejGr4!n$$oUU2J&l}h#Nl#)&(|S7Unk7!zcF<{>`u`c6_AAr_VPB6}v2|jSggoPQyHVev4 zHJ*mhm`13%hT6gkGaeUg?n-*()cLcMqso*t+W8l5B5NiCt@!#`Gj4aA>CWx$FeA(1 z9cs@TR|n&(*-T?sq6<0wJs#-d(22&>4EJ2|*viMBEule%V3)=E&HG%gu0s1sd9xm0l4|Ss_OW27fu0EW~soL;a=B zjx+OFKx^tCM{xJe&2mrJH1`xvAoLhdV+g$K3(rn+)$AKZI6BHW>&5unDb#i;0{<9x5U#1s~f8 zPkdM>(oXprPc1qH2u?K)pe^M?5Em{|_CRbr1|hVS6hq5`KBYeeV7 z@5tf7^!@KlreFMKiMr(-jy%N2eR8KyA&6Dmkch>p?KaXId}p52u$trE)<62Yv*|}a zTVqbK!h9{Ec{a&)2@^5FHy*Pn7CwA6H7(jzD0Kq+hrctP?){rPRA%mEagi1CDYX`z z8)>8xl*098{#XXR?f=WrsW_3J)lt8)_?+eiK%bLh8_d#rMhs15$mJ0)HG}cVryc|I7dQFGEsw?yW=2dFRvXrx((D?;ekKG|K$d2MVuWSF`X20@`x8A z@1`TikH>hj&cLzF`ojB8pDaCqzfT!!Hc(O+W8OPO3Yq6qMHI-#Vut!w+l%#9<5#5y zH|#gqL^tUQ&>Wi#tJ>N6*E$}EJz3~0>I2m8F=+wmRSzzZ-Ru{!g4cHA*QTz&_B>Xq z7{H@PY`n={o#NN_8u4awP3ehWO@*6atS}AU%jiPSMV`wD`!!45UqtMu__f=e!R)cb z38ftbQL!omPNf8qqk6!5H9@aBOc!=x)HVu%g*dkL5*DD?EpFiRmEXp| zp#S{uhKDA2mUb|OM;ksMUf|DDa3ifRK;{cUjmHE&%{1X!a(%QeDCl81mK}dhT-)Q?90>16JSn%uD=`ZL28)=~Lj5u&>B5R60>OOY+6ln_=0!hAV zHu}P|*S&oAcTXTt^evCF(L=cN=q&_}L0cv;Ii5nSE4K^`kn#sd0P8J$$1Ok(>Ov@Z z{XR9myRUJ3RVCl;LycvUZ@)R*b#Ea)O(bVk3yE)@6J#JI1-1 z%n}}BDt^vGox6GOw$VDCsRR?H50=Kv<+}_-WXwY;x&OIS>Xc($Fq;SxIdxBS@ zhez|v*DzGdw3YMZX1LfT+97X-hbB3$F_?bWNfFO+o9i=_q-vpKyn0I_>m)MByu^@-Mc(8gOb< zvrGag{cAV5my)9-`?y2t)QQO`J0FJe5uPYph{#<|8TQ~u9}TqQuk>+6tFL(w0DsH> zSawg(f_`EB{GLwX#X>UeXLLF*M(!na$pMSFwupY2(kavK%8=U((|7<}(0H%N+h^y~ zsZ&!-8fj~E6RMj>_htkol2|wprqjOdAN~Eq>Du)r9)8+H5IL4L1VOAFJD|~iYwXqS zT)>~N!u}T@%%=bI|659*+<1a;g+7bE^qun@XJaEIFSv62feTJelQiu!=XqlI_dbNi zUq0e~S?*;-(y+9-lK%MnM>uNc%a!zArlsQY)l@pwUfuR}!EclJ%Dru>+JnU2KVJ~s zMtB;n9K{O|Y7_mEcJJWzItuS0US*;*J-3to=#OSN(sU#J*}q1}f;L(jUP=G`|L_|3 zh%s`Tr{tq`gswjXin=4O<2Z5|4@+LlRy##{S9g4?qf|8WMlZFN78e)ON5A?N_j|s= zc;)?FZVu)#6ibe?5{W|AHJ+84ZPrGt73zeG(CzZDyjrO1n!#lD_$uc_Y7=7oZ1~R-Zgf zH?CYsuZ*F!JIxUVA*~d~RgHMo&yrsO5@G%O*qoc-ODAZFt6^*=PSdY&L?Or21bkBD zj@R|_^!7wt%o(%--+PaF(teIU^D3VYL>xvyc$8n{AB|Nw7p11LOt~V=d~`zYk;Ql4 z8AdB?mLshm8>c@wI-K@%|4ktC34tKAD!u{`>ASd5>p+dGH{TvehmTIi=@ciG^YKVS zCwt5$`>j|YgWN1Eq$6#@-aM~h@i;=w4YWhEwsr7eWM9UJN4#C8?N{yf+XV>k_(w6} z-zHP5TbF0S&1Kv}=&8;&)i%)6{M#_yJavauSARPCn&dp+&gqOJXcX{IfA)*?KmE`D zH2wO*)%5rN_&o%6hgm52f-k~h1cM3@H@JRiXL}88VCJ>V6Nd-Zxrf&|zQVfo5Fn0^ z&ahZnrj8-tXJz7iQiX%lr;qbm@^ajHy0)^8c0AV$pv^kNT|nRe-Z|#RiyVi(MdCbt zvme@P+@H?fSR73r8kvnFe~%xf^z&alPPcA7 z={4Ox9HO>`S0m+czBc=kRpCc{^c#L!_(gDmQK%Ebz*0G)E*BbM2i~zec))JEsq`y9 zxQ(Y6e(8I6wONXo#<0^~dVi;5D;i^NJc`0tTzMxRpmpA3TBKfMsO6KXb^hk? zmb-Y!jyT=n-L4K+KU+yqzo3?1^m)boRKZ{iUTZro-8k~+d@`VbtNcdJM82-`kkfBJ zS>^gll;*gTcNztTFs)Be!CkTI*L(NxvKRQ^5f7y?Z*(TDmi^IV!=VJ>*yiTQ@WkXI z1(}6vE)->iJvjVEsgR>o1hf^X42CJaRNHNE$j4HaXjF>Qm#Kim2))E%7gMTCIA~sk zDI5d=6^m`?Y@)rQcFc%+`U4xlyGWryA*A&6!>O5}G|6r~LlSh*aNOZ&wH+lwL{7{T z;N5{dOyb=q;Es-hH)1Wd`5=7cxxq1BWIMnyUe!D!Q*F3}he|kUQYdL=DD@AK9$FA; zFY5BhGl%(LdnC=wx#-6oTX4o*`)AKpG)agGzoTg5n#AhMW`Biqb{)mMHY zsD}=I0i`3G@T!jgtiO~?Z({N2^=fB9r-66*wjJM?-MDKR=14ka776JN{KokBPo1#k z+se5wOisW0AinL(0o&^(-g;v$O(UGMZMj1q+6Mr|!odL)yOYkST-YZOJiPPfL^}B@ zM>FZK9B6&%(GFeO{;7P{VzsXNla>Rrm%;zx?{hB|FK%Au{zmtRUO9Fkz3~PwNOI4T zlNoWFA7mYt?7zx9fNKukLo4!#a_f2fe0`S1-sn=O)p4tlg$E&V%pZlxdo_?PMInS+cK-ifSmAx6$zGGtuP>>;esqKOQ9E`vO# z)cR;#9U$waKG`qx;fQJtusm}K`L#_HS0qM^VaDodw4o+g@sGmiC_u>PAn&AwHWgzl zkhZO$YM9LHk}tG-~nVzr^&&d^T{wK!64R z`UjX)w3K-TjS-O^?TRa6c>K+I4a!_m?&I7g?FHmc>RlK_+XdB&ujlu((Mj@bGw#q^ zZayMM_T))5a|Su6=$mZ9e2HH7 zJ~R~ zsm%8JSN>|ctKai~ja%xZ7+#|6BC=d+#^+o);_Wc;Z1NRO$}M|?glCsGjvk-PM}yF@ zbm4Wp_u2rAlP~5C^W8B7?at>fUc8k4^iTgZZ7eUQfAWw1D6Ry!fB!+cfA0={!!f5^ z-{4Ntb$*<+^}B^Sl_zm_*+8PlqRga?0j>p_NLQ~vU<~0X{w$}9n6uxy{fKx+xzo`# z#{`;-Ru)27Y>&7ZN7}4!mRt0Z)IsyxrGfsMfFay|q#6Zk{t8HVizk0=KXGMQPw9sh zySP!GwaZeWZ+(vWK1jldEL!kre87j{E8Vucgk%OHQec1+CVu!Cl}5MxdK7YllL`eq zjwS~VFp-|ZbL0g$fzMZCxW@KpA5>{b)3kb|Im#=8HGf49TrB3h_>JJ8;2N#T*Qlu| zOsq3=1t2bCtA7iV6$9eZuVX+E5jq$Y$3T5ETqis{tFwT#{DSdrx{(!4AvCBjWRcJI zBHtJ*?`>Y2awIRDd#PsVcy3Q>laZGu&u~BC-u-(#c(u*OuSY!(qNsvmTV9vPnyo?` zA-_lr-;PB`j}cJQ0B7f(zukFTgDZA*cYQ6lE{|?U&69559v1{UdDav5Rh%T(-aL4a zNeUx!pied!zhkQ_{$3!fZ|zt5vJ86tQJUry;8yhi?Da)^$^j!YD{o#^H5H;*GEg82uLZjFjPmw?e1V zGHv!4R^GU0k_Vn*>~RIVLsNL%J(AP zf?R1BwRXp^huoQe;lc(FC38}MIypk&-r>p{9|xP6;qey5d;kw`?>sIQMuCtX1Ry&1v$<~vt--BraqSUditUno2UcW5q2r==3Od|l za^D0wu|zn=f^$EU231$n00K!CQgoX!m`Tg>8(@T@-efwvGn}8Fi2G0;J<3NIjAfR4 z2M(YiIXS5Sj)n2gGW?heHdcND@$*p@(SbX_$n=k_6prNL}^oP@=WFKpVfY+NBogr`^x#n}m3 zCk<0IR5pSc&^gk@LS$}^MGCBH^0EnwLd3XqMW5_HfZ%oj0jOzI+ap&kLtmPw=YaWR zQ)`(%UQK9J=*Cqnxt{m>>du`(H^EMK*bn22{bWJ&to|uOy!_iY2h70Iw|uEgY?_pG z+~C*=f#Rqa#=AFBjGF)se!j-&-i-a3&D=#$9o*G$_I`^v(q8DwT7*jnyTu)YJ(d{Y zvv>HpP*51~!S{yJ+wabXaKb*ryH?|(d*X`4kaYanWyv;pW{Oh;9{f(F;P0|Jf8vuKU%~_;Nu0LJW-JrL6;KNVhX!D?kqG z2B?13H@^I-baQNxos~>ajE#3=5hr70Dz;nmrk}B#!w_dI${8~@Sy{ZrRT<~s@y&1g zd^UX)xGgI{0?z#OxU)h8Y-K1T9absO2;^o)NKiH~!&mcub%JCxS)Kra1ys+`v}) zmb-ja5wl~h{Cj?4m&wF967_LZ?1ON3XbM`2HI!Kgh3=_#Oxx2?d$LSbrK19@fy{j%Z2ACz! za!-=?tlhf1!)wgzXsoia$s8vpuv+I!mLNNkLtpIPDhJW#&|LIzc7~QZ^y zywd!WpQgX~^M9W%e)f6#-4Ea5I-dP#y*^H#)9xRm5_o`Dns>R(OF^P@&@Cpa>#S0T zSxC4Ky+r}hXavE(*9UE>R6r-@2FeQO zudGKdP&|IEz;a`iyBL|zPH_#-HbTa!aqduLGd!V4u(|p${nZbDOuINtT38IR(>}{H z$EQwm!o`P z8rFTQXb6XZH4f28R)j}9_zUCDcI16&#v4iituW&f#y+DRZxAF*Kk2Qb;jYG}ZO?lR z^{+eyjQH6*zELl*1#SI-_dbL_FypBJek0ztM~i5M6%!#_$=PDA3{v5cPmB<+x5>-dRK|i1u}m6J;mP z@Gud#a&TA;TC4+=m{$|Ts-yq6JAZ1fz+1KUL3>8fUT6qC6TT*XFXp%719P<;BErIN zjN#_}9+T%E&d;Lm2TTSurGZy)%-fh(;5HB1VI8vK`lFCFky$G9I5QYkHz=+YQOQ6R zR3C2hC~Cw=nP+%DrXvXCKhbAtwe4esxBnVeXh&3PX)_(dfJI>7V~sXl;0=v5;y;D} z(o>v`9~L(jJboV$=b*^T*gU~I+P1U#a z$I`}Z;sLc^T{8TcROL~COo+K9=XlpRJwRq&z5E2F6qG>rae^3_04dxwG>gUco-#Av zO4(+yI^rOM-^RvZx_57h69>rP%9UHgJ6@j*uypwL;%33S#POWb&r#H^B z5Ix5oM`#r0j!_|8o)M_A5iP@47&$IIIFN;#SFUWO2VAfmgAlcHagn3Y?(WAC3nnx^ z7K0XHEOHnGbEPm{`KYvMQ@Ht?kJr;pChS)1!NHX@JH5qSkhAQTGwVikGCw-Q$Y`!X zF&Cx+QzMal+htSDWXi6{{lE%(9JF`(*?r~UT zYAV_y5pFVw`fA(N>$~amtJ|ov^Kv$mta;R)-#9-WcO|(yPSes*q%PVvS>l_W4NaxQ_qy6MH{gzC|12tT-GZ-T~%U1Z$lX^p6 zny)nnXw-Z99&&rHpRu<6+f6(|qQkWGUYc()2cj4{Wufg$mq1LM?U$fI+Z$wY=H%ZU zN@=>I=Zlh8uk5nu^C%{dO7U=#D*nDqX?X6D>-bqG|8l{I)?bO56Qd<-Xi&FBHgUA2X9M2w~2 z+kJWEq=uVDvqradr5gEE_%?>X;oiOb>B1)$(l8HoSWatH03TUs1ag5W9SL-ZG-)iA z(DdcGMHf`T)34ytF61fmgC7+~cgDhvBLsf#tBUE zq>M^d<-qbc(=p5z11#m}rl%8jA8EOBC#9eK^d1*vZ>4wNJ(|v*^}!hy>wvpp7cFv5 zen7V_s1fMz&h6dwYj&Zp-(KS(iFM{SBk3)U$i4o$+FY3dCzJ|pGIP>W1JMNpq^MF? zuI{8C|LhT)z#MO71tHxdhsM(fXv!YusGVHcd=S z+>?0w?n2PuWP0vvz_;(I3yesU`4J|&isQvTqE<3k<&oq?I<4p5sOgFO8;z@n_@0!J zXk{}jJ^%nf07*naRQm$|`I58!%jcIarGNU*{`d61am;y!2aDc5b1bbqyq`Y$=_BUG z+;_-bqAv25xU+i)X_<3-^Un4+WSc=qXuTbvqQv~Mwkddte5O2YhaN@aur!Mo=gqv7 z%tpOJNbg0IC)T+Dxm zQ#*&zvK>WOJ_og2Zx!xI)Osw>5kcn@ZKe9#hUy~JaY`C48C*QMzv03@VDZ;Tt}z1h z6W{*XZ>__^C_wcgml#8Z#h5qZ6lc)W&!1X>YW4~5siDXlBJ{*Un{H*I(#nL14;~aI z^5#u|IDSWe2|$c#xW#Fwr_u@b@_9@TKJ**enBae&&yTAA&eeJ+2 zl=Q`V;}gE&m#~@vnJ+!WBjM4bP*VZU$6>|nHqmw=TGJ6U0;JapZw0HSvAW%@6aE<`{D=AG!$vIN4#@seoesaUdW)X8ru&$yyrYN{N%a zS1^B&asoeI|7C>g7+ZNY+B&Z4`}D85^#brsBA-t2X(6@jo)-SC_*;iaZac>;`xr|t zoIY7m>yrf>!Tia2mOV0xf6bii%4q>pkm40MkqPo3tYHSy_>`eA4;bZ?&?`K+^N_ju zE<%2)L6`so#kwP=^L0tppFofRfO>?OA>!4KpU0RR1D>)46KvlhzySS@3JP)}q;mx4 zP+>Q`_(`(@X|>-`rlOylI@~rB@#53L!QS-Af*QYdo;d6~m)XNr7GmG$y|=zPAIGAJ zz@yQ^HStPV*7+E}#{OmavUH%0JKS6>w%G|!z{Is6MH6Y9bqt7)%HImD={1=Dg;SOWe7FPfc zae7Hw9{G2S+vehLC4bfxtKP80G65@;70r>r7uoWnc7=i-9T}srnQXJTymn(b?mC>~ z#pB^&H2yehOi}WaN@0!&+2Y4Fg0O3s392t8vmm9isiF7a(NOy2v*i%rO-}JBfJeSE z6HqCZSOlP9z{sxlftrB6QoO#-`FSd?cPTC{4>9T8VCQ^<2{(M38-bq(s_f2*S5wf& zbN>Om=GVxG9qx!>)LiGn=395~vJ1-5oCW#%Xh9HONzBkBG0 zvz_$uWhO%8jRV7-2Tyn?;T}5yhq&(wfg!8E9d>DB!eoiSS1iED-Jv0TfBo@V zx`p=U%+z?=pwNE(*^{)qx`8U{JTKm%rGij07INTkvv|z;qyj6)&|F9{y4*l0`O}Xm z3G#S!XeupoOzHBCd*sPrIzPwpEoK9GC##dYFx1Je%w2fB{PQJqz^d14@Qa4r$G_Lh z!srXz0?gsIF+FQLX#u>neoZ-0^49XJgZ@{}Z!1Xo*_U|61!u&>H?#`qaz4Mbn||>nB~^3jZD~fI4iGqL?jxmqH!%RANmLstUChV)^Md2jfU&nxJy!!dQ z42_@ta*Mv3{nz2O^cr_}y#L-LuZEfjnb!_-A6q0O{`3hfUJ)mMY9exuH1NHX03r7n znf(S$o4ZalIZpE-CW$0dAM+JiQsk}W<3L^JiPT2|g^Nuf1&Mjw?$E3@fO2gJk9^^M zcN(ipNI}&;Qpk4m=1n#MZ=}NuQ)~$G@D6vVIsS)mp;DC(?c`gY=wx^OEA31lA1wtw zmyu(kUKu)%vC;~P8Bd{wnL_#^Z=4K~QSo9OGopBuhOdv5DMZ{spy;NVFbXjSS)Kc` zodU>=@3`(lKMU%&h?^SBL`WW(570h_SV^z*`s@-G z86$0^2bh{yrKQ-V7!>mX(ixYui@^kKlD2j7IFIqXGN1nS53ZyqKfH>T;;ZQlLPaNT z&PoEgekDe_EMKoGxO90leSG0jJftzsJty}Tm(ovv`GC2=0*~BLi{MQmK^RbF%^V0V zGH7_j`NGB3^qUJS>GaY4^gp~R&HV+JKIdgoHZ~3&Qkx7MyOcski*;B(!?sArrx#Y! zZ!bPf#}4e{t{qOPaKGNC7ayg=%xUIk-L#G+RK%b2!u)`S=?PQ6O)NFGFZ_y8u`_VT zr(=6I8O!r&#yrb)wLr9pTJCLJ>rZe0^EA3&)xTz4!#Q!QSrg?$p?`kqa{3ql;{Qm0 z{(t|!JhpO%&7BDZ^V{jh=a{OT9UvI_?ZI=?k-JJ9!` zBm0e->t;vrLZ$E<`N3BK42pzvYSG;gD*%_x56OO!nV^d;tCcX=s&Yj`W2cx@&fJWf6Vyzbm< zP)U&K_E#zawruqK=1i2!H%A`Ix%}FxXcwLSx_iH}RQzah%(a-%1_(CPVt6=@`}ft6mTwX z+q5s?(R*YwZ1Qub9n~NNZ`17i#*4g#sIb9TaZBHy{xLoyGvF%Q&^TLJ*+QwnYuSd; z_D0sj6%w*)e^kf#sE^W;2*z;3JVN{VW#lq!Jnk~D+P{C4H!OIhcRxVl2XrJk(~?Ft z1X}O!qagMv_xd@nJN^nMo#=1uFdTR6Z`_;=t!=!`{Wi_&u)k6f!)pLcWR9kkLn)vJ zugwGCnx<^BquU)2`A-*I%fFM-F3&DUF8=Pwn>yA7`E*B(KhjbvnG}2bPT}HTiO%xN zeK$GCnCcie#>o}$p^S~EAks-i!)5VzNS#K|JHsj5$J|}4@K<5v*2YRY_zK#ITrp@i zD}nQeDGXS|2;OWdBCM}-lz~w?&dvkrOOspM9Er03vNeTa(4#~1Z)VBl7NHq_8>~3p zWpQB?6&>>KQa<9f;cYyJSrBZZiI~p?D>}rOdTe=jlSv7ZN` zVaOGOERFgBDxfY{=21Vl@(=L{%az*?xf5nRy-LIIo){Zho;DM4Q7@@Ghtl`XlLu%Q znqOlaMV8L`MqUJX@#Wz|mc=NY2tq{=fPe>S$&|(H0#Lyu$D|OH9wHCs5ZbP8PN&~q zTMFUt>9aG5H32A@`M?)F`@}c$i}D2GrTJ1hVEgH3`uXmK4XA#g{Yc^$9lBvJ3+yR5 z^wqp$a!+~KF~4Z1-#=yxw-m7L%-**Q2=<$HrS9&bD3X5p>$UXx^^J6B-xOK`^tWq^ z>E`vv>FA*`1d4P>z_yFMP|aN)u}C(;`D6d)IjR@{_$QOceg~Up-DY?yMmQL`!LSorhq&f?+8hGL*gNm!sB<(_Y09_xuD>p47=_ZW}p{PP$+aM?F#- zC`JXX-nL})nVN}e*dd*kp^I^MLn9&r@x>nSMuxZe{)|sSVLZOV_$Wuhdc-rv_?S;H zdMbpaP3^{FY%3PcPA=Rf_YP+@5*2JLFFj22+lLv$-O$sw+f<(R_`^+(-TchF%D!9% zPuL=#sw0BT7x;1}9ckn>XEgZUd2=#dzjZYI#m_Hrba(*)iW|7lr4q!XTdL5GI^w-X zOb0v-@_>h$b^)41h^I!HQ7x@3GT-t#7d9ag)aYlu%6#GSKR;=0ve@tujDh53)*gr9 zIu}+ei;s9%W7(EYo>G?1Y=Q=O@)VO+{G_2kWeHd(uAVT7dpVg8EhDU5WdXCx2C@PM zVXf1qBYxO}nfT%voQC5C|CmNgpqh@Y`dAmE9IHpySBAPgg1?RriEaV(#ujWBd?9t` zdeEWpjo4}-Mx;3g$Feb`LwBy|MH{s{yV2AgRQi9?^asbT1g|ci}?c+ zG4I{v&cp%kQ?Sg;!CXezaC>jkFtps@b`iI&P%z@kTEDvhn`~u)8r>lv){_kATw|nL z2>wXGk8M+!XaioMpWq!Ig++eDp+PA{owvUdbD^8&FN({>gIx!{1`0< zmU4Xzn#Pa6e+-MihSRrLLx8caDm*it*4GWz8P;b;$pYQ^=#wdBKk+U5$P3mY;wc1h zeGv5vWtFl)nrM*y zwvWkhX%=+M+in`cgI%xw{G5ZRp%{6Iwj;$I?b?$Jp=Tl-NP&kvETZFKI{gzz776os zok|?`3m%g+Ju#MvhcVxz69&KVhKbIYQUklcxy@Dt!oq5Lr2s`}1g!=wr@L`#sQ{IM zUUwU&3$e#h@q4_V?IbeUBwsA=Jf7z|;At%?kbMz38_PzQ#b1shl zyV1DoT2f>(-gZ;#_p{^uPcO61F(;@Y_aB#wuBG|ovqlUu)fg6AiPWI;^%8z z*~SC1bX+qt!|B8;Bk9-?`U~K_Izba`ge}NM9T}iMkhOej9DBN#M2#m1?ugsn-7V18lI*QOp+F> zs7S@sywJ~nZG%mqn>RMoFMn|@ojiRYo#P>}5#GdbQ&XW;^oK=up-@p_ddz*mmuw|1 zoO8Gk&f}SLz(}=qTpbLr0uOI^dsY;^yY)bfkR--<-*nZBaUU}_uzq)-a0qLW-~IkM@y97 zHgc{}P8m+7%a0)4PuvL&3g3M@WctjE;W`~)bqwe-G zTB%~YL4_Mc!)Fc0=qM9tYLf|fVlMw#h$j`0ArKX#S)@?nYFL>o*r3a!1=>I(_O0gMVJ^SG1Z|Nd-CjkL%Yq(_ekO zn%+OPfMz+1IaW%SZ{0z&{0S3}`B)@WJn2N9(IG`u)&mAFUfM`Mxv-qhEzBhTv)GtU zPnI7dG`*SLdFwUq(zU|_R#TbDuCMsF677($1cSfo;Hx|LcOB2@yF1RWY^xJh<7v`s z+{}>j1l01%V}_b8_RqEa?Bo5JqFAUiX2fwr78Q!GBA^0CCf2m)4DC*@VSO?hpvVUz zxO3|^k22g#=g*!@KYMhK9mx$Qh+G*0Q{L+kBI{-Taj1 z5l9Lyyg#^(O~x5Vo&i$W=-6lGc-OGnd26ejI9TPbHt&I)M5B)_YxC28@*n+W@K3gx zsT#&}d1We&(3J6#D@HcfnDcOcaDq!kJ9VL(PYEb&3!2g=SbHQBw=T!k76e|I7yE!V zHAa8jNEC>Dd&fJh2e{@SrT5;RN;mE;Ky8RgHrhvw?IH&67Jao7oqqoEyn%S^RP^IB zGD16pigO*^vM0Y9KlQ;erICe?iZPx~oSC93LA>Yw+yc zagb9e+eld~g9-eDOo5Z4tV*zw!1Xm7DQDiFkFd-D-$r=>61|{NFCfqAC(=08LtN2bqC&X=K#+A3T0rDJfl7)O^)qh}vZbXSJV3+ewVgFJ0+p9s07q#qtCGZ zL&kcY>$o8~+O$|0H^+db=ebC zYIKvtfG?;yKja16$Q!=G==Ko>6(r0L`=e2WO7dbh*si5p=>VQhp`}A%pf9Dbu@HZ} zv`+kkyt0i_17ZHm1IG`@MSOgkwCHcT+E03`Yx;pHd#9PE}{ z5XG(lbC`9Dg2|fiRG|<^8nih~ek^ig<9RT?Mh4DU(pTDL4wcc3nWM5;#KeDvrn_&xF z$2)NB7Y(tlL|q`oVDzWnTi z;z_Gz*I%do?Y(EVO*boLxdRjgIq1X*#jDi15s58012eT+;L-XtO|`@S*Z;lU>= zaV_2bus5irFaiDzEp%@R%oJX)HKBlWYK zG~oa&^STTxzEf0ib5<%a^q7GY`3cluUp>yQJtcep!7>%c!Da-lxe@L+0c?O#Cthim zOrAXC<0{bbF2vncU}ktxbU2-VeK37;ah=O$xpba_pBUXqZ=9Kd9us921Nk^^<|J#- zMYF_1T3M6e0LS%?9~n-+{fv7Qx&LqsLE_Bh7LwB`8WME2m6SU%w`Q@}k}ZE$#Yh)^ zOsu@W=Oj}2D_j`vIq;25j&Sp$^U)*IF>o5E4Lk-z(J{GGQ9E#(#S8bqpt5=T#6Vg^ zi|{TDYnT!C0cwJW=7&kI$2CZP)ClbKV4hxid7cq!)Yvo@+yn@#Wty$bqP6dtq`(_4@Di{VI9g8Hjr0`CII^ zseMHgWwN)Zz9Q9b^w|8M{bpf)ZsOi`J42s%BOaIXwRm3RWG3(gtqj|_ZCUMyI(dnz zSJE48Se|jmJ*zbLdJJm>TwloactaM-;4ZU{7?*%;vJD#c1Zx~yN?a@9i=g9-)*EaF z!BKidAG5W+fIu-X#$rKay!`xBV;`ut(+WqQ#t~?QK#E8vMtm5HqaCEnI4h2I*?-Y3 zRU*&v&3$tVu-zVmc#VO$dfXYS6W*fowOZRewqpxnVw3SiN#aB3W3K4W&ymmxp>JvB ziGiC!3KI?YZxf&oM#N{C!0Z8VBF8JksHR-Hd?`*4%+Jp8paOR%HU-kAo9!ibV$9=6 zfR=hy`N(`4oj4UEM<3-8q*^>-jk-W!79LtxGrZ_IEPvyUA0pjiX1az()AGC(=;~s_UmU2I%49_y&vM6KQ_oL|Wjka5v9aJo;v* z31Qs|=UnW{J1lez4#(5F2=`ba`w($V*#`^^6JCDgC1`fA8(Iqaz4J@$;SgvNx5^KW z<>E@ipYhk9*^ny)Jksn{N>GRy_fnBq<93nkk?DXd@ZxKNCSSW+?HXbC@krV_iW*xR z<2h{#_u$XAUHLE%O_01vJbEH|gO2pQ=Qtj3C`^-e%p)=zSOX?7jT;(}k8+VuHHf4) zO#Yd#F~&!tv4d>@Ca7kleCVS#;NUi9PorC*Z+wGL2jO?{+HqGq)GVsowlv><~_v_WkaY`{>* zae7K1PAi08E&KcpL}8+y8DXt^T1DV=h#RK#0pmV)K|i*RFp=jG5ZZBV1aC%6^PsJL z(&qXwry^IGmyd82of^URp$)T9ALZG8(6(%wRoL%3Ld`-s8ll69>tN^}Axxj|Lvs%)nI48HEE$_=XO4IjcYWB2R(1&I!4Q5fkd>il<`D3I(7{ z$wGJ@^B*8IC52(JuN^}^wMN<^>5z$dCHE{Nkpk2727%Z?ir`+qhHk?}AavS(2VYw* z=Wf3*a^)zSh`PX~XGs04BhO7TKZdn29amg`&2fMIcR!p>v-Hi=j15$)$YU$4dF@yf z;{wQZKaG(WDLa-NJTSm`OMQt*D0gE5PZ;YAApDP!pkyh>9jLwx;JoI1fW;uA>*L2r zvAK+Sf(gmo+z`i$v%rw(iAKuOkOgS?{3Q4Zfg=Z|(!}H}kArYDm?Lj@@1o92DipdM zKgO=;1X=+*^$y0Is7x=o4G#s5Y7R^y%shFL%Fk%`=n<0yG$!Zgr_!N=+^IOGmLlf*A{$c(DWTzx=RPJL@4mH5W=*Xn4iAb{b<=;Iy(9WH{lXbt@K%^ntD~5u>*s`0sAK}{Pq}>yQZ_V9Am^dd1!EOJC57@CF{?Z zh3%sg8$T=TUJj$8uu1=V_u&$K?QGyW@U&?_BAdd)5R;7k3&UxS`xfp!UP}jOC(yj! zO1GC**-V;cEJ2H`Ecnb1t{$cCbe;nhhOBTDkh%{*Ij2q!QG0_i)gFyF8?25K*o1b`JjFEb!M zc<>Ox)MUDG_49P^?t^sb@Eqe}-Y_)YEQoGLW&)f#=W?rjH1P)?{t=>&sR&&`xgK;T zXkhZ+@mxPqoV1!H3OJkvd5n3B$I{G}5rp6)s0j_4c>)(aHx`|E4KV{9Kxm;bCB|g< z-{3_81tmM&qqxS|;Z+2R3-D~jy;&J`wDE<$Q1K~t;)vquMJzcWR1NB`@A@*w;NKRL z{TX(D-#9lG3(07swmIV}@#Waam*VGZkguIaXtXt*KD)fk1aXIX)=WBiVk{&*Q+?URt z9^-fvFO(kayz(56;(#CP2k=}Ng&jV!35wP6^?qeA7uE~Y1+$c3L2Y^1eq&Pq!c@N* zgy=uW#@t?cG!WIXBS+@boh!F#JIpCJ9-u+Gj{jIJ2yH5%0Z7}QUzq0(?|t<3K8nIT znDJr_jotNi9#)}|#3>;*isBe8?EBb?^Ktv_Jm<~@s%D{CZI=6^$wj+}c1)oQFKzzw zQy_^@kQ|Qve=0;C2ck9L>orQAxbd+=c&5Kvp}%_ga4~)M*%S%^Gt_mobV?hspuFnH zx}`u&Qx{CJXu@q6Rht*#4Ykf?6a3n_XyC0Cl-&`K|42jOna2$~jXL8wrfbaGNF#33 zD?v|637>_KoR&hUWF5*T^Q}F=`9^u-h zF9iX1o5K5uLKU7GE(eikEy7yO69e7c@;>}U?qxO~C*WZ}3MRfLZ#r4m2dp?=Ibq(# z;#0czy`+H>&Jp>IAD{Bo2aNa|aCn%OYQhgk+pi%J{uwg(4O}Vbeyc;J#+G5Te=C&u z0zZOH__K|e{h{=2(G95VXSte3YA0@zL6@#_^z-6k8e@HZ9BJ~%1aAYNd3*8VJUq zM|$>iS*V!H9Iuwqk6%PwV%IAOv9?!3k^XapwrrzPyb-kM2PY8vkEwbNvQ2D*fm;g3 zy?5>`i}Vu#o$H*M$oc9DY1j{=M8=NF*w}RROD0KpTVeEJIP|mHMb+aw#xW{R&NA1a zPNI0Q1C8CC^|XMTXMzou*a)(}GYWrw%ozCl(RiEYes<+cYI*xGi~Wl0mPX)3+>ti? z+kKIV)?eQ2d*n@igU3Gcy@*%Szev1g8vmyyss&rE4Nfpye9aR{$G47k730}o>E&`Z z!G%uHDg=Y)Y>(H;vAU5nNxhjz@ob#%2rangw^s^2L1^t!a~X4k%dx?_VxDJeo&1ja z;XD^;>!4$XS7lIc2aqf}06{ej5@udxO9%$X8EvN!?9M?6DKC30t~T8-bK4n!6nThVy%z3742jS_|%w&4=&7pMqG~!cs2@)?r zPjRGhoDRUW*}w*TfQ9&+l$jQJjD`Vk?)0lUbo3}MpUw?)6i{tVjs$V>r5d14I5sFD zcW%vF2#Jny%4G*)%gGm6kAw5xyTj>~WAkVsIRWzlhQYWT)rOs=*QikwxrN^t-0q0v ztRjF;jLhO!>p}zh($da>Tp{pjXJ!k)@SdQiQ)z*HEmq^P$i6|-J=}hS5q%w`ZD4=H zjeT774O9{b2HU3#3wMCdo^`kIAP*QUvH;pjN6^4N`}%k~NIyYO7xl`nzyYE-!!HI> z>Ow3IXui^O!{o`6-FV>T!#5YuJenq6Hz{)UwCdDq>bDLYc2Z~0jii74U(Ka|_7|vN z)8CEr^4#ydyDz=ZJ&X?eA+QV%`qNT4apKj1^bh~eWcm+3SxUb~mD@YFK74&Tefa(y z3lOis$Z3w|66vv~@z1XEYc@@jm2Ttcq(0kZ;_IqEQj}JW18d9VNkL9%Oxhxhy1=)Y zFn}(Ebt)LxJKj8R%mVqX-da zXQt!l++~o)AT8N(As=%AXyp6hTo5y!dqxJW5AC*@9qxu%=g9LiPZ!29PG+j6M$=A7 zq|pE}q53!FhIfuOV|E~ z-jYdgzA+dA7VDKqRpNE_y0Hke!5cW0?;v2G;VKt@l+w~0Zw{wdPfq7}nHG4Iv1(n3 zXp~OkVIvpI$EKh$74s-JD&*06BM+u8>b}G@e(4LljDTUJ`XAfK zL*>VG+Fsl4zX|-w1LI1tmHU&pFn?|;egD1l={gIFsqyW!cyu~l`RtR>#I;VT^)k+H z3dz=iLkAEldb7TDihI-%w)^U@CvmpWHXrtfR`387(e7f4yKzV9n;OlOsGPJL12Oh7 zR#Rr?xee+^B~XY+P0xJ`^IZRV&*F9rZs6dT^V@X*aO|oKvFX2wMy1EG6)tYU+r2xt z)Aj3%X@1{X`YVNI_8XvLwmB}yHFR;T**Uj&d$~x`m`A3)wp-U4*3I}49%0mdj~XsM zr0xZt@$AY?@hNI?O#BM2pv&`v6|cRdrb&K z;mM=S4<5ir+__G>X05TXFQJT(+n~bQ+(+}3ann&~n-_Zdh{CN~KDMbqkpu4J+| z$|nwb_%7*h0JQ{PIX^rezsSR-zrD%mz)O*6JnO%HN%1jz|* z+mnK~8BQQf(;r0aB1xx^tn-VgAGAw1`VSo%K&x?xeqbvtA*mc1+NAHCLhitT3~r3c zg-lJpB>mYh*cZ&x@4Wri7@Ikpyg#u*f4hmy0eQ%4lk^KYa+9sC=B4;SgpYC-$CM+S zI(_>)hrnlp2-$^Kk&W> zvx$Ba>r?T&0y=mV{|mo0GX<=)%D1-PFQicb8u&`5<=>{^+S2lJNJU)6X@b1*Q~P4a zz*U5a+;qh8b2R+DyOM!mf^p6_JdPj9$_CbnCdJ?wZOwn_D>=Hy^_bn;c~vIP)&HMGWJOdoE`Ly;k@gG_Xzh0P9gLg<)Y7= zXoPFP`$FMjT__!p(7s6y$jfr?AZFm!0wegl1tY}>J zz=W%HxQ$euDGn9Rq&i)hB(5QLE;o6|WRv)OejL@|kmlPNOUsGS2vUC1N+y{rF0$oO zwOtqbiF=G9ePoj_r%8W!gft*59f%9v)xhL_1GI0(*qMw5Xl0=``%iki&;W}{?qQ`; zeIqXD#e~U5B~Nw~Xd^I)=&%7fAo~@65RD1*QQmxs(na0Su!7V)A+wlG{TPDGW4;2W zfEQB6;e=1BRvusPb}<@pKwtmZ%_I(WB61>fI6)X8UYcj+K;Im~v)ykz3;*j2lM~DC z>oL(Ow-Oh1`i1HPy!5aWRj=3ch1qQ}^%UHmXrBW0;@-BTO#92kAdbBAvk#y_(!=HU z=i-L{_94nPoHV@m!B{%`#xWL4J1l-2Txq}b*is3t5PNVk)B)B$xteItxP@^+Kfv)X zluBa3aGonB=9mO%EQ{P{*)L?e`qz3J3n!Er|M2(5LzDa=7eG%>4|7~`G_lr{Lg0fM z$l`^)xMj(EsT`Ev|ISc4e0Y|l8k>=pqesSgQ4RpofP$EmqJN9TiT}LD2#u(TSbOg8 zf<*Y2z?!fO62V{eC&n(}TY$aM8C3o1x7)8^8`#eTzrYYKi?xj?F!GTuH_fab>`k#S zX54U5U10Z;12Bw{)dh<~dwQ zrE)B`zSsg7og$W?CT}&W#y6sASTK%kGIlqDVTAy2y8KzaokZ&LSaS$DaXC5G+gF{f zxbn1xz+;@Jk&nM}3<360E+;?0E5bZzgxb+C5-abIQ=s7;eri$~n~O7#U%IGXV`qGw zrxSfSbCdgkcG;lZKmxFYG=2np#FxP4xr`j`Np6p)smPBm5ny3yoV5j}UrhOgHPRWr zC2NAioK^tULQ?RiAfjp@x$yVma`RToSkKplEuC8$U+=J^=lbM-+?fe zNu-ye+kcGHzc~Mkz6Bi1)V@SvMerIl@F!l;WmzEw3T|A-Kz=ew9cR%qjxfjmL}L*} z-GBk6TVWJ>RAGbtn#Y;Au9Gs@PA5*XN$bOUMCdP@!c27*-{<=fSwrV37zN}xAbSYN zP+=;N+YCO<-+Z&oDk%}kBYusS9$gMSzJ#eP@YU*Ed4jvLjvty&L+b}*?0jYiX0$WI5QvOOEqsG0dQS;$wi$+u4Yw!g(da7{^`I`t|s9tt+IuR#+r)*>HqvJompBT&NqrtqZ=Rn` zuN-&oPR>vvt*3C=sjnrwEhop^M?7Hgt6y((|0JijXlHXQy1k74B*Jo!M%y=A&!aT? z6YZ=Jve`kK zRj|6Vy~^WFLu~M=XaTN?hJZBU8GGu|PBhFizc6h8f!nlyX_%-=8+*+! zznOmK2dKt$#*M}cOCeHe>C@O7OGdyc)h^S|uM6Od9YK*lQD!~hhII)Q^>8g1>9prG z2Qydl9l?~v3a9Xvc`=>h|PukXztYXL^^ng(?s+mRx#%gbzLBpk|bJNC#^dAC0bWN6`*MlD$F=Btn2&hfJJcfK=~=QqS_Kck3elsO4gQO2J9 zla^}=H)lMu?Y*wktWktFZIX|^9E-Ux4-uz4gb||0G+vFR8z2aDymHNyU_-PM_%+y` zTDSVpmV>Bke0%F?H+YLz%GNnt_>e#G#qS|6ZD06glQC9>IQk#P+dG$^uy#b5aDgiY zoxhnyEmFqO&NaHQbeGe*!+-T-E+Oa8`sDadRLm0`kD24%Lj`|3Xya{JGtdakN17>d zO3KABMNUE{8F0D4|N15aI>&|}I?nFrv7;_N(I#X!lxhJjwH8+x485Nv-;3f4$t*d^ z6zJ?sBoqRWns3I7qzc-UP|tC9klKXfV@yEMX58K3WoR>nmgFRTh4AVwKB%7!Mh3py;o)!4UKIk04p?> zH6|a4qt#BW7Z%32Je7QL=K>y7gAeUVdm#{_VuEKm z#j!6FN_tm#nd!#uZ5B&gsIv~SJ2}j8Zzl1BB+%Jc)R<_F*v;df8YG?PHtp&rowobA ziF`wVW=>Dq$hW6**<#(iZJdpzuo-#(4YB-9l7;VR2*jbaQ&u^Ty3+hSeDq{(M%n9W z{o3pMtO&ZHbM@@@3+$lVTR6|6+b7J?y4UCx{>HgC-pEG$ts$|9@5K+d+bFbCMr=+1 zN49faRSb-*nPST5-6=C1H#U7v?4t|DZuAb$tjFjl6$a2-0c*Va^FP;N+zJWY?MnzK z4Oer~!C6`kwsJ4L78iwi)1?f``eQitmOkWm{Fc4Ji4+?k zl6`MAx;2H4)`C<+^wRXY+kWk^YR_N(R*#^v_mAyB5c7Z@KcT3=z|SH&9v@@k5eAnS&i5+p&tgq9tv`mI|DCX{51W=U;H~3n0Fc1)>v#lW>V*7Sf-n!c2WOq zChS&?s~buebwd_{5C7HgvpcMfi)Wdsr%+rW*?@wz52 z-yS@cUO9Q1eBe$iXRGiWX=~*{@FlZ`Mw0jg!;U63T?S_qX*fs72sJM&bkGtu3R~eP z_c7CMJ<6=mPT>NIE4;L~ovz;CbOMd}FmsYK9E+P|E?_k=PWy+5yD(sE3Scza6>wbq z%)7Dk+~e5MEZmr*y*s7xSY>2&!3jkEIAfC^y>H*#O~3f%TDp3Txf%1d*SRzC!w<&O z0vitYGveFNsD-Rslk>n$XBILDG%sG-O+Wn69X4wbaLpelEv!<)DK zZRi@7zd=<#aoS%;v4p4L?eeR5`eJZaAKkrE2|*fwaI`%trhY-Kfd~s;3Z!dY2q-eH z)|qbLr@QR0{by{*ELe!Gr?n>!)6V(|$9%UC-f|Du$dR-kjo#x&kJ0AQ4&e;jEO)0) zpysDA(M@^VmanIqNFQa1yTLetGe~6|W>bEMI%us%#8*;7WMriDtcO0pXnMS-Ym~uC zjl#81NKjKR3;m^O9kE?HpA~nT`fi;3r(Wj`^erBdQR8rk0n%~r-u+wrZon@UmpZt@ zVGmyAq3dR{p~7d>3YUjSvR+a z(tZ|2Y8bilfB4`Y*HF3nL`MaM$WLsI2_|wr8y0Jpm`61bSOh9RBYO_hZWA@H0u4tm zi8kzWkp4oDN-z3wBa?MZSdG7x3G&v%;A63V%8w%1Y4oMA)8`9m1|s{CY_q)2ZlNRr;qSQ9cQF`WojC1R3z%8K!vbBjCeTm;ZFrPKy#UF|) z^27~qrr&9JbAyqY3bC}pF5FdwXJZ@e_&Jefz#%p@05xT5g2fu)<=jlXS@c}Jwvj&i z%?9uc@(fao0Bk^$zua$lofm|B?fBez;kX@wa8@THy^L18>C}^eAr+zHZi`O zzW2dgdhN9_8nWuh&XUcWyzs|@F>j*liwb@B&QALA&zZHYVnIZ_e` z@RPMHtw=G6ienzGD1D(aA9c8Nc{hD_d7XvN2E2GwVl92=?df#x>_{48!5*2)uBRrK zQ}#-`2wF*#neB0hUw*Wme)17QSr;d0ejY!Z((iqLUpjoyBPH}I2zxUPOUJT*aT8ey zTKztof-%Vdw`=yq2(#9vj_HMHxhu=hm%vQ&nXr{$C-xV$1^GS`w0`9$Z0$^pr?M9H zrUV3xfrUUT_4=9z7oIf`*!q3NREZN=7z3w&TvCd}!oZd$?uBxcpNA1PX_N z)l++bhM#RXys*}=OzPYG8=CBeCGY#17#>fP%%-kg+)Y3F*%LO9 z?sJLqVIBaRgl%@a$+M_~T`cFslo7SCuU{*XPf3(zsbIjd{Mxmf>7W0vf0kZ5H_e9C z3=>W61xDg)J=IvB<5z^oP2QKVPFpB3w*iESUrB7KT#*+1BNPG(wgWCII=-fpN$9S# zUJ@Vi>t|)e9qpD%`QZK{npRiS&v=;a$g#s{)$)>gXgUotQS~U#EXQ#c5L(SsZxxUm zCr5{tmP2s5!sL|4tkb;*Ptw&Z+%31m@z43i^n@MSfBfGZr#>%mzt0*IV4o$TM#H3| zqujRpDU;mfg9(Xv_+rl~Gu~n{V0IMP3Z4-W#4v|a05QQr!jls2BwxO~lYaQu%V-8F z3`CH+{V4s{s|V8u-(7ucQx8ar~0Wjv8Qb-*t|y`>&Z(6Vx5j<1#a=>2D8G zCZ-sRBD*M0ETtCaP{N|5E4ax1?9_^>b)mZb3Q|#Yx9z&KPbJn9ig)0*ymLK+v$kKM z66AuUfnsLkcoL^;u&k~;P8%yvxE_F$I|%58>GMY@|AkjxNoQCY?ovq<Hm%e`1l@F6GBTeMqXp#q0oI^*U{{b(Xu2IGw8aNNsgvHS@4Q=*iH_&6m zo8*wtexgc;#l2Kdxr>cwwC7qqWRk^eP4VwshIM$c}X_kii z6_I7(+!K6YLaDvLrzDZ}5^VsQyh^@Feh;D}8UeT>tSOsF$h5SWs3r#e>PWBfZo_oF zpUq}w!n6xWzqY#pdFrR)N|Mcg7(UrYo2*p-if`ZgJg2b@%4-%qau;7ZTDG{=x3*0i zK0d-h7W+TScY|9d-BG&i`iIrR2gZ8eWo(cKF~E%# zCH*H*Vd6o&u`Cx4i$rH^quEc5xxs5$9@oyp-ntTxIG7S*Tp~*5MRd)d_=4#P?hzh>9DqOKnD^$d?!wPGg@6|7R4AhqGy^!0 zWI0qC{7Pbc)5>pSF|6NIK>Z~Icjj4pKkzrTIwoBHkzsjht~)qvh_fc2&w4XYRG_sS*7eH4GA z^!2Be3evyPBzuuZ9WjnVh>V&gPKN&Rmv`xl$I2}C3&&&#FihHR{R`84ZO2MwJbW-v z{=?tTm)j4Qc_`t0j4Lim+55#JKX3zUG$(4~nQY+XTf5LLq$Ym$kG$&pxf0{Myb!rl zzW43%^6hUc@xb8+I4d0;T113lcndl|_;3eW7I@6VF`0*4xDNKpi!uV!!NROlaK zpdR4L!JX@+{Po|gmjCU4zfoR(VWIrtw@;K2XpORSg+@u%(&?sMiLM2)AEFD}wFNYD z-Z%>KW@fl1%se&7X52$W5AMd;@HO8dmX^znhY*U^(@6u>J++-^2m}E3i7Qo2(m|uLPl9uxE z2cK}N_(`ld+NI!4{d1t7K0X8P30`nM%)*W+)jsiDY zKK$@D`h||d)Z?)hu14>=;&KfV<$;wfLPDojEQ4A@Sq8vBdt8OX8j!kc{4Bf(5k6>+ zde%#3!Du`j!E&g4bQh^Wn1O?+nK^~dBRli;JNL@3-+sU&ap%i%)=u_$an!W^R=d0# zb;14m-DMaP+?3!-yR<);UoG!`_^@2MJkHGr>o-UaM3N`IATtoNNr16=cdagI4qqkW2oPY3lGE#dW?rLEsfcGj2@`_^E}o!d4!G4dfcRlI_=~= zVLQJ;R8!a;&&C2?+d;3XnK1uZE1fzMl;D12`ocv0nN$N*%dZWeIynOelftW$od{7{V6r;iM&S)l9UIh*xQ**%=OwkT6_ZXU|1`7MIpw0wNs*^VRf? zuc>8GQCUR($;dc)48|=|$;+sf+D4#cl@p2?1W?qoA6K!(VZ;WP_*&ME-SkX{+z5hc zBGvfm+5N3x4ZLlnYg%^vTP{GdM|WYXtxZ++dzP;h_onbHu@a^gPb+_`8(h=pn&^vT zhs$qnJVwR;W;uUpE|@pT0B}I(FHAEwHLim`qWv;C>(m30vuM8zmR^clx$O-&z!k6u zMxeA0^iL!iCP1aPAGrG0L~FSI8Lzhc3X$Imrz`uM9i)p*x^QFxKnM{&pou&La=hg39u)IEW3 zG8{SV%e?vM;~-4`npTt@4wG~I_3Kz7zyp|o*ROL+^Py6bsoU_{3uC;4F&Nj4CD*iq zRN{&&XyC{FfjB$>egA#%eCpvR!d>WWJ;wO)@+;%z@@3}+a?f}cb{Wotc~MEw)BQT;P*%aM<7K2T$I8QnWv)GPP2H14 z%3ka}lu$o;?J^fZk5QPpwI*|OxJ+@~dX(!bi$hZ|Pq`{$xx);II-v~A$v0ullY=n7 zk-tm`cXS4;!4e?#{GTM~*VI=qfZSY0PM?v=OfGPK^*lWxP3X(KeDxH5pD|dJ8cU(t z!=wFUB{!yPt3KVYVNVQyVgPZPuqV_+ByeE#wrA~gU2=MC6|{bP0>6~Qaj&5mq;$=2 z?Q(T!VPP0)!^QHQ@63imd3YAl?@c?pN|T-&5hwfm4|dAmzP(spJg&Z5HdaalF=QzD zV1Wu#n`5MCdNpao85_CbT7L7^PWk)aY?doWVWJ@Iv9h#L{^92fNT(exFLABPg^E=B z4Z~NfxJ*My^f%vHEbrY|DzBV55q=LJ%$GONNp}n-iI-3w9rDazQvGZeZ^Jr8^B*p278B=3i?fcBV9&3zA_D0nHzro;b!^Z-L-Q0 z_*VJLpPVh%&a+@*B4Ct<%$y-|rl>@>39R|5-x`+lTexbp$g6chj+rBs7E&T{h10k( zHvHpouf67H*~l!&Lp;*2@mt8Eobj*oYE3oEoLNNxaS$-U%2=uVHC`IIyYP7w{ke&w zWoUYw7i4K$NDzA4!5Lkqdq_?J6={HgB}ypp?FN?!?)iq zODN|~Z`EAp*F~}Gq-HAXE2myq5{z;+W#OX`Iw0m%T$WdM zY7Y@-kW84OpDJNAfuxeJJi0kJiXx$njYq6mQu;`>31Ry1Mqk8lWo5UlAidy2a6@cb z9786@CSXvo0U@%t7i!c_-)~R`YJOao3=VQw%#L6f)i_qpD7v$K^e)$mSx(VbDm{Gj z&=h23+WPbgX+FHch*04obt!O^(6bYOz1Kuqf*Pj}tgbT*6)wseplFlfnbEXrlJ2zE z-wGS?CAiO+b&sq z9*k&S^2Afg1J{4*BX_+lBXJAy@hxuRY_j0=uw2q(y$=0eXLkK6gKdvCW1UAECCsu3 z>0P*XQfxebq&BYI1wA#->J*b1$RtEuact9=d^E;3r3A2yH^nAg(VAvlWAh7M+lmam ze7%`9Icwpatu=%i9&?p8qOv6? zp2n;{aYIVSXq6sybY12l$zT5ll}?Xf;8AXiNHtHw#5;1x+dt3*TtwxYmdJjTgMHh5 z$Z@3qZ{I=klX=&@!zR)OXU|M?E5OYgiSyq%RVz#RG=Vhz6qB-oz;W4W1TY)HfjGCpCnYbBi3 zlJ*DEek!pB_NP@NJk3AbPxQkYgpMv&lgXY8s}P*BN*3-Qxi)m_@U*lQ52yN=|rUc1k{QN{4NiwVXl=AM$96 zW1bIwZNL=ygvTaT)pqXuH2e(nm!?CLPH{AU(&gC0vZV2M&M_P&E2ku;TEruAZbKECFgz*VRt<>$BH%dN77(J2y#%#0Jgb#Li?# zk;R{5w8P199`L<(b&}gT-on{poaa%$N-{8mCmEZWFDK!kj?PO-PDAu_zq^>p?UbZoCsGz&Hn1Rc4U3tGZ2H}oc; zw1BTc?XYlM=X7!!Yz19X#DYTglp3g zkuri-%d#C@QN_2x*W;(7o$!-j_C@OTknSg?`y~Hf4FCDN>}M8Vn6PwQ)wdPi4eQ#d z3L&E+J5hQptrU9wGh+C)@$~}fGPJiwIymXyPm0?K0U%)dX|w_K`}HLL6h|lFq%D{O zqmxKkpkr398#D)cf`xFz)r8&dNxzVB5Kq3vINBwr6Axg=H2?H7Zu@JR+i+U$-rXuQ zFp}mt!5sGh2h|d{=a*P~sAJ9tt{U78&2GBHQ#S%0bUa=}(LEAgQ%oLih?W_v?>(B2 z(?cJ}a`rKfDEtefMcVkJ9}Z`!uVkdQF)_G+FT5ImKP_vu*C@Z!F9qa=&?4C3&`6!T z^9!rx2zs$z|Mtnk`yyp|jmXzVWX(ErP|6qnhX6cJIt}NGJFkim_xHYRt zQBX3|nB2XeFp1u`GpA3mF+RulBtE=8_|i*A-^|mNAC~!t56i>*cgy43cjM-Q3((1F zu0bC;QKpbQ++r=Vu(Zx0-ELV$x##1Bh4PU8c<$CbuOre&{dDE6hF2 zx4|5f9R792jVOa`XmyjHMUsA!uQ87QEigY3KLBe1+9on2u){=AI_UJtfpX#qQmkAT z9-$-3C|Kcost-AN143loI*EibnM^9|6Rag>Cplncb1=#}V4Qf{NIOmQnzwFE?d##- z$FW4?$Hl#`K+nt|rFdHvIXF0=e2lK?SJA~Ne#bJ&4_ZLkEKdT5%MJ5%XwF4zDevE0 zC>M`==&3)EBBCkz_YB4&i-!Gd@BvN~%UmhCFG?n08UXuRWf(jIRRL1dst%L0P`Y@+ zBhlf%kEs|1NN}`;4p`fno~_?ZlV8`>sxv_E;PPXb>njUolJ)o~%nK!t$Ji+hD*<2x zVAWNs)SHauq|tWn+Flx6^TI?FmI@5UB5OzWtoxF4NSM$_%$Hl@h)6WSjb|ad=C(X* z9z$gk>6&&53IHY@{_)RLqYq(ErXs$SM>3$j3ds1tVZZD0O&+w^Kq2wF@7-V%ya2QA z1o_)7ucBjXZFQ);|Is3S9Nm!!82sRSr?{$|Qhg>L212FPL^HRz@o+Qs>Pwc<0Fr&| zhk#eA@XDpBa*DoazsTHWp9v%l4$I1ZB+MB$;M<58`%1H8_$c}Z&z@m_;G;*8a8MC* zsBtv4%1x7D2l#wo^5G*Hk}_te!OKGmKI&5Q(WD(X!4o*}GcW#~I1Uc>R*!gy#dU;N z5RWpROt8TZCM~ei>s%f*7*9+5gctKfDc^c+uv|f!xu9Fwhm?Fp-o2Jhhv=O(Lbi9) z&NgpY{DHr&BP=H+MLS7o5y(&TO;_{V39FWFXb(7%d)$KIae(i^>2%TVvx&nzJ)h~N z#%^J?jZuCIp4_-`6A85Ka`DPk-0p~NnLwly<@kJweNE84G8|dWEUaVA)8lk0d=}t?VVY9uBxbH+^lP#wuVpXBId48P z9>b?mD8Or~cAB6YSo?}JyMDaO;lMbo-S3E7uw}0@If^1-;~D$oH8*V*B`U->Ps<2vVZGNRNMY z3=70Yjx?O3!Y6--_ryll0CwAjz?zCHT|K|VX`}B6dj>~Mt6L6Fh}5K$aHdFm<#&JD z=__8t2I+gw)lp^5oT0z^_FudmueGB1XA` zC&uu=!&;qnIE&Klc(Lr%Nv^@L$Qv47rGao~mr1)@RanD-T_zrE@i;&owh>f{KMw+kdB14+}E zSp_ym8hYTu6K1H(nIlIA%1f69%11Z0%R?SN*q|k!JhWFXo}YzQl@ePvUKJ$$z$Qkk z$uH7`Fk?p$le|Kn?mmLk&*LsCB(+RmgzJ0eG*Ty=uDXyX0~w8&K^1P9vR>`*$~h`v z%9RU4<^JQ1au*$n<0>@gbn@!C5hi!ijKMiijHSl^Imk$vX{ykg7yix+mP;&bKD&i} z92PfTHQO89fR>qHe0p6W%OnW-o%}$0lwg*Fj@m&DiEa@2%RF1wX}a+uCOEobO$3W2 zd?Ta@t{u4I@q3V84bN!3*lXB-Dc}CV%;x#zc44U=V8XjEEZX$}uy~n9*3-e^;rk>Q z{12k9J=nIf_EFUi`a-*P|7GKL5Jv;*V(~GirL`3#{3bZ`@Q{T*Ycm&wKR-2H%gC{6 zk_G4`lyxtyEzysaRv2L%aSUrFUg9{pJE7{AWgA^7-OK_WMoe>kVjD>bO=m-Nu)WYINI2lmb^d{5&ELF~&gnCZdwA7l(;2;ch(Tlh*hSv&MG} zulbAdT(^C_0rUgt6U_b)@rL1Bt?kIYeYzJyR}JqCX=C_i?6uw21=0A#2;*@ zXFr}RXU_0A0@6aeNET757ExrdN}gA`rLMo<>en?ytd-F9j5xt4U|v0jj=^hJ&XyY= zyj!+UkscKl511giWW9uBAPfo@8*LLb02`xXr}5$nFr*V{h?|JS-dVa?{)g}XWjS}^ zcsUG?KmV_OT7L4AKMAHEcZ|!>=8sXZeTFv9;|W~jz47tKEMVu+5vVjhI^OuFuC^hs zKfu7sl?ex9<0rYs$syUq80|VAewe*-8R@%=v`Zc#fZ;aJQ?2(OJVIT-!}5sl7VUIw zoa-FZM>sU}p#mQ%L)!1eiE>n??pwDxJs&Se520k3c~^eRf~jZ@Q@Eg#!{Rzz4Lx<9q7GET=k>cI7cukQ(Sn5#?9<4PecBWXC# zgEB0$%MV^Z$^%ODSvs3(2ph?2cZmR$Zb>?aij+V8!-?`wzgjIf?=Qn}+Jzy&%krS;{s8~ZI}dk@-H|{Bie`Gz}d7BVkN_@6`j0QhFi-w+Lk0nA8QBn+1oiA zWL>Oe>&_b2o#*efT=kXWTqi0Bpmd@*eelFaGr%_v!pWZ!gmf_^qov1S<^uk_Z6+fy z9%_-ZY=Xum9i>p1NW#zY%rJ2~z5vn`ag&4Eu#8KX>uARpr58gr0`9B}+Y56FF#bt{ zwD>QoEDqki+K2QE*Kg-hqJHoGB8TQDV?T5H^g#K^pNt`W;lac-`-5Q~L`1rm4U}^e zSmG!82TuaO z2VUaa))mqW0!*(l&exJry~N>M?*3if#!3eHis~+}a0;YOv6$nD(~uvS^wXGDH5R$~ zoJPoDX2y*rdMoLNQQpKRC~yg9n$G>=F<LuBI{ubOVZOuvKsL57)S;k&W35c+Xe++X%<8d<)H z|EYLr==S_-tXni{pynPGR*#q1vpz1DUpPS>(>NerAsAf$@|~mfG;+>)5G%j6KE>!e$C;4Kv_vvyPSLGd#lW zOu}W+22AwJipvFwr<|DI+J zfH}acgXOu~S|{c=W3f)M2KXM(_M)yB=M@C-I4`98SzjB?^0G|B@a0@S1oC!5*v}fF z@cHkUExhIGnB-Q(`gJbx5D9N^`-?yIF#P&=eCfw408WxhEAWz<50?-sM|l8dpM?9* zL_{8ogyQ}6B^K9Q4}!aS>NI)-kqY$WbDHaJW4!j97mkR)10$YfX7Um$p3KcI*Nz4U zM|mA^xV%0&RxVu{fvfF{$b;n&qWBX?7b+OCLSw=OBXqD zgS+b9*wa<@gUqo29-mO+lFgAx9tj6lm0+Hpo* z`6Z7oPE~BJ^5t{qO8N7DIn62VCc2BLdCbKNhsq1+MNkpD@Pkn{mcj3vv7UNOv_&(l z36jl!%e_BJ2h^Z!)8X~>pJ=bPzvnYgAmRCt{I;OUqiwKlbj85Z_WYXdnPhLe*5}ug zZa>~W_jBY$I&1j^mhMmXT`11_ep0O)AtFVp4(2}gbd76BKmOs-*wpJ66D<%i*aL11 zCsn`tonf5)%YSjMyz$P%c%5-&g@p#=MJQTl40m!DSbFUawM#ew5FFuNdwB8U2#+)^ zms|I^!o_Ld-N%dN<#Us~e(4D$3l{K1-H3;H;*ka?6UQi-5HDYyDer!=Ro=S(C?>1{ zBw${DAUM+v~SN{hKw^eupGOCqEVlE=}c%&`TB`K25#ftUGa>7Od zp7fIr37{r{SCVd%h70?S`Q}1-;o|vn5(&sZ{=pxVQ^yXM`?s!_SroN==e1YLgZuM5 zGB#0WE}w&;u~yFRonkGpj`R^%G7*VggE_dmx)2*Jnb~tkjw0oDxSTnDtQ?)2MUvlZ zwPr zK^|C6mJ>WGrSwuT5sV=DeBfOLKBWuPmF*Z7?SsJc=LgEa`^%GM1Bq$ZjE*a5{MNt5 z%a2|n?OJrCGi~`B=_hdfM!Dh{{(|c(U4aZ+y7jAl$e@VpdXD(bC=ubEcx0s0; zaaUOJC2BCW(lSm%N(D$-Dmf9c_otRwqySAFbS*HW=O4^O>T(dS&V&26%ly6D92>dT zwD8rJN1tWD_4bU?fl32=cp%-ws1WeXz~g0y9!D6{_R6s9-a$BxIQf%7#Jocz+hwc> z2}A(Zk7}D1@33ogU`;35x#2Vb{Y>9mF}tpH6CpT|ypwL+u7RTth+~~3Gf{eo15FM> zVgNCWF>h4umG#w4)Br6(myAruP8n!>Jf!G8MjEXfaDd--XdD^eZb-Qh73taTGu?zC z>DU`FjD*q6f0OOhy>pj`dgAf0M<$!<5ll;CT8^2MypPy1(!ifEhIvJh;SD;(o>IU* z##HOsdEKT;_w{4w zN6K?AZYqq@5Kf&$^%K{bHIZkmBpb9_5Hek*QHb39BPE3d^_#!m<3NZ#B73eg=O@a` z%x9L1(v@s&gpNoxf5sPY;?lL>RM<|z;?aR@EcU^UUxOm!rLT6#4j8|het7*VjP|yP z79^oS1m3W>A+R5WP)`duYK*ZCrw6aA^wHb%cgqxG=hbV6SXV`DP`=5CiD-T3zd2_m z+)?JqW`7Cy!`9dbm0}I+#_5cw9k2Z4B>h5#}@`h<`SP{q)H13&DSH?Z(q2mP@i)WDrbrIwVVLV=gG^iYZ%MO+)0}9lzBC||970Bx& zEUZB2!v4%97Fb6{VQzZe1(8-7g3QDn>SRc1)P|vG`jYd_nP*QyNJ~RwO=+@S^-^g2 zt)1T7cVHu4MC<+l8!$COH{@%xNpbDuPea<9lcz!dmlmFN+s@T~pLXb1v0Kt#4!iB8 z6PLzj8?2bZh9lk8_aHhAqh-=R-HaVOHdcQ6XQw!*$bQ{fn?j}<8W;i6h@0Wb&Aw6z z-+pb1>q~TA@HjdtQK-bAV@OB=@NGA3a~)?eSnMY*JYIdp@#S!N|Kqjt@bPMS`N~N7 z(GL$JSw0k-qnIF!S0`zQN8*atjhY*qZ@tFVx$)!Wv(M0DwXzA5;!wGIm4gm=GN$97 zX-C0?MMpa0i=RV%XSh%3<~Km|heRWKD^ne7wIo0bdwBGfL;8tS+q3ph;lHe*2%Ke} z5Zw*8g@g)=QC}uqiE;ghKRi*+o;^f}()U92#t#?yu9Au(uYMM~Y3?%sSRZX;{)Kjv zKgncp=JY9oS@^-cQ-Z}g-ZnMLif#nSJRelac{vdoFOgb5=7axHA5B8oLw^p6f3}!c z*OBm>LLu1HStN*TKh_y6(l%AfyF|7$sU`ZU)Pd5nhFXT8C& zjNY;(UMIVA=T^CS{d%Nx7(Jb*&z=ofnW0lty!Pj=+D;=~{5e;u7upAJWPGR>5)K3F z5F~@=SslSeIC|npxp?Fli}Xntl&5)>P>qU5%f-`YL$~1K!Yy=LZk7wY9z8U=Q8v~% z=mWhuZgPzy=Nrca%fOYDecU3+kg#Ua8{RTmUe=`@%y1dpo)r#&vvh6&pG+Bb6Ki@Ju~)fi zL5vm4bZf4}A@T2C!*om}_6W2&hY0`lcC)&|LyjMOv>R6iM<}D?2sX$-Q;Ja-jqNg+ zg*r$!P=W(eqp$cFV|h4!2oJx^zY=(%axL zZ5c=`r4V9Lzb=n1A>8FSdE^MH9*cOL|i6W4+$A!Sbk2sIQYCW>~@q?_V|I zjX0V&!(`M2hE-F%nGrc^0j;|cf%etw_X2?$CJ4o6ZHYW0{S_JVOmZz*STJ_ zzJ_=9?tuXpwUvun7MU^aVBh!!B(kEA1Yyzh>X~U zWTxSS>Bce?f+oq#M0pG$zF6!6B=L-aOHQY!Sm+Rg!B$!BE-o}SIA$OISOM=%(Se5I z)n^;ICpgnn!y%10G_)Bs?Cq_9i_S)NJfTgK-I^?eLuTSQ3*#Xc5=afIvXRA!i-&1A z?_Q4{ke0Fx7MP6Sa5Lh9M?Y+30&3S^dT0jRAw+G#6#T; zK#P-@w0Iz)G^mn|V=R!&Lo5od6Ux<-Fm5FgKO2k-Qza_BL>BcQEl_$7GUhYurav?q zbH8Wfj`q;O+l^mqCQBB73%DDMJ4!r>eFE+t?@TDXdKUfFzkZuY{mJQlkY5y56X#h! z?QDEeoP!3YFM|KZ!mPkr-rraveTbXt?ePu2g93V>zNF*p$16q$Zrk#+88_GTHu|pW z98^K(Y|2<1O}|cdBN8MdQ1b;9ic@1G}#N-rp-gfp6_@#?0-s*L_$Mpc9y7tfoMAjhKqVxdoJce>AEm)Kb=@azPU4f$@#?E?e5TldOvU); zp-@aNz;Hu0Ft0(ztE{x!(6HI-Y7+Id8~3sRX6 zN;^8sfAZmn<=fXTms7kRr@pp_i}NrDKSjUd10(@A%e6oF<8o+bnp5^M^aZ}aq1OnE z>gBk$ys(JgLykg^!n9Vp>FBXzFxO5n|DzX3h6D*_c{sOAj?izNuJ#`8+!-DEPTTk$X|T-1~17^9?;NOoA!^U;g75d~hV|RpYl^nL!bP)dk`k|`sqtu&wZB#P_BWxk zZ1yt=6H=I(6YE4%-RZJCUGOWHfV!SX_sY_v`?PiXfJ`_dNkcFbgED)FeaAz0q+CfL znlk-G8U|VG4ua1y$$Sh^ajsEoKD;fn$*y*Y^>iLCkOYk&%7%Et3A2k5a-|P*zOuzi zcT+NEAYdIYNK+c=vmuxeUxCFXamEB!SotBY^bdzBh7oQSDHVsl#KmnkzOMBnf{_Hp zO>DemmbnMnSmyzQcXrDgzu_(&5UNP{?6U!M*G`p7mlz#r%eGU<+t)7ZT|;DsFmBBQu8z^~0b|CmP^WMjH70c$eL?tCzly4Zr+R$VuL)2N z&u5x~a}K44`oj1m!Xj6{b(jO5Q{@nXC+_b;SO*CEkA3O6jZyjw;JJ}}*$C}~+x8Z| z7-U-R{>m}jhF#4;Xb$qL@L%d%+ZwH~leB(acYl5KyPuYNOHWjbl%WH9dcKKr4;D4B?3f+1T-@Lo# zKYPYk;Zf7zV1$v$sJa9N9b)WjaL5|5FZLJh({#p z3e)7nJVg@_4|dlR0pk=Vpm{Jo;2n<~Uu(Xi?f~jJboBn6KhGQ zmdF_msOBaX}*w2#BQ z;~8_fn~xqLE=lD}q!THNJlcw(oxLUaJheXmxbmsDWqRfr{sZ(Q| zy33SRUt_*{m<~@09brEO(Zx(J~fk2F)J> ziir5{(Be{1B^)wt8CxhDHf%Q(OI1qJ)5$?}I6AP46-(k{N3^qVldsgtsQ!nyEpl7P1oOhNm-8^x5wFcP$h zAFHRJ>T4075*!}BXjj5Wcxh0ll;65A5WkBO({r+SB3nmFN&3~_sFY>I1 z(i+z2RE;BjGJxOgH@$s7B6r|ANc!S*oZqOWj!Bkvm#!~J(lQ{w(@Y>K$wk4jLUOSX zszTbu&_?ql|9~-23Mx=i(-WN_$KE{Tl37LNPK|Q_xK2zNaE(&#*sv@4o)VR;C0NKM z(@=ae^rAfy$F`k%7X9Yy(XJ-vn14Tf_r0?GlOLDSGsn3GGhgQK!|*_?XBg(*+4C1z zv`&{hw{CLyIA4DH7ymk#g+mW%Gn@{N!(=?fwPtla%A}ZNg{vA6O&o-g7u$u+hLXdt z8QWt`!fZ){9EQkI^6NpH%(*qLNIv8`&IZg(^Q#o&^89i+d+7`cs%N-jvru+c9+zvE zPO)LX$0BOEyma;)kd|sK*KR3CyVN`8G{0blj)2sTSHF>7F=V?>oI-Z+XF!D8=Y$VQ zAp5234*My7{`qi=FEsx0pSQ~|-cV-}>$RD+@)D9kufNX5LWY2;0V`VPdQFhbmsS@C z3XfT*{ruOO))B^?8o~JwQ$`ty-dNHJ{;t5wjNo{vi&z;J#F#61XpFRMc;B*|`+F0df z=euQl1BLuZwbV_SjKi#~X8a@_A1w5+dVmvY5BwwFHZ0;fHb=UAWBtf_(Qr32_HQ3} zu`z9NC}CdXx-;XJebheZpKEww_7rclT)`b}u##^dB@vmIoy5$D4I{#GGwi$~J<(9b zK}My+$a~xt@?ppM#~eT)D$6~diao!?i#0GPCC6x}YAtWRqY5J)r8?v-qEVP|3#dXE zL_Nb4Xk9Z0>5?6^SuE8!$32Ge{?VuIJ9wOgn?vU9!K2-H#N{IDOdO)jhS4=q&Eyr- zL4(z?wz5~2mRYlNU@|)`bJnY6TjeJDiRv<0oH%J0UqDz{5<7}F@|8be>Zh3P{`womCWdDG6=*#^QHKbB>>YX1{s zdUeCP@LgMt*YRoablks7OH>}~9{^}Tm%qxzHhbm8L*>kc@3MwMmo<;%s8>7pN;wBK zRsQT0N9Lb9R)fFBv%sp|pjv?S+xFA0vG?b_3`VUA#MCP`%N^C3fmv}O}cGc ztj4RFu5lecz$$vF+*S9ZI`@HD2^X}6ucH|5u~8E>-eaZtc}uN;2D z)Zt=h)q!e~jvFJ4*(Z49%&VxTWIyvyOpyk54>1h%Ku|x&Li?oSRFH?C{ntH*CX%nD z@^x&8X#~3hOuS(iX*ln@rx9PptBMuJ9!=<5)| zpc!kF4X|}Ajd=;TxZGp7pKx9XTCr+6<(bajU*ZD6U)Eg>j5?~VHelL#lHQD0WBfM1 zNs#%f`3$CFEtDXIz=rN<0Qg1yQYV&?!gQOg=^j1YD4QFjFr*oefw4{3rs>>N+d)OO zu(-p#w#ki@@n8<4TAlUtcJSoH6LSN=Gy!XuKal98cv)DxYaAre9hhBiCegD;Lsg&C z{fFx`wl(h4Pa-7%lg^6FWhxa|lgA6|5R#5w8IG5S;BZ>`F^Q4REnYmHp4x)>=4(Wd z5k?|{kSvtQ6&;9hUnYIb@FUQ*Yi#Z6=4pVAh4l+FC39j++s zlrkWrj-wA!CaH87--1q>C`tYeQBUJ>)ngll@i#sN&#!qHM;#?3v%bYi z?ffuGsd>HgC<{!Y?{FP^&q2u|25;m^lr+e2wdyZG28+R= z+Hnd}ePh6g0X#cv^-p9^|E)FibjUUYsgST~JumaHjpZxZo8tOPIDXF}Tb>qbe4Dl! zUg6Q3;W{Ah&w{|cunCh`+wi&YYWp;h*}!`O`eXOFX}d{J_06_XM{RwhA4*mQ>B0WI z4*HU#HvgRrod_NDMentxfB46Z@~gMhQHws;sonCOmnX^(zCX!zWHx^Q#nw$a{4)}N zS~Y$hXB{$JB>LGj((*U>Z)mpzoXz$=?qWtbY=GQ+*Un|YBheGCKrGk1*g>CtonJluF zr`GCOztyi@5aWCm>ieRv2og9u4Mk_)n{>Ra_xC(aiP5Nv%f1ZzW)7K zY`R!hs&EK}om1%eSVf`n2&-9{u2GScQ62xCej+~>AM`~3!s0Pt;}fvzc2gqM#qSKS zT5sWA;)>uj_~#cMmYeV1EdTa@`4NnZ6|P}_#`Q;}^R68x4iCo+?{WnZ?s-#JV%9_{ z>u8GGGHpf>2}!~N@(DkH7=3^>L8p8hT)}y8!AP3wix!=WZjF6dd;Q8B{s1Q6zyE(% z%26KpISMCYVPT{E_21rt8GE68?|U9%vSy-bIs9m9GTPk?=>N`p+vWfKht+cS5E7wN ztalioe(|e&}IirmJc9zc?g;&fmPbRQ~E056T~3EWYG82Lh?E3rX9?!9H zi_?OgUHd%@1GtQbeMKJWB3q^TtMSBBjVVaa%*-IdB3`>js`1cFFvxrqViJK5uTI7T zawJya(-KkRr?!J2xgxLMh?MDv7eI|ylSjjW{`^Td@CW=!KctCXRj?mN*gyzlN0X)oz{}NAw{9drZX-D7b5xIS!htfBusa z(=&X4FMCP5J;<}=5lrp%J&Ov7}P>O+eR670K-QTEN@c!)Lx14z1#H}xCTG-SjW z(o7+b9+dLQbsoS)7qf>CN4XY#0s$r;kK=5%W3ml2d!5GDaY$NtFR#4)wrjzia{1~+ z52=R}0-h@Zd^+k~0 zNT7lF-Ft~X*h`u1!1CK+uG&Re?+$87jNy2!sq>=oqt5*TAN58ZSe2pC z5Pjl%Tc|)pOm>q~WtroXtPh(rMIte0#p%AaplFOyL1w}7iK{cL`9smCk|i5kPEdoD2{qUNe~u zT00vK7>Y}5ij{Ujh=Rgk@d9ISb=~X2MutFQ#sC_}m|`>+4sQNQD`J{ROFo#Fsm2vA zIN@H&+TNKipWnG#9?x%-6L4VbW;b#DEb zvzQ>Pu*hZewO$*aD8q1=51?A0TD#?>OUf#MVQstaG#RhD>bJ(N?$+1V9SOJm_E|H2 zmUX6la2!%^2&j`^4=U37vW&(r$U#pMmBt>=-?5`kc2;3@Y0KP#>XelP>bKv7ukj+N ziGV%&V@1#tO~@`>PtZO`g>^#D6!w99MGu?S7om<+4@&xrB7Ff(HCi1$-4r-he((X0 zK)ms&oSZ$3Vq{)pXS4GD2ai#rJBT#)BolQK5%l)qx6Z`tg2AsRk&fFQ>iqgQi{;$u z;qrq&oMF<2Va53BA%o+GCa`M9GRDSY8%cv-AnEjf{lj{hVq-PPYi)0TxWpBxsq%v# z%yOd6h~$)EL})i^os6VSw`wka{)^r6)`#oyNY=#gR(X4L4HX)b<@N7ObFHp$+;)M0J5xIj0_C2*ccLzdu&cs4DOZbdFGyvKm4G)a_ur# zC43AHy^%;|uC6ZgILhbc=4Us`qfc*_z1P_c^E$vLi=Qph_3E=U%hZ%1G62Iw=7r3` zOtYKk%o_w%q9SMM&UsG;hblzW2gIEmIAAkuo~LGJx&81F?PryT2xhpZ`KWyO_CIk& zcMj<#7GWN`s;HC=(*QRwqJ+(N4wTK@Y=JaEq+iD>X_T&NbPE=e%GHyvZKH{v`65n6 z^Oy7+a^uTb;X(2S42h$2Y<9V^v5i`mISyWBeQc5a%V7|q`?n5f7<*?NmM@a@%=R`dGawRGg zO37ayFCtHFWbMU=wpY(#^=@bD# zFtOPH?Xf9RKcLLFQ3L{fv3h`m_03IGGVmzaa7Z(|YY3gLQi{%OpU zcKd)j(dT#sVQ~q4v8xI_u)kugJ&t}?nVQCToglnv@;`obi%0hy>x1)Wrx4yiI#VEw zIt(vx+i4VuZ1+=+5fw*`>-?YPD?>ol22-*JQlx8NLBtIjv3hXzjvaRjW0JiCyQLz?oQ+M_m`(7CG zSL-xlcHD_a7{`hVs5g-mpd zKfD%cOR{l>+f!qKX`qP z$LXxQMC6zf;Q5JkCBtwrDVX*ChdT%}c{9-$m{-e%OXKCW*H8!JnWGB}jQI>|`H8Hh zci2&VUHR)VLu;=+YmYSk+V)B#L$4%wSVjg zECwXLIxdBG6BhBr^2H|b15#=2#!eb_cVMu$!z<=?cxJ4I7(p7dJ;uD=07Rae0m1nG z*@bpEJlj~FFUL;Jat(c^u(Xf0T0EFW`2{RLm0nYF?(vHH#WTZYWoeqnJJE*D`oMAP z@SM7JM-k?uE@^YtL(aUSvf!L`g5jhHKNGg=X9>}puNCT}BTk}9FYH9iBfyMB!LzK0 zjKHFTDi{5JiH5>%PrXLV?38*{2Fl~5m2zs6%>nN}26BI8N;b^JPU#ZgmnKzKY)1W) z4m(Zgb78D@zxV%+X)_H+w7DgLUER0PSD&pJbZ-5gTRj)kR+* z#t+6qFa<34$P@T1n;1>ZA(6#PeTf~?%K}%YyuqYio+NrebJo{%WiAtI{I!GKJ84*BIgMGZ}aJ+AC9BIb?j15dKR; zWQ2IOL&pvTHqe(*%76G78rBh!Kdn>}WB%t{!}_~l+(Tl^$sgdx1S&I;Chbb#Ztk zXZ~RXu;J!nBYi=I<*aA89(ocf+^Mmxvhe8BvT*&lKi$_L$mu_F^l{z~Esgn>JM620pY&V1uxp!wzGI*#D633Fp)glmj!6kL0WQ@Z@C z&D^hU#~g-`&|$}@0{}FuO`Ub)1e_Ni=;@5rYFba*U(qQSaWm7c@ilukfZ@?KND;G}igr z>MD<7+~Bp{yF4azG}e{DC=fsWNo@W~hnU=qq%^V&dwgJM?b6-{=)(gsLFD0s{d^=2 zp^e3#4>0nH!&eyx^zlv7mkntz+k?61hH%ISU1%7tuVuVxlDVI0OGmTx1xKKXvWP3w z%!#?Fgf)Tyfn_L@L+J>mE|oMMgbC_cH-zMc>K2qh%&XUlt5sZ)wo-ETf7G#-%NM81 zn{PcvC?Ow1bS-}F>|CfmvR(n}MAxmc1}dF%a|7kt%i}_(Hcbu>tsB7 zXz|r}Mhjz^Ve!xYqAG$HuZ^QxY6IPgt5G(WFC9XUnYXU8&l^v8`>*L!WJ!m(@bn>= z*Iu3A@NtlXJak*Z#5;XzqMS!>sS-`n5OfQ#oj>yy<=*&7$9KLpR*vwn!{bNvc_dLz zpPJ58! z$!L`ZBl^`sz1nipQ*Yc&T7DX9*RK=U3F(B1HcTR}uCM=V(owmUhMEMK+Go;Fsl-lO zCzrAfMG<3z?K|T6%b)ZIew>k33u%PuFO2^F2qX(pc{RSG;2Ws0>t=f&^G48sJ?f2q zX*;zp-N*BG8mcptcvYV>`je@zkYohL>W+C{WUK{34Gw}iAx+EPbC5Y=khye#al~<8 zhy6TT(3pFON_NEHT1}%}ldi5^x5QS{4sZL{@F#p5G|>!tK-&1a0m;KicP(~l3xAT$ zlzZK=7HxnJqPjzEyDmw>aXJ+tchl?And5S{6S3Mi>d_133g9T~?+K)V|I^R!a_Bcw zW)Ux(Ri#OXPNHeg=uyP74?GjT@i`Abp{8M+TMQE%`mU|5ln*~xc8(xyO6#xSUUEuR}Jda+gC8wR!gG1(GEy9xhDd5(JzXbHfal&YQh+FXXK|q@{uZa^hvudsObkhUwia4^ zFe;_1nZ=;ZmrQ3!`@uYtcr-Q{jK1LP=67tY=0WrwvZ)$omOiNqqOZCzD*2cEQeq>jWp3GfccOSu-LyD2S_0xaLko zF=W$YRdy;pA2U!)!T><*6e&`!lg&&-XSY$ffa^AI2Pi!&W#Q7NYg%3{Yd3tKO{jw* zn|9uck#I4IhP81AhHN{w=Jd_qjNG+%7Uu?Z66l5}{L_9DKH6_n7M5*pjJ5bbOWVQ{ zPIrE5cyAgp!Ss5iE0PL?J)u4DNlv8O3)Ili8BGbTumNZ|f0fjp$iF4W0cmIZ|C-XL zO-DWTX1s;G7Kq;ih-pE7k+otGL$wRvi!mt)f7_k|Lkn1|UL6zl*7ndIy^_TpEs8-r z7j%e_GeGU^c_`tcOUW^=C8+owDGV3u#)`B+5owTEB<&YGZoWbi*`Y1)x*?N!G*TXL zH9<*lTXDo`P?@>F1-v*6bfdGp%HtOty2SjzxIM;8xT~A$WReP*1bi^DXuuxXln(q{ z05DW?c(bGS+A@u_)HuwEB{nIl&e)6mK}SRaUr2_SXJa>rMILT`qmM`K!`C07YX9u! zNZ1Gv1f!!dopB=Fea;H?HGFHD_1lZ`U|(}n^POMw)NN_KI3klhjm+>Y4KKhjW8xyE z2Bmq8ber!gb?cRM)ov`X0o~eOLn>vSg`!*~R(442jC1rjOrzW6s>2$LKP6|TxE`SH z!j+wsvWd=L*92oMXh&Gpxfz#n<+Vp83pde?yvJ39T^f^Vk4;RMPv3pFT)+NFIeX$n z%+5Q6A3~|#i68wDr{q_7xaEVg_~=o&@$o0+rPn5*0iBL=r_F0!>6j_oX&A?aCX?Zg zTwO7P>psRnh`N-}GludhqDl zAl|V91m15n2lH~_Ji4Xd-sHe`Gu99rNUBYY@1T>JE1WF6S$1X9X;POIleB$U#Nw8b z@!}b8IjE#*9ER``x~|p7%+(Oa5*d?{o781o@o0R=VU)gp^)ifz(_7{GoyV+0#=*S} z6L}`^7}2yMzCYDq52qYU(@0knYK4bq<8Ip>;+NHxj z;dmTUgy2y^aiCe_3nN2O$UVY>Vc{Hr+kPK?3mEx|A@#?kHpEyjGueZOO~!x?t{3^> zlj({f`bQ*A4*B}Z^e*iyA7n|oBsrL&^sT*SavIn{(h-~+>^gT)O)xUH!QANMPs~w_ zSE;`*NQ<;A7cC~`pPBWBlzV}1zor!S90z$DA>DZL_!Lrl$wZO&nY0o`92z|u<8b6P z!E4u)$eBRGkn$q@IBJvBVP;u4uWO7(u|>b_-~gw1-P@cw3$xAr#EO!Q=+l*9fLag{ zI=`BhWnmw7qn(VPKpkOL&GBQdAI9jfT;V3|Npwmwd`8_G-#^z7?wO=h+G1$+%b)bA z-*gha&AVG%f(HkJ#nfl62V^R;j0l9r_s=ky6#i-0lEuRiukcvgi!aPXnlZo-m!&`) zSjv2=Wq>X4Mbp%d(NElDyRipUdImt_CbVO#mR5M%OYd*aNNL+t_rVm%RLtD*+X8j1 z*EYtk!C4Z9CeHY+==pk(Md<@iAExgOus^o9Qq@!*{~7mpS^N3Mr}M@RH&EDyNBz6j ztCPS(q}M+CbgMkLw;DQz$GP!#@%(H^D8V<1@!c^Z1XN1CL4Gavp^ zr%}I*%S2OU(AkSH|B)!Zb!U<5&y(?3n}Oo(TZ#nT;!}8Pfg7Vd9UFWTZ#sDL@!-K4 zZ(MBg?gEF=2 zw||a1L8I*wf*iYy6S$?FzW~6$TPEGK4X${FbKN7$$Y!h&cmCjyBi#CROs`J|-h_4V zm$cx~3Czf~t~;oH4=mE!E~hq0u?C?K7=Ftc4t7SrdyIA2VB9+M=5I*l+YQ0t*zUaH zcu<$zF2$(In0u5yKYEn)Ft9N%^L1{D@goWi946K9cALVJx#)u;t4xwJoU{#w-mOKY z@u;#n^bVao>2;-7e(Ix`(jq7!%PI>PiZuon<<+GbhC=K2%uf2GL zldowe$Yl1}g&2lNBRgplV-1rIr`sc(l$<@I9!I2HxFW1XpO2u-axKSi8DQh$Y8H5g zyTHQ_{uF7HHcZT2bTIMi(JMTOZkM{vH6X8XUFH<;60{uRahCyf$Yd+bPAmnEBuSNJ zLpr!lz$E>_>%-;4Pw1dr=k~ShtLH|`wX4(6gWf38@+InwN6E+kW)K0NVdKo~FI*cg zj~;{P#wLtb7Ba(|<@J{)d5A%&3C?(+-GPLv3mi@wQszHb6`O=l@~r&KlX;=@J+vHqA|EiLhZ2;7KMeM z1Jai;HO(&(^(#dQX07eyd9Xx%K4*kJ@UL}ndM@Jo2*GLnKWR|f4}Fl&S0n(GPh>zs z*jLAX5Y5l)cMu)VPg!&uR`+owf<9+=af2|*!t4st4sU-jQ*Pd0DeJSSUvSK2Lw@?? zWJn+TAcF9nx@wZQ{`_;Gw;!#eD^`8AZXmMo_R6Va)3GV^Dp=6a&c1jWyl%EsCVv{8 zi?<*95EtVm5gsotb0WnekrU{;QHrl|MW|^eCl?N=zAMK#Mg92JMmaiT9CSIZZI|P7 zGjY&i{$sKtek@`FNse;|j|KavCc&DpL{yW0@!JIZX{-VCq`r4>x)txUf0LSa!8|E$ zrMpete%KtHDr}P%$E;36AU^-CS(flv`06G~fLJe0^i`N=Z@jTm-h7ibwl>Ux;UcHp z^GGwTpj(Hy=t}s2WcL>ZEdWF z#GCD9hlhPeSvit)`QYt$%PUu3K$3^2T1HXp0Ymb{sZ-_D>C=RAdj7$CNDq3Ik=dM% zAwwbCW-I?)>;A%Od;}q8l!;%Bw1&Z=6sBqT5W!>a@T~Cw%Nj3Fzx&o3vbi5;JaGMD!kJi8 ztdT-^5hi2d%GJU0-~TsrWmm2a zlz;c%g5z!46sm0w&5f7KT&wb>XvYl6kQV>ycouyRhwk5JW8M!klHCb2Z#X*cgCaD3 z&jRxW(K|uWo@fWtJZ^O6?3wZ(-}@!)8ZmLC#0GcJgFXm%NT6!MZdIVcJoX23feXO=OH~El*cqVz!%^S@l51JQ#EtNR z?KW4U^c_G3Wkkv}2Z!xR=46azBptVd+WfQJjJkb|`8z#~bn0ZIh9abd@y~$-Bh!Pt;>5`M< zMqO!7>n(}{@2Ep?prIlDjAUK-bz5XQsy`8*he>{o>vd>``JTMGW>8YuaQ?^Iq%v2n zJ|){cx1Go7TxAE|b@-odR1Ce6%509o`th0#Nct?fgk3NmF z`RZdCYN~~A^~!*6{x{bVSr;`mX^6a4k0*QsCJW&S5MSVJJUa}=T&MafDhGd?Nz|X^ zz0NKV=FcWfqz(SIxK2vvRA4*~d~M^Rl9{kV*vIc|mrp)kW{&4k(BZMNcx$2DL4xfP zbM?^^9JbN!9N&#&+#26ogzL1Mg}b~I{`vi~!egyxFCQ(ZFQUu$6zav0pdF=Ox;uAW zx{XA!*KOIDf+_KJ>rU+cRnv9X@~$E6Z#IK2mUh_l+bvUL)w;zI|Dh%S;|7L~S1Gj~ zs!KY%YctS9+{RCP;7FW7n;lr7_)Uz_AHs(u!z}5 zyIk6S@dd8DK%rOWCSWY?B8_9Z1I}u}+=OuG@zgWvz`nCa8ayZfEiaZA|bB#MH62oh>82?c=;a8z?W9JvrnFsaP&#^v2oLMkdqlI z9w$^7aQpS}jCh0u}!7;8Byzs&x3leoZN)HZgkb`Gy(Si4D|oku%pDJTEs>5=(K|NJ^d8B5v&if^^) zoBrK68QSZPD9ulnLEEQoKREPYU#a+=7>b7?Yf`5KI%L#x>r$1IVArj!3*YPi`{ml7 zmv4-|rX3!H|F=lRLCJUgq$A19%Ff?|s5{87gC-jd1Gn*OvvJUOGk^KwVEOO48=BCX6Tl2e>CzkKaj zNK`n^n2(xvU}+pq=37h*Dpvll|J8W;_y6}=`PHY7IECaT+`;woZ(ctg3X?;@FR(5y zZOcZNv_ON!G3O{!8bAFBk8b^Zu>A59m@sj_sj43_tazb>?l-i}@S4Arq%P?#fiatgfu^h}frP;KD^D>*s<& zy@~Xry4=oPxKQS}i#X2HfF4fDOw?ce8e2=&C9S8M`3UR(F*QLBss-^3v%aw@Od)2p zg}Rc%FuL#GxLNLe_E|Z1`Ft#iL?uNzqlzTh(5&t}X8y{}cTQ(cyWq{M=bD*DcMc|DYkhJDoX zJ2X4U;icD2vrU+1#|ZzV&7yVLBMz^psT1dQaa=x392SW%Dt!Rl%|oXR5myFGr@LX3K)$aJ5L%6W5^&4PKIQtO~M}a?+>_@P?Vv$ZTj|o8!3LSbnRV( zG7zIONPz#t;GN|3%U9sXS?i7=Frc(z=jtsy)KM> zAvRUm&6;Vbl|lXO9<)ueZ<*$5p)al0K124R>Bh#Z$+y@fQ$M9W=6M*68-er%7{2Ti zjvs^h2Off>-&J@$I`cDjZH*=I< z47Ew}+qzf)q$Oo#L^#U}6GdJo9Z_%fc~1w|TK$Eb)lKTRbB9{(Fxp z*Y$FUM>Svn&Rls3Aq~r)Go*kQ)|TS<;FzLA-1(FEb&I?DMIvpd0TGE$^A%jvna>G` zp!&_=-}0|xLTf&f78*s)1$~6KDXSIK_IsjT;KWsbeI+{P73O=(F%FL@XQdIBVffy^ zxn1skx>}AhmmX%{yu(#er4#9es4n2kpLHbP*|B_y_2SY)`!=d6M!4Mu<6(zA`UYye zHdLv_KG^!SaabR=d+mN$E-1`i9`i`)jknj!+wVLmC$F;CJ~vU$UKuObUL0i&J4AcQ z^kl|+lVS(j-A^mEDV{W4TlM*3|6ZuC*Ja(B*GdzP{GWb3?M@g18`Ei{`T{48wqG{> z3T@0xqkH?V;?m!JyS1h9HE_lj`t%8eyLJ}PTgbKZfZ``&@l&CVLGeakW@@gUx zU6&A96y1Gt7n|dh48?0NOc4JhIEUiFUCTrPv2pU_zNJGAmRbc$(b?X0$De3P$T2d~ ztaO`!RwmL~1Di;GG2)eH(m zLu--6>1?+*0deCjB4s!N!~elS^(v{8WP?cwJvxP1hSSPvP6B6Un-R(Qfro_xcv!N6 zi_U=h{2Ec711;Ecsf(9^{;gmUNsu4;P%vddMA9lkOrhj>t+ zaAK0DA>;{q=6HeZ&|w*lCS_*@Mm>e%MAu{Nx`KH}4+NL`69^z!FPtF1JM())iv@|PboKx(Ewox5ClkqZY0exv>Uq{+E6H@myOVy{wO`@K@Y2q7_D|j<7YT@AUr_0_O{wo zm-k-Zck-9_-l}eZAPCNkHoI^AT;|D>nI})4JbChDfNy+X(&l&4vvm-YbkamW<;w1Z z^wjw#{E+lwH35T0&~t#+Vgs)VImk!g1u@ZpW$6dQx{K-qyjztzToHziEwkz@U;oB4 z-6)K(Jb^D%>@{Fn?WO9)%%2k~550Q!8!f4)zdL>OsXS~8i}HO~V6%9{qzr?#2;%SL z!Kw*a1OUPp7p+51oo2Cy1E((DV^YfuWe}x}6Bu!GP%};D0`RNS{=$nOHr7-1SoPzo zhRe(9nvuv+O-HDu%a7&n=e#zj66N>2eib;mth+O=%CY-p^<*AJ1kLvz3>Jz&DpaM8 z)hVlXtZ{5E!lKHk1IJp^4@QR4bKhj;ihAv0jDPRl_tQu3-($yfKAm(Ef^&RuoKdOg z_%qK5VB6chA&7d)YP;G=@>%rQK=P4yL_Y8oC-LE9k?~apw-!$wc>qig@84rW(*(Vr zVG(W&dcmKK4_A}0Ip#Mx4*P;d+lS-_I>G7f?hYbD4p2==cSj=-d`CSB~bV!$-& z#e6)4`t<43v5lLNH7uUyrlY&VXD7V}sC`ctXGKV%CRWgYWZnVC6S+XwAS3WrV_#;_)F95;Uz zd7kVn4hrK6fQBtCplGL7Wd)Ts_D5+4QORcN$6_ik$maKcGnii9qw-)1s}~1il`L-m z6bE^OCs4*JH%bP1n0$yiN3FEtZ21>SzsL@cPJM5o_zd0@-zp@j%Y2vrl7wgf<~z6` zFRHk_HRSL4KL5>ewQV^75LnjQ@1BDjm7g7haf&olH+`cR> z8K0b5Qq6shdH@G&Bjb?e?^x^yC&w!fSkZk!>_XyR+~wIWBJh%yfF>af_dMyX$kT%3 zEqN&6+qgUURCCL;+q7Fy=!YEZfWyza_iqbsd*nA-JqtJbF*8&rsVd`v=jNJ#{VP*Y*q;rWX!B`=R~$%B79;_FD@v$I>tE!w2(}ubp}x2!3H)s-H~r)$&LXmd^zR z6{wf5;EVbFMe3h zpL2i8aclhu1go#La6gAQ40WMBoM}o|eleFW|8gO{@XAwYp}{(T&V6fd zyxplj|EUp9EtYwTi$#wb_9kN%3hSU7_-^1vD=}^#AMZ#5@OqVVVGT?bM!$g~{>77WXVabKZf7;_bLD*C0B-^4-?2_g-DLOy|q_(H|D z3qkTo-y4J(ak&?N^Q&sFp-%HhzeT9sI5P9EdbWMSMF^2f+gB+bdoJ(uHRl+amk%Y6 zaxL$@mUrb^zLn>_*Ydr(hSXRUy2?3!p&*$~#GiVh?LA3bBY`G%4B2<%ygX!)Y5XGo z=A%{ogd+=L=|9Vkl8L+U_|4vQ?lkQ~y98|Dh>qD=?-AkwSrFbbIklNuKllLueE?8E zRYR>4-oZh9a5ORSG_hoXZFI(00iwcOfLhI^P6XI)PV{SLpxeeGhBz>V?(QvC&u|pV zT&1bmlZ434t;8@6*F^&*OK71{60#d0JC%zqqY1plVrZNvvfj+$3W}*H@4Z?o+eUbsK_=np=ft{Y`CC z$DIgw;2%p%)`3=>NHcfjiR*LdZUt~DTWvhad1AQiXT(`cfnsG$!Htj4N zX}LiC3McAUq!cz765ukvnw`P+6ye@~u4-uY*+TE!(h8I~aT<0ml?cR7p%8WzX`-HK z`(Oy?@fg@*`cQ|0Z|I9g5E z7spT_j_zm6b2)Ge9%laxWrgM99^Cj!vJ%E-vu&Li+rF|#6+5fYm~EuMDSx+3R4%Qf#PR(g z7A}qrTCB{Xd~knUM@KjGkrjzRh5m$2uV<3(K`PxnPH35kV%DHfKexW=hp_PVnu5Uz z0%KzM{Da^;*}1QK5c#4XWz}Hd^YH!zZKb9DAQNAd&cs)7p|3R;11+Dv-Be6UV3xYn z%C2_heLc|gC}*v&^1=JyIlLFYu*T9=i#&>o(?W6$4cW-pa2jCm;lRis!62-Kw+TMVtGddKJrewkoHtuQG+>u69@+`4lh;Kvm9F6 z`A=GLq1m*Nr*8!>OyLBs+!G3JapjMT;L*t7B5c#hA8A#7pb#}%25 zw9RZEgWJ;22GgUvv+2^uw~*^c@f|*vw&-I!YM6vq>*3?6BUi(=0bqhg8DWTPYbZ2buVRD=8zb;N!n(>*+5ySQqcO?1bz!+!WMMg z0OiXO2yAvL4gxe<$f?B3?T)Mo( zAp|{4Mud5C#SFNT2YyFK?JnfbUke2hzVZ$cX< zuK7|$$ggVOsyJ1Y46nq`*T%76_m{8h$v#j0SwMqDsLGpPuWpB`l3pJUCBWm|sdm81S^q{ z;oBU%sxi_Q<7Ydx-+?=o`5W751qDVIJM((jvfIT%6kR&4(Wf`$cacHnL4XA=(9M89 zrMZ1FSbw>G%D0GEeT&k?{qO$Awyg3taUE=a|GCfR2`;;n2q8kj$mB5|l{T-w2k^Mh z8ALoY7Z>8neS;b(w>*$0!GNea^&zJtu0@|Vy5ys5r;KlNh0HH79xRtSku#^+4RWNH zG}&U?#X!fZAU&cIEuPK8@jjB%{$5Mie?XTJ`b0NBMqvyMOvrE$c$!Y$qcMcLB|_oJ zw^D2mz%`C;CzNTuj|EQ&lwdsLWP=Gn16wQcdlQTieAD99g-mgEF-5**86xnKCtrr$zju-@CVt-)jyR!xyjcA^=dDD#7~p zc^S+5br?+RN1qy1ABdR419*CR858#Y%97A6Hnfyj1xVupfh{+zF^~o){maei)~ziD z>m1EVjOMRvYizMQ*M$$Cb_hwuq>4BJ1u!mL6&RX1XAvdfJW99Qx3<$13Pn#PRdLpe zKfx2^H8#dclg;{dR6ub{uN_|Hq>4P@v5h))(>c0AVdjzOcOT@f6x-N%pE%aS$zv$; z@Z*yeoGSiMa#9t!`&VT`h>5LCSV^iNy>$mgAb2Sh$h;06ZeoSA4TUK}4L%Zgv{CkA-D1Vm zK?f^M6q`>y-OmYZlp7(FS|^PHx+(o@5Syp~?wCZjYMqi#XLX{e@E+USnTYB)D@Hl; z_Md4pw5ndBu80HY(5I$b<@M9$in`gzI22$J4aop*K#{+Zcm_U+hmhnp*@_9+a7$sd z1{YM|=X(_-txfR>3lic2+fqn>!ZKJh3W=@2*+KhZiE}KkUtcKseSHvrA4s`u)=#cg zO6-07q5hmmMSVJ8Nej}W49MDn%g43UXVhp7P7rEUbvCm~I2l=3GgNhJRyvH1{CE(L z#umwaDGNAMqMAqr8x^STxa^W$69+ES@c(ck4mL6w$ARQytY!sq9E zqt^oT1+7G#D8+$O{%8HbBf%wL!ao8<%V+?0!6uhe1-W+|27%&#;=y+M;M0|K;#5}} zAGb_k2zY}+Kn)3z;hS?(2VGb0E?rq?V#8qzoRqAxaLYvogaUb0RGC0X6I-3Q8Ui-3 z>~3yxS!b)ly?Y3F3?5zZw6T4y@N4>C!9lh}TrCo>?u;?r#<(Li8Cc>nWJLX?Lsz=d|iE)3SeXfevF%ZdB8;Y zHy^LDZGJPxh~tbo$B*m(GS5Mzt)LYURfc!6(1)UsV;V_~YY>D$d1y0}c^7cDkOsFQ zj4d)$;in=Y7Jn=#-^EVFqxGE+X3;sf77<(I-+j(rABA>SteVr(+HY zrr8U)hFME5KAYPhX5q|f2|2rs9MTWlN9lmT5{pF8&W=Kn1$bfzgaQv*ApV;!0vDAb z9vYJuE#(U+MS1U7_VB?yEHS{h1=Bpnn(p5IP%0{4Y$9Z}APY>)t|QyHIGRJD9CL^X zjzliN8nOGK7P*eM2_gs~m&R!MbwI1WSC{x$V$c>SX7qWqfv?9KcNWrx3uDpuw&{na zwvX4csNg!mP`UTXZ?@Ba`KxSEs@(9#%7gUU%OmO4?*OB}vOXrgxs_jF!Gr6SODJpJ zd}|~9^&1=MAcr=!gU2u4euP8zwe;g3598a3c+iym-}I#_q8WJS;)%+PPw}b!-sQEl zpFI6$-w(QC@0@g`qDl@D^(xP(jq$#tAk=e~As}jlyg352LfUewcQ7paOSF|B3BuI< zi&w!$ejsWd-utHM^6(nldFIg6AM#;I1AJ7)!oH%|Y4fnLB-z-jZ$ihQv zz!QiyJH=YjGLWhzXB^1Kq?JNgZ}#C(91_cR@Lp!q%vIhk&9-CW&<;b<-)|)Yw?4z>qAMu}tKhUA z4KbN!g=7ahX>Vu#!1u+l9vs4WfU=R-1~UBZyUWZcR?_jqqbL-O)0VE@oJdbS=tBlK zoqQ{Ys1I<8Xa3j**7>7p41LaRCo$Zxcn$(z0@f3dwv*`U>-_^-%gCE!!1h zKqXZaK!o@Sq8zxS{wN6RocBHlT|&sVoAOY| zPJC}gn2^Uh_Q+p^6K!SQ{7hST0BMm$1FTDCDS494spW~iCUTfn&4N#BM z@ZKZ_Kbl1}RFzlB((hku5IKMceD47s1>c=vL8*=$@qGDM$OI1;;B%e}qB}y-PFq;d zOsm(hpk2X8WMLA8?~RSLbaftMdWepEhp{#~$6;KY%al0EAY?JoEBwwZeU>-LI+?0- z_zLa1!S+*JXDzeWe~80Z&v7omzF{IU?kY1lju=YQ3CChGlrTOtr4t8M+>;k zbY!F_9XZ~G;+y`?g3$s8tIprY%>W9iLFUw5xW;i2$~IE2aqj4N9OE|l<+>?-Epp?f z!FxlwdatZnA?V}p5o(kbS&B$N2Y$XcUrAYBxC;dyOj4uK>b{;zID9WJxX%f^;hXRI z1>E@Hm`(#R*T{3A98&ZY002M$Nkl9Z>j7;L*jp%?(1P*jN7L2@TiiKT@iR(zan=7iEguNT60MR$I&jU&aEuu^PK2RIrk z1|Ni!KuxL-?xSUyrP4Z%qr#ayOk*A`VYrgA$w_W=95B+=g`bW=aO41!oo%F0J5^PI z*>Xr2;DS>VcQsGkL-}^oI(E{YEr2dxpTPoR1EEJ>10Ceygdh*3wOXMp%?#MCvM!;( zo0!0wkF5%&DrcFP&Ei00Y;1tKQAw&I4MmidL{Jc=%Mf3I5Fv}_`FR}7-$KA+;=bd_ zkhJhEwmsM!I=w{(i#o|x2XN}>PF6N$qHgqCWp&-9Oz$!|++qc`w~G}dn8(A(Im*(P z&i8mKT%isGq)-IOQ~^=7o0{m^X|{g6x0$Zq*i6GX=~jxn`EUWj=wW*OkH#=jhX|;A z>puu3|KYDdD47=HC)Z*&MgT_*$-oKpKEG4m1s~|5 zz6*|4924voRx?|eEJ)GTYgSaqu$>^;HYydMS1K>kSC|*&oc+L+RC|N<9DYf;D@q6z z5}xjbcmhpSjc+^K9{e+nqQ0vto-%8k$jLs&JD;6kxJtjJ1WPcdj7x#xTT_7tsND4h!~c*ILpK ze=w4cpOi-U!SqB;ROEm9%3GX6Q-se%C#Uv6`)MF5E%OV3jaMqvR3b?8#gfT*Ld@1p zqy`_Y-&`IV7(c@4!$;G}qg)S+rA{*4T7~Y=nrj&*pP!n3#3|FW&@fvUk!0^P0IOgW zzA$5JWZdVfEB)+AHCBI@D_{EXE=nT|Cq|UlodHgQb+NJrKT;UId+$N|=+ZSRQlC%9 z)5WJRvc>Tner1Nzs@K5UavCe%`c;tE zMZ)E)cR4VnCk>Bssw&@NRo|#p^vHyJo#IbV?WDKf;xIaPI~+gQ8_g&!p^zsUdz&7a1QKADY&W?2D#$0-7-tChpk|>|`E(y6f zqSC`5!ype@VKRJ|1(nv;0Tv?qp#^A~cpj8vMy3n&xi`IXkjz&)^h=BtL{Q!=)_YoR zmC2+EW2smiWYN;QAuB26<#21@nU5ot+s71_g2+ zm?Do_hZuyRJYc!3haJkK?5*Wt3zHtVJZGy-<;Kj5#MO3frth{nyKU`4KIj2&cM~mP z;W~~>jb32d2FBGg3M&?TLP-RzbeJ|5!>PJxzpCCc5+YL3dUdsJh#C3om(g}ndF~)+ z9}|XcZJRd2FqNQ*9`);l*R(1mJNbEFn&oSEASRA*_)lC@)`Rb;Zi3~}*V%Gf>)Hw{ z$1UbC)|b1KR2I68d@l|r6+b_zH||F6zkPEN3v=cSyja8H!8&ed_mzr)m==*nnkuM> zlik5GT8`0Cl(O{wnRyQFErW4{!)FfF4D>G6Qb|!1+WWbE=SN>V?6V3jOTrYQ;z0C ze$j+h-GhqE%l@V^5l>=q$jUNvx)n}k-b9vT+LXR|o~`(34=1OHK)brwti`y~!`K8z zoT#Ge>b*27joBw$Bvx_Q1C1Wt$9#GVH)R|)gi$PQ3?G2b#5>Xvw`!IAjzR`+;H`ew zEqBQdg`+o~cN?GPIW6>fC#_oCY08b8EXAy!q24z;((4fIK$~+xp zqfSUzyK?(jFy0>^M8yF&8nd2<-tZRxoVqhs)DWCep+mp>3g2M@ESiPz=K#O3v=ysrp#UJh#ZWL19XkS-$kQ7M)RQNd zVJ<2+V-SQ=HPc^2k*BgUmMd!sNgDtF0zN7Y#7!aFEz_FnCzo9~xzz_HEiwZh4<9Y36H6X;BN5mca@|x-4IJxN5e*9jH1v9cX0jB;XDLdS&Z*3CQja2Czv z;2=UhmKf?;+_GTE;+}P+u-8dDHKz|gSx#@hvyyrdB4fK7UuPGmaNwTOkN@ak8f8U% zJ(iZ;7F`Vp#Boqi>8kbV1lFT}`L|3SiHD71>s)fKiniFZQP)9AB>^h&hNw)c`^$HeKXOr8d!V zdJq!T&`al1(|`S8cNu-MPg{B}VLdWW{kp2@q>JtxK2)?CXoqIox>=D%n3W;r5Vafe ze70`cr<68u7eFJzUsR%1Q6+7DPPDQzj%U6pSmsHeSjbPn2n%MnIK|14G@3~z1%=>P zk%vB13OIEPUu%31oFXrIm~Bm}@PVqb#dJA8^U}FF(smrS(?yLEgy^xYU9Z0{Ox={Vpc5L6i!6?di|od62&SZ4N47 zt4JtlNEK1$4w}T=F#YXW&U{j&wo>Rv9K~mnHqD7ct=^HUiSdmgG!|KT^^}8H8sWs($Ym# zCSqI~lUog^59>x}(B~D_gS_YYmPQ2yi3jHpux%JcFBAPu%devGuv9P?6da<~2vZ36i!etGfFMN6Z-mYpIq6P01C*>LCs{!_3$xp9c z7q1oIb2!dWS1g_wuWGt{3*6w*Jh@oxr02%X`Iz|Te!(OPpWR(u%^d!RuP&^mA*rfb z#enoYt0=cTPH-kCx9|hC3_N$-AiL04mX_yJ9}ALCoo5?9B1m1q3XJ?e@VBh;--pOE z?|<-s@dc|^6lwN{N0aj${@0hDMM>M)!B|Im#UN;qbk>E>bQ55(%jfoLdi&jbD1AB^ zFO_Atu!NgQ^#o;q+`4#hE0Ela(Ai%z6Q!^q|sd5rtwW+M(6OWt2o~ zOc+qIfj~#KIA>cKq+u0_kW9Wu5D#TyAZHz!M{Z9WR<{F@5AR)YjKfc8Y^{=J@h$o{ z|M~w;pZ@(%(@X#AC+Yc@zZHioZQ+xBhsNHfOil(>@U^jZ*2O?+BxsbYlB#?|4&qPc zFt54OnmAjj8g~PwzSgOsP~;#;7v~f_^ucuq|A`(nB2@F*H^w$g4v<`D`={gg#wM-` z7%K+`vSlg7k4EsaHw4{KO+)xhY+@(UD*Vy8%-q6S%q^7NO)ni8yf(rq?>pHpcHlre zTdmi_-=Ip}L3)0wU?%@ zhtGLkkMI@m%GmrBlSd&6ZiO$^WC}`b*`FLtRX$b_8XjG2azVk0u{YR1A%T!RanYZa zP{b|4`_?$efT;XJOS@x3wxvnj$lIp#I;m<^dtV5Mp@3dc6p7yRX(cN z8-aIf*<+hUKZRE-W5}yvlOgvy{tH8P66@*$4!KsI=5~1blNe+f!cWS~!Wf|cH1pyH z#zaily3cl@Ov1iY> zr|}caUl`AfXYCc}QIr1RC$E`f?)M?P7_MH!Un^%;ctFaP+4;1v(3xI&r3ZM*QH_Z0 zzIRNM58S?mZ@v##iQCE|6T473_2=RJX%<0-)7XBD#9-Z^62WmL#7+usy;y$BCXP0J z+*@{jjuZNR)J;vT4vFK~o&ygA(|&Qt@gioqja0P<@Obilft%?e<6GYSA+8yXIxc(j z@XO=0##{c&O7f4oH6kJ4(MIYE_Yb$HX%xi^E7U0q&CTv^z;(#UBPQzdH?3*; z(Ja9Wgrzc3Ki>LS^+T%-qQ9M7G25(AbRdwa%)(NkVg`9tScFMM0^!=_MM`2*Q8>Hk zpwEPu?<;J>@dUGOtP}O|7XloxOlKqKD|bNwu2SPu0drR2DP+o^v|2P|KY>-=JPV~l ziznk$KfqZAS94`r2ANt56NdIRPaxCh6M(@x<6aoPf|C|XRCZi5!?S}faI#f5LbGsX zo*@h&5LpirwWhi@V#ZY5%vZsKdtTZJ)^J#*Vlz(C=BopQa6+#c@$FJskhA=zjn~Ap z-YtsxyL#>L;&uTid|E*oFVaMwSW6N=TR!+94@Tmq;A_rqZ&EN?-%@xMKNP<>RNV|} z5c3f0j2iL%n~|a3D2tPoH3W}KSTtN1Zp9%#cu~K%W*E#yHc=!(V8oHg6cA|H$VYH8 z3s=B)5NsAu*#6xo>*)YXCPxR@!a;-1a$My@>gvL`i~~)^049>QONCN}j?K6YuxocW z($9W2pH3ba02iFY!o?QW=hCxmZ$I%&U+N{Ta<@MRL(3dL;5cd8p-$KF2SZb*PM2td zy_uW8|DOdb`75Dq!u-=h2VHf##diNc{nMGWI^W94UHB2>^Ewlh^`=MZyRVO=mtJMm z4_Y8g^2`c8!Q_6zfpT%6$WMRzC{5hJ!nl8!{+tIv4_CT)u_t}wg#kPRI9iyTcTBj0{wHC_H}h3yz@-RFykg{*JQqa_#Ziti8m`HL0ZEcV=J-}ihLYd)FL;OuG=u`zGPy``_x@H|rr-B7an=f^ zy`wA5p=h{qYc{>~au0%qnDei~M^L5}jxGxHy>a*6TDp&ra2nqmy;v1DHT9nHlLh*=)f847Mb$B(-4s)AC!Ru-Ld>^*-2P{TW6m;wI{`BFXj>}~wf5Q-IKT3_kfquq$#vbx+rtio2ztavyVG}G>8c%85tT#U)=?>s z`NhfMWb(9V2ZQMw!~<6F2ab)J#h7ny5* z9)%!v=C&pKW|s2`5c`G}fAmG&4K2-u-y`=RHqi&$F`yZzWjIA5yB z_eQza322dN^R63}2Fiujm3?{}_ZaM8!i9l;R3p7Ij8MOV_+$_6q~Uf?=UkiM`^FgJeOnqMt6J~ZCv2(>r6 z6V+1xQ{9+-t$e>V(;C)RKoy(5X9YI|C1GkNwkJ9=E+8-7y}q4hCRjd!hq9KGF!qaf zvGxqoa_~mLN`H3k=v(v$@uM4}bV6=`FXG-X4dcsD8Y=B(dj3Zn1UAq`1kp4v5MkpW z1~(|4P$)ac9sx!_)=6%erh5kOmuK0e0fTbc#1f{;CbbyzoZx$Pf`ugfv@OE3=9fCb zuQQFG#n&?M91oRwOdl|~dK2SmsWRV10DigsC%B43qkK_sd-zt>hFNDKor_tm1U2je z-wJ8l<%zML_)-wU%lu3JqESB^I-?KY!7}kCiolUE7oJ#XS!Z0FT)>sl7CfXEr8DhQ z_4NYDt67PvbMzUuq+e(8xx1UQCy*7?6D+~&Z{Ao;r%rXUD6E`Lf~r`x((%rFX-S3R zqeoj!4P1y5*iw6N@q^ArB5!eB8=gCiReT9 z3I8o9bRfo^9hOugH~^D27bRn8k%1$ko>b5ys(UMjh&;0CIhYzu0j4Aju0@w-%t2jX&9cpJXqoaA@)VDX9yi}NFq*{V-yRqOn zei%QBGwbQ@`TK$Rs;R$H)|pCjmexV^ zZX70KeS}rfPuZ^j!Vwh5tYl9wuBGc(kbIkoNHesAoj|Tv5=S4h&8fc~IEzk}TM+D5 zQI`G1e|(eKX=MddVbfocTf`;$knIKFIk?q-{KYgA zpq?~7pfmC1bp7s~^phVArSs2$C%nN)qd3^6K`7$Evv6E-oyJn~&wlw3{?dXq-EdmQ zD(cG3%jx-Vbftr*hSECt$`lK&34{MZE-r4kxG;qP^k05Djdd;C2YN^0Nv-MH2Zx5GUaNGGg-XQ2r8O9yCujH;Aq zWr0I04moT$t|hEU2k$C+tu7)lY5k&7Kns(a>8sC>t25X;%k*~z5#goTYA1Xvkyd0Om@nUzpMz{gA{1FG?RUpgjuXe5A zlnMk$!7W}r0pG|c@|NdX#~Gg(7f^V)*yALZ^^Z6~SD%$WM?BI=a@MB;)&OnN17Fqo ze+x>wO~#z5#o2VWc`V|GVk9!m>4o98OqCU=3xVNylgE7F6-o%-S+rkR3o4XCNKOW` zZ&Ak~sXq&#PWn|^%mHteEzBwuJxQ6^2(4_9WM<;M7-+QK0`uzD%Q#t< zd+YFt?PsD0-sFce_Q=nIhcXHl-Pz4^cS$-hRi zcoIbjqnmh$D`jnSVS}xcp|mqA0aro%?5lf&uZ${vH7XT%J=b8>Zlb)8!;6yeP358O zw3Ch=?guXgcAl#Iz2=x?T-|7qt!(q+^IhrI1U&HW9Bs~4%#O|Uy;t{h$b=TKxvolC zOzOQfW9z#3+{4)W`gaH5y9+E#;Ij*Bb1kl3=EU$Zlorya=^}7ri5i2-i+&D~dEwdS z^!`WNC~Z-C!N<>?+>auV#TmTA6aez6axWn1oMwoH=U$E!{qYZm5QsO^WhOgE4s@gw zKRgW{$OBB0RdB?Fx`I*aB=`+5#A6>ynLqh&N7DztSx>%{?(73W&3v@w9Qs{ zU`W=XbRz$#7jY0R;Oc@x+3NMzsK5P#C~CG)&a&N*`Z$EoFqQP;A>JmEx5qu#3a!L& zl!mda`{DPFr1NL+KgeLz+sjxrhO(zeAGa#?@FUJ_PubFRK|9>pPn(pX8IiYG$X{Ps zK&fwIVbx3D+d^|7t;Qm>{Y-^k^$RT&I9ZMyxS@b5rsJjfQdwFMXXRs#=qbbg?2GGE zfJ$tYj3-YVPe+e17P4s2hW2ynk$yFok?qG=h~8lQ#}X7iAS|Wlkm$`41guYaO&%BE zD|R>Y=U=$nA@(-)qR+<;`m2-Nz?JVC2zuwvp1~rK)8TE@s`HPsL*><1IZ z-p}NgZQxj7S!RnV7$>{dt7DqU#eq)|M`g=17h5TpVp|{ z)80$t7$KNiV>CoGZM0p(yDxkDGuq)_avdX`&XYf)>j}Mw)Qv zMD=6Im;K-W=G~3-8GLGkT`B_zw&Tn#4?`1p&vNZ9c%5w*5V@MG_jU(;oN>@Ob1u$1 zU=b%P6S;_m%acWTShBdB&lSKgD|OGO`91!(D^DX%QvX)lW9?+ef+1azgZe zc%8(a1D_y6zB%5SR^DQD+n)Au?%-F*8;$8R8X1!JRS;$2WLiRYt!PPHj3%Ag zZc!7w5W0W!*LcV{@*$esM9|b4MhuRHE{c8Y`^VBT{os-=d>s?Ve51NZ7xw`wL(fn@ z=Wisce=Gc>_S*dSgc7Im^^@K;e&2mx@G95cU+Yh1{saW-5vse)Q%c;-M{+vn<<_~n zoqV7faiOnR@S$zA6g{xt!*TphWKdG?6mCOk@URXhJtUBSTvQkrWn!=l^iVjyO05^4 zc6C)hhdT)U&0&V$(e8=Fw4nZ)7zN0NJmeB0=uhEZA9*_SXKTn)2tT8qfVR$8w-j`T zKd`P&EellO$rdG;Oj#0TCLRftkq4%vbIlVc*@nYv+3Z|~)8F5n_G3NN+*17MSt7U6 zn!k9IAj{FQB+4#U@{~9qJi?5hfleZJ`<;iNsNCF+gF`?d+EEzv9Jb!79Q4T*+BRnT z$B$d)&UEMA3L5cs1QD$1j%J?{TL^36zmak=WWqR2$uFycX%v;MS!llaR0qBbwqk{J zn{+A}4|AHKlm9po+IpoCvocXJs|53h@q_=-!zsP?LMP7Gak4+Zg5^mQhq81t0q{_h z;_J#9&3IThF)0*o<`8J}Q+nzwXK-!xrHA;~(7(??{3f2oLTeajnhx|5UPu)ZRWLrU zz@l8XnV=3IZBF0Eg5b?}SJLg-H9GfJdi}Y6tR#97oSeK7k7QP_tu09J<#&Qrc{DVf z(kmP}@79$&_(G7#hekX&hi%F@=v9Eq336JVB7d(|bqH9H!dd9<$4k9T1~8>&q-$TtS7~)6aIM z|7HG2dJ8lDWt?};tS+W+TpUZ!KDR%0FtKH)Q{-noMNzrdiVb4kkHAA-esL^){K+bl z0^A2M!#jLpAiebBVanQ?Rw1a!-;6CxMKcYLX&;lr@4t2^{rp!;>E0x#R$^s)V5FTb zLxXJ7P^_X1B#<@*Augtu56HFTo;^%XUVMHCe!IdV1J;gwYsc#3d(R(YVFv3jkcj?6 zVwpIfd6(PRXD1)M_%iv%GXq%m?88!Vk=5q@I9$n9L52UAPl*6QA;CVY&=CQIe0BlH zElP*zYxi)tGK96s{TWWLg>UWO#~@97acQi_lHRL%sE9ZW|2W7Au@h6%sc)qVVRM-i z0b5vf=!>lt)`fLoFkdUiNriPCk3M^2BpR^v1D+Z}flzfz;Ny9ZDeujK~8p!gA4IKNEi^iKV_` zVT=X}8mu7*-VwnU+=Cy}h)@bb6ujYCe>p55w6YqyzPiSN5Yu7lH-7X83u25}NF&Xf zDN5%7M%vzj7vynWg@zWpoBTqVNSUI4TVx5wpXD}f2~|D#XkGXzCcE5Nj-WZ?(2tf@ zSMVLY2tVpUc}NFjwzY%outuL&>2`GdU^;Nfb8n68N6Hk1#9|QTT#OS@H&wzaQ|s4mV34|vD@|4+M&M(oPNTenpK7(KVnI-a2biBAJ zQWXjn@;APuA`Tcz1U$t`QIiK9)Nd9Ge=EycIbsb#IWT66U_PdenimFdeP@vW_!Iun z&<;wY77h{|hzYMS&{@@Jz%n=~F~1Ug7qEoKx3RHp#)8)L3s-97k01r`a6zjF3y_OXLGSA>4AF~_%d}v3QWf>UJGw-aM|^A(7lEuxaaczQ z+u6REPL7iq@~HfknoR6qX6&$6<-SGKj0o7sOT@%2O3hoysq>H6204ksjsE3g5q@#) zOQC!-J&0%_7}h_+F=GlNoLt}5w(@>OPdtV781&!879wHU_xsSYWnZT-BNA#|yi7sg zd*clz8e1F|cm^MD^C%Q2+4?<+n-muF8SGSUnzuj8Azj2Z?&W$;a{Lh&9$|lT+$-^% z;Dql-cjxfihEP?dwzl-6AREW0Uv{(O1k<*$%~iq;kGL(^!=5rPvkd$v5Xt|PL7&Rf zrU@0}^LG(LVT|mo@_L7M5w4*q0v*GpMGqfvk`?1HeZZ~owsX)3@ilf}^Ow~Xc?OJ} zeZ~PgV7(SNIRm#;b4WMs1;1BWXENXwrK`{K?HrqYq$lDnV3e`U;-@sHbrC~*ru`Dp zvPb!uRXS{w5y4U|~5?^V2V$?r?7^0x6>z8N#)8tq+P$6NmJxt2$K z%Q(f@X+MR|+_9m{A%Am^*v9(CdivGRX4o-=r9YNqi@5Q+dna@<;fQ5s-KQ+Q!W*KTa4 zH7c(Y^GFZXoSt06b=DdSDBY=#E&dHC1WlEC_PzaM8iSupm*7u8A3{MdUsPE%c?-Fk z#qqY5zQCm~Tmn#!)WxQAP>HJs-F!+;rKCLP|HS)ULxJ&lx`KcHlH-+j6@zHKDtV() zxulD+Jx2@>wKNqK7_W@~ktRBN0M1$Rx3oj;1qftgBt{05wE6&+eK`kkM~4SC+4tm6 zEvy#wvJ=VOq*;C;B6*5O`~i2-_u2mJm^{c1#D#gRp*KAsjfFLs(?RqWS|<{v9!zB7 z3V@G}X?EW+l+}0duw#{-PZ}&NW5Cqkj}gKV#}Dw2cohH&Uif9m7bh|4Jc-KmPK(ahq);ltd}6v4ky5VB4OI9kruX8&W;4o-|A zs8G5D>NcYPv|w1^8|Lmf`#r+8zx|wGtYXZSEl(nD!Wq2r5-=EI`B_Sv*hWUsaZ&+n zJVFqMZCNN4CFYIw95){_fKz9b8DY)0t>P1AC|4q#R)YbbzYJpxPFhoe3k-IjD;$jG zcJNm0!&^8p8n#90EuW+(_w=g8BchCy3+_7zVG@kil@~6wr129yaoSNk1gx@CI68>; z#5J0UA7J4g)6|G>TI)8C)9n^ zG0IjpBVq~IoSwe0lg7t8u`2Z7nC2J&WDs;;1Q{BcNl~i@X*e4YBR@qOx#gU15Y*u# z3P$Z1@u_T8P(o-yd8D(}5Ke+}s1pe+(u0a%4BR-`=pxNGo zff5Qo3RMQtAj_y3aj|+8B<=h%hvO&AyBj}{9a!Ap3koaDeN0F=SThDjvkw&F5A`MC z@)M39Kqd8$HK&)pgJNTx!(!$rdkb5Hw4h`K)@{?s=otuUDlohtRPQaW)>&?&QJTzg za{HBgqnEVhT6HNb_Vb@#9%_>$Q|MatL0jKk7$)fMLqelnQi4!b%$XJ0PJ(_6tAi-|K>ZT#^Mhtr#HVnepRkdDyz{^aSyOsca0 zVO;CL^bQ4q8+pVt@BMb@2-~n;?dLS%MXcOc(hycPPoF!K&Ys0D8hIc?M4gC6q~j88 zYxzjOCB4CTyejn6xBQr~fot4W&*d?HtpAPoRUA_lLaN7j{H_kt6pw%ZJ>LWh*4<-p z%%*&cbih85{3&2y|_6!ed-u5M^FOl4-R(_G`drEnh~-TZ~JJ4KSUv3GJTZ} zu@#XR2FD*SWLoV1U@+xjR?{I^OA<%>u}O%p>W$H8ks^wbY|%cFu!qWsY#&7oit`30uHH%egOeZ=y!Z+wbc%(R}-$`b$9Riu7hFYFX{B#;BMUmwv40wG6NQv8+pz#M zuKrD<8KJerI=p9Po6D1r}(y8>PApreZ|Wg9774)K?8(3(lK(_TD&us381YFY=VQC-2}-@hD~) z%cwl!)aB7SUKxKdtzZP8hCczt^61Qa*m%vA-qVzO8TUjnoZqJ;VHOd|X{c#$BC3)J264j{!%zvuYgs zT#Sh_a_<&<^RbQ#PmZL#ROWHmZ43dYyfEQoq00EN_l+;=35ECj2lMpzWkNmf<8<^m zj2b<~z?~abIm?a04(xp%HjOQwvKDrm9*n*O!PG6KkYx1qPfwV;>y~c)KCs2iIrF3vMndEin7V6cWc+ezJA`ZIIhIjyiLPd8NBsl zhmKnwt@a4c7_2htAj$+$1YPi2qU%KP9zSJdq%Koeoy=t3+xdN6&Bubdv??_boB%lK zr3u)YjCBQ!N{9H4UXoyd136c!eYS2z)|PTSw;e>y{^CTjjX~)+mWszHy9yYUCB}1d zWM{EVQ7-dT%TqC8?jn?{zVEVqsDCY`8Ry_#iC5nJPS?)^@OuHx7|3L5Oymhj)l2b& zkCck)p`^eNPK6Kid=74CN*A%(ICWtF;hYIJ{neipp>Rw!h9GPkNlWJA&-sgOW*a$~ zI5f_r^Kch1x*0?e#6#iJ%pLs4$2wK{{a@f_{MCheGgagyS>ku^@q7PSQ-P7FNYo%?tmI3+8=ieo?9l%DEqNoOzgkv|N3T3=yiZ{Fr#Q?b4SA>7$a1+8qc2y8?jA>$m_(tH_d=1u9Ot84hGURs`FQBMB zILcsx<7N(1a&bWgs|S4u%j{#|=bp8kfDvt7)vJQX(7dL4VX~@J0Y*Xva1p z+U9wE^K*2~TNz#4a)Ay-6&dt)_F^S7nC{=XoBogg{XeDGUVkyY{`#v}*dIjU zh`WhR7U(uqfDo)03L(kXPj#kmAm!%Oc)pOAbr(F3_>qqIKJz-hsW^xmzB)$ATQ<0Q z5QLh3Kd-R=YwOWN1YPVTI4QQhXP6)E5Af%-&dg|wg+~`1gGQW<@1mo~30yMDe2fq{ z37jBaMM0k1yGoNkSKp14%Om{Ai|?`Hp}-+=jlTzj&Lu8ml;fiCUF>rK&pxPMz=xBR zk%b_w7kXHv^^`{AS-1YY52bD$mc!CtJywvKNVr$(kCKI!`uyG83(nr^2xW;S@!k{lngLpM~B`|5Y_d z@+eQ-iB!f(B?$(t=@WcD-@ePKxZv#xyH7vWmrmeo(=i}KFw$k-NPF>5`~eZ~w6qt; zn>Th)dgTS+Zd|k+XWQukl>edZ0d9$JxxEkE1Vo7Okr(kk{#r*W1&~Rh*R}aMejIcM zZY|Bwc?>v?v8Hw6@1in2n!cGW7R|$q3a-kfg%)ieTmw?FE||UVLJcJGw^>7)I;msOkTx3fa9!vy@$GAtNOP@;(S7a3M)uuRq~W}08IcF z#|h-uyc8@aLs7D2d{#VVBs z*&$B5uBBhUr-E}&j|aWI`Yp&N!w>rqV=3@@fPNP{Yw-}_)SeTJV#{g}Gb z=f>?v;5LGa8|eWSC@Oia*Xx|<>^x}SzHaJXI%r75EzKDCC_hN&Q=t9f zhx72sPIeg#2hBZX2gAGX&tRRjkM_=WT4W08)F7Nvo(B(i(mQWWr#3P^j&i68;5R28 zqMVpXV+Rk?c8nF~8+UTHyuHJz2>^8)>FImurnANM}z_hHx=A{zY2f zTa(II@IkV&-R)-%m>TxH=x)ZFc`-@o}XBiV4PmY>kCh_n{r$_V>bxaweC)2T`9(Y<4bp< z9@WJQ`CADAyMiCzxtB)0j~@}^N?w5r&qgoz1x_GV!KuCTX3sm@V9%>v(euNTV?6oo z?&P`M%(t5hUytaxr`~0rapvB=jns*DvA4B5ouiF)gB;@u-&H$B zAZdW89^HZQ+10i5$<+n)H9e^tQ+wT>VN?uUT@!I;3T_28?1IlAeU<_S4z?()qPY(t zsFUqVJ2)if1jt7#H0Cw~Q*$~oj^py9ICpQu4-pz{6)ug+7XSc207*naRAiw*V~|iV zm2zEoXhs3pg732pwt=`3sPBeZPNp)O&dzm+yqSSZXY68LZI546XO^<5)cnq2R-kaf@TH!h(?6iQ)tR?_i`T-F8rtu5n1q zBLvk)Q+7H}GSW8*=KcFRLP5F3_7QaIlwV5C!i$~PQvi3cwrql}Z=sr9z=`GDoPxWZ z4&OQ8S;SlPiU$&*uvfRxMNK%MWKc7BR!eE~MOMa~fVyo$|CZe-k&S9PCoh?cAy@()BqK<;Qjb1?=4fZz zdzpi6di48tv?WemmLV8a2&v4`eAfB1jU{Yl z5~2RJ;3OlmbQll>Zf1inm%)jFi^Xz(}R$BVE0 zM+|ZZ_~oHo`TS+rSBd^RUCsJS7NJB_KzHDB(4kpEf#HgDD~zL~TG}SZm!JzF5IWD+Pl?LI|PUuc2WMfs?v(Vyl&tuteYb zP+5zLHSSFt`1y@E(uz3Sm-Tg}AnW8sr^?>PGi5|XjbHFh0e?X#<){^~A?~g|MgB34 zRNr@fYe@44y|od(xHz@!L#U)egC0yqT4{F~o~*)}YK;1{E!LLVt`1*x(%l2C_Tx&! zdUgC&`DmUh`-J8M&^DJof+rHs2_0?~=`Sddp|eg*BKoi>{O0q|rVl^<2y20<)QWFf zS08~29BMBrUOIJmf&9XP`JKQww`cpL(!v9|Het}H7U*;AUKk%wGgFi4|NOH*V~hM` z`qB5lm!7?Fj?*4{A$?$@m2nKEM9~*if)u4jwl2&Hj@;j>ajbz(;+8*R6nKdb1$T_o z(r}Xsh!d%SJ2*6u&R={sjUGIlM)w~^(AvOqc{<(U1j0oWY5SS@wuAF3ge%PiY}>H} z?#<`7g-mZ5r$UGE)R-7pf{r|DP<`X?$w7`Gh=^51gCxSL%C>$VUsV6_iy6k=weatE z_S8Un;d$JNFy=)%(wJY=CD#JW8`g_)=g^eid}9qa6ASE!z?BHH!-aE$>HFXBV=Gjq zFZq~1`H*B$p%K93ua6k}fBDO;^ywATqfo*h_92v#7oX}3c|v|9UoZq&<=YGgJcOY_ z^1b&wC<-d##nS3hI=HVTefPCNEap{2yim$%X{-dc^rV^nnNHe+L>EnEe;`=?}Uotmf5K@-B_%_ako z$|`-;=E(L#VxjofZ{o^4W^x#-T9GMW_PUT-2lWX@9hB$~gHD+2zBJ=YWHJi@@B>R-K1fSiX%F#}KpU zQ9MB8dde`oZw$gxS$^&2GVY={c^Uu1&CQ)@l`Wv3U7CqQVf5E%*p(JIB#kjy%fK1r zr>j^4c@nCJ3t3Uit8E;>vYbwHSVg}I6=9Ibeq(h6jdL6CdFHGG$`22RXLlp?TBhaI zjx;rmtC&@`q9Q*O9Clp=KyXZPjCMXVir@Nf1fnhYw{86J!F*VzY4K=|rl*-iBl0)B zV0^cN+_Q?MrV~sL`*Ev#4}FGFtZE0Tie#7IJy!{GEc0(=zY*_B0&ZL;^fh$YQ77X1iS6$zs} zmwRR4A>@ox$J)}3yDYr1JzpNACE?LSU9m{5tSRd;PjRuY8NB#j8q=-C#S8k+-Awb3 z5IC9h53`tk@eGF@F}|q$n8v$g~ePI&GB_$~v;3wf2faM;28sa@~KL5b|0b zk*JIESnDI)WH|}6sf6-9SIBNWL)M7iVddotjOrs{_KC;qsy>66a*z5T%iYS*{M>-K zpZU6OOyqyEOBb|E7d%5!1GM9kRT+v}?|J8U+smA_(AIsNuG4%W?*3x#AUL0G3hsR; zZUWJwakWZCY z(7%azHV;E}sh-PI{}M4Zlx22<%z$5W63M<4IG?E3TmRL;O;FOj$B6D!(jJ zlu%`tCjxclftS_l2a{Slb~E{1OSjp6s6|J2H%w8Vjj`QBigg0Qg|E4hov^CF0&b1r32v4WTI(cTbnKH3}mjxFrF*mX0 z)(^_5ldQ&a!lsj%*g{QDWqK62gq57)mX;$l@FI15>GDnp-YNpM)Ew&fB)Ora;pEd6?2Ke!iZ5$z;OQW%rG=;zMpYJ@*`^w)UD3TJ{GbF;@W(2h`A& zkY2^vLlk&#zP*t?=5VPM7;YC6;8RCC(`(;?Cor(8xRln#AqFwhMOnD|q5~i+i#zE9 zCcqzH^$;iFqNF*2pVODHGB|vgc)-vvh4m3XU^!h<@#qSpLf8s)|JkS8>DO;BrMnN; zP{y-8`9ueF-^&(lx2(b7E9FuQ?xd-O>OLz`a(%?44LG)sEY3PnkPwD>EK(<0E! z%66H4`t4CHb9C3&X$K{k)adcYiutM`fK-XO7ndgnzvUcveSXrrT@k*-gEU_c8RG7D z^{-F9%ZN*7TBGU&-EGc-by#YpT~szpA0J(shjv@=W7(CSz1W>jp2=3|(pVX;Y!_i! z75)@1Rp#D-NB`>085RQ;u#j0zNAZFD{L}kTa2!r&PaKanA5^dd{?;Z3lQiChgfwQ=cbz}*N2dNm8BL^1;4Y}XRulx~3s@hoh<&lVUe!dKebxn?b0yFJO4tsX3)&%+BD{~_|Q0@#&P&gb*~#yDa88gkZp?E!ey zONFdoY!$GIyXrAV-<_=fy}DC4w@p;DM4((wI_})vNk9ALBK&MCjSUZ?cwSCF|K&tX z7+-xAKZBeoEDtRGJ+d)-ep$iagelc&A0?p~$-|0nh zjZ{Q@+t*O*XS}od3^#9L75M3L>Y?5H*gEN!r_ZjSsNo>DVXRQJ692+Lv)`jE6D($r zVfp2$^GmC(SP4!dcXh%Gkw;mSar@lf5V8O--3EI78e96Nn$rvCRT4L+S!n&z&AZ4n z9N=<-6O^G& z3UMJwey(3Kca7bd;II`ceTXfjDioDYCMH)?2vxU3-nHGN9nrqHD&2&^enpyDf*W1 z0m@s(LAQG{9x|w?G}%O^2!(ItY1wIz;62K$y}%wtfq8`YeT*%*Xkbq8h^>CH^%#7# z?y+g5^{6tgj&C7*^1<=Qae8oIC~%PeyK$Jfv_!iwW=36G)Lh-QtCbLB&egJNY1v6b zs~}Zr>lRQA0YWw=j>#(!1&#U(@dJj7_lE2)3hHp6XP1+CTR-tLQ|==Omv51(`fj;Z z+_zwekXuT8s80(_%;=jrn+ixBwv&9fNt?fm2%YWHI`z*SONF@k7v3wh2vxpO8Pun7 zhVUn?vPva#2P>AksaQhz7#MY{JW5XJTz(hrV0q{|8CRk1L5?@V{NnIiBYbi4_*yUD zmx%oJM6swNe@ZwU^TvR?9H;PG|d=ppiW8)(H%Q}X0FxC;>_r?dMxR-tUNF3de z%wY6mn|m;-ZrD`jIc^!E6#l7xj*;?@U?se^UwX)o#vls|EHIPzAjV6c49t050ascS zpAyVFe!z)C0J+YC!wqygZH&#M76cuM2L&VLu zxqi8Km(L&z7d`9@=|h=l|26pzZVh#tcjS0Kb3EPkW5X|2)04lW60S|$K!C5ON_+ZwS6G5xG z=~$a^rSmmu{?xP~OA&yXc1;yMw| zTaqO$$dXU;lOPz(a{4&Ai|w+ zvD!kA)eQ6jmT%_k3BzqL_%-|+Ub(&;tAQu`5PImviZn4{ut$4uZ&r;!@7zXfqvhuH z8~UkhVGw6kVW*4wolTdo&a+b3nd?UUX{TH_!cduJ`51(3CoF&NPHf^BcauQ^Uz9NF z#g*pt;guOy3h}py>9X=kY@4Be!{UR~Dn@lgXU*Go$b;!)e6YwQ25{871($m8kgZ`` zbF7jMrei1+qirZcl&Lh7&!8hl4mx*la)Q@~o1CbNZ$+HmFK}|#-@bDXW!_Hu_Q+7p z(yZ1*q*IXDDdcN|wVm z78b^;={N6erGNO@cDgXqlLoO|n_OB?fBEx=Y@gc1f^!&!tt3`b0yWd$J(x<;{Qro1^Cr7)EWr=Vecv~($yFq^l%$eWs=d0a zsw-U6F%H{de+2(GF`r>R#{6kVM>y<=8HdB3wtHr}y1HwT)HT|7iL030nPl$!%S``% z2N&JS9H^dAHMlz(D^Gzgi8u zKU4km0hIXb*A@|ot-w@HrqLb{_3wc(mA%+3e;#L3T0`er%d{ddqBJAYur=;t~J z%zrrZQay@~J*I0Q3giF!*K4SgqmA3wiRQ>=`prK+pg$SrG(EOey2?tKSRNLQFyanE zndztPAOQb|H#X6fpzW|K?N-gd`@?P8)fy{6Q_;6X7ed_PM62MVpM$u4t(*njQqc9q z%PhRmr+xpsL$R$(yJ}INRYY+ruHfRLz(4$kQvvBOHQ?}I^IrNT0)-!bZx|S8Dhh)5 zg2?HRw8nqz*wXWK_3WuKl5sG*qh@heM7{Xtml(2T8~(wOBM z6FWHd58ho(|NGxAq?fVb*+s`bdv`1S_O9x1+ zU=*Fhg9kjSuPXKaF$`9h~B%XtsDlN9&s3fT*I}=;)(t1sJgDJAF0{JYsvl zAxu2{80U!Nc5O`@boY#;SD*hL>D);F%m4lFvB`2L{pBxz&LjoFUMIU5)|VV51L3fn z|riDtU_%{*3b#A^tY z8et1=TkJu(iQww$4R{9($95wW=wwBDVR4m(;U#QA55#t}EL_cfk8w@YAIDvVR`>30 zrCDssojNiSr-ioz!*eiZDXWc*{?v^?(RhtIwygEws$i_HY_qt^0RS}m&fq;-(Uht| zTkb@G=ZFC&r^|2PP(TDM`Y;z)+8J!R=zBX99x8|<4Yl>`3vW9SD>*xoQ@zhZw(El|nauW5dIrpci-n;VGz;J}gtO zpa*_Rf8ZEwnYP0~IM4Bb!Y&q@^LObQhYAv^&~rUI1dtDBGQTFk=$cYhDPO%ba_>=wX`@4{fLQ zv7pIeZwRC*#jtUA{`_c^i3nQ;d&&hERk1`GqX?~D!sg;zZ!D#&SJ85(eGRZ6pq6wO zc+4>uY=I_&7bK!|9rKV}Q&C45qrJbm>~l)Sc*s4%>!C1T;URrkD5Z|RA~->t3h*lf zHwQ2Wj`q^M{>)8zpxWY4lobw7S!4dwO25SPG){RQXCb)%#V!u_WMP(FUw!NpWGWSW zY3$e`oakGwI_bMO({S9A|2&H@@bHm=um$TP%|I{XGJ%6%B%IL{0SHSWQFuTb(vS3~ zKPHA*T+tMmf_>A>i8&-2F5=nk@Xa}eFr-;szyY4~(PJ#sXF}k+-$2ss-16j1DbRqV zO`|dET;l+=)6OnA`_7zN;|`Gcj|2jeAxfz1+x#oe4?8^{ALpU)1T}PlRY<}2M?E*k z&$Yiltw#FMPZc2bh*ke(p~k-yRHbj>m2wdb&gfot8R2+#LE6vvkU3mpq3sqLpc^Pp zban5bFqD;sI;%NK>1!e`kxKoUrgfk#;7>o>3FQaJLru;Nv6yg{9SBc7m4(03oZ(H= zyH1?kTH68-QA2K_&DQtdnN8n%aTE>j){v_#qGT0xOvF;2&Ga1k=Ud5Rxkmyfh6_6M zp-Md06D41L_ft4L9`cJ1;1H3;VQ-}U?-iuS+-x+D`SefZExNRnfNs)pQSOW^D2Xhm z0~k*n#EyCJK70>uj_)O#mZ#Bum&;}ikDWX$3iGZoQGmNB?sar-p|RM@0fw0FqdhxD zwFP4r)m=e}-oyyGQng>S3ZyyEr>#w?zpP$E{R) zqylxCu0pv`!-PT)KxM9o$}sJ9goTOF2?G`>($of+gdGN=Nx;sm3p4X6?x{VsEeq5$UeB!!tlU137XQO8Il)}@&F9RD!mAr_x z<*~Yoa1aJ(mohSbwiRM%!{oeW!4+u$TVd-0hnpl$p|imwqfZMq^1aOYVV*Y^ar4V70 z{iq9U;b`NOiB1?Q2LlJX*|`k_xrh|D8S*mPrc5lHH$l>FTupc6(&pwp4EGLUm#q(V z!ySZyi_2`AXGMN%lZg(URuFHM8Bx*+%B;!*Z^0a1ySbfuu!-3TT(tWca634a41>{g z5HefNC3M3_^nwR30fRb1u`@m36v{RvADz|(`D>+Kwl`qjFn;ZJTepV0l_m(NVrl}J zKjo*i%qmaKpmM3@-)8@RuIIqSGNjP*RpC}2iTK8MNIS~ayY;+)X6}_MYiSf(8Skb) zfLP|~6W;#dZu;?$M-V8wCCR|V1Ef$Dy2*P$S|Nbq&@Y5bXeMIIbb>81ozU%puKx7S zH5M!o=y@`u0EiMe1f67%QCtpk>kLY_*nYuY#WZqkn27=OR_jYwKbu8hu*4xSSPTVj zeSi#LfmXm2hRpO`w!tm2!rzNc&n{@TmxYs$-L}uRqs=W&Fb9=L-;C^YPQ09y&N4uI zg8I>;Yz<_Bvcoc)Rx)Wd%UY2*H!H@Y<+i;z2oxgqeW;)M-Hp8qW(mmudsROA%RB^N~ z_2I{x=`sR}rw;YdGCI=^xc#T!FQ;QLq)(p*fa!>fX>*yb&z6&YvxkUWn;}1Fksn6` zZiq#Im9?()kDuL1XO6dG!-Fki#t~FZ*fZV&6IR`oXFM|-WmWc;~vNaKBez(V1!QtMZC>L&bLj^6-2dzZ9;z1&q3REcNGnTlf7t)DuhQ1wg!EC z`~_|1K@SJzV4$7ak2=`{pZJ2pPn%uWug#@VREeH7nyK0D5Y#39J6KqeYQ?%AC8j}9j=8wW9r~EW=clW z+aHqdM}L+6<^TAT^wJB@pjDUclTrf2%65oDz!)(}mjVg9h~mJNzgc#btLVaSY7Y55 zG_d$=aexMGNBeG$`8#Ru=1uIC-Asp1u5u97_gHadsXoT-hL$9V;P$5hG=T+FzvId) zIOHheh(A}3ZOu>`yy)$Z@B3XHOb*icoPiLjdMI$XtKnQ=uCtQk*3%Gp#iA*O{1NB` zEdfm-hRnW5MI7VvP@Wa0Xlo00jEm_$-{a!PwyG;A1Q@^h zX~%a3t;_Iy3XR+qW_v&h7^7ZLiTV-OAb5 zi;&C#jS96~>iH2SKy5EF*>2Z62-AIeW|g??T%jE-vqyDutTRrl408s?smiwCBRpYP z4>^rS`Qwr4AKtIML!lA7VptsQVq&+!7U*T{cWl96cd_^`?5^ufC!wH> z00oYHtHmZ>ZUKGn>E8722PS5CWhzd2v91$0~A!k)1QGTpxIR$~r;JBJ|e z4D&WfT|DZp%9A(qVZMA8kC$IU6L+{Zw#0QZ1{^y!z}9W;%o~WlfI2fDfsX)rrs{%r z6-sFi=DFuMNRrbu;XY`?2Ak>_an-0oC$~sH78R2Q|R^*wVCXEKmI4HeT>wuz%5)suN@1;Gr7!XD-l* zBhi_M2e1@pgz_lQAicO_#ySf=k+9JYp#kCa^`iuX@VHdGeH7kNC&H0dG=1ef%zm8a z7<_xcFi|cAf}TV#?KqwUJ@9OLT4k`$cE?-Ig+yqQgWiLO7H0HmRi3iq5pgQGwk;P< zg}aX6)Goh$j{XB>lrfZ=EIdiso+A+99wQ&&^O#ft;%jlaJ{#eS|K7Xt4D*DJpqUTK zamEcd$@4a;npL0Q<1?kxp>U*7?j3^4wpEWPA8Nb;H*Xss5T;6^Y?PYk#9uD+# z;cn*I0{qiXI)0o*NBX|PZx~-Vq7-$+i|?A4x_Ds~nFDilh|EJ~Ek|L+!jtg`Xt_x< zQGQXz+23zo(I@h~xLnQz; zv=DsZ>y$x3BU5WM7&3#Wx~_~~p0wcKg>cD%j-D_WiO7$6s&FEw86Lz(kL9+p9dy9g zSq=0clvTE5Z_+FFVShwsItr)MLJ*csA(xT3xE0OqGo9$C-(FCAqAkk9m04{`$}8#W z#8(w>OqxSDn(e~adFGP~DG&D$k%n4VvUE=9Iv8PMTMwOYZX}tsViFY{n1lupo`XMY z@kD2tScSgg<;uQH1~8#4(a6~{j+>=2ywI9NsA^WX*aujoJ`&tz;4LfzzAgPC6s{aUqK-RezjfH~=ifk9w6sxO?MeeNRd0hxCMkxAhp zjI)}U3SXQ|1gU^dOf0y^4BESJDi}U0?0JA7agBk=j%N#6u&Bk;K~T63aw2beStsAD zYXaEx_|2w4J^*Nbb&dApb5-a0)0g~8Nx9yw1LGAJaQ$hz+(NO75e01;si5rO;gq12 z0V+=os^Iuj?D0|uSt099&9*h^gL-9LN+`1732jnO;t`I!bem~6dquvg&p}h1HX*EF zfUHkoZ9^|R(6gPYbsbJP)uS*>E-rrh>DM4TXo8kOpdBXWs)y%;j-sXIxP04NKDIyG z680C_F2pn|b@J}Sex3d@p>=E;rb{;K>HF?gzWL&I)LFQ(gVH!So3=f*Z94K?(WrE4 znHxV`{h@mG8<%<4Mwhm)u3g(e3j%zS+nI7ZHtm9h;bkUWkf_mamlo01U=ohJ7`z#b zSiZcwgjt5FENwT`T-^l<0^|}`nHLu*`stkd<(91rMx-u;lbhtx^mOLM$9UzZxomxj zKj9j{cb|3fEkEXWyrMK4etX`HSC5>-#PkHO!YR z&Cjq+_7W#O-b+U&w0EmLUMI##9oe=QI|m#)lxC8*5IP{K$!)yKXEfAEnK-0_w|!}h z1w5-URRekLF{&kIdv$#4?H@)9xf>z+z4UMYw||#@_|fO-$3J>Coj!gzjSe8hMnyrJ z$l7zuKy8muBKg#wT%;AhIqgW#N8pQt?@<)Ih_Ovc?IpKiw$pEQz)%bhV~+~EiS}a( zJRBDf@a(ng%uGMx2JA?y{1`T)ReT=48;>xSJpav3czRiM`BN^hTyA{O-z50SLenZX ze&H-%0|7u`qKh?7@D3rkI*c~-^?M7EPj^~u!;>68K7w{Lu_=Bnwi|EZTcov32w&`OX>AACgXs~mNJO|x)BItR9 zJqIxmFRv0jR!N+D0b_aj>|)^r+vo-cchVPk5iS#9i-G3M$v(CjyU;{hW~D^*T~C}i zc*?JfkjIX}zs|R(3+x8I+7Q#z*wg0E$#lf2B1e7kEPj%m0+chSI#}Rh z8~2S>ChHsoh~VzezkiS|TAq?^-=A@b{u*GAPSooG1|-pAJ(YuC*fp}$iw5aNEFvFa zk>>nUYtk|s;kAP+Q`b=cmYst`zO1owm<++KveYd}HtP+)W z%31rJwsq}?Q={h0J{{>2~f~z9R`h9 ze8BVCG5yL7GI{Q?1&Lqh(ka9PE9R~5FkEjFg!dIi`^lADs zBs2?)+WN$P89Qn`9KpJbuFELEu|AC-LKWWqX8pQ7@%VA$X_q}OA`UQtWA}B?lIaLb z=Pgk1$7k{5ZnGXnOYxPLTG@)91AB;3Y(KOdxQrqWWm}_2Id15LA&$etyXo66w59cP z{SmesA(s70$%p(j)f0Y^AL6LRUcP&G3;)vyH_z_?!?r+twdfRf_4eg0{~;g-r@FK5 zqi)2c*;N@WUi)5)cg|hoEuJ15c3-$hzDl2bpiuT>^vK{(=$YG^t;IjFcFdR7UG&Ao z)4N;g-lgqym|Zg62>nVHtQ+Z3oGeq{<6HHv=FluVNxonKR}IE)gfrvNwFg+Kz~NY8 z9GY7!0vp#???F@iz`C>Gi(rUdGPC!XKN5BjA>Q;Mwz8@XNf-q^!ch<&@Q7auD9Q_f zODOAH$1KYoG~w)DyWp$GXlutYcQs0$r1{{-xr>8HNJ~CT=hD{#?8oH`OR0_VxtHB# zE65-Qpv^Aeh;zU&Q^ay4tRs;j@}6Db6yJR}+&Aa;rrV4IDUom)%X2y9?{$CBFu%>Q zGHpbOR7mE$=9e7WA;3D!Spfsez&z@2-xCX{e5MHNxix*GDF?8A@3QM}hsy52BWMYZ zd|_@j-Mh=#7>BVXTl&a?AaQl#YW?V~?br=?(H@ip+@{`%U~!GZ4VISRH=vQyUm4Gc zrmwS}i&Jp8On3vha4BT-BHh`KXHK!w$RK}b7L6_@$OqYFaPZ(r92%m1KxsRZ z3r|s#!V@tu%Qg*r;6{%ghTmb51V6{tmo)~Y)ijNbGL6Z5lC$_^O+-3~pqc;!R;B<$ zi5y+1~!rD-ZTl7y{!SX_ zfdd;ze>we*EjH#spq(KGrvs!fgXh-@4%T;*wC-Nw>=Zel0tAICd*V5HH^HeUj0$Bw-Po+;zxI#@@zz9Z$@PPq1WujE@ z2-60`76y00<&6*24r8EWBC^JW?iA%B(ONO2o9~Tk{@vtzVankOJBi`-rxLoE!|*XauwwE(t0}o^e~J( zwlJY!OIPYpM(cadPli#WgOZUyc^WMoY|`CA5YmTG<_7j$c5AD^&=4_k0AP6pm4JZh z7kqg9+OE0N34EF$WVn9{^d?~6(4*yV#}fJG$5po?%=23~{F}?g31u%#``J@n>CKNY zChi^u8rUrw__Juhbu-A6NpPtXL6y3eLDmkSCw`qn)&Bj@XVcw9>kHumlaiAo9ELJP z8}g5^HlO-cp(H$+m3Ag%C&1(2huGR&+DNO=@r?(wVZ8qc$J@JNZn%JBUX5SnOFaDM zYW|7oj&$r3w);J}msZ$%Ifs3aeilLw9|i{7?Tjy-$jC%qgi|@&rp(w8?Ag3>wuiW$ zCJJK@t@Y6_J#}_Cp+u4=;>4+v&&_}r%gFqBKf;#PUtkaK?a$W<*U6y0nXbd3{ov)H zSiv)(_zJ_kM1F)>!70FF638gKL*EdJ9`xNKliDKlgnRN+MUMCa69yS1IQ;~ZNgmp< zx286Z_G``kI;Zh=U@^RxZC>IKWnx^eQn&T=0c`slX8YIz+M}%#Xh|^vUPH3K2xqMA z+@Osrej_7dq^Ehx_r|!=_!i$IRQ@SJONlfOz7YaYb$Ctj3ck%=fBJL58=}!gLu$s| z=i-XL)J{BJoeXa}iu);dPSH<=HVX{-iDSL#jXUeuA7XGP$UK@klh_~{9c9I>UXTTT zzKc-|N6@Kb<`|RLHA%)!*q1I{Nu8YZeC*^20%guaXkX?EP33e<*GhXbXBh>q;<+bE9?L9C zvl39N08LT&sF;-cppI<2_GP0?Ape`6kEGwdF_-2R=g`VKkY0UhIGsMjiNx>~3Zr#Y zLDZ3*kUr9p&U_r5Zb`rRS%3QIBM)@I4jy&)+%r?@DYU3;i}stAwQtRM> z5)E=Ex5l%4BCfbp@dIcD7qixE)j`Pe9S-T5>|z%OC#53zIn8)6ioho(#lkVVY4T7m zCotyGZM2?D{r&HCq;vP(l7$u^3)th}VR^>Hhxi4C{im=*$1<@_+{xmh7_Yp{glm!Q z-uQWtlG^k|8-w7KbEaP>NAe~72OOURF>X=zzU!#>8tvl_J4j|ey_oJ_{RI1tZ3t1} z9S6Eo9|LSB8j3Xr0BQ~R@V}&CJ1p>`jRREtW6a<|+R*t;-asr|kaiJ%o4#9N`+ zaJJ?3wH5LT41w@dqhJ>iD6Ug@Y9cC_v_j=G3vcbhnSFp)v^4G#VJnOCwomh>5<}~% zJ7ZkLVw-a-2Ssx7@x6QN@R+C5xwD55I%DUP!+u;O@F2BpE1YtNhZLls!hxrzZ7jd= zs`5C(7F|s)t+Ru`MbcP6srX#$*0OLd#R3YN=P{!4Zhl>y_5gzuC&&d``E{mi-TPfy zH@z6M^~WzJ$5mWmiId;uhn(XWCdOC8RDv6YEcV}S?H0ZY6^^gXQw-stw4RQza3BnE zFc0G1obDzIDEfCe#=`?wYcqj|`BD2!EjD3Gzm}!=2*k8eP(>RQ+-Q?+WTuz##5m@K z=n+R6kKJ84TBPTerx#&93ROc=5RbtM2*7JOHOD zr6|V&Cby3UhQ$MNi`d(lV&G49iXHBYP8W$FVt>BvbAQe~_6A_7zG_?u49wQ(PE1z`E` z$Ux=epLCbR#I?9b(*yM5ywdze-Wn0gd$|XkI#BU0xEq-(`eM8#A1Xm%bOa%od{6W% zMv1gCy)=*0g0MeXU$d_cZnMHaw`=2<{1|q>D_-_9qFF;@phmyk$9%vAyj2Fe_*TKm zdCpLbYaG$j`Hl!BwnV{BPO*1fyPP35-K$(d<%!l9N-GW5`2j~0mE%uPRvGzSmE?E zSUNfdq-PMQjBzN$0Ss2|AW)4#0F2C=xd^PtldHQsFi+ZX86<8$jZzIvJM9w)CQhF0 zs?>&M26NdI<}L(4l#h4qLVEIZKOOZL+eSzFu-}FtOo)@ zvgIl^`BJWI*?7{|Aht335#C843Oi4rY48lIz7xQaOl+@w%u#*D6(SF4{J26nK>c`f z=m^{A4yp0*>|i>9nyufWn*E6f;&V4{yz}gU<*Mxfb=1pB+cpBxRs=KW5e`28LT?(M zA~YmoXIaQ3vLr6mW!X4LtCi75*{s7%Ey{*W)fz zJb+!xVd!m%Enu^p6gh}S%3u6+f`fM;fU1s-7kC&SU;#sTc&de>G2lVe=Sprg?*x#BI)A#_cTd`hz5gUrM&29u9hO;qyn1GlNJzT*}k3D|z?vE|C z%0uZy!du^l3!13|%l?mQTuweJ&_)dx@5ZOB)hxbnaVEX{(R*n0 zE~Z0_>mBXOw1Xw;PC)^T1B*$yF2L0>oIjb+d{qemJN7j>D@ zcql}LR`>@k0JQGML!pB}uJMKNe3aAkiOfZ~cxwPxK&ZcZXY7yun?g|loOzPP7*nt2n z%7k!~V2rPhvGy4<^u^f^iAOJsf`{Q1j~(rXf5_W6ZHrNFRbbnpMO}_A7m$ex(>KKDQi?j=$LAm37(wL_P>B z4}?-*y$_2j0GvW2ZA48VNF1t8-Hm*dawClCTdpq1xYNYA_N6iTtzc+uo`Z9ve+^ou z&di79B_5W8tZt0<+O}xt!pp5FxA5?6{1D&m)Uhp^jJlZXfhsa?5AM&V zJGXBmbXucK)%0^Q0z|oNhk5I=d4$6RPUOQB3jsvs(cjP)dTr3~J%wF6iK%5UG-Fy@ z#?qhv>_;35IUMb}&vAtD)nq8{XhuPkRat^c2yWf_Z5dlX_GnSI(i>%@y+aS2FnQ}N z>ehPUl2+zWgqX*!op!&1R>*GM2_xV%#cg;6tVL|W-MGF(+0bvZt<~|_G1Ou+J)LPv zE53V46BbLzWAVR-kY(n&he6h`NpJl#XNYZrIex$}E^vfZ?qng-S!3J(s8XfkOqyGVqe7HHC74gY@3~FYD>OcjnWTOKg8@Mc72!kY_O6 zz}Yy!;WgvJ9dm7=?b1eF_0xu8K0yHM%{pk-P}D1b@WDrX;y=FR_xx$kb3LqajPQ-R z+y@7~72M`N`N@(3CwOjg3qF|q%L8dI@b9s|efbj(K;YE74U{LGl}&I^h5VX*g=HI# zXIt*aPB)r9uizNTXgrF&7PhK}w{HC~1 z`nW%h=J&?4bkl&?@W-$EQ1^>)Iehr}y(%2vbFVDVBfOxZXlE`uX;0qEXUn((9erAq zD{*Ys%V>Xkn!CF!4Ws71^Zqkv%)59dt<|0BR9AuLyYuS@)GlY}muW;C8vT@g zopTYo$;5fWK_}XMh6BVWXQ&x}Q7I_Z%U(YM<#)bD0NQCiV)kkdFP!4)@$@Lb%f~~JJt+`zW?>Krw(>ZW$?e0u6Ufy<#S?i&(mTh~ccAtRLpaW=^A6kI z^68D(Vo~Tu&)R|p;?9otpX{`3Fu)2NNXz9ewA@?~?jNM1gQ;}jl|fLWFpk1)eIP}!maSP4Kpk}CD zk`*_~po7(yBS$#2fz|I2U{MsV__^)bvVb+`;#6n~+G01Z%wWWKwHASFD{8_cBM9-( zYTVlNWa!+`JdIIYtP_Qrxtz_P^<#O7d+rd#UxsLU8bRVg3_~*?G!JT4IoN1GJ5Gtl zTS0UC#Z3SJKmbWZK~$(ttp>}-m0&5$y0t-K%RRmDVrzO9yLJNca~G0mH4l|o+qepY zA#CH}B?{mpc9a1O%Gsw6py|<_ZE^5jTQD-^l1L;=I6J*ymWXF3=C_!z5MJ$q0aoW; z`9Vi|c9m^-RGov9QgIm(!radNe_6$bvP=UdXzGaYDKkS3EQ1v731 zi4}0d#K;cj(wqWUy`I>aRs=T9M$9Oa>WiOCm?wt&wF8RBqj2BvpD_vWfiB;5d8>%F^d+o67^8Q6;3JClDYyD zpT`d#NI&^$Z+hYRu9#%>Dx62i-vX_~1lhPa>$t@A!R9EvS;sweZZChgElr=q@c*iU z_<`8|<0L~|&62d{Ak1U@=og?XKW)mq_(DfI&E$Iv&e!c~z4&zj!@T56`mb=QBIi>c z!9&Q<<*}0pe8xLj!Do9G?^7&NXivl~KRTjEdFB=Wj9+}<$NX5wR zLiX&lPCy6JB@T_M@z>kOK{;o;0vG#V%h1cX-i4!vb%A9&KSW-B@fZDUtKAB_n1eLF z<7_FDP7H6naFMCTbMtHE3tW8TL%H+iQ2|SYFS|b?UdF}#`w<_%4Ax`5WiVB%g!lp~ zKi)~jAAV`GJVswEk<+p5Mkko*QyLO4g$&Z5n!RHa2oV3gmkC2RWvD3-+KgL);2uhw zDSfo4*}h}=V(fA2;dLe%pI!WfKJ_k4KI0g5y}P{xCJGZ7|AH+ulCd3Q!4lj+g>VoE z9e=h@SkFlgYH(b=PJQMwR864M0D=`)H|JJe_zV_QN8w=<3PyV&J)Hu05A5?* zd%r#yUwkD+&GF2k0V6LeUpU5Mbu4rc#qGfR#hJ9gCA&m>o zZD=gz=-l0}tVqCT3nOPvKb(vm8LMf|(cbGA{}dT@Xf&l?9WQLFJ^0R-`yX zRQ8Z+n;4C5#TMZ8iyx<(7d}Xxwi7C|jlz!pg?P3z%TWQNmoTz+VFsMr7vHNijOT$U zBFSE*h;Q4~=9Yl^kyLadiQ7Os<^JqFw!AHo7t&LB3CK9?PH2`tFx~wS1>t+;7kK!Q zON>0cg^-vZ!FUKK2Dh_AWdV)tO)6lGgAaf97vEvxdKCOwbi+o9^qR5HNSm%>qxJe3 zyHl=w!3o4hDHW(U%V zMZY0V!2102o%Gu8+13bS*wHzd?y?)? zwclSym~e!{7@!csM>zl|@?XIV-UXP#7PY`F67t1|`imY_pz1LqGS+MyTG!{9uL;^0?B%o)fA%ZO_#6jrgz?Cj;k%y9{I;*PPAW5=gv$a z*dsuNYP6~HDk%NAq?N^m_0-Cd(DDe>@kRnTfQ~{#TaPuua~>qG@MZcQ+w@!7$^M^G2I)rdcCY$W*{0PtAZI`CL*j z_eTc$O3&u{H*kLU$uWoD0H5(IVe9t@W!NSc<>Gj4oa_u=FKGZ4KA>Pu?dE#Wqg+Pi z+4S|&b+MRr_AKHg`ska?+uU_Jj4~WS0Y_%2yPFh&0V_b*HSP?i zZfRh|giRq$Cj=H4whLQ&Q0M0)XEL{}-8@3~q8-`O%Y>obxZo2Sh;&Fu2i%gEsk0CW zcTX(d>4mw|773GhI#R<8A`sPBs9U+PY6h%T(q#3-(MfvRO9N$K1a0w4t->hvk|&vPnP`bR1Sb&+BEruy zkujGjU72VP<8v8?43U!>Pjyw2%@_oP>>LD?0UHJx1=>q_q9SAMASf;pyG){Y&gej( z$usXkcjCgUP9c$CSRBDdqIJh4fc)EO8r`aN@N0Jk8-5#QNy-IJ9Os9`K<Y}=VOxfc=ea!qembW zd6j}3yrM07hhEx1&N|qlUE6Vl76)xWQi?$*Kye!Q80CsUJZK(2>BTaRj*C>_{5rgReNl1K2d4ur!$lV3DIpdS|pq(k#5Y%dGbJjtwYtn)xbx6I3^ zI~S>%T4J%DZT?(rJv49amRVG^K%{ZXm5i&gAUUpI(WFcXWk6wIHB`qTT=T-*g8?LjfsUxiCg$__gN==zv&_^%ID141L+W2${xz1 zU_g6HmWOej=xXp?SMWCtof8NrboRd!2g%DA+N^Ak(42$i?n-u)YYrZWRp?hfjW?g7 z?eSoVn0781@B7_8pLpHpw?9ht9_?P>-?R&mmVCnnv#39pwsqA`G-=z3MzQT9;{XBf z+R-(f?IqeCex01o*opAPxVgW|_2NX@`gDS^QT2%)cI4K7`}=v!YW(K6Z>C@WzrRh> zXshRcyy9Q%wY~&x{?0le|{}3{oqA*5S&C?w-aVanB>tm8no|N zDHzJo%=;~VZO4{LZh!I|ez7fPobtOE*?_hwux=)Dqe!DP^&+<0@G^!Hwnq6Mya#Jz&mcsAo1Ka$S<0$z|uv`71;=nnnHWmxa> zBbP35LgQx}2!eJHOtiCj!0v_-$}0j2vs%D_jw-KQuE4bYt}dnYhc~y=#mksMU?;** z|2Ep(0|+J*UQsn9XTDrW@#N0Z) za-?#FVH);1w{GpGx8Gmk&?@=5d|K~!(0)F12L1>|9Mh`N2pWXyJHcUuL4E{|toqF;80i&@R>I7js#td9h7~TU%=gj0V!F z6IsX-eKX;$I|~wyGuo)IOvA0LpMF+L7cXsO;WqwlZJV6R%FdZXwmI`F_C%+R$g|{H zqF>-iZ9e_m+t7v|7-Nf454;aNw)`dS)-FVs+X^^bcLP9s_{*`o z$mTcs_7wz&SYUVn^1;qbD%X#qo%9s<*cxw$ zyrDuzTeWv-KY9)Fv%}@VJe_Fz*J{gXP_1D;<)nFG>CHb>Owk#eY?X4Vc01(d+#6%-U0?cQi(i@ zD;-Ibo2Bkf@Or5-K^C=I!4_M?TLv>MCYLx-i+(%H(JZ!Jans6&{B(B7t)s zz;gj)-$Dg-QlEXyaqnv<8;xK!+UFLQ;EOqciaB%*;);5#(iCQlFFsVT74)fvy$&90 zT^=;r!UD-MYBgKH?h77Lnlzro8F$~g!tr3fV)x->f4cO=-84J%AU(iN*(hyz8NqrV z^9AR0IZXlKO5p%0`&9l7$T{4e-+HQhe81KU1@b5;(xPQ0k}8_`T>OGhz(Wk1;}-vi z(}xBEQkCU+vlM-=`e(|_am{q%D%rJ!HqTfsvc{!t{}2qT=F4iCKVclZ*h$+!7A z>MMH)rv$WanqB_X>}NgX;Ne?u82E`pbI@i$<@r%z9_3fUf62WhRqm$mnxKn|@+Uzj zzDpYfy3d^8HiwC}vS>dt+Kv2=ahQGw&Ve@1FWa0arusrb42wYQ_LP?7wyc!mM3z42 z{SS81J#545atMpYrVk&iaY9))TSQ0+f!8iJ^wc5@W9%Y9B-bkAiPI&wHnHJycbAjJ zFb0dtw1=FKWN6i#V4w8>TL2Z}=@;Tsa^bdPdy+7I4y+m{NY>aQeH$Bqml?q4Iq1X_ z-un7>SPAUr)YL8}uWB){N(e5QND7sUkuVt$vGujF-oa^UyJ*Dhr1?cx^J?UY?S7}) zQQ6k0GkHSds)psZ#{lD^-e@&$AEsGES*#(HypG!Sy;)#*AObq0l(EAchL^dYPrr$eywj;w=;EU4SVyrP54Y#OXGqddPYm4@C_z2tU8F)<037-R9xKhEqIDztV!g2eiCk}7G zm_TnZ6$cM>q~pi6hgIc7IN%%62_Me5JV+x70zKJw<{Ae6Ir+JU)YFdh#ECBY1Yi)b z#1|)vL@hBv#kfFOIzVm0j9>ViEx=dTnIzX32)pPjS%6`SwUf>|4C2{o>lCV)317qT zw#?&2?6qCt^i%MdWINxP(`YI%pc}`cP-sb)6Yo}|+M?p5kWgXH8jBM%H`rEk-xDR< zn3Uj8CQF)zHJ&(oMLzh^UmX4BK^6yaD` z!jUmiK)lL=z}>r)4T}`!PYuXHt_*|x8`U`C;v|x^!|n!tPIQXP(DPeqYZjW%;u{56 z1uoyizW|7k^_To$eB(Z;`&xmY6ll&vGyaiRn9PD2!+apBaASeK+3ib?U3X>~GpSVR z>>visTbO7lR17+oPWcziPzj%tai$=@quYHvM-T(S4wns7{ z?55tei^8~y7=)OXEVuv@sL_5L!z`B2Y*Q-2IHks42m%P?E(8$~jqC^$v4uvZSFYe` zzv`-{uJnNs1H#$_t_Lz~&>y#n1SE^l{s@AG6QLopgdJ4BRj3BO zU;iglYA(&D*i{jEi!qjmjE72h-pVid%Ocq_^I=k9nTSu#;$C zTF-~DNJl3w3Q5?Z3k><(R_thNU$#Ac#L1H%e((S-vWXC~+Aeib7TimI#K*QMKXvKK zI{g{KQ0zOet#_s?*Y1N0g(0h+~D=hx%+kiZu!BXfI>8tQ+BMwk5TI z0B!bxHjB_ymo?47OBS+6{N@o@>)16DK@iujsel9Wl^&vqK$1mh`8Q8z4o9$Nx)dcZ zo%d*)cG~hrfjE2;8Mi89yEB7xJ3_^{^!`^924deX_z#G7(=1XY73|H$7aE)u z*38_xi%@L?JUncTNc=auKm$Md7n%~Z?t%^q1Jr?s6L}cI((*QRgXVwDt?7AOZieA= z&>LxLXH(wY-9_C96JzHQbFZ~kX^rocgMDAgf4~tf5Yf+X6f^cy{la!w#_0|Yl4_xtk9*_VOln^kOa@tLgiti6S}rmfq|`Cg~x^etEVpxyco*6S8>9N za(XBPzKxGLQk9PqH}|ULt-1%W46%I4Z~iu?T)sBnff&J>TSW8s@?61@=)|$fML%Bo zbD5Z-|s1%t93d?kx3*O}k4)o>Rf;PNVC8+CpX+uL0%S_jWopb=NPvj4Do z$`3f#(lo>|?9_ks5&b%u*`m#NK+Gqe8i@l@OQM01iF^4{-Q`oe=%-F#(rgu8`_7DN z<1VPJqYbP*|CZ2T44U9eS-j>k$}YeFPae;?_VP+ky8QV{2t+$tw$e!s`I*#I6*#+< zRa!BQe4-D57mxCnjs^0=FFoIl4eqJ5h~4d0GOGT~8fFJJK#gV?nvV7t&M!;NMZX1{ zhAWU8KHumQWo?=GvyUVw7w`&Ca~grFd(M0Gdwg$%!@nNqQCI?l@5at>tCl4Wl%s;b zxaS}Si{OP^MJ2Exta5{XG|lvjJ`bq&Z-O_vKPrP*SI!kw(s8^pzIA6j-!*Gued!;L z2fqaz{1pbSFxIQV?>uafxr!$1>gf>4enpxVhW=%I_1VtD#Wv~0IpZ2Krd!vU!!e;B zADxOZKGLt!6^QZlGkUWN_)#c68BV&{A1cR)w5xCVIs4~$@!Rm=$uN7uHG^$_-V>|o zgk#C-3rxEXgYgO02$m_0C*<J_@g*JKP&UUO~I2qh#EAnTT=0eca*Uu_eFC!hoKUX9r zk_tjqa4_>Q5iIDYJ8bp12V>@HN-LZXrqGxWEihndN1+=b9;=OVc5G2_78}p>EDG>s z8k{_=A$fMo$SjOi8)`3VK+fLBJ_mN4206BE7=!a+YcVoHuJTlsyMj0~1;+)fIc$qu zyu6hbI4!M-sa@3bqp$N!1UJLWi&#&v5|yo zD#EzDrCWh39UFPFq1eevJZcHKEy-2RPcO-37J`*YOF`Tj*zBSM zhIx_!rG#Np72?fPx1V7{<)aHov}xt8CfwrW!sR8lCbLD-4#q()ii3ord?G)&H;Ta! zkk`K0O}~GAD_y+CNwR2L?l4*$9N$gfc^TvFr>F-y53r$J_|bXi(od&C}R}}J*B_>)iO4Jw$c!S zzzdY^(8x;q*-tsN-~{#+h~}j$Wf?E{L2fa~-a_c5k?G4b*aC!kbrp5y+G=|Fr9s*d z+aapetf-%=NMc~YLng^B@~aCez5e<}`VX(Kq!C6o4|nM4T1Y?sZdZEsyR7)5!D?8e zJBaLIbihSsdW*sA{kJ#MZ+`zE1pH3?mTGh9&t4f$KP5j7a&gK!;j1h~R!W^)T{i2_ zKdz;J|NqS=m9`a-Y`nd|YFS_U>CZ+eo2onjV19I#r|@JrJUB^GyZHH5`oI3;DhIdF zKats$&H3~q+BCoX`52lxxwXXrPgvJxY)8T|Zw1EHFH-uOzng~v+)h9JG1@5nxn;|N zIg?hTO024Ge9%iLJT4AiO_$KjdGj6Wcy^VEN=heDXMg$IoTAF&fV5>l5myy2@B$Cx zD-_V4(kCC)()%AQ(Jwi`>|iskC%yD-?8r_KjyyzPKpf%Nmc=gwqud+KptP~Q13bQg z^8TOb*W#N1{eL)Iw6TZ1qhH$(@4xnY179h{ylWpg+fJOB*-jsQx)FW-8WX((2+uzK zbTxhVRcz4GW@OmSmfcl!Sw4HkPhJdIW)l35udk*5{PtW3+*(5mbR-faf{17U)cP~`87Fd!SakPz}li9#aMg@LKlB2R2--oh@{}tsNeYf z&`-cM9sy-i7(Ef53lzO7;3(uC9iN2mThrTbenuWv(sR$ALtur$dS?8HBS;gy{1`jo zE0|e3?ruY%w$H#zoVa+2^y8Nw$7#Kx#>jJxlLihQ9YynI1X}e}S?IamXd>z#_hVZ8 z2`ZP2Y3H#ygBPP*zJX^`Dt-yPOI-61I9D(OPE!QGaoJ9zYJ3kMcym{y*hSwDKcxSe ztEIC?v4z8+e(PRW`pxSz=@}MB28URsp`)@!3yc6$!Lg5#zx();mDGpk%LH15yJ#15 zv5nw&@7&}7ltFA`!!XGc;q13056jxVSwXaYvUXi>+*+od*loes;1=a|go!t9t;5%_ zNW%nH7OyD_0nZ{36=5tbxy6|6#Rz;lVF=WW+T9)HFf6v-vPd$DElI;0L2RnW04hE* z*lTde3+!f@;siwGJ)xODKG>bEUAxT!)+iGe7n-Rb;)_dMzU1shzoxK9vK>Z?M`4dP zx(6_*`(WPf^K9dWCsLSWIUtXTqA4V4Un+mLM*pei+Ax{`!jN{m*dFV`y7^N0ndvoW zq`^aoOm^aCA{)@|m6@5;!xsJ_b_(^eRiu>zP1;cFYvhBc;9HFpF@4C74p^mgAx5-o z!njcF4w)Jfj(#%L!-`&SFBkS>#>U6l5v1~g;|3>yvYlW-8z(3Wx9UZdK)LzHoR~+) z8~K7kP8GJ?TtwVL$mpQDj(}n(7=_#-4Zp`#9`YjX*Z`J>VrLd~uEK;nVWOWiQzlpv z-29PC-FKqxg)E<3RL#NDuuNtOd#46u=!(TL`c;`{oTAZy+mSre}wqu zA@+tB@dyvWG-0zZP<}OO>FRM#IA8KPKH4{`22^8yH-%>43)sDFq0RI%hCTc2NIJ>3 z_}Cd{TGXHQ9Nj9<)~DoWpJM%JEA{E8SeV8L-hH%<)F2ui9f(8z_6sEoUXcg!)B`*e z5S>2G4gqWyE}+!oR>lEVhqYa+R*1OXxnOD}JKyj6=&;9J)am=8J zgOBs&(irh*a$iLwO+o+Y$LK1-+j1$cjOB$+V$3Il<-I&K{Bu8R{DN}^SAhDxg02_O z)=z!ADP?b2y4`(k5#F4x*Zz-bdnjIvxZBA(%TY5e3BxOU10epRZWk!yYixs+Pl&oW z)JA={>$D0?SmRljH2E0kOJfr~P>V7C8cG~jS!`RwMs-g&rpJzTr&G*#JU2oY>HA3d zC_kR{3mDQ9&kEFIHxzxJi&9%#E$PZ9x8tzOv2hVn>5H%dk_i6$lK<=Zvvn76qaE?q9(^Q#!K*Px!nNoIbp7`m?wJT@ZE?Gb`VquX} zo>@7I$_}ikS$i|0#&5(|plFTDEa7h_0316>Rq0ppTgE8t_I4N2ZB`ypxd|JM03qwRhpfG$@Xo^kG!pD; z+!lG6!@h+4jeL2z~_?XkyTm; z2=5B)%%iq-ZnFx%h)~m2VFi1uYs=~Strb>UI}oWki0AA6cSY7!0l> zP*nS61WhCb$QuYwFV8G8(PZld0$Z~XwyC^RhtW|7@z{{_AmTQY4?ka{PB;M-9 zKpKDnD`P}J-f`q8Q+1oqmjd$5{#g_ZSz+oLFUAw!K{>xi8)4B5)lIOq=U6d!0 zjh{Q6f)7B+pPhe9qW#!JpAq?w`Z1+PyFa#bcr>*AzLCTIo?o7&h>{Ce+@vk(^^>>P zF}%H;UY=%B#rBwaR!v`fYbH%nKZiK#-4iOMspwitvV!sAU5$)eth)Z;v!yi69{+)k zeg=Z|^zJ8jX*(R$b7&$Bz+jZ{Rt`}!o$xG3+sri)8!j?(0ZIt-+o~LW;oM{ z@pJ_b;Yx4O-Vk1Yju2gg#!nv}ivH#9TzmS}TX%!jhTP}eL_5N;Y{bXRI4Cc3^4`S@ z>j?0+(wT!p^aq@xho-{s-oKf?&Gxv-31H+BsNbR>1X00p+qar$uYb0he*R)V6Aj9V zW$qOwwNB20Noyi9qc!JC!KgOAuF)6#?cdLHB3~_y4)juA)YV(JDX(!>q(+z|(tpvP z1QP;)5X^Hgc-VhlpV{R!+4;1N*7N|YTbs2FgkiHWFnz~aG!qO@m36SP9?VPhG2GRp z7q5()zhYW`x#!pLD?fVG{j2ZxF#BCF1^c|?wH|qYjDMzg`gj+Q?B^Xy-Oh1+W*u#( zRfG!Iv>9X!2DOhbUS~{1Blh4_4D2$B;mA~!Tq!>4meDP(Jb>O28X-bR$0i0?klRK> zcOm`FJMX{|EVFpj!vfPi%F;vCDq$i3qb!A`vjG(cT`MFoHOK2bd3BM=@ugAFp1`aQ zlT2R-A?od+Vma#X1#rH{R!;KoBG(S-s=+8&v#HVN!NC#6nQpcY&Y}_fZu-^>Pp6Zo zjzLph@C+ROKsZa%7@i<`fZ4C@HXz_FTyYZDi~^pHxul_A=3cifz*lGGYZ%%OYwtNI6luz-qd}BLo?6c1J1`Y%;jJOF~czWbK zS0+!1-hvs9w)T83;Um5;!fA4rqy2Ih zf>HZUCr1j4Ha52C-!qe~jY(a>zrZNv>qMuEEq)yg5-xUWw^AYEI-GYWJgnbKTo;rA z1%4>5$cwPWbqJe_!z>K1I}_w&t}U2-Az`1YIMSi&viy^v|Zn_D}IGeOFOpx?=lGFGJ_9A!fC(d;`Sy| zf^N22=dI4Iqy^)HzeN8deA38|gqJdUm*gp0+-t}@mG>Pr`(P0ijU@qYN#s!gy zNo=@tin?ZtLNHsU9eE;NJuf7yK>EySw)A7$`6`R}?wC@r`8@p3^fUtJ5Mo!Un=TjN z!UY_j>=T8tIN!;kE}JM^tb^M|dgav#4(pWvhH9#KQ9V9$)tvz2ogcsXZUF9OQd-I~ z(vF{c?CRkWp2jZ`ODO&JM}5+FU`1Rq6X-r7-a~cuh%kG-8rVpCqT4~Ix67Enc$b|j z9Hcq*9Ts!wpVeCIhQHRljMFctyk0bk&{S6NXLk^bwIm{r_J@6F7WGcIK(jqTQ`+-) zaY9Y+LSyzj_IVBz`sqxA|ELNV@ed)$JH+m{T%^)x#>0Nfc4zu(t(l{!UmhyoIg?f!E_yK)ngv-}qeR zCkjbO^vU#@3KJC`&Y^&D;lnNZ8q;7*#$RFXxw9?s^`ygz8ffbFZGjdzWjf&Ta-0^zFA6LhjOz^mk!l z15-~Pwl|apo@PR;87@}4o~ zuB*%(+_K(**#i|>wzk(en_wp$!vw<^yAsibV;nZNWp4jPAc#narEE;m9Ya)%0yu%V z(yEbe)#@|h$JSZ=g3U8F&YO&a_(`y89tp>Wtq|1JLnjwGI0!&3IeUhYDG^GB?~|R8 ztFW=v7Q$$c)wbN}x;@&hKMDcE)(Smq)(8X$I0W2)2Ld{t#W`%tk_Xe#AZ!?2j-Hvk zM0kQW6>tdQ2yPR#vDk6RU|P7k*nYzV&@^2gbTSo(qJUeGdK=E>9otHXXF;#C0&e~+ zA8nzv18|WQsddD?GOyack^3ho_*kamOgc^tc`l5$E9tI|TH$u;)>9b9H!oatyVXVE zhXY6cvcJHs7Y*z(SkV!ick?*Ew8{1nabR0H$!7Mx;E?kW6D#6J2SB>>E44J(icppC zt>C!DruzBiMKm(mT5X!*1di5@b*9rxCuH-h%JQ1~ka_N)TxyJR#$829rC?N7IzHog z5jvcBsPGzg^~lp8#M{^5R}Q!7=uP*RXIY`Kyd3qK>br^`w?HJPk-dY$b3))G#-*Y7 zT~e`*zRER+$nPcSUx^f{$5J{@!|3p!tpN+pcIuh(Fo|rj!FlE_&TR2 zyY0UVTNw|~X4^tY)P>smD)$1tw5iA=p4#eMMuTJ%VRHvtxVqsOob1;&S+tnnggMCR zS(gEWALEufXFUMg%8WyT-kh}c!8kkc46*2N3VVO0%sCPV^L@&{9-TH4pS|JQgH`_GXqRB+T!m$%_jvH7;bbV+IPGf=+ZhwAKo7Dy?qql!mES8@AHYzcwTV1X z;iZ5g?VNM~i6#vmb1aJ7ytkH)40B>Ldh*+;C#|44ec{q9C&L356?sgFMZ0xgZoU*~ zMxFCs`Zj_34X<#IYA5z3#Xsnz3cKf)vz~!9eK2k$(BxMho7=d45w?8H9vQJ_1o3ZB zeskcj`z%l@1Ls(S9d?90_HDE~R{2^a8Y-(F?)*O5d2Ye8dZk#)Dp2yFdXY{P_RT#| zi)c4Z3~~A>@{*kC~9K?km+MNERbd-rGW&vD4bWaL+-DVGXNRy;id@jYIT$y^BoF#ER%1pkxfbfq!3E=?kodH3T7>Ck8o6E>Jh_9OMPZLycWC;$^)9!EYZ zP$~fN7p8r~aWoA+xrFvQwmhBKEz@^QPxT-e14f0H(F|Yk5N9v>t3Jk$BL{n-OKcZ1 zIn)fo8XW7fgPusuqAK(o@yt*GAV8cjSEhguj|U#2Kyp!z1(i}RzN`IlUsNZMN&T!wcsCvJt!r1(%$18I#O@Q?N6tf4z7e&+*xO#C zpeby5_WC@4_vkaZD@e?3ns~H-cOoggCqje?+pA>Q_$_9V%vzc*#LL45jX4MyhPLJ@ zz?wcf!0aV>U&0F0Q>&*>oWYLMFxr=DCrbaMDcW4-$H#EK^Wb4VI&=&_Mk)sio_tiaidJCho~bwq|+lzre5IiluMUYj@V{fX-9hMR5t<_JC0m; zM&1J>V-oQ7pPW#urUQ+iO~zOcr|dughe-#wfZ{9~arV;3^nDht-<-@%BINn*tI#?& zL)}8?;YCN#81j%ygF2=g#~!)PFYxXV!jKSdc=$ki{#$4ok*>ncE++X$u$`#Qd=rjz z39pdGYSalY@DeAUS=&k9;Q+jor&_^-6NxcFF*S)W9p23Og#DXw#lbnHU_zS|xbl^` ztnw)9x6uAIQr$)GmLo=N1JytBXxJu?hu+Fp!!*Nfz(s9NZI2DLBlTpEANTy`&pE8ZtlxJ~|%?ArEoX zVl|#|?Bi@FzFQ~0V*)hlMBx!T-edkAFoa{ID!(ExP4FL17@90lG3U-5@ZpdL6;pZ< zhI%@1;37*-d~vZ4wEt8{DjWeR(9%i6570KmL?gTpW-m|-m>35Rv>3Dp9tst+k_>); zVIAB(d~A7!)`*W>D(JJ|o0ITYM}%;`m*>jspXBy%I>pES(*CO4qd-Bayw~r6X~DnT zqu2stb746KtOzR*nZM;XzBat8I1#<_Z~mU)2JHGz4*SpjYZlB$U>Nza#B)LGFWLAl z%o(sCx(jdUqD5_og`)0SI&!=}O|YQm@f&Iu8#T&}4kh5m-4Q+e+e5ZZVuR}zDPswoF?s-YHT2~NF2=OJQ{fp zuVjv>gr6f9c9uvFW#vX@)DYuV5TOJjPq^mFd9znOBpZ^zp>nMrO+Xew~{}h z&^1I310rdAB5_|2rzxRXpthykv9_?}+k@>PwSVlqv+YWI>#T7S^%j#=%76)#9mVh< zOaM%KFPfJ!Y^w+{v?bZuK>`*5xW^=d!Z%x%ZmxUsWWL}`G{iiO8v1QC$5z*Y4Sn3@ z4EjTpoHoig<2fMY+BFCIWM?_rk=bE%v+~i84arR;wd5kz$&U9 zGd|UO1z%b0CINYpK7!zaY=FoG-%397sG=>7Jpp^L-6R8r44-I^CYUS53 zkNZ}_cz=>G&Efxq=S)C*0F=S0;VC{Pe+}P9J`qgDM4_Vg4i}kNZ7|boLrr%Bu5bwr zwB9~uK2)%(^^imcU1iyNjb=(cd-#SYUG^h&UPY~M02tfE-$F9i*V!M;htaG9f=96# zH~jdqd1^aw0NX{UCb|&jaZ)3OdrWcx$;%*Hxjg(yAzq1N`r)|ySl;bhwDYrs8H0rt zju)ZLtdp-{8hNK9ECHhnApIr~85Y20vTQ$tOmthZ=Ol8rJ6DjWhkF@d)g)trQl)Fe z0w<8upN~$w72d78cZ3ka*oLtmqF?Gk)i)L|i;CYV=yuI&t_N!4xeDtn1P74FG#(Fh9L2HUKb%Dq9oQzmD=0jnic=>8uwtwD+ zJCR0Y5nSY0XW7|BjM9JG2f7>DwS%Z<(zSmOhV)|{MPBi6>uVWX!fzk)1dVvvy8=?e z_$tt*5czFixGH?46X7e5xIH>-9b^eFBHxG;5Cy{|+CE&fA8LzPcAJbh-I#)~&)r0= zOlDd%V&k0qbTuf9_1Q;cd#$oe?3_ z2L_{g;A5KsJleOHE zKKvAIP;62U4z{FMUdC+0RNg5OZM#I`UXg16Q^25B)w!p%0f*)oyCz(Ip2oKHxu*~y zF|n>lr(~y&Lu8kqzyr4BnR6aGfDJ-y4Ypzf{Mey^*t*>e!#L7b&~Am3bl_O0QTWp* z$rHR8O1vTbJ9B0jx>Aq@9>g<#-DPr#hG!j#r`p_SpW@&@_)ZTMtg#?4*x#8>owQBm z$-C(}riq8^($UxPEDZZb7n{$VVYdl3DHS>?Y#ZUgjsb>SZA{x{T-a^ofryWCmbG<= zgsB6m!v_$O^CX&Pp|nktj(6@82-|+~^Ff5gXwSoE4sv4j#DphDv#`g4r!-_(FWCT| z;8B220>bgGF!$;6?8Z6hVxN2~Ja7*aCulClQT!rJ>z9WpHUsJ@g52Fo=4qyrEasS| z{H=m)c?!o^8%Mz4C&or!aKaZv#32AcK)=5|1&~9W#43;O?hOTY_HTZ7JPsNouKb&L z_^rT~)^(oT*#}QWDAJNnh)+1%y5SXai9_H)DBmjnVDYtfL+XAD999!?ZEV< z=U9{`tn-f0ti@9;OLj?9rWJ*e2LF_O{PN^;+?pQBV-?sKB~0^k6|w%Qd=ues!UbS^ z-<*Fzma)!qe%L+AQ$Gt6C=m&Gcx|#sjWwarN@Tc>GLCw*J_#B$O4+S4FTQXE6Iuu# zHDA@wLd7u_LXKiv*+bVdp=9vZXV8uao17^FPtEDiumOJc3l1*#AcCpBM#EFdC~&*1zS)>;>K;ZM2GZjUR%-oRNsu^vQsAScdgAg7Qc)2N=UI z(a78t)NY4H8jcz3*q&cl;Gi82tYr$)D3^?OJ#M_xk#12btIVl;If%*~tRkujx;2!2 zLa>BSagl}isn7$yw5Imyrb<&_XMf-UmbM_xw`F+zmJH~H%Vm?F{f&N&xM9y0+FfTC z)&uOuGlHe(UYcf0zw@rl=Y>GhyjAJvveTo2*K`+;;vcB<8Vk>jr0Y+)PV=iU8}Aj; z1yCbK^;EvsKYRlZB@&+Q0!&`wEGA z`XhVjnc0V+iCS~=ktZNlINumq$2rk72n}J};_?~;);0%^^mFw<*dC@5xgmE>G>vau zG2jAK1(%&j!jB$xyE6xva5TIFk%Q0>he7nSMc0#+A?t{fwJ9vDDm#GD4&ebrtg81u zbs8oU`;9W07Ti-DzHt7W$6%YLlOvcQwG}N8?-T_4qaX0Pn96N%zY{nI5 z2jPUklNCKqRa4knV^61L6SkPDTFd#glT~oY30nwJ&Yz=f==g3St#^xP8*yFTA7Qm% zH_BDbB)bGBFXoSyNF#9z5v&J;JoYDGDxZe=mNA@PT!oR~@SF(-f+O0maU$;uGV#m? zf0k3$t}uTRkE-tpgS!VE+pW zwmD-{lJa!|a2koY2iC}}#Xw^moa7@+i^qW_1}pr=vHSS#=ep9H?=7X7IZp6q1>Td< zp2G??W`YfT*wK?!CCG9LwuBa?hpvjezql z@>?6D&iUut(o0vdt@ZBxbbPoYEzuVoV~ftI|DU|~YO*Xh5;PH7>qspkQj5}pRn%mw z?O{*btj%n%**wntqj}o5wY7a(vw51`o!Jo_Y8FLTku0)UDl4^$l%aLRjhOFq9Nc>& zGBUF$nr&^1h;z?5IDo?eI2?e(;W#^t8oU}MnGux|i&o?dmp4rXOiZ+=ufH;qzVqIL z^zhbgMBSTdlC3`H&JKm071J!~$_lJk=N$!>T7hG17y9!r4yFI||D8)WKA8@UixrGK z|C?_dPlt}mPo(2aSHdWC2j~Fqimbag(qX3n06+jqL_t(E|HV@X3F7gMA zSh;3W>3a-1{h{Ep@T5wlLfZJvuDqAK2{bzTMo8OtB;N3fr@g}Zp$>0X_8OSA!AbJgpgd6)iTDj^M^CZjE| zzyHy%(RAi;1hzj9V)segsBtngVdegjjQH8NMOo8d1H_Yz^8nJ`L|ocA2n_pGY@eQ< znWb##f0@|0W1`ss!tDI+&Nw-XIj%TW`6?cHf{_E}Ubs1ed8mhsaukn-Rw>28yR{R+ zs<6@I3>Oa>1?gn+L~HuHe>I*wT*`&g<7`(v%9zhBaz%I<{0tNayOGwH7^ku2xs~w| zwG0^A8At~W1~~g2<9j(ihYq5>S`R#fjF;de6~9-P0{PHN=59YJoXjTza0NH}TgMic zdr_pTEh;rms|ILbL;hM7KGL^tu{hw^SJ#WgcHjOnv?g455dw}+)}3V=TGK#~Z)HBi zcX1`mVT2qW;ud9xpM9TrioeizY{+_#a;LohheQuyp?y9y8;8%S%yiLl@XSB+=DWXCt#nDpo&l5^}{a3R)1-!PAv%Y?Fvc2&VK z4f7CX1r*E8@>l?eD_1r-#hryK>hvg+)6)p(<#8U~7Ja|8>_4y~^A#GI4hwEz8Nv9` z?S3{hm5ZmQ_u?Og#><|c8iC@;@_C*UP9t1yLC=pSb{SXsi?OUf8-oY-ShuWaL|((& z^7W!Dr6Y!An5f|Z%bUz8(FSyUKF0wrAAX1p+JtT82^aOKI}!0JPF%fsw=F#6P|pv3 z%^3+Sf_I}Fvq~R&`SJ>(OX6h0qui8=k=)@d@edRPOLZ4y2 zYXA61n5vS7ET<^*3ZG`$Lqx#N78GP?GhNWAhd8aGCGR1F`#4u%7@9Rd@=43dwE2&_ zV;(cQ?CvMbhiPUlCu9LuiQyHl8G+*W4{(=e7+mLQl^yM92Dz%f&#Vz*E^PLKZ^9~KxpGi-p0PV)Q^?jAGl?q+X z`Y2Wg)bGmQYLGMr!U31Y^}<1OR-h zdx7D*Jjwo8nsVN?%ucg&7Y@RYvB}S&f+6-GUHfLUvIViogA0r>zY`@RZnivJ<0psH zFI;@6KSv#uH$FAq3xBFU*2CJ&f7##6HsiB9^dI(K6=gIakK&*T(=`1;CrV%{ z-F4EpxUkFSzqAa4*=Dy~Lcy!Goq9ezkS0!{oyu5D!Eo>uvsSVfz z9qu8w?d1Z~zL_T~$H@c0;Ef+_uRuxK)l&eMrPd5QAdVJlQmwLyNe5M3G;&vV8T7MV zq#NN5s1hgJV`#@-pcQQ{W6LfSqXveW653JehX6gg{=h*9LuLXowKK?VW8zMCYedji zhyYH}69GSZ9I2a03qp?$&OSfNDY8nh*HN(*P7h40k4bY2!a{|Hq7a9kIIJO0;0P0nhk?2R&s{a zbhHe_+p>0ohs_*%t;i!d#L6)F^4rK5+a|uy&T1>A$+EZ_jtT|F@DD~KCiY@cN8T(L zJjs(-S?{i@o;-~KPcpE;s)u^A!w4q!v+aQ$X|dW)(176pB2M=tvJ*JVS;k-op~2m+ ze5n(`B8Trh!ma|VrbmxcHf)nL*%X30@$vAkxKYAn9;5v zf9Pvu><c33etFfNy!T*UWYfp&7%Lp%BMm%1=E zJ(_Nz%D)LOI(&STddG185O@$q+7L|ssc@)Z*!gkbWqO&dJ|jqE?%w6(OIGj(F}y!9 ziFVFl7L-Rmh|^37;v-C9NVAiaNjI8=H#j(B8Jm*YVmgLUvuptn4{!3fKf zn~zSkq;H{lcIQrBsOVwqwfxFO19?>>S(UAW1k)8>!0?#|HNyYuoBP-@!X{(#CZAMu zB36)LW3~^k94V(AulnQd_CgO$`OCi;;=mh(PP21pPp9|nt6v&PzxZ_*TXh*Ukjd9h9ZVN5_Q#6k3b+t77p)PwqV0-AlY>i8 zhfSWPAnRc=?});!g4M$VbFa1)yvsCqxxK>HgX|H${%wy3VU>a79-p7>C2xs*Q+eDK zJlH;t9;4kHpfiWIuR`x_^c^QA4`I8i8#-pdPyTaE>W7$4P|Ac(e}(XBFMRb&z3{#D z^zZ(UAEnWrI~;h$$23pfvG7upNb&+!j%#gOQ#y&Sa-{*3_e`D88xt7v9zr=M@er

  • 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�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