史上首个100%开源大模型重磅登场!破纪录公开代码/权重/数据集/训练全过程,AMD都能训

多年来,语言模型一直是自然语言处理(NLP)技术的核心。鉴于模型背后的商业价值巨大,最先进模型的技术细节一直未公开。

现在,真·完全开源的大模型来了!

来自艾伦人工智能研究所、华盛顿大学、耶鲁大学、纽约大学和卡内基梅隆大学的研究人员,最近合作发表了一项重要的工作,这个工作将成为AI开源社区的重要里程碑。

他们几乎将从零开始训练一个大模型过程中的一切数据和资料都开源了!

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

史上首个100%开源大模型重磅登场!破纪录公开代码/权重/数据集/训练全过程,AMD都能训

论文:https://allenai.org/olmo/olmo-paper.pdf

权重:https://huggingface.co/allenai/OLMo-7B

代码:https://github.com/allenai/OLMo

数据:https://huggingface.co/datasets/allenai/dolma

码上飞 码上飞

码上飞(CodeFlying) 是一款AI自动化开发平台,通过自然语言描述即可自动生成完整应用程序。

码上飞 138 查看详情 码上飞

评估:https://github.com/allenai/OLMo-Eval

适配:https://github.com/allenai/open-instruct

史上首个100%开源大模型重磅登场!破纪录公开代码/权重/数据集/训练全过程,AMD都能训

具体来说,艾伦人工智能研究所推出的这个开放大语言模型(Open Language Model,OLMo)实验和训练平台,则提供了一个完全开源的大模型,以及所有和训练开发这个模型有关的数据和技术细节——

训练和建模:它包括完整的模型权重、训练代码、训练日志、消融研究、训练指标和推理代码。

预训练语料:一个包含了高达3T token的预训练开源语料库,以及产生这些训练数据的代码。

史上首个100%开源大模型重磅登场!破纪录公开代码/权重/数据集/训练全过程,AMD都能训

模型参数:OLMo框架提供了四个不同架构、优化器和训练硬件体系下的7B大小的模型,以及一个1B大小的模型,所有模型都在至少2T token上进行了训练。

同时,也提供了用于模型推理的代码、训练过程的各项指标以及训练日志。

史上首个100%开源大模型重磅登场!破纪录公开代码/权重/数据集/训练全过程,AMD都能训

7B:OLMo 7B、OLMo 7B (not annealed)、OLMo 7B-2T、OLMo-7B-Twin-2T

评估工具:公开了开发过程中的评估工具套件,包括每个模型训练过程中每1000 step中包含的超过500个的检查点以及评估代码。

所有数据都在apache 2.0下授权使用(免费商用)。

史上首个100%开源大模型重磅登场!破纪录公开代码/权重/数据集/训练全过程,AMD都能训

如此彻底的开源,似乎是给开源社区打了个样——以后不像我这样开源的,就别说自己是开源模型了。

性能评估

从核心的评估结果来看,OLMo-7B与同类开源模型相比略胜一筹。

在前9项评测中,OLMo-7B有8项排名前三,其中有2项超越了其他所有模型。

在很多生成任务或阅读理解任务(例如truthfulQA)上,OLMo-7B都超过了Llama 2,但在一些热门的问答任务(如MMLU或Big-bench Hard)上表现则要差一些。

史上首个100%开源大模型重磅登场!破纪录公开代码/权重/数据集/训练全过程,AMD都能训

前9个任务是研究人员对预训练模型的内部评估标准,而下面三个任务则是为了完善HuggingFace Open LLM排行榜而加入的

下图展示了9个核心任务准确率的变化趋势。

除了OBQA外,随着OLMo-7B接受更多数据的训练,几乎所有任务的准确率都呈现上升趋势。

史上首个100%开源大模型重磅登场!破纪录公开代码/权重/数据集/训练全过程,AMD都能训

