大模型训练全流程实战指南基础篇(二)——大模型文件结构解读与原理解析

前言

上篇文章 大模型训练全流程实战指南(一)——为什么要学习大模型训练?分享了学习大模型训练对职业发展与科研探索的重要意义。本期笔者将正式进入实战基础环节,系统性地拆解大模型训练的核心内容。掌握大模型训练,首先必须理解其底层原理与基本构成。然而,目前很多资料仅停留在工具使用层面,缺少深入剖析模型的工作原理。为此本文将从开源大模型的文件结构入手,带大家逐步认识大模型的组成部分,并通过代码解读模型如何理解人类语言、生成对话背后的核心机制。

大模型训练对计算资源有一定要求,尤其是GPU显存。为降低学习门槛,笔者与国内主流云平台合作,大家可以通过打开链接: https://www.lab4ai.cn/register?agentID=user-XorgKKc56U ,体验H100 GPU 6.5小时的算力。本系列所有实战教程均将在该平台上完成,帮助大家低成本上手实践。

除大模型训练外,笔者也在同步更新《深入浅出LangChain&LangGraph AI Agent 智能体开发》免费专栏,要说明该专栏适合所有对 LangChain 感兴趣的学习者,无论之前是否接触过 LangChain。该专栏基于笔者在实际项目中的深度使用经验,系统讲解了使用LangChain/LangGraph如何开发智能体,目前已更新 37 讲,并持续补充实战与拓展内容。欢迎感兴趣的同学关注笔者的CSDN账号与专栏,也可关注笔者的同名微信公众号大模型真好玩,每期分享涉及的代码均可在公众号私信:LangChain智能体开发免费获取。

一、大模型研究常用网站

当前,各类大模型层出不穷。开源大模型更是我国大模型发展的关键路径之一。然而,面对众多开源模型,大家是否曾深入思考:模型“开源”究竟意味着什么?一个完整的大模型,到底包含哪些组成部分?今天的分享中,笔者将避开抽象的概念讲解,直接打开一个真实的开源模型仓库,从最实际的角度出发,了解如何获取大模型的原始文件。

如同大家日常代码开发通常依托于 GitHub 或 GitCode 等平台,大模型的发布也依赖于类似的托管社区。目前,全球最大、最活跃的大模型社区是 Hugging Face,可以将其理解为“AI 领域的 GitHub”。它托管了数以万计的模型、数据集与应用,是全球开发者首选平台。

不过,由于网络访问限制,国内用户有时访问 Hugging Face 并不顺畅,这与访问 GitHub 的情况类似。好在国内的大模型生态同样繁荣,正如我们有 GitCode 作为 GitHub 的替代,我们也有 Hugging Face 的国内优秀替代——魔搭(ModelScope)。

ModelScope 社区由阿里巴巴达摩院与 CCF 开源发展技术委员会在 2022 年 11 月共同发起创立,是一个面向全球的模型开源社区与创新平台。与 Hugging Face 类似,ModelScope 也托管了大量高质量的开源模型与数据集,在国际上也具有一定影响力,完全能够满足我们的学习与研究需求。

考虑到访问便捷性与学习成本,本系列教程中使用的所有模型与数据集,都将从 ModelScope 上获取,确保大家都能顺畅地跟随实践。接下来,我们就正式进入模型仓库,一探究竟。

二、大模型文件组成总览

接下来笔者就与大家共同拆解一个开源大模型,了解开源大模型的文件组成与功能。笔者这里以广受好评的国产模型——Qwen3系列为例进行说明。本次选取的具体模型是Qwen3-8B,该系列的其他模型(如1.5B、32B等)文件结构与此完全一致,仅参数量不同。

首先访问ModelScope网站,搜索“Qwen3-8B”并进入其官方模型页。在页面上可以浏览到模型的特性介绍、技术报告以及各项性能基准测试结果。


