大模型基础
开篇:大模型是什么,能做什么
大语言模型(LLM)是当下技术圈最火的话题。但很多人对它的认知停留在"能聊天"的层面。作为开发者,你需要理解:大模型擅长什么、不擅长什么、幻觉怎么解决、RAG 和微调的区别、向量数据库的原理。这些知识既是面试热点,也是实际开发 AI 应用的基础。
Q: 大模型擅长做什么,不擅长做什么?
典型回答
大模型非常擅长做生成内容、代码编写、文本处理、多模态任务,但它对高精度计算、事实准确性、实时数据获取存在局限性。
擅长方向
- 文本理解:能阅读、总结、分析文章,如 阅读理解、问答系统。
- 文本生成:能撰写高质量 文章、小说、新闻、代码、法律合同 等。
- 机器翻译:可以翻译多种语言,质量接近专业翻译水平(如 DeepL、Google Translate)。
- 信息提取:能从文档中提取关键信息,如 法律、医学、财务报告分析。
- 代码生成:自动编写 Python、JavaScript、C++ 代码,辅助开发者(如 GitHub Copilot)。
- 代码调试:帮助找出代码中的 Bug、优化代码性能。
- 代码解释:能解释复杂代码的逻辑,帮助学习和维护遗留代码。
- 广泛知识问答:大模型掌握 百科知识、历史、科技、医学、经济等 领域的信息。
- 图像识别 & 生成(如 DALL·E、Stable Diffusion):生成艺术作品、设计海报。
- 语音识别 & 语音合成(如 Whisper、VALL-E):实现 语音转文字(ASR)、AI 语音播报。
- 视频生成(如 Sora):基于文本输入,生成高质量视频。
- 总结长文档(如会议纪要、论文总结)。
- 从非结构化文本中提取信息(如将文章转换成 表格、JSON 数据)。
不擅长方向
- 无法进行精确 数值计算,如 大数运算、金融精算、密码学计算。(如3.9和3.11那个大?)
- 可能犯 逻辑错误,推理链条过长时,可能得出错误结论。
- 容易“编造”信息,即使信息看起来可信,但可能并不存在。
- 可能给出 错误的医学、法律、科技等专业知识(如医学诊断、法律条文)。
- 对 长尾知识(冷门信息、最新论文、特定行业信息)缺乏准确性。
- 训练好的大模型不会像人类一样主动学习新知识,无法实时更新。
Q: 大模型产生幻觉的原因,如何解决?
典型回答
大模型的“幻觉”指的是 AI 生成了看似合理但实际上错误或编造的信息。例如,它可能会编造不存在的事实、错误引用文献、甚至捏造公司或人物的信息。
幻觉产生原因
语言模型的“填空”机制
- Transformer 语言模型本质上是一个 “填空预测器”,它是根据概率预测来选择下一个输出的词,而不是在“思考”正确答案。
训练数据存在缺陷
- 训练数据本身可能包含 错误信息、不完整数据、偏见信息,导致模型学到不真实的内容。
- 训练数据可能过时,例如,GPT-4 的数据 截止到 2023 年初,无法回答最新时事。
缺乏事实验证能力
- 语言模型在生成文本时,并不会主动去 查证答案的真实性。
长文本记忆力有限
- 由于 上下文窗口有限(如 GPT-4-turbo 约 128k tokens),当文本过长时,AI 可能遗忘前面提到的信息。
解决幻觉的几个方案
1、RAG,通过RAG的方式,让大模型在回答问题之前先检索真实数据,再让模型进行回答
2、Fine-tuning,即微调,通过微调的方式,给模型学习专业领域的知识,让他更好的回答
3、限制AI的回答,比如在提示词中告诉他如果你不知道,直接就回答不知道
4、通过标注和反馈不断优化模型。并把反馈可以给到模型让模型调整。
5、让同一个模型多次生成同一个内容的答案,然后选择一个最终版本。
6、在问题回答之后,让 AI 自己检查自己的答案,并标记不确定的部分。
7、联网, 在 AI 生成答案之前,先通过网络查询最新数据。
8、 让 AI先写下推理过程,再得出最终结论,而不是直接给出答案。
Q: 什么是大模型的微调,和预训练有什么区别?
典型回答
大模型是怎么来的?其实就是预训练来的,包括现在的GPT、Deepseek这些大模型。通过海量通用数据来训练模型,让模型具有掌握语法、常识和基础语义。
预训练的成本是巨高的,首先需要有海量数据(TB 级),然后还需要极高的算力,进行长时间的模型训练,基本上只有大厂才能玩得起。
而微调,是在预训练模型的基础上,用特定领域或任务的数据调整模型参数,使其适应具体场景(如医疗问答、法律文本分析)。
相比于预训练,他只需要少量的数据 (MB~GB 级),相对的训练算力也会低很多。可以说预训练的目的是获得一个通用模型,而微调的目的是获得一个专用模型。
其实,我们常用的提示词,也可以算作是微调的一种,只不过他相对简单,并不需要调整模型参数来完成,目的是让模型能够更好的回答我们的问题,所以有一种微调叫做Prompt Tuning。
随着模型规模变大,完整微调(也叫全参)成本也变高,出现了很多轻量级微调方式:
- LoRA(Low-Rank Adaptation)
- PEFT(Parameter-Efficient Fine-Tuning)
- Adapter、Prefix Tuning
- 指令微调(Instruction Tuning)
- RLHF(人类反馈强化学习)
这些方法通常只更新模型的一部分参数,大大减少资源消耗。
Q: DeepSeek为什么训练成本低?
典型回答
DeepSeek的训练成本显著低于行业平均水平(如GPT-4的1/20),官方自己说V3模型训练成本仅为557.6万美元,那么做了什么呢?
合专家模型(MoE)与动态路由
DeepSeek采用Transformer+MoE架构,在训练和推理时仅激活部分参数(如推理阶段激活10%-37%的参数量),显著减少计算资源消耗。动态路由机制根据输入内容自动分配专家网络,进一步提升效率
强化学习与训练策略优化
引入GRPO算法(Group Relative Policy Optimization),摒弃传统PPO算法中的价值模型,减少50%训练内存需求,并通过强化学习直接优化策略,降低无效训练60%
FP8混合精度训练
全球首个全面采用8位浮点(FP8)精度训练的大模型,动态调整训练阶段精度,降低内存占用40%,同时支持消费级显卡运行复杂模型
PTX编程
直接优化底层硬件指令(如英伟达PTX编程层),绕过CUDA抽象层,最大化GPU算力利用率。例如,在A100显卡上运行原需H100的任务。
Q: 如何看待DeepSeek,他能爆火的主要原因是什么?
典型回答
DeepSeek的爆火要从两个方面看,一个是在普通老百姓的视角看,另一个是行业的视角看。
从普通老百姓的视角来看,其实主要给人的感受上有变化是因为他把思考过程展示了出来,在DeepSeek之前,其他的模型也都有会自己的思考过程,包括GPT,但是都没有展示出来,而DeepSeek把他展示了出来,在回答问题之前先把自己的思考过程显示出来,让用户知道这个过程是怎么样的。
还有就是他自身的能力和效果还不错,而且在中文处理能力上甚至还超越GPT等产品。
从专业的视角来看,行业内能引起这么大的波澜,主要还是他的成本更低了,同样的规模的模型,它的成本可以降低到其他模型的1/20,这就能大大的降低对卡(算力)的依赖,而且成本也会更加的低了。在训练费用上只有500多万美元,是GPT-4o十分之一都不到。
还有就是DeepSeek走了一条开源的路,DS-R1是开源的。
另外有一个不容忽视的原因,那就是DeepSeek并没有诞生在传统大厂,而是诞生在一家来自中国的"小公司"(但是其实幻方做量化也很多年了,也屯了很多卡,只不过不算是互联网大厂),他的崛起,符合"咸鱼翻身,挑战强权"的价值观。
当然,DeepSeek也是有很多技术创新的,比如MoE(混合专家模型)、MLA(多投潜在注意力机制)等。
DeepSeek采用Transformer+MoE(Mixture of Experts)组合架构,通过动态激活专家网络(如DeepSeek-V3仅激活370亿参数中的部分)显著降低计算资源消耗。其MoE架构引入共享专家与路由专家的分工:共享专家处理通用知识,路由专家针对特定任务优化,提升训练效率与稀疏性。
此外,通过动态路由机制,模型能根据输入内容自动分配专家资源,实现计算资源的按需分配,综合效率较传统MoE提升30%。
Q: 对RAG了解吗?谈谈什么是RAG?
典型回答
RAG 的全称是:Retrieval-Augmented Generation,翻译成中文是:检索增强生成。
说人话就是——让大语言模型(比如 ChatGPT)在“生成答案”之前,先去找资料(检索)来增强它的知识,再用这些资料来生成更准确的回答。
为什么需要RAG
因为对于很多大语言模型来说,他的知识是基于历史数据训练出来的,比如GPT-4是截止到2023年的数据,而在这之后发生的所有的新的事件,新的数据,他都是不知道的,那么他的回答就会有这部分的局限性。
还有就是,很多大模型是基于公开的资料训练出来的,而很多私域的信息他是没有学习过的,而很多知识是私有的知识,这就需要通过资料的方式增强他原来不熟悉的知识。
所以,有了RAG之后,就可以基于自己的知识构建自己的知识库,这样就能做到知识的更新和迭代,也能弥补大模型不知道一些特性领域的专业知识的不足。这样就能让大模型的回答更加的准确, 减少幻觉的发生。
如何构建一个RAG
可以看一下这张图(这张图是我从网上找到的),这里面就包括了构建RAG的主要流程。

