【AI】模型与权重的基本概念
在 ModelScope 平台上,「模型」和「权重」的定义与工程实践紧密结合,理解它们的区别需要从实际的文件结构和加载逻辑入手。以下是一个典型 ModelScope 模型仓库的组成及其概念解析:
1. ModelScope 模型仓库的典型结构
以 deepseek-ai/deepseek-llm-7b-base 为例,模型仓库通常包含以下文件:
bash
复制
下载
Deepseek-R1-bf16-hfd-w8a8/ ├── config.json # 模型结构定义与超参数 ├── configuration_deepseek.py # 模型结构代码(PyTorch/TF定义) ├── modeling_deepseek.py # 核心网络层实现 ├── tokenizer.json # 分词器配置 ├── generation_config.json # 生成参数(如温度、top_p) ├── pytorch_model.safetensors # 模型权重(以安全格式存储) ├── special_tokens_map.json # 特殊token映射 └── README.md # 使用说明
2. 核心概念详解
(1) 模型(Model)
-
定义:模型是一个完整的、可执行的函数系统,包含:
-
结构定义(代码层):网络层设计(如Transformer层数、注意力头数)、激活函数、连接方式等;
-
权重参数(数值层):训练后确定的参数值;
-
配置与工具(辅助层):分词器、生成策略、硬件适配逻辑。
-
-
功能:接受输入(如文本)→ 执行计算 → 输出预测结果(如生成文本)。
(2) 权重(Weights)
-
定义:模型在训练过程中学习到的参数数值,存储为张量(Tensor)形式,决定模型的具体行为。
-
物理存在:通常以
.safetensors
、.bin
或.pth
文件存储; -
作用:权重是模型的“记忆”,例如:
-
在 LLM 中,权重编码了词语的语义关联(如“猫→动物,4条腿”);
-
在视觉模型中,权重可能对应边缘检测滤波器或纹理模式识别器。
-
3. 模型与权重的加载流程
在 ModelScope 中,用户通过以下代码加载模型:
python
复制
下载
from modelscope import AutoModelForCausalLM, AutoTokenizer# 加载完整模型(结构+权重+配置) model = AutoModelForCausalLM.from_pretrained("deepseek-ai/deepseek-llm-7b-base") tokenizer = AutoTokenizer.from_pretrained("deepseek-ai/deepseek-llm-7b-base")# 使用模型生成文本 inputs = tokenizer("你好,世界", return_tensors="pt") outputs = model.generate(**inputs) print(tokenizer.decode(outputs[0]))
背后发生的关键步骤:
-
解析
config.json
:确定模型结构(如 hidden_size=4096, num_layers=32); -
执行
modeling_deepseek.py
:动态构建 PyTorch/TensorFlow 计算图; -
加载
pytorch_model.safetensors
:将权重数值填充到计算图的对应位置; -
集成
tokenizer.json
:处理输入文本的切分与编码。
4. 为何需要区分“模型”与“权重”?
(1) 技术必要性
-
代码与数据分离:
-
模型结构是算法设计(人类可读的代码);
-
权重是训练结果(机器可读的数值);
-
分离后,开发者可以复用同一结构加载不同权重(如微调后的版本)。
-
-
硬件与框架适配:
-
同一组权重(如
.safetensors
)可被 PyTorch、TensorFlow 或昇腾框架加载; -
模型结构可能需要针对不同框架调整(如动态图 vs 静态图)。
-
(2) 工程实践场景
场景 | 模型文件需求 | 权重文件需求 |
---|---|---|
训练 | 需完整结构代码 + 随机初始化的权重 | 权重在训练中逐步更新 |
推理 | 可仅加载最终权重 + 固定结构(如 ONNX 导出) | 需量化/剪枝后的权重 |
迁移学习 | 复用原始结构代码 | 加载预训练权重后微调 |
5. 总结:术语的灵活性与一致性
-
广义“模型”:日常交流中可指代“完整可运行的AI系统”(包含结构+权重);
-
狭义“模型”:技术文档中可能特指“结构代码”(如
modeling_deepseek.py
); -
权重:始终指代参数数值,但不同平台可能扩展其含义(如包含量化元数据)。
建议实践:
-
在 ModelScope 中,将整个仓库称为“模型”,
.safetensors
称为“权重文件”; -
在昇腾生态中,接受其术语扩展(“权重”可能隐含硬件优化配置)。
理解这种灵活性,是跨越不同技术生态协作的关键!
参考
DeepSeek
相关文章:
【AI】模型与权重的基本概念
在 ModelScope 平台上,「模型」和「权重」的定义与工程实践紧密结合,理解它们的区别需要从实际的文件结构和加载逻辑入手。以下是一个典型 ModelScope 模型仓库的组成及其概念解析: 1. ModelScope 模型仓库的典型结构 以 deepseek-ai/deepse…...
设计模式-基础概念学习总结(继承、多态、虚方法、方法重写)
概念使用例子的方式介绍(继承,多态,虚方法,方法重写),实现代码python 1. 继承(Inheritance) 概念:子类继承父类的属性和方法,可以直接复用父类的代码&#…...
2025年小程序DDoS与CC攻击防御全指南:构建智能安全生态
2025年,小程序已成为企业数字化转型的核心载体,但随之而来的DDoS与CC攻击也愈发复杂化、智能化。攻击者利用AI伪造用户行为、劫持物联网设备发起T级流量冲击,甚至通过漏洞窃取敏感数据。如何在高并发业务场景下保障小程序的稳定与安全&#x…...

