全面解析开源大语言模型:BLOOM

news2024/11/17 17:22:51

大型语言模型 (LLM) 的兴起一直是自然语言处理 (NLP) 领域的一个决定性趋势,导致它们在各种应用程序中的广泛采用。然而,这种进步往往是排他性的,大多数由资源丰富的组织开发的 LLM 仍然无法向公众开放。

这种排他性提出了一个重要的问题:如果有一种方法可以使对这些强大的语言模型的访问民主化,那会怎样?这就是 BLOOM 出现的原因。

本文首先提供了有关其起源的更多详细信息,从而全面概述了 BLOOM 是什么。然后,它介绍了 BLOOM 的技术规范以及如何使用它,然后强调了它的局限性和道德考虑。

什么是BLOOM?

BigScience 大型开放科学开放获取多语言模型(简称 BLOOM)代表了语言模型技术民主化的重大进步。

BLOOM由来自39个国家的1200多名参与者共同开发,是全球努力的产物。该项目由 BigScience 与 Hugging Face 和法国 NLP 社区合作协调,超越了地理和机构的界限。

它是一个开源的、仅解码器的转换器模型,具有 176B 参数,在 ROOTS 语料库上训练,该语料库是 59 种语言的数百个来源的数据集:46 种口语和 13 种编程语言。

下面是训练语言分布的饼图。

培训语文的分布

训练语言的分布

该模型被发现在各种基准测试中都取得了显着的性能,并且在多任务提示微调后获得了更好的结果。

该项目在巴黎的Jean Zay超级计算机上进行了为期117天(3月11日至7月6日)的培训课程,并得到了法国研究机构CNRS和GENCI的大量计算资助。

BLOOM不仅是一个技术奇迹,也是国际合作和集体科学追求力量的象征。

BLOOM 模型架构

现在,让我们更详细地描述一下 BLOOM 的架构,它涉及多个组件。

Bloom 架构

Bloom 架构

如本文所述,BLOOM 模型的架构包括几个值得注意的方面:

  • 设计方法: 该团队专注于支持公开可用工具和代码库的可扩展模型系列,并在较小的模型上进行了消融实验,以优化组件和超参数。零样本泛化是评估架构决策的关键指标。
  • 架构和预训练目标:BLOOM 基于 Transformer 架构,特别是仅因果解码器模型。与编码器-解码器和其他仅解码器架构相比,这种方法被验证为零样本泛化功能最有效的方法。
  • 建模细节:
    • ALiBi 位置嵌入:ALiBi 之所以选择传统的位置嵌入,是因为它根据按键和查询之间的距离直接削弱注意力分数。这导致了更顺畅的训练和更好的表现。
    • 嵌入 LayerNorm: 在嵌入层之后立即包含额外的层归一化,这提高了训练稳定性。这一决定在一定程度上受到在最终训练中使用 bfloat16 的影响,它比 float16 更稳定。

这些组件反映了团队专注于平衡创新与成熟技术,以优化模型的性能和稳定性。

除了 BLOOM 的架构组件之外,让我们了解另外两个相关组件:数据预处理和提示数据集。

  • 数据预处理:这涉及重复数据删除和隐私编辑等关键步骤,特别是对于隐私风险较高的来源。
  • 提示数据集:BLOOM采用多任务提示微调,显示出强大的零样本任务泛化能力。

如何使用 BLOOM

在此示例中,我们将使用 BLOOM 生成创意故事。提供的代码结构用于设置环境、准备模型并根据给定提示生成文本。相应的源代码可在 GitHub 上找到,它在很大程度上受到了 amrrs 教程的启发。

配置工作区

BLOOM 模型是资源密集型的,因此正确配置工作区至关重要,主要步骤如下所述。

首先,Transformer 库用于提供用于处理 BLOOM 模型和其他基于 transformer 的节点的接口。

pip install transformers -q

使用 nvidia-smi,我们检查可用 GPU 的属性,以确保我们拥有运行模型所需的计算资源

nvidia-smi

GPU 属性

我们从 transformers 和 torch 中导入所需的模块。torch 用于设置默认张量类型以利用 GPU 加速。

然后,由于我们使用的是 GPU,因此使用 set_default_tensor_type 函数设置 torch 库以确保使用 GPU。

from transformers import AutoModelForCausalLM, AutoTokenizer, set_seed
import torch
torch.set_default_tensor_type(torch.cuda.FloatTensor)

