全部課

課程

高二人工智慧:生成式人工智慧與智能體工程

用提示詞、API、檢索和工具做大型語言模型應用,再檢查它們是否安全。

按順序學習各課。學完後,你能數詞元,用嵌入相似度比較文本,並講清取樣和上下文視窗。你能寫結構化提示詞,並用測試案例比較提示詞的不同版本。你能找出人工智慧寫的程式碼裡的錯誤和風險,並寫出它必須通過的測試。你能得到符合綱要的結構化 JSON 輸出,做一個有花費上限的聊天機器人,並做一個從文件裡找答案、還給出處的應用。你能做一個工具有限、有停止規則的智能體,擋住提示詞注入,做一套自動測試套件,並發布一個有依據的研究助手。

這些課怎麼用

  • 從標著做這個的課開始。標題下面那一行你自己會了,再往下。
  • 先玩遊戲。再做測驗。10題裡對8題就通過。練習紙在紙上。答案在最下面。
  • 每一課都接在前一課後面。每個應用都留一套測試,每次改完都跑一遍。
  • 程式課用 Python。只用老師核准的人工智慧服務,別把 API 金鑰寫進程式碼,設一個花費上限,絕不要把個人資料發給模型。

每一課都有遊戲、測驗和練習紙。

0/36

大型語言模型基礎

  1. 1詞元和詞表數詞元,並講清它們為什麼重要。
    • 用真正的分詞器把文本分成詞元。
    • 比較不同語言的詞元數量。
    • 把詞元和費用、上下文限制連起來。
  2. 2嵌入用嵌入相似度比較文本。
    • 從模型得到嵌入。
    • 計算餘弦相似度。
    • 按意思給句子排序,不按共同的詞。
  3. 3大型語言模型怎樣生成講清生成時的取樣、溫度和上下文視窗。
    • 講清下一個詞元預測。
    • 改變溫度,並比較輸出。
    • 演示文本超出上下文視窗時會發生什麼。
  4. 4預訓練和調校分清預訓練、微調和指令調校。
    • 說出每一步用什麼資料。
    • 講清來自人的回饋。
    • 說出模型為什麼有知識截止日期。

提示詞工程

  1. 5結構化提示詞寫出帶角色、任務、規則和格式的結構化提示詞。
    • 把說明和輸入資料分開。
    • 寫明輸出格式。
    • 比較結構化提示詞和沒有結構的提示詞。
  2. 6少樣本範例用少樣本範例改進輸出。
    • 加上兩個或三個範例。
    • 選能蓋住邊界情況的範例。
    • 在測試集上量出變化。
  3. 7約束用約束限制長度、語氣和格式。
    • 定下長度和閱讀難度的限制。
    • 告訴模型不知道時該怎麼做。
    • 按每一條約束檢查輸出。
  4. 8提示詞測試寫測試案例,並比較提示詞的不同版本。
    • 寫二十個測試輸入和期望結果。
    • 給兩個提示詞版本打分。
    • 留下贏的那一版。

人工智慧輔助程式設計

  1. 9生成程式碼按清楚的規格生成能執行的程式碼。
    • 寫規格:輸入、輸出和範例。
    • 用它生成程式碼。
    • 在範例上執行程式碼。
  2. 10審查人工智慧程式碼審查人工智慧寫的程式碼,找出錯誤和風險。
    • 檢查邊界情況和錯誤處理。
    • 找出編造的函式和函式庫。
    • 找出不安全的程式碼,比如原始碼裡的金鑰。
  3. 11測試先行寫出人工智慧程式碼必須通過的測試。
    • 用 pytest 寫測試。
    • 讓人工智慧寫程式碼來通過這些測試。
    • 每找到一個錯誤,就加一條測試。
  4. 12用人工智慧除錯用人工智慧修好一個錯誤,並講清這個修復。
    • 做一個能露出這個錯誤的小例子。
    • 向人工智慧問原因,不只問怎麼修。
    • 講清為什麼這個修復有效。

大型語言模型 API

  1. 13第一次 API 呼叫發出一次 API 聊天請求,並讀回覆。
    • 從環境變數讀取 API 金鑰。
    • 用 SDK 發請求。
    • 讀回覆和詞元用量。
  2. 14系統訊息和使用者訊息使用系統訊息和使用者訊息。
    • 把規則放進系統訊息。
    • 把使用者輸入放進使用者訊息。
    • 保留對話的歷史。
  3. 15結構化輸出得到符合綱要的結構化 JSON 輸出。
    • 定義一個 JSON 綱要。
    • 要求輸出遵守這個綱要。
    • 檢查輸出,失敗了就再試一次。
  4. 16聊天機器人做一個有歷史和花費上限的聊天機器人。
    • 保留對話歷史。
    • 裁掉舊訊息,好放進上下文。
    • 到達花費上限就停止。

