NLP算法:做了四年BERT,我发现大模型时代Prompt才是真技术
BERT刚火那年,我为一个NER任务调了整整两周超参数。学习率从3e-5调到2e-5,batch size从16改到32,warmup比例从0.1改到0.15。最后F1提升了0.8个点,我在周报里写了三行重点。
三年后,我接到一个新任务:用GPT做一个合同审查助手。没有训练集,不需要调学习率,不需要写model.fit。我要做的,是写一段自然语言,告诉模型"你是一个法务助手,请从合同里找出风险条款,并按JSON格式输出"。
我把那段Prompt复制进测试框,点了运行。模型输出的JSON结构完整,字段也对,还附带了一句"建议由法务进一步审核"。我盯着屏幕看了很久,脑子里只有一个念头:
我过去四年练的那些炼丹技巧,好像突然不值钱了。
一、从调参到调句子
BERT时代,我的工作流是固定的:收集数据、清洗标注、选预训练模型、调超参、导出、部署。每一个环节我都很熟,尤其是超参数调优,我曾经以为那是我最核心的竞争力。
GPT出来后,工作流变了。大部分任务不需要从头训练,甚至不需要微调。你只需要写一个好的Prompt,模型就能做分类、抽取、摘要、问答。我花了三个月才接受这个事实:模型能力不再是稀缺资源,稀缺的是"怎么把任务准确地表达给模型"。
"你这叫Prompt Engineering?"我师兄看完我写的一段Prompt,皱着眉说,“不就是写几句提示词吗?”
"你来试试。“我把键盘推给他,“让这个模型从一段客服对话里提取用户情绪和核心诉求,不准 hallucination,输出要严格JSON。”
他写了五分钟,跑了三遍,输出要么JSON格式错误,要么把"用户抱怨物流慢"识别成"用户对产品质量不满”。
"好像没那么简单。"他承认。
Prompt不是简单的"告诉模型干什么"。它是一门接口设计:你要明确任务目标、定义输入输出格式、约束边界条件、提供示例、引导推理步骤,还要防止模型胡说。一个好的Prompt,效果可能比一次粗粒度微调还好。
我开始系统学习Prompt Engineering。Chain-of-Thought、Few-shot、Role Prompting、Instruction Tuning、JSON Mode、Function Calling……每一个概念我都动手试。我发现,这些技术本质上不是"怎么写提示词",而是"怎么和大模型有效地沟通"。
二、Prompt不是咒语,是接口设计
我早期写Prompt犯过两个典型错误。第一个是把Prompt写得太短。比如"提取这段话的关键信息",结果模型每次输出的字段都不一样,有的带"时间",有的不带,有的把"金额"和"数量"混为一谈。
第二个错误是把Prompt写得太啰嗦。我在Prompt里塞了十几条规则,模型反而抓不住重点,输出自相矛盾。
后来我形成了一个固定模板,把Prompt拆成六个部分:
- 角色定义:“你是一位资深财务审核员……”
- 任务描述:“请从以下发票文本中提取指定字段。”
- 输入格式:“输入为OCR识别后的文本,可能包含换行和错别字。”
- 输出格式:“请严格按以下JSON Schema输出……”
- 约束条件:“如果字段缺失,请填null,不要编造;金额只保留数字,不要带单位。”
- 示例:“请参考以下输入输出示例……”
输出格式约束尤其重要。我们用JSON Schema把输出结构死锁,配合OpenAI的response_format={"type": "json_object"}或者本地模型的输出解析,基本能保证下游代码稳定消费。
{
"name": "extract_invoice",
"strict": true,
"schema": {
"type": "object",
"properties": {
"invoice_no": {"type": "string"},
"amount": {"type": "number"},
"date": {"type": "string", "format": "date"},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {"type": "string"},
"quantity": {"type": "integer"},
"unit_price": {"type": "number"}
},
"required": ["name", "quantity", "unit_price"]
}
}
},
"required": ["invoice_no", "amount", "date", "items"]
}
}
这套模板让我从一个"炼丹师"变成了一个"接口设计师"。我不再纠结学习率,而是纠结"这句话是不是足够无歧义"。
三、Chain-of-Thought:让模型把思考过程说出来
Prompt Engineering里,对我冲击最大的技术是Chain-of-Thought(CoT)。
以前做BERT分类,模型内部怎么做判断我们完全不知道,只能看结果。现在有了大模型,你可以让它"把思考过程说出来"。
我第一次用CoT是在一个数学应用题场景。用户问:“一件商品原价200元,先涨价20%,再降价20%,最后价格是多少?“直接让模型回答,它可能脱口而出"200元”。但如果你在Prompt里加一句"请一步一步思考”,模型会写出"涨价后是240元,降价20%是192元",最终答案正确。
这个简单的技巧,在复杂推理任务上效果惊人。我们对一批财务计算题做了对比:
| Prompt类型 | 准确率 |
|---|---|
| 直接回答 | 61% |
| CoT(请逐步思考) | 89% |
| CoT + Few-shot示例 | 94% |
我们在所有需要多步推理的场景里都加了CoT。合同风险判断、医疗病历摘要、投资决策辅助……让模型先列证据、再下结论,不仅准确率提高,输出的可解释性也强了很多。
但CoT不是万能的。有些简单任务加了CoT反而更慢,而且会让输出变长。我们后来做了动态CoT:模型先判断任务复杂度,复杂任务才启用CoT。判断逻辑本身也是一个小Prompt:“以下问题是否需要多步推理?只需回答’是’或’否’。”
四、Function Calling:让模型学会用工具
Function Calling是我认为大模型应用最重要的能力之一。它让模型不再只是"说话",而是可以"调用外部工具"。
举个例子,用户问:"查一下我们公司上个月销售额排名前五的客户。"模型自己不知道答案,但你可以给它定义一个函数query_sales_top_customers(start_date, end_date, limit)。模型会判断需要调用这个函数,并生成正确的参数。你的系统执行函数,把结果返回给模型,模型再组织语言回答用户。
# 简化的Function Calling流程
tools = [
{
"type": "function",
"function": {
"name": "query_sales_top_customers",
"description": "查询指定时间范围内销售额最高的客户",
"parameters": {
"type": "object",
"properties": {
"start_date": {"type": "string", "format": "date"},
"end_date": {"type": "string", "format": "date"},
"limit": {"type": "integer", "default": 5}
},
"required": ["start_date", "end_date"]
}
}
}
]
response = client.chat.completions.create(
model="gpt-4",
messages=messages,
tools=tools,
tool_choice="auto"
)
Function Calling的设计难点不在技术实现,在Prompt设计。你要让模型明白:
- 什么时候该调用工具,什么时候直接回答
- 参数类型和必填项
- 调用失败时怎么处理
- 多个工具之间怎么组合
我为一个智能客服系统设计了十几个工具:查订单、查物流、申请售后、预约上门、转人工。模型要能从用户的话里识别意图,选择正确工具,提取参数。这比做一个BERT意图分类模型复杂得多,因为意图和参数是动态组合的,不是固定分类。
我们内部有一个说法:Function Calling让Prompt从"单次输入输出"变成了"多轮状态机"。NLP工程师的价值,从"训练一个分类器"变成了"设计一个能正确调用工具的智能体"。
五、Prompt版本管理与评测:从手艺到工程
Prompt写多了,我发现一个严重问题:Prompt没法像代码一样版本管理。今天改了一句,明天又改回来,谁也不知道哪个版本效果最好。尤其是在多人在一个项目上协作时,每个人都在本地调Prompt,线上跑着的是哪一版都成了谜。
我们引入了PromptHub模式。所有Prompt都放到Git仓库里,按业务场景和版本号管理。每个Prompt文件包含:基础模板、变量占位符、Few-shot示例、输出Schema、适用模型、测试用例。任何人修改都要走PR review,并且必须附带A/B测试结果。
# prompt_invoice_extract_v2.yaml
name: invoice_extract
version: 2.1.0
model: gpt-4-turbo
system: |
你是一位财务审核助手。请从发票文本中提取指定字段,严格按JSON Schema输出。
user_template: |
发票文本:
{{ocr_text}}
请提取字段:invoice_no, amount, date, items。
schema: schemas/invoice_v2.json
shots:
- input: "示例1"
output: "{...}"
eval_cases: eval/invoice_v2.csv
评测也必须有。我们建立了Prompt评测Pipeline:
- 准备测试集,每个case有输入和期望输出
- 对当前Prompt版本批量跑模型
- 用规则匹配和LLM-as-a-Judge两种方式打分
- 输出准确率、格式正确率、幻觉率、平均token数
- 和上一版本对比,只有全面优于或至少不劣化才合入
hallucination 检测是金融和医疗场景的重点。我们用了一个小技巧:在Prompt里要求模型对不确定的字段填null,并在输出里加上confidence字段。如果confidence低于阈值,自动触发人工复核。
"你现在不写模型了,改成写测试用例了?"我师弟问。
" Prompt 就是我的模型。"我说,“测试用例就是验证集。只不过训练变成了迭代Prompt,部署变成了调用API。”
六、后记:NLP工程师的新语言
转型做Prompt Engineering一年多,我不再怀念BERT时代的炼丹炉。不是因为它不好,而是因为战场变了。
大模型时代,NLP工程师的核心能力从"训练模型"转向"设计人与模型的交互语言"。我们要理解语言的多义性、任务的边界、输出的可控性、多轮对话的状态管理。这些能力,恰恰是纯后端工程师和Prompt新手不具备的。
我越来越觉得,Prompt Engineering不是NLP的终点,而是NLP的一种新形态。以前我们训练模型去理解语言,现在我们要用语言去引导模型。我们研究的不是词的向量表示,而是指令的结构和语义。
如果你也是NLP出身,想往大模型应用方向转,我的建议如下:
第一,把Prompt Engineering当作一门系统工程来学,不是玄学。要理解In-Context Learning、Few-shot、CoT、Self-Consistency、ReAct这些范式的原理和适用场景。
第二,练习输出结构化控制。JSON Schema、Function Calling、工具调用、输出校验,是Prompt落地的基本能力。模型输出再聪明,不能被下游系统消费就没价值。
第三,建立Prompt版本管理和评测体系。不要一个人本地调来调去,要有版本、有测试、有回滚。Prompt是产品的一部分,要像代码一样被管理。
第四,别丢掉你的语言学直觉。分词、句法、语义、指代消解、歧义,这些老知识在Prompt设计里依然有用。你知道一句话为什么有歧义,才能更好地设计无歧义的指令。
那天我又打开那个NER项目的代码仓库,看着当年密密麻麻的超参数日志,心里没有遗憾。那些训练让我理解了模型能做什么、不能做什么。现在我只是换了一种方式去驾驭它——不是调它的权重,而是调我说话的方式。
想入门 AI 大模型却找不到清晰方向?备考大厂 AI 岗还在四处搜集零散资料?别再浪费时间啦!2025 年 AI 大模型全套学习资料已整理完毕,从学习路线到面试真题,从工具教程到行业报告,一站式覆盖你的所有需求,现在全部免费分享!
👇👇扫码免费领取全部内容👇👇

