計(jì)與幻覺(jué)避免:從原理到落地的實(shí)用指南)
簡(jiǎn)介一份來(lái)自廈門(mén)大學(xué)的DeepSeek專(zhuān)題學(xué)習(xí)資料由軟件和人工智能專(zhuān)家程希冀主講圍繞提示詞設(shè)計(jì)、幻覺(jué)避免與應(yīng)用展開(kāi)。內(nèi)容面向AI開(kāi)發(fā)研究人員、技術(shù)愛(ài)好者以及職場(chǎng)、教育、家庭等各類(lèi)使用者系統(tǒng)對(duì)比推理型DeepSeek-R1與非推理型DeepSeek-V3模型的性格差異指出前者適合數(shù)學(xué)、編程、邏輯任務(wù)后者適合快速問(wèn)答與日常閑聊并分別給出提問(wèn)策略。其中詳細(xì)講解充分的背景信息、六何分析法、Few-shot少量樣本提示、結(jié)構(gòu)化分隔符等實(shí)用技巧配合示例演示如何讓DeepSeek制作炫酷圖表和動(dòng)畫(huà)。針對(duì)大模型幻覺(jué)提出限制知識(shí)來(lái)源、明確時(shí)間界限、引入檢索增強(qiáng)框架等應(yīng)對(duì)思路同時(shí)簡(jiǎn)要介紹Manus智能體的特點(diǎn)。資源為單個(gè)PDF文檔大小2.27MB目前已有248人學(xué)習(xí)適合希望系統(tǒng)掌握提示詞設(shè)計(jì)、降低AI輸出偏差的讀者。1. 一份聚焦DeepSeek提示詞設(shè)計(jì)與幻覺(jué)避免的PDF為什么值得你花兩小時(shí)重讀同樣一段需求有人讓DeepSeek輸出三頁(yè)正確的廢話有人幾步就問(wèn)出能直接落地的方案差距不在模型本身而在提示詞怎么寫(xiě)、幻覺(jué)怎么防。廈門(mén)大學(xué)這份PDF把整套用法收在三個(gè)關(guān)鍵詞里提示詞設(shè)計(jì)、幻覺(jué)避免、應(yīng)用——先說(shuō)清模型如何理解你的話再給出能復(fù)用的模板和約束寫(xiě)法最后落在API調(diào)用、本地部署與業(yè)務(wù)接入。它不是泛泛科普更像一份給從業(yè)者的檢查清單每一節(jié)都能對(duì)應(yīng)到工位上正在發(fā)生的翻車(chē)現(xiàn)場(chǎng)。適合正在用DeepSeek做內(nèi)容生成、數(shù)據(jù)分析或準(zhǔn)備把它接入內(nèi)部系統(tǒng)的人。讀完你大概率會(huì)想把手上所有prompt重寫(xiě)一遍。2. 提示詞設(shè)計(jì)先搞懂DeepSeek怎么“讀”你的話再?zèng)Q定怎么寫(xiě)提示詞設(shè)計(jì)不是把需求寫(xiě)長(zhǎng)。DeepSeek讀提示詞的方式和搜索引擎索引關(guān)鍵詞完全不同——它先對(duì)整個(gè)上下文做注意力建模再逐詞生成。這意味著指令所在的位置、同一句話的重復(fù)次數(shù)、上下文里互相沖突的信息都會(huì)直接影響輸出走向。這也是為什么同樣是“寫(xiě)一份產(chǎn)品分析”有人只能拿到泛泛而談的套話有人拿到的內(nèi)容改改用就可以發(fā)出去。技術(shù)社區(qū)里現(xiàn)在沉淀了大量提示詞模板但直接照搬的命中率并不高因?yàn)槟0迕撾x了你自己的數(shù)據(jù)格式和業(yè)務(wù)語(yǔ)境。與其收集模板不如先把DeepSeek理解文本的幾條底層規(guī)律搞清楚系統(tǒng)提示詞管人設(shè)用戶(hù)消息管任務(wù)規(guī)則要短句化約束要給“做不到時(shí)的退路”。下面幾個(gè)小節(jié)把這條主線拆開(kāi)講。2.1 系統(tǒng)提示詞與應(yīng)用提示詞的分工人設(shè)、任務(wù)和邊界到底劃在哪系統(tǒng)提示詞負(fù)責(zé)定“人設(shè)與規(guī)則”用戶(hù)消息負(fù)責(zé)給“本次任務(wù)”。常見(jiàn)做法是把系統(tǒng)提示詞當(dāng)成一份長(zhǎng)期有效的崗位說(shuō)明書(shū)把用戶(hù)消息當(dāng)成當(dāng)次派單。需要留意的是DeepSeek對(duì)這兩者的遵循度不完全一樣在同一輪對(duì)話里越靠近消息末尾的用戶(hù)指令影響越大而系統(tǒng)提示詞一旦進(jìn)入長(zhǎng)對(duì)話會(huì)被后續(xù)內(nèi)容逐步稀釋。所以關(guān)鍵規(guī)則不能只在系統(tǒng)提示詞里寫(xiě)一遍重要任務(wù)需要在用戶(hù)消息里再?gòu)?fù)述一次精簡(jiǎn)版。下面是一個(gè)可以直接上手的雙段結(jié)構(gòu)角色和規(guī)則放在系統(tǒng)提示詞里材料與具體問(wèn)題放在用戶(hù)消息里[系統(tǒng)提示詞] 你是一名有十年經(jīng)驗(yàn)的B端產(chǎn)品分析師。 規(guī)則 1. 所有結(jié)論必須基于給定材料材料之外的推斷要明確標(biāo)注“推測(cè)”。 2. 輸出控制在600字以?xún)?nèi)用Markdown分節(jié)。 3. 如果材料不足以支撐結(jié)論直接說(shuō)“材料不足”不要補(bǔ)充想象中的細(xì)節(jié)。 [用戶(hù)消息] 以下是某SaaS產(chǎn)品的試用記錄與客服工單請(qǐng)分析留存率偏低的原因……把角色寫(xiě)進(jìn)系統(tǒng)提示詞把原始材料放在用戶(hù)消息里目的是讓模型在生成每個(gè)詞時(shí)都能就近參考最新位置的原始信息減少憑空發(fā)揮。規(guī)則部分用短句編號(hào)不要用一大段描述性文字因?yàn)槟P蛯?duì)祈使句的遵循度明顯高于模糊描述。比如“如果材料不足直接說(shuō)材料不足”就比“請(qǐng)不要給出沒(méi)有依據(jù)的推測(cè)”更有效前者給了明確退路后者只是在暗示一個(gè)模糊的行為邊界。2.2 一套能直接抄的提示詞模板角色、任務(wù)、格式與約束四要素把提示詞設(shè)計(jì)收斂成四個(gè)要素是我自己一直在用的做法。角色一句話帶過(guò)任務(wù)寫(xiě)明對(duì)象與目標(biāo)格式規(guī)定輸出骨架約束寫(xiě)清楚“做不到怎么辦”。多數(shù)人寫(xiě)提示詞只寫(xiě)任務(wù)丟掉了格式和約束導(dǎo)致輸出結(jié)構(gòu)五花八門(mén)幻覺(jué)也隨之高發(fā)——因?yàn)槟P蜎](méi)有收到“信息不足時(shí)怎么辦”的指令只能按訓(xùn)練時(shí)的慣性補(bǔ)全一段合理但虛假的數(shù)據(jù)。角色你是角色擅長(zhǎng)能力范圍。 任務(wù)針對(duì)對(duì)象完成目標(biāo)。背景信息如下信息。 格式用結(jié)構(gòu)輸出包含必需項(xiàng)忽略非必需項(xiàng)。 約束硬性限制。如果條件不滿(mǎn)足回復(fù)替代內(nèi)容。這套模板看起來(lái)樸素但把最容易翻車(chē)的幾個(gè)點(diǎn)直接釘死了。比如做內(nèi)容總結(jié)時(shí)約束里寫(xiě)“如果原文沒(méi)有提到數(shù)據(jù)就用‘未給出’代替”模型就不會(huì)強(qiáng)行編一個(gè)百分比。做數(shù)據(jù)分析時(shí)格式里寫(xiě)“先列結(jié)論再給依據(jù)”模型就不會(huì)把分析過(guò)程寫(xiě)成流水賬。角色設(shè)置不要堆形容詞“資深分析師”和“有十年經(jīng)驗(yàn)的資深分析師”對(duì)生成結(jié)果的影響微乎其微真正起作用的是后面三條任務(wù)是否明確、格式是否固定、約束是否給了退路。2.3 上下文長(zhǎng)度與提示詞密度寫(xiě)多長(zhǎng)才算“夠用”DeepSeek的上下文窗口能放下相當(dāng)長(zhǎng)的內(nèi)容但這不意味著提示詞越長(zhǎng)越好。提示詞一長(zhǎng)兩個(gè)副作用立刻出現(xiàn)一是關(guān)鍵指令被淹沒(méi)在背景信息里模型的注意力被無(wú)關(guān)內(nèi)容分走二是推理計(jì)算量上升響應(yīng)變慢。密度比長(zhǎng)度重要這一點(diǎn)在DeepSeek導(dǎo)出的大量實(shí)測(cè)例子里反復(fù)出現(xiàn)。常見(jiàn)做法是把背景信息壓成短語(yǔ)列表而不是成段貼原文指令放在背景之后、問(wèn)題之前同一個(gè)約束只寫(xiě)一遍不要重復(fù)強(qiáng)調(diào)。重復(fù)在某些情況下會(huì)被模型理解為“這件事很重要所以我得多寫(xiě)一點(diǎn)”反而誘導(dǎo)它展開(kāi)。另一個(gè)高頻問(wèn)題是“怎么繼承上一個(gè)對(duì)話”——原理上就是把歷史消息逐條塞進(jìn)messages數(shù)組但繼承歷史的同時(shí)也會(huì)繼承歷史里的幻覺(jué)污染。所以我的習(xí)慣是長(zhǎng)任務(wù)分段處理每段的messages只保留與當(dāng)前步驟相關(guān)的歷史摘要而不是把前十分鐘的對(duì)話原樣全部帶上。3. 幻覺(jué)避免讓DeepSeek從“愛(ài)編”到“承認(rèn)不知道”的工程手段幻覺(jué)避免是提示詞設(shè)計(jì)里最值得單獨(dú)拿出來(lái)講的部分。模型生成幻覺(jué)不是它“故意撒謊”而是它在做概率補(bǔ)全當(dāng)問(wèn)題觸及知識(shí)盲區(qū)它會(huì)按最相似的訓(xùn)練樣本補(bǔ)全一段看起來(lái)合理的回答?;糜X(jué)避免的目標(biāo)不是讓模型永不犯錯(cuò)而是把錯(cuò)誤控制在能被發(fā)現(xiàn)、能被修正的范圍內(nèi)。3.1 幻覺(jué)的三個(gè)來(lái)源訓(xùn)練數(shù)據(jù)、解碼隨機(jī)性與上下文誤導(dǎo)第一個(gè)來(lái)源是訓(xùn)練數(shù)據(jù)。數(shù)據(jù)里本身存在錯(cuò)誤、過(guò)時(shí)或矛盾的信息模型學(xué)到的是“這類(lèi)問(wèn)題通常有答案”而不是“這次有答案”。一旦問(wèn)題落在知識(shí)盲區(qū)它就會(huì)按統(tǒng)計(jì)規(guī)律補(bǔ)全。第二個(gè)來(lái)源是解碼隨機(jī)性。temperature大于0時(shí)每次采樣概率不完全相同低概率token也有機(jī)會(huì)被選中。越是開(kāi)放的任務(wù)越容易選到“聽(tīng)起來(lái)合理但不準(zhǔn)確”的路徑。第三個(gè)來(lái)源是上下文誤導(dǎo)。前幾輪對(duì)話里你輸入的錯(cuò)誤事實(shí)模型會(huì)當(dāng)作前提吸收然后順著推導(dǎo)出更多錯(cuò)誤結(jié)論。這三個(gè)來(lái)源對(duì)應(yīng)三種不同的治理手段。數(shù)據(jù)問(wèn)題靠約束性提示詞與檢索增強(qiáng)兜底解碼隨機(jī)性靠調(diào)低temperature和固定隨機(jī)種子來(lái)壓制上下文誤導(dǎo)靠對(duì)話結(jié)構(gòu)設(shè)計(jì)與定期清空歷史來(lái)處理。只靠一個(gè)方法解決不了所有幻覺(jué)這一點(diǎn)要先清楚。3.2 寫(xiě)進(jìn)提示詞的三句“防幻覺(jué)”話允許承認(rèn)不知道、要求標(biāo)注、要求自檢提示詞層面有三句話對(duì)DeepSeek特別有效我?guī)缀趺總€(gè)生產(chǎn)級(jí)模板里都會(huì)帶上一句半句。第一句是“如果你不確定直接說(shuō)無(wú)法確定”這是給模型一個(gè)體面的退路避免它為了完成任務(wù)而硬編。第二句是“引用材料時(shí)標(biāo)注來(lái)源編號(hào)”這能強(qiáng)迫模型把結(jié)論和依據(jù)綁定。第三句是“輸出前檢查一遍每個(gè)結(jié)論是否都有出處”這等于讓模型在回答前多過(guò)一道自我校驗(yàn)。角色你是數(shù)據(jù)標(biāo)注規(guī)則審核助手。 任務(wù)對(duì)照標(biāo)注規(guī)范檢查以下標(biāo)注結(jié)果是否正確。 格式逐條輸出“結(jié)論 | 原因 | 建議”結(jié)論只能是“通過(guò)/不通過(guò)/存疑”。 約束 1. 規(guī)范里沒(méi)有寫(xiě)明的情況輸出“存疑”不要自行推斷。 2. 如果某條結(jié)論的依據(jù)不足直接在原因里寫(xiě)“依據(jù)不足”。 3. 不要為了通過(guò)率而放寬規(guī)則。數(shù)據(jù)標(biāo)注場(chǎng)景里幻覺(jué)是最容易翻車(chē)的點(diǎn)因?yàn)闃?biāo)注結(jié)果會(huì)被當(dāng)成訓(xùn)練數(shù)據(jù)反哺模型。上面這個(gè)模板的思路是把“存疑”作為合法輸出項(xiàng)讓模型有權(quán)拒絕回答。加了這句話之后模型會(huì)明顯更傾向于在邊界情況說(shuō)“存疑”而不是硬給一個(gè)可能帶偏后續(xù)任務(wù)的結(jié)論。3.3 外部校驗(yàn)與檢索增強(qiáng)提示詞兜不住的用工程兜提示詞層面的約束能壓低幻覺(jué)概率但攔不住所有。生產(chǎn)環(huán)境里更可靠的做法是加一層外部校驗(yàn)生成完關(guān)鍵內(nèi)容后用獨(dú)立腳本對(duì)數(shù)字、日期、產(chǎn)品名做比對(duì)。下面是一個(gè)簡(jiǎn)單的校驗(yàn)?zāi)_本用來(lái)掃描模型輸出里可能存在問(wèn)題的統(tǒng)計(jì)數(shù)據(jù)import re def verify_statements(text, known_facts): problems [] for sentence in re.split(r[。\n], text): if not sentence.strip(): continue for key, value in known_facts.items(): if key in sentence and str(value) not in sentence: problems.append(f{key} 與事實(shí)不符: 輸出中缺少 {value}) if re.search(r\d(\.\d)?%|\d{4}年, sentence): if not any(key in sentence for key in known_facts): problems.append(f無(wú)法核驗(yàn)的統(tǒng)計(jì)句: {sentence[:30]}) return problems facts {市場(chǎng)占有率: 34%, 用戶(hù)數(shù): 1200萬(wàn)} text 該產(chǎn)品市場(chǎng)占有率達(dá)到34%用戶(hù)數(shù)約1200萬(wàn)同比增長(zhǎng)明顯。 print(verify_statements(text, facts))邏輯說(shuō)明先把輸出按句切分再對(duì)每個(gè)句子做兩類(lèi)檢查。第一類(lèi)是關(guān)鍵詞命中的句子如果句子提到“市場(chǎng)占有率”但沒(méi)包含預(yù)期數(shù)值就判定為問(wèn)題句第二類(lèi)是包含百分比或年份但不在已知事實(shí)庫(kù)范圍內(nèi)的句子這類(lèi)句子雖然不一定是幻覺(jué)但值得人工復(fù)核。參數(shù)說(shuō)明known_facts是準(zhǔn)備好的事實(shí)字典re.split(r[。\n])控制切分粒度短信粒度也可以按“?!鼻杏⑽膬?nèi)容要額外加空格切分規(guī)則。更徹底的做法是RAG把知識(shí)庫(kù)切片、向量化、檢索再把檢索結(jié)果拼進(jìn)用戶(hù)消息讓模型“僅基于檢索內(nèi)容回答”。這套組合在DeepSeek上跑起來(lái)后幻覺(jué)率會(huì)明顯下降代價(jià)是多一次向量檢索和一段額外的提示詞模板。數(shù)據(jù)規(guī)模不大時(shí)用上面這種簡(jiǎn)單的規(guī)則校驗(yàn)就夠了不必一上來(lái)就上全套R(shí)AG基礎(chǔ)設(shè)施。4. DeepSeek應(yīng)用落地從最小API調(diào)用到完整業(yè)務(wù)接入提示詞設(shè)計(jì)得好只是第一步真正產(chǎn)生價(jià)值的是把DeepSeek接進(jìn)業(yè)務(wù)。這一章從最小可運(yùn)行的API調(diào)用講起再聊本地部署和接入工作流的常見(jiàn)模式。不少人的第一問(wèn)題是DeepSeek的API怎么調(diào)——答案比想象中簡(jiǎn)單用OpenAI兼容的SDK就能跑通。4.1 DeepSeek API最小調(diào)用示例用Python跑通你的第一個(gè)請(qǐng)求DeepSeek的API兼容OpenAI的接口格式所以直接用openai這個(gè)Python庫(kù)就能調(diào)用。先到開(kāi)放平臺(tái)申請(qǐng)一個(gè)API Key然后把下面這段代碼保存為deepseek_demo.py運(yùn)行import os from openai import OpenAI client OpenAI( api_keyos.environ[DEEPSEEK_API_KEY], base_urlhttps://api.deepseek.com ) def ask_deepseek(system_prompt, user_prompt, temperature0.3): resp client.chat.completions.create( modeldeepseek-chat, messages[ {role: system, content: system_prompt}, {role: user, content: user_prompt} ], temperaturetemperature, max_tokens1024, streamFalse ) return resp.choices[0].message.content system_prompt 你只依據(jù)給定資料回答問(wèn)題資料中沒(méi)有的信息直接說(shuō)不知道。 user_prompt 資料MySQL慢查詢(xún)?nèi)罩撅@示某SQL耗時(shí)3秒。問(wèn)題如何優(yōu)化這個(gè)SQL print(ask_deepseek(system_prompt, user_prompt))邏輯說(shuō)明先創(chuàng)建OpenAI客戶(hù)端指定base_url指向DeepSeek的接口地址api_key從環(huán)境變量讀取避免把密鑰寫(xiě)死在代碼里。chat.completions.create里傳了三樣?xùn)|西模型名、消息列表、采樣參數(shù)。參數(shù)說(shuō)明temperature控制隨機(jī)性事實(shí)型任務(wù)設(shè)在0.1到0.3之間創(chuàng)意型任務(wù)可以上調(diào)到0.7左右max_tokens限制回答長(zhǎng)度設(shè)為1024意味著約幾百字的輸出空間streamFalse表示一次性返回完整結(jié)果實(shí)時(shí)交互場(chǎng)景可以改成True用流式輸出。等任務(wù)跑通之后建議把base_url、模型名、溫度這幾個(gè)參數(shù)抽到配置文件里方便后續(xù)切換不同服務(wù)商或做模型對(duì)比。4.2 本地部署vllm與官方API選型什么規(guī)模值得自己扛很多團(tuán)隊(duì)在并發(fā)量上來(lái)之后會(huì)糾結(jié)要不要自己部署。我的判斷標(biāo)準(zhǔn)很簡(jiǎn)單10個(gè)以?xún)?nèi)內(nèi)部用戶(hù)直接用官方API最劃算超過(guò)這個(gè)規(guī)模、或有數(shù)據(jù)不出園區(qū)的合規(guī)要求時(shí)才值得考慮vllm本地部署。高峰期官方API偶爾會(huì)返回繁忙或超時(shí)這在工程上靠重試與降級(jí)就能解決不構(gòu)成必須自建的理由。本地部署DeepSeek的常見(jiàn)路徑是用vllm起一個(gè)OpenAI兼容的服務(wù)vllm serve /data/models/deepseek-model \ --host 0.0.0.0 \ --port 8000 \ --max-model-len 32768 \ --gpu-memory-utilization 0.9啟動(dòng)后的服務(wù)地址http://127.0.0.1:8000/v1可以直接作為base_url使用代碼幾乎不用改。參數(shù)說(shuō)明/data/models/deepseek-model替換成你實(shí)際下載的權(quán)重路徑--max-model-len限制上下文長(zhǎng)度顯存不足時(shí)從32768往下調(diào)--gpu-memory-utilization控制顯存占用比例留出一點(diǎn)余量給推理過(guò)程中的中間張量。模型權(quán)重文件較大下載前先確認(rèn)磁盤(pán)和顯存夠用量化版本能減少顯存需求但可能犧牲精度。對(duì)比項(xiàng)官方API本地部署vllm上手成本低注冊(cè)拿Key即可高要準(zhǔn)備GPU與權(quán)重并發(fā)上限取決于服務(wù)端配額自己控制但受限于硬件數(shù)據(jù)安全數(shù)據(jù)經(jīng)過(guò)外部接口數(shù)據(jù)留在內(nèi)網(wǎng)維護(hù)負(fù)擔(dān)無(wú)有升級(jí)、監(jiān)控、告警都要管選型時(shí)還要考慮團(tuán)隊(duì)的運(yùn)維能力。本地部署一旦掛掉修復(fù)時(shí)間可能以小時(shí)計(jì)而官方API掛掉你還能做降級(jí)或切換模型。很多團(tuán)隊(duì)最終走的是混合路線日常請(qǐng)求走官方API敏感數(shù)據(jù)任務(wù)走本地部署兩邊用同一個(gè)提示詞模板與接口層。4.3 接入現(xiàn)有工作流代碼輔助、企業(yè)內(nèi)部問(wèn)答與批量處理三種接法DeepSeek應(yīng)用落地最常見(jiàn)的三個(gè)方向一是接入代碼輔助工具很多開(kāi)發(fā)者把DeepSeek接進(jìn)命令行或編輯器寫(xiě)代碼通過(guò)一個(gè)兼容接口做代碼續(xù)寫(xiě)和Debug對(duì)話二是企業(yè)微信等內(nèi)部IM里掛一個(gè)問(wèn)答機(jī)器人把系統(tǒng)提示詞設(shè)成內(nèi)部知識(shí)庫(kù)管家的角色三是離線批量處理比如把一批文檔丟給DeepSeek做摘要、打標(biāo)簽、抽取字段。前兩者強(qiáng)調(diào)響應(yīng)速度第三種強(qiáng)調(diào)成本控制與結(jié)果可復(fù)核。接入模式上有一條固定鏈路任務(wù)類(lèi)型識(shí)別 → 提示詞模板選擇 → 調(diào)用模型 → 規(guī)則校驗(yàn) → 人工兜底。任務(wù)類(lèi)型識(shí)別決定走簡(jiǎn)單模板還是復(fù)雜模板提示詞模板選擇要按部門(mén)或業(yè)務(wù)線維護(hù)不能一個(gè)模板走天下規(guī)則校驗(yàn)環(huán)節(jié)處理上一章講的事實(shí)核對(duì)人工兜底用于高風(fēng)險(xiǎn)的輸出比如對(duì)外發(fā)布內(nèi)容或財(cái)務(wù)分析。社區(qū)里已經(jīng)有一些把提示詞模板管理和日志回放封裝成工作流的開(kāi)源工具核心思路就是給提示詞做版本管理出現(xiàn)問(wèn)題時(shí)能快速回退到上一版而不是在代碼里找線索。5. 避坑指南提示詞設(shè)計(jì)與幻覺(jué)治理中常見(jiàn)的5個(gè)翻車(chē)現(xiàn)場(chǎng)這一章全部來(lái)自真實(shí)使用中的血淚經(jīng)驗(yàn)。每一條都是現(xiàn)象、原因、解決三段式方便你對(duì)照排查。不要等模型輸出明顯離譜時(shí)再懷疑提示詞多數(shù)翻車(chē)在寫(xiě)提示詞的那一刻就已經(jīng)注定了。5.1 角色設(shè)定寫(xiě)得越抽象模型的“表演欲”越強(qiáng)現(xiàn)象系統(tǒng)提示詞里寫(xiě)“你是一名資深專(zhuān)家請(qǐng)給出專(zhuān)業(yè)且全面的分析”結(jié)果模型輸出變成了長(zhǎng)篇大論的正確廢話甚至揣著專(zhuān)家的架子開(kāi)始編數(shù)據(jù)。原因“資深專(zhuān)家”是一個(gè)模糊身份模型沒(méi)有具體的行為約束只能靠訓(xùn)練數(shù)據(jù)里“專(zhuān)家口吻”的統(tǒng)計(jì)特征來(lái)表演。解決把角色設(shè)定從身份描述改成行為描述寫(xiě)清楚“面對(duì)不確定信息時(shí)怎么辦”“回答控制在多少字”“是否需要列出依據(jù)”讓角色落在一組具體動(dòng)作上。5.2 一次塞進(jìn)十個(gè)需求輸出開(kāi)始丟點(diǎn)串味現(xiàn)象一條用戶(hù)消息里同時(shí)問(wèn)“總結(jié)亮點(diǎn)、分析風(fēng)險(xiǎn)、給競(jìng)品對(duì)比、提優(yōu)化建議、列執(zhí)行計(jì)劃”結(jié)果模型只覆蓋了前面兩三個(gè)點(diǎn)后面的草草帶過(guò)。原因注意力在全篇分布需求太多時(shí)每個(gè)點(diǎn)分到的權(quán)重都有限后置任務(wù)最容易被忽略。解決把任務(wù)拆成多次調(diào)用第一次做總結(jié)與風(fēng)險(xiǎn)分析第二次帶著第一次的結(jié)論做競(jìng)品對(duì)比每次只聚焦一個(gè)目標(biāo)。如果必須一次完成把需求按重要性重新排序并明確寫(xiě)“按以下順序依次回答每條不超過(guò)200字”。5.3 temperature不是越大越有創(chuàng)意而是越過(guò)越能編現(xiàn)象把temperature調(diào)到1.2想讓總結(jié)“更有深度”結(jié)果生成的數(shù)字和結(jié)論都開(kāi)始對(duì)不上原文。原因高溫增加了低概率token的采樣機(jī)會(huì)模型在“找詞”而不是“組織事實(shí)”。創(chuàng)意型任務(wù)可能剛好需要這種跳躍事實(shí)型任務(wù)無(wú)法承受這種不穩(wěn)定。解決事實(shí)性任務(wù)無(wú)條件設(shè)在0.3以下創(chuàng)意型任務(wù)在0.7到0.9之間試探不要超過(guò)1.0。如果既想要變化又怕失真用多輪對(duì)話讓模型基于上一輪回答做改寫(xiě)比一味調(diào)高溫度更穩(wěn)。5.4 多輪對(duì)話里錯(cuò)誤事實(shí)會(huì)滾雪球現(xiàn)象第一輪模型把某個(gè)數(shù)據(jù)說(shuō)錯(cuò)了第二輪你問(wèn)“基于剛才的數(shù)據(jù)下一步怎么做”模型順著錯(cuò)誤數(shù)據(jù)推出了一整套方案。原因模型把上下文中的陳述當(dāng)成了既定前提后續(xù)所有生成都在這個(gè)錯(cuò)誤地基上構(gòu)建。這解釋了為什么長(zhǎng)對(duì)話里幻覺(jué)看起來(lái)越來(lái)越嚴(yán)重——它在自洽地放大最初的偏差。解決關(guān)鍵任務(wù)不要依賴(lài)長(zhǎng)對(duì)話每輪messages只保留與當(dāng)前步驟相關(guān)的歷史摘要發(fā)現(xiàn)錯(cuò)誤數(shù)據(jù)立刻停止開(kāi)啟新對(duì)話并手動(dòng)糾正背景信息涉及事實(shí)的輪次加校驗(yàn)別讓錯(cuò)誤前提進(jìn)入下一輪。5.5 上下文截?cái)喟l(fā)生在暗處長(zhǎng)對(duì)話后半段的提示詞容易靜默失效現(xiàn)象對(duì)話前20輪一直遵守“回答不超過(guò)300字”的規(guī)則到第30輪突然開(kāi)始輸出長(zhǎng)文還丟了人設(shè)。原因上下文總量接近窗口上限后早期的系統(tǒng)提示詞可能被截?cái)嗷蛘咦⒁饬?quán)重不足以讓它繼續(xù)生效。很多使用者以為規(guī)則還在實(shí)際上已經(jīng)沒(méi)了。解決把最關(guān)鍵的兩條約束輸出長(zhǎng)度、禁止編造在每次用戶(hù)消息末尾用一句話重述重要場(chǎng)景用獨(dú)立的新對(duì)話而不是攢長(zhǎng)會(huì)話生產(chǎn)環(huán)境里記錄請(qǐng)求的token用量接近上限前自動(dòng)截?cái)鄽v史。6. 進(jìn)階技巧用結(jié)構(gòu)化生成與一致性自檢壓住幻覺(jué)幻覺(jué)治理走到最后拼的不是提示詞技巧而是生成流程的設(shè)計(jì)。最值得投入的一個(gè)技巧是“兩步生成法”第一步讓模型只輸出提綱第二步帶著提綱再生成全文。這個(gè)做法把“一口氣編到底”的路徑切斷了——提綱階段模型只能擬骨架展開(kāi)階段每一步都有明確落點(diǎn)幻覺(jué)空間被大幅壓縮。第一輪 請(qǐng)為以下主題列一個(gè)輸出提綱包含總體結(jié)論、依據(jù)和行動(dòng)建議三個(gè)部分每部分用一行概括 主題 第二輪 請(qǐng)基于以下提綱展開(kāi)全文。不得增加提綱之外的新結(jié)論每個(gè)結(jié)論后標(biāo)注“依據(jù)”或“推測(cè)”依據(jù)不足的結(jié)論直接寫(xiě)“材料不足” 提綱配合兩步生成我還會(huì)加一道自檢prompt讓模型對(duì)自己的回答挑毛病。做法是把生成結(jié)果原樣丟回去只給一句指令“請(qǐng)找出這段回答中缺乏依據(jù)的句子并說(shuō)明哪里需要補(bǔ)充材料。”這種自一致性校驗(yàn)在DeepSeek上效果不錯(cuò)因?yàn)樗皇亲屇P妥鲩_(kāi)放判斷而是做局部挑錯(cuò)挑錯(cuò)的準(zhǔn)確率通常高于生成時(shí)的自我判斷。再補(bǔ)一個(gè)跟隨了我很久的習(xí)慣所有要上線的生成結(jié)果至少過(guò)一遍關(guān)鍵事實(shí)清單批量跑的任務(wù)把每一輪的校驗(yàn)結(jié)果記錄下來(lái)長(zhǎng)期觀察幻覺(jué)率隨提示詞版本變化的曲線。曾經(jīng)有一段時(shí)間我把一套提示詞模板直接放到生產(chǎn)環(huán)境沒(méi)有做任何校驗(yàn)結(jié)果模型編的行業(yè)數(shù)據(jù)混進(jìn)周報(bào)才發(fā)現(xiàn)模板里少了一句“信息不足時(shí)直接說(shuō)不知道”。后來(lái)所有模板強(qiáng)制帶上不確定性出口并養(yǎng)成了讓模型先列提綱再展開(kāi)的習(xí)慣。這套組合做完幻覺(jué)率控制在可接受范圍內(nèi)提示詞設(shè)計(jì)才算真正閉環(huán)。希望這些方法在你的DeepSeek使用場(chǎng)景里也能少踩幾個(gè)坑幫到你。本文還有配套的精品資源點(diǎn)擊獲取