1、前置准备
首先我们需要做数据准备,把你要用的资料收集好,比如:公司内部文档(PDF、Word、Markdown)、FAQ列表、产品手册等,然后清洗这些数据,比如去掉无关信息、切分成合理的小段。
然后把每一小段文本用Embedding模型转成向量,把这些向量存到向量数据库里,比如FAISS、Milvus等。
2、检索查询
当用户提问时,先用相同的Embedding模型把问题也转成向量。然后在向量数据库里用向量相似度搜索,找出最相关的几段资料(比如Top 5)。这些找到的内容就是上下文增强材料。
3、生成回答
紧接着,就可以把用户的问题 + 检索到的资料一起,作为Prompt发给大语言模型(LLM)。 这样可以保证模型只在资料范围内生成答案,降低幻觉。
Q: RAG为什么要做混合检索?
典型回答
只用了向量检索效果不行
核心问题:向量检索依赖语义相似度,对专有名词、精确短语、编号等缺乏精确匹配能力;且在面对极短查询时,因语义上下文有限,容易导致召回内容过于宽泛。
比如我的AI课程评测时遇到的问题,针对『超级桌面』这个内容的检索。超级桌面本身就是一个汽车领域的专有名词,而和他相似的词有很多,比如典型的3D桌面,手机桌面,车机桌面,桌面。
单纯靠向量检索的话,包含这些关键词的文档得分都挺高的。使得检索效果差。
只用bm25关键词检索效果不行
核心问题:关键词匹配是死板的字面匹配,无法理解同义词、语义表达变化或复杂的自然语言意图。
这个就很好理解了,关键词检索要求一定要字面匹配,比如我们想要问关于手机能否启动汽车等问题的时候,其实在问的是汽车如何做启停、如何无钥匙进入、智能座舱功能等。
单纯按照分词后的关键词检索的话,就会检索不到想要的内容,就算检索到,得分也不高。
所以需要用向量检索+bm25做混合检索。
Q: 什么是向量数据库?
典型回答
向量数据库(Vector Database)是一种专门用于存储、索引和查询高维向量数据的数据库系统。现在AI很火,而向量数据库是实现RAG中必不可少的。
向量(Vector)其实是一个数学概念,在AI场景下,通常指将文本、图像、音频等非结构化数据通过嵌入模型转换成的数值数组(例如 [0.23, -1.45, 0.89, ...])。这个数组能捕捉数据的语义或特征信息。
传统关系型数据库(如 MySQL)或 NoSQL 数据库(如 MongoDB)并不擅长高效处理高维向量的相似性搜索。向量数据库的核心功能是快速找到与给定向量“最相似”的其他向量,常用相似度度量包括:
- 余弦相似度(Cosine Similarity)
- 欧氏距离(L2 Distance)
- 内积(Dot Product)
余弦相似度,最常用的语义相似度查询方法,主要就是看两个向量的夹角是否接近。夹角越小,向量越“同方向“,则语义越相似。
举个例子,以下面这个二维坐标系为例**(实际是多维度,为了演示方便),有三个已有的向量(图中的蓝色实线向量),“小明爱吃西瓜”“小明喜欢打篮球”“今天天气真好**”。我们可以从坐标系中看出,“小明爱吃西瓜”和“今天天气真好”这两个向量是完全不相关的语义,他们的余弦值就接近 -1。“小明喜欢打篮球”这个向量和我们的Query向量(图中的虚线向量)“小明爱吃什么”的夹角较大,说明它们的余弦相似度较低,语义相关程度就比较低。并且我们可以看到Query向量“小明爱吃什么”与“小明爱吃西瓜”的“夹角”非常小,说明两者的余弦相似度接近于 1,更相关。