模型的核心文件位于“文件列表”(Files)选项卡中。一个典型且完整的大模型发布通常包含以下几类关键文件:

  • 模型权重文件:存储神经网络的参数,是模型的知识核心。常见格式为model-*.safetensors分片文件,并由model.safetensors.index.json索引文件说明分片信息。
  • 模型配置文件:定义模型的结构与超参数,如层数、注意力头数、隐藏维度等。主要文件为config.jsonconfiguration.json
  • 生成配置文件:预设文本生成的策略参数,如temperaturetop_p等。文件通常为generation_config.json
  • 分词器文件:包含词汇表与分词规则,负责将文本转换为模型可理解的 token ID。典型文件包括tokenizer.jsontokenizer_config.jsonvocab.json等。

对于Qwen3及许多开源模型,社区通常仅发布上述模型权重与配置文件。而一些更开放的模型发布(如“大模型之光”DeepSeek-V3.1),则会在基础上进一步提供模型实现源码。例如,在DeepSeek-V3.1的文件目录中可以看到关键的modeling_deepseek.py文件,它完整定义了模型的计算图与前向传播逻辑。大家可以参考该python文件复现DeepSeek模型源码。


读到这里有的同学可能会说,“我现在知道了这些文件的名字和分类,但它们具体是如何协作,让模型‘工作’起来的呢?”,的确,仅仅认识文件列表,还不足以理解大模型是如何思考与对话的。要真正弄明白每个文件的作用,需要深入模型运行的基本原理。接下来笔者就用最直观的方式,揭开大模型工作的神秘面纱。

三、大模型文件解读与原理剖析

3.1 大模型是如何组成的?

大模型本质上是一个由海量神经元构成的深度神经网络。如下图示意,每个圆圈代表一个神经元,连接线则代表可学习的权重参数。大家可以这样理解神经元的计算过程:假设网络输入是一个向量数组(例如下图中起始的2个神经元,数值可能是[1, 2]),而每个神经元会接收来自上一层的所有输入,并乘以各自的权重,再加上一个偏置(即完成w*x + b运算),最终产生下一层的激活值。例如,若输入为[1, 2],图中中间层第一个神经元的值可能为3×1 + 5×2 + 6(偏置)= 19,第二个为12×1 + 4×2 + 3 = 23,依此类推,直至得到最终的输出。

当然,真实的模型结构远比示意图复杂。神经元的排列方式(即模型架构)多种多样,层数、每层的单元数都可以变化。下图就展示了一个比上图多一层的网络结构。

因此,一个训练好的模型可以大致拆分为两部分:模型结构定义模型权重参数

3.1.1 模型结构

关于模型结构首先看model.json文件,这个文件主要描述了模型的结构,用了什么框架,网络的维度和层数分别是多少等。简单介绍几个其中的参数:

  • architectures:介绍了模型的类名
  • vocab_size:可以理解为词语数,Qwen3-8B理解世界上151936个词

configuration.json则定义了是使用什么框架编写的模型,主要任务是什么,Qwen3-8B是pytorch框架编写的,主要的任务是文本生成。

3.1.2 权重组成

除模型结构文件外,大家还可以看到的大量.safetensors文件,正是模型的权重文件,它们保存了模型结构中所有连接上的参数数值。Qwen3-8B 表示其拥有约 80 亿(8B,1B=10亿)个参数,数据量巨大,因此通常会被分割成多个.safetensors分片文件,便于存储与并行加载。

有了权重文件,程序还需要知道每个权重对应模型结构中的哪一部分。这个映射关系由model.safetensors.index.json文件记录。它是一个索引文件,详细说明了模型每一层的参数存储在哪个具体的.safetensors分片文件中。

3.2 大模型是如何产生回答的?

3.2.1 大模型生成文本原理

大家是否好奇过,大模型是如何理解你的问题并生成回答的?像 Qwen、DeepSeek 这样的大语言模型,本质上是自回归生成模型。它并不直接“理解”语义,而是基于统计规律预测下一个最可能出现的词(Token)。

整个过程开始于分词。当输入“你好大模型,我的名字叫苍老师”时,模型首先会使用分词器将这句话切分成一个个 词(也就是常说的Token),例如:“你好”、“大模型”、“,”、“我”、“的”、“名字”、“叫”、“苍老师”。

