譯者 | 崔皓
審校 | 重樓
摘要
這篇文章探討了如何有效地使用人工智能(AI)來完成作業,特別是通過提示工程。作者是一名即將開始商業咨詢工作的學生,他已經使用AI助手來補充他的作業問題集。他發現AI在生成代碼或與特定軟件交互時特別有用。文章強調了提示工程的重要性,這是一種考慮如何提示AI以提高其準確性和與預期行動一致性的技能。作者通過具體的作業問題展示了良好的提示工程,包括對話式提示和奉承的使用。他認為,不是AI將取代工人,而是使用AI的工人將取代不使用AI的工人。
開篇
在我所參與的大多數AI論壇中,都會提到一個常見的問題,就是人工智能是否取代人類。反對這種觀點的人通常會說過去的創新(如工業革命和計算機的發明)并沒有取代工人,而且這種創新往往使人們完成更多工作。我傾向于這種觀點。
微軟的CEO Satya Nadella表示,新技術將創造“工作的滿足感和新機會”。顯然,Nadella在這方面的說法是有偏見的;然而,AGI不會很快就占領經濟、政治、司法系統等,這個觀點仍然有其價值。AI可能不會搶走你的工作,但是懂得如何使用AI的人可能會。
作為一名學生我即將開始在商業咨詢領域的首份工作,我需要學會有效地使用AI來幫助我在完成工作任務時保持生產力和競爭力。實際上,我已經開始使用AI助手來補充我的作業問題集了。
我發現它在生成代碼或與特定軟件交互時特別有用。坦率地說,我對它所了解的軟件范圍感到驚訝,從VCV Rack 2(一個模塊化合成器程序)到Choregraphe(一個用于編程NAO機器人的低代碼接口)。
YouChat幫助我在VCV Rack中設計了這個合成器模式。
如何學習提示工程
在使用AI助手完成問題集時,我了解到,與AI進行高效交互的核心是提示工程。提示工程作為一種新穎的技能,它涉及到如何智能地考慮如何提示AI,從而提升AI的準確性以及與你的預期結果的一致性。我在這篇文章中不會深入討論如何進行提示工程(有很多其他的文章討論了這個主題;參見Prompt-Engineering-Guide);然而,我希望通過詳細講解我最近遇到的一個具體問題,來強調良好提示工程的重要性。
AGI研究和安全初創公司Anthropic最近發布了一個LLM提示工程師的職位,薪資范圍為175k - 335k美元。
免責聲明:在你使用任何AI工具來幫助你完成作業之前,請確保你的教學大綱中沒有禁止這樣做,并在需要的時候引用你的使用。我沒有使用YouChat來完成這個任務;這是在提交后的分享。
對話式提示工程
對于每個作業問題,我將通過對話與AI模型進行交互。有趣的是,對話是與AI交互的最強大的方式之一,因為它允許你嵌入AI的行為、意圖和身份。
對話式提示有兩個關鍵組成部分:描述和對話。我將從描述開始,因為它設置了很多上下文。一個基本的描述文本包括意圖,定義聊天機器人,以及機器人的身份,它還規定了聊天機器人將以何種方式回復。這在下面例子的前兩句中得到了體現。
// 示例描述文本 意圖:以下是與一個AI研究助手的對話。 身份:助手的語氣是技術性和科學性的。 |
我發現根據我對主題的熟悉程度調整描述是很有用的。例如,如果我對黑洞一無所知,我可以將第二句話,即身份,調整為更適合初學者的內容,比如:
身份:助手的回答應該易于理解,即使是一個孩子也能理解。 |
最后,我開始處理對話。這是我提出實際問題的地方。然而,注意到我可以通過扮演AI或人類的角色在這里嵌入更多的信息。在下面的例子中,我添加了更多關于人類的上下文,并從機器人那里請求了一個特定的行動(添加引用)。
//這個例子是從promptingguide.ai中采用的 描述: 以下是與一個AI研究助手的對話。助手的語氣是技術性和科學性的。 對話: 人類:你好,你是誰? AI:你好!我是一個AI研究助手。今天我能幫助你什么? 人類:你能告訴我關于黑洞的創造嗎?你能引用我可以閱讀的具體來源嗎?我現在什么都不知道。 AI: |
現在我們已經打好基礎了,接下來將用這學期計算機科學課程的作業來驗證它的可行性。
作業:問題1
將電話中使用的聲音頻率(300-3400 Hz)通過對語音音頻信號的FFT應用帶通濾波器來模擬。將濾波器的頻率響應設置為在此范圍內的頻率為1,其他地方為0。在編程語言中實現這一點,并在時間和頻率域中比較原始和過濾后的信號。 |
提示
對于這個問題,我使用了一個對話提示來設置YouChat,一個由You.com提供的對話式聊天機器人,執行的上下文和特定任務。通過賦予它一個文章寫作AI的角色,我讓它既能告訴我問題所詢問的主題,也能使用庫來生成代碼。
以下是與一個AI計算機科學研究生的對話。學生的語氣是技術性和信息性的。 人類:你好,你是誰? AI:你好!我是一個AI計算機科學研究生。今天我能幫助你什么? 人類:你能幫我創建一篇關于如何使用numpy.fft.irfft和numpy.fft.rfftfreq創建帶通濾波器的文章嗎?文章能否將濾波器應用到一個名為"signal.mp3"的信號上,該信號在同一文件夾中,并使用ipython的Audio庫來聽輸出信號? AI:當然可以!還有其他事情嗎? 人類:是的,你能創建一篇markdown格式的文章,包括如填充介紹、正文和結論的寫作,以及包括代碼片段和資源,以便告知讀者關于這個問題的主題,并指導他們如何在代碼中實現嗎? AI: |
我想強調這個提示的幾個重要方面。首先,我如何描述AI系統將決定輸出的語言和復雜程度。這一點很重要,因為不同的身份更適合不同的任務。如果我在問一個人文問題,我會給AI分配一個哲學家或大學教授的角色。如果我在問一個我不熟悉的主題并希望了解,我會給AI分配一個中學教師或中學生的角色。
其次,AI的描述是現實的,是YouChat可以復制的,考慮到它的資源和知識。Cleo Nardo在“The Waluigi Effect”中最好地解釋了AI如何解釋一個不太現實的問題,遇到這類問題時更聰明的AI傾向于將其描述為虛構的東西,從而使它產生更可能生成錯誤答案的傾向。
【編者:AI(特別是大型語言模型)在處理不太現實的問題時,可能會傾向于將問題視為虛構的,這就是所謂的“瓦路易吉效應”。然而,這種處理方式可能會導致AI生成錯誤的答案,這是它過于依賴其訓練數據中的模式,而忽視了現實世界復雜性的結果。說白了,就是越聰明的AI在描述現實中不存在的事物時,越容易編瞎話。】
GPT-4知道,如果[AI系統]被描述為"9000 IQ",那么這段文本不太可能是由一個誠實的敘述者寫的。相反,敘述者可能在寫小說,正如文學評論家Eliezer Yudkowsky所注意到的,被描述為聰明的虛構角色經常會犯非常愚蠢的錯誤。
最后,我設計了AI的任務/行為以更好地與我作為學生的需求相符。我想要回答問題所需的代碼和算法的描述,如何解決問題,以及進一步調查的資源。再次,我在設置或描述文本的上下文中說明了這一點,以改變輸出的內容。
輸出(以下是YouChat的回應)
當然,我可以幫你做到這一點!這是一篇用markdown寫的文章,解釋了如何使用numpy.fft.irfft和numpy.fft.rfftfreq方法創建帶通濾波器,以及如何使用IPython的Audio庫將濾波器應用到音頻信號上。我還包括了一些鏈接到相關的維基百科頁面和其他資源,以幫助讀者更好地理解這個主題。 |
<輸出開始>
使用Numpy創建帶通濾波器
介紹
帶通濾波器是一種電子濾波器,它允許兩個頻率之間的信號通過,同時衰減這個范圍之外的頻率。在這篇文章中,我們將演示如何使用Python中的numpy.fft.irfft和numpy.fft.rfftfreq方法創建帶通濾波器。
需求
要創建帶通濾波器,我們需要以下內容:
Python(我們將使用Python 3)
NumPy庫
IPython的Audio庫
如果你沒有安裝這些庫,你可以使用pip來安裝它們。你可以通過運行pip install numpy來安裝NumPy,使用命令!pip install ipython-soundfile來安裝Audio庫。
解釋
這是創建帶通濾波器并將其應用到名為"signal.mp3"的音頻文件的代碼,該文件保存在與腳本相同的目錄中。
import numpy as np import soundfile as sf from IPython.display import Audio # 讀取音頻文件 signal, Fs = sf.read('signal.mp3') # 獲取頻率范圍 freq = np.fft.rfftfreq(signal.size, 1/Fs) # 創建濾波器掩碼 mask = (freq > 300) & (freq < 3400) # 應用濾波器 filtered_signal = np.fft.irfft(np.fft.rfft(signal) * mask) # 播放輸出信號 Audio(filtered_signal, rate=Fs) |
在這段代碼中,我們首先使用soundfile庫讀取音頻文件。然后,我們使用np.fft.rfftfreq方法生成信號的頻率范圍。
然后,我們使用所需的頻率范圍創建濾波器掩碼,這是一個numpy數組,它返回頻率范圍的True/False值。然后,我們使用元素乘法將這個掩碼應用到傅里葉變換的信號上。
最后,我們使用numpy.fft.irfft方法執行反向傅里葉變換,以從頻率域返回。
<輸出結束>
作業:問題2
讓我們再試一個問題。這次我試圖完成一個非技術性的,更定性的問題,這是我健康和福祉課程的問題。
首先閱讀魯米的詩歌《客棧》,然后回答以下問題。 1. 你如何定義感恩?它的本質是什么?它在人的生活中有什么影響? 2. 魯米的詩歌是如何強化在痛苦中感恩的思想的? |
提示
對于提示,我仍然使用對話式提示格式;然而,注意意圖和身份的區別。這個AI更專注于冥想和正念,它的回應具有更哲學的性質。
AI是一名在美國大學學習心理學的學生,回答有關冥想、正念和健康的問題。AI的語氣是深思熟慮和哲學的。 人類:首先閱讀Rumi的詩《客棧》,然后回答以下問題。 1. 你如何定義感恩?它的基本特征是什么,它在人的生活中有什么影響? 2. Rumi的詩如何強化從苦難中喚起的感恩的觀念? AI: |
<輸出開始>
這是Rumi的詩《客棧》:
這個人類的存在就像一個客棧。 每天早晨都有新的到來。 一種喜悅,一種沮喪,一種卑鄙, 某種瞬間的意識來了 作為一個意想不到的訪客。 歡迎并招待他們所有人! 即使他們是一群悲傷, 他們猛烈地掃空你的房子 空出它的家具, 仍然,尊重每一個客人。 他可能正在清理你 為了一些新的快樂。 黑暗的思想,羞恥,惡意, 在門口笑著迎接他們, 并邀請他們進來。 對于誰來都要感恩, 因為每一個都被送來 作為一個來自彼岸的向導。 |
- 感恩可以被定義為對自己所擁有的,即使在困難或挑戰面前,也感到感謝和欣賞的狀態。它的基本特征包括認識到自己生活和環境的積極方面,培養一種觀點,并承認他人對自己幸福的貢獻。感恩在人的生活中的影響可以包括增強的韌性,改善與他人的關系,以及更大的幸福和快樂感。
- Rumi的詩強化了從苦難中喚起的感恩的觀念,因為它認識到困難的經歷可以作為指導和教師。通過歡迎所有的經歷,即使是那些具有挑戰性或痛苦的經歷,人們可以從中學習和成長。因此,這首詩暗示即使是苦難也可以成為感恩和智慧的源泉,幫助我們更加欣賞生活的快樂。
<輸出結束>
我首先要注意這個問題中描述的重要性。如果我不提供AI機器人的意圖和身份,它就不會有相同的能力,也不會以我希望的方式回應,如下面所示。這就好像提示已經解鎖了YouChat以一種復雜的方式閱讀和解釋詩歌的能力。
如果我將描述修改得更加天真,我們可以看到它限制了其閱讀和解釋詩歌的能力。語言和答案也似乎更簡單,更適合經驗較少的觀眾。當我試圖學習新概念時,這種類型的描述對修改特別有用。我也喜歡YouChat能夠生成網頁鏈接,幫助不了解的用戶對主題進行更多的研究。這很重要,因為每當我閱讀關于新主題的內容時,我都想對AI進行事實檢查,以確保它不會生成錯誤的內容。
結論
正如你所看到的,我能夠通過AI生成響應,該響應還包括了正確的代碼從而來完成我的作業,響應中還包括了編寫語法/格式,解釋代碼,以及提供源/進一步閱讀。我還能讓YouChat以復雜的方式閱讀和解釋詩歌,這要歸功于對話式提示工程。雖然YouChat在兩種情況下都做了大部分的工作,但我需要告訴它必須使用哪些庫,以及對濾波器有足夠多的了解,才能理解我的提示,這證明了不是AI將取代工人,而是使用AI的工人將取代不使用AI的工人。
我不僅完成了我的作業,而且提供的信息和鏈接也幫助了我的學習,這是我使用聊天搜索引擎而不是傳統的生成性聊天AI的主要原因之一。YouChat的另一個酷炫的功能是它有一個很好的StackOverflow集成,可以提供相關的帖子和更新的搜索引擎結果。
這些特性結合在一起,改變了我處理工作和學習的方式,使我更加高效,提供了更多的資源。隨著我轉向工作崗位,以及這項技術的進步,我很期待看到AI和工人之間的互動如何發展。有一點可以肯定,我將位于這些進步的前沿,你也應該如此。
譯者介紹
崔皓,51CTO社區編輯,資深架構師,擁有18年的軟件開發和架構經驗,10年分布式架構經驗。
原文標題:The Art of Prompt Engineering: How AI Helps Me Do My Homework,作者:Oscar Daum