[240529] llm.c 从头训练 GPT-2 | 六国公众对采用生成式 AI 的看法

目录

    • llm.c: 20美元 90分钟,从头训练 GPT-2
    • 公众对新闻中生成式人工智能的看法 - 六国调查报告
      • 公众对生成式人工智能的意识和使用
      • 公众对生成式人工智能在不同领域应用的预期
      • 公众对新闻业中生成式人工智能使用的看法
      • 结论
      • 未来趋势

llm.c: 20美元 90分钟,从头训练 GPT-2

用 llm.c 在 90 分钟内以 20 美元复现 GPT-2 (124M) 模型

项目目标

  • 使用 llm.c (一个约 4000 行 C/CUDA 代码的项目) 复现 GPT-2 (124M) 模型。

  • 在 90 分钟内,花费约 20 美元完成模型训练。

项目可行性

  • GPT-2 (124M) 是 GPT-2 系列中最小的模型,即使在 GPU 较差的情况下也能运行。

  • llm.c 效率高,模型 flops 利用率高达 60%。

  • 在 Lambda 上使用 8X A100 80GB SXM 节点,训练时间约为 90 分钟,成本约为 20 美元。

实验结果

  • 在 FineWeb 验证集上优于 OpenAI 发布的 GPT-2 (124M) 检查点。

  • 在 HellaSwag 基准测试中达到 29.9% 的准确率,超过 GPT-2 (124M) 的 29.4%。

复现步骤

  • 安装 Miniconda、PyTorch、CUDA、cuDNN、MPI 等依赖项。

  • 使用 fineweb.py 脚本对 FineWeb 数据集进行预处理。

  • 编译 llm.c 代码。

  • 使用 train_gpt2cu 命令训练模型。

  • 使用 Jupyter Notebook 可视化训练过程和结果。

代码结构

  • train_gpt2.cu 文件包含大部分核心代码,包括 Transformer 层、GPT-2 模型、训练循环等。

  • dev/cuda 目录包含 CUDA 内核代码。

未来计划

  • 复现更大规模的 GPT-2 模型 (350M、740M、1558M)。

  • 优化代码、添加更多功能、支持多节点训练。

常见问题解答

  • 问: 可以用它进行采样吗?
  • 答: 可以,但效率不高。

  • 问: 可以和它聊天吗?

  • 答: 不可以,目前只支持预训练,不支持聊天微调。


  • 问: 可以进行多节点分布式训练吗?

  • 答: 原则上可以,但尚未经过充分测试。


  • 问: 你是按位确定的吗?

  • 答: 不是,但我们非常接近,还有一个内核需要修补。


  • 问: 你可以在 fp8 中训练吗?

  • 答: 不,我们目前主要在 bf16 中训练,但即将推出。


  • 问: 我有一个非 NVIDIA GPU(AMD、Apple Silicon 等),我可以运行 llm.c 吗?

  • 答: 不,llm.c 只支持 C/CUDA,但我非常乐意链接到“值得注意的 fork”部分下的任何 fork,或者接受 PR,这将使 llm.c 移植到其他平台更容易。


  • 问: 我只有一台 CPU,我可以玩吗?

  • 答: 你将无法复现 GPT-2 模型,但你可以通过在其他数据(例如 TinyShakespeare 或 TinyStories)上微调 OpenAI GPT-2 模型来承担有趣的项目。llm.c 中的 train_gpt2.c 中存在对这些数据集、初始化和 CPU 微调的支持。(不过它要简单得多,主要用作 CUDA 代码的参考)。


  • 问: 这与 PyTorch 相比如何?

  • 答:llm.c 是一个“直接”的 C/CUDA 实现。train_gpt2.py 中的 PyTorch 代码没有完整的功能奇偶校验(例如,不进行分片数据加载等),并且更多地 meant to be more as a reference,但我认为你可以通过以下步骤获得类似于上述 124M 模型的步骤:torchrun --standalone --nproc_per_node=4 python train_gpt2.py --input_bin dev/data/fineweb10B/fineweb_train_000001.bin --write_tensors 0 --model d12 --batch_size 64 --sequence_length 1024 --total_batch_size 524288 --dtype bfloat16 --compile 1 --tensorcores 1 --flash 1 --num_iterations 18865 --weight_decay 0.1 --overfit_single_batch 0。我感兴趣的是,并且会接受 PR,使 PyTorch 训练更接近 llm.c 训练循环的功能奇偶校验。


  • 问: 你为什么如此关心 GPT-2?

  • 答:GPT-2 是 LLM 的鼻祖,是现代 LLM 堆栈首次以可识别的现代形式组合在一起,并且参数由 OpenAI 发布。GPT-3 实际上并没有对模型做太多改变(上下文大小 1024 -> 2048,我想就是这样吧?)。GPT-4 的细节从未公布过。许多其他 LLM 也非常类似于 GPT-2,尽管它来自 2019 年,例如,从架构的角度来看,Llama 3 是 MLP 中的非线性变化,以及 RoPE 相对位置编码的添加。


