如何通俗易懂地理解大模型参数?

news2024/10/7 4:27:30

大型语言模型 (LLM) 的大小是通过参数数量来衡量的。举几个典型例子,GPT-3 有 1750 亿个参数,1750亿也可称为175B(1B = 10亿),Meta最新开源的Llama3 参数数量在 80 亿到 700 亿之间,智谱公司最新开源的GLM4-9B参数为90亿。

这就有一个问题,什么叫做参数?

LLM 被称之为基于深度神经网络的大模型,为了了解这个非常复杂的模型,我们关注一个最简单并且与我们日常生活息息相关的的例子。

假设你是一名房地产经纪人,正在估算房屋的价值。你最近看到很多房子被卖出,并得出了一个简单的经验法则,即房子的价格约为每间房间 75,000 英镑。你可以用公式来表示:

从上面这公式可以看出,输入只有一个房间数量,75000称之为参数。然后再来看一个复杂一点的例子,我假设房子价格依赖于房间数量与修建年份,用公式表示为:

从上面这公式可以看出,输入有二个分别是房间数量和修建年份,其中50000-1000称之为参数

上面两个公式,我们可以理解成最简单意义上的模型。不过在实际情况中,会发现这两个模型都不是最准确的,房子价格受到周围多种因素影响,实际中可以列出一个更长的输入列表来影响房价,比如最近的学校有多远以及厕所的数量。通过往模型添加越来越多的输入和参数,并调整参数的值,模型可能会得到越来越好的房价估计。假设确定了7个你认为对房价最重要的输入。为了方便理解,可以画成图表。

其中输入在左侧。每个蓝色箭头将输入乘以一个参数,然后所有参数相加,得出绿色箭头处的估计房价。此图中有 7个参数,可以一直调整这7个参数(蓝色箭头),直到找到一个好的模型。

因此,参数是模型内部的数字,我们可以调整它以使其生成的结果更准确或更不准确。并且我们希望使用7个输入使模型比只有1个或2个输入时更准确。

怎么衍生到神经网络?

LLM 是神经网络模型。神经网络模型的构建模块与我们目前用于估算房价的模型非常相似,它的构建方法是将许多这些简单模型排列成网格排列,并排列成包含节点的层。

这个神经网络模型有 3 层,有 7 个输入。第一层有 2 个节点,第二层有 5 个节点,最后一层有 1 个节点。每条蓝线都是一个参数。

相同点:与上一个模型一样,输入为7个,输出仍然是房价的估计值。

不同点:在于模型的复杂程度。这个神经网络内部有更多的步骤来将输入转换为输出。因此,我们希望这个更复杂的模型可以为我们提供更好的房价估计。与以前模型一样,每个参数都可以调整以使模型更好。

怎么衍生到大模型?

LLM 是大型神经网络,由许多输入和许多参数组成。LLM与我们的房价神经网络示例的主要区别在于:

  • LLM 将单词作为输入和输出。
  • LLM 的神经网络内部结构与上述示例不同,目前主流LLM使用类似Transformer的网络架构 。
  • LLM 有许多层以及数十亿个参数。

这里的关键点是,参数是模型内部的数字,可以对其进行调整以使模型的预测更准确或更不准确。在非常简单的模型中,我们可以考虑手动调整参数。对于神经网络和其他复杂模型,参数是在称为模型训练的过程中调整的。

实战-分析llama3 8B的参数

随着huggingface transformers的流行,越来越多的模型采用了.safetensors的文件存储格式。本实战主要分析huggingface llama3 8B格式的模型权重。

代码如下:

1.查看有哪些参数

import os
import torch
import safetensors.torch
model_path = PATH_TO_YOUR_MODEL
model = safetensors.torch.load_file(os.path.join(model_path,"model-00001-of-00004.safetensors"))
print(json.dumps(list(model.keys())[:20], indent=4))
[
    "model.embed_tokens.weight",
    "model.layers.0.input_layernorm.weight",
    "model.layers.0.mlp.down_proj.weight",
    "model.layers.0.mlp.gate_proj.weight",
    "model.layers.0.mlp.up_proj.weight",
    "model.layers.0.post_attention_layernorm.weight",
    "model.layers.0.self_attn.k_proj.weight",
    "model.layers.0.self_attn.o_proj.weight",
    "model.layers.0.self_attn.q_proj.weight",
    "model.layers.0.self_attn.v_proj.weight",
    "model.layers.1.input_layernorm.weight",
    "model.layers.1.mlp.down_proj.weight",
    ....
    "model.layers.2.input_layernorm.weight"
]

