动手学大模型应用开发(一)

写在前面:该文章是基于DataWhale‘动手学大模型应用开发’课程资料的学习总结,详细资料见原课程。

1 大模型前置知识

1.1 涌现能力

大语言模型(Large Language Model, LLM)与此前的预训练语言模型(Pre-trained Language Molde, PLM)相比,最显著的特征之一是前者具备涌现能力。涌现在小模型中不明显,但在大模型中非常显著。具体来说,涌现可以定义为与某些复杂任务相关的能力,但我们通常更关注其通用能力,即其能够应用于解决各种任务的能力。下面简单介绍了三个典型的涌现能力:

  1. 上下文学习。上下文学习首次由GPT-3引入,其允许LLM在提供自然语言指令或多个任务示例的情况下,通过理解上下文并生成相应输出的方式来执行任务,无需额外的训练或参数更新。
  2. 指令跟随。通过使用自然语言描述的多任务数据进行微调,即指令微调,LLM被证明在同样使用指令形式化描述的未见过的任务上表现良好。这意味着LLM能够根据任务指令执行任务,无需实现见过具体实例,据备极强的泛化能力。
  3. 逐步推理。PLM通常难以解决涉及多个推理步骤的复杂任务,例如数学问题。但LLM可以通过思维链进行推理,利用包含中间推理步骤的提示机制来解决这些任务。据推测,这种能力可能是通过对代码的训练获得的。

1.2 基座模型

2021年,斯坦福大学等多个高校的研究人员提出了基座模型(foundation model)的概念,这是一种全新的AI技术范式,借助于海量无标注数据进行训练,获得可以适用于大量下游任务的大模型(单模态或多模态)。大模型可以成为AI应用开发的大一统基座模型。

2 大模型的特点

LLM具有多种特点,以下对这些特点进行了简要总结。

  1. 大规模(通常可以达到数十亿甚至几十亿个参数,使得模型能够捕捉到更多的语言知识和复杂的语法结构)
  2. 预训练和微调(LLM需要首先在大规模文本数据上进行pre-train,这是一个无监督的训练过程,学会了通用的语言表示和知识;FT通常是监督学习过程,让LLM能够适应特定任务,从而在各种NLP任务中有不错的表现)
  3. 上下文感知(LLM能够理解和生成与上下文相关的文本内容)
  4. 多语言支持
  5. 多模态支持(一些LLM可以支持除自然语言以外的其他模态,例如图像和声音)
  6. 涌现能力
  7. 多领域应用(文本生成、自动翻译、信息检索、摘要生成、聊天机器人、虚拟助手)
  8. 伦理和风险问题(生成的内容可能涉及有害内容、隐私问题、认知偏差等)

3 常见的LLM

3.1 闭源系列

3.1.1 GPT-3.5与GPT-4

两者均是由OpenAI开发的生成式预训练模型,前者拥有175B的参数,后者参数量未公布,但是据推测,GPT-4拥有1800B参数。在一些通过人为生成的问题进行定性测试来GPT-4能力的研究中,GPT-4表现出了比此前的GPT模型更好的性能,这些问题包含了各种各样的困难任务。此外,经过了六个月的RLHF对齐微调后,GPT-4对恶意或挑衅性Query的响应更加安全。例如,GPT-4引入了Red Teaming(红队评估)机制,以减少有害回答的产生。OpenAI团队还引入了一种称为predictable scaling(可预测扩展)的新机制,可以在模型训练期间使用一小部分计算准确预测整个大模型的最终性能。

3.1.2 Claude系列

Claude系列由Anthropic公司开发的闭源LLM,其主要创始成员来自离职的OpenAI员工。2023年3月个7月先后发布了Claude和Claude2,后者的参数量目前(2023.11.12)未公布,据猜测约为86B。

3.1.3 PaLM系列

PaLM系列由Google开发,于2023.5发布了PaLM2但并未公布其技术细节,Google内部文件显示其参数量为340B,训练数据量为PaLM的5倍左右,是PaLM(540B)的升级版,能够处理多语言任务。

PaLM2的compute-optimal scaling研究表明,数据大小与模型大小同等重要。谷歌认为,数据和模型大小大致按照1:1的比例缩放可以达到最佳性能,即最优的缩放比例研究。(过去常认为参数量大小大致为数据集3倍效果最佳)

