datawhale开源项目:动手学大模型应用开发第一次打卡

项目简介

本项目是一个面向小白开发者的大模型应用开发教程,旨在结合个人知识库助手项目,通过一个课程完成大模型开发的重点入门,主要内容包括:

大模型简介,何为大模型、大模型特点是什么、LangChain 是什么,针对小白开发者的简单介绍;
如何调用大模型 API,本节介绍了国内外知名大模型产品 API 的多种调用方式,包括调用原生 API、封装为 LangChain LLM、封装为 Fastapi 等调用方式,同时将包括百度文心、讯飞星火、智谱AI等多种大模型 API 进行了统一形式封装;
大模型开发流程及架构,大模型应用开发的基本流程、一般思想和本项目的架构分析;
数据库搭建,不同类型知识库文档的加载、处理,向量数据库的搭建;
Prompt 设计,如何设计 Prompt 来让大模型完成特定任务,Prompt Engineering 的原则和技巧有哪些;
验证迭代,大模型开发如何实现验证迭代,一般的评估方法有什么;
前后端开发,如何使用 Gradio、FastAPI 等框架快速开发大模型 Demo,展示应用能力。

目录结构说明

notebook:教程源码,可运行的 Notebook,更新频率最高,更新速度最快。
docs:在线阅读版本,基于 notebook 源码订正。
figures:图片文件。
project:个人知识库助手项目代码。

注意事项

为保证阅读简洁,我们将调用大模型 API 的一些辅助代码放在了 /notebook 的同级文件目录下,包括Wenxin_LLM、SparkApi等,均为本地自定义代码,无需安装第三方库。我们建议有复现代码需求的同学 clone 我们的项目源码并阅读 /notebook 下的文件以实现复现,避免造成困扰。

立项理由

LLM 正逐步成为信息世界的新革命力量,其通过强大的自然语言理解、自然语言生成能力,为开发者提供了新的、更强大的应用开发选择。随着国内外井喷式的 LLM API 服务开放,如何基于 LLM API 快速、便捷地开发具备更强能力、集成 LLM 的应用,开始成为开发者的一项重要技能。

目前,关于 LLM 的介绍以及零散的 LLM 开发技能课程已有不少,但质量参差不齐,且没有很好地整合,开发者需要搜索大量教程并阅读大量相关性不强、必要性较低的内容,才能初步掌握大模型开发的必备技能,学习效率低,学习门槛也较高。

本项目从实践出发,结合最常见、通用的个人知识库助手项目,深入浅出逐步拆解 LLM 开发的一般流程、步骤,旨在帮助没有算法基础的小白通过一个课程完成大模型开发的基础入门。同时,我们也对项目本身做了清晰、全面的逐层规划及封装,实现了不同 LLM API 到项目的统一整合,帮助开发者能够自由、统一调用不同 LLM,充分降低学习门槛。

项目受众

所有具备基础 Python 能力,想要掌握 LLM 应用开发技能的开发者。

本项目对学习者的人工智能基础、算法基础没有任何要求,仅需要掌握基本 Python 语法、掌握初级 Python 开发技能即可。

本项目对本地硬件基本没有要求,不需要 GPU 环境,个人电脑及服务器均可用于学习。

Python 环境版本

openai== 0.27.6
zhipuai== 1.0.7
websocket-client== 1.5.2
langchain== 0.0.292
pydantic== 1.10.10
fastapi== 0.85.1
gradio== 3.40.1
python-dotenv==1.0.0

项目亮点

实践

充分面向实践,动手学习大模型开发。相较于其他从理论入手、与实践代差较大的类似教程,本教程基于具有通用性的个人知识库助手项目打造,将普适的大模型开发理念融合在项目实践中,帮助学习者通过动手搭建个人项目来掌握大模型开发技能。

从零开始

从零开始,全面又简短的大模型教程。本项目针对个人知识库助手项目,对相关大模型开发理论、概念和基本技能进行了项目主导的重构,删去不需要理解的底层原理和算法细节,涵盖所有大模型开发的核心技能。教程整体时长在数小时之内,但学习完本教程,可以掌握基础大模型开发的所有核心技能。