此文章 采用 Gemini Pro 1.5 生成,命令如下:

x jina 'https://github.com/karpathy/llm.c/discussions/481' | \@gemini -t 0 '以大纲方式 用中文整理'

参考原文

https://github.com/karpathy/llm.c/discussions/481

公众对新闻中生成式人工智能的看法 - 六国调查报告

公众对生成式人工智能的意识和使用

  • 认知度: ChatGPT 是最广为人知的生成式人工智能产品,六国(阿根廷、丹麦、法国、日本、英国和美国)约 50% 的网民听说过它。

    • 阿根廷 (41%) 到丹麦 (61%) 的公众听说过 ChatGPT。

    • Google Gemini、Microsoft Copilot 和 Snapchat My AI 等产品的认知度约为 15-25%。

    • 19% (日本) 到 30% (英国) 的网民没有听说过任何流行的人工智能工具。

  • 使用情况: ChatGPT 也是使用最广泛的工具,使用率是 Google Gemini 和 Microsoft Copilot 的两到三倍。

    • 只有少数人经常使用 ChatGPT,每天使用 ChatGPT 的比例从日本 (1%) 到英国和法国 (2%) 再到美国 (7%) 不等。

    • 年轻人 (18-24 岁) 比老年人 (55 岁以上) 更可能经常使用生成式人工智能产品 (56% vs 16%)。

  • 使用目的: 获取信息 (24%) 和创作媒体内容 (28%) 是最常见的两种用途。

    • 创作媒体内容包括图像 (9%)、音频 (3%)、视频 (4%)、代码 (5%) 和文本 (图 5)。

    • 只有 5% 的受访者使用生成式人工智能来获取最新消息。

    • 在美国,这一比例为 10%,这可能是因为 Google 在美国试用了 Search Generative Experiences (SGE)。

公众对生成式人工智能在不同领域应用的预期

  • 影响力: 大多数人预计生成式人工智能将在未来五年内对几乎所有社会领域产生重大影响。

    • 72% 的受访者认为生成式人工智能将对搜索和社交媒体公司产生重大影响。

    • 66% 的受访者认为它将对新闻媒体和科学产生重大影响。

    • 53% 和 51% 的受访者分别认为它将对国家政府和政党产生重大影响。

  • 负责任的使用: 公众对不同机构负责任地使用生成式人工智能的信任度存在显著差异。

    • 约有一半的受访者信任科学家和医疗保健专业人员。

    • 不到三分之一的受访者信任社交媒体公司、政治家和新闻媒体。

  • 总体预期:

    • 公众对医疗保健、科学和日常活动(如交通、购物和娱乐)持乐观态度。

    • 公众对法治、生活成本、平等、就业保障和新闻持悲观态度。

    • 新闻和新闻业领域悲观情绪大于乐观情绪 (-8),与娱乐领域形成鲜明对比 (+17)。

