开源LLMs导览:工作原理、顶级LLM列表对比

2024-02-23 06:28

本文主要是介绍开源LLMs导览:工作原理、顶级LLM列表对比,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 一、开源 LLM 是什么意思?
  • 二、开源LLM如何工作?
    • 2.1 预训练
    • 2.2 代币化
    • 2.3 开源LLM的微调
    • 2.4 输入编码
    • 2.5 训练与优化
    • 2.6 推理
  • 三、开源LLM对组织的好处
    • 3.1 增强的数据安全和隐私
    • 3.2 节约成本
    • 3.3 减少供应商依赖性
    • 3.4 代码透明度
  • 四、哪种LLM模式最好?
    • 4.1 BERT
    • 4.2 LLaMA (Large Language Model Meta AI)
    • 4.3 Vicuna
    • 4.5 BLOOM
    • 4.6 FALCON-40B
  • 五、最后的想法
  • 参考

在当今快节奏的全球商业环境中,组织不断寻找创新的解决方案来提高运营效率并获得相对于竞争对手的竞争优势。其中一项在商业界备受关注的技术是开源大语言模型(LLM)。LLM已成为强大的工具,可以轻松改变我们与现代技术交互和处理各种任务的方式。

根据 Cutter Consortium 最近的一项调查,全球大约 34% 的组织计划将LLM纳入其运营中。[1] 这是相当令人印象深刻的,特别是当您考虑到领先科技巨头之外的许多组织几乎没有使用大型语言模型的经验时。人们对LLM(尤其是开源LLM)的浓厚兴趣是因为这些模型可以理解和生成类似人类的文本、回答问题以及执行各种其他语言处理任务。

这篇文章将深入回顾什么是开源大型语言模型、它们如何工作,以及当今可用的顶级LLM列表。

一、开源 LLM 是什么意思?

大型语言模型(LLM)基本上是指一种先进的人工智能(AI)模型,使用大量数据(主要来自互联网)进行训练,以理解和生成类似人类的文本。LLM依靠变压器模型架构等深度学习技术来处理和分析语言模式。这样,大型语言模型就能够使用自注意力机制来理解和识别各种单词和概念之间的关系。[2]

一般来说,大型语言模型(LLM)有两种类型:开源和封闭/专有。[3] 与 ChatGPT、Bard 和 GPT-3 等封闭式 LLM 不同,开源 LLM 公开其训练数据集、源代码、模型架构和权重。

这意味着任何人都可以访问、利用、修改和分发开源LLM。LLM的可访问性、可用性和透明度有助于促进人工智能 (AI) 系统的可重复性和去中心化。

二、开源LLM如何工作?

了解开源大型语言模型的工作原理对于利用其力量至关重要。也就是说,这里是有关它们如何工作的分步指南:

2.1 预训练

如上所述,开源LLM需要大量数据进行培训。事实上,大多数最先进的LLM都是使用不同的数据源进行培训的,例如书籍、网站、文章和互联网上的其他书面内容。

开源LLM通常会接受预训练,他们会接触各种未标记的文本数据。在此期间,这些模型学习预测句子中的屏蔽词,这使它们能够理解语法、语义、上下文表示和句法。这个过程可能需要几天甚至几周的时间。

2.2 代币化

在预训练期间,使用分词器对文本输入进行分词。在此阶段,文本输入被分成称为标记的较小单元。令牌可以小到单个字符,也可以长到整个单词。标记化背后的主要思想是让开源LLM能够有效地处理不常见的单词、字符和短语。通常为每个令牌分配一个唯一的数字 ID 以供后续处理。

2.3 开源LLM的微调

一旦开源LLM接受了大型数据集的培训,它就会针对特定任务进行微调。此过程涉及在较小的特定于任务的数据集上训练开源 LLM,以帮助调整其参数来执行各种任务,例如情感分析、语言翻译和文本摘要。当模型被微调时,其权重和偏差会根据所使用的特定于任务的数据集进行更新。

2.4 输入编码

