# 課程介紹  * 學習如何透過提示工程獲得最佳 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
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up