为什么要分词?这模仿了人类理解语言的过程——我们也是通过词语来构建语义信息并生成回答的。模型接收到 Token 序列后,会基于前面的所有 Token 来预测下一个 Token 是什么。例如:

  1. 输入:“你好”、“大模型”、“,”、“我”、“的”、“名字”、“叫”、“苍老师”
  2. 模型预测下一个 Token 可能是“你好呀”,并将其加入序列。
  3. 新的输入序列变为:“你好”、“大模型”、“,”、“我”、“的”、“名字”、“叫”、“苍老师”、“你好呀”
  4. 模型根据新序列继续预测下一个 Token,可能是“我的”。
  5. 如此循环迭代,最终可能生成完整的回复:“你好呀,我的名字是Qwen3”。

这个过程可以直观地理解为下图所示的“接龙”游戏:

因此,大模型处理输入的第一步,就是通过分词器将文本转化为 Token 序列,这依赖于分词器相关的文件。笔者前面也说过,大模型接收的其实是数字参数(它是不能直接理解词的意思的),那么如何将分词后的字词列表转化为大模型可以理解的数字呢?

文件列表中tokenizer.json文件包含了详细的分词规则和词表。大家可以下载该文件,在其中搜索“Hello”,会发现它对应的 Token ID 是 9707。大模型正是依赖这个分词器文件将语句进行分词,然后并将词列表转化为词的id数字列表。(最后数字列表经过大模型会转化为输入神经元的词向量)

除了tokenizer.json,还有一个tokenizer_config.json文件。它定义了编码方式、特殊符号以及对话模板等重要信息。这里又有一个问题啦,特殊符号和对话模板是什么?


观察上面大模型预测的示意图,大家会发现一个关键问题:模型的输入序列中,如何区分哪些是用户的提问,哪些是模型自己的回复?这时就需要特殊符号对话模板了。

用户的原始输入不会直接交给模型,而是先要按照chat_template中定义的格式进行组装。不同模型的模板不同,模型只有在符合自身模板的输入格式下,才能正确工作。例如,当你输入“你好”时,经过 Qwen3 的模板转换,实际送入模型的文本会变成:

<|im_start|>user 你好<|im_end|> <|im_start|>assistant

这里:

  • <|im_start|>标记一段话的开始。
  • userassistant表明说话者的角色。
  • <|im_end|>标记一段话的结束。

这样,模型就能清晰地识别出对话的上下文结构。

此外,Qwen3-8B 还包含一个vocab.json文件,它直接存储了词表中每个 Token 与其对应 ID 的映射关系。

总而言之,分词器的核心工作有两步:

  1. 编码:将人类可读的文本,通过分词规则和词表,转换成模型可处理的 Token ID 序列。
  2. 解码:将模型生成的 Token ID 序列,反向转换回人类可读的文本。

3.2.2 大模型推理实战指南

“纸上得来终觉浅,绝知此事要躬行。”理解了原理,下一步笔者带大家动手实践,验证大模型的工作流程是否如我们所讲。

大模型推理需要一定的计算资源,不过请放心,笔者已为大家争取了福利。大家可以通过打开链接:https://www.lab4ai.cn/register?agentID=user-XorgKKc56U,领取50元无门槛代金券,免费体验H100 GPU 6.5小时的算力。本系列所有实战教程均可在该平台上完成。

下面笔者就将之前介绍的所有文件和作用串联起来,通过代码看看实际运行时发生了什么。

  1. 环境准备:打开 大模型实验室 算力平台官网,新建一个Jupyterlab实例并启动。可以看到实例已预装了 lammafactory 0.9.4、torch 2.8 等必要的软件依赖。


  1. 导入库与加载模型:首先从modelscope库导入加载模型所需的函数。modelscope是基于著名的transformers库构建的(关于transformers库笔者会在后续篇章详细介绍):
frommodelscopeimportAutoModelForCausalLM,AutoTokenizer
  1. 定义模型:定义模型名称,并加载分词器与模型。如果本地没有缓存,代码会自动从 ModelScope 平台下载模型文件。