统一与拓展

兼具统一性与拓展性。本项目对 GPT、百度文心、讯飞星火、智谱GLM 等国内外主要 LLM API 进行了统一封装,支持一键调用不同的 LLM,帮助开发者将更多的精力放在学习应用与模型本身的优化上,而不需要花时间在繁琐的调用细节上;同时,本教程拟上线 奇想星球 | AIGC共创社区平台,支持学习者自定义项目为本教程增加拓展内容,具备充分的拓展性。

内容大纲

在这里插入图片描述思维导图

一. 什么是LLM(大语言模型)?

1. 发展历程

语言建模的研究始于20世纪90年代,最初采用了统计学习方法,通过前面的词汇来预测下一个词汇。然而,这种方法在理解复杂语言规则方面存在一定局限性。

随后,研究人员不断尝试改进,其中在2003年,深度学习先驱Bengio在他的经典论文《A Neural Probabilistic Language Model》中,首次将深度学习的思想融入到语言模型中,使用了更强大的神经网络模型,这相当于为计算机提供了更强大的"大脑"来理解语言。这种方法让模型可以更好地捕捉语言中的复杂关系,虽然这一步很重要,但仍有改进的空间。

大约在2018年左右,研究人员引入了Transformer架构的神经网络模型,通过大量文本数据训练这些模型,使它们能够通过阅读大量文本来深入理解语言规则和模式,就像让计算机阅读整个互联网一样。所以它对语言有了更深刻的理解。这种方法在很多任务上表现得非常好。

与此同时,研究人员发现,随着语言模型规模的扩大(增加模型大小或使用更多数据),模型展现出了一些惊人的能力,通常在各种任务中表现显著提升。这时我们进入了大语言模型(LLM)时代。

2. 大语言模型的概念

大语言模型(英文:Large Language Model,缩写LLM),也称大型语言模型,是一种人工智能模型,旨在理解和生成人类语言。

通常,大语言模型 (LLM) 指包含数百亿(或更多)参数的语言模型,这些模型在大量的文本数据上进行训练,例如国外的有GPT-3 、GPT-4、PaLM 、Galactica 和 LLaMA 等,国内的有ChatGLM、文心一言、通义千问、讯飞星火等。

在这个阶段,计算机的“大脑”变得非常巨大,拥有数十亿甚至数千亿的参数。这就像是将计算机的大脑升级到了一个巨型超级计算机。这让计算机可以在各种任务上表现得非常出色,有时甚至比人类还要聪明。

为了探索性能的极限,许多研究人员开始训练越来越庞大的语言模型 ,例如拥有1750亿参数的 GPT-3 和5400亿参数的 PaLM 。尽管这些大型语言模型与小型语言模型(例如 BERT 的3.3亿参数和 GPT-2 的15亿参数)使用相似的架构和预训练任务,但它们展现出截然不同的能力,尤其在解决复杂任务时表现出了惊人的潜力,这被称为“涌现能力”。以 GPT-3 和 GPT-2 为例,GPT-3 可以通过学习上下文来解决少样本任务,而 GPT-2 在这方面表现较差。因此,研究界给这些庞大的语言模型起了个名字,称之为“大语言模型(LLM)”。而 LLM 的一个杰出应用就是 ChatGPT ,它是 GPT 系列 LLM 用于与人类对话式应用的大胆尝试,展现出了非常流畅和自然的表现。

LLM的应用和影响

LLM已经在许多领域产生了深远的影响。在自然语言处理领域,它可以帮助计算机更好地理解和生成文本,包括写文章、回答问题、翻译语言等。在信息检索领域,它可以改进搜索引擎,让我们更轻松地找到所需的信息。在计算机视觉领域,研究人员还在努力让计算机理解图像和文字,以改善多媒体交互。

最重要的是,LLM的出现让人们重新思考了通用人工智能(AGI)的可能性。AGI 是一种像人类一样思考和学习的人工智能。LLM 被认为是 AGI 的一种早期形式,这引发了对未来人工智能发展的许多思考和计划。