一、学习必备:100+本大模型电子书+26 份行业报告 + 600+ 套技术PPT,帮你看透 AI 趋势
想了解大模型的行业动态、商业落地案例?大模型电子书?这份资料帮你站在 “行业高度” 学 AI:
1. 100+本大模型方向电子书

2. 26 份行业研究报告:覆盖多领域实践与趋势
报告包含阿里、DeepSeek 等权威机构发布的核心内容,涵盖:
- 职业趋势:《AI + 职业趋势报告》《中国 AI 人才粮仓模型解析》;
- 商业落地:《生成式 AI 商业落地白皮书》《AI Agent 应用落地技术白皮书》;
- 领域细分:《AGI 在金融领域的应用报告》《AI GC 实践案例集》;
- 行业监测:《2024 年中国大模型季度监测报告》《2025 年中国技术市场发展趋势》。
3. 600+套技术大会 PPT:听行业大咖讲实战
PPT 整理自 2024-2025 年热门技术大会,包含百度、腾讯、字节等企业的一线实践:

- 安全方向:《端侧大模型的安全建设》《大模型驱动安全升级(腾讯代码安全实践)》;
- 产品与创新:《大模型产品如何创新与创收》《AI 时代的新范式:构建 AI 产品》;
- 多模态与 Agent:《Step-Video 开源模型(视频生成进展)》《Agentic RAG 的现在与未来》;
- 工程落地:《从原型到生产:AgentOps 加速字节 AI 应用落地》《智能代码助手 CodeFuse 的架构设计》。
二、求职必看:大厂 AI 岗面试 “弹药库”,300 + 真题 + 107 道面经直接抱走
想冲字节、腾讯、阿里、蔚来等大厂 AI 岗?这份面试资料帮你提前 “押题”,拒绝临场慌!

