作者通过开发代码仓库转换wiki项目,分享了从零开始学习大模型应用开发的心得。文章详解了LLM本质、Token计算与限制、RAG架构解决幻觉与知识过时问题,以及向量数据库在检索增强生成中的关键作用。对比了RAG与私有数据训练的优劣,强调好的Prompt是LLM应用准确回答的关键,指出大模型应用开发中提示词的重要性大于代码实现。
背景
AI/LLM 大模型最近几年毋庸置疑的是热度第一,虽然我日常一直在用 AI 提效,但真正使用大模型做一个应用的机会还是少。
最近正好有这么个机会,需要将公司内部的代码 repo 转换为一个 wiki,同时还可以基于项目内容进行对话了解更具体的内容。
实际效果大概和上半年很火的 deepwiki[1] 类似。
而我们是想基于开源的 deepwiki-open[2]进行开发,提供的功能都是类似的。
在这个过程中我也从一个大模型应用开发的小白逐步理解了其中的一些关键概念,以及了解了一个大模型应用的运行原理。
LLM
LLM(Large Language Model,大语言模型)大家应该都比较熟悉了:
- • 本质:一个通过海量文本训练出来的概率模型
- • 能力:理解/生成文本、代码,做推理、对话等
- • 特点:
- •参数固定:训练完之后“记忆”是固化在参数里的
- •知识有时间点:只知道训练截止前的数据(有知识截止时间)
可以把LLM当成一个“通用大脑”,但不一定知道最新的、你的私有数据。
目前的 AI 也就是大模型本质上还是概率预测,当你给它一段话(Prompt)时,它在后台做的事情是:“根据我读过的几万亿字,接在这段话后面,概率最高的下一个字(Token)是什么?”
所以大模型每次回答的内容可能不同,也不能 100% 的告诉你准确答案。
Token
大模型并不直接认识java、Rust或者“编程”这些词。在模型内部,所有的文字都会先被转换成一系列数字。
- •字/词 ≠ Token:一个 Token 既不是一个字符,也不是一个单纯的单词。
- •灵活切分:
- • 常见的词(如
the,apple)通常对应1 个 Token。 - • 罕见的词或长的复合词(如
microservices)可能会被拆分成几个 Token(如micro+services)。 - • 中文通常比较特殊:一个常用的汉字可能是 1 个 Token,但不常用的汉字可能会占用 2-3 个 Token。
在做大模型应用开发的时候尤其需要注意 token 的用量,毕竟这是计费的标准。
还有一个是上下文窗口的限制,每个模型都会有最大 token 的限制(如 8k, 32k, 128k)。
如果你的 Prompt 加上模型的回复超过了这个限制,模型就会丢掉前面的记忆或者直接报错。
在日常开发估算中,可以大概估算一下这个比例:
- •英文文本:1000 Tokens ≈ 750 个单词。
- •中文文本:1000 Tokens ≈ 500 到 600 个汉字(随着模型词表的演进,现在的模型处理中文的效率在不断提升。)。
- •代码:代码中的空格、缩进和特殊符号都会消耗 Token。Python 等由于缩进较多,消耗通常比纯文本快。
也有相关的库可以帮我们计算 token:
# Choose encoding based on embedder typeifembedder_type=='ollama':# Ollama typically uses cl100k_base encodingencoding=tiktoken.get_encoding("cl100k_base")elifembedder_type=='google':# Google uses similar tokenization to GPT models for rough estimationencoding=tiktoken.get_encoding("cl100k_base")else:# OpenAI or default# Use OpenAI embedding model encodingencoding=tiktoken.encoding_for_model("text-embedding-3-small")returnlen(encoding.encode(text))也可以通过 openai[3] 的一个实例网站来可视化查看 token 的计算规则:
RAG
RAG 的全程是Retrieval-Augmented Generation(检索增强生成),他不是类似于 LLM 的模型,而是一种架构模式。
举个例子:
比如你问 ChatGPT 关于你们公司的某一个规章制度,大概率 ChatGPT 的训练语料是你没有你们公司的内部数据的。
所以他回复你的多半是瞎编的内容,或者直接告诉你不知道。
此时就需要 RAG 了,他可以在真正询问 LLM 之前先到内部的资料库里通过用户的问题将相关上下文查询出来,然后再拼接成一个完整的 prompt 发送给 LLM,让 LLM 根据你通过的数据进行回答。
这样能解决一下三个问题:
- 幻觉问题:你问它一个它不知道的事情,它会一本正经地胡说八道。
- 知识过时:大模型的知识停留在它训练结束的那一天。
- 私有数据安全:你不能为了让 AI 懂你的业务代码,就把几百万行私有代码全发给模型提供商训练一个新模型,那太贵且不安全。
使用 RAG 时还需要额外考虑到数据清洗的步骤,比如我们这里的 repo wiki 的场景,我们需要把一些第三方库、编译后产生的 target 目录等不需要的内容排除掉。
避免在查询时带上这些内容,干扰最终的结果。
向量数据库
上文里提到 RAG 模式,需要一个非常关键的组件,那就是向量数据库。
我们先要在 RAG 里检索出相关的上下文就是在向量数据库里做查询,具体流程如下:
- 把文档切块(段落级别)
- 用一个Embedding 模型把每个块转成向量
- 把这些向量存进向量数据库
- 用户提问时,也把问题转成向量
- 用向量相似度检索出最相关的文档块
- 把这些文档块 + 问题喂给 LLM,让它生成答案
简单来说就是将一些非结构化的数据(图片、视频、文字)通过Embedding 模型转换成一串数字数组,即向量(例如:[0.12, -0.59, 0.88, ...])。
查询的时候也会将查询内容转换为向量,然后返回在向量空间里相近的数据。
Q&A
此时也许你会有以下一些问题:
LLM + RAG + 向量数据库,是不是类似于用 LLM 训练私有化数据?这两者的效果是否类似? 如果不同,区别在哪里?
LLM + RAG + 向量数据库:
- • 本质是:
不改模型参数,用检索到的外部资料来“喂”模型,让它查完再答。
- • 你的数据在外部(向量数据库里),只是当作参考材料塞进 prompt。
在私有数据上训练(微调 / 预训练):
- • 本质是:
用你的数据更新模型参数,让模型“记住”这些模式和知识。
- • 你的数据被“烤进”模型权重里,调用时不需要再查这份数据。
| 维度 | RAG(向量库) | 微调 / 私有训练 |
|---|---|---|
| 知识存放 | 外部向量库 | 模型参数里 |
| 更新成本 | 改文档即可,重建 / 增量向量索引 | 需要重新训练部署 |
| 生效时间 | 几分钟级 | 训练+上线,小时~天级 |
| 支持频繁变更 | 很适合 | 很不适合 |
| 透明度/可解释性 | 高(可以追溯到原文出处) | 低(模型直接给出,无法确切知道来源) |
总的来说使用 RAG 外挂私有化向量数据的成本更低,也更灵活。
对于一些更垂直的场景,可以考虑使用私有数据训练模型。
总结
总体下来的感受是 LLM 应用大部分的代码都是 prompt 提示词,普通 app 的主要内容是代码,而不同大模型应用的主要区别是提示词;反而代码大部分都是趋同的。
区别就是用了什么框架,但是共同的就是调用大模型 API,将传统的 request/reponse 的请求模式换为流式响应(大模型的响应很慢)。
在开发应用时,需要了解System Prompt(系统预设角色)、User Prompt(用户提问)和Few-shot(给模型几个例子引导它)。好的 Prompt 是让 RAG 结果准确的关键。
后续还需要更加完善deepwiki-open:
- • 优化 splitter,使用更适合代码分割的 splitter,比如 tree-sitter[4]
- • 将存储在本地的向量替换为一个独立的向量数据库
- • 持续优化提示词,更加符合我们的项目背景
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线科技企业深耕十二载,见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事,早已在效率与薪资上形成代际优势,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我们整理出这套AI 大模型突围资料包:
- ✅ 从零到一的 AI 学习路径图
- ✅ 大模型调优实战手册(附医疗/金融等大厂真实案例)
- ✅ 百度/阿里专家闭门录播课
- ✅ 大模型当下最新行业报告
- ✅ 真实大厂面试真题
- ✅ 2025 最新岗位需求图谱
所有资料 ⚡️ ,朋友们如果有需要《AI大模型入门+进阶学习资源包》,下方扫码获取~
① 全套AI大模型应用开发视频教程
(包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点)
② 大模型系统化学习路线
作为学习AI大模型技术的新手,方向至关重要。 正确的学习路线可以为你节省时间,少走弯路;方向不对,努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划,带你从零基础入门到精通!
③ 大模型学习书籍&文档
学习AI大模型离不开书籍文档,我精选了一系列大模型技术的书籍和学习文档(电子版),它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。
④ AI大模型最新行业报告
2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。
⑤ 大模型项目实战&配套源码
学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。
⑥ 大模型大厂面试真题
面试不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我精心整理了一份大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
以上资料如何领取?
为什么大家都在学大模型?
最近科技巨头英特尔宣布裁员2万人,传统岗位不断缩减,但AI相关技术岗疯狂扩招,有3-5年经验,大厂薪资就能给到50K*20薪!
不出1年,“有AI项目经验”将成为投递简历的门槛。
风口之下,与其像“温水煮青蛙”一样坐等被行业淘汰,不如先人一步,掌握AI大模型原理+应用技术+项目实操经验,“顺风”翻盘!
这些资料真的有用吗?
这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。