大模型学习问题汇总
2026/6/13 22:04:53 网站建设 项目流程

目录

提示词工程

LLSTM 与LLM

loRA微调底座是什么

什么是量化?和 HuggingFace 模型有什么不一样?原理分别是什么?

✅ HuggingFace 模型(标准)

✅ 量化模型(以 INT4 为例)

量化、蒸馏的区别

步骤 1:找最大值和最小值

步骤 2:映射到 0~15(4bit 能表示的数)

deepseek-r1:7B 是什么意思?

7B 模型里包括:

INT4 / 4bit / FP16 到底是什么?

INT4 跟 Java 的 int 是一回事吗?Java 的 int 是多少位?

70 亿参数是不是“人类语言所有词的权重、词向量映射”?

蒸馏:大模型怎么教小模型?小模型不含废话?有推理能力吗?蒸馏后多大?

模型训练好后还会再变吗?

为什么我们学习transformer持久化是只保存词向量,而不保存权重参数等?也就7B的大模型是怎么提取参数的?

7B参数中保存的自注意力里的 Q/K/V 矩阵到底干嘛用?

什么是微调?

在ollama中用的这个7B大模型是蒸馏后的?还是量化后的?还是完整的大模型?

ollama 哪种模型能做视频、图片、音频、文件分析?

目前的ollama中的大模型,能支持的上下文是多少?支持迭代对话吗?

企业生产级用什么样的机器,模型,能够实现秒级回复?

推理框架和推理模型啥区别?

怎么调整ollama上的模型参数

GPU与显卡、显存、cpu


总结下Agent家族的名词

由下而上的介绍下

大模型硬件瓶颈

主要是两个,一个是GPU,一个是内存带宽。前者负责计算,后者负责搬运。

传统java项目怎么转ai项目?

1.建议就是原有的功能不变,在此基础上,给传统数据库表加ai相关字段,通过embadding大模型把数据转成向量,通过springai的vectorstore的similar相似度查询方法检索,这个方法可以加入temperature,topK等模型参数。其实上面这些就是在做rag,检索出来的结果再加上系统提示词,一并交给大模型输出自然语言形式的结果。

2.不过我听说有一种方法可直接指定数据库,连rag都不用做。ai了一下,这种方式是把数据库的scheme(就是所有表结构)给大模型,加上提示词,让模型返回sql,然后我们再用sql精准查询数据,把查出来的结果再喂给大模型总结就行了。很简单。但是要做好测试,比如说我们得scheme表述不准确,ai不能很好的理解,进而给出正确的sql,出现幻觉,乱答的情况。还要做好权限控制,专门给ai加个数据库账号,限制最多只能查1000条,且只有读权限。

此外,如果上下文很多的话,还是要做rag检索的,目前大大模型能支持的上下文也就几十,一百多k。所以,如果表数据很大,还是要先做一边rag检索再处理的。

AI应用开发部分

transformer:这是核心算法,当前的大模型基本都是以transformer为核心的

RAG+embaddin词向量:当前最火的名词就是RAG了,因为作为微调,它很适合融合大模型和企业私密数据做大模型微调,而且也能够延长上下文。

loRA: 也是微调,跟RAG是同一级别的。跟rag的区别是把私密数据融到大模型中,我们自己生成一个专业性质的大模型。相对于rag,回答的应该更准确

tool:以大模型为基础,实现特定的功能,比如说访问指定浏览器查询接口。再通过大模型对返回的数据结构化输出。

skill:融合了多个tool,是一个工具包

langChain:以工作流的形式分多个步骤完成任务

langGraph: 在langchian的基础上,加上判断和往复自检处理,构成图处理流程

工作流:在langGraph基础上再加上人工审批、任务调度、限流熔断等

这就构成了一个很智能的agent了。

AI算法部分

  • 提示词工程

提示词工程,这是最为广泛讨论的名词和领域了。什么是提示词,就是跟AI对话的内容。 也即是说话,搁这儿成了提示词了。

  • 提示词最重要的是什么?结构化。 也就是分段,就像我们写word,ppt一样,文章结构清晰,一目了然是不是比一大堆文字读起来更容易理解?那ai也是的。