3.1.4 文心一言

百度开发的LLM,参数量达到了260B。使用地址:文心一言

3.1.5 星火大模型

科大讯飞开发的LLM,参数两达到了170B.使用地址:https://xinghuo.xfyun.cn/

3.2 开源系列

3.2.1 LLaMA系列

LLaMA系列是Meta开发的一组大模型,有7B到70B不同参数规模的多个版本,展示了如何仅仅使用公开可用的数据集来训练最先进的模型,而不需要依赖专有或不可访问的数据集。使用到的数据集包括Common Crawl、Wikipedia、OpenWebText2、RealNews、Books等。LLaMA使用了大规模的数据过滤和清洗技术,以提高数据的质量和多样性,减少噪声和偏见。LLaMA还使用了高效的数据并行和流水线并行技术,以加速模型的训练和扩展。

LLaMA 13B 在 CommonsenseQA 等 9 个基准测试中超过了 GPT-3 (175B),而 LLaMA 65B 与最优秀的模型 Chinchilla-70B 和 PaLM-540B 相媲美。LLaMA通过使用更少的字符来达到最佳性能,从而在各种推理预算下具有优势。

与GPT系列类似,LLaMA的模型架构也仅包含解码器模块,并结合了一些前任工作的改进:

  1. pre-norm:为了提高训练的稳定性,LLaMA对每个Transformer子层的输入进行了RMSnorm归一化,这种归一化可以避免梯度爆炸和梯度消失的问题,提高了模型的收敛速度和性能。
  2. SwiGLU激活函数:将ReLU替换为SwiGLU,增加网络的表达能力和非线性,同时减少参数量和计算量。
  3. RoPE位置编码:模型的输入不再使用位置编码,而是在网络的每一层添加了位置编码,RoPE位置编码可以有效地捕捉输入序列中的相对位置信息,并且具有更好的泛化能力。

LLaMA开源地址:GitHub - facebookresearch/llama: Inference code for LLaMA models

3.2.2 GLM系列

GLM系列模型是清华与智谱AI合作开发的开源LLM。

GLM开源地址:THUDM · GitHub

使用地址:智谱清言

3.2.3 通义千问

通义千问是由阿里巴巴开发的LLM,参数规模达到了7B和14B。

开源地址:GitHub - QwenLM/Qwen: The official repo of Qwen (通义千问) chat & pretrained large language model proposed by Alibaba Cloud.

使用地址:通义

3.2.4 Baichuan系列

Baichuan是由百川只能开发的开源可商用的LLM,也是基于Transformer解码器架构的模型,目前已经发布了第二代版本Baichuan2,有7B和13B两个参数规模的版本。

开源地址:https://github.com/baichuan-inc

4 LongChain介绍

4.1 Introduction

LLM虽然取得了非常大的成功,但是想要基于其开发应用程序,依然需要大量的定制开发工作,包括API集成、互动逻辑、数据存储等。因此,从2022年开始,许多个人和机构相继推出了多个开源项目,旨在帮助开发者们快速构建基于大语言模型的端到端的应用程序或工作流程。LongChain框架就是其中之一。LongChain框架是一个开源工具,充分利用了LLM的能力来开发各种下游应用。它的目标是为各种LLM应用提供通用接口,从而简化应用程序的开发流程。具体来说,LongChain框架可以实现数据感知和环境互动,也就是说,它能够让语言模型与其他数据来源连接,并且允许语言模型与其所处的环境进行互动。

4.2 核心组件

LongChain作为一个大语言模型开发框架,可以将LLM(对话模型、embedding模型等)、向量数据库、交互层prompt、外部知识、外部代理工具整合到一起,进而可以自由构建LLM应用。LongChain主要由以下6个核心模块组成:

  1. 模型输入、输出(Model I/O):与语言模型交互的接口
  2. 数据连接(Data connection):与特定应用程序的数据进行交互的接口
  3. 链(Chains):将组件组合实现端到端的应用
  4. 记忆(Memory):用与链的多次运行之间持久化应用程序状态
  5. 代理(Agent):扩展模型的推理能力,用与复杂应用的调用程序
  6. 回调(Callbacks):扩展模型的推理能力,用与复杂应用的调用程序
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值