LLM 核心架构:程序员大语言模型技术指南
过去几个月里,我们对于大语言模型的一系列探索,如 ChatGPT 端到端实践与应用开发、LLaMA 与 ChatGLM 的微调试验、GitHub Copilot 逆向工程分析、动态上下文工程(即 LangChain)的研究,驱使着我去写一个总结,也是一个面向程序员的 LLM 指南。
作为一个从个人经验总结的文章,本文涉及的知识点较多,主要会从以下几个点出发:
- 基础篇:充分运用 LLM 能力
- 应用篇:LLM 下的应用架构设计
- 高级篇:面向特定场景的 LLM 应用
随着 AI 技术的进一步演进和应用,会出现更多新的变化。基于我们先前的假设:每个大型企业都将有私有化的大语言模型;私有化的主流方式为开源 LLM + 微调。基于此,越来越多的企业将构建围绕于 LLM 的应用,而这些应用在当前以辅助人类设计为主。未来,我们将保持一种观点:LLM as Member,即 LLM 应该是我们的伙伴,而不再是一个辅助的工具。
基础篇:充分运用 LLM 能力
1.1 Prompt 编写:Prompt 学习与编写模式
今年 2 月,我基于编程、绘画、写作展开的 AI 探索和总结,编写了两篇文章受到了非常大的关注。如何编写、调度与逆向工程 Prompt?将会是现阶段程序员要面临的第一个挑战,我们需要实践的三个问题:
- 提出问题的策略:明确目标,拆解任务。
- 创造性地利用模型回答:引导模型进行发散思维或收敛思维。
- 提高模型输出质量的技巧:包括温度设置、Top-P 参数调整等。
究其原因,不仅是我们日常工作需要用到 prompt,开始工具的时候,我们也有大量的工作在编写 prompt 上。除此,还需要寻找一种合适的方式,以让 LLM 输出的结果趋于稳定。
所以,作为一个经典软件开发时代的程序员,我们应该学习如何摸清 LLM 的脾气?学习如何编写恰到好处的 prompt。
常用 Prompt 技巧
- Zero-Shot Prompting:直接给出指令,不依赖示例。
- Few-Shot Prompting:提供少量示例,帮助模型理解任务模式。
- Chain of Thought (CoT):引导模型逐步推理,提高复杂任务准确率。
- System Prompt:设定模型的角色和行为规范。
# 示例:结构化 Prompt 构建
prompt = f"""
你是一个资深后端工程师。
任务:解释以下代码的功能。
代码:{code_snippet}
要求:分步骤说明,并指出潜在风险。
"""
1.2 Prompt 管理:Prompt 即代码
今年 3 月,基于结合 LLM + SDLC 的探索,得到的第一个有价值的观点是《Prompt 即代码》。于是,基于这个思想,我们构建了我们在 LLM 时代的第一个开源项目:ClickPrompt。ClickPrompt 站在了未来企业需要的三个基本出发点:
- 如何学习 prompt 的编写?
- 如何分享企业内的 prompt 经验?
- 如何将 prompt 结合到工作流中?
而在我第一次将注释加入到 ClickPrompt 中的时候,我犹豫了很久。过去的经典编程范式,并不允许将思考过程作为注释到其中。而在未来,我们就会遇到 Prompt 即注释、Prompt 即接口、Prompt 即代码。
所以,将 prompt 视为代码,以更好的管理 prompt,将它与我们的软件开发生命周期结合,将是作为经典程序员要考虑的点。除此,我们还需要考虑:
- 版本控制与协作:使用 Git 管理 Prompt 变更。
- 用于测试和调试的工具:建立 Prompt 自动化测试集。
- 适用于不同 LLM 的 prompt 接口模式:抽象层设计。