总之,LLM 是一种令人兴奋的技术,它让计算机更好地理解和使用语言,正在改变着我们与技术互动的方式,同时也引发了对未来人工智能的无限探索。希望这篇文章让你对LLM有了更清晰的认识!

二. 大模型的能力和特点

1. 大模型的能力

1.1 涌现能力(emergent abilities)

区分大语言模型(LLM)与以前的预训练语言模型(PLM)最显著的特征之一是它们的涌现能力。涌现能力指的是一种令人惊讶的能力,它在小型模型中不明显,但在大型模型中显著出现。可以类比到物理学中的相变现象,涌现能力的显现就像是模型性能随着规模增大而迅速提升,超过了随机水平,也就是我们常说的量变引起了质变。

具体来说,涌现能力可以定义为与某些复杂任务相关的能力,但我们更关注的是它们具备的通用能力,也就是能够应用于解决各种任务的能力。接下来,让我们简要介绍三个典型的LLM涌现能力:

上下文学习

上下文学习能力是由 GPT-3 首次引入的。这种能力允许语言模型在提供自然语言指令或多个任务示例的情况下,通过理解上下文并生成相应输出的方式来执行任务,而无需额外的训练或参数更新。

指令遵循

通过使用自然语言描述的多任务数据进行微调,也就是所谓的指令微调,LLM 被证明在同样使用指令形式化描述的未见过的任务上表现良好。这意味着LLM能够根据任务指令执行任务,而无需事先见过具体示例,这展示了其强大的泛化能力。

逐步推理

小型语言模型通常难以解决涉及多个推理步骤的复杂任务,例如数学问题。然而,LLM通过采用"思维链"推理策略,可以利用包含中间推理步骤的提示机制来解决这些任务,从而得出最终答案。据推测,这种能力可能是通过对代码的训练获得的。

这些涌现能力让LLM在处理各种任务时表现出色,使它们成为了解决复杂问题和应用于多领域的强大工具。

1.2 作为基座模型支持多元应用的能力

在2021年,斯坦福大学等多所高校的研究人员提出了基座模型(foundation model)的概念,这更清晰地描述了之前学界所称的预训练模型的作用。这是一种全新的AI技术范式,借助于海量无标注数据的训练,获得可以适用于大量下游任务的大模型(单模态或者多模态)。这样,多个应用可以只依赖于一个或少数几个大模型进行统一建设

大语言模型是这个新模式的典型例子,使用统一的大模型可以极大地提高研发效率,相比于分散的模型开发方式,这是一项本质上的进步。大型模型不仅可以缩短每个具体应用的开发周期,减少所需人力投入,也可以基于大模型的推理、常识和写作能力,获得更好的应用效果。因此,大模型可以成为AI应用开发的大一统基座模型,这是一个一举多得、全新的范式,值得大力推广。

1.3 支持对话作为统一入口的能力

让大语言模型真正火爆的契机,是基于对话聊天的ChatGPT。事实上,业界很早就发现了用户对于对话交互的特殊偏好,陆奇在微软期间2016年就推进“对话即平台(conversation as a platform)”的战略。此外,苹果Siri、亚马逊Echo等基于语音对话的产品也非常受欢迎,反映出互联网用户对于聊天和对话这种交互模式的偏好。虽然之前的聊天机器人存在各种问题,但大型语言模型的出现再次让聊天机器人这种交互模式可以重新想像。用户愈发期待像钢铁侠中“贾维斯”一样的人工智能,无所不能、无所不知。这引发我们对于智能体(Agent)类型应用前景的思考,Auto-GPT、微软Jarvis等项目已经出现并受到关注,相信未来会涌现出很多类似的以对话形态让助手完成各种具体工作的项目。

2.大模型的特点

大语言模型(LLM,Large Language Models)具有多种显著特点,这些特点使它们在自然语言处理和其他领域中引起了广泛的兴趣和研究。以下是大语言模型的一些主要特点:

巨大的规模: LLM通常具有巨大的参数规模,可以达到数十亿甚至数千亿个参数。这使得它们能够捕捉更多的语言知识和复杂的语法结构。