使用 BLOOM 模型

正在使用的目标模型是 70 亿参数的 BLOOM 模型,可以从 bigscience/bloom-1b7 下的 BigScience 的 Hubbing Face 存储库访问它,该存储库对应于模型的唯一标识符。

model_ID = "bigscience/bloom-1b7"

接下来,我们从 Hugging Face 加载预训练的 BLOOM 模型和分词器,并使用具有任意数字的 set_seed 函数为可重复性设置种子。数字本身的值并不重要,但使用非浮动值很重要。

model = AutoModelForCausalLM.from_pretrained(model_ID, use_cache=True) 
tokenizer = AutoTokenizer.from_pretrained(model_ID)
set_seed(2024)

现在,我们可以定义要生成的故事的标题以及提示。

story_title = 'An Unexpected Journey Through Time' 
prompt = f'This is a creative story about {story_title}.\n'

最后,我们将提示标记化并映射到适当的模型设备,然后在解码后生成模型的结果。

input_ids = tokenizer(prompt, return_tensors="pt").to(0)

sample = model.generate(**input_ids, 
                        max_length=200, top_k=1, 
                        temperature=0, repetition_penalty=2.0)

generated_story = tokenizer.decode(sample[0], skip_special_tokens=True)

最终结果使用 textwrap 模块进行格式化,以确保每行的最大字符数为 80 个,以提高可读性。

import textwrap  
wrapper = textwrap.TextWrapper(width=80)
import textwrap  
wrapper = textwrap.TextWrapper(width=80)

最终结果如下:

图片2.png

使用 BLOOM 模型生成的故事

只需几行代码,我们就能够使用 BLOOM 模型生成有意义的内容。

预期用途和范围外用途

像所有技术进步一样,BLOOM也有自己的一套合适和不合适的应用程序。本节深入探讨了其适当和不适当的用例,重点介绍了哪些方面可以最好地利用其功能,哪些地方建议谨慎行事。了解这些界限对于负责任和有效地利用 BLOOM 的潜力至关重要。

BLOOM的预期用途

BLOOM 是一个多功能工具,旨在突破语言处理和生成的界限。它的预期用途跨越各个领域,每个领域都利用其广泛的语言功能。

  • 多语言内容生成:BLOOM 精通 59 种语言,擅长创造多样化和包容性的内容。这种能力在全球传播、教育和媒体中尤为重要,在这些领域,语言包容性至关重要。
  • 编码和软件开发:BLOOM在编程语言方面的培训将其定位为软件开发的资产。它可以协助完成代码生成、调试等任务,并作为新程序员的教育工具。
  • 研究与学术: 在学术界,BLOOM 是语言分析和 AI 研究的强大资源,提供对语言模式、AI 行为等的见解。

超出 BLOOM 的范围使用

了解 BLOOM 的局限性对于确保其合乎道德和实际应用至关重要。一些用例超出了 BLOOM LLM 的适用范围,主要是出于道德考虑或技术限制。

  • 敏感数据处理:BLOOM 并非专为处理敏感个人数据或机密信息而设计。此类数据可能侵犯隐私或滥用,因此不适合用于这些目的。
  • 高风险决策:不建议在需要关键准确性的场景中使用 BLOOM,例如医疗诊断或法律决策。与大多数大型语言模型一样,该模型的局限性可能会导致这些敏感领域的不准确或误导性结果。
  • 人机交互替代:BLOOM不应被视为人际互动的替代品,尤其是在需要情商的领域,如咨询、外交或个性化教学。该模型缺乏人类互动提供的细致入微的理解和同理心。

直接和间接用户

BLOOM 作为一种先进的大型语言模型 (LLM),提供了广泛的优势,可以扩展到各种用户群。它的能力不仅直接影响某些专业人士和部门,而且具有更广泛的影响,间接影响更广泛的利益相关者。

对 BLOOM 用户的探索旨在强调不同群体如何利用这一创新工具并受到其影响。

通过了解 BLOOM 的直接和间接用户,我们可以欣赏该模型的广泛影响力以及它为推动技术和社会进步做出贡献的多种方式。

BLOOM的直接用户

  • 开发人员和数据科学家:软件开发和数据科学领域的专业人士是主要用户。他们利用 BLOOM 完成编码辅助、调试和数据分析等任务。
  • 研究人员和学者:该小组包括语言学家、人工智能研究人员和学者,他们使用 BLOOM 进行语言研究、人工智能行为分析和推进 NLP 研究。
  • 内容创作者和翻译人员: 作家、记者和翻译人员使用 BLOOM 生成和翻译不同语言的内容,从而提高他们的工作效率和影响力。