檢索增強生成

  1. 17為什麼要檢索講清為什麼檢索並依據原文能減少編出來的答案。
    • 問模型一份它沒見過的文件。
    • 加上這份文件,再問一次。
    • 畫出先檢索、再生成的流程。
  2. 18分塊把文件分成塊。
    • 按大小切,並留重疊。
    • 按標題切。
    • 每塊都留下出處和頁碼。
  3. 19向量搜尋用向量搜尋找出離問題最近的塊。
    • 給塊做嵌入並存起來。
    • 取出和問題最匹配的塊。
    • 量出正確的塊被找到的頻率。
  4. 20文件問答做一個從文件裡找答案、還給出處的應用。
    • 把檢索到的塊放進提示詞。
    • 每條說法都要有出處。
    • 檢查出處指向真實的段落。

人工智慧工具與智能體

  1. 21工具呼叫讓模型做工具呼叫,去呼叫一個函式。
    • 用綱要描述一個工具。
    • 執行模型要求的那個工具。
    • 把結果送回模型。
  2. 22規劃做規劃:把任務拆成模型能執行的步驟。
    • 先向模型要一份計畫。
    • 一次執行計畫裡的一步。
    • 檢查完這一步再往下。
  3. 23狀態和記憶用狀態和記憶記住智能體已經做了什麼。
    • 存下每一步和它的結果。
    • 把很長的歷史做成摘要。
    • 決定智能體該忘掉什麼。
  4. 24受控智能體做一個工具有限、有停止規則的智能體。
    • 只允許安全的、唯讀的工具。
    • 限制步驟的數量。
    • 任何會改變東西的動作,先問人。

多模態生成式人工智慧

  1. 25圖像生成講清擴散模型怎樣生成圖像。
    • 講清加上雜訊和去掉雜訊。
    • 講清文字怎樣引導圖像。
    • 討論生成圖像的同意和版權。
  2. 26視覺和語言用視覺和語言,就一張圖像向模型提問。
    • 把圖像和問題一起發出去。
    • 得到一份有結構的描述。
    • 找出模型說錯的一個細節。
  3. 27語音把語音轉成文字,把文字轉成語音。
    • 轉寫一段短錄音。
    • 測量詞錯誤率。
    • 生成語音,並標明是人工智慧做的。
  4. 28多模態原型做一個用兩種輸入的多模態原型。
    • 選兩種輸入,比如語音和圖像。
    • 在一個應用裡把它們接起來。
    • 找五個使用者來測試。

可靠性與安全

  1. 29幻覺找出幻覺:來源無法支持的答案。
    • 拿來源核對每一條說法。
    • 再用一次模型呼叫,標出來源無法支持的說法。
    • 量出答案被來源完全支持的頻率。
  2. 30提示詞注入擋住應用裡的提示詞注入。
    • 寫出藏在使用者輸入和文件裡的攻擊。
    • 把可信的說明和不可信的文本分開。
    • 限制攻擊能碰到哪些工具。
  3. 31評估用評分標準和測試集給輸出打分。
    • 寫一份評分標準。
    • 用手打分,也用模型打分。
    • 看它們多久意見一致。
  4. 32測試套件給大型語言模型應用做一套自動測試套件。
    • 涵蓋準確率、格式、安全和費用。
    • 用一個指令執行它。
    • 分數下降時,讓建置失敗。

人工智慧產品工作室

  1. 33產品規格寫清使用者、功能和成功標準。
    • 選一套老師核准的研究文件。
    • 寫出使用者和他們的問題。
    • 定下準確率、出處和費用的目標。
  2. 34搭建管線搭建檢索、回答和出處的管線。
    • 給文件建索引。
    • 回答時給出處。
    • 執行測試套件。
  3. 35說我不知道讓應用在證據不夠時說「我不知道」。
    • 發現檢索沒有找到有用的內容。
    • 回答「來源裡沒有說」,不要猜。
    • 用文件答不了的問題來測試。
  4. 36人工智慧研究助手發布並展示一個有依據的研究助手。
    • 把應用部署給自己的班級。
    • 展示準確率、依據、安全和費用的分數。
    • 講清它的限度。