1. 107 道大厂面经:覆盖 Prompt、RAG、大模型应用工程师等热门岗位
面经整理自 2021-2025 年真实面试场景,包含 TPlink、字节、腾讯、蔚来、虾皮、中兴、科大讯飞、京东等企业的高频考题,每道题都附带思路解析:

2. 102 道 AI 大模型真题:直击大模型核心考点
针对大模型专属考题,从概念到实践全面覆盖,帮你理清底层逻辑:

3. 97 道 LLMs 真题:聚焦大型语言模型高频问题
专门拆解 LLMs 的核心痛点与解决方案,比如让很多人头疼的 “复读机问题”:

三、路线必明: AI 大模型学习路线图,1 张图理清核心内容
刚接触 AI 大模型,不知道该从哪学起?这份「AI大模型 学习路线图」直接帮你划重点,不用再盲目摸索!

路线图涵盖 5 大核心板块,从基础到进阶层层递进:一步步带你从入门到进阶,从理论到实战。

L1阶段:启航篇丨极速破界AI新时代
L1阶段:了解大模型的基础知识,以及大模型在各个行业的应用和分析,学习理解大模型的核心原理、关键技术以及大模型应用场景。

L2阶段:攻坚篇丨RAG开发实战工坊
L2阶段:AI大模型RAG应用开发工程,主要学习RAG检索增强生成:包括Naive RAG、Advanced-RAG以及RAG性能评估,还有GraphRAG在内的多个RAG热门项目的分析。

L3阶段:跃迁篇丨Agent智能体架构设计
L3阶段:大模型Agent应用架构进阶实现,主要学习LangChain、 LIamaIndex框架,也会学习到AutoGPT、 MetaGPT等多Agent系统,打造Agent智能体。

L4阶段:精进篇丨模型微调与私有化部署
L4阶段:大模型的微调和私有化部署,更加深入的探讨Transformer架构,学习大模型的微调技术,利用DeepSpeed、Lamam Factory等工具快速进行模型微调,并通过Ollama、vLLM等推理部署框架,实现模型的快速部署。

L5阶段:专题集丨特训篇 【录播课】

四、资料领取:全套内容免费抱走,学 AI 不用再找第二份
不管你是 0 基础想入门 AI 大模型,还是有基础想冲刺大厂、了解行业趋势,这份资料都能满足你!
现在只需按照提示操作,就能免费领取:
👇👇扫码免费领取全部内容👇👇

2025 年想抓住 AI 大模型的风口?别犹豫,这份免费资料就是你的 “起跑线”!
更多推荐

所有评论(0)