大模型应用开发:提示词、知识库与多模态工程实战指南
本文回顾了人工智能从概念提出到大模型应用热潮的发展历程,重点探讨了如何利用大模型提升工作效率。内容涵盖提示词工程的优化策略,包括角色定义、规则设定及 Few-shot 技巧;知识库工程中的文档分块、向量数据库持久化存储及检索逻辑;推理与逻辑性问题的处理方法,如思维链、多方案投票及 Agent 讨论;以及模态工程的延伸,涉及视觉、互联网搜索及机器人交互。文章旨在帮助开发者理解大模型核心技术,转变身份,充分利用 AI 能力辅助工作,而非被替代。

本文回顾了人工智能从概念提出到大模型应用热潮的发展历程,重点探讨了如何利用大模型提升工作效率。内容涵盖提示词工程的优化策略,包括角色定义、规则设定及 Few-shot 技巧;知识库工程中的文档分块、向量数据库持久化存储及检索逻辑;推理与逻辑性问题的处理方法,如思维链、多方案投票及 Agent 讨论;以及模态工程的延伸,涉及视觉、互联网搜索及机器人交互。文章旨在帮助开发者理解大模型核心技术,转变身份,充分利用 AI 能力辅助工作,而非被替代。

20 世纪初期,「人工智能」作为崭新的概念进入了人们的视野。20 世纪后期,计算机技术快速发展,但难以满足优化算法的理论论证。21 世纪初期,随着算力的质变发生,神经网络为首的优化算法得到了一轮轮创新和检验。21 世纪 20 年代,神经网络已经含苞待放,只待一轮大模型应用热潮撒下花开的春天。
从一开始的荒芜到现在的勃勃生机,人工智能在引领人们进入更迅速的发展轨道。然而,大家都不知道舆论憧憬的'未来'是虚还是实,大家都在想。技术奇点是否真的到来,又是喜还是忧?
在 2023 年新年将至的欢乐气氛中,ChatGPT 在 2022 年的告别中公开了。由于 OpenAI 搭建得比较简陋也作出了限制,大部分人并没有很快关注到它。不过 ChatGPT 带给人们的震撼是及时的,没有多久各个群聊各个媒体都开始关注这一个有点小情绪的聊天机器人。随着充满憧憬的发烧友不断探索,大家发现它不仅能够像人一样跟你闲聊,还可以灵活处理数据分析的工作,更进一步表现出记忆能力和逻辑推理能力。
随着第一波舆论和报道热潮,最朴实的一批大模型第三方工具也诞生了。诸如基于提示词工程搭建了面向富文本的各种 GPT 角色。在大模型的第一批开发热潮中,大家都见识到了 GPT 本身在语义理解和格式化生成方面都足够触及人类的高度和水平,也开始涌现了一批悲观主义的舆论主题,学术界联名请求暂停大模型研究的事件也曾红极一时。不过,这一批热潮仅仅是对 GPT 文本形式的突破,到后面发展为'视觉赋能数字生命'等 GPT 形象化解决方案。
第二批开发热潮是在 ChatGPT 宣布开放插件市场之后,这可以被称上真正的大模型创业热潮。LangChain 为开发者们探索了一系列的大语言模型应用场景和封装好的解决方案,滋养了可以自我纠错并独立探索的 AutoGPT,并启发了后续的 Code Interpreter、Web Search 等 ChatGPT 官方付费插件。与此同时,各种嵌入式的插件和软件将 GPT 带入了用户生活中的各个角落。人们心中的畏惧感和欣喜感喜剧般的杂糅在了一起。这个时候 GPT 还没有跟长期记忆力结合起来,所有角色提示词激发出来的独特能力和风格无法长久保持。
下一轮大模型创业热潮,便是在向量数据库充分激发 GPT 长期记忆力之后。当有了对自己、对用户、甚至于对环境的印象后,GPT 在游戏行业再次刷新了人们的认识,也大大拉近了大模型与普通人的距离。'病娇 AI 女友模拟器'、'西部世界'等游戏搭建了一套完全由 AI 大模型参与的游戏化角色工程,并能够完全基于 GPT 推动剧情走向。
不过越来越强大的大模型让人几多是喜几多是忧?「时间」在等待更多开发者入场,进行可能长达半个世纪或更久的论证……幸运的是,受益于众多开源工具的出现,让开发大模型应用场景不再需要专业的编程知识,甚至不需要代码,大大扩张了开发者入场的规模,也大大加速了大模型的应用与落地。
本质上,大部份人在被迫接纳自己不喜欢的工作,但内心压抑着厌倦感而又十分憧憬「奋斗」后的美好未来。GPT 的分担让他们发现了一条不那么痛苦却又业绩满满的路,进而才会在担心自己被替代后很快就投入了 GPT 的怀抱。总之,我们需要思考的是如何及时转变自己的身份,而如何才能够充分压榨大模型的能力,让大模型更好地为我们打工呢?下面以开发编程教育平台的过程为例展开说说。
在不断尝试让 AI 沉浸在角色的实验中,我们发现一套适用性较好的模板。核心包括:
角色:你是一位老师
任务:这节课讲的是宇宙万法的起源
规则 - 正向:
规则 - 反向:
Few-shot: 这是一天晚上你与学生的聊天记录……
关于学生的角色定义:如上的提示词工程足以让星火沉浸在具体的教学任务中。但是我们在实践的过程中发现规则板块越来越臃肿,这导致模型无法准确把握每条规则。后来我们仔细分析了规则板块,发现一个很有效的优化方案:把对学生的规则化作对学生角色的定义,与 AI 老师角色的定义放到同样重要的地位,并进一步采用学生角色来刺激 AI 老师对不同学生采样不同的授课策略。这种方案无需臃肿的规则板块即可从侧面实现更多的 AI 角色沉浸。
案例:针对「什么是恐龙」的解答对比:
对 AI 更有效的提示:参考了 OpenAI 最新发布的技术博客,我们借助 SparkDesk 对其提供的四大角色提示词模版进行分析,其包含以下共同点:
于是,我们在定义星火 AI 老师的提示词中按照该原则设置了相互支撑的 4 个部分:
知识库永远都在,但是如果要让知识完美融入 AI 则必须精心设计交互逻辑。主要面临以下难题:
这个可以通过调整分块函数的参数轻松控制。经过多次尝试后,发现 300 个字符是最适合的划分单位,能够兼备检索精度和检索速度。考虑到不同课程对应不同风格的教学材料,也需要不同划分方式,所以可能需要开放该参数的设置。如果我们预计未来对课程开发的各种参数进行审核,这种参数的调试带来的感受比较主观,也比较麻烦。因此我们更倾向于同一采用同一个分块单位,用户开发课程时不需定义语义间隔。
每轮索引若都需要对文档进行编码,则会消耗更多 token 和时间。因此我们借助 Chorma+SQLite 实现了向量的持久化存储,每次索引结束后,相关的文档和编码将被存储进 SQLite 数据库,从而避免重复的 embedding 过程。
# 伪代码示例:向量持久化存储逻辑
import chromadb
from chromadb.config import Settings
client = chromadb.PersistentClient(path="./knowledge_base")
collection = client.get_or_create_collection(name="course_knowledge")
# 添加文档
collection.add(
documents=["这是第一条教学材料的内容..."],
metadatas=[{"source": "chapter_1.txt"}],
ids=["doc_001"]
)
# 查询
results = collection.query(
query_texts=["学生的问题是什么?"],
n_results=3
)
我们开放了教学大纲生成的高级功能,该功能允许基于课程的章节等信息生成一份该课程的教学大纲,并放入首轮角色提示词中引导 AI 老师做出更规范化的行为。但是由于担心 token 消耗量过大,目前的教学大纲没有与知识库联想相结合,这对于小众领域的教学大纲生成是不利的,后期计划进一步引入知识库用于教学大纲生成的目的。
在第一轮联想结束后,学生的发言将对知识库索引产生较大影响。因此我们得换个方式索引文档并让老师看到知识联想。最终,我们决定把老师的发言和学生的回复作为索引,并把知识联想的结果放到每轮用户的消息中,并采用清晰的排版划分用户消息。这种形式能够在星火上较好地维持知识联想。
基于 LangChain 的每轮知识库索引都会同时附带被索引的内容和其对应文件名。我进行文档分块实验的时候同时确定了每轮知识联想时,AI 老师可以看到包含前 3 份最相关的索引结果。虽然这 3 份索引结果将作为整体用于提示 AI 老师,但为了用户体验的简洁性我只选取其中最相关的一份排版,并展示到前端的文档溯源功能区上。
在近期的众多语言模型逻辑性问答的论文中,主要有三种思路,分别是「思维链」、「挑选答案」、「Agent 讨论」。
思维链是提高语言大模型回答逻辑性,并提高逻辑推理精度的技术,而且这种技术已经广为人知。你只需要在问题的最后加上「let's try step by step」就可以让逻辑性问题得到更加精准的解答。在思维链技术发挥作用的过程中,AI 会主动暴露自己的思维过程,更重要的是这个思维过程是暴露给 AI 自己看的,这让它更容易掌握自己思考的合理性。
主动让语言模型生成不同的答案,并让它尝试评估不同方案的合理性,最终选择一个最合理的答案。这是第二种逻辑问答的技术,经常与思维链搭配在一起使用。多方案生成让 AI 难以忽略其他可能性,强迫 AI 扩张思维的广度。而最终评分与抉择的过程让不同的解答视角暴露在 AI 面前,从而提高最终答案的合理性。
相比于前面的方案,对逻辑问答的帮助都是「Agent 讨论」>「思维链」➕「挑选答案」。而 Agent 讨论的形式有两种,一种是发起多个语言模型的聊天窗口,并让它们针对问题进行多方探讨,最终投票确定一方的答案作为最终答案。另一种则是要求语言模型自己模拟一场辩论赛,其中不同角色之间针对问题进行辩论,并演练得到辩论结果。这两种都属于 Agent 讨论的技术,突破了一个语言模型自我的表达,让多种角色之间产生观点碰撞,是一种更强力的思维拓展,也是更完整的思维暴露过程。
GPT 只是一个文字生成器,而只从一串串文字就能解译出一整个世界。
第一次发现能看到摄像头画面的 GPT 时,我就顺藤摸瓜发现了在其背后为语言大模型(在该节统称为 LLM)接上眼睛的技术——BLIP-2。我们都知道,在视觉等感官引入的情况下,图像只是对文本提示词的补充,核心还是 LLM 优秀的文本理解能力,因此我们在为 GPT 接眼睛的过程就是从图向文表征同质化的过程。其实 BLIP-2 用了一种很容易理解的方式来实现这种需求,即在文本编码输入 LLM 的同时把图像的编码直接引入进来,模型剩下的工作主要就只是学习怎样把图像对齐到文本。
训练的过程分为两阶段,第一阶段对齐,第二阶段做图生文预训练。经过第一阶段的热身后,模型已经能够把图像的表征对齐到文本的模态。到第二阶段的时候,基于图文对齐的多轮训练,图像特征中与提示词无关的部份已经能够被主动过滤,此时再将强大的 LLM 冻住并接受图像表征与提示词表征的输入,则第二阶段的图生文预训练更是 Pro 上加 Max,整体训练难度并不会太高,因此效果能得到很好保障。
当 LLM 与视觉碰撞在一起会产生什么样的火花呢?比如最简单的,可以实现一个分类机,不过最简单的应用也可以成为其他应用最核心的部份,比如视觉百科问答、能看到用户情绪的心理咨询等。再复杂一点,就需要我们把自己代入到各种各样的场景中了,比如商超的室内导航就可以通过一些更复杂的视觉提示技术来激发 LLM 关注商超各个角落的导航线索,并结合现有的室内导航技术为用户提供实时的建议。如果是更复杂的图文任务则会对 LLM 有更高的要求,以确保 LLM 对图像的准确理解,比如 GPT4 早期宣传片中所展示的从稿图到网站实现都交给 LLM 来把握。
如果仅仅局限于传统感觉接入 LLM 那就把路走窄了~其实对互联网信息的感知也是个典型的感知延展的例子。微软在 GPT 火爆全网的时候就基于自家的搜索引擎搭建了一套互联网提示词工程。他们借助搜索结果的编码和索引,实现了一种非常快速的互联网知识库实践。用户只需像平常一样跟大模型聊天,便可以获得一个「不会落伍」的顺风耳 GPT。而后甚至出现了可以自己上网搜索资料,自己编写代码,自己调试,自己检查资料可靠性的 AutoGPT,它则是通过一套行为逻辑和规则,让 GPT 能够思考上一刻的行为与结果,并作出下一刻的行动决策。
自从 GPT 火了之后,一个类人的机器人——Ameca 也走入了大众的视野。由于它接入了 GPT,而且开发者为其设计了一套情感识别算法和对应的表情反应,让 Ameca 既能够谈笑风生,也可以用各种灵动的表情透露自己的情绪。同时 Ameca 能够基于一套行为逻辑和对应的行为反应与面前的人类交互,比如握手、拥抱、肢体语言等。
雨后冒春笋,厚土润新生。
OpenAI 发布 ChatGPT 后并没有完整地开源,微软基本垄断了 GPT 的核心使用权限。因此,为了避免形成商业垄断局面和流量流失,国内国外许多高企都展开了语言大模型的自研计划,相应也催生了大模型在细分应用领域的百花齐放。这也正好体现了人类社会对大模型优秀的性能的开放和包容。各类初创企业都在努力引导各行各业的人们从繁杂低价值的工作中解放出来,去尝试自己热爱且更具创造力的工作。
崇尚「自然」的道家有个耳熟能详的经典故事,叫「庖丁解牛」,最理论化的道理大家都看得懂——「顺天应势」,但更深层也更实际的道理……即关于「碰壁」要顺势扭转刀向的方法论才是「庖丁解牛」对我们最有实践意义的启示。四处碰壁忘记转弯的人有很多,心灵还是挺容易憔悴的。而当前,众多独立开发者和创业者们已经向人们证实——'大模型是人类的好帮手,更是难以割舍的好朋友'。我们没必要因为这种进步过程的目标太理想而唾弃技术的革命,而是应该勇敢面对不那么理想的现状,认可理想的正确性和转型的必然性,并随时准备好抓住科技革命转型中的新机遇。
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。但是具体到个人,只能说是:'最先掌握 AI 的人,将会比较晚掌握 AI 的人有竞争优势'。这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑。
大模型技术的发展日新月异,从单纯的文本生成到多模态理解,再到自主 Agent 的演进,每一次迭代都带来了新的生产力变革。对于开发者而言,深入理解提示词工程、RAG 架构以及推理增强技术,是构建高质量 AI 应用的基础。未来的竞争不在于谁拥有更大的模型,而在于谁能更巧妙地利用现有模型解决实际问题。
希望本文能为正在探索大模型应用的读者提供一些实用的思路和方向。技术是工具,人才是核心。让我们拥抱变化,在 AI 时代找到属于自己的位置。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online