課程
高二人工智慧:生成式人工智慧與智能體工程
用提示詞、API、檢索和工具做大型語言模型應用,再檢查它們是否安全。
按順序學習各課。學完後,你能數詞元,用嵌入相似度比較文本,並講清取樣和上下文視窗。你能寫結構化提示詞,並用測試案例比較提示詞的不同版本。你能找出人工智慧寫的程式碼裡的錯誤和風險,並寫出它必須通過的測試。你能得到符合綱要的結構化 JSON 輸出,做一個有花費上限的聊天機器人,並做一個從文件裡找答案、還給出處的應用。你能做一個工具有限、有停止規則的智能體,擋住提示詞注入,做一套自動測試套件,並發布一個有依據的研究助手。
這些課怎麼用
- 從標著做這個的課開始。標題下面那一行你自己會了,再往下。
- 先玩遊戲。再做測驗。10題裡對8題就通過。練習紙在紙上。答案在最下面。
- 每一課都接在前一課後面。每個應用都留一套測試,每次改完都跑一遍。
- 程式課用 Python。只用老師核准的人工智慧服務,別把 API 金鑰寫進程式碼,設一個花費上限,絕不要把個人資料發給模型。
每一課都有遊戲、測驗和練習紙。
0/36
大型語言模型基礎
- 1詞元和詞表數詞元,並講清它們為什麼重要。
- 用真正的分詞器把文本分成詞元。
- 比較不同語言的詞元數量。
- 把詞元和費用、上下文限制連起來。
- 2嵌入用嵌入相似度比較文本。
- 從模型得到嵌入。
- 計算餘弦相似度。
- 按意思給句子排序,不按共同的詞。
- 3大型語言模型怎樣生成講清生成時的取樣、溫度和上下文視窗。
- 講清下一個詞元預測。
- 改變溫度,並比較輸出。
- 演示文本超出上下文視窗時會發生什麼。
- 4預訓練和調校分清預訓練、微調和指令調校。
- 說出每一步用什麼資料。
- 講清來自人的回饋。
- 說出模型為什麼有知識截止日期。
提示詞工程
- 5結構化提示詞寫出帶角色、任務、規則和格式的結構化提示詞。
- 把說明和輸入資料分開。
- 寫明輸出格式。
- 比較結構化提示詞和沒有結構的提示詞。
- 6少樣本範例用少樣本範例改進輸出。
- 加上兩個或三個範例。
- 選能蓋住邊界情況的範例。
- 在測試集上量出變化。
- 7約束用約束限制長度、語氣和格式。
- 定下長度和閱讀難度的限制。
- 告訴模型不知道時該怎麼做。
- 按每一條約束檢查輸出。
- 8提示詞測試寫測試案例,並比較提示詞的不同版本。
- 寫二十個測試輸入和期望結果。
- 給兩個提示詞版本打分。
- 留下贏的那一版。
人工智慧輔助程式設計
- 9生成程式碼按清楚的規格生成能執行的程式碼。
- 寫規格:輸入、輸出和範例。
- 用它生成程式碼。
- 在範例上執行程式碼。
- 10審查人工智慧程式碼審查人工智慧寫的程式碼,找出錯誤和風險。
- 檢查邊界情況和錯誤處理。
- 找出編造的函式和函式庫。
- 找出不安全的程式碼,比如原始碼裡的金鑰。
- 11測試先行寫出人工智慧程式碼必須通過的測試。
- 用 pytest 寫測試。
- 讓人工智慧寫程式碼來通過這些測試。
- 每找到一個錯誤,就加一條測試。
- 12用人工智慧除錯用人工智慧修好一個錯誤,並講清這個修復。
- 做一個能露出這個錯誤的小例子。
- 向人工智慧問原因,不只問怎麼修。
- 講清為什麼這個修復有效。
大型語言模型 API
- 13第一次 API 呼叫發出一次 API 聊天請求,並讀回覆。
- 從環境變數讀取 API 金鑰。
- 用 SDK 發請求。
- 讀回覆和詞元用量。
- 14系統訊息和使用者訊息使用系統訊息和使用者訊息。
- 把規則放進系統訊息。
- 把使用者輸入放進使用者訊息。
- 保留對話的歷史。
- 15結構化輸出得到符合綱要的結構化 JSON 輸出。
- 定義一個 JSON 綱要。
- 要求輸出遵守這個綱要。
- 檢查輸出,失敗了就再試一次。
- 16聊天機器人做一個有歷史和花費上限的聊天機器人。
- 保留對話歷史。
- 裁掉舊訊息,好放進上下文。
- 到達花費上限就停止。
檢索增強生成
- 17為什麼要檢索講清為什麼檢索並依據原文能減少編出來的答案。
- 問模型一份它沒見過的文件。
- 加上這份文件,再問一次。
- 畫出先檢索、再生成的流程。
- 18分塊把文件分成塊。
- 按大小切,並留重疊。
- 按標題切。
- 每塊都留下出處和頁碼。
- 19向量搜尋用向量搜尋找出離問題最近的塊。
- 給塊做嵌入並存起來。
- 取出和問題最匹配的塊。
- 量出正確的塊被找到的頻率。
- 20文件問答做一個從文件裡找答案、還給出處的應用。
- 把檢索到的塊放進提示詞。
- 每條說法都要有出處。
- 檢查出處指向真實的段落。
人工智慧工具與智能體
- 21工具呼叫讓模型做工具呼叫,去呼叫一個函式。
- 用綱要描述一個工具。
- 執行模型要求的那個工具。
- 把結果送回模型。
- 22規劃做規劃:把任務拆成模型能執行的步驟。
- 先向模型要一份計畫。
- 一次執行計畫裡的一步。
- 檢查完這一步再往下。
- 23狀態和記憶用狀態和記憶記住智能體已經做了什麼。
- 存下每一步和它的結果。
- 把很長的歷史做成摘要。
- 決定智能體該忘掉什麼。
- 24受控智能體做一個工具有限、有停止規則的智能體。
- 只允許安全的、唯讀的工具。
- 限制步驟的數量。
- 任何會改變東西的動作,先問人。
多模態生成式人工智慧
- 25圖像生成講清擴散模型怎樣生成圖像。
- 講清加上雜訊和去掉雜訊。
- 講清文字怎樣引導圖像。
- 討論生成圖像的同意和版權。
- 26視覺和語言用視覺和語言,就一張圖像向模型提問。
- 把圖像和問題一起發出去。
- 得到一份有結構的描述。
- 找出模型說錯的一個細節。
- 27語音把語音轉成文字,把文字轉成語音。
- 轉寫一段短錄音。
- 測量詞錯誤率。
- 生成語音,並標明是人工智慧做的。
- 28多模態原型做一個用兩種輸入的多模態原型。
- 選兩種輸入,比如語音和圖像。
- 在一個應用裡把它們接起來。
- 找五個使用者來測試。
可靠性與安全
- 29幻覺找出幻覺:來源無法支持的答案。
- 拿來源核對每一條說法。
- 再用一次模型呼叫,標出來源無法支持的說法。
- 量出答案被來源完全支持的頻率。
- 30提示詞注入擋住應用裡的提示詞注入。
- 寫出藏在使用者輸入和文件裡的攻擊。
- 把可信的說明和不可信的文本分開。
- 限制攻擊能碰到哪些工具。
- 31評估用評分標準和測試集給輸出打分。
- 寫一份評分標準。
- 用手打分,也用模型打分。
- 看它們多久意見一致。
- 32測試套件給大型語言模型應用做一套自動測試套件。
- 涵蓋準確率、格式、安全和費用。
- 用一個指令執行它。
- 分數下降時,讓建置失敗。
人工智慧產品工作室
- 33產品規格寫清使用者、功能和成功標準。
- 選一套老師核准的研究文件。
- 寫出使用者和他們的問題。
- 定下準確率、出處和費用的目標。
- 34搭建管線搭建檢索、回答和出處的管線。
- 給文件建索引。
- 回答時給出處。
- 執行測試套件。
- 35說我不知道讓應用在證據不夠時說「我不知道」。
- 發現檢索沒有找到有用的內容。
- 回答「來源裡沒有說」,不要猜。
- 用文件答不了的問題來測試。
- 36人工智慧研究助手發布並展示一個有依據的研究助手。
- 把應用部署給自己的班級。
- 展示準確率、依據、安全和費用的分數。
- 講清它的限度。