BLOOM的间接用户

  • 企业和组织: 各行各业的公司通过增强的人工智能驱动服务、改进的客户互动和高效的数据处理,间接受益于 BLOOM。
  • 教育机构:学生和教育工作者通过教育工具和资源间接体验 BLOOM 的好处,这些工具和资源结合了其语言处理能力进行学习和教学。
  • 公众:更广泛的社区通过改进的技术体验、访问多语言内容和增强的软件应用程序成为 BLOOM 的间接受益者。

道德考虑和限制

与任何大型语言模型 (LLM) 一样,BLOOM 的部署会带来一系列伦理方面的考虑和限制。这些方面对于了解负责任的使用和预测该技术的更广泛影响至关重要。本节介绍与使用 BLOOM 相关的伦理影响、风险和固有限制。

道德考量

  • 数据偏差和公平性: 主要的伦理问题之一是 BLOOM 有可能延续或放大其训练数据中存在的偏见。这可能会影响其输出的公平性和中立性,从而在公正处理至关重要的情况下导致道德挑战。
  • 隐私问题:虽然 BLOOM 没有明确设计用于处理敏感的个人信息,但其庞大的训练数据可能会无意中包含此类信息。如果 BLOOM 基于敏感数据生成输出或泄露敏感数据,则存在侵犯隐私的风险。

与使用相关的风险

  • 错误信息和操纵: BLOOM 的高级功能可能会被滥用于生成误导性信息或操纵性内容,从而在媒体、政治和舆论等领域构成重大风险。
  • 依赖和技能退化:过度依赖 BLOOM 来完成内容创作或翻译等任务可能会导致人类这些技能的退化,从而影响创造力和语言能力。

BLOOM的局限性

  • 上下文理解:尽管 BLOOM 很复杂,但它可能缺乏某些任务所需的深刻背景和文化理解,导致在细微的场景中出现不准确或不适当的输出。
  • 语言的演变性质: BLOOM在静态数据集上的训练意味着它可能无法跟上语言不断发展的步伐,包括新的俚语、术语或文化参考。

现实世界的影响和争议

BLOOM 的开发和发布在现实世界中具有重大影响,无论是在其影响方面还是在它引发的争议方面。本节以 BLOOM 研究论文的见解为基础,讨论了这些方面。

BLOOM对现实世界的影响
  • 人工智能技术的民主化:BLOOM代表了人工智能技术民主化的一步。BLOOM 由 BigScience 开发,是一项涉及来自 38 个国家/地区的 1200 多人的协作成果,是一个开放获取模型,在涵盖 59 种语言的多样化语料库上进行训练。这种广泛的参与和可访问性标志着大型语言模型开发中通常出现的排他性的转变。
  • 多样性和包容性: 该项目对语言、地理和科学多样性的承诺是值得注意的。用于训练 BLOOM 的 ROOTS 语料库涵盖了广泛的语言和编程语言,反映了对 AI 开发中包容性和代表性的重视
争议和挑战
  • 社会和道德问题: BLOOM的开发承认了大型语言模型开发中的社会局限性和伦理挑战。BigScience 研讨会采用了道德宪章来指导该项目,强调包容性、多样性、开放性、可重复性和责任感。这些原则被整合到项目的各个方面,从数据集管理到模型评估。
  • 环境和资源问题: 由于需要大量的计算资源,像BLOOM这样的大型语言模型的开发引起了环境问题。这些模型的训练通常只有资源丰富的组织才能负担得起,但对能源消耗和碳足迹有影响

BLOOM在今天仍然适用吗?

在快节奏的人工智能 (AI) 世界中,像 BLOOM 这样的大型语言模型 (LLM) 的相关性是一个持续讨论的话题。

BLOOM由庞大的国际研究人员团队开发,是语言处理领域的重大飞跃。然而,人工智能领域在不断发展,新模型的出现并转移了焦点。