与此同时,OLMo 1B与其同类模型的核心评估结果表明,OLMo与它们处于同一水平。

史上首个100%开源大模型重磅登场!破纪录公开代码/权重/数据集/训练全过程,AMD都能训

通过使用艾伦AI研究所的Paloma(一个基准测试)和可获取的检查点,研究人员分析了模型预测语言能力与模型规模因素(例如训练的token数量)之间的关系。

可以看到,OLMo-7B在性能上与主流模型持平。其中,每字节比特数(Bits per Byte)越低越好。

史上首个100%开源大模型重磅登场!破纪录公开代码/权重/数据集/训练全过程,AMD都能训

通过这些分析,研究人员发现模型在处理不同数据源时的效率差异较大,这主要取决于模型训练数据与评估数据的相似度。

特别地,OLMo-7B在主要基于Common Crawl的数据源上表现出色(比如C4)。

不过,在与网络抓取文本关系不大的数据源上,如WikiText-103、M2D2 S2ORC和M2D2 Wikipedia,OLMo-7B与其他模型相比效率较低。

RedPajama的评估也体现了相似的趋势,可能是因为它的7个领域中只有2个来源于Common Crawl,且Paloma对每个数据源中的各个领域给予了相同的权重。

鉴于像Wikipedia和arXiv论文这样的精选数据源提供的异质数据远不如网络抓取文本丰富,随着预训练数据集的不断扩大,维持对这些语言分布的高效率会很更加困难。

史上首个100%开源大模型重磅登场!破纪录公开代码/权重/数据集/训练全过程,AMD都能训

OLMo架构

在模型的架构方面,团队基于的是decoder-only的Transformer架构,并采用了PaLM和Llama使用的SwiGLU激活函数,引入了旋转位置嵌入技术(RoPE),并改进了GPT-NeoX-20B的基于字节对编码(BPE)的分词器,以减少模型输出中的个人可识别信息。

此外,为了保证模型的稳定性,研究人员没有使用偏置项(这一点与PaLM的处理方式相同)。

如下表所示,研究人员已经发布了1B和7B两个版本,同时还计划很快推出一个65B的版本。

史上首个100%开源大模型重磅登场!破纪录公开代码/权重/数据集/训练全过程,AMD都能训

下表详细比较了7B架构与这些其他模型在相似规模下的性能。

史上首个100%开源大模型重磅登场!破纪录公开代码/权重/数据集/训练全过程,AMD都能训

预训练数据集:Dolma

虽然研究人员在获取模型参数方面取得了一定的进展,但开源社区目前预训练数据集的开放程度还远远不够。

之前的预训练数据往往不会随着模型的开源而公开(闭源模型就更不用说了)。

而且有关这些数据的说明文档也常常缺乏足够的细节,但是这些细节对于想要复现研究或完全理解相关工作至关重要。

这一情况加大了语言模型研究的难度——比如,了解训练数据如何影响模型能力和其局限性。

为了推动语言模型预训练领域的开放研究,研究人员构建并公开了预训练数据集Dolma。

这是一个包含了从 7 种不同数据来源获取的3万亿个token的多样化、多源语料库。

这些数据源一方面在大规模语言模型预训练中常见,另一方面也能被普通大众所接触。

下表给出了来自各个数据源的数据量的概览。

史上首个100%开源大模型重磅登场!破纪录公开代码/权重/数据集/训练全过程,AMD都能训

Dolma的构建过程包括六个步骤:语言过滤、质量过滤、内容过滤、去重、多源混合和token化。

在整理和最终发布Dolma过程中,研究人员确保各数据源的文档保持独立。

他们还开源了一套高效的数据整理工具,这套工具能够帮助进一步研究Dolma、复制成果,并简化预训练语料库的整理工作。

此外,研究人员也开源了WIMBD工具,以助于数据集分析。

史上首个100%开源大模型重磅登场!破纪录公开代码/权重/数据集/训练全过程,AMD都能训

