终于有人将Transformer可视化了!

news2024/11/28 0:45:12

都 2024 年,还有人不了解 Transformer 工作原理吗?快来试一试这个交互式工具吧。

2017 年,谷歌在论文《Attention is all you need》中提出了 Transformer,成为了深度学习领域的重大突破。该论文的引用数已经将近 13 万,后来的 GPT 家族所有模型也都是基于 Transformer 架构,可见其影响之广。

作为一种神经网络架构,Transformer 在从文本到视觉的多样任务中广受欢迎,尤其是在当前火热的 AI 聊天机器人领域。

不过,对于很多非专业人士来说,Transformer 的内部工作原理仍然不透明,阻碍了他们的理解和参与进来。因此,揭开这一架构的神秘面纱尤其必要。但很多博客、视频教程和 3D 可视化往往强调数学的复杂性和模型实现,可能会让初学者无所适从。同时为 AI 从业者设计的可视化工作侧重于神经元和层级可解释性,对于非专业人士来说具有挑战性。

因此,佐治亚理工学院和 IBM 研究院的几位研究者开发了一款基于 web 的开源交互式可视化工具「Transformer Explainer」,帮助非专业人士了解 Transformer 的高级模型结构和低级数学运算。如下图 1 所示。

Transformer Explainer 通过文本生成来解释 Transformer 内部工作原理,采用了桑基图可视化设计,灵感来自最近将 Transformer 视为动态系统的工作,强调了输入数据如何流经模型组件。从结果来看,桑基图有效地说明了信息如何在模型中传递,并展示了输入如何通过 Transformer 操作进行处理和变换。

在内容上,Transformer Explainer 紧密集成了对 Transformer 结构进行总结的模型概述,并允许用户在多个抽象层级之间平滑过渡,以可视化低级数学运算和高级模型结构之间的相互作用,帮助他们全面理解 Transformer 中的复杂概念。

在功能上,Transformer Explainer 在提供基于 web 的实现之外,还具有实时推理的功能。与现有很多需要自定义软件安装或缺乏推理功能的工具不同,它集成了一个实时 GPT-2 模型,使用现代前端框架在浏览器本地运行。用户可以交互式地试验自己的输入文本,并实时观察 Transformer 内部组件和参数如何协同工作以预测下一个 token。

在意义上,Transformer Explainer 拓展了对现代生成式 AI 技术的访问,且不需要高级计算资源、安装或编程技能。而之所以选择 GPT-2,是因为该模型知名度高、推理速度快,并且与 GPT-3、GPT-4 等更高级的模型在架构上相似。

  • 论文地址:https://arxiv.org/pdf/2408.04619

  • GitHub 地址:http://poloclub.github.io/transformer-explainer/

  • 类LLM可视化在线体验地址:https://t.co/jyBlJTMa7m

既然支持自己输入,试用了一下「what a beautiful day」,运行结果如下图所示。

对于 Transformer Explainer,一众网友给出了很高的评价。有人表示,这是非常酷的交互式工具。

有人称自己一直在等待一个直观的工具来解释自注意力和位置编码,就是 Transformer Explainer 了。它会是一个改变游戏规则的工具。

还有人展示了类LLM可视化中文项目。

_展示地址:http://llm-viz-cn.iiiai.com/llm
_

这里不禁想到了另一位科普界的大牛 Karpathy,它之前写了很多关于复现 GPT-2 的教程,包括「纯 C 语言手搓 GPT-2,前 OpenAI、特斯拉高管新项目火了」、「Karpathy 最新四小时视频教程:从零复现 GPT-2,通宵运行即搞定」等。如今有了 Transformer 内部原理可视化工具,看起来两者搭配使用,学习效果会更佳。

Transformer Explainer 系统设计与实现

Transformer Explainer 可视化展示了基于 Transformer 的 GPT-2 模型经过训练是如何处理文本输入并预测下一个 token 的。前端使用了 Svelte 和 D3 实现交互式可视化,后端则利用 ONNX runtime 和 HuggingFace 的 Transformers 库在浏览器中运行 GPT-2 模型。

设计 Transformer Explainer 的过程中,一个主要的挑战是如何管理底层架构的复杂性,因为同时展示所有细节会让人抓不住重点。为了解决这个问题,研究者十分注意两个关键的设计原则。

首先,研究者通过多级抽象来降低复杂性。他们将工具进行结构化设计,以不同的抽象层次呈现信息。这让用户能够从高层概览开始,并根据需要逐步深入了解细节,从而避免信息过载。在最高层,工具展示了完整的处理流程:从接收用户提供的文本作为输入(图 1A),将其嵌入,经过多个 Transformer 块处理,再到使用处理后的数据来对最有可能的下一个 token 预测进行排序。

中间操作,如注意力矩阵的计算(图 1C),这在默认情况下被折叠起来,以便直观地显示计算结果的重要性,用户可以选择展开,通过动画序列查看其推导过程。研究者采用了一致的视觉语言,比如堆叠注意力头和折叠重复的 Transformer 块,以帮助用户识别架构中的重复模式,同时保持数据的端到端流程。