公众对新闻业中生成式人工智能使用的看法

  • 使用现状: 许多人认为新闻工作者已经在使用生成式人工智能来完成某些任务。

    • 43% 的受访者认为新闻工作者经常或总是使用人工智能来编辑拼写和语法。

    • 29% 的受访者认为新闻工作者经常或总是使用人工智能来撰写标题。

    • 27% 的受访者认为新闻工作者经常或总是使用人工智能来撰写文章正文。

  • 质量控制: 约三分之一 (32%) 的受访者认为,在发布人工智能生成的内容之前,人工编辑会对其进行检查。

  • 舒适度: 人们普遍对人类记者制作的新闻感到更舒服,而不是人工智能制作的新闻。

    • 与“硬新闻”主题(包括国际事务 (-21) 和政治 (-33))相比,人们对使用人工智能制作的“软新闻”主题(如时尚 (+7) 和体育 (+5))感到更舒服。
  • 披露和标签: 绝大多数受访者希望对人工智能生成的内容进行某种形式的披露或标签。

    • 只有 5% 的受访者表示,我们列出的用例都不需要披露。

    • 约有一半的受访者表示,“如果无法获得真实照片,则创建图像”(49%)、“撰写文章正文”(47%) 和“数据分析”(47%) 应标记为人工智能生成的内容。

结论

  • 公众对生成式人工智能及其在新闻业中的作用仍存在很大程度的不确定性。

  • 人们普遍认为,生成式人工智能在新闻制作中的使用将有助于降低出版商的成本,但很少有人认为这对他们自己有帮助。

  • 新闻机构需要就生成式人工智能的使用方式做出自己的决定,并与受众进行沟通和解释。

未来趋势

  • 年轻人对生成式人工智能的态度更为开放和乐观。

  • 随着生成式人工智能产品使用越来越广泛,公众舆论可能会发生变化。

以上文章采用 Gemini Pro 1.5 生成摘要,命令如下:

x jina r 'https://reutersinstitute.politics.ox.ac.uk/what-does-public-six-countries-think-generative-ai-news' \| @gemini -t 0 '以大纲方式生成一份摘要,列举更多的数据支撑,用中文'

上述陈述有一个问题:

这是原文:

  • Younger people are much more likely to use generative AI products on a regular basis. Averaging across all six countries, 56% of 18–24s say they have used ChatGPT at least once, compared to 16% of those aged 55 and over.

这是生成的摘要文的陈述:

  • 年轻人 (18-24 岁) 比老年人 (55 岁以上) 更可能经常使用生成式人工智能产品 (56% vs 16%)。

原文中的确讲了年轻人比年长者更可能经常使用AI。但原文所后续提到的56%和16%,指是至少使用过一次 AI 的比例,而非经常使用的比例。AI 生成的这段文字让别人误解是有 56% 的年轻人和 16%的年长者经常使用 AI。

该问题之所以被发现,是因为与摘要文中的上一条结论上有矛盾。上一条结论明确指出只有极其少数是经常使用 AI。并列举了 ChatGPT 的用户数据 – 只有 1%(日本),2%(英法),7%(美国) 经常使用 ChatGPT – 虽然还有其它类似产品,但根据文中数据, ChatGPT 的使用率要比竞品高出2-3倍,因此这个数据估计最多 double一下,就以美国为例,经常使用 AI 不可能超过 15%。其余国家只会更低。

所以,经常用 AI 的人群不可能在达到 56% (年轻人) 和 16%(年长者)这么高的比例。

原文:

https://reutersinstitute.politics.ox.ac.uk/what-does-public-six-countries-think-generative-ai-news


原文数据和内容非常充实,非常值得细读,上述生成文字仅为摘要。


BBC 也围绕该报告发表了一篇文章,标题是

AI products like ChatGPT much hyped but not much used, study says
研究表明,像ChatGPT这样的 AI 产品被大肆宣传但使用率不高。( 采用 GPT-4o 翻译 )

BBC文章原文:

https://www.bbc.com/news/articles/c511x4g7x7jo

更多内容请查阅 : blog-240529


关注微信官方公众号 : oh my x

获取开源软件和 x-cmd 最新用法

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

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

相关文章

linux大文件切割