网络数据处理流程

史上首个100%开源大模型重磅登场!破纪录公开代码/权重/数据集/训练全过程,AMD都能训

代码处理流程

训练OLMo

分布式训练框架

研究人员利用PyTorch的FSDP框架和ZeRO优化器策略来训练模型。这种方法通过将模型的权重和它们对应的优化器状态在多个GPU中进行分割,从而有效减少了内存的使用量。

在处理高达7B规模的模型时,这项技术使研究人员能够在每个GPU上处理4096个token的微批大小,以实现更高效的训练。

对于OLMo-1B和7B模型,研究人员固定使用大约4M token(2048个数据实例,每个实例包含2048个token的序列)的全局批大小。

而对于目前正在训练中的OLMo-65B模型,研究人员采用了一个批大小预热策略,起始于大约2M token(1024个数据实例),之后每增加100B token,批大小翻倍,直至最终达到大约16M token(8192个数据实例)的规模。

史上首个100%开源大模型重磅登场!破纪录公开代码/权重/数据集/训练全过程,AMD都能训

为了加快模型训练的速度,研究人员采用了混合精度训练的技术,这一技术是通过FSDP的内部配置和PyTorch的amp模块来实现的。

这种方法特别设计,以确保一些关键的计算步骤(例如softmax函数)始终以最高精度执行,以保证训练过程的稳定性。

与此同时,其他大部分计算则使用一种称为bfloat16的半精度格式,以减少内存使用并提高计算效率。

在特定配置中,每个GPU上的模型权重和优化器状态都以最高精度保存。

只有在执行模型的前向传播和反向传播,即计算模型的输出和更新权重时,每个Transformer模块内的权重才会临时转换为bfloat16格式。

此外,各个GPU间同步梯度更新时,也会以最高精度进行,以确保训练质量。

优化器

研究人员采用了AdamW优化器来调整模型参数。

无论模型规模大小如何,研究人员都会在训练初期的5000步(大约处理21B个token)内逐渐增加学习率,这一过程称为学习率预热。

预热结束后,学习率将按线性规律逐渐减少,直到降至最高学习率的十分之一。

此外,研究人员还会对模型参数的梯度进行裁剪,确保其总的 L1 范数不会超过 1.0。

在下表中,研究人员将自己在7B模型规模下的优化器配置与近期其他使用AdamW优化器的大型语言模型进行了对比。

史上首个100%开源大模型重磅登场!破纪录公开代码/权重/数据集/训练全过程,AMD都能训

数据集

研究人员利用开放数据集Dolma中的一个2T token的样本,构建了他们的训练数据集。

研究人员将每篇文档的token连接起来,每篇文档的末尾都会加上一个特殊的 EOS token,接着将这些 token 分成每组 2048 个,形成训练样本。

这些训练样本在每次训练时都会以同样的方式进行随机打乱。研究人员还提供了一些工具,使得任何人都可以复原每个训练批次的具体数据顺序和组成。

研究人员已经发布的所有模型至少都经过了一轮(2T token)的训练。其中一些模型还进行了额外的训练,即在数据上进行第二轮训练,但采用了不同的随机打乱顺序。

根据之前的研究,这样重复使用少量数据的影响是微乎其微的。

英伟达和AMD都要YES!

为了确保代码库能够同时在英伟达和AMD的GPU上都能高效运行,研究人员选择了两个不同的集群进行了模型训练测试:

利用LUMI超级计算机,研究人员部署了最多256个节点,每个节点搭载了4张AMD MI250X GPU,每张GPU 拥有128GB内存和800Gbps的数据传输速率。

通过MosaicML (Databricks) 的支持,研究人员使用了27个节点,每个节点配备了8张英伟达A100 GPU,每张GPU拥有40GB内存和800Gbps的数据传输速率。

虽然研究人员为了提高训练效率对批大小进行了微调,但在完成2T token的评估后,两个集群的性能几乎没有差异。