预训练和微调: LLM采用了预训练和微调的学习方法。它们首先在大规模文本数据上进行预训练(无标签数据),学会了通用的语言表示和知识,然后通过微调(有标签数据)适应特定任务,从而在各种NLP任务中表现出色。

上下文感知: LLM在处理文本时具有强大的上下文感知能力,能够理解和生成依赖于前文的文本内容。这使得它们在对话、文章生成和情境理解方面表现出色。

多语言支持: LLM可以用于多种语言,不仅限于英语。它们的多语言能力使得跨文化和跨语言的应用变得更加容易。

多模态支持: 一些LLM已经扩展到支持多模态数据,包括文本、图像和声音。这意味着它们可以理解和生成不同媒体类型的内容,实现更多样化的应用。

涌现能力: LLM表现出令人惊讶的涌现能力,即在大规模模型中出现但在小型模型中不明显的性能提升。这使得它们能够处理更复杂的任务和问题。

多领域应用: LLM已经被广泛应用于文本生成、自动翻译、信息检索、摘要生成、聊天机器人、虚拟助手等多个领域,对人们的日常生活和工作产生了深远的影响。

伦理和风险问题: 尽管LLM具有出色的能力,但它们也引发了伦理和风险问题,包括生成有害内容、隐私问题、认知偏差等。因此,研究和应用LLM需要谨慎。

总之,大语言模型是一种具有强大语言处理能力的技术,已经在多个领域展示了潜力。它们为自然语言理解和生成任务提供了强大的工具,同时也引发了对其伦理和风险问题的关注。这些特点使LLM成为了当今计算机科学和人工智能领域的重要研究和应用方向。

三. 常见大模型

大语言模型的发展历程虽然只有短短不到五年的时间,但是发展速度相当惊人,截止 2023 年 6 月,国内外有超过百种大模型相继发布。按照时间线给出了 2019 年至 2023 年 6 月比较有影响力并且模型参数量超过 100 亿的大语言模型,如下图所示:
在这里插入图片描述
接下来我们主要介绍几个国内外常见的大模型(包括开源和闭源的LLM)

闭源 LLM (未公开源代码)

1. GPT系列

OpenAI 公司在 2018 年提出的 GPT(Generative Pre-Training)[9] 模型是典型的生成式预训练 语言模型之一。

GPT模型的基本原则是通过语言建模将世界知识压缩到仅解码器的Transformer模型中,这样它就可以恢复(或记忆)世界知识的语义,并充当通用任务求解器。成功的两个关键点是:

训练能够准确预测下一个单词的仅解码器的Transformer语言模型
扩展语言模型的大小。
总体而言,OpenAI 在 LLM 上的研究大致可以分为以下几个阶段:
在这里插入图片描述
接下来,我们将从模型规模、特点等方面,介绍大家熟悉的ChatGPT 与 GPT4:

ChatGPT

2022 年 11 月,OpenAI 发布了基于 GPT模型(GPT-3.5 和 GPT-4) 的会话应用 ChatGPT。由于与人类交流的出色能力,ChatGPT自发布以来就引发了人工智能社区的兴奋。ChatGPT是基于强大的GPT模型开发的,具有特别优化的会话能力。

ChatGPT 从本质上来说是一个 LLM 应用,它是基于 GPT-3.5 和 GPT-4 开发出来的,与 GPT-4 有本质的区别,正如当前应用界面所显示的,支持 GPT-3.5 和 GPT-4 两个版本。
在这里插入图片描述
现在的 ChatGPT 支持最长达 32,000 个字符,知识截止日期是 2021 年 9 月,它可以执行各种任务,包括代码编写、数学问题求解、写作建议等。ChatGPT 在与人类交流方面表现出了卓越的能力:拥有丰富的知识储备,对数学问题进行推理的技能,在多回合对话中准确追踪上下文,并且与人类安全使用的价值观非常一致。后来,ChatGPT 支持插件机制,这进一步扩展了 ChatGPT 与现有工具或应用程序的能力。到目前为止,它似乎是人工智能历史上最强大的聊天机器人。ChatGPT 的推出对未来的人工智能研究具有重大影响,它为探索类人人工智能系统提供了启示。