常见的向量数据库:
| 数据库 | 定位 | 特点与优势 | 局限与适用场景 | 混合检索 | 元数据过滤 | 数据规模 | 部署复杂度 |
|---|---|---|---|---|---|---|---|
| PGvector | PostgreSQL 扩展,向量存储与检索 | 无需新 DB,SQL + 向量混合查询方便,运维继承 PostgreSQL | 不适合超大规模(亿级以上),中小型 RAG、知识库 | 可通过应用/库支持 | 支持 | 中小(百万级) | 低 |
| Chroma | 轻量级向量数据库,易集成 | 开箱即用、支持内存运行、简单元数据过滤 | 不适合高并发、大规模;缺乏分布式能力 | 不支持原生混合 | 简单元数据过滤 | 小规模 | 极低 |
| Milvus | 云原生分布式向量数据库 | 亿级以上向量、高性能、多索引类型(HNSW/IVF等)、SDK 多语言支持 | 部署复杂,对硬件要求高 | 原生支持混合检索(稀疏+密集、多向量字段) | 支持 | 大规模(亿级以上) | 高 |
| Qdrant | 开源向量数据库,性能易用 | HNSW 索引、向量压缩、Rust 高效实现、支持复杂元数据过滤 | 分布式能力不如 Milvus,社区略小 | 支持部分混合检索(稀疏+密集向量组合) | 高性能元数据过滤 | 中等 | 中 |
| Elasticsearch | 全文检索数据库,支持向量字段 | 全文 + 向量 + 结构化检索融合,企业生态成熟 | 性能略低于原生向量库,引入成本较高 | 支持关键词 + 向量混合检索 | 支持 | 中等 | 中偏高 |
Q: 什么是Vibe Coding(氛围编程)
Vibe Coding(氛围编程)是由前 OpenAI 联合创始人、特斯拉 AI 总监 Andrej Karpathy 在 2025 年初提出的一个概念。
它描述了一种完全由大语言模型(LLM)驱动的编程新范式。在这种模式下,开发者不再逐行编写代码,而是通过自然语言描述想法,让 AI 生成可运行的代码,开发者主要负责“感受”代码运行的效果(Vibe),并在出错时通过自然语言反馈进行修正。
**程序员不写代码,只是提需求,代码由AI写,如果出现错误,再把错误给AI,让AI改。**这就是所谓的 Vibe(氛围):你可能并不理解代码的每一行,但依然能让它跑起来。”
Vibe Coding 的核心特征
自然语言即代码
- 传统编程:开发者需要掌握语法、库函数、设计模式,将逻辑转化为精确的代码。
- Vibe Coding:开发者只需用人类语言描述意图(如“做一个带深色模式的待办事项列表”),AI 负责将其转化为具体的代码实现。编程语言本身变成了“中间件”,对用户透明。
“黑盒”式开发
- 开发者不需要完全理解生成的每一行代码细节。
- 重点从“如何实现”转移到了“想要什么结果”。
- 只要程序能跑通、符合预期,就不深究底层逻辑;只有当出现严重 Bug 或性能问题时,才介入审查代码。
快速迭代与试错
- 流程:提出想法 -> AI 生成 -> 运行测试 -> (若失败) 复制报错信息给 AI -> AI 修复 -> 再次运行。
- 这种循环极快,允许开发者在几分钟内验证多个创意,极大地降低了原型开发的门槛。
Vibe Coding vs. 传统编程 vs. AI 辅助编程
| 维度 | 传统编程 | AI 辅助编程 (Copilot 模式) | Vibe Coding |
|---|---|---|---|
| 核心动作 | 手写每一行代码 | 手写主干,AI 补全片段 | 自然语言描述,AI 生成整体 |
| 知识要求 | 精通语法、架构、调试 | 熟悉语法,能判断 AI 建议 | 懂逻辑、懂需求,语法要求低 |
| 调试方式 | 断点、日志、源码分析 | 检查 AI 补全是否正确 | 直接运行,报错丢给 AI 修 |
| 关注点 | 实现细节、性能优化 | 效率提升、减少重复劳动 | 创意实现、最终效果 (Vibe) |
| 典型工具 | VS Code, IDEA | GitHub Copilot、通义灵码 | Cursor,Claude Code。Qoder |
它并不是要完全取代程序员,而是解放了生产力,让开发者从繁琐的语法和样板代码中解脱出来,将精力集中在创意、架构设计和产品体验上。对于 Cursor 这样的工具而言,它正是实现 Vibe Coding 的最佳载体之一,通过强大的上下文理解和对话能力,让这种“凭感觉编程”变得切实可行。但是如果用不好,也会有各种问题,如以下这些常见的问题
- 复杂系统维护:当项目规模扩大,不理解底层代码会导致难以维护、难以优化性能。
- 安全隐患:盲目信任 AI 生成的代码可能引入安全漏洞(如 SQL 注入、权限问题)。
- 深层 Bug:对于涉及并发、内存管理或复杂算法的问题,AI 可能无法一次性解决,需要深厚技术功底的人介入。
- “幻觉”依赖:如果 AI 一本正经地胡说八道,缺乏基础知识的开发者可能无法识别。