在一些小众的场景下出现的大文件无法一次性传输 当然我遇到了 &#xff0c;work中6G镜像文件无法一次性刻盘到4.7G大小的盘 split split -b 3G 源大文件 目标文件 #安静等待会生成目标文件名a、b、c......-b <大小>&#xff1a;指定每个输出文件的大小&#xff0c;单位为…

Python-3.12.0文档解读-内置函数ord()详细说明+记忆策略+常用场景+巧妙用法+综合技巧

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 详细说明 概述 语法 参数 返回值 示例 注意事项 应用场景 记忆策略 常用场景…

【测试SQLite】测试SQLite支持的SQL语句分类

测试SQLite支持的SQL语句分类 为了全面测试SQLite支持的SQL语句&#xff0c;需要设计一个包含多种类型的表结构&#xff0c;并编写各种SQL语句来测试这些功能。目前按照以下分类进行测试&#xff1a; 数据定义语言&#xff08;DDL&#xff09;数据操作语言&#xff08;DML&am…

【跑跑卡丁车game】

编写一款跑跑卡丁车游戏程序是一个涉及多个步骤的复杂过程。以下是一个简化的指南&#xff0c;概述了创建这类游戏可能涉及的步骤和技术&#xff1a; 需求分析&#xff1a; 确定游戏的目标受众。列出游戏的基本功能&#xff0c;如单人模式、多人在线对战、排行榜等。 游戏设计…

haproxy+keepalived搭建jeesns论坛

集群实现 软件层分为负载均衡层 Web 层、 数据库和共享存储层。 数据库&#xff1a; ​ keepalivedhaproxypxc&#xff08;MariaDB Galera Cluster&#xff09; 共享存储&#xff1a; ​ ceph分布式集群&#xff0c;cephfs web层&#xff1a; ​ tomcat 负载均衡&#x…

离线deb安装下载及安装实例

1、使用apt download下载deb安装包(不包括依赖包) 1.1仅下载deb安装包 sudo apt download lrzsz 1.2安装载deb安装包 sudo dpkg -i lrzsz_0.12.21-10kylin0k2_arm64.deb 注&#xff1a;dpkg安装deb包&#xff0c;部分存在depends关系&#xff0c;需要使用apt-get -f instal…

Linux 删除SSH密钥(id_ed25519),重新生成

在Linux系统中&#xff0c;重新生成SSH密钥&#xff08;比如id_ed25519&#xff09;的过程包括删除现有的密钥文件并生成一个新的。 以下是具体的步骤&#xff1a; 0. 查看下是否有密钥 1. 删除原有的id_ed25519密钥 默认情况下&#xff0c;SSH密钥存储在用户的主目录下的 .…

mac 下配置mysql的全局环境变量

前言 如果你还没有安装mysql&#xff0c;请参考这篇文章手把手教你MAC本地数据库的安装与使用&#xff1a;mysql python (pymysql)【一】 - 知乎 正文 1.打开终端&#xff0c;输入命令”echo $SHELL“,显示当前的shell ⚠️本人使用的终端shell是zsh&#xff0c;如果你使用…

想让企业“火力全开”?找六西格玛培训公司就对了!

在如今的市场环境中&#xff0c;企业面临着不断变化的挑战和无限的可能。要在这场竞争中独领风骚&#xff0c;实现稳健的增长&#xff0c;六西格玛作为一种以数据驱动的管理理论&#xff0c;提供了实际可行的解决方案。六西格玛培训公司&#xff0c;作为这一领域的专家&#xf…

linux 之dma_buf (8)- ION简化版本

一、前言 我们学习了如何使用 alloc_page() 方式来分配内存&#xff0c;但是该驱动只能分配1个PAGE_SIZE。本篇我们将在上一篇的基础上&#xff0c;实现一个简化版的ION驱动&#xff0c;以此来实现任意 size 大小的内存分配。 二、准备 为了和 kernel 标准 ion 驱动兼容&…

身为UI设计老鸟,不学点3D,好像要被潮流抛弃啦,卷起来吧。