当当狸智能天文望远镜 TW2 | 用科技触摸星辰,让探索触手可及
当科技邂逅星空,每个普通人都能成为宇宙的追光者 伽利略用望远镜揭开宇宙面纱的 400 年后,当当狸以颠覆传统的设计,让天文观测从专业领域走入千家万户。当当狸智能天文望远镜 TW2,重新定义「观星自由」—— 无需专业知识ÿ…...
QT实现曲线图缩放、拖拽以及框选放大
.h文件 protected: void saveAxisRange();void wheelEvent(QWheelEvent *event) override;void mousePressEvent(QMouseEvent *event) override;void mouseMoveEvent(QMouseEvent *event) override;void mouseReleaseEvent(QMouseEvent *event) override;private:QPoint m_…...
C# | 基于C#实现的BDS NMEA-0183数据解析上位机
以下是一个基于C#实现的BDS NMEA-0183数据解析上位机的示例代码,包含基础功能和界面: using System; using System.Collections.Generic; using System.IO.Ports; using System.Windows.Forms; using System.Drawing; using System.Globalization;namespace BDS_NMEA_Viewer…...

科学发现 | 源于生活的启示与突破计划的创新
注:本文为“科学发现”相关文章合辑。 略作重排,未全整理。 哪些重大科学发现,来自生活的启示 ︱ 科学史 2020/10/29 导读 好奇心是最好的向导和老师。 撰文 | 陈敬全(东华大学人文学院教授) 英国进化论者赫胥黎…...

【ArcGIS微课1000例】0145:如何按照自定义形状裁剪数据框?
文章目录 一、添加数据二、绘制形状三、裁剪格网和经纬网一、添加数据 打开软件,添加配套实验数据包中0145.rar中的影像数据,如下图所示: 二、绘制形状 1. 在数据视图中,使用绘图 工具条上的新建圆工具 可创建一个椭圆,使其包含要在该数据框中显示的数据范围。 修改椭圆…...

网络安全防火墙技术有哪些?网络防火墙的主要作用
网络安全防火墙技术有哪些?网络防火墙的主要作用 网络安全防火墙技术是保护网络免受未经授权访问和攻击的关键工具。以下是常见的防火墙技术及其主要作用: 一、网络安全防火墙技术分类 包过滤防火墙(Packet Filtering Firewall) 原理&#x…...

数据集-目标检测系列- 印度人脸 检测数据集 indian face >> DataBall
数据集-目标检测系列- 印度人脸 检测数据集 indian face >> DataBall DataBall 助力快速掌握数据集的信息和使用方式。 贵在坚持! * 相关项目 1)数据集可视化项目:gitcode: https://gitcode.com/DataBall/DataBall-detections-100s…...

