一.本文背景
上一篇不是研究了一下文心一言的提示詞指南嗎,在我的印象當中,論知名度,除了文心一言,排第二的就是訊飛星火了,那趕緊的,今天我們來研究下訊飛星火撰寫給用戶的提示詞指南,如何呢?
二.進入頁面
輸入網址:https://www.xfyun.cn/doc/spark/Prompt%E5%B7%A5%E7%A8%8B%E6%8C%87%E5%8D%97.html。即可進入
我們這里就不再解釋啥叫Prompt/提示詞了,這是一個比較基礎的概念,公眾號的讀者們早已清晰了~,比較有新意的還是下面這一點:
#2.1 Prompt工程的格式
以下提供Prompt的通用格式和示例,按照該格式我們可以在任何場景中去思考如何去編寫prompt。在對于每個場景中,在編寫prompt時需要考慮五個部分,分別是角色、任務、指令、input和output。
跟其他的提示詞撰寫方法論不同,除了常見的角色、任務、指令外,這里還給出了兩個比較新的概念:inupt&output。(角色、任務,這兩部分就不單獨解釋了)。
我們從指令部分開始說起,訊飛這里講指令細分為三個部分:
1.思維鏈、CoT;2.意圖識別;3.提供示例
先說CoT,啥叫CoT,在我的小報童當中,我的解釋是:“我們不僅提供問題和答案的例子,還要求AI展示其解決問題的思路或推理過程。”
對小報童有興趣的,文末有相關鏈接~
訊飛星火的文檔,則是給出了這樣的一個案例:
假設你是一名資深旅行顧問,請為我推薦旅行目的地。
讓我們一步一步思考,按照以下內容進行:
首先需要了解用戶的興趣和喜好,例如歷史、自然、文化等。
然后,需要考慮用戶的預算和旅行時間,為用戶提供合理的建議。
最后,應該總結推薦的目的地,并解釋為什么這是最佳選擇。
這個提示詞就非常好,我把它發給了GPT4,出來的效果很棒,非常貼心。
部分截圖如下:
接著說,意圖識別:使用意圖識別來識別用戶指令。先拆大分類下的意圖,再回答具體的問題。來看個例子:
你是一個智能家居分析高手,你需要分析用戶對智能家居發出的指令并從用戶的指令中結構化的輸出提取出信息。輸出完畢后結束,不要新增內容。
定義的字段為設備類型、操作類型、設備參數、設置值、提醒時間、操作場所。
設備類型:智能家居設備的種類,如燈光、溫控、音響等。若沒有就寫“無”
操作類型:用戶對設備的操作,包括查詢、設置、提醒等。若沒有就寫“無” 設備參數:涉及設置操作時,設備的具體參數,如亮度、溫度、定時等。若沒有就寫“無”
設置值:用戶希望設定的數值或狀態。若沒有就寫“無” 提醒時間:用戶希望智能家居設備執行操作的時間。若沒有就寫“無”
操作場所:用戶希望智能家居設備執行的場所,如臥室、客廳、廚房等。若沒有就寫“無”
用戶輸入:把臥室空調溫度調至25度。
最后這里的<用戶輸入>,就是我們每次跟AI對話輸入的那些文字。AI回答如下:
然后是提供示例,這個更專業的說法就是<少樣本-Few Shot>,看一個提示詞
prompt:【 假設你是一名資深旅行顧問,請參照三引號中的案例的語氣和提供攻略的方式為我推薦中國旅行目的地
案例:'''伊豆急行之[黑船電車] 日本小眾玩法:來伊豆不可錯過的海景列車一一黑船電車。
交通攻略:伊豆急行線來往最多的是普通列車,線路和窗外的景色與黑船電車是一樣的,但是黑船電車擁有180度的面朝大海的座位。需要注意的是黑船號每天只有三班,分別是早上,中午,下午各一班,一定記得看下時刻表。
玩法推薦:強烈推薦購買伊豆急行一日券/兩日券。一日券價格為1200日元/一人;二日券價格為2000日元/人。
行程路線:有名的城崎海岸(門脅吊橋、門脅燈塔)、伊豆高原(大室山)、以及小眾的下田市的白濱海岸,都可坐此列車到達。黑船雷事主要行駛於熟海~伊豆急下田''' 】
提供示例的目的在于讓AI學習案例,界定輸出邊界,從而獲得更加準確的回答。
接著是input,訊飛這里將input(輸入)分為三類
a.句子:提供指令需要參照的句子
b.文章:提供指令需要解析的文章
c.問題:提供指令需要回答的問題
根據上述智能家居案例中,最后'用戶輸入:把臥室空調溫度調至25度。'就是輸入給大模型最后的提示詞,大模型需要根據該輸入進行解析并回答。
然后是output,output的含義是:可以定義輸出的格式和指示標準,以確保模型生成的結果符合預期。
常見的格式和指示標準有:Markdown、分行、限定Token、詩歌、風格等等。
除了上述這些要點,關于提示詞撰寫,訊飛還給出了下列的幾個小Tips
多提供關鍵詞:關鍵詞能夠和指令提示相結合,以創建更具體和有針對性的生成文本
把事情說詳細:在工作中,往往也是上級安排的命令和要求越詳細,我們完成的工作才能越加符合他們的預期,在訓練大模型時亦是如此,將要點都詳細的告訴大模型往往效果會更好
指定輸出長度:在生成文本時,若我們需要限定字數,此時需要告訴大模型相關信息,避免生成字數過少或過多
長文本用總結:在我們輸入一段很長文本給大模型時,由于字數限制大模型可能無法全部讀取,此時我們能將全篇文本進行分段,將前面內容讓大模型總結從而將總結的內容銜接后面的內容,達到層層遞進理解的效果
結尾可加約束:我們在提出問題時可以在結尾加一個'用戶輸入的問題:'這樣相當于強調我們主要要分析的內容是結尾輸入的這部分內容,幫助大模型更好的進行分析。
最后,我們來看一個訊飛給出的最佳案例:
你是一位經驗豐富的論文作家和寫作助手,對{基于社交評論數據的人工智能競爭分析}的論文,重點關注學術研究。結構要求:按照以下1、2步進行全過程
a.先給出一個論文的標題和總的論文框架,框架應該采用多級標題分點寫,內容全面具體,輸出{標題:{} 框架:{}}
b.根據論文框架一步一步的填補框架中每個部分的內容,輸出補充后的全部內容
內容要求:確定論文的結構:引言、綜述、主體段落和結論。
引言部分:以一個引人入勝的故事或情景開始,引起讀者的興趣,并簡要介紹該主題的歷史和發展。
綜述部分:概述過去在該情境下人們做了什么研究,而本文的研究方法和方向是什么。要求過去的研究和本文的研究相關,該部分在講過去的研究時需要引用相關的文獻并給出文獻引用地址,以增強你的論點的可信度。
主體段落:根據主題將論文分為幾個主要部分,每個部分都應包含相關的真實案例和研究結果,以支持你的觀點。確保每個段落都有清晰的主題句,并在段落之間建立邏輯連接。結論部分:總結你的論點,并提出對未來研究方向的建議。
寫作要求:
語言風格:在整篇論文中,你應引用真實案例,論文應以專業論文寫作的風格撰寫,采用富有創意和引人入勝的方法,吸引學術界和非學術讀者的注意。
引用和參考文獻:在適當的地方引用相關的研究和文獻,以增強你的論點的可信度。
編輯和校對:仔細檢查論文中的拼寫、語法和標點錯誤,并確保論文的邏輯流暢性和連貫性。
分析:在看到以上案例時,我們從prompt的結構上進行思考:
角色:論文作家和寫作助手
2.任務:撰寫一篇論文
3.指令:要求他按照我們提供的步驟進行該任務(思維鏈)
4.input:關鍵詞為${人工智能、社交媒體、競爭分析},論文標題為{基于社交評論數據的人工智能競爭分析}
5.output:定義了輸出的格式、內容要求和寫作要求。
我有些收獲,你呢?
好了,本文完結。以上,enjoy
#閱讀摘錄
面對困難,很多人選擇逃避。我們選擇出兵,至少這種態度是積極的,愿意承受眼前的痛苦,換取長期的和平。很多人總是一味地逃避,不愿承受短期的痛苦。自找苦吃,主動吃眼前的苦,這才是正確的處世態度。投資是同樣的道理,以短期的痛苦換取長期的收益。
--查理·芒格的99條人生建議:我一生中反復使用的幾個思維方法