史上首个100%开源大模型重磅登场!破纪录公开代码/权重/数据集/训练全过程,AMD都能训

训练能耗

总结

与以往大多数仅仅提供模型权重和推理代码的模型不同,研究人员开源了OLMo的全部内容,包括训练数据、训练和评估代码,以及训练日志、实验结果、重要发现以及Weights & Biases的记录等等。

此外,团队正在研究如何通过指令优化和不同类型的强化学习(RLHF)来改进OLMo。而这些微调代码、数据和经过微调后的模型也都会被开源。

研究人员致力于持续支持和发展OLMo及其框架,推动开放语言模型(LM)的发展,助力开放研究社区的发展。为此,研究人员计划引入更多不同规模的模型、多种模态、数据集、安全措施和评估方法,丰富OLMo家族。

他们希望通过今后持续进行的彻底开源工作,增强开源研究社区的力量,并引发新一轮的创新浪潮。

团队介绍

Yizhong Wang(王义中)

史上首个100%开源大模型重磅登场!破纪录公开代码/权重/数据集/训练全过程,AMD都能训

Yizhong Wang是华盛顿大学Paul G. Allen计算机科学与工程学院的博士生,导师是Hannaneh Hajishirzi和Noah Smith。同时,也是艾伦人工智能研究所的兼职研究实习生。

此前,他曾在Meta AI、微软研究院和百度NLP进行实习。此前,他在北京大学获得了硕士学位,在上海交通大学获得了学士学位。

他的研究方向是自然语言处理(Natural Language Processing)、机器学习(Machine Learning),以及大语言模型(LLM)。

– LLM的适应性:如何更有效地构建和评估能够跟随指令的模型?在微调这些模型时,我们应该考虑哪些因素,它们又如何影响到模型的通用性?哪种类型的监督方式既有效又能扩展?

– LLM的持续学习:预训练和微调之间的界限在哪里?有哪些架构和学习策略能够让LLM在预训练之后继续进化?模型内部已有的知识如何与新学的知识相互作用?

– 大规模合成数据的应用:在生成模型迅速产生数据的今天,这些数据对我们的模型开发乃至整个互联网和社会有何影响?我们如何确保能够在大规模下生成多样且高质量的数据?我们能否区分这些数据与人类生成的数据?

Yuling Gu

史上首个100%开源大模型重磅登场!破纪录公开代码/权重/数据集/训练全过程,AMD都能训

Yuling Gu是艾伦人工智能研究所(AI2)Aristo团队的一位研究员。

2020年,她在纽约大学(NYU)获得学士学位。除了主修的计算机科学外,她还辅修了一个跨学科专业——语言与心智,这个专业结合了语言学、心理学和哲学。随后,她在华盛顿大学(UW)获得了硕士学位。

她对机器学习的技术和认知科学的理论的融合应用充满了热情。

以上就是史上首个100%开源大模型重磅登场!破纪录公开代码/权重/数据集/训练全过程,AMD都能训的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/428353.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月7日 12:36:53
下一篇 2025年11月7日 12:46:49