2.加载权重

model = safetensors.torch.load_file(os.path.join(model_path,"model-00001-of-00004.safetensors"))
model2 = safetensors.torch.load_file(os.path.join(model_path,"model-00002-of-00004.safetensors"))
model3 = safetensors.torch.load_file(os.path.join(model_path,"model-00003-of-00004.safetensors"))
model4 = safetensors.torch.load_file(os.path.join(model_path,"model-00004-of-00004.safetensors"))
model.update(model2)
model.update(model3)
model.update(model4)

3.分析参数

sum = 0
dict = {}
for key in list(model.keys()):
    dict[key] = torch.prod(torch.tensor(model[key].shape))
    sum = sum + dict[key]
print(f"总参数量:{sum/10**9}B")
# 总参数量:8.030261039733887B

最后,参数数量为8.03B,与llama3 8B的名字是对应上的。

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

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

相关文章

【再探】Java—Java 沙箱机制与类加载器

沙箱(Sandbox)机制是将Java程序限定在JVM特定的运行范围内,并严格限制代码对本地系统资源的访问,以保证代码的有效隔离,防止对本地系统造成破坏。 1 安全模型 类在加载过程中,类加载器会为类设置初始的安…

【Java毕业设计】基于JavaWeb的在线购物网站的设计与实现

文章目录 摘 要ABSTRACT目 录1 概述1.1 研究背景及意义1.2 国内外研究现状1.3 拟研究内容1.4 系统开发技术1.4.1 vue技术1.4.2 B/S结构1.4.3 Spring Boot框架1.4.4 MySQL数据库1.4.5 MVC模式 2 系统需求分析2.1 可行性分析2.2 功能需求分析 3 系统设计3.1 功能结构设计3.2 系统…

美国签证办理需要带哪些材料?

在申请美国签证时,准备充分的材料至关重要。以下知识人网整理的关于您可能需要携带的一些常见材料: 1.护照:您的护照必须是有效的,并且在签证申请过程中至少有六个月的有效期。 2.签证申请表:您需要填写并提交签证申请…

联合(union)和枚举(enum)学习(c语言)