在微调过程中,会对输入文本进行编码,以帮助保留各种单词和句子之间的上下文和关系。这样,机器将能够理解和识别任何给定文本中的模式以及句子的上下文。

然后,将 SEP(用于单独的文本段)和 CLS(用于分类)等特殊标记添加到编码输入中。值得注意的是,输入序列被切割成固定长度以确保样品处理的一致性。

2.5 训练与优化

在开源LLM经过微调并配备分类头后,它会在标记数据集上接受进一步的训练。该训练过程包括通过 LLM 前向传递编码文本输入、根据输入数据计算输出层的值,以及反向传播以最小化损失并使模型更加准确。在此阶段,您可以使用任何所需的优化技术,包括 RMSprop、Adam 和随机梯度下降 (SGD)。[4]

2.6 推理

使用开源大型语言模型时,您向其提供输入文本,它通过按顺序预测下一个标记来生成文本输出。此过程称为推理,可以实时执行。推理很重要,因为它们允许模型根据输入提示生成更相关和更合适的输出文本。


三、开源LLM对组织的好处

这些工具为组织提供了多种好处,包括:

3.1 增强的数据安全和隐私

开源LLM实施策略为组织提供了在自己的基础设施(本地或私有云设置)上部署模型的选项。这使组织能够完全控制其数据,并确保敏感信息保留在组织中。

3.2 节约成本

一般来说,这些LLM比闭源/专有LLM便宜得多。这主要是因为使用开源LLM需要支付许可费用。

3.3 减少供应商依赖性

当使用闭源/专有LLM时,用户越来越依赖于某一供应商的更新、持续维护和支持。然而,通过采用开源LLM,用户可以轻松地从社区贡献中受益,并依赖多个供应商的支持和更新。

3.4 代码透明度

开源LLM因其底层代码的透明度而闻名。因此,用户可以更轻松地了解某个模型的工作原理并在将其集成到现有系统之前验证其功能。


四、哪种LLM模式最好?

以下是组织可用于其数据科学和机器学习 (ML) 项目的顶级LLM精选列表:

在这里插入图片描述

4.1 BERT

BERT 是由 Google 创建的开源LLM,通常用于各种自然语言处理任务。它还可用于生成嵌入来训练其他模型。Tie LLM 的模型大小约为 3.4 亿个参数,使用庞大且多样化的数据集进行训练,该数据集包含来自维基百科、BookCorpus 和互联网其他来源的超过 33 亿个单词。

4.2 LLaMA (Large Language Model Meta AI)

LLaMA 是由 Microsoft 和 Meta AI 开发的开源LLM,其推理代码可在 GPL-3 许可下使用。[5] 这意味着用户可以研究 LLaMA 的架构并使用推理代码来运行模型,甚至生成文本输出。用户还可以对现有代码进行更改或改进并与其他用户共享。

除了理解和生成文本之外,LLaMA 还可以理解图像,这使其可用于许多多模式任务。目前,这个开源 LLM 具有三种主要模型大小,分别接受 7、13 和 700 亿个参数的训练。

4.3 Vicuna

Vicuna 是由流行的人工智能研究组织 Large Model Systems (LMSys) 开发的最先进的开源大型语言模型。这个经过微调的 LLM 基于 ShareGPT,并且表现出与 Google 的 Bard 和 OpenAI 的 ChatGPT 等闭源 LLM 相当的性能。

4.5 BLOOM

BLOOM 是 BigScience 开发的尖端多语言开源LLM。该模型使用类似于 GPT-3.5 的架构构建,非常适合促进科学合作和突破。BLOOM 拥有约 1760 亿个参数的庞大模型,在规模方面超过了许多LLM。BLOOM 的一些最佳功能包括文化敏感性、包容性语言、多语言能力和道德沟通。

4.6 FALCON-40B

Falcon-40B 是技术创新研究所的创意,根据 Apache 2.0 许可证发布,允许商业用途。顾名思义,Falcon-40B 拥有令人印象深刻的模型规模,包含 400 亿个参数,并已在 RefinedWeb 数据集的 10000 亿个 token 上进行了训练。该模型的工作原理是预测序列中的下一个单词,预计将彻底改变多项自然语言处理任务。