相关推荐

  • Three.js中动态更换3D模型纹理的教程

    本教程详细介绍了如何在Three.js应用中,通过用户选择(如下拉菜单)动态更改GLTF、GLB、FBX等3D模型特定网格的纹理。文章涵盖了纹理加载、目标网格识别、材质更新的核心机制,并提供了代码示例和最佳实践,旨在帮助开发者实现模型外观的实时定制化。 在Three.js中,为3D模型(如GLTF、…

    2025年12月23日
    000
  • HTML5WebWorkers怎么用_HTML5WebWorkers后台线程的使用方法与实例

    Web Workers是HTML5的多线程机制,通过创建后台线程执行耗时任务,避免阻塞UI线程。1. 创建worker.js文件,编写耗时计算逻辑并监听消息;2. 主页面使用new Worker()加载Worker,通过postMessage发送数据,onmessage接收结果,实现主线程与Work…

    2025年12月23日
    000
  • 动态生成HTML表格:优化JavaScript数据展示与导出

    本文旨在解决JavaScript中动态生成HTML表格时遇到的代码冗余和样式控制难题。通过引入数据驱动的编程思想,我们将数据与视图逻辑分离,首先将表格内容组织为JavaScript对象数组,然后利用一个通用的函数将这些结构化数据渲染为可读性强、易于维护且支持灵活样式的HTML表格字符串。这种方法不仅…

    2025年12月23日
    000
  • HTML5性能优化怎么实现_HTML5新特性在性能优化方面的应用方法

    HTML5通过语义化标签、Web Storage、Canvas/SVG、Service Worker和原生媒体支持等技术提升性能:1. 语义化标签优化渲染效率;2. Web Storage减少网络请求;3. Canvas/SVG降低资源加载量;4. Service Worker实现离线缓存;5. 原…

    2025年12月23日
    000
  • 利用UTM参数与GTM优化链接点击来源追踪

    本文详细阐述了如何通过UTM参数精准追踪营销链接的点击来源,并深入探讨了Google Tag Manager (GTM) 在此过程中的高级应用。文章首先介绍了UTM参数的构成、生成方法及其在Google Analytics中的自动解析机制,强调其在识别流量来源方面的核心作用。随后,探讨了GTM如何通…

    2025年12月23日
    000
  • 如何通过HTML在线展示数据_HTML在线数据展示实现与可视化方案

    网页展示数据需结合HTML、CSS与JavaScript,首选table展示结构化数据,配合Chart.js等库实现可视化图表,通过fetch加载远程JSON动态渲染内容,并利用响应式设计与交互优化提升用户体验。 在网页中展示数据,核心是将结构化信息清晰、直观地呈现给用户。HTML本身是内容载体,结…

    2025年12月23日
    000
  • html在线几何图形绘制 html在线SVG应用实战教程

    使用HTML与SVG结合可高效绘制几何图形。SVG基于XML,支持圆形、矩形、多边形、路径等,在任意分辨率下清晰。1. 基础元素包括rect、circle、ellipse、line、polygon、polyline和path。2. 实战示例:用polygon绘制三角形,path绘制五角星和弧线仪表盘…

    2025年12月23日
    000
  • 单页应用(SPA)中特定分类数据的API直链访问与性能考量

    针对单页应用(SPA),本文探讨了如何通过URL直接访问特定分类数据,而非依赖客户端UI交互。文章揭示了SPA在初始加载时已获取所有数据,因此客户端分类选择对数据加载量无影响。核心策略是绕过前端界面,直接调用后端API获取所需数据,从而实现高效且精准的数据访问,并提供了具体API示例。 理解单页应用…

    2025年12月23日
    100
  • jQuery循环中动态表格数据访问与比较教程

    本文详细介绍了在jQuery循环中处理动态生成表格数据时常见的挑战与解决方案。我们将探讨如何正确使用.find()代替.children()来定位嵌套元素,解决.data()方法返回数字类型导致比较错误的问题,并提供一个基于事件监听的实用示例,以实现对用户修改数据的实时检测和保存。 动态表格数据处理…

    2025年12月22日
    000
  • 揭秘canvas技术在数据可视化中的独特威力

    发现Canvas技术在数据可视化中的独特作用 随着数据时代的到来,数据可视化成为了一种重要的方式来呈现大量的数据。在数据可视化中,Canvas技术以其独特的优势在各个领域展示了巨大的潜力。本文将着重介绍Canvas技术在数据可视化中的独特作用,并给出具体的代码示例。 Canvas是HTML5中的一个…

    好文分享 2025年12月21日
    000
  • 使用localstorage存储数据所需的包有哪些?

    localstorage是HTML5中的一项重要技术,它可以用来在客户端本地存储数据。在使用localstorage存储数据之前,我们需要确保在代码中引入合适的包来操作这个功能。 在使用localstorage之前,我们需要在HTML文件中添加以下代码来引入localstorage的相关包: 在以上…

    2025年12月21日
    000
  • 无法将数据保存到localstorage,为什么?

    为什么我的数据无法保存到localstorage中? 本文将详细讨论为何在某些情况下,数据无法保存到本地存储(localstorage)中。同时,我将提供一些具体的代码示例以帮助您解决这个问题。 首先,让我们来了解一下什么是localstorage。localstorage是HTML5中引入的一种W…

    2025年12月21日
    000
  • 如何将HTML表单数据作为文本并发送到html2pdf?

    html2pdf 是一个 JavaScript 包,允许开发人员将 html 转换为 canvas、pdf、图像等。它将 html 作为参数并将其添加到 pdf 或所需文档中。此外,它还允许用户在添加 html 内容后下载该文档。 在这里,我们将访问表单并使用html2pdf npm包将其添加到pd…

    2025年12月21日
    000
  • HTML中如何用post提交数据

    http/1.1 协议规定的 http 请求方法有 options、get、head、post、put、delete、trace、connect 这几种。其中 post 一般用来向服务端提交数据,本文主要讨论 post 提交数据的几种方式 http/1.1 协议规定的 http 请求方法有 opti…

    好文分享 2025年12月21日
    000
  • html的盒模型详解

    这次给大家带来html的盒模型详解,使用html盒模型的注意事项有哪些,下面就是实战案例,一起来看一下。 1.1. 盒的内容区的尺寸— content width和content height —取决于几个因素: –生成该盒的元素是否设置了’width’或&#82…

    好文分享 2025年12月21日
    000
  • 服务端主动发送数据回客户端在H5里的实现步奏

    我们知道,在server sent event里,通过eventsource对象接收服务器发送事件的通知是有三个事件的,message, open, error这三种,今天就给大家演示一下服务端主动发送数据回客户端在h5里的实现步奏。 Server Sent Event Server Sent Ev…

    好文分享 2025年12月21日
    000
  • 可视化图表制作_javascript数据展示

    答案是使用JavaScript库如Chart.js、D3.js和ECharts可实现交互式数据可视化;其中Chart.js适合快速集成常见图表,D3.js适用于高度自定义的复杂图形,ECharts支持高级图表且中文文档完善;以Chart.js创建柱状图需引入库、添加canvas容器并初始化Chart…

    2025年12月21日
    000
  • Odoo 14 POS:深入理解订单与现金支付明细并高效调试

    本教程旨在指导odoo 14 pos开发者如何准确读取销售会话中的订单及其现金支付明细,并计算总现金支付金额。文章将详细介绍odoo前端数据模型的访问方法,并着重强调利用浏览器开发者工具和`debugger`关键字进行运行时对象结构检查与调试的最佳实践,帮助开发者高效解决数据访问中的常见问题。 Od…

    2025年12月21日
    000
  • Odoo 14 POS会话中现金支付金额的准确获取与调试指南

    针对odoo 14 pos会话中读取订单并计算现金支付总额的需求,本文将详细指导如何正确访问支付明细对象属性。重点介绍利用浏览器开发者工具设置断点进行实时调试的方法,帮助开发者深入理解数据结构,从而高效准确地实现功能,避免因属性名称不匹配而导致的常见问题。 1. 理解Odoo POS数据模型 在Od…

    2025年12月21日
    000
  • javascript_如何实现数据可视化

    JavaScript实现数据可视化需将数据转为图形,常用Chart.js、D3.js等库快速构建图表,或用Canvas/SVG原生绘图;通过fetch获取数据并动态更新视图,如Chart.js调用update()刷新,最终实现交互式可视化。 JavaScript 实现数据可视化,核心是将数据转换成图…

    2025年12月21日
    000

发表回复

登录后才能评论
关注微信