前言 Hello,亲爱的小伙伴们,好久不见,今天我们继续来学习新的内容-----联合和枚举 如果喜欢作者菌的文章的话,就不要吝啬手中的三连呀,万分感谢!! 联合(共用体)(union&…

前端开发之性能优化

本文章 对各大学习技术论坛知识点,进行总结、归纳自用学习,共勉🙏 文章目录 1. [CDN](https://www.bootcdn.cn/)2.懒加载3.缓存4.图片压缩5.图片分割6.sprite7.Code Splitting8.gzip9.GPU加速10.Ajax11.Tree Shaking12.Resource Hints 1. CD…

VisualStudio 2022 安装net8sdk后无法创建net8项目

目录 一级目录原因分析解决办法 一级目录 VisualStudio 2022 安装net8sdk后无法创建net8项目 原因分析 解决办法 安装net8 查看安装的版本 dotnet --list-sdks升级VisualStudio 2022版本,重启电脑 当前版本 开始升级 升级后版本 已可以使用net8.0

盲盒一番赏小程序:开发探索之旅,打造独特互动体验

在快节奏的现代生活中,每个人都期待一份突如其来的惊喜。为了满足这一需求,我们倾力打造了“盲盒一番赏”小程序,为你带来全新的购物体验,让每一次点击都成为一次心跳加速的探险之旅。 一、盲盒文化,点燃惊喜火花 盲…

苹果不会在WWDC 2024中推出任何搭载M4芯片的Mac电脑

虽然苹果公司已在上月推出了首搭 M4 芯片的 iPad Pro,不过彭博社的马克・古尔曼在最近的实时通讯中透露苹果公司不会在即将进行的 WWDC 2024 开发者大会中推出任何搭载 M4 芯片的 Mac 电脑(不会推出任何硬件产品)。 此前报道,苹果…

Android 蓝牙概述

一、什么是蓝牙 蓝牙是一种短距离(一般10m内)无线通信技术。蓝牙技术允许固定和移动设备在不需要电缆的情况下进行通信和数据传输。 “蓝牙”这名称来自10世纪的丹麦国王哈拉尔德(Harald Gormsson)的外号。出身海盗家庭的哈拉尔德统一了北欧四分五裂的国…

用负载绿原酸的纳米复合水凝胶调节巨噬细胞表型以加速伤口愈合

引用信息 文 章:Modulating macrophage phenotype for accelerated wound healing with chlorogenic acid-loaded nanocomposite hydrogel. 期 刊:Journal of Controlled Release(影响因子:10.8) 发表时间&a…

【数据结构】C语言实现二叉树的基本操作——二叉树的遍历(先序遍历、中序遍历、后序遍历)

C语言实现二叉树的基本操作 导读一、二叉树的遍历二、先序遍历三、中序遍历四、后序遍历五、结点序列六、递归算法与非递归算法的转化结语 导读 大家好,很高兴又和大家见面啦!!! 通过前面的介绍,我们已经认识了二叉树…

五菱缤果Plus,便宜又大碗的纯电

五菱缤果Plus在技术和性能方面相较于比亚迪海豚有以下几个优势: 续航能力:五菱缤果Plus搭载了五菱液冷神炼电池和75kW三合一水冷扁线电机,能够提供最长510km的超长续航里程。相比之下,比亚迪海豚荣耀版的NEDC工况续航里程为401km…

NSSCTF-Web题目6

目录 [NISACTF 2022]checkin 1、题目 2、知识点 3、思路 [NISACTF 2022]babyupload 1、题目 2、知识点 3、思路 [SWPUCTF 2022 新生赛]1z_unserialize 1、题目 2、知识点 3、思路 [NISACTF 2022]checkin 1、题目 2、知识点 010编辑器的使用、url编码 3、思路 打…

力扣--数组6.Z字形变换

思路分析 处理特殊情况: 如果numRows为1,那么字符排列与原字符串相同,无需进行转换,直接返回原字符串。 定义和初始化变量: n:字符串长度。k:一个完整的“V”字形周期长度,计算公式为…

哪些机构签发代码签名证书?

在数字化快速发展的今天,软件安全已成为全球关注的焦点。代码签名证书,作为一种数字证书,不仅保障了软件在传输过程中的安全性和可靠性,还为用户提供了信任的基石。本文将深入探讨代码签名证书颁发机构(CA)…

《科技资讯》是什么级别的期刊?是正规期刊吗?能评职称吗?

​问题解答 问:《科技资讯》是不是核心期刊? 答:不是,是知网收录的正规学术期刊 问:《科技资讯》是什么级别的? 答:国家级。主管单位:北京市科学技术研究院 主办单位&#xff1…

⌈ 传知代码 ⌋ 辅助任务改进社交帖子多模态分类

💛前情提要💛 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间,对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…

基于SpringBoot+Vue二手家电管理平台设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝1W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码数据库🌟 感兴趣的可以先收藏起来,还…

[word] word2019中制表符的妙用 #媒体#笔记#知识分享

word2019中制表符的妙用 word2019表格功能是非常强大的,很多朋友都认为以前的制表符已经没有什么用途了,其实不然,在一切特殊的场合,word2019制表符还是非常有用的,下面就为大家介绍word2019中制表符的妙用。 步骤1、…

前端html-docx实现html转word,并导出文件,文字+图片

前端html-docx实现html转word,并导出文件 前端web页面 有文字,有图片,保存web的css效果 使用工具:html-docx 官方网址:http://docs.asprain.cn/html-docx/readme.html 步骤: 1 npm install html-docx-js…