解密:GPT-4框架与训练过程,数据集组成,并行性的策略,专家权衡,推理权衡等细节内容

解密:GPT-4框架与训练过程,数据集组成,并行性的策略,专家权衡,推理权衡等细节内容

GPT-4现状

我们从多个信息源收集到了关于GPT-4的大量信息,今天我们想要分享一些。这包括模型架构、训练基础设施、推理基础设施、参数数量、训练数据集组成、标记数量、层次数量、并行策略、多模态视觉适应性、不同工程权衡背后的思考过程、已实施的独特技术,以及他们如何缓解与庞大模型推理相关的一些最大瓶颈。

GPT-4最有趣的方面在于理解他们为什么做出了某些架构决策。此外,我们还将概述GPT-4在A100上进行训练和推理的成本,并介绍与下一代模型架构使用H100相比的规模。

首先,让我们来看一下问题陈述。从GPT-3到GPT-4,OpenAI希望将规模扩大100倍,但问题的关键在于成本。稠密的Transformer模型无法进一步扩展。稠密的Transformer是OpenAI GPT-3、Google PaLM、Meta LLAMA、TII Falcon、MosaicML MPT等模型所使用的模型架构。我们可以轻松地列举出50家使用相同架构进行LLM训练的公司。这是一个好的架构,但在扩展性方面存在缺陷。

GPT-4框架

GPT-4的规模是GPT-3的10倍以上。据我们了解,它有大约1.8万亿个参数,分布在120个层,而GPT-3只有大约1750亿个参数。

OpenAI通过使用混合专家(MoE)模型,成功地将成本控制在合理范围内。

此外,OpenAI的模型中有16位专家,每位专家的多层感知机(MLP)参数约为1110亿个。每次前向传递(forward pass)有两位专家进行路由。

尽管文献中谈到了选择将每个tokens路由到哪个专家的高级路由算法,但据说OpenAI当前的GPT-4模型相对简单。

此外,注意力机制中大约有550亿个共享参数。

每次前向推导(生成一个标记)时,仅使用大约2800亿个参数和560 TFLOPS。这与完全密集模型每个前向传递所需的大约1.8万亿个参数和3700 TFLOPs形成鲜明对比。

数据集组成

OpenAI在大约13万亿个tokens上对GPT-4进行了训练。考虑到CommonCrawl的RefinedWeb中包含大约5万亿个高质量tokens,这是有道理的。作为参考,Deepmind的Chinchilla模型和Google的PaLM模型分别使用了大约1.4万亿个和0.78万亿个tokens进行训练。甚至据称PaLM 2也是基于大约5万亿个tokens进行训练的。

这个数据集并不包含13万亿个独特的tokens。相反,由于缺乏高质量的tokens,该数据集包含多个时期。文本数据经历了2个时期,而代码数据则经历了4个时期。有趣的是,这远远少于Chinchilla的最佳状态,这表明需要以两倍的tokens数量对模型进行训练。这表明在网络上很难找到易获取的tokens。存在着比之前提到的高质量文本tokens多1000倍的数量,甚至还有更多的音频和视觉tokens,但是获取它们并不像简单的网页抓取那么容易。

Read more

前端防范 XSS(跨站脚本攻击)

目录 一、防范措施 1.layui util  核心转义的特殊字符 示例 2.js-xss.js库 安装 1. Node.js 环境(npm/yarn) 2. 浏览器环境 核心 API 基础使用 1. 基础过滤(默认规则) 2. 自定义过滤规则 (1)允许特定标签 (2)允许特定属性 (3)自定义标签处理 (4)自定义属性处理 (5)转义特定字符 常见场景示例 1. 过滤用户输入的评论内容 2. 允许特定富文本标签(如富文本编辑器内容) 注意事项 更多配置 XSS(跨站脚本攻击)是一种常见的网络攻击手段,它允许攻击者将恶意脚本注入到其他用户的浏览器中。

详细教程:如何从前端查看调用接口、传参及返回结果(附带图片案例)

详细教程:如何从前端查看调用接口、传参及返回结果(附带图片案例)

目录 1. 打开浏览器开发者工具 2. 使用 Network 面板 3. 查看具体的API请求 a. Headers b. Payload c. Response d. Preview e. Timing 4. 实际操作步骤 5. 常见问题及解决方法 a. 无法看到API请求 b. 请求失败 c. 跨域问题(CORS) 作为一名后端工程师,理解前端如何调用接口、传递参数以及接收返回值是非常重要的。下面将详细介绍如何通过浏览器开发者工具(F12)查看和分析这些信息,并附带图片案例帮助你更好地理解。 1. 打开浏览器开发者工具 按下 F12 或右键点击页面选择“检查”可以打开浏览器的开发者工具。常用的浏览器如Chrome、Firefox等都内置了开发者工具。下面是我选择我的一篇文章,打开开发者工具进行演示。 2. 使用

Cursor+Codex隐藏技巧:用截图秒修前端Bug的保姆级教程(React/Chakra UI案例)

Cursor+Codex隐藏技巧:用截图秒修前端Bug的保姆级教程(React/Chakra UI案例) 前端开发中最令人头疼的莫过于那些难以定位的UI问题——元素错位、样式冲突、响应式失效...传统调试方式往往需要反复修改代码、刷新页面、检查元素。现在,通过Cursor编辑器集成的Codex功能,你可以直接用截图交互快速定位和修复这些问题。本文将带你从零开始,掌握这套革命性的调试工作流。 1. 环境准备与基础配置 在开始之前,确保你已经具备以下环境: * Cursor编辑器最新版(v2.5+) * Node.js 18.x及以上版本 * React 18项目(本文以Chakra UI 2.x为例) 首先在Cursor中安装Codex插件: 1. 点击左侧扩展图标 2. 搜索"Codex"并安装 3. 登录你的OpenAI账户(需要ChatGPT Plus订阅) 关键配置项: // 在项目根目录创建.