其次,研究者通过交互性增强理解和参与。温度参数在控制 Transformer 的输出概率分布中至关重要,它会影响下一个 token 预测的确定性(低温时)或随机性(高温时)。但是现有关于 Transformers 的教育资源往往忽视了这一方面。用户现在能够使用这个新工具实时调整温度参数(图 1B),并可视化其在控制预测确定性中的关键作用(图 2)。

此外,用户可以从提供的示例中选择或输入自己的文本(图 1A)。支持自定义输入文本可以让用户更深入参与,通过分析模型在不同条件下的行为,并根据不同的文本输入对自己的假设进行交互式测试,增强了用户的参与感。

那在实际中有哪些应用场景呢?

Rousseau 教授正在对自然语言处理课程的课程内容进行现代化改造,以突出生成式 AI 的最新进展。她注意到,一些学生将基于 Transformer 的模型视为捉摸不透的「魔法」,而另一些学生则希望了解这些模型的工作原理,但不确定从何入手。

为了解决这一问题,她引导学生使用 Transformer Explainer,该工具提供了 Transformer 的互动概览(图 1),鼓励学生积极进行实验和学习。她的班级有 300 多名学生,而 Transformer Explainer 能够完全在学生的浏览器中运行,无需安装软件或特殊硬件,这是一个显著的优势,消除了学生对管理软件或硬件设置的担忧。

该工具通过动画和互动的可逆抽象(图 1C),向学生介绍了复杂的数学运算,如注意力计算。这种方法帮助学生既获得了对操作的高层次理解,又能深入了解产生这些结果的底层细节。

Rousseau 教授还意识到,Transformer 的技术能力和局限性有时会被拟人化(例如,将温度参数视为「创造力」控制)。通过鼓励学生实验温度滑块(图 1B),她向学生展示了温度实际上是如何修改下一个词元的概率分布(图 2),从而控制预测的随机性,在确定性和更具创造性的输出之间取得平衡。

此外,当系统可视化 token 处理流程时,学生们可以看到这里并没有任何所谓的「魔法」—— 无论输入文本是什么(图 1A),模型都遵循一个定义明确的操作顺序,使用 Transformer 架构,一次只采样一个 token,然后重复这一过程。

未来工作

研究者们正在增强工具的交互式解释来改善学习体验。同时,他们还在通过 WebGPU 提升推理速度,并通过压缩技术来减小模型的大小。他们还计划进行用户研究,来评估 Transformer Explainer 的效能和可用性,观察 AI 新手、学生、教育者和从业者如何使用该工具,并收集他们希望支持的额外功能的反馈意见。

如何学习AI大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈

学习路线

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

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

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

相关文章

第二证券:股票可以亏损本金吗?股票会不会亏成负?

炒股是存在赔本本金的或许的,当你卖出股票的价格小于买入股票的价格,那就是赔本的。 实践上,还因为不管是买入股票仍是卖出股票都会收取股票生意手续费,所以假设卖出股票价格等于买入股价,或许只上涨了一点点&#xf…

开放式耳机怎么选?南卡、漫步者、Oladance OWS PRO四款耳机无广深度测评!

最近这段时间,我发现很多的小伙伴在我已经怎么选择开放式耳机,哪一款比较推荐的,如今市面上出现了很多不同的开放式耳机品牌,在购买的时候大多数人都没有非常明确的目标,主要就是因为大多数人对开放式耳机的了解程度不…

C#实现数据采集系统-多设备采集

系统功能升级-多设备采集 数据采集系统在网络环境下,性能足够,可以实现1对多采集,需要支持多个设备进行同时采集功能,现在就开发多设备采集功能 修改多设备配置 设备配置 将DeviceLink 改成List集合的DeviceLinks删掉Points&a…

【知识图谱】2.知识抽取与知识存储

