当前位置: 首页 > ai >正文

【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]))

背后发生的关键步骤

  1. 解析 config.json:确定模型结构(如 hidden_size=4096, num_layers=32);

  2. 执行 modeling_deepseek.py:动态构建 PyTorch/TensorFlow 计算图;

  3. 加载 pytorch_model.safetensors:将权重数值填充到计算图的对应位置;

  4. 集成 tokenizer.json:处理输入文本的切分与编码。


4. 为何需要区分“模型”与“权重”?

(1) 技术必要性
  • 代码与数据分离

    • 模型结构是算法设计(人类可读的代码);

    • 权重是训练结果(机器可读的数值);

    • 分离后,开发者可以复用同一结构加载不同权重(如微调后的版本)。

  • 硬件与框架适配

    • 同一组权重(如 .safetensors)可被 PyTorch、TensorFlow 或昇腾框架加载;

    • 模型结构可能需要针对不同框架调整(如动态图 vs 静态图)。

(2) 工程实践场景
场景模型文件需求权重文件需求
训练需完整结构代码 + 随机初始化的权重权重在训练中逐步更新
推理可仅加载最终权重 + 固定结构(如 ONNX 导出)需量化/剪枝后的权重
迁移学习复用原始结构代码加载预训练权重后微调

    5. 总结:术语的灵活性与一致性

    • 广义“模型”:日常交流中可指代“完整可运行的AI系统”(包含结构+权重);

    • 狭义“模型”:技术文档中可能特指“结构代码”(如 modeling_deepseek.py);

    • 权重:始终指代参数数值,但不同平台可能扩展其含义(如包含量化元数据)。

    建议实践

    • 在 ModelScope 中,将整个仓库称为“模型”,.safetensors 称为“权重文件”;

    • 在昇腾生态中,接受其术语扩展(“权重”可能隐含硬件优化配置)。

    理解这种灵活性,是跨越不同技术生态协作的关键!

    参考

    DeepSeek

    http://www.xdnf.cn/news/4467.html

    相关文章:

  • 《Python星球日记》 第45天:KNN 与 SVM 分类器
  • 从电话到V信语音:一款App实现全场景社交脱身
  • 28.成功解决i2c_transfer返回-6的问题并linux驱动mpu6050(适合一切linux学习者)
  • OpenCV 中用于背景分割(背景建模)的一个类cv::bgsegm::BackgroundSubtractorCNT
  • 【HarmonyOS 5】鸿蒙中常见的标题栏布局方案
  • Oracle 开窗函数
  • 高组装导轨的特点
  • Java中字符转数字的原理解析 - 为什么char x - ‘0‘能得到对应数字
  • 《Python星球日记》 第43天:机器学习概述与Scikit-learn入门
  • 旧版谷歌浏览器Chrome v116.0.5845.141下载
  • 38.机壳间接缝的处理
  • 27、移除元素
  • 加速页面加载的全流程优化策略
  • 日常知识点之随手问题整理(虚函数 虚函数表 继承的使用场景)
  • 【Linux 系统调试】Linux 调试工具strip使用方法
  • Kubernetes生产级资源管理实战:从QoS策略到OOM防御体系
  • C 语言网络编程问题:E1696 无法打开 源 文件 “sys/socket.h“
  • ubuntu安装Go SDK
  • linux 怎么把trex-core-2.65用 crosstool-ng-1.27.0/编译
  • chili调试笔记13 工程图模块 mesh渲染 mesh共享边显示实现
  • FlyEnv:优雅直观的跨平台开发环境管理工具
  • VUE+ElementUI 使用el-input类型type=“number” 时,取消右边的上下箭头
  • Nginx 搭建支持多版本和前端路由的静态网站
  • 高斯牛顿法 梯度下降法 LM算法的区别
  • 【ARM AMBA AHB 入门 3 -- AHB 总线介绍】
  • Postman中https和http的区别是什么?
  • Linux 下MySql主从数据库的环境搭建
  • 什么是回调 钩子 Hook机制 钩子函数 异步编程
  • 【Prometheus】业务指标与基础指标的标签来源差异及设计解析
  • 4大主流行业CRM需求精解:精准匹配业务痛点与选型策略