GPT-4

2023 年 3 月发布的GPT-4,它将文本输入扩展到多模态信号。总体而言,GPT3.5 拥有 1750亿 个参数,而 GPT4 的参数量官方并没有公布,但有相关人员猜测,GPT-4 在 120 层中总共包含了 1.8 万亿参数,也就是说,GPT-4 的规模是 GPT-3 的 10 倍以上。因此,GPT-4 比 GPT-3.5 解决复杂任务的能力更强,在许多评估任务上表现出较大的性能提升。

最近的一项研究通过对人为生成的问题进行定性测试来研究 GPT-4 的能力,这些问题包含了各种各样的困难任务,并表明 GPT-4 可以比之前的 GPT 模型(如 GPT3.5 )实现更优越的性能。此外,由于六个月的迭代校准(在 RLHF 训练中有额外的安全奖励信号),GPT-4 对恶意或挑衅性查询的响应更安全。在技术报告中,OpenAI 强调了如何安全地开发 GPT-4 ,并应用了一些干预策略来缓解 LLM 可能出现的问题,如幻觉、隐私和过度依赖。例如,他们引入了称为红队评估(red teaming)的机制,以减少危害或有毒物质的产生。作为另一个重要方面,GPT4 是在一个完善的深度学习基础设施上开发的,并使用改进的优化方法。他们引入了一种称为可预测扩展(predictable scaling)的新机制,可以在模型训练期间使用一小部分计算准确预测最终性能。

2. Claude系列

Claude 系列模型是由 OpenAI 离职人员创建的 Anthropic 公司开发的闭源语言大模型,可以完成摘要总结、搜索、协助创作、问答、编码等任务。目前包含 Claude 和 Claude-Instant 两种模型可供选择,其中 Claude Instant 的延迟更低,性能略差,价格比完全体的 Claude-v1 要便宜,两个模型的上下文窗口都是 9000 个token(约 5000 个单词,或 15 页)它的目标是“更安全”、“危害更小”的人工智能。最早的 Claude 于 2023 年 3 月 15 日发布,并在 2023 年 7 月 11 日,更新至 Claude-2。Claude 2 的训练参数官方并未公开,但是相关的猜测大概是 860.1 亿个参数。

该系列模型通过无监督预训练、基于人类反馈的强化学习和 Constitutional AI 技术(包含监督训练和强化学习)进行训练,旨在改进模型的有用性、诚实性和无害性。值得一提的是,Claude 最高支持 100K 词元的上下文,而 Claude-2 更是拓展到了 200K 词元的上下文。相比于Claude 1.3, Claude 2 拥有更强的综合能力,同时能够生成更长的相应。

总的来说,Claude 2 注重提高以下能力:

Anthropic 致力于提高 Claude 作为编码助理的能力,Claude 2 在编码基准和人类反馈评估方面性能显著提升。
长上下文(long-context)模型对于处理长文档、少量 prompt 以及使用复杂指令和规范进行控制特别有用。Claude 的上下文窗口从 9K token 扩展到了 100K token(Claude 2 已经扩展到 200K token,但目前发布版本仅支持 100K token)。
以前的模型经过训练可以编写相当短的回答,但许多用户要求更长的输出。Claude 2 经过训练,可以生成最多 4000 个 token 的连贯文档,相当于大约 3000 个单词。
Claude 通常用于将长而复杂的自然语言文档转换为结构化数据格式。Claude 2 经过训练,可以更好地生成 JSON、XML、YAML、代码和 Markdown 格式的正确输出。 虽然 Claude 的训练数据仍然主要是英语,但 Claude 2 的训练数据中非英语数据比例已经明显增加。
Claude 2 的训练数据包括 2022 年和 2023 年初更新的数据。这意味着它知道最近发生的事件,但它仍然可能会产生混淆。
在这里插入图片描述

3. PaLM 系列