让我们来看看 BLOOM 是否仍然在这个竞争激烈的领域站稳脚跟。

  • 焦点转移:BLOOM最初是一个重大突破,现在发现自己处于新模型的阴影下。与 ChatGPT 等对话式 AI 不同,BLOOM 是为内容完成而不是交互式交流量身定制的。
  • 硬件限制: 与 GPT-3.5 和 GPT4 等更用户友好的 LLM 相比,BLOOM 的高硬件需求限制了其可访问性,后者更容易集成到各种应用程序中。
  • 日益激烈的竞争: 像 LLaMA 这样的模型和 Alpaca 这样的工具的出现使 LLM 的访问民主化,以更少的资源需求提供功能,从而扩大了它们的吸引力和使用。
  • 多语言能力:BLOOM的独特卖点是其对多种语言的广泛培训,使其成为翻译和多语言内容创作的宝贵资源。

结论

本文概述了 BLOOM 项目,该项目对不断发展的大型语言模型领域做出了重大贡献。

我们探讨了 BLOOM 的发展,重点介绍了其技术规格及其创建背后的合作。该文章还作为访问和有效利用 BLOOM 的指南,强调了其适当的用途和局限性。

此外,它还涵盖了 BLOOM AI 项目的伦理影响和现实世界影响,反映了其在当今 AI 领域的接受度和相关性。无论您是直接参与 AI 还是爱好者,对 BLOOM 的探索都为驾驭大型语言模型的复杂世界提供了重要的视角。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1410903.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

手动搭建koa+ts项目框架(apidoc文档篇)

文章目录 一、安装apidoc工具二、使用1、项目根目录新建apidoc.json2、定义接口路由上方注解对应信息3、配置静态文件访问目录4、生成api文档如有启发,可点赞收藏哟~ 一、安装apidoc工具 全局安装 npm i apidoc -g查看是否安装成功 apidoc -v二、使用 1、项目根…

面向社交网络语言隐写分析

论文:Linguistic Steganalysis Toward Social Network 发表在:IEEE Transactions on Information Forensics & Security是网络与信息安全领域的国际两大顶级期刊之一,中国计算机学会(CCF)推荐的A类期刊&#xff0c…

第一篇【传奇开心果短博文系列】鸿蒙开发技术点案例示例:从helloworld开始理解鸿蒙开发ArkTS编程思路

传奇开心果短博文系列 系列短博文目录鸿蒙开发技术点案例示例系列 短博文目录一、前言二、初步解读鸿蒙的helloworld三、进一步深入解读理解 系列短博文目录 鸿蒙开发技术点案例示例系列 短博文目录 一、前言 从掰碎了揉烂了详细注释解读helloworld开始,理解Ark…

matlab appdesigner系列-容器2-选项卡组

所谓容器,就是可以放置常有组件的空间,类似一种画布。默认背景画布就是一张画布,选项卡组,可以同时增加好几个画布空间,以满足不的组件放置需求。 1)将选项卡组拖拽到画布上 2)将选项卡组拉大背…

linux-centos服务器离线安装yapi(包含nodejs、mongodb、yapi、pm2离线安装)

yapi是使用vue框架开发的,借助nodejs 前端直接访问的mongodb数据库,离线安装yapi步骤如下 下载离线安装包 下载地址 https://download.csdn.net/download/qq445829096/88778418 离线安装包先复制到 dev/yapi目录(根据自己习惯自定义目录) node-v12.13.0-linux-x64.tar.xz …

10.多柱状图(MuliBarChart)

愿你出走半生,归来仍是少年&#xff01; 环境&#xff1a;.NET 7、MAUI 话接上回&#xff08;9.单柱状图&#xff08;SingleBarChart&#xff09;&#xff09;&#xff0c;从单柱拓展到多柱状图。 1.数据设置 private void InitValue(List<BasicSerieDto> dtos){Serie…

EXCEL VBA调用adobe的api识别电子PDF发票里内容并登记台账

EXCEL VBA调用adobe的api识别电子PDF发票里内容并登记台账 代码如下 使用须知&#xff1a; 1、工具--引用里勾选[Adobe Acrobat 10.0 Type Library] 2、安装Adobe Acrobat pro软件Dim sht As Worksheet Function BrowseFolders() As String 浏览目录Dim objshell As ObjectDim…

ORM-08-EclipseLink 入门介绍

拓展阅读 The jdbc pool for java.(java 手写 jdbc 数据库连接池实现) The simple mybatis.&#xff08;手写简易版 mybatis&#xff09; 1. EclipseLink概述 本章介绍了EclipseLink及其关键特性&#xff1a;包括在EclipseLink中的组件、元数据、应用程序架构、映射和API。 本…