其实这里涉及到底层代码中最主要的是一个模型的attention子注意力机制,结构清晰能省去了模型猜的过程,能够让注意力更集中。

  • 那什么样的提示词更容易让ai理解呢?有什么范本吗? 答案是没有定死的结构,而是在编程领域说的较多的“约定”。

这里有业界约定公式如下:

## Role(一句话定人格) ## Context(背景事实,喂给模型的信息) ## 任务(用户要你做什么 / 你希望模型做什么) ## 约束(禁区:不要解释 / 不要问反问 / 不要捏造) ## 输出格式(给模板 > 给描述) ## 示例(2~3个 few-shot,覆盖正常+边界)
  • 然后常用结构化的分割符,有三大派:

流派

写法

适用场景

代表

Markdown 标题

## Section

人可读性强,够用

你的例子、多数开源

XML 标签

<tools>...</tools>

边界更硬、嵌套友好

Anthropic Claude 官方推荐

特殊 token

`<

im_start

>system...`

  • 比如说xml的:
<system> 你是一个电脑助手。 </system> <tools> [ {"name": "open_app", "parameters": {"name": "string"}} ] </tools> <output_format> 必须输出 JSON:{"action": ..., "parameters": {...}} </output_format> <rules> - 只输出 JSON - 不编造 action </rules>
  • 然后这儿还有个md格式的实例,

功能是让大模型打开浏览器,返回指定的json格式,json中包含操作的软件名和搜索的内容,是一个agent操作:

`你是一个电脑助手,负责将用户的自然语言指令转化为结构化的操作。 ## 可用操作 ${toolDescriptions} ## 输出格式 你必须以 JSON 格式输出,不要输出其他任何内容: { "action": "操作名称(从上面的列表中选择)", "parameters": { "参数名": "参数值" } } ## 规则 1. action 必须从可用操作列表中选择 2. parameters 必须包含该操作所需的所有必填参数 3. 如果用户只是闲聊,没有操作意图,使用 action: "chat" 4. 只输出 JSON,不要有任何解释、注释或 markdown 标记 5. 如果用户说的不明确,尽量选择最合理的操作`
  • 名词汇总

dify、charrystudio,rag,embadding,lang chain,agent,finetuning,stf,langGrap,模型推理xInference,蒸馏,语言模型,向量模型,嵌入模型,reranker重排序

  • 任务

llm信息抽取任务,给案例,然后输出制定json格式

什么是soft prompt软提示

  • LLSTM 与LLM

LLM:(Large Language Model)在大模型中的全称是“大型语言模型”。

LLSTM是“Large Language Model with Long Short-Term Memory”的缩写,即“大型语言模型结合长短期记忆网络”。

所以LLSTM是LLM+LSTM.

LSTM是一种特殊的循环神经网络(RNN),特别适用于处理序列数据,如文本、语音等。LSTM通过引入门控机制(输入门、输出门、遗忘门)来控制信息的流动,从而能够更好地捕捉和处理长距离依赖关系,避免了传统RNN中梯度消失或爆炸的问题。

也就是LLM是理解和生成语言的。LSTM是处理上下文的。

  • loRA微调底座是什么

大模型可直接理解为两类,一个是成品,比如说ollama上的大模型;一个是可开发的,比如说HuggingFace上的大模型。前者不能做二次,开发后者可以。所以我们做微调时,常用后者,也就是我们微调的底座模型,并且后者要比前者要大很多,因为源码都解压缩了。

  • 什么是量化?和 HuggingFace 模型有什么不一样?原理分别是什么?

✅ HuggingFace 模型(标准)

  • 权重通常是float16 / bfloat16

  • 每个参数占2 字节

  • 7B 模型 ≈ 14GB 显存

✅ 量化模型(以 INT4 为例)

  • float16权重映射成低比特整数(INT8 / INT4)

  • 比如 4bit → 每个参数0.5 字节

  • 7B 模型 → ~4~5GB 显存

  • 微调后的 LoRA 模型怎么融入 Ollama 中?