PaLM 系列语言大模型由 Google 开发。其初始版本于 2022 年 4 月发布,并在 2023 年 3 月公开了 API。PaLM 基于 Google 提出的 Pathways 机器学习系统搭建,训练数据总量达 780B 个字符,内容涵盖网页、书籍、新闻、开源代码等多种形式的语料。前 PaLM 共有 8B、62B、540B 三个不同参数量的模型版本。Google 还开发了多种 PaLM 的改进版本。Med-PaLM 是 PaLM 540B 在医疗数据上进行了微调后的版本,在 MedQA 等医疗问答数据集上取得了最好成绩。PaLM-E 是 PaLM 的多模态版本,能够在现实场景中控制机器人完成简单任务。

2023 年 5 月,Google 发布了 PaLM 2,但并未公开其技术细节。Google 内部文件显示其参数量为 340B,训练数据为 PaLM 的 5 倍左右。它是 PaLM(540B) 的升级版,能够处理“多语言任务”。它使用了一个覆盖100多种语言的语料库进行训练。而PaLM2实际上是一系列模型,可以根据规模分为:Gecko、Otter、Bison和Unicorn,可以根据不同的领域和需求进行微调,最小模型可以部署在移动端,最大的参数量也只有14.7B。现已部署在Google的25个产品和功能中,包括Bard和Google Worksapce应用,针对不同的领域又可以变成专有模型,比如Med-PaLM 2,是第一个在美国医疗执照考试类问题上表现出“专家”水平的大型语言模型。

PaLM2的几大突破:

最优的缩放比例(训练数据大小/模型参数量),通过compute-optimal scaling 的研究,可以得知数据大小与模型大小同样重要。根据谷歌的研究,数据和模型大小大致按照 1:1 的比例缩放,可以达到最佳性能。(过去常认为,模型参数量的大小大致为数据集 3 倍更佳)
训练数据集非纯英文语料,混合了百种语言,包括了网络文档、书籍、代码、数学和对话数据,比用于训练PaLM的语料库大得多。并在研究中发现,越大的模型越是能处理更多的非英文数据集,而且包含更高比例的非英语数据,对多语言任务(如翻译和多语言问题回答)是有利的,因为模型会接触到更多的语言和文化。这使得该模型能够学习每种语言的细微差别。
以下窗口是 Google 基于 PaLM2 开发的对话应用Bard:
在这里插入图片描述

4. 文心一言

文心一言是基于百度文心大模型的知识增强语言大模型,于2023年 3 月在国内率先开启邀测。文心一言的基础模型文心大模型于 2019年发布。更进一步划分,文心大模型包括NLP大模型、CV大模型、跨模态大模型、生物计算大模型、行业大模型,其中 NLP 大模型主要为 ERNIE 系列模型,是打造文心一言的关键。文心大模型参数量非常大,达到了 2600 亿。

2023 年 8 月 31 日,文心一言率先向全社会全面开放,提供 APP、网页版、API 接口等多种形式的开放服务。文心一言一方面采用有监督精调、人类反馈的强化学习、提示等技术,还具备知识增强、检索增强和对话增强等关键技术。当前,以文心一言为代表的大模型已经逐步赶超国外最优水平。文心一言基于飞桨深度学习框架进行训练,算法与框架的协同优化后效果和效率都得到提升,模型训练速度达到优化前的 3 倍,推理速度达到优化前的 30 多倍。文心一言还建设了插件机制,通过外部工具、服务的调用,拓展大模型的能力的边界。

在这里插入图片描述

5. 星火大模型

讯飞星火认知大模型是科大讯飞于 2023 年 5 月 6 日发布的语言大模型,提供了基于自然语言处理的多元能力,支持多种自然语言处理任务,同时联合中科院人工智能产学研创新联盟和长三角人工智能产业链联盟在业内提出了覆盖 7 大类 481 项任务的《通用人工智能评测体系》;6 月 9 日星火大模型升级到 V1.5 版,实现了开放式知识问答、多轮对话、逻辑和数学能力的提升;8 月 15 日星火大模型升级到 V2.0 版,对于代码和多模态能力进行了提升。讯飞星火 V2.0 升级发布的多模态能力,已实现图像描述、图像理解、图像推理、识图创作、文图生成、虚拟人合成。星火大模型包含超过1700 亿个参数,来源于数十亿的语言数据集。尽管比 ChatGPT 3.5模型 1.5 万亿个差着数量级,但 ChatGPT 覆盖了全球主要语言,汉语不到其中 10% 的数据量。所以在现有数据基础上,星火大模型比ChatGPT更懂中文。