五、最后的想法

开源大型语言模型有可能重塑和彻底改变人工智能驱动的组织。通过鼓励透明度、协作和道德发展,开源LLM有能力建立一个更具包容性和创新性的人工智能社区。

此外,它们的适应性、多功能性和经济性使它们成为没有预算从头开始训练自己模型的组织的绝佳选择。


参考

[1] Cutter.com. Enterprises Are Keen on Adopting LLMs, But Issues Exist. URL: https://www.cutter.com/article/enterprises-are-keen-adopting-large-language-models-issues-exist. Accessed September 14, 2023
[2] Medium.com. Attention Networks: A Simple Way To Understand Self Attention. URL: https://medium.com/@geetkal67/attention-networks-a-simple-way-to-understand-self-attention-f5fb363c736d. Accessed September 14, 2023
[3] Medium.com. Types of Open Source LLMs. URL: bit.ly/3Rv3wnC. Accessed September 14, 2023
[4] Analyticsvidhya.com. Comprehensive guide on Deep Learning Optimizers. URL: https://www.analyticsvidhya.com/blog/2021/10/a-comprehensive-guide-on-deep-learning-optimizers/, Accessed September 14, 2023
[5] Fossa.com. Open Source Software Licenses 101. URL: https://bit.ly/3Ru6ybB. Accessed September 14, 2023

这篇关于开源LLMs导览:工作原理、顶级LLM列表对比的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/737776

相关文章

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

Python实现Microsoft Office自动化的几种方式及对比详解

《Python实现MicrosoftOffice自动化的几种方式及对比详解》办公自动化是指利用现代化设备和技术,代替办公人员的部分手动或重复性业务活动,优质而高效地处理办公事务,实现对信息的高效利用... 目录一、基于COM接口的自动化(pywin32)二、独立文件操作库1. Word处理(python-d

Java常用注解扩展对比举例详解

《Java常用注解扩展对比举例详解》:本文主要介绍Java常用注解扩展对比的相关资料,提供了丰富的代码示例,并总结了最佳实践建议,帮助开发者更好地理解和应用这些注解,需要的朋友可以参考下... 目录一、@Controller 与 @RestController 对比二、使用 @Data 与 不使用 @Dat

python中字符串拼接的几种方法及优缺点对比详解

《python中字符串拼接的几种方法及优缺点对比详解》在Python中,字符串拼接是常见的操作,Python提供了多种方法来拼接字符串,每种方法有其优缺点和适用场景,以下是几种常见的字符串拼接方法,需... 目录1. 使用 + 运算符示例:优缺点:2. 使用&nbsjsp;join() 方法示例:优缺点:3

C++ 各种map特点对比分析

《C++各种map特点对比分析》文章比较了C++中不同类型的map(如std::map,std::unordered_map,std::multimap,std::unordered_multima... 目录特点比较C++ 示例代码 ​​​​​​代码解释特点比较1. std::map底层实现:基于红黑

Python中DataFrame转列表的最全指南

《Python中DataFrame转列表的最全指南》在Python数据分析中,Pandas的DataFrame是最常用的数据结构之一,本文将为你详解5种主流DataFrame转换为列表的方法,大家可以... 目录引言一、基础转换方法解析1. tolist()直接转换法2. values.tolist()矩阵

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式

python展开嵌套列表的多种方法

《python展开嵌套列表的多种方法》本文主要介绍了python展开嵌套列表的多种方法,包括for循环、列表推导式和sum函数三种方法,具有一定的参考价值,感兴趣的可以了解一下... 目录一、嵌套列表格式二、嵌套列表展开方法(一)for循环(1)for循环+append()(2)for循环+pyPhWiFd

Python容器类型之列表/字典/元组/集合方式

《Python容器类型之列表/字典/元组/集合方式》:本文主要介绍Python容器类型之列表/字典/元组/集合方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 列表(List) - 有序可变序列1.1 基本特性1.2 核心操作1.3 应用场景2. 字典(D