# 課程介紹  * 學習如何透過提示工程獲得最佳 AI 回覆 * 講師 Anu Kubo,FreeCoCamp 與個人頻道課程製作者 * 涵蓋提示工程、AI 基礎、LLM、文字轉圖像、文字轉語音、語音轉文字 * 內容包含最佳實踐、零樣本提示、少樣本提示、思維鏈、幻覺問題、嵌入技術、ChatGPT 簡介 # 什麼是提示工程    * 起源於人工智慧發展 * 撰寫、優化、維護提示 * 監控提示效果,更新提示庫 * 提供回饋並引領思考方向 # 人工智慧簡介      * 模擬人類智慧的技術 * 依賴機器學習,透過大量資料找出規律 * 應用於分類、預測、文字、影像、音樂等生成 # 為什麼需要提示工程  * AI 輸出常不可控 * 提示工程能改善學習與互動品質 * 不同提示會導致回覆差異 # 語言學與提示工程     * 語言學研究語言結構與使用情境 * 涵蓋音韻、詞法、句法、語義、語用、歷史語言學、社會語言學、計算語言學、心理語言學 * 理解語言細節有助設計有效提示 * 使用標準語法可提升模型準確性 # 語言學研究語言結構與使用情境 * 音韻學 (Phonetics):研究語音如何被產生與感知 * 音系學 (Phonology):研究語音的規律與變化 * 形態學 (Morphology):研究詞的結構 * 句法學 (Syntax):研究句子的結構 * 語義學 (Semantics):研究語言的意義 * 語用學 (Pragmatics):研究語言在情境中的使用 * 歷史語言學 (Historical Linguistics):研究語言的演變 * 社會語言學 (Sociolinguistics):研究語言與社會的關係 * 計算語言學 (Computational Linguistics):研究電腦如何處理人類語言 * 心理語言學 (Psycholinguistics):研究人類如何習得與使用語言 # 語言模型     * 語言模型能理解與生成文字 * 訓練資料來自書籍、文章、網站等 * 分析詞序、語意、結構後生成合理延續 * 應用於對話、客服、創作、輔助工具 # 歷史 * 1960s Eliza:基於模式匹配的對話程式 * 1970s Shudlu:理解簡單指令與虛擬世界互動 * 2010s 深度學習推動現代語言模型 * 2018 GPT-1 問世,後續 GPT-2 (2019)、GPT-3 (2020)、GPT-4 (最新) * 其他模型:Google BERT 等  # Prompt Engineering Mindset   * 好的提示應一次到位,避免浪費時間與 Token * 思維類似搜尋引擎,需學會如何精準輸入查詢詞 * 提示工程如同設計有效 Google 搜尋,差異在於指令品質 # 使用 GPT-4         * 使用平台需先註冊並登入 OpenAI 網站 * 可選擇 GPT-4 模型進行互動與對話 * 支援延續對話脈絡,可在先前回答基礎上追加問題 * 新增或刪除對話皆可透過介面操作 * API 使用需建立 API Key,可用於自建應用 * GPT-4 以 Token 為計費單位,1 Token 約等於 4 字元或 0.75 英文字 * 可使用 Tokenizer 工具檢測提示消耗的 Token * 帳號管理中可查看使用量與設定付款方式 # Best Practices   * 提示工程並非簡單的一句話,而是需多面向考量 * 撰寫清楚且具體的指令,避免模糊問題 * 採用 Persona(角色設定)可使輸出更貼近需求 * 指定輸出格式,例如摘要、清單、檢查表等 * 使用迭代式提示,可追問或要求補充回答 * 避免暗示性過強的提示,以免產生偏頗回覆 * 限制主題範圍,將複雜問題拆解以獲得精準回答 * 明確指定語言、資料結構或需求細節,減少錯誤與重複嘗試 # Zero-shot 與 Few-shot 提示  * Zero-shot:模型在沒有範例的情況下直接回答問題,依靠訓練時學到的知識。 * 特點:適合常見知識與普遍問題(如「美國聖誕節是幾月幾日?」)。 * Few-shot:在提示中提供少量範例,幫助模型理解任務需求。 * 應用:提供上下文或偏好資訊(如「Ania 喜歡的食物是漢堡、薯條和披薩」),再詢問推薦餐廳。 * 差異:Zero-shot 全靠模型既有知識,Few-shot 則透過提示內範例調整模型輸出。 # AI 幻覺   * 定義:AI 在解讀數據時產生錯誤或異常輸出 * 影像案例:Google Deep Dream 會過度強化影像中的模式,導致怪異圖像 * 成因:AI 在龐大數據中建立「創造性」聯想,產生與現實不符的結果 * 文字案例:模型在缺乏資料時臆造內容,導致不準確的回答 # 向量與文字嵌入 (Text Embeddings)    * 嵌入:將文字轉換為高維度向量以表達語意 * 目的:捕捉語意而非僅字面相似,例如「food」更接近「burger」而非「foot」 * 應用:透過比較嵌入向量,找到語意相似的詞或句子 * 技術:可使用 OpenAI 的 Create Embedding API 將文字轉換為向量 * 回傳結果為長數列陣列,代表文字的語意特徵 好,我用簡單的方式來解釋 Embeddings(向量嵌入)。 # 什麼是 Embeddings * 把文字、句子,甚至整段文章轉換成一組「數字陣列」(向量)。 * 這組數字不是隨便的,而是設計來表達 語意上的位置。 # 為什麼要用 Embeddings * 電腦本身不懂語言,只能處理數字。 * 如果只看文字的字母順序,"food" 和 "foot" 很像,但語意差很多。 * Embeddings 讓電腦能分辨語意,例如知道 "food" 比較接近 "pizza" 而不是 "foot"。 # 怎麼想像 * 可以想像一個「語意地圖」,每個詞就是地圖上的一個點。 * 相似的詞會靠近(如 "food" 和 "burger"),不相關的詞會很遠(如 "food" 和 "car")。 # 實際應用 * 搜尋:用 Embeddings 找到語意相近的文件,而不是只比對關鍵字。 * 推薦:比如知道你喜歡 "pizza",系統能推薦 "pasta"(語意接近)。 * 分類:把內容轉換成 Embeddings,再用數學方法分群。 # Recap * 學習提示工程的核心概念與實務 * 涵蓋內容:提示工程定義、AI 基礎、語言學、語言模型、思維模式、GPT-4 使用方法、最佳實踐、Zero-shot 與 Few-shot 提示、AI 幻覺、文字嵌入 --- # Terminology * 人工智慧(Artificial Intelligence, AI):模擬人類智慧行為的電腦系統,透過演算法與數據進行推理與學習。 * 機器學習(Machine Learning, ML):AI 的子領域,讓系統從大量數據中自動學習規則並進行預測。 * 深度學習(Deep Learning):基於多層神經網路的機器學習方法,擅長處理語音、影像與自然語言。 * 自然語言處理(Natural Language Processing, NLP):讓機器能理解與生成人類語言的技術。 * 大型語言模型(Large Language Model, LLM):以海量文本資料訓練的深度學習模型,用於理解與生成自然語言。 * 生成式預訓練變壓器(Generative Pre-trained Transformer, GPT):由 OpenAI 開發的 LLM 架構,專注於自然語言生成。 * 預訓練(Pre-training):在大量通用資料上先行訓練模型,獲取語言結構與知識。 * 微調(Fine-tuning):在特定領域或任務資料上進一步訓練模型,以提升專業表現。 * 提示工程(Prompt Engineering):設計與優化輸入提示,以引導 LLM 輸出最佳結果的技術。 * 零樣本學習(Zero-shot Learning):在沒有範例的情況下,模型僅憑指令完成任務。 * 少樣本學習(Few-shot Learning):透過提供少量範例來幫助模型理解任務並生成更準確結果。 * 思維鏈(Chain of Thought):在提示中引導模型逐步推理,以獲得更準確答案的方法。 * 幻覺(AI Hallucination):AI 生成看似合理但實際錯誤或虛構的資訊。 * 向量嵌入(Text Embedding):將文本轉換為數值向量,用於語義搜尋與相似度計算。 * 語料庫(Corpus):用於訓練語言模型的大量文本資料集合。 * 神經網路(Neural Network):模擬人類神經元結構的計算模型,用於學習數據模式。 * 參數(Parameter):神經網路中的權重與偏差,用來調整模型的輸出。 * 注意力機制(Attention Mechanism):讓模型能專注於輸入中的關鍵部分以提升理解能力。 * 變壓器架構(Transformer Architecture):基於自注意力機制的模型架構,廣泛應用於 NLP。 * BERT(Bidirectional Encoder Representations from Transformers):Google 開發的預訓練模型,用於雙向語境理解。 * Token(詞元):語言模型處理的最小單位,可能是字母、詞或子詞。 * 語言建模(Language Modeling):預測下一個詞或序列的統計與機器學習方法。 * 上下文(Context):語言模型輸入中提供理解語義的重要資訊。 * 超參數(Hyperparameter):訓練過程中手動設定的參數,如學習率、批次大小等。 * 遷移學習(Transfer Learning):將模型在一任務中學到的知識應用到另一任務。 * API(應用程式介面):提供外部開發者存取模型功能的介面。 * 評估指標(Evaluation Metric):用來衡量模型表現的標準,如準確率、F1 分數等。 * 語義相似度(Semantic Similarity):衡量兩段文字在意義上的相近程度。 * 上下文視窗(Context Window):模型能處理的輸入文字長度範圍。 * 延伸生成(Autoregressive Generation):逐步生成下一個詞直到完成整段輸出的方式。 * 過擬合(Overfitting):模型過度適應訓練資料而在新數據上表現不佳的現象。 * 泛化能力(Generalization):模型在未見過的新數據上保持良好表現的能力。 * 推理(Inference):使用已訓練模型對新輸入資料進行預測的過程。 * 微服務架構(Microservices Architecture):以獨立服務模組部署 AI 功能的架構設計。 * 人機互動(Human-AI Interaction):人類與 AI 系統之間的交流方式。 * 提示模板(Prompt Template):設計提示的固定格式,用於標準化與重複使用。 * 上下文學習(In-context Learning):模型根據輸入的範例學習如何完成任務。 * 多模態模型(Multimodal Model):能處理文字、影像、聲音等多種輸入形式的模型。 * 語法(Syntax):語言中句子結構的規則。 * 語意(Semantics):語言中詞句所承載的意義。 * 語用學(Pragmatics):語言在實際情境下的使用方式與含義。 * 語音辨識(Speech Recognition):將人類語音轉換為文字的技術。 * 文本轉語音(Text-to-Speech, TTS):將文字轉換為自然語音的技術。 * 模型壓縮(Model Compression):縮小模型大小以提升效率的技術。 * 分詞(Tokenization):將文本切分為模型可處理的最小單位。 * 模型偏差(Model Bias):模型因訓練數據不均衡而產生的偏見。 * 可解釋性(Explainability):解釋 AI 模型決策過程的能力。 * 強化學習(Reinforcement Learning):透過獎勵與懲罰來訓練智能體的學習方法。 * 從人類回饋的強化學習(Reinforcement Learning from Human Feedback, RLHF):利用人類評價優化 AI 模型行為的方法。 * 少樣本提示(Few-shot Prompting):提供少量例子來幫助模型理解任務的提示方式。 * 零樣本提示(Zero-shot Prompting):僅提供指令,不給任何範例的提示方式。 * 提示工程心態(Prompt Engineering Mindset):強調像設計搜尋引擎查詢一樣思考,寫一次提示就達到最佳效果。 * 查詢設計(Query Design):以精確且高效的方式撰寫輸入指令以獲得所需輸出。 * 指令明確性(Instruction Clarity):提供詳細且清楚的指令,避免模糊或含糊不清。 * 上下文連貫性(Contextual Continuity):在對話中保持前後一致,使模型理解累積的資訊。 * 迭代提示(Iterative Prompting):透過多輪對話逐步修正與優化 AI 的回答。 * 人設(Persona Adoption):讓模型以特定角色或風格來回應,以提升真實性與相關性。 * 格式規範(Output Formatting):明確指定輸出的格式,如清單、表格、段落或要點。 * 範疇限制(Scope Limitation):縮小問題範圍以避免冗長或無關的答案。 * 中立性提示(Unbiased Prompting):避免引導性問題,以減少模型產生偏差答案。 * 提示模板化(Prompt Templates):將常用的提示設計為固定格式,便於重複應用。 * 精確提問(Precise Questioning):避免模糊語句,直接點出需求。 * 語言風格設定(Stylistic Control):指定模型輸出的語氣、風格或寫作手法。 * 知識建構(Knowledge Building):利用持續對話逐步建立知識結構。 * 預期管理(Expectation Management):在提示中設定輸出限制,如字數、結構。 * 語境敏感性(Context Sensitivity):根據情境調整提示的細節與方向。 * 語意約束(Semantic Constraints):透過語意限制提升輸出精確度。 * 個人化提示(Personalized Prompting):根據用戶需求與背景量身打造提示。 * 教學式提示(Instructional Prompting):要求模型不僅給出答案,還需解釋原因與步驟。 * 錯誤糾正提示(Error Correction Prompting):專注於請模型糾正輸入中的錯誤。 * 精細控制(Granular Control):在提示中細分多個輸出要求。 * 擴展式提示(Elaborative Prompting):要求模型在回答中加入額外細節或解釋。 * 壓縮式提示(Compressed Prompting):要求模型以最少字數提供核心資訊。 * 限定語境(Bounded Context):限制 AI 回答僅基於提供的資料,而非外部推測。 * 反饋導向提示(Feedback-Oriented Prompting):根據 AI 的初始回答提供新指令進行修正。 * 情境角色扮演(Role-playing Prompts):讓模型模擬特定專業人士的回答方式。 * 格式化輸出(Structured Output):指定輸出為 JSON、Markdown、程式碼等結構。 * 多目標提示(Multi-Objective Prompting):同時要求模型完成多項子任務。 * 知識檢驗提示(Knowledge Validation):要求模型驗證自身輸出的正確性。 * 思維鏈提示(Chain of Thought Prompting):引導模型逐步推理來獲取答案。 * 自動糾錯(Self-Correction):提示模型檢查並修正自己的輸出。 * 體驗最佳化(User Experience Optimization):撰寫能提升互動流暢度的提示。 * 功能明確性(Task Specificity):讓提示精準鎖定所需任務,不留模糊空間。 * 多樣性生成(Diversity Generation):提示模型提供不同風格或觀點的答案。 * 可控生成(Controlled Generation):限制模型在長度、主題或語氣上的輸出。 * 反例提示(Counterexample Prompting):提供錯誤範例讓模型學會避開類似錯誤。 * 引導學習(Guided Learning):提示中逐步指導模型完成任務。 * 自我檢查提示(Self-Check Prompts):要求模型檢查其邏輯是否合理。 * 可重複性(Reproducibility):設計提示能在多次執行下輸出一致結果。 * 可解釋性提示(Explainability Prompts):要求模型解釋推理過程與答案來源。 * 輸入分解(Decomposition):將複雜問題拆解為小步驟輸入。 * 精簡輸出(Conciseness):要求模型以簡短方式回答。 * 信息層級(Information Hierarchy):指定回答按重要性排序。 * 漸進式複雜度(Progressive Complexity):逐步增加提示難度以引導更深層回答。 * 創意性提示(Creative Prompting):要求模型生成詩歌、故事或創作內容。 * 精確比對提示(Exact Matching):強制模型輸出與輸入數據結構對應。 * 專業領域語境(Domain-Specific Context):針對醫學、法律、金融等領域設計提示。 * 限定視角(Perspective Limitation):要求模型從特定角色或觀點回答。 * 多輪對話設計(Multi-turn Prompting):設計能持續展開對話的提示。 * 評估導向提示(Evaluation-Oriented Prompting):要求模型自評輸出的完整性與準確性。 * 最佳實踐(Best Practices):設計提示時綜合應用清晰指令、角色、格式與範圍控制原則。 * 零樣本提示(Zero-shot Prompting):不提供任何範例,只用指令讓模型完成任務的提示方式。 * 少樣本提示(Few-shot Prompting):在指令中加入少量範例,幫助模型掌握任務格式與標準。 * 單樣本提示(One-shot Prompting):只提供一個範例來引導模型輸出。 * 上下文學習(In-Context Learning):模型僅依靠對話中提供的範例與指令學會任務。 * 例示選擇(Example Selection):挑選具代表性的訓練樣例放入提示以提升輸出品質。 * 思維鏈(Chain of Thought):要求模型逐步寫出推理過程以提高正確率。 * 自我一致性(Self-Consistency):對同一提示多次取樣,投票選出最一致的推理結果。 * 思維樹(Tree of Thoughts):同時探索多條推理分支,選擇最佳解路徑。 * ReAct 提示:結合推理(Reasoning)與行動(Acting),在推理途中呼叫工具查證。 * 工具增強推理(Tool-augmented Reasoning):讓模型在回答中動態使用計算器、檢索等外部工具。 * 函式呼叫(Function Calling):以結構化參數呼叫外部函式,取得資料或執行動作後再產生回覆。 * 系統提示(System Prompt):設定模型整體行為與原則的高優先序指令。 * 使用者提示(User Prompt):由使用者提供的任務描述或問題內容。 * 助手提示(Assistant Prompt):模型先前產生、可被後續回合引用的回應內容。 * 提示注入(Prompt Injection):惡意輸入試圖覆寫系統規則或竊取機密的攻擊手法。 * 提示防護(Prompt Guarding):以規則、過濾與結構化策略防範提示注入風險。 * 溫度(Temperature):控制取樣隨機性;高溫多樣創意,低溫穩定可預測。 * Top-k 抽樣:每步只在機率最高的 k 個詞中隨機取樣以生成文本。 * Top-p/核抽樣(Nucleus Sampling):在累積機率達 p 的詞集合中取樣,動態控制候選集合。 * 重複懲罰(Repetition Penalty):降低重複詞被再次選中的機率,以減少贅述。 * 長度懲罰(Length Penalty):調整生成偏好,避免過短或過長的輸出。 * 貪婪解碼(Greedy Decoding):每步選擇機率最高的詞,快速但易陷入重複。 * 對比式搜尋(Contrastive Search):平衡流暢度與多樣性,減少幻覺與重複。 * 束搜尋(Beam Search):同時保留多條候選序列,最終選最佳整體機率路徑。 * 停止序列(Stop Sequences):設定遇到特定標記即停止生成,控制輸出邊界。 * 指令遵循度(Instruction Following):模型依據明確指示完成任務的能力。 * 結構化輸出(Structured Output):要求模型產生 JSON、表格等可機器讀取格式。 * JSON 架構約束(JSON Schema Constraint):以模式定義欄位與型別,強化輸出可用性。 * 檢索增強生成(RAG):先以檢索取得相關知識,再讓模型基於內容生成回答。 * 向量資料庫(Vector Database):儲存文本嵌入向量並支援相似度查詢的系統。 * 近似最近鄰搜尋(ANN):以次線性時間找出相似向量的高效搜尋方法。 * 餘弦相似度(Cosine Similarity):衡量兩向量角度相近程度的常用指標。 * HNSW 索引:基於分層小世界圖的 ANN 結構,兼顧速度與精度。 * FAISS:Facebook 開源的相似度搜尋與聚類庫,常用於向量檢索。 * 向量維度(Embedding Dimensions):嵌入向量的長度,影響表徵能力與計算成本。 * 內容分塊(Chunking):將長文切分成固定長度片段以利檢索與注入上下文。 * 滑動視窗(Sliding Window):以重疊片段覆蓋長文本,降低資訊遺失。 * 知識截斷(Knowledge Cutoff):模型訓練資料的最新日期限制,超出範圍需檢索。 * 幻覺偵測(Hallucination Detection):識別模型編造或不實內容的技術與流程。 * 引用強制(Citations Required):要求模型為關鍵主張附來源,提升可驗證性。 * 事實核查(Fact-Checking):以外部可信資料驗證模型輸出之真實性。 * 紅隊測試(Red Teaming):以對抗性測試找出安全與偏見問題。 * 安全對齊(Safety Alignment):透過資料與策略使模型行為符合倫理與政策。 * 敏感資訊遮罩(PII Masking):在輸入與輸出中隱去個資以保護隱私。 * 毒性過濾(Toxicity Filtering):偵測並抑制仇恨、騷擾與不當語言。 * 內容政策(Content Policy):規範允許與禁止輸出範圍的條款集合。 * 評測基準:MMLU:多學科知識與推理測試,用以評估通識能力。 * 評測基準:TruthfulQA:測量模型避免常見錯誤信念與錯誤資訊的能力。 * 評測指標:BLEU/ROUGE:機器翻譯與摘要常用的重疊度比較指標。 * 困惑度(Perplexity):以機率衡量語言模型對測試語料的預測困難度。
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.