202|读书笔记《金融的本质:伯南克四讲美联储》

今天跟朋友聊天&#x1f4ac;&#xff0c;说已经没人看书了&#x1f4d6; 我想&#xff0c; 还是会有人读书的吧。 ​ 一、美联储的起源和使命 1. 第一讲&#xff1a;美国南北战争结束后的40年间&#xff0c;美国经历了6次大的银行体系恐慌&#xff0c;促使其于1913年成立美联储…

如何在Word中选择多个图片?这里提供两个方法及详细步骤

你的Word文档中可能有一些图片。要更改图片的几个参数,可以逐个编辑它们。当你有更多的图片时,你可能需要一次选择所有图片。这允许你一次更改所有内容。默认情况下,Word不允许你一次选择多张图片。 Word插入图片的两个布局选项 文字环绕 嵌入文本中 默认情况下,Word会在文…

注册表学习——注册表结构

简介&#xff1a;注册表是由很多项和值构成的。 HEKY_USERS&#xff08;HKU&#xff09; 主要保存默认用户及当前登录用户配置信息。 .DEFAULT 该项是针对未来创建的新用户所保存的默认配置项。 S-1-5-18等项 这些项叫作安全标识符&#xff08;SID&#xff09;用来表示Windows操…

初识C语言·自定义类型(2)

目录 1 结构体的声明和定义 2 结构体的自引用 3 结构体成员访问操作符 4 内存对齐 4 结构体传参 5 位段 1 结构体的声明和定义 什么是结构&#xff1f;结构也就是元素的集合&#xff0c;在C语言里面&#xff0c;结构体里面的可以有多个变量&#xff0c;类似于集合中的元素…

下载并安装nacos 2.3 for arm64

客户组织安全测试&#xff0c;我们系统测出了好几个高危问题&#xff0c;其中大部分是关于nacos的。 原先的nacos版本太低了&#xff0c;是1.3的。现在&#xff08;2024.01&#xff09;已经是2.3了&#xff0c;应该装个新的。我们使用docker安装nacos&#xff0c;原本很简单的…

程序员必备的20个学习网站

今天好学编程小编整理了20个程序员必备的学习网站&#xff0c;此篇对于新手程序员比较有用&#xff0c;技术老鸟们也可以查缺补漏。话不多说&#xff0c;纯纯干货呈上&#xff0c;赶紧点个赞收藏&#xff0c;以后会用得上&#xff01; 技术网站类 1、博客园 一个面向开发者的…

基于SSM的蛋糕甜品店管理系统(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的蛋糕甜品店管理系统&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring…

【网站项目】基于SSM的251国外摇滚乐队交流和周边售卖系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

opencv012 滤波器04 中值滤波,双边滤波

中值滤波 取中位数&#xff0c;可以处理椒盐噪音 CV自带medianBlur函数dst cv2.medianBlur(src, ksize) 参数说明&#xff1a;1.src: 需要滤波的图片&#xff1b;2.ksize&#xff1a;核大小&#xff0c;必须是比1大的奇数【举个例子&#xff1a;3&#xff0c;5&#xff0c;7……

司铭宇老师:企业销售培训:企业培训销售效果评估与质量提升

企业销售培训&#xff1a;企业培训销售效果评估与质量提升 随着市场竞争的日益激烈&#xff0c;企业越来越重视员工培训&#xff0c;希望通过高质量的培训提高员工的技能和素质&#xff0c;进而提升企业的竞争力和业绩。然而&#xff0c;在实践中&#xff0c;很多企业的培训销售…

Redis——list以及他的应用场景

介绍 &#xff1a;list 即是 链表。链表是一种非常常见的数据结构&#xff0c;特点是易于数据元素的插入和删除并且且可以灵活调整链表长度&#xff0c;但是链表的随机访问困难。许多高级编程语言都内置了链表的实现比如 Java 中的 LinkedList&#xff0c;但是 C 语言并没有实现…

安泰电子ATA-3080功率放大器在雷达系统无线电能传输中的具体应用

雷达技术在现代通信和导航系统中起着至关重要的作用。而功率放大器作为一种关键的电子器件&#xff0c;在雷达无线电能传输中扮演着不可或缺的角色。功率放大器负责将来自雷达发射机的低功率无线电信号放大到足够高的水平&#xff0c;以便能够穿透大气层&#xff0c;传输到远距…