# 模型名称model_name="Qwen/Qwen3-8B"# 加载分词器tokenizer=AutoTokenizer.from_pretrained(model_name)# 加载模型model=AutoModelForCausalLM.from_pretrained(model_name,torch_dtype="auto",device_map="auto")

  1. 准备输入并应用对话模板:编写一个简单的提示词“你好”进行测试。用户输入的文本会首先被套用之前提到的对话模板。
user_input="你好"messages=[{'role':'user','content':user_input}]text=tokenizer.apply_chat_template(messages,tokenize=False,add_generation_prompt=True,enable_thinking=False,)
  1. 分词并查看 Token ID:应用模板后的文本,再经过分词器转化为 Token ID 序列。笔者这里打印出来结果让大家直观感受一下:
model_inputs=tokenizer([text],return_tensors="pt").to(model.device)print(model_inputs)

输出显示了一个包含input_ids的张量,这正是输入的 Token ID 序列。对比tokenizer.json中的特殊符号,你会发现序列的构成完全符合我们讲解的模板格式(尽管部分中文 Token 在打印时可能显示为字节形式,但“你好”确实被正确地分词了)。


  1. 运行模型进行推理:现在将 Token ID 序列输入模型,让其生成后续的 Token。
generated_ids=model.generate(**model_inputs,max_new_tokens=32768)output_ids=generated_ids[0][len(model_inputs.input_ids[0]):].tolist()print(output_ids)

  1. 解码输出:最后使用分词器的decode方法,将模型生成的 Token ID 序列转换回人类可读的文本。skip_special_tokens=True参数会自动过滤掉那些用于控制格式的特殊符号。
content=tokenizer.decode(output_ids,skip_special_tokens=True).strip("\n")print(content)

以上就是使用代码加载模型并获取推理输出的完整流程,与笔者之前讲解的原理完全吻合!现在相信大家已经对大模型的文件组成和生成原理有了扎实的理解,给自己点个赞吧!

以上完整代码大家可以关注笔者的同名微信公众号大模型真好玩,并在公众号私信:大模型训练免费获取。

四、总结

本文分享了大模型的核心文件组成与生成原理,并通过实战演示了从加载模型到获取回复的完整流程,帮助大家真正理解大模型的核心工作机制。

实际开发中,我们不会每次都通过NoteBook编写代码,常需将模型部署为API服务以便快捷访问。下篇分享笔者将介绍如何使用vLLM、Ollama等框架,快速将模型文件转化为可便捷调用的应用接口。大家一起期待吧~ 大家读完感兴趣可以关注笔者的同名微信公众号:大模型真好玩,获取本系列分享以及其它系列分享的全部内容。

大模型训练对计算资源有一定要求,尤其是GPU显存。为降低学习门槛,笔者与国内主流云平台合作,大家可以通过打开链接: https://www.lab4ai.cn/register?agentID=user-XorgKKc56U ,体验H100 GPU 6.5小时的算力。本系列所有实战教程均将在该平台上完成,帮助大家低成本上手实践。

除大模型训练外,笔者也在同步更新《深入浅出LangChain&LangGraph AI Agent 智能体开发》免费专栏,要说明该专栏适合所有对 LangChain 感兴趣的学习者,无论之前是否接触过 LangChain。该专栏基于笔者在实际项目中的深度使用经验,系统讲解了使用LangChain/LangGraph如何开发智能体,目前已更新 36 讲,并持续补充实战与拓展内容。欢迎感兴趣的同学关注笔者的CSDN账号与专栏,也可关注笔者的同名微信公众号大模型真好玩,每期分享涉及的代码均可在公众号私信:LangChain智能体开发免费获取。

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

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

相关文章

BGE-Reranker-v2-m3部署实战:跨语言信息检索优化案例