目录 一、知识抽取 1、实体命名识别(Name Entity Recognition) 2、关系抽取(Relation Extraction) 3、实体统一(Entity Resolution) 4、指代消解(Coreference Resolution&#xff0…

聚水潭ERP集成金蝶云星瀚(聚水潭主供应链)

源系统成集云目标系统 金蝶云星瀚介绍 金蝶云星瀚是专为大企业设计的新一代数字化管理云服务、大型企业SaaS管理云,旨在凭借千亿级高性能和世界一流企业的实践,帮助大企业实现可信的数字化系统升迁,打造韧性企业,支撑商…

【xilinx】Vivado : 解决 I/O 时钟布局器错误:Versal 示例

示例详细信息&#xff1a; 设备&#xff1a; XCVM1802 Versal Prime问题&#xff1a;尽管使用 CCIO 引脚作为时钟端口&#xff0c;但该工具仍返回 I/O 时钟布局器错误 错误&#xff1a; <span style"background-color:#f3f3f3"><span style"color:#…

Windows+ONNX+TensorRT+YOLOV8+C++环境搭建

需求 跑通了Python环境下的Yolov8&#xff0c;但是考虑到性能&#xff0c;想试试C环境下的优化效果。 环境 Windows11 TensorRT8.6.1.6 CUDA 12.0 cudnn 8.9.7 opencv4.5.5 VS2019 参考目录 本次搭建主要参考以下博客和视频。第一个博客以下简称“博客1”&#xff0c…

Python画笔案例-004 绘制等腰三角形

1、绘制等腰三角形 通过 python 的turtle 库绘制一个等腰三角形的图案&#xff0c;如下图&#xff1a; 2、实现代码 这节课引入了新的指令&#xff0c;speed()-移动速度&#xff0c;home()-回到初始位置&#xff0c;回家的意思。hideturtle()&#xff0c;这个是隐藏海龟图形,并…

deepin 23丨如意玲珑正式集成至deepin 23,生态适配超千款

查看原文 近日&#xff0c;deepin 23正式发布&#xff0c;如意玲珑&#xff08;Linyaps&#xff09;&#xff08;以下简称玲珑&#xff09;作为deepin 23的重要特性之一&#xff0c;已经正式集成至deepin系统仓库&#xff0c;所有deepin 23的用户都可以无门槛地使用玲珑应用。…

Nginx: 配置项之events段核心参数用法梳理

events 核心参数 看一下配置文件 events 段中常用的一些核心参数 经常使用的参数并不多&#xff0c;比较常配置的就这6个 1 ) use 含义是 nginx使用何种事件驱动模型 这个事件驱动模型和linux操作系统底层的IO事件处理模型有关系语法&#xff1a;use methodmethod可选值&am…

云服务器常见问题及解决方案

1. 性能问题 问题描述&#xff1a;云服务器性能可能会受到多种因素影响&#xff0c;如虚拟化开销、资源竞争等&#xff0c;导致应用程序运行缓慢。 解决方案&#xff1a; 选择合适的实例类型&#xff1a;根据应用需求选择适当的实例类型&#xff0c;如计算优化型、内存优化型…

API篇(Java - 随机器(Random))(doing)

目录 一、Random 1. 简介 2. 什么是种子 3. 相关方法 4. Random对象的生成 5. Random类中的常用方法 6. 使用 6.1. 创建对象 6.2. 生成[0,1.0)区间的小数 6.3. 生成[0,5.0)区间的小数 6.4. 生成[1,2.5)区间的小数 6.5. 生成任意整数 6.6. 生成[0,10)区间的整数 6.…

LCP9回文数[leetcode-9-easy]

LCP&#xff0c;9回文数 给你一个整数 x &#xff0c;如果 x 是一个回文整数&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 回文数 是指正序&#xff08;从左向右&#xff09;和倒序&#xff08;从右向左&#xff09;读都是一样的整数。 例如&#xff…

Vue 3 的 emit 简单使用

在 Vue 3 中使用 emit&#xff0c;子组件可以将事件通知父组件&#xff0c;父组件可以在响应这些事件时执行特定的逻辑。 emit 是一种非常灵活的通信方式&#xff0c;允许组件之间以解耦的方式进行交互。 1. 基本用法 1、使用 defineEmits 子组件 <template><div…

【Hadoop】知识点总结、大学期末复习

博主简介&#xff1a;努力学习的22级计算机科学与技术本科生一枚&#x1f338;博主主页&#xff1a; Yaoyao2024往期回顾&#xff1a; 【论文精读】上交大、上海人工智能实验室等提出基于配准的少样本异常检测框架超详细解读&#xff08;翻译&#xff0b;精读&#xff09;每日一…

关于Hipe并发库中动态线程库DynamicThreadPond的一点解读(四)

文章目录 前提提交的任务有返回值怎么办总结 前提 上一节关于Hipe并发库中动态线程库DynamicThreadPond的一点解读(三)我们分析了以何种方式向线程池提交任务、提交的任务若有参数怎么办&#xff0c;这一节我们分析提交的任务若有返回值怎么办&#xff1f; 提交的任务有返回值…

bootloader相关内容的辨析

在PC机中&#xff0c;BIOS&#xff08;Basic Input/Output System&#xff0c;基本输入输出系统&#xff09;和UEFI&#xff08;Unified Extensible Firmware Interface&#xff0c;统一可扩展固件接口&#xff09;是两种用于初始化系统硬件、加载操作系统启动程&#xff08;如…

nestjs nest-cli.json中的assets不生效

官方文档 Documentation | NestJS - A progressive Node.js framework // nest-cli.json{"collection": "nestjs/schematics","sourceRoot": "src","compilerOptions": {"assets": ["microservices/mail/te…

【宠粉赠书】智能计算系统:从深度学习到大模型 第2版

为了回馈粉丝们的厚爱&#xff0c;今天小智给大家送上一套关于图神经网络的学习宝典——《智能计算系统&#xff1a;从深度学习到大模型 第2版》。下面我会详细给大家介绍这本书&#xff0c;文末留有领取方式。 “只要你想把大模型做得更好、做得更大、做得更快、做得更省电&am…

Docker部署常用开发组件(保姆级教程)

说明 本文总结了一些常用组件的Docker启动命令及过程&#xff0c;在开发过程中只需花费数分钟下载和配置即可完美使用这些服务。 Mysql MySQL 是一种开源关系数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;目前由 Oracle 公司维护。MySQL 以其高性能、可靠性和易用…