Sass @import rules are deprecated and will be removed in Dart Sass 3.0.0.
版本: 原因 在 Dart Sass 3.0.0 中, @import 规则将被弃用,推荐使用 @use 和 @forward 规则来替代。 1.@use替代@import @use 规则允许你引入其他 Sass 文件中的变量、混合器和函数,并且可以避免命名冲突。 示例: style.scss @use variables;body {color: variables.$pr…...
通过CIDR推出子网掩码和广播地址等
写在前面 不知道你遇到过这种面试题没,给你CIDR,让你推理子网掩码等信息。如果你不会,那本文刚好适合你。 1:一个面试题16.158.165.91/22 这个 CIDR。求一下这个网络的第一个地址、子网掩码和广播地址。 一般如果你对CIDR知识有…...

【工具教程】批量提取PDF指定内容并重命名,PDF文档根据指定识别文字改名,基于java的实现方案
物流单据处理:每天处理大量发货单PDF,提取订单编号、发货方信息等关键字段重命名文件 合同管理:从合同PDF中提取合同编号、签署方名称等作为文件名 学术论文整理:根据论文标题或作者信息重命名PDF文件 财务票据…...
std::iota(C++)
std::iota 1. 概述2. 函数原型3. 使用示例示例 1:填充 vector<int>示例 2:从非零起始值开始 4. 应用场景5. 注意事项6. 与其它算法比较小结 1. 概述 std::iota 定义在头文件 中,C11 起引入。 它用于向前迭代器区间依次填入连续递增的数…...
【IP101】图像特征提取技术:从传统方法到深度学习的完整指南
🌟 特征提取魔法指南 🎨 在图像处理的世界里,特征提取就像是寻找图像的"指纹",让我们能够识别和理解图像的独特性。让我们一起来探索这些神奇的特征提取术吧! 📚 目录 基础概念 - 特征的"体…...

苍穹外卖(用户下单、订单支付)
用户下单、订单支付 导入地址簿功能代码 接口设计 数据库设计(address_book表) 代码导入 功能测试 用户下单 接口设计 数据库设计 订单表 orders 订单明细表 order_detail 代码开发 根据用户下单接口的参数设计DTO 根据用户下单接口的…...
数据结构-非线性结构-二叉树
概述 /** * 术语 * 根节点(root node):位于二叉树顶层的节点,没有父节点。 * 叶节点(leaf node):没有子节点的节点,其两个指针均指向 None 。 * 边(edge)&…...

【PostgreSQL数据分析实战:从数据清洗到可视化全流程】3.2 缺失值检测与处理(NULL值填充/删除策略)
👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 缺失值检测与处理全攻略:NULL值填充与删除策略实战3.2 缺失值检测与处理3.2.1 缺失值类型与业务影响3.2.1.1 缺失值的三种形态3.2.1.2 业务影响分级 3.2.2 缺失值…...

2025年渗透测试面试题总结-某步在线面试(题目+回答)
网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 一、操作系统相关问题总结与分析及扩展回答 1. Linux命令熟悉度 2. 查看进程的命令 3. 查看网络进程…...

Java后端程序员学习前端之JavaScript
1.什么是JavaScript 1.1.概述 JavaScript是一门世界上最流行的脚本语言javaScript 一个合格的后端人员,必须要精通JavaScript 1.2.历史 JavaScript的起源故事-CSDN博客 2.快速入门 2.1.引入JavaScript 1.内部标签 <script>//.......</script> --…...
ARM Linux 设备树
Linux 设备驱动开发详解:基于最新的Linux 4.0内核, 机械工业出版社, 宋宝华, 2015 1. 设备树的起源 • 背景: ARM架构中大量板级代码冗余,硬编码在mach-xxx目录,设备树(Device Tree)引入结构化描述硬件。 • 目的: 减…...

uniapp-商城-43-shop 后台管理 页面
后台管理较为简单,主要用于后台数据的管理,包含商品类别和商品信息,其实还可以扩展到管理用户等等 1、后台首页 包含 分类管理 商品管理 关于商家等几个栏目 主要代码: <template><view class"manage">…...
kotlin JvmName注解的作用和用途
1. JvmName 注解的作用 JvmName 是 Kotlin 提供的一个注解,用于在编译为 Java 字节码时自定义生成的类名或方法名。 作用对象: 文件级别(整个 .kt 文件)函数、属性、类等成员 主要用途: 控制 Kotlin 编译后生成的 JV…...
Mac 平台 字体Unicode范围分析器
字体Unicode范围分析器 #include <CoreText/CoreText.h> // CoreText框架头文件,用于字体处理 #include <CoreFoundation/CoreFoundation.h> // CoreFoundation框架头文件 #include <stdio.h> // 标准输入输出 #include…...
【C++游戏引擎开发】第30篇:物理引擎(Bullet)—软体动力学系统
一、软体动力学理论体系 1.1 连续体力学基础 1.1.1 变形梯度张量 物体运动可描述为映射函数: x = ϕ ( X , t ) \mathbf{x} = \phi(\mathbf{X},t) x...

vue2 结合后端预览pdf 跨域的话就得需要后端来返回 然后前端呈现
<el-button :loading"pdfIslock" v-if"isPDFFile(form.pic)" type"primary" style"margin: 15px 0" click"previewPDF(form.pic)"> 预览pdf </el-button>//npm install pdfjs-dist //如果没有就得先安装import …...

什么是 HSQLDB?
大家好,这里是架构资源栈!点击上方关注,添加“星标”,一起学习大厂前沿架构! Java开发人员学习Java数据库连接(JDBC)的最简单方法是试验HyperSQL数据库(又名HSQLDB)。 …...
AI时代企业应用系统架构的新思路与CIO变革指南
作为制造企业CIO,我们看问题需要有前瞻性,AI时代企业应用系统架构需要进行全面转型。 一、新思想与新技术 1. 核心新思想 可视化开发AI的融合模式:不再只依赖纯代码开发或传统低代码,而是两者结合,通过AI理解自然语…...

多语言爬虫实现网站价格监控
最近突发奇想想用多种代码来爬取数据做价格监控。常见的比如Python、JavaScript(Node.js)、或者Go?不过通常来说,Python应该是首选,因为它的库比较丰富,比如requests和BeautifulSoup,或者Scrapy。不过客户要求多种代码…...
如何修改 JAR 包中的源码
如何修改 JAR 包中的源码 前言一、准备工作二、将 JAR 当作 ZIP 打开并提取三、重写 Java 类方法 A:直接替换已编译的 .class方法 B:运行时类路径优先加载 四、修改 MyBatis(或其他)XML 资源五、重新打包 JAR(命令行&a…...