BGE-Reranker-v2-m3部署实战&#xff1a;跨语言信息检索优化案例 1. 引言 在当前的检索增强生成&#xff08;RAG&#xff09;系统中&#xff0c;向量数据库的初步检索虽然高效&#xff0c;但常因语义模糊或关键词误导而返回相关性较低的结果。这种“搜不准”问题严重影响了后…

BongoCat桌面萌宠:让虚拟猫咪为你的数字生活注入无限欢乐

BongoCat桌面萌宠&#xff1a;让虚拟猫咪为你的数字生活注入无限欢乐 【免费下载链接】BongoCat 让呆萌可爱的 Bongo Cat 陪伴你的键盘敲击与鼠标操作&#xff0c;每一次输入都充满趣味与活力&#xff01; 项目地址: https://gitcode.com/gh_mirrors/bong/BongoCat 你是…

YOLOv10推理只需2.1ms!Orin设备实测达180FPS

YOLOv10推理只需2.1ms&#xff01;Orin设备实测达180FPS 1. 引言&#xff1a;实时目标检测的新标杆 在边缘计算与工业视觉系统日益普及的今天&#xff0c;目标检测模型的推理速度、部署复杂度和精度平衡成为决定项目成败的关键因素。随着 YOLOv10 的发布&#xff0c;这一领域…

10分钟掌握LeetDown:iOS设备降级工具的完整实战指南

10分钟掌握LeetDown&#xff1a;iOS设备降级工具的完整实战指南 【免费下载链接】LeetDown a GUI macOS Downgrade Tool for A6 and A7 iDevices 项目地址: https://gitcode.com/gh_mirrors/le/LeetDown 你是否还在为iPhone 5s、iPad 4等老设备运行最新iOS系统时卡顿不堪…

ST7735液晶控制器工作原理通俗解释

玩转小屏幕&#xff1a;ST7735液晶控制器是怎么把像素“画”出来的&#xff1f;你有没有想过&#xff0c;一块小小的1.8寸彩屏&#xff0c;是怎么在STM32、ESP32甚至Arduino上跑出漂亮图形的&#xff1f;背后功臣之一就是ST7735——这个看似不起眼、实则大有来头的液晶驱动芯片…

从0开始学人像修复:用GPEN镜像打造专业级画质提升

从0开始学人像修复&#xff1a;用GPEN镜像打造专业级画质提升 随着深度学习在图像增强领域的不断突破&#xff0c;人像修复技术已广泛应用于老照片复原、社交媒体美化、安防监控等多个场景。然而&#xff0c;搭建一个稳定可用的修复环境往往需要复杂的依赖配置和模型调试过程。…

手势识别安全部署:云端GPU+加密推理全方案

手势识别安全部署&#xff1a;云端GPU加密推理全方案 在金融、支付、身份验证等高安全场景中&#xff0c;手势识别正逐渐成为一种新型的身份认证方式。相比密码、指纹或人脸识别&#xff0c;手势识别具备更高的交互自由度和一定的防窥探能力——比如用户可以在屏幕上画出特定轨…

Thief摸鱼神器终极指南:如何高效使用跨平台办公助手

Thief摸鱼神器终极指南&#xff1a;如何高效使用跨平台办公助手 【免费下载链接】Thief 一款创新跨平台摸鱼神器&#xff0c;支持小说、股票、网页、视频、直播、PDF、游戏等摸鱼模式&#xff0c;为上班族打造的上班必备神器&#xff0c;使用此软件可以让上班倍感轻松&#xff…

Steam DLC免费解锁秘籍:实战技巧与零基础操作指南

Steam DLC免费解锁秘籍&#xff1a;实战技巧与零基础操作指南 【免费下载链接】SmokeAPI Legit DLC Unlocker for Steamworks 项目地址: https://gitcode.com/gh_mirrors/smo/SmokeAPI 想要完整体验Steam游戏的所有DLC内容&#xff0c;却不想花费额外的金钱&#xff1f;…

跨平台哔哩哔哩工具箱完整使用指南:从新手到高手的终极教程

跨平台哔哩哔哩工具箱完整使用指南&#xff1a;从新手到高手的终极教程 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱&#xff0c;支持视频、音乐、番剧、课程下载……持续更新 项目地址: https://gitcode.com/GitHub_Trending/bilit…