底座模型+我们的微调后的输出模型

合并二者的命令:

# 示例 python merge_lora.py \ --base_model path/to/llama-7b-hf \ --lora_path path/to/lora-adapter \ --output path/to/merged-model

再使用llama.cpp 把合并后的模型上传到ollama,就能使用了。

  • 所以ollama上的参数是不能改的,才需要微调处理
  • 量化、蒸馏的区别

好好理解量化的意思:就是同比例缩放数据精度和大小。 模型结果是不变的。达到体量变小了,使用时再还原。

LoRA 微调可用HF 原始模型(大显存)或 HF 量化模型(小显存/QLoRA)

量化 = 低精度存储权重,结构不变;蒸馏 = 训一个小模型模仿大模型

Ollama 原模型不可微调,需 HF 上微调 → merge → GGUF → Ollama

量化工具是对已有大模型权重做数值压缩,不是从大模型"抽取"出新模型

  • 说一下压缩的过程:比如我们要保存训练好的权重参数,这个是很大的,正常保存的格式是fp16格式,我的理解就是浮点型。比如说:
import torch weight = torch.tensor([ [0.2314, -1.3421, 0.8821], [-0.1132, 0.7742, -0.0011] ], dtype=torch.float16)

每个数:16 bit , 也就是 2bytes

占用空间:

2 bytes × 6 = 12 bytes

  • 而量化 (以 INT4 为例)

步骤 1:找最大值和最小值

w_max = weight.max() w_min = weight.min()

步骤 2:映射到 0~15(4bit 能表示的数)

以为int4能表示数据的范围和精度都很小,所以要做缩放

scale = (w_max - w_min) / 15 quantized = torch.round((weight - w_min) / scale)

现在变成:

tensor([[ 3, 0, 13], [ 7, 11, 8]])

每个值只用 4 bit 存。推理时再反量化。

后面会讲fp16与INT4的区别。

deepseek-r1:7B 是什么意思?

就是7billion,7B = 70 亿个参数 参数 = 模型里的权重矩阵里的数字

7B 模型里包括:

  • Attention 的 Wq / Wk / Wv / Wo

  • FFN 的 up / gate / down

  • embedding 层

  • layer norm(极少)

也就是把训练过程中嵌入层、神经层、自注意力层,反馈层的整个对象都保存下来了。

并且 不包括训练数据、数据库词向量。

INT4 / 4bit / FP16 到底是什么?

类型

位数

能表示多少个数

FP16

16 bit

浮点数

INT8

8 bit

256 个整数

INT4

4 bit

16 个整数

7B 是 70 亿个 fp16 权重;量化是把这些权重用 4bit 存起来;蒸馏是用 7B 教一个 1B 的新模型从头学。

INT4 跟 Java 的 int 是一回事吗?Java 的 int 是多少位?

完全不一样

类型

位数

是否有符号

用途

Javaint

32 bit

✅ 有符号

通用整数运算

LLM 的 INT4

4 bit

✅ 通常有符号(-8~7)

压缩权重

更形象的说LLM的INT4是打包处理,把一堆数放一块存储,一点空间都不浪费啊。

而java int是独立变量 固定32位 4字节,即使数很小也要占那么大空间。

  • 70 亿参数是不是“人类语言所有词的权重、词向量映射”?

基本上不是。 前面说了大部分存放的不是词,而是词的向量、权重、关系、特征变换(就行tranformer中的q、k、v 等一堆矩阵)

组件

作用

占比

Embedding

词 → 向量

~1%

Attention

词之间关系

~50%

FFN

特征变换 / 记忆

~49%

蒸馏:大模型怎么教小模型?小模型不含废话?有推理能力吗?蒸馏后多大?

待定

模型训练好后还会再变吗?

不变了,要通过微调才行。

为什么我们学习transformer持久化是只保存词向量,而不保存权重参数等?也就7B的大模型是怎么提取参数的?

这个不好说,以为关注点不一样,总之要提取Embedding、Attention、FFN

