上一篇我们聊了是怎么"划重点"读懂你的话的。
不过仍有不少读者, 在看完之后, 或许就会心生这样的想法: “虽说原理已然明白, 然而为何我所使用的人工智能, 老是给出答非所问的回应呢? ”。
答案是十分简单的, 你与AI进行“说话”的此种方式, 直接对它的智商表现起到了决定性作用。
说是相同的一个GPT - 4, 有的人可以促使它撰写出具备专业级别的代码, 有的人却是哪怕想让它罗列一份清单之类的都遭遇到难事, 这是怎么回事呢。
差距不在模型,而在提示工程( )。
今儿这一篇, 我将要把, Top-p, 零样本提示, 思维链, 分词, 模型选型, 这些听着特别唬人的概念, 统统翻译成你能够直接着手去做的话语。
看完这篇,你对大模型的掌控力会提升一个档次。
① 三个参数:调AI就像调咖啡机
采取大模型API之际, 你将目睹若干参数, 好多人径直进行默认设定, 随后便抱怨“AI不稳定”。
这三个参数,本质上是在控制AI的"性格":
(温度):控制"保守vs发散"
温度值
效果
适用场景
0-0.3
精准、确定、重复率高
代码生成、数学计算、事实问答
0.3-0.7
平衡、自然
日常对话、邮件撰写、客服
0.7-2.0
创新、发散、可能胡言乱语
诗歌创作、头脑风暴、广告文案
其原理是这样的, 很简单, 温度越是低的时候, AI 就越是倾向于去选择概率最高的词, 而温度要是越高的话, 就越会给那些低概率的词以机会。
如同掷骰子的情况, 在低温的状况下, AI仅仅只会选择“6”这个选项(是最具可能性的), 而在高温的时候, 它存在着选择“1”的可能性(属于出其不意的那种情况)。
Top-k:只让AI在"前k名"里选
把所有候选词按概率排序,只保留前k个,再从中采样。
Top-p(核采样):动态调整候选范围
不是按照固定的数量, 而是依据累积的概率, 从高到低进行累加, 一直到总和达到p(比如说0.9), 将这些词当作候选集。
Top - p相较于Top - k更具聪慧特质,这是由于在某些情形中前10个词占据了百分之九十九的概率, 而在另外一些情形里前100个词才占到百分之九十, 并且Top - p具备自适应的特性。
实战建议:
② 三种提示方式:给示例就是给模板
根据你给AI示例的数量,提示分为三种:
零样本(Zero-shot):直接下指令
请把下面这段话翻译成英文:你好,世界。适应场景为, 简单与显著的特定任务, 因预训练之故, 当下的模型, 诸如等, 其零样本的效能已然十分强大。
单样本(One-shot):给一个例子
文本:这家餐厅的服务太慢了。情感:负面 文本:Datawhale的AI课程非常棒!情感:AI会模仿示例的格式,自动补全"正面"。
少样本(Few-shot):给多个例子
文本:这家餐厅的服务太慢了。情感:负面 文本:这部电影情节很平淡。情感:中性 文本:Datawhale的AI课程非常棒!情感:示例数量越是增多, AI 对于任务边界的理解就越是精准无误。尤其是在处理那些具备复杂格式、特定风格以及细微差别的情况之时, 少样本提示所产生的效果更是极为突出显著。
关键心法:
③ 三大实战技巧:让AI从"能用"变"好用"
技巧一:角色扮演(Role-)
给AI一个身份,它的回答风格、语气、知识范围会立刻改变。
你现在是资深Python编程专家。请解释GIL是什么,要让初学者也能听懂。vs
你现在是大学教授,正在给计算机系本科生上课。请解释GIL是什么。同一个问题, 存在着两种角色, 有着两种回答风格, 角色扮演是能够在零成本的情况下提升输出质量的神器。
技巧二:上下文示例(In- )
不仅告诉AI"做什么",还告诉它"怎么做"和"输出格式"。
我需要你从产品评论中提取产品名称和用户情感。请严格按照下面的JSON格式输出。 评论:这款"星尘"笔记本电脑的屏幕显示效果惊人,但我不太喜欢它的键盘手感。 输出:{"product_name": "星尘笔记本电脑", "sentiment": "混合"} 评论:我刚买的"声动"耳机音质很棒,续航也超出了我的预期! 输出:AI会依照你所给予的格式进行自动临摹, 这比讲出一百句“请用JSON格式输出”还要具有效力, 是这样的呢。
技巧三:思维链(Chain-of-, CoT)
对于需要推理、计算、多步骤思考的问题,在提示末尾加一句:
"请一步一步地思考。"
效果有多夸张?看一个真实案例:
不加CoT:
问:一个篮球队赛季1打了80场,胜率60%。赛季2打了15场,赢了12场。总胜率是多少? AI可能直接猜一个错误答案。加CoT:
问:……总胜率是多少?请一步一步地思考。 AI输出: 1. 赛季1赢了:80 × 60% = 48场 2. 总比赛数:80 + 15 = 95场 3. 总胜利数:48 + 12 = 60场 4. 总胜率:60/95 ≈ 63.16%一句话, 能将AI的数学准确率, 从百分之三十提升至百分之九十, 这便是思维链所形成的威力。
④ 分词的秘密:为什么你的长文档总是"超字数"?
有不少人觉得大模型的那个“上下文窗口”是依照字数去计算的, 这样的认知是错误的, 实际上, 它是按照Token来进行计算的。
什么是Token?
被称为大模型的事物, 无法理解文字, 它仅仅能够看懂数字, 负责将文字切割成最小数字单元的分词器(), 所切出的这个单元被称作Token。
关于关键认知, 存在这样的情况, 即1.5个汉字大约等同于1个Token, 同时, 0.75个英文单词大约等同于1个Token。标点、数字、代码、URL、生僻词, 这些都会对token数产生影响, 不存在绝对精确的换算公式。
这意味着:
字数约为两千字的中文文章, 大约等同于是一千到一千五百个Token。
该模型具备的那种8K上下文窗口, 实际上仅仅能够装入差不多大概5000到6000个汉字。
更反直觉的是:同一个词,大小写不同,Token数可能不同。
还有更坑的:
这对智能体开发者意味着什么?
使用上下文管理时,要知道你的“长记忆”并非没有限制, 8K、128K这些数值所代表的是Token上限, 并非是我们平常思维理解意义之中的字数上限而采用计数, API成本又是按照Token来计费的, 中文相较于英文会“省Token”, 原因在于中文的信息密度更高提供信息能力强, 提醒为模型加入提示词的时候不能单纯设计, 还需要避免对于特别少见的拼写, 要留意英文单词需注意区分空格, 也要注意大小写的严格规范, 尽量减少出现不必要的Token被消耗的情况,最后在模型选择方面, 有一张表能够完善且妥当搞定你对于模型的抉择此项事宜。
面对几百个大模型,怎么选?
核心原则:不是选"最强"的,而是选"最适合"的。
考量维度
关键问题
建议
性能
任务需要推理、代码、还是创意?
查LMSys Arena排行榜
成本
预算多少?调用频率高吗?
闭源按Token计费,开源需GPU
速度
需要实时交互吗?
选轻量级模型(GPT-3.5、 Haiku)
上下文窗口
需要处理长文档吗?
选128K+的模型(、)
部署方式
数据敏感吗?
敏感数据:本地开源模型;
一般场景:API
生态
需要社区支持和工具链吗?
选主流模型(GPT、Llama、Qwen)
闭源模型(开箱即用)
开源模型(可定制):
新手建议:
写在最后
工程提示并非是那种玄之又玄的学问, 它属于一门涉及怎样跟人工智能切实、有用地进行交流沟通的实用性质的技术。
核心心法就三条:
1. 说清楚你要什么(角色、格式、约束条件)
2. 给示例比给指令更有效(少样本 > 零样本)
3. 复杂任务让它"一步一步想"(思维链)
加上, 对于参数的理解, 也就是调性格;, 对于Token的认知, 亦即用此去控制成本与长度;, 对于模型的选择, 即要匹配相应场景, , 你便已然超越了百分之九十的AI使用者。
你在用大模型时,最常用的提示技巧是什么?评论区聊聊