当前3D原则在UI设计中运用的越来越多&#xff0c;在UI设计中&#xff0c;使用3D元素可以为界面带来以下几个价值&#xff1a; 增强视觉冲击力&#xff1a;3D元素可以通过立体感和逼真的效果&#xff0c;为界面增添视觉冲击力&#xff0c;使得设计更加生动、吸引人&#xff0c;并…

AI PC 的曙光:微软大胆出击与苹果竞争

AI PC 的曙光&#xff1a;微软大胆出击与苹果竞争 AI PC 的曙光&#xff1a;微软大胆出击与苹果竞争 概述 微软已正式进入 AI PC 时代&#xff0c;并且毫不避讳地直接向苹果的 MacBook 发起攻击。随着代号为“Copilot”的笔记本电脑的推出&#xff0c;微软准备彻底改变我们与…

面试数据库八股文十问十答第九期

面试数据库八股文十问十答第九期 作者&#xff1a;程序员小白条&#xff0c;个人博客 相信看了本文后&#xff0c;对你的面试是有一定帮助的&#xff01;关注专栏后就能收到持续更新&#xff01; ⭐点赞⭐收藏⭐不迷路&#xff01;⭐ 1&#xff09;MySQL 读写分离 MySQL 读写…

AI大模型如何“开窍”?算法、数据与架构的三重奏

一、算法创新 1. 探索新的学习范式 自监督学习&#xff1a;利用未标注数据让模型自我学习&#xff0c;提高模型的泛化能力。元学习&#xff1a;让模型学会如何学习&#xff0c;以便在不同任务之间快速迁移。强化学习&#xff1a;通过试错与奖励机制&#xff0c;使模型在与环境…

012、哈希_应用场景

图为关系型数据表记录的两条用户信息,用户的属性作为表的列,每条用户信息作为行。 如果将其用哈希类型存储,如图所示。 相比于使用字符串序列化缓存用户信息,哈希类型变得更加直观,并且在更新操作上会更加便捷。可以将每个用户的id定义为键后缀,多对field-value对应每…

Flutter 中的 RotatedBox 小部件:全面指南

Flutter 中的 RotatedBox 小部件&#xff1a;全面指南 在 Flutter 的丰富组件库中&#xff0c;RotatedBox 是一个简单而强大的小部件&#xff0c;它能够对子组件进行旋转。这使得 RotatedBox 成为实现某些布局效果和动画的理想选择。本文将详细介绍 RotatedBox 的使用方法&…

Springboot 开发 -- 集成 JWT 构建安全的API接口服务

一、JWT简介 JSON Web Token&#xff08;JWT&#xff09;是一种基于JSON的开放标准&#xff08;RFC 7519&#xff09;&#xff0c;用于在各方之间以JSON对象的形式安全地传输信息。JWT可以被签名&#xff0c;确保信息在传输过程中的完整性和可信度。JWT通常用于身份验证和信息…

vue2和3区别

Vue2和Vue3在**源码架构、性能提升以及API设计**等方面存在区别。具体分析如下&#xff1a; 1. **源码架构** - **Vue2**&#xff1a;Vue2的源码相对更传统&#xff0c;主要使用Options API来构建组件。这种方式要求开发者在一个对象中定义组件的各种属性&#xff08;如data、m…

微软 Edge 深度探索:现代浏览器的蜕变

微软 Edge 浏览器经历了令人瞩目的转变&#xff0c;从备受诟病的 Internet Explorer 继任者&#xff0c;发展成为功能强大、特性丰富的浏览器&#xff0c;与 Google Chrome 和 Mozilla Firefox 等行业巨头正面竞争。本文将深入探讨 Edge&#xff0c;从用户体验、功能、内容、平…

Android 14.0 SystemUI状态栏屏蔽掉通知栏不显示通知

1.概述 在14.0的系统产品开发中,在SystemUI定制化开发中,有产品需求要求屏蔽通知显示,由于对状态栏的通知管控的比较严,所以要求屏蔽掉通知栏的通知不显示通知 接下来就需要对通知栏的显示流程分析,屏蔽掉通知就可以了 2.SystemUI状态栏屏蔽掉通知栏不显示通知的核心类 f…