7B参数中保存的自注意力里的 Q/K/V 矩阵到底干嘛用?

这些矩阵 = 模型“怎么理解语言”的全部记忆

比如:

  • QK 矩阵:决定“谁关注谁”

  • V 矩阵:决定“关注到什么信息”

  • O 矩阵:决定“这些信息怎么合成输出”

什么是微调?

新模型= 成熟大模型:70B 参数(冻结 or 不全调)+微调:只改其中一小撮参数(LoRA)

在ollama中用的这个7B大模型是蒸馏后的?还是量化后的?还是完整的大模型?

量化后的,这样体量只有原先的30%多,很适合个人电脑使用。Ollama 的模型标签已经把底细写得明明白白,q4、q8、q4_K_M这些后缀,指的就是量化精度

为啥不用蒸馏的方式呢? 蒸馏缩小了参数,很可能效果不好。

ollama 哪种模型能做视频、图片、音频、文件分析?

Ollama 里能做“图片、视频、音频、文件分析”的,不是某一个 7B 文本模型,而是专门的多模态模型;普通 7B 文本模型只能做文件分析,不能直接看图、听声音或看视频。

总之 要用多模态模型,比如qwen2.5vl。 能做视频、文件、图片。不能做语音。

目前的ollama中的大模型,能支持的上下文是多少?支持迭代对话吗?

很遗憾 几十k,16k、32k。而且达到达到十几k时就很慢了

看接口,/api/chat接口支持迭代对话, 但是他的原理是打包历史的所有对话,一起送给模型。所有很low。也意味着支持不了多少轮对话。

因此企业上都是用RAG 或者微调处理。

企业生产级用什么样的机器,模型,能够实现秒级回复?

首先,企业级的部署跟我们本地个人使用的ollama是很不一样的。

  • 区别在于:大家用的模型是一样的,也就是都可以用deepseek-r1:7b模型。但是主要区别是推理引擎(或者说是推理框架)和硬件不一样。

企业级的推理引框架用vLLM,底层技术是(PagedAttention + 连续批处理),这个咱也不懂。反正适合企业高并发标准答案。

  • 至于硬件,也就是GPU,我的个人电脑GPU好像是8G的,但是企业级至少要20G 或80G吧。

这样每秒能生产40-80token,也就是40-80个词语。很快了,秒级了。

  • 企业级架构:

┌─────────────────────────────────────────────────┐
│ 负载均衡 / API Gateway │ ← Nginx / Kong
│ · 认证鉴权(JWT) · 限流熔断 · HTTPS终止 │
│ · API Key管理 · 请求审计日志 │
├─────────────────────────────────────────────────┤
│ 推理服务集群(vLLM / TGI) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ vLLM #1 │ │ vLLM #2 │ │ vLLM #3 │ ← GPU│
│ │ 7B@A100 │ │ 7B@A100 │ │ 7B@A100 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ · PagedAttention · Continuous Batching │
│ · Prometheus metrics · 健康检查 / 自动重启 │
├─────────────┬───────────────────────────────────┤
│ 配套服务 │ │
│ · Redis │ 对话历史缓存 / 会话状态 │
│ · Vector DB│ RAG知识库(Milvus/PGVector) │
│ · Log/Mon │ ELK/Prometheus+Grafana + 告警 │
│ · K8s │ 容器编排、自动扩缩容(可选) │
└─────────────┴───────────────────────────────────┘

  • 还有企业级安装python 建议用Anaconda否则会出现很多版本问题,导致微调 rag等不成功

推理框架和推理模型啥区别?

前面说了推理框架,企业级用vLLM,没听说过这个啊,那ollama用的是啥?

vLLM也是个软件包,需要用pip下载

ollama用的推理框架是llama.cpp。记得我们在微调大模型时,需要用这个来做模型转换的,转成GGUF格式。

还是说下这俩推理的区别吧。

  • 「推理模型」= 模型权重 + tokenizer + 结构定义(*.safetensors / GGUF + config)

它只是一堆数据和计算图定义:

model.safetensors(参数)

