您现在的位置是:网站首页> AI人工智能
AI大模型、数据集相关应用技术
- AI人工智能
- 2026-11-09
- 2309人已阅读
AI大模型、数据集相关应用技术
标签数据与QA(一问一答)数据
一个 7b 的模型通常是指该模型具有 70 亿个参数
模型增量微调、外挂知识库

输入文字,自回归,逐个猜下一个 token(文字碎片),核心是 Transformer
大语言模型LLM文字推理原理:输入文字转数字 token → 转为向量 + 位置编码 → 多层注意力 + 前馈网络,利用海量权重做矩阵运算,捕捉上下文关联 → 算出下一个词的概率 → 采样选出一个词 → 把新词放回上下文,循环计算,逐字输出,直到结束。
AI模型的格式有哪些文件后缀分别是啥及各种格式模型的使用方法
大语言模型工作过程详细介绍下比如输入:你好北京。模型如何输出
**总数是一开始就定死的**,训练过程不会增加、也不会减少权重的数量
### 大白话讲
搭神经网络的时候,先设计网络结构:有多少层、每层有多少神经元、层和层之间怎么连接。
这套结构一敲定,**权重的总个数直接算出来,固定死了**。
举个简单例子:输入 100 个信号,下一层有 50 个神经元,全连接,那这里权重就是 100 × 50 = 5000 个。
放到大模型里:Transformer 的头数、隐藏层维度、层数(比如 32 层,隐藏维度 4096)这些参数定下来,70 亿个权重就已经确定了。
这就是我们说的 **7B、13B、70B**。
> ✅ 训练做的事情:**只改格子里面的数字(权重值),不新增、不删除格子**
> 就像一本固定行数、固定列数的笔记本,本子大小(格子总数)出厂就做好了;训练只是反复擦掉、改写每一格里面的数字。
大语言模型工作过程详细介绍下比如输入:你好北京。模型如何输出
先定好固定不变的东西(推理全程不动)
1. 词表(tokenizer,独立小文件):翻译字典:文字 ↔ token 数字 ID,**不参与乘法计算**
2. 模型权重(gguf/safetensors 里的一堆张量矩阵:embedding、Q/K/V、FFN、LM Head):只读,**只用来做乘法**;权重的格子数量固定不变,只是数字可以是 f16 / Q4_K_M 等版本。
3. 网络图纸 config:层数、隐藏维度、注意力头数,告诉程序矩阵长啥样。
> 一句话主线:
> 模型不能直接看懂汉字。它只认识一串数字 ID。每一轮,它**只预测紧接着后面 1 个 token**,然后把这个 token 加到尾巴,再预测下一个,循环。
> 输入:你好北京;我们目标:看它怎么吐出第一个字,再持续生成。
---
# 步骤 1:分词翻译(Tokenizer,不碰权重)
输入文本:`你好北京`
分词器(BPE)按它自带的词表切成 token,假设结果:
你 → ID: 2341
好 → ID: 5720
北 → ID: 8811
京 → ID: 9005
✅ 本步输出:一串数字序列
`[2341, 5720, 8811, 9005]`
✅ 记住:这一步只是查表翻译,**没有神经网络计算**。
# 步骤 2:ID → 向量(Embedding 查表 + 位置编码,第一次用到权重)
我们有一张权重矩阵:embedding 矩阵(在模型文件里)
行号 = token ID;一行 = 一串小数向量(比如 4096 个小数)。
操作:
拿每个 ID,取出对应那一行数字:
2341 → 向量 A(“你”)
5720 → 向量 B(“好”)
8811 → 向量 C(“北”)
9005 → 向量 D(“京”)
现在我们得到 4 个向量:`[A, B, C, D]`
> 神经网络不知道先后顺序!
> 再加【位置编码】:给 A 打上标记:第 1 位;B:第 2 位;C:第 3 位;D:第 4 位。
✅ 本步输出:带先后顺序标记的向量序列 `[A₁, B₂, C₃, D₄]`
下标数字 = 位置编号。
# 步骤 3:送入 Transformer 多层主干(核心,大量矩阵乘法)
假设模型有 32 层 Transformer 层,一层一层接力处理这一组向量。
**每一层内部固定两个模块:多头自注意力 → FFN 前馈网络**
输入给一层的是:`[A₁, B₂, C₃, D₄]`
### 3.1 多头自注意力(找词和词之间的关联)
用 3 套权重矩阵 Wq、Wk、Wv(都在模型文件里)做乘法:
每个向量分别算出:
Q(查询:这个词想去匹配谁)
K(键:这个词可以被谁匹配)
V(值:这个词携带的内容信息)
然后计算:Q 和 K 的相似度。
例子:
对于向量 D(京,第 4 个):它会发现 C(北)和它相似度很高,A、B(你、好)相似度低。
⚠️ 因果掩码(单向约束,非常关键)
处理第 4 号向量的时候,**只能看 1、2、3、4 号,看不到后面还没生成的内容**。防止作弊偷看未来。
相似度分数 × V,得到一组融合了上下文关系的新向量。
### 3.2 FFN 前馈网络(学习语言规律)
注意力只负责找谁和谁有关系;
FFN 负责单独改造每一个向量,把训练学到的语言习惯、常识、句式规律编码进去,依然是权重矩阵乘法。
✅ 一层处理完,输出一组更新后的向量,交给下一层。
✅ 32 层全部跑完之后,我们只取**最后那一个向量,也就是 “京” 经过全部上下文融合后的向量**。
> 为什么只拿最后一个?我们要预测【京后面紧跟着的下一个 token】。
> KV 缓存(优化,不改变原理)
> 这一轮算出的 K、V 向量存起来。后面新增 token 的时候,前面这 4 个词的 K、V 不再重算,直接复用,提速。
✅ 本步输出:一个 4096 维的融合向量
# 步骤 4:LM Head 输出头,算出全部候选 token 的分数
拿上面这个融合向量,乘上最后一套权重矩阵 LM Head。
输出一长串数字,叫 logits。
长度 = 词表总大小(例如 32000 个)
每一个位置对应词表里一个 token 的原始得分。
举例:
索引 1205(逗号) → 分数最高
索引 4421(欢) → 分数第二
索引 6633(啊) → 分数第三
……
logits 只是相对高低分,**不是概率**。
✅ 本步输出:长度 32000 的分数列表 logits
# 步骤 5:Softmax + 采样,选出 1 个 token
1. Softmax:把 logits 转换成概率,全部概率相加 = 1
逗号:0.38
欢:0.11
啊:0.05
……
2. 根据温度 temperature、top_p 规则,从概率分布里挑出一个 token。
温度低:优先选最高分;温度高:允许选低分,更有创意。
假设这次选中:逗号,ID=1205
✅ 本步输出:第一个生成 token:ID=1205,对应文字 `,`
> 到这里,模型吐出了第一个输出字符!
---
# 步骤 6:自回归循环(反复执行步骤 2~5,这是 LLM 最独特的地方)
把刚刚生成的 token 追加到原来序列尾巴:
旧序列:`[2341, 5720, 8811, 9005]`
新序列:`[2341, 5720, 8811, 9005, 1205]`
现在上下文变成:你好北京,
现在只需要计算新增的这个逗号对应的向量,前面四个词的 K/V 直接读缓存,不用重算。
再跑一遍 Transformer → LM Head → 采样,选出下一个 token,比如 `欢`。
序列变长:你好北京,欢
继续循环,选出 `迎`
序列:你好北京,欢迎
继续循环……
循环停止条件二选一:
1. 抽到特殊 EOS 结束符(结束标记 token)→ 停止
2. 达到你设置的最大生成长度 → 强制停止
---
# 步骤 7:全部生成结束后,反向翻译
把所有生成出来的 token ID,一次性交给 tokenizer,转回汉字。
比如最终 ID 序列翻译成文字:
`你好北京,欢迎来到这座城市。`
---
## 极简流水线(可以直接对照)
```
文字【你好北京】
↓ tokenizer(查表,无计算)
ID序列 [2341,5720,8811,9005]
↓ Embedding权重查表 + 位置编码
带位置的向量序列 [A₁,B₂,C₃,D₄]
↓ 32层Transformer(注意力+FFN,矩阵乘法)
最后一个融合向量
↓ LM Head权重乘法
logits 全词表分数列表
↓ softmax + 采样
选出下一个token(比如逗号)
↓ 追加到序列尾部,循环上面流程
直到EOS / 达到长度上限
↓ tokenizer反向翻译
最终文字输出
```
## 重点易错点再强调一遍
1. 不是一次性算出整段回答!**一轮只产生 1 个 token**,循环变长。
2. embedding、QKV、FFN、LM Head 全都是权重矩阵,都在 gguf 文件里;量化(Q4_K_M)只是里面小数存得粗略一点,流程完全不变。
3. tokenizer 和权重是两套独立东西:tokenizer 只管文字↔ID,不参与神经网络乘法。
4. 模型没有 “理解语义”,只是用训练调好的权重,根据海量文本统计规律,算出 “这个位置后面最可能是什么片段”。
咱们用**一个猜答案的 AI 小助手**来打比方,通俗讲权重:
你可以把大模型想象成一张**超级巨大的打分表**,**权重就是表格里每一格的分数**。
举个最简单的例子:
AI 要判断一句话是不是在问天气。
它会看一堆词:
“下雨”、“气温”、“几点”、“吃饭”、“球赛”
AI 心里有打分:
- 看到 “下雨” → 加很多分(这个词和天气高度相关)
- 看到 “气温” → 加不少分
- 看到 “吃饭” → 几乎不加分
- 看到 “球赛” → 甚至减分
👉 **这里每一个加多少、减多少的数字,就是权重!**
---
再升级一点,不是简单单词匹配:
大模型不是只认单词,它看的是**成千上万种细微特征组合**:
某个词放在句子开头重要程度是多少、这个词跟着另一个词出现的时候要调高多少、问句结尾的语气该怎么加权……
每一条这种 “重要程度数值”,全部都是权重。
### 核心一句话
**权重 = AI 脑子里记住的「各个信息有多重要」的数字**
数字大 = 这个线索很关键;数字小 = 这个线索不重要;负数 = 这个线索会反向误导判断。
### 串联你前面学过的内容
模型训练的时候,就是不停调整这几十万、几十亿个权重数字,慢慢调到能答对问题。
- 7B 模型 = 一共有 **70 亿个权重数字**
- f16 / Q4_K_M / INT8 = 规定:这每一个 “重要程度数字”,用多大精度、多大盒子去存
- f16:精细记录这个数字(比如 0.7352),准、占空间大
- Q4_K_M:粗略近似存这个数字,省空间,轻微不准
### 补充两个很好懂的比喻,选一个你喜欢:
比喻 1(天平版):
AI 做推理就是一台有上亿个砝码的天平,**权重就是砝码的重量**。不同线索放上来,砝码重量不一样,最后天平偏向哪个答案,AI 就输出哪个。
比喻 2(听歌调音台):
调音台一大堆推子,每个推子代表一条信息,**推子的位置数值就是权重**。拉高推子 = 放大这个信息的影响,拉低 = 减弱它。大模型就是有几十亿根推子的巨型调音台。
### 一个误区纠正
权重**不是文字、不是知识本身**!
它不会直接存 “地球是圆的” 这句话。
它存的是一堆数字组合,当你提问的时候,靠这些数字互相运算,**推算出正确答案**。
就像厨师记住的不是成品菜,而是:盐放多少、糖放多少、火候多大(这些配比数字就是权重)。
基础知识
标签数据与QA(一问一答)数据
标签数据:包含数据分类和分类标签
f16、Q4_K_M 不是模型的 “能力参数”(不是 7B、13B 这种),它是【存数字的盒子规格】。
先搞懂底层:
大模型本质就是一大堆**小数(权重数字)**,模型思考全靠这堆数字。
7B、13B = 一共有多少个数字(数字越多越聪明,这个是固定的,不会因为转换改变!)
👉 **f16 / Q4_K_M = 每个数字,用多大的盒子去装它。盒子越小,装得越粗糙,占地方越小、跑起来越快。**
再划重点,区分两套完全独立的东西,很多人就是这里搞混:
1. **7B / 13B / 34B**:模型有多少个数字(【智商规模】,转换的时候**永远不变**)
> 比如一个 7B 模型,不管转 f16 还是 Q4_K_M,它永远是 7B,不会变成别的。
2. **f16 / Q5_K_M / Q4_K_M / Q3_K_M**:装每个数字的盒子大小(【存储精度】,就是我们现在说的这个,转换工具就是换盒子)
> 换盒子,**不会增加或者减少数字的数量,只是每个数字记录的精细程度变了**
模型大小单位
这里的 B = Billion,十亿
- **K** = Kilo,千 → 1K = 1000 个参数
- **M** = Mega,百万 → 1M = 100 万参数
- **B** = Billion,十亿 → 1B = 10 亿参数
- **T** = Trillion,万亿 → 1T = 1 万亿参数
例子:
- 1.5M = 150 万参数(很小的小模型)
- 7B = 70 亿参数(最常见的家用模型)
- 70B = 700 亿参数
- 1T = 1 万亿参数(超大模型,个人电脑跑不动)
✅ 重点:这里的 K/M/B/T 是**数权重的个数**,和硬盘文件大小无关!
同一个 7B 模型,做成 f16、Q4_K_M,参数量依旧是 7B 不变,只是文件体积变了。
每个权重的单位除f16 Q4_K_M还有哪些
- f16 /bf16(int8 、int16、int32...):没有压缩,原盒,f32太大基本不用
- Q6_K/Q5_K_M/Q4_K_M/Q3_K_M:K 系列新式压缩,优先选
- Q4_0:古董压缩,别碰
- GPTQ/AWQ:是另外一套压缩标准,不是 GGUF 后缀
权重的原生与量化
###原生(bf16 /f16 /f32)
原生 = **模型训练完,出厂原本的存储方式,没有做有损压缩**
类比:相机直出的 RAW 原图,所有色彩信息都保留,画质最好,文件巨大。
注意:bf16、f16 都属于原生浮点,只是两种不同的 “原生记录格式”,它们本身**不属于量化**。
### 量化(Q4_K_M、Q5_K_M、IQ4_XS 这些带 Q 的)
量化 = **有损压缩**
量化工具就做一件事:**把一大堆相近的小数,合并成少数几个代表值,用更少的比特去记录**。
不再精准记录原始数字,只存一个近似值。
## 关键 2 句话,区分边界
1. **原生:不压缩,原汁原味,精度最高,体积大**(f16 / bf16)
2. **量化:压缩近似存储,省空间、提速,牺牲一点点精度**(所有带 Q 的)
拆开:**Q 4 K M**,逐个大白话解释
- **Q** = Quantize,量化(代表这是压缩版本,不是原生 f16/bf16)
- **4** = 基础是 **4 比特** 存储(每个权重用 4bit 来存,原生 f16 是 16bit)
- **K** = K-quant,llama.cpp 自研的一套新式量化算法
老版本是 Q4_0、Q4_1;K 算法更聪明:它会把权重分块,**每一块单独算缩放系数**,损失更小,现在主流都用 K。
- **M** = Medium,中等档位(K 系列固定三档:S / M / L)
- S = Small 小块:压缩更狠,文件更小,质量稍微差一点
- **M = Medium 中等:平衡体积、速度、效果,最通用首选 ✅**
- L = Large 大块:保留更多细节,效果更好,但文件更大一点
一般企业选模型训练
模型大小(一般指参数大小)
1-3b 500条可见效果
6-8b 1000条可见效果
70b以上模型
模型常到huggingface,魔塔社区
模型私有定制化:
rag 外挂知识库(检索的方式来增强生成模型能力)
(离线处理:索引库开发,给出的答案:具备可解释性)
文本向量化(OpenAI SDK 可以文本向量化维度可以达几千)
文本转向量用到的模型文章:https://sbert.net/
Sentence Transformers(又名 SBERT)是用于访问、使用和训练最先进的文本和图像嵌入模型的首选 Python 模块。
fine-tuning 模型微调【难】
( 预训练模型+私有化数据+训练-》微调后的模型 ,高质量数据,训练数据,验证数据,测试数据)
微调1W数据可以看到效果
pre training 增量训练
funtion calling 调用现有的企业业务接口api
主要时间用在数据准备:
数据采集,清洗,标注
上一篇:优秀的AI开源项目&模型
下一篇:❤大模型使用技术收集❤