通义千问3-14B性能优化:A100推理速度提升秘籍

通义千问3-14B性能优化&#xff1a;A100推理速度提升秘籍 1. 引言 在当前大模型落地实践中&#xff0c;推理效率已成为决定用户体验和部署成本的核心指标。尽管参数规模不断攀升&#xff0c;但像 Qwen3-14B 这类“中等体量”模型凭借其“单卡可跑、双模式切换、长上下文支持”…

2026 AI 新风口:告别 Prompt Engineering,Agent Skills 才是智能体的“杀手级”进化

Agent Skills正在重塑AI与外部世界的交互方式&#xff0c;从静态的工具调用升级为动态的技能封装。本文将深度解析Anthropic、Microsoft和OpenAI三大技术路径的差异&#xff0c;揭示Model Context Protocol(MCP)如何解决互操作性难题&#xff0c;并展望2026年技能经济的爆发式增…

FanControl技术解析:多维度风扇控制系统的深度应用实践

FanControl技术解析&#xff1a;多维度风扇控制系统的深度应用实践 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/f…

BGE-M3实战:构建个性化新闻聚合平台

BGE-M3实战&#xff1a;构建个性化新闻聚合平台 1. 引言 在信息爆炸的时代&#xff0c;用户每天面对海量新闻内容&#xff0c;如何高效筛选出与其兴趣高度相关的资讯成为个性化推荐系统的核心挑战。传统关键词匹配方法难以捕捉语义层面的相似性&#xff0c;而单一的嵌入模型又…

BongoCat桌面伴侣:你的数字工作伙伴养成指南

BongoCat桌面伴侣&#xff1a;你的数字工作伙伴养成指南 【免费下载链接】BongoCat 让呆萌可爱的 Bongo Cat 陪伴你的键盘敲击与鼠标操作&#xff0c;每一次输入都充满趣味与活力&#xff01; 项目地址: https://gitcode.com/gh_mirrors/bong/BongoCat 你是否曾经想过&a…

Qwen3-4B-Instruct-2507为何选择vllm?高性能推理部署教程

Qwen3-4B-Instruct-2507为何选择vLLM&#xff1f;高性能推理部署教程 1. 引言&#xff1a;Qwen3-4B-Instruct-2507与高效推理的挑战 随着大语言模型在通用能力、多语言支持和长上下文理解方面的持续演进&#xff0c;如何将这些先进模型高效部署到生产环境中成为工程实践中的关…

如何用Groove音乐播放器打造专属音乐空间?新手必看完整指南

如何用Groove音乐播放器打造专属音乐空间&#xff1f;新手必看完整指南 【免费下载链接】Groove 项目地址: https://gitcode.com/gh_mirrors/gr/Groove 还在为杂乱无章的音乐文件烦恼吗&#xff1f;Groove音乐播放器或许就是你一直在寻找的解决方案。这款开源音乐软件专…

彻底突破NVIDIA显卡风扇转速限制的完整解决方案

彻底突破NVIDIA显卡风扇转速限制的完整解决方案 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/FanControl.Relea…

Open Interpreter DevOps集成:CI/CD流水线自动化部署

Open Interpreter DevOps集成&#xff1a;CI/CD流水线自动化部署 1. 引言 随着AI在软件工程中的深度渗透&#xff0c;开发运维&#xff08;DevOps&#xff09;正迎来一场由自然语言驱动的自动化革命。传统的CI/CD流程依赖于脚本编写、人工审核与固定模板&#xff0c;而Open I…

Sambert-HifiGan vs Tacotron2:中文语音合成效果大比拼

Sambert-HifiGan vs Tacotron2&#xff1a;中文语音合成效果大比拼 1. 引言 1.1 语音合成技术的发展背景 随着人工智能在自然语言处理和语音信号处理领域的深度融合&#xff0c;文本到语音&#xff08;Text-to-Speech, TTS&#xff09;技术已从实验室走向大规模工业应用。尤…