config.json / modeling_*.py(结构)

tokenizer 词汇表

光有它:什么也跑不了(CPU/GPU 不会自己知道怎么调度、怎么分配显存、怎么生成 token)

  • 「推理框架 / 推理引擎」= 把模型“运行起来”的软件层

它负责(就是你要补的那块):

把权重加载到 GPU 显存

管理 KV Cache(注意力缓存)

调度请求(谁来先算、怎么 batch)

实现采样(temperature/top_p/stop)

提供 API(OpenAI 兼容 / /generate/ /chat)

怎么调整ollama上的模型参数

ollama有个modefile文件,我们做微调的时候也遇到过。

通过新建一个modefile文件,就可以修改配置了,还能加系统提示词,这样就能很快的建一个我们自己的专业性大模型了。

操作如下:新建文件Modelfile:

FROM qwen2.5vl:7b # ---------- 推理采样 ---------- PARAMETER temperature 0.7 PARAMETER top_p 0.9 PARAMETER top_k 40 PARAMETER repeat_penalty 1.1 PARAMETER seed 0 # 关键:上下文窗口(注意别超过模型训练上限) PARAMETER num_ctx 4096 # 控制最大生成长度(避免一直生成) PARAMETER num_predict 1024 # 可选:防止死循环式重复 PARAMETER repeat_last_n 64 # 可选:遇到这些字符串就停(非常实用) stop "<|im_end|>" stop "</s>" # ---------- 行为/人设 ---------- SYSTEM "你是一个严谨的技术助手,只基于给定信息回答,不确定就说不确定。"

构建成一个“你自己的模型名”:

ollama create my-qwen7b-strict -f Modelfile ollama run my-qwen7b-strict

能修改的参数:

参数

你在调什么

经验建议

temperature

随机性/创造力(默认 ~0.8)

严谨任务 0.1~0.3;聊天 0.7;创意 1.0+

top_p

核采样(默认 0.9)

常配temperature一起用,0.9 左右很稳

top_k

限制候选集大小(默认 40)

一般不动;偶尔 20/50 做“更保守/更野”

min_p

相对概率下限过滤

可选;对“抑制胡话”有帮助

num_ctx

上下文窗口 token 数(默认 2048)

想长对话/长文档就抬(4096/8192…)但别超模型可靠上限

num_predict

本次最大生成 token 数

防 runaway;做 JSON/短回答可设 256/512

repeat_penalty

重复惩罚(默认 1.1)

卡死循环式复读:1.15~1.3;太大会让模型“不敢说话”

repeat_last_n

惩罚回看多少 token

默认 64 通常够;-1 表示看整个窗口(更狠但更贵)

seed

固定随机种子

做评测/复现用;正式服务一般别锁死

stop

停止序列(可多个)

非常实用:卡住格式边界(如代码块结束、角色标记)

mirostat/mirostat_eta/mirostat_tau

Mirostat 困惑度控制采样

高级玩法;默认关(0)

但是上面这些参数无论怎么修改,也不能让模型拥有新的知识,加入跟多的权重参数。

GPU与显卡、显存、cpu

GPU应该是显卡的一部分吧,之前显卡说是打游戏的专用,对游戏界面显示效果很好,但是由于这个基于频繁计算的,所有跟大模型是同样的诉求。都需要大量的计算,因此GPU也就现在被广泛提起了。

GPU即图形处理器。

总结这几个关系:CPU 是大脑的“决策者”,GPU 是大模型的“搬运+批量计算器”;显存是 GPU 的专属高速仓库;大模型推理吃的最狠的不是算力,而是仓库到车间之间的道路宽度(显存带宽)和仓库大小(显存容量)。

大模型一个重要的计算过程点就是要把几十亿的权重参数从显存搬到计算单元,这个过程就是由显存决定的,也是重要的瓶颈,即Memory Bandwidth Bound(显存带宽瓶颈)。企业级的显存性能要至少达到2TB/s。我本地的电脑RTX 4090 就能达到1TB/s了。但是在处理几十K的内容时就比较卡了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询