基于代码和多模态能力的发布,智能编程助手iFlyCode1.0 和 讯飞智作2.0 两款应用产品也在发布会上发布,进一步解放编程和内容生产力。同时,讯飞和华为还联合重磅发布了国内首款支持大模型训练私有化的全国产化产品“星火一体机”,可支持企业快速实现讯飞星火大模型的私有化部署、场景赋能和专属大模型训练优化。

开源 LLM

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 模型也采用了 decoder-only 架构,但同时结合了一些前人工作的改进,例如:

Pre-normalization,为了提高训练稳定性,LLaMA 对每个 Transformer子层的输入进行了 RMSNorm 归一化,这种归一化方法可以避免梯度爆炸和消失的问题,提高模型的收敛速度和性能;
SwiGLU 激活函数,将 ReLU 非线性替换为 SwiGLU 激活函数,增加网络的表达能力和非线性,同时减少参数量和计算量;
RoPE 位置编码,模型的输入不再使用位置编码,而是在网络的每一层添加了位置编码,RoPE 位置编码可以有效地捕捉输入序列中的相对位置信息,并且具有更好的泛化能力。
这些改进使得 LLaMA 模型在自然语言理解、生成、对话等任务上都取得了较好的结果。

2. GLM 系列

GLM系列模型是清华大学和智谱 AI 等合作研发的开源语言大模型。GLM 采用了自回归填空作为预训练任务,并且使用多任务预训练的方式提升模型生成长文本的能力和序列到序列任务的能力。为了能够更好地进行预训练,GLM 采用了二维位置编码,第一维表示当前位置的原文本中的位置信息,第二维表示对应的掩码的位置信息。此外,为了能够尽量推理和训练所占用的显存,GLM-130B 可以使用 INT4 进行量化并且不会明显影响模型效果。通过优化,GLM-130B 可以在 4 张 RTX 3090 Ti(24G)显卡或 8 张 RTX 2080 Ti(11G)的显卡上进行推理。

ChatGLM 是基于 GLM 结构开发的具有 62 亿参数量的语言大模型,支持 2048 的上下文长度。其使用了包含 1 万亿字符的中英文语料进行训练,能够支持中文和英文两种语言的任务。通过监督微调、反馈自助、人类反馈强化学习等多种训练技术,ChatGLM 拥有强大的生成能力,能够生成更符合人类偏好的内容。与 GLM 相似,通过 INT4 量化 和 P-Tuning v2 等高效微调的算法,ChatGLM 能够在 7G 显存的条件下进行微调。

在 ChatGLM 的基础上,`ChatGLM 2`` 使用了包含 1.4 万亿字符的中英预料进行预训练,并使用人类偏好的数据对模型进行对齐训练,拥有比前一版本更加强大的能力,在多个任务上取得提升。

通过 FlashAttention 技术,ChatGLM 2 能够处理更长的长下文,支持的长下文长度达到了 3.2 万字符
通过 Multi-Query Attention 技术,ChatGLM 2 能够进一步地提升推理速度,减小对显卡的显存占用。
在这里插入图片描述

3. 通义千问

通义千问由阿里巴巴基于“通义”大模型研发,于 2023 年 4 月正式发布。2023 年 8 月,阿里云开源了Qwen(通义千问)系列工作,当前开源模型的参数规模为70亿(7B)和140亿(14B)。本次开源包括基础模型Qwen,即 Qwen-7B 和 Qwen-14B ,以及对话模型 Qwen-Chat ,即 Qwen-7B-Chat 和 Qwen-14B-Chat。

它能够以自然语言方式响应人类的各种指令,拥有强大的能力,如回答问题、创作文字、编写代码、提供各类语言的翻译服务、文本润色、文本摘要以及角色扮演对话等。借助于阿里云丰富的算力资源和平台服务,通义千问能够实现快速迭代和创新功能。此外,阿里巴巴完善的产品体系以及广泛的应用场景使得通义千问更具可落地性和市场可接受程度。
在这里插入图片描述

4. Baichuan 系列

Baichuan 是由百川智能开发的开源可商用的语言大模型,在权威的中文和英文 benchmark 上均取得同尺寸最好的效果,其基于Transformer 解码器架构。

Baichuan-7B 是在大约 1.2 万亿字符上训练的 70 亿参数模型,支持中英双语,最大 4096 的上下文窗口长度。

Baichuan-13B 在 Baichuan-7B 的基础上进一步扩大参数量到 130 亿,并且在高质量的语料上训练了 1.4 万亿 字符,超过 LLaMA-13B 40%,是当前开源 13B 尺寸下训练数据量最多的模型。其支持中英双语,使用 ALiBi 位置编码,最大 4096 的上下文窗口长度,使用 rotary-embedding,是现阶段被大多数模型采用的位置编码方案,具有很好的外推性。百川同时开源了预训练和对齐模型,预训练模型是面向开发者的“基座”,而对齐模型则面向广大需要对话功能的普通用户。除了原始权重,为实现更高效的推理,百川开源了 INT8 和 INT4 的量化版本,相对非量化版本在几乎没有效果损失的情况下大大降低了部署的机器资源需求。

Baichuan 2 是百川智能推出的新一代开源大语言模型,Baichuan2-7B 和 Baichuan2-13B,均基于 2.6 万亿 Tokens 的高质量语料训练,在保留了上一代开源模型良好的生成与创作能力,流畅的多轮对话能力以及部署门槛较低等众多特性的基础上,两个模型在数学、代码、安全、逻辑推理、语义理解等能力有显著提升。。Baichuan 2 在多个权威的中文、英文和多语言的通用、领域 benchmark 上取得同尺寸最佳的效果。本次发布包含有 7B、13B 的 Base 和 Chat 版本,并提供了 Chat 版本的 4bits 量化。
在这里插入图片描述

四.什么是 LangChain

1. langchain 简介

ChatGPT 的巨大成功激发了越来越多的开发者兴趣,他们希望利用 OpenAI 提供的 API 或者私有化模型,来开发基于大型语言模型的应用程序。尽管大型语言模型的调用相对简单,但要创建完整的应用程序,仍然需要大量的定制开发工作,包括API集成、互动逻辑、数据存储等等。

为了解决这个问题,从 2022 年开始,许多机构和个人相继推出了多个开源项目,旨在帮助开发者们快速构建基于大型语言模型的端到端应用程序或工作流程。其中一个备受关注的项目就是 LangChain 框架。LangChain 框架是一个开源工具,充分利用了大型语言模型的强大能力,以便开发各种下游应用。它的目标是为各种大型语言模型应用提供通用接口,从而简化应用程序的开发流程。具体来说,LangChain 框架可以实现数据感知和环境互动,也就是说,它能够让语言模型与其他数据来源连接,并且允许语言模型与其所处的环境进行互动。

2. langchain 发展历史

LangChain 的作者是 Harrison Chase,该项目自从 2022 年 10 月在 github 上开源以后,迅速吸引了大量开发者的兴趣和投资者的青睐,也由此转变为一家初创公司。
前段时间,AI初创公司 LangChain 成功完成了 1000 万美元的种子轮融资,投资方为 Benchmark Capital。这笔融资进一步证实了 LangChain 作为 AI 初创企业的领军地位。并且,在本次种子轮融资后,LangChain 不久后再次获得了红杉领投的 2000 万至 2500 万美元融资,估值达到 2 亿美元。
在这里插入图片描述

3. langchain 核心组件

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

模型输入/输出(Model I/O):与语言模型交互的接口
数据连接(Data connection):与特定应用程序的数据进行交互的接口
链(Chains):将组件组合实现端到端应用。
记忆(Memory):用于链的多次运行之间持久化应用程序状态;
代理(Agents):扩展模型的推理能力。用于复杂的应用的调用序列;
回调(Callbacks):扩展模型的推理能力。用于复杂的应用的调用序列。

链接: 以上内容皆来自datawhale

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值