AWS Certified AI Practitioner key notes
Amazon AI Practitioner學習指南 - 筆記
導論
AI 與 ML 的定義:
- AI(人工智慧):模擬人類智能的技術。
- ML(機器學習):AI 的子領域,透過資料讓電腦自我學習與預測。
- DL(深度學習):ML 的子領域,使用多層神經網路處理大量資料。
ML 工作流程:
- 問題定義與業務目標對齊
- 數據收集與準備
- 特徵工程與資料處理
- 建立與訓練模型
- 模型評估與調整
- 模型部署與監控
AWS 的 AI/ML 生態系
- Amazon SageMaker:端對端的機器學習平台,支援建模、訓練、部署、監控。
- Amazon Rekognition:影像與影片分析(如臉部辨識、物件偵測)。
- Amazon Comprehend:自然語言處理(如情緒分析、實體辨識)。
- Amazon Lex:建立對話式介面(聊天機器人)。
- Amazon Polly:文字轉語音(TTS)。
- Amazon Transcribe:語音轉文字(STT)。
- Amazon Translate:即時語言翻譯。
- Amazon Forecast:時間序列預測。
- Amazon Textract:從文件中擷取文字與欄位(OCR)。
資料與特徵工程
資料準備的重要性:資料品質決定模型表現。
特徵工程:
- 特徵選擇、特徵轉換、特徵縮放。
- 使用 Amazon SageMaker Data Wrangler 簡化流程。
模型訓練與評估
訓練類型:監督式、非監督式、強化學習。
常見演算法:線性回歸、決策樹、XGBoost、K-means、神經網路。
模型評估指標:
- 精確率 (Precision)、召回率 (Recall)、F1 分數
- 混淆矩陣、AUC、RMSE
模型部署與監控
- 部署方式:批次推論(Batch)、即時推論(Real-time)。
- A/B 測試 與 Canary 部署 支援逐步上線。
- 模型漂移(Model Drift) 監控與再訓練機制。
安全性與責任式 AI
- 資料隱私與合規性:GDPR、HIPAA。
- 公平性(Fairness):避免偏誤(Bias)。
- 可解釋性(Explainability):提供模型決策依據。
AWS AI/ML 應用案例
- 零售:客戶推薦系統、庫存預測。
- 醫療:診斷輔助、病歷分析。
- 金融:欺詐偵測、信用風險評估。
準備 AWS AI 認證
熟悉 SageMaker 工作流程 與 服務選擇邏輯。
練習使用 AutoML、Jupyter Notebook、Pipeline。
了解如何處理常見問題,例如:
- 資料不足如何增強?
- 模型準確率低時如何調整?
- 預測服務如何擴展(Scalability)?
機器學習與 AWS 服務筆記
回歸 (Regression)
- 定義:尋找函數將標記資料集關聯至連續變數的過程。
- 用途:預測連續值,如天氣預報或房價預測。
- 表示方式:在圖形上繪製資料點(向量),並繪製回歸線表示預測。
- 誤差:資料點與回歸線的距離表示誤差。
- 演算法:
- 平均平方誤差 (Mean Squared Error, MSE)
- 均方根誤差 (Root Mean Squared Error, RMSE)
- 平均絕對誤差 (Mean Absolute Error, MAE)
分類 Kelsey (Classification)
- 定義:尋找函數將標記資料集劃分為離散類別的過程。
- 用途:預測資料屬於哪個類別,如電子郵件是否為垃圾郵件。
- 表示方式:在圖形上繪製資料點,並以分類線分隔不同類別。
- 演算法:
- 邏輯回歸 (Logistic Regression)
- 決策樹 (Decision Tree)
- 隨機森林 (Random Forest)
- 神經網路 (Neural Network)
函式庫與框架 (Library and Framework)
- 函式庫:提供特定功能的程式碼集合,如 NLTK 用於自然語言處理。
- 框架:提供應用程式結構,包含多個函式庫,如 LangChain 用於大型語言模型。
演算法與函數 (Algorithm and Function)
- 演算法:一組執行特定任務的數學或電腦指令,可由多個小演算法組成。
- 函數:將演算法分組以計算結果,類似機器學習模型。
機器學習模型 (Machine Learning Model)
- 定義:接受資料輸入,執行機器學習任務(如回歸或分類),並輸出結果。
- 模型類型:
- 具體模型:有實體形式。
- 抽象模型:行為模式,如數學或程式碼。
超參數 (Hyperparameter)
- 定義:訓練模型前設定的參數,控制學習過程,如 K-Nearest Neighbors 的 K 值。
- 與模型參數區別:模型參數在訓練過程中學習。
K-Nearest Neighbors (KNN)
- 定義:監督式分類演算法,根據輸入資料與最近鄰居的距離進行分類。
- 距離度量:歐幾里得 (Euclidean)、漢明 (Hamming)、明可夫斯基 (Minkowski)、曼哈頓 (Manhattan)。
- 特性:KNN 本身非機器學習,但應用於機器學習問題時成為演算法。
Transformer 架構 (Transformer Architecture)
- 用途:處理序列資料,特別用於自然語言處理 (NLP)。
- 主要組成:
- 編碼器 (Encoder):處理輸入序列,產生語義上下文。
- 解碼器 (Decoder):根據上下文生成輸出序列,逐詞元預測。
- 關鍵機制:
- 多頭注意力機制 (Multi-Head Attention)
- 位置編碼 (Positional Encoding)
分詞 (Tokenization)
- 定義:將文字分解成更小單位(詞元)的過程。
- 目的:將文字轉為模型可處理的數值表示,建立詞彙表。
- 詞元:單詞、部分單詞或字符。
- 詞彙表:模型訓練時創建的唯一詞元集合。
- 演算法:
- GPT-3:位元組對編碼 (Byte Pair Encoding)
- BERT:WordPiece
- Google T5、GPT-3.5:SentencePiece
詞元與容量 (Tokens and Capacity)
- 關係:Transformer 解碼器連續將詞元序列饋回以預測下一個詞元。
- 記憶體:詞元數增加,記憶體使用量增加。
- 運算:序列越長,運算量越大。
- 限制:AI 服務常限制輸入與輸出詞元總數。
向量 (Vector)
- 定義:具有長度和方向的數值表示,通常為多維空間中的點。
- 用途:表示資料的數值形式,用於向量資料庫和嵌入。
嵌入 (Embeddings)
- 定義:資料(如文字或圖像)的向量表示。
- 目的:捕捉語義或上下文意義,供模型處理。
- 向量資料庫:專用於儲存和搜尋向量。
檢索增強生成 (Retrieval Augmented Generation, RAG)
- 定義:從外部資料源檢索資料,納入語言模型上下文,生成更明智回應。
- 資料源:向量資料庫、關聯式資料庫、圖形資料庫、文件資料庫、網際網路。
- 流程:資料源、分塊、解析、嵌入、向量資料庫。
- Amazon Bedrock Knowledge Base:AWS 功能,支援 RAG 工作流程,連接向量資料庫。
向量資料庫 (Vector Databases)
- 用途:高效儲存、索引、搜尋向量嵌入。
- 第三方:Pinecone、Weaviate、Milvus,可與 Amazon Bedrock 整合。
- AWS 服務:
- Amazon RDS (PostgreSQL with PGVector)
- Amazon DocumentDB
Amazon RDS (Relational Database Service)
- 定義:AWS 受管服務,用於設定、操作、擴展關聯式資料庫。
- PGVector:PostgreSQL 擴充,支援向量儲存與查詢。
Amazon DocumentDB
- 定義:AWS 受管 MongoDB 相容資料庫,支援向量搜尋。
- 與 DynamoDB 區別:DynamoDB 不支援向量搜尋,但可用於聊天記錄等。
Amazon Neptune
- 定義:AWS 受管圖形資料庫服務。
- 查詢語言:Gremlin、openCypher、SPARQL。
- 用途:RAG 工作流程中生成查詢,從圖形資料庫獲取資訊。
- 圖形知識圖譜:儲存結構化知識,增強語言模型。
Amazon Athena
- 定義:無伺服器查詢服務,使用標準 SQL 分析 Amazon S3 資料。
- 架構:基於 Presto 和 Trino。
- 資料來源:S3 儲存貯體。
- 結果儲存:查詢結果存回 S3。
- Glue Data Catalog:元資料儲存庫,包含資料庫和表定義。
- SQL 子集:DDL、DML、DQL。
- 資料類型:數值、字符、二進制、日期、時間戳、陣列、映射、結構。
- SerDe:解析不同格式資料(如 CSV、JSON、Parquet、ORC)。
AWS Glue
- 定義:無伺服器資料整合服務。
- Glue Data Catalog:集中式元資料儲存庫。
- Glue Crawler:掃描資料源,確定模式並創建表。
- Glue Jobs:執行 ETL 工作負載。
- 引擎類型:Python Shell、Ray Jobs (預覽)、Spark Jobs。
- 計費:基於資料處理單位 (DPU)。
- Glue Data Quality:監控資料品質。
Amazon SageMaker
- 定義:完全受管服務,支援建構、訓練、部署機器學習模型。
- SageMaker Python SDK:專用於 SageMaker 的 Python 函式庫。
- 抽象概念:估計器、模型、預測器、會話。
- 功能:自動模型調整、批次轉換、推論管線、Autopilot、Model Monitoring、Debugger、Processing。
- 端點:SageMaker Endpoints (訓練/部署)、Runtime Endpoints (推論)。
- SageMaker JumpStart:提供預訓練模型、筆記型電腦、解決方案。
- SageMaker Studio Lab:免費 ML 環境,支援 Jupyter 筆記型電腦。
- SageMaker Clarify:檢測偏見,增強可解釋性,使用 SHAP 演算法。
- Model Cards:記錄模型詳細資訊。
- Feature Store:儲存、版本控制、共享 ML 特徵。
AI 可解釋性 (AI Explainability)
- 定義:理解 AI 模型決策的過程。
- SHAP 演算法:量化每個輸入特徵對模型輸出的貢獻。
模型評估 (Model Evaluation)
- 定義:衡量機器學習模型效能。
- 評估指標:
- 分類指標:準確度、精確率、召回率、F1 Score。
- NLP 指標:
- BLEU:機器翻譯精度指標。
- METEOR:改進 BLEU,支援同義詞和詞幹匹配。
- ROUGE:摘要任務召回率指標。
- 混淆矩陣:視覺化分類預測結果。
- True Positive (TP):正確預測正例。
- True Negative (TN):正確預測負例。
- False Positive (FP):錯誤預測正例 (Type I Error)。
- False Negative (FN):錯誤預測負例 (Type II Error)。
- Amazon Bedrock Model Evaluation:評估 LLM 效能,支援準確度、毒性、穩健性。
- FMEval:AWS 開源函式庫,評估大型語言模型。
偏見檢測 (Bias Detection)
- 定義:識別模型中對特定群體的不公平偏見。
- SageMaker Clarify:提供偏見指標,如 Class Imbalance、Difference in Proportions of Labels。
- Facet:衡量偏見的屬性。
- Bias Metric:量化偏見程度。
- Bias Report:偏見指標集合。
Guardrails
- 定義:AWS Bedrock 安全功能,過濾不適當 LLM 請求和回應。
- 功能:檢查有害內容、不適當主題、上下文接地檢查。
Model Invocation Logging
- 定義:記錄 Amazon Bedrock 模型調用資料至 CloudWatch Logs。
- 資訊:詞元使用量、模型、輸入/輸出文字、Guardrails 應用、帳戶/區域資訊。
- 用途:追蹤詞元、監控成本、偵錯。
Amazon Personalize
- 定義:機器學習服務,提供應用程式內推薦。
- 資料集類型:用戶資料、項目資料、用戶-項目互動資料。
- 領域推薦器:針對特定使用案例優化的推薦器。
- 用途:個性化推薦,如「為您推薦」、「常一起購買」。
Amazon CodeWhisperer
- 定義:AI 程式設計助理,提供即時程式碼建議。
- 功能:支援多語言 (Java、JavaScript、Python 等)。
- 部署:作為 IDE 擴充功能 (VS Code、Cloud9)。
- 定價:提供免費層級。
Amazon CodeGuru
- 定義:自動程式碼審查和性能分析工具。
- 組成:
- Security:查找安全漏洞。
- Reviewer:提供程式碼建議。
- Profiler:查找程式碼低效率。
- 支援語言:Java、JavaScript、Python 等。
- 整合:GitHub、CI/CD 工作流程。
Amazon Kendra
- 定義:機器學習驅動的企業搜尋服務。
- 功能:從多種資料源 (S3、資料庫、SharePoint) 建立搜尋索引。
- 用途:智能搜尋企業資料。
Amazon Polly
- 定義:文字轉語音服務。
- 語音類型:標準、長格式、神經 (Neural 最逼真,成本較高)。
- 功能:支援多語言,控制音高、速度、音量。
- Lexicons:自定義發音文件。
- Speech Marks:提供語音元資料。
- SSML:控制語音合成的 XML 標記語言。
- 整合:可用於行銷、輔助功能等。
小測驗 (Quiz)
問題與答案
回歸的主要目的是什麼?與分類有何不同?
- 回歸預測連續數值,如房價;分類將資料分配到離散類別,如垃圾郵件識別。
在 K-Nearest Neighbors 演算法中,’K’ 代表什麼?
- ‘K’ 表示分類時考慮的最近鄰居數量,影響演算法結果。
Transformer 架構中的編碼器和解碼器分別負責什麼?
- 編碼器處理輸入序列,產生語義上下文;解碼器根據上下文生成輸出序列,逐詞元預測。
分詞的目的是什麼?為什麼大型語言模型需要它?
- 分詞將文字分解為詞元,轉為數值表示;大型語言模型需詞彙表以處理文字。
什麼是向量資料庫?它們在 AI 中有何作用?
- 向量資料庫儲存、索引、搜尋向量嵌入,在 RAG 和相似度搜尋中快速找到相關向量。
Amazon Bedrock Knowledge Base 的核心功能是什麼?它通常與哪種類型的資料庫一起使用?
- 核心功能是支援 RAG 工作流程,連接外部資料源,通常與向量資料庫(如 RDS PGVector)一起使用。
Amazon DocumentDB 與 Amazon DynamoDB 在支援向量搜尋方面有何關鍵區別?
- DocumentDB 支援向量搜尋,儲存和查詢向量嵌入;DynamoDB 不支援向量搜尋。
Amazon SageMaker Clarify 使用哪種演算法來解釋模型決策中每個輸入特徵的貢獻?
- 使用 SHAP 演算法,量化每個特徵對模型輸出的貢獻。
混淆矩陣中的 True Positive (TP) 和 False Positive (FP) 分別代表什麼?
- TP:正確預測正例;FP:錯誤預測正例 (Type I Error)。
Amazon Polly 的 Neural 語音與 Standard 語音有何不同?
- Neural 語音使用深度學習,語音更自然逼真;Standard 語音較機械化,成本較低。
論文格式問題 (Essay Format Questions)
請針對以下任一問題撰寫一篇論文:
- 比較並對比回歸和分類這兩種機器學習的基本任務,討論它們各自的應用場景和常見演算法。
- 詳細解釋 Transformer 架構的工作原理,包括編碼器、解碼器、多頭注意力和位置編碼的作用,並討論其在大型語言模型中的重要性。
- 深入探討檢索增強生成 (RAG) 的概念,闡述其如何結合檢索機制和生成模型來改進大型語言模型的回應,並討論其優點和潛在挑戰。
- 解釋向量資料庫在 AI 應用中的作用,特別是在儲存和搜尋嵌入方面,並討論它們與傳統關聯式資料庫的區別。
- 討論模型評估的重要性,並詳細介紹幾種常用的評估指標(例如,分類指標、BLEU、METEOR、ROUGE),解釋它們各自衡量的是模型的哪方面效能。
詞彙表 (Glossary of Key Terms)
回歸 (Regression):將資料集關聯至連續變數的過程。
分類 (Classification):將資料集劃分為類別的過程。
函式庫 (Library):提供特定功能的程式碼集合。
框架 (Framework):提供應用程式結構,包含多個函式庫。
演算法 (Algorithm):執行特定任務的指令集。
函數 (Function):計算結果的演算法分組。
機器學習模型 (Machine Learning Model):執行機器學習任務的函數。
超參數 (Hyperparameter):控制學習過程的預設參數。
K-Nearest Neighbors (KNN):根據最近鄰居距離分類的演算法。
Transformer 架構:處理序列資料的深度學習架構。
編碼器 (Encoder):處理輸入序列。
解碼器 (Decoder):生成輸出序列。
多頭注意力機制:同時關注序列不同部分。
位置編碼:添加詞元位置資訊。
分詞 (Tokenization):將文字分解為詞元。
詞元 (Token):文字最小單位。
詞彙表 (Vocabulary):模型學習的唯一詞元集合。
向量 (Vector):多維空間中的數值表示。
嵌入 (Embeddings):資料的向量表示。
向量資料庫 (Vector Database):儲存、索引、搜尋向量。
檢索增強生成 (RAG):結合檢索與生成,改進語言模型回應。
Amazon Bedrock Knowledge Base:支援 RAG 工作流程。
Amazon RDS:受管關聯式資料庫服務。
PGVector:PostgreSQL 向量儲存擴充。
Amazon DocumentDB:MongoDB 相容資料庫,支援向量搜尋。
Amazon Neptune:受管圖形資料庫服務。
圖形資料庫:使用圖形結構儲存資料。
圖形知識圖譜:儲存結構化知識。
Amazon Athena:無伺服器 S3 資料查詢服務。
AWS Glue Data Catalog:元資料儲存庫。
資料定義語言 (DDL):定義資料庫模式。
資料操作語言 (DML):操作資料集。
資料查詢語言 (DQL):查詢資料集。
序列化/反序列化 (SerDe):解析不同格式資料。
AWS Glue:無伺服器資料整合服務。
AWS Glue Crawler:掃描資料源創建表。
AWS Glue Jobs:執行 ETL 工作。
資料處理單位 (DPU):Glue 計費單位。
AWS Glue Data Quality:監控資料品質。
Amazon SageMaker:建構、訓練、部署 ML 模型服務。
SageMaker Python SDK:SageMaker 專用 Python 函式庫。
估計器 (Estimator):封裝 SageMaker 訓練。
模型 (Model):封裝 ML 模型。
預測器 (Predictor):提供實時推論。
SageMaker JumpStart:預訓練模型與解決方案。
SageMaker Studio Lab:免費 ML 環境。
SageMaker Clarify:檢測偏見與可解釋性。
AI 可解釋性:理解 AI 決策過程。
SHAP:解釋模型輸出的演算法。
Facet:衡量偏見的屬性。
Bias Metric:量化偏見程度。
Bias Report:偏見指標集合。
模型評估:衡量模型效能。
評估指標:量化模型效能的度量。
混淆矩陣:視覺化分類預測。
True Positive (TP):正確正例。
True Negative (TN):正確負例。
False Positive (FP):錯誤正例。
False Negative (FN):錯誤負例。
BLEU:機器翻譯精度指標。
METEOR:改進的翻譯評估指標。
ROUGE:摘要任務召回率指標。
Amazon Bedrock Model Evaluation:評估 LLM 效能。
Guardrails:過濾不適當 LLM 內容。
Model Invocation Logging:記錄 Bedrock 模型調用。
Amazon Personalize:應用程式內推薦服務。
Domain Recommenders:優化特定使用案例的推薦器。
Amazon CodeWhisperer:AI 程式碼建議服務。
Amazon CodeGuru:程式碼審查與性能分析。
Code Reviewer:提供程式碼建議。
Profiler:查找程式碼低效率。
Amazon Kendra:企業搜尋服務。
索引 (Index):組織資料以快速搜尋。
資料來源連接器:連接不同資料源。
Amazon Polly:文字轉語音服務。
SSML:控制語音合成的標記語言。
Lexicons:自定義發音文件。
Speech Marks:語音元資料標記。
演算法 (Algorithm) 和函數 (Function):
演算法:一組數學或電腦指令,用於執行特定任務。演算法可以由幾個較小的演算法組成。
函數:一種將演算法分組以計算結果的方法(類似於機器學習模型)。機器學習模型 (Machine Learning Model):
定義:一個函數,接受資料輸入,執行機器學習任務(例如回歸或分類),並輸出結果。
模型類型:具體模型(有實體形式)和抽象模型(行為模式,例如數學或程式碼)。超參數 (Hyperparameter):
定義:在訓練模型之前設定的參數,用於控制學習過程(例如,K-Nearest Neighbors 中的 ‘K’ 值)。
與模型參數的區別:模型參數是在訓練過程中學習到的。K-Nearest Neighbors (KNN):
定義:一種監督式分類機器學習演算法,根據輸入資料與其最近鄰居的距離進行分類。
距離度量:可以使用不同的距離度量(例如歐幾里得 (Euclidean)、漢明 (Hamming)、明可夫斯基 (Minkowski)、曼哈頓 (Manhattan))。
KNN 本身不是機器學習,但應用於機器學習問題時就成為機器學習演算法。Transformer 架構 (Transformer Architecture):
用途:用於處理序列資料,特別是自然語言處理(例如大型語言模型)。
主要組成部分:編碼器 (Encoder) 和解碼器 (Decoder)。
工作原理:編碼器處理輸入序列並產生語義上下文,解碼器使用此上下文生成輸出序列(通常一次一個詞元)。
關鍵組成部分:多頭注意力機制 (Multi-Head Attention) 和位置編碼 (Positional Encoding)。分詞 (Tokenization):
定義:將資料輸入(通常是文字)分解成更小的部分(詞元)的過程。
目的:使模型能夠處理文字資料,通常為每個詞元分配一個唯一的 ID。
詞元:可以是單詞、部分單詞或字符。
詞彙表:模型在訓練期間創建的唯一詞元集合。
演算法:不同的模型使用不同的分詞演算法(例如,GPT-3 使用位元組對編碼 (Byte Pair Encoding),BERT 使用 WordPiece,Google T5 和 GPT-3.5 使用 SentencePiece)。詞元和容量 (Tokens and Capacity):
Transformer 模型中的關係:解碼器連續將詞元序列作為輸出饋回以預測下一個詞元。
記憶體:序列中的每個詞元都需要記憶體;詞元計數增加時,記憶體使用量也增加。
運算:序列越長,模型需要執行的運算越多。
限制:許多 AI 服務對輸入和輸出詞元的總數設有限制。向量 (Vector):
定義:一個具有長度和方向的箭頭;在資料表示中,通常是在多維空間中的一個點。
用途:表示資料的數值表示,常用於向量資料庫和嵌入。嵌入 (Embeddings):
定義:資料(例如文字或圖像)的數值表示,表示為向量。
目的:捕捉資料的語義或上下文意義,使模型能夠理解和處理它們。
向量資料庫:專門用於儲存和搜尋向量的資料庫。檢索增強生成 (Retrieval Augmented Generation, RAG):
定義:一種 AI 流程,從外部資料源檢索資料並將其納入語言模型的上下文視窗中,以產生更明智的回應。
資料源:RAG 可以從各種資料源獲取資料,包括向量資料庫、關聯式資料庫、圖形資料庫、文件資料庫或網際網路。
流程:通常涉及資料源、分塊 (chunking)、解析 (parsing)、嵌入 (embedding) 和向量資料庫。
Amazon Bedrock Knowledge Base:AWS 中的一項功能,允許設定 RAG 工作流程以連接到向量資料庫。向量資料庫 (Vector Databases):
用途:專門用於高效儲存、索引和搜尋向量嵌入。
第三方向量資料庫:Pinecone, Weaviate, Milvus 是可以與 Amazon Bedrock Knowledge Base 集成的第三方向量資料庫。
AWS 服務:Amazon RDS (PostgreSQL with PGVector) 和 Amazon DocumentDB 可以用作向量資料庫。Amazon RDS (Relational Database Service):
定義:AWS 中的一項受管服務,用於設定、操作和擴展關聯式資料庫。
PGVector:PostgreSQL 的一個擴充功能,使其能夠儲存和查詢向量,因此可以用作向量資料庫。Amazon DocumentDB:
定義:AWS 中的一項受管 MongoDB 相容資料庫服務。
向量搜尋:DocumentDB 支援向量搜尋,這可能是因為它基於高度修改的 PostgreSQL 版本。
與 DynamoDB 的區別:DynamoDB (Key-Value/Document) 不支援向量搜尋,但可用於儲存聊天記錄 (Chat History) 以進行工作階段管理 (Session Management)。DocumentDB 支援向量搜尋,可用於儲存和搜尋向量。Amazon Neptune:
定義:AWS 中的一項受管圖形資料庫服務。
圖形查詢語言:支援 Gremlin, openCypher, SPARQL。
用途:可以在 RAG 工作流程中利用,其中語言模型可以生成查詢以從圖形資料庫獲取資訊。
圖形知識圖譜:利用圖形資料庫儲存和管理結構化知識,可以用於增強語言模型。Amazon Athena:
定義:AWS 中的一項互動式查詢服務,無需伺服器即可輕鬆分析 Amazon S3 中的資料,並使用標準 SQL。
架構:基於開源框架,例如 Presto 和 Trino。
資料來源:從 S3 儲存貯體中提取資料。
結果儲存:通常將查詢結果儲存回 S3 儲存貯體。
Glue Data Catalog:Athena 利用 AWS Glue Data Catalog 作為其資料來源的元資料儲存庫,其中包含資料庫和表的定義。
SQL 子集:資料定義語言 (DDL)、資料操作語言 (DML)、資料查詢語言 (DQL)。
資料類型:支援各種資料類型,包括數值(整數、浮點數、小數)、字符(CHAR、VARCHAR、STRING)、二進制、日期、時間戳、陣列、映射和結構。
序列化/反序列化 (SerDe):在創建表時指定,用於解析不同格式(如 CSV、JSON、Parquet、ORC)的資料;SerDe 配置會覆蓋 DDL 定義。
支持的 SerDe 庫:來自 Hive、OpenCSV、Grok、OpenX、Ion 等。AWS Glue:
定義:一項無伺服器資料整合服務。
Glue Data Catalog:作為集中式元資料儲存庫,儲存資料的位置、結構和模式。
Glue Crawler:用於自動掃描資料源(S3、JDBC 資料庫、DynamoDB、MongoDB、Delta Lake、Apache Iceberg、Hoodie)以確定模式並創建 Glue 表。
Glue Jobs:用於執行 ETL (Extract, Transform, Load) 工作負載。
引擎類型:Python Shell、Ray Jobs (預覽)、Spark Jobs。
創建 Glue Jobs 的方式:Visual ETL (Glue Studio)、Jupyter Notebooks、Script Editor。
計費:基於資料處理單位 (DPU) 和工作類型/工作人數的組合。
Glue Data Quality:衡量和監控資料品質的功能,建立在 AWS 開源 DQ 框架上。Amazon SageMaker:
定義:一個完全受管的服務,提供建構、訓練和部署機器學習模型所需的所有組成部分。
SageMaker Python SDK:一個 Python 函式庫,用於在 SageMaker 上訓練和部署 ML 模型;與 boto3 不同,它更側重於 SageMaker 特定的整合。
抽象概念:提供估計器 (Estimators)、模型 (Models)、預測器 (Predictors)、會話 (Sessions)。
功能:支援多種 ML 框架和演算法,自動模型調整 (Automatic Model Tuning)、批次轉換 (Batch Transform)、推論管線 (Inference Pipelines)、Autopilot、Model Monitoring、Debugger、Processing。
端點:SageMaker Endpoints (用於訓練和部署模型、Notebook 實例) 和 Runtime Endpoints (用於對託管模型進行推論請求)。
SageMaker JumpStart:一個機器學習中心,用於尋找、一鍵式部署和微調預訓練模型,筆記型電腦和解決方案範例;許多模型來自 Hugging Face。
SageMaker Studio Lab:一個免費的機器學習環境,提供 Jupyter 筆記型電腦以及 CPU 和 GPU 運算資源,無需設定或帳戶。
SageMaker Clarify:用於檢測 ML 模型中的偏見和增強可解釋性;提供各種預訓練偏見指標;使用 SHAP 演算法解釋特徵貢獻。
Model Cards:管理和治理 ML 模型的文檔框架,記錄模型詳細資訊、訓練指標、效能評估等。
Feature Store:一個專用的儲存庫,用於儲存、版本控制和共享機器學習特徵,以便在訓練和推論期間重複使用。AI 可解釋性 (AI Explainability):
定義:理解為什麼 AI 模型會做出特定決定的過程。
SHAP (SHapley Additive exPlanations) 演算法:一種賽局理論方法,用於解釋機器學習模型的輸出,量化每個輸入特徵對最終決策的貢獻。
SageMaker Clarify 中的應用:用於生成偏見報告和特徵重要性解釋。模型評估 (Model Evaluation):
定義:衡量機器學習模型效能的過程。
評估指標 (Evaluation Metrics):用於量化模型效能的度量標準。
內部評估 (Internal Evaluations):評估 ML 模型內部結構的指標。
外部評估 (External Evaluations):評估 ML 模型最終預測的指標。
混淆矩陣 (Confusion Matrix):用於視覺化模型預測與真實標籤的表格,對於分類問題很有用。
True Positive (TP):模型正確預測為正例。
True Negative (TN):模型正確預測為負例。
False Positive (FP, Type I Error):模型錯誤預測為正例(實際上是負例)。
False Negative (FN, Type II Error):模型錯誤預測為負例(實際上是正例)。
分類指標:準確度 (Accuracy)、精確率 (Precision)、召回率 (Recall)、F1 Score。
自然語言處理 (NLP) 指標:
BLEU (Bilingual Evaluation Understudy):一種用於機器翻譯評估的精度指標,比較機器翻譯與一組高品質參考翻譯。
METEOR (Metric for Evaluation of Translation with Explicit Ordering):一種基於精度的機器翻譯評估指標,克服了 BLEU 的缺陷,允許同義詞和詞幹匹配。
ROUGE (Recall-Oriented Understudy for Gisting Evaluation):一種用於摘要任務的評估指標,衡量機器生成摘要與參考摘要之間的召回率。
Amazon Bedrock Model Evaluation:AWS 中的一項功能,提供自動和手動模式來評估 LLM 效能;支援準確度、毒性 (Toxicity) 和穩健性 (Robustness) 等指標。
FMEval (Foundation Model Evaluation Library):一個由 AWS 開源的函式庫,用於評估大型語言模型。偏見檢測 (Bias Detection):
定義:識別 ML 模型中可能導致對特定人口群體(例如年齡、性別、收入)不公平待遇的偏見。
SageMaker Clarify 中的應用:提供各種預訓練偏見指標(例如 Class Imbalance、Difference in Proportions of Labels 等)來衡量資料集和模型中的偏見。
Facet:用於衡量偏見的屬性或特徵。
Facet Value:Facet 的特定值。
Bias Metric:一個數值,表示潛在偏見的程度。
Bias Report:數據集或模型的一系列偏見指標集合。Guardrails:
定義:AWS Bedrock 中的一項安全功能,用於實施策略以過濾和拒絕不適當或不需要的 LLM 請求和回應。
功能:可以檢查是否有害內容、不適當主題,並實施上下文接地檢查 (Contextual Grounding Check)。
應用:可以附加到 Bedrock 模型、Agents 或其他應用程式。Model Invocation Logging:
定義:將 Amazon Bedrock 模型調用資料發送到 CloudWatch Logs 的功能。
記錄的資訊:輸入/輸出詞元使用量、調用的模型、輸入/輸出文字、是否應用 Guardrails、帳戶/區域資訊。
用途:追蹤詞元使用量、監控成本、偵錯。Amazon Personalize:
定義:一項機器學習服務,用於為客戶建構應用程式內的推薦。
資料集類型:支援不同類型的資料集,包括用戶資料 (User Data)、項目資料 (Item Data)、用戶-項目互動資料 (User-Item Interaction Data)。
領域推薦器 (Domain Recommenders):預配置的推薦器,針對特定使用案例進行優化(例如,電子商務推薦器)。
用途:根據用戶行為或項目屬性生成個性化推薦(例如,為您推薦、常一起購買、最暢銷、最常查看)。
計費:基於使用的資料量、訓練時間和實時推薦請求。Amazon CodeWhisperer:
定義:AWS 中的一項 AI 程式設計助理服務,提供即時程式碼建議。
功能:根據現有程式碼和註釋提供建議;支援多種程式語言(Java、JavaScript、Python、C#、TypeScript、Ruby)。
部署選項:可以作為 Visual Studio Code、Cloud9 或其他 IDE 的擴充功能使用。
定價:提供免費層級,無需 AWS 帳戶。
Code Reviewer 和 Profiler:CodeGuru 的相關功能,用於尋找程式碼中的不安全漏洞和性能問題(儘管語言支援可能因功能而異)。Amazon CodeGuru:
定義:AWS 中的一項開發人員工具,用於自動程式碼審查和應用程式性能分析。
組成部分:Security (用於查找安全漏洞,可能仍在預覽中)、Reviewer (連接到程式碼儲存庫以提供持續的程式碼更改建議)、Profiler (查找程式碼中的低效率)。
支援的語言:Java、JavaScript、Python、C#、TypeScript、Ruby (語言支援可能因功能而異)。
整合:可以與 GitHub 等 Git 儲存庫以及 CI/CD 工作流程(例如 GitHub Actions)整合。Amazon Kendra:
定義:一項由機器學習驅動的企業搜尋服務。
功能:允許您從各種資料來源(例如 S3、資料庫、SharePoint)建立可搜尋的索引。
資料來源連接器:支援多種資料來源的內建連接器。
索引:Kendra 組織和索引資料以實現快速、準確的搜尋。
用途:在企業資料中實施智能搜尋功能。Amazon Polly:
定義:一項將文字轉換為逼真語音的服務。
語音類型:提供標準 (Standard)、長格式 (Long Form) 和神經 (Neural) 語音(神經語音最逼真但成本較高)。
功能:支援多種語言和語音;允許控制語音的各個方面,例如音高、速度和音量。
Lexicons:可以上傳自定義 Lexicons 文件,以指定特定單詞或短語的發音。
Speech Marks:元資料標記,提供語音相關的額外資訊(例如單詞開始/結束時間)。
SSML (Speech Synthesis Markup Language):一種基於 XML 的標記語言,用於控制語音合成的各個方面,例如添加停頓、強調或修改發音。
SSML 標記:包含標準 W3C 標記和 Amazon 特定標記(例如,用於添加呼吸或耳語)。
整合:可以與其他服務(例如 Wize.io)整合以用於行銷材料。
用途:創建語音內容,用於應用程式、內容建立或輔助功能。
小測驗 (Quiz)
請用 2-3 句話回答以下問題。
回歸的主要目的是什麼?與分類有何不同?
在 K-Nearest Neighbors 演算法中,'K' 代表什麼?
Transformer 架構中的編碼器和解碼器分別負責什麼?
分詞的目的是什麼?為什麼大型語言模型需要它?
什麼是向量資料庫?它們在 AI 中有何作用?
Amazon Bedrock Knowledge Base 的核心功能是什麼?它通常與哪種類型的資料庫一起使用?
Amazon DocumentDB 與 Amazon DynamoDB 在支援向量搜尋方面有何關鍵區別?
Amazon SageMaker Clarify 使用哪種演算法來解釋模型決策中每個輸入特徵的貢獻?
混淆矩陣中的 True Positive (TP) 和 False Positive (FP) 分別代表什麼?
Amazon Polly 的 Neural 語音與 Standard 語音有何不同?
測驗答案 (Quiz Answer Key)
回歸的主要目的是預測一個連續的數值,例如預測房價或天氣。分類的目的是將資料點分配到預定義的類別或類別中,例如將電子郵件歸類為垃圾郵件或非垃圾郵件。
在 K-Nearest Neighbors 演算法中,'K' 代表在決定新資料點的分類時要考慮的最近鄰居的數量。選擇不同的 K 值會影響演算法的結果。
Transformer 架構中的編碼器處理輸入序列並建立其表示(語義上下文),而解碼器則利用這個上下文來生成輸出序列,通常是透過預測序列中的下一個詞元。
分詞的目的是將文字輸入分解成更小的單位,稱為詞元,以便模型可以理解和處理文字。大型語言模型需要分詞來將原始文字轉換為它們可以處理的數值表示,並建立模型的內部詞彙表。
向量資料庫是專門用於儲存、索引和搜尋向量嵌入的資料庫,這些嵌入是資料的數值表示。它們在 AI 中至關重要,特別是在 RAG 和相似度搜尋等應用中,以快速找到與給定查詢向量相似的向量。
Amazon Bedrock Knowledge Base 的核心功能是允許您將 Amazon Bedrock 模型與外部資料源(特別是向量資料庫)連接,以啟用檢索增強生成 (RAG) 工作流程。它通常與向量資料庫一起使用,例如 RDS (PGVector)。
Amazon DocumentDB 與 Amazon DynamoDB 的關鍵區別在於,DocumentDB 支援向量搜尋,使其能夠儲存和查詢向量嵌入。 DynamoDB 不支援向量搜尋功能,儘管它可以作為其他用途(例如儲存聊天記錄)的資料庫。
Amazon SageMaker Clarify 使用 SHAP (SHapley Additive exPlanations) 演算法來解釋機器學習模型的輸出,量化每個輸入特徵對模型的最終決策的貢獻。
混淆矩陣中的 True Positive (TP) 代表模型正確地將一個正例預測為正例。 False Positive (FP) 代表模型錯誤地將一個負例預測為正例(也被稱為 Type I Error)。
Amazon Polly 的 Neural 語音使用深度學習來產生聽起來更自然和逼真的語音,通常具有更好的發音、韻律和語氣。 Standard 語音使用較舊的合成技術,聽起來可能比較生硬或機械化,但成本較低。
論文格式問題 (Essay Format Questions)
請針對以下任一問題撰寫一篇論文:
比較並對比回歸和分類這兩種機器學習的基本任務,討論它們各自的應用場景和常見演算法。
詳細解釋 Transformer 架構的工作原理,包括編碼器、解碼器、多頭注意力和位置編碼的作用,並討論其在大型語言模型中的重要性。
深入探討檢索增強生成 (RAG) 的概念,闡述其如何結合檢索機制和生成模型來改進大型語言模型的回應,並討論其優點和潛在挑戰。
解釋向量資料庫在 AI 應用中的作用,特別是在儲存和搜尋嵌入方面,並討論它們與傳統關聯式資料庫的區別。
討論模型評估的重要性,並詳細介紹幾種常用的評估指標(例如,分類指標、BLEU、METEOR、ROUGE),解釋它們各自衡量的是模型的哪方面效能。
詞彙表 (Glossary of Key Terms)
回歸 (Regression): 尋找函數將標記資料集關聯至連續變數的過程。
分類 (Classification): 尋找函數將標記資料集劃分為類別或類別的過程。
函式庫 (Library): 一組程式碼,提供特定功能供您在自己的程式碼中使用。
框架 (Framework): 提供一個結構或骨架,您可以在其上建構應用程式;通常包含多個函式庫。
演算法 (Algorithm): 一組數學或電腦指令,用於執行特定任務。
函數 (Function): 一種將演算法分組以計算結果的方法。
機器學習模型 (Machine Learning Model): 一個函數,接受資料輸入,執行機器學習任務,並輸出結果。
超參數 (Hyperparameter): 在訓練模型之前設定的參數,用於控制學習過程。
K-Nearest Neighbors (KNN): 一種監督式分類演算法,根據最近鄰居進行分類。
Transformer 架構 (Transformer Architecture): 用於處理序列資料的深度學習架構,特別是 NLP。
編碼器 (Encoder): Transformer 架構的一部分,處理輸入序列。
解碼器 (Decoder): Transformer 架構的一部分,根據編碼器的輸出生成輸出序列。
多頭注意力機制 (Multi-Head Attention): Transformer 架構中的一種機制,允許模型同時關注輸入序列的不同部分。
位置編碼 (Positional Encoding): Transformer 架構中的一種技術,將詞元在序列中的位置資訊添加到嵌入中。
分詞 (Tokenization): 將資料輸入(通常是文字)分解成更小的部分(詞元)的過程。
詞元 (Token): 文字或其他資料的最小單位,用於模型處理。
詞彙表 (Vocabulary): 模型在訓練期間學習到的唯一詞元集合。
向量 (Vector): 一個具有長度和方向的數值表示,通常在多維空間中。
嵌入 (Embeddings): 資料(例如文字或圖像)的數值表示,表示為向量。
向量資料庫 (Vector Database): 專門用於儲存、索引和搜尋向量的資料庫。
檢索增強生成 (Retrieval Augmented Generation, RAG): 一種 AI 流程,從外部資料源檢索資料並將其納入語言模型上下文以產生更明智的回應。
Amazon Bedrock Knowledge Base: AWS 中的一項功能,允許設定 RAG 工作流程以連接到向量資料庫。
Amazon RDS: AWS 中的一項受管服務,用於設定、操作和擴展關聯式資料庫。
PGVector: PostgreSQL 的一個擴充功能,使其能夠儲存和查詢向量。
Amazon DocumentDB: AWS 中的一項受管 MongoDB 相容資料庫服務,支援向量搜尋。
Amazon Neptune: AWS 中的一項受管圖形資料庫服務。
圖形資料庫 (Graph Database): 一種類型的資料庫,使用圖形結構(節點、邊和屬性)來表示和儲存資料。
圖形知識圖譜 (Graph Knowledge Base): 利用圖形資料庫儲存和管理結構化知識。
Amazon Athena: AWS 中的一項互動式查詢服務,無需伺服器即可分析 Amazon S3 中的資料。
AWS Glue Data Catalog: AWS 中的一項完全受管的元資料儲存庫服務。
資料定義語言 (DDL): SQL 的一個子集,用於定義資料庫模式 (schema)(CREATE, ALTER, DROP)。
資料操作語言 (DML): SQL 的一個子集,用於操作資料集(INSERT, UPDATE, DELETE)。
資料查詢語言 (DQL): SQL 的一個子集,用於選擇資料集(SELECT)。
序列化/反序列化 (SerDe): 用於解析不同格式(如 CSV、JSON、Parquet、ORC)的資料的函式庫。
AWS Glue: 一項無伺服器資料整合服務。
AWS Glue Crawler: 一個工具,用於掃描資料源以確定模式並創建 Glue 表。
AWS Glue Jobs: 用於執行 ETL (Extract, Transform, Load) 工作負載。
資料處理單位 (DPU): AWS Glue 中用於計費的單位。
AWS Glue Data Quality: 衡量和監控資料品質的功能。
Amazon SageMaker: 一個完全受管的服務,提供建構、訓練和部署機器學習模型所需的所有組成部分。
SageMaker Python SDK: 一個 Python 函式庫,用於在 SageMaker 上訓練和部署 ML 模型。
估計器 (Estimator): SageMaker SDK 中的一個抽象概念,封裝了在 SageMaker 上進行訓練。
模型 (Model): SageMaker SDK 中的一個抽象概念,封裝了建置的 ML 模型。
預測器 (Predictor): SageMaker SDK 中的一個抽象概念,提供針對 SageMaker 端點的實時推論和轉換。
SageMaker JumpStart: 一個機器學習中心,用於尋找、一鍵式部署和微調預訓練模型。
SageMaker Studio Lab: 一個免費的機器學習環境,提供 Jupyter 筆記型電腦以及 CPU 和 GPU 運算資源。
SageMaker Clarify: 用於檢測 ML 模型中的偏見和增強可解釋性。
AI 可解釋性 (AI Explainability): 理解為什麼 AI 模型會做出特定決定的過程。
SHAP (SHapley Additive exPlanations): 一種用於解釋機器學習模型輸出的演算法。
Facet: 用於衡量偏見的屬性或特徵。
Bias Metric: 一個數值,表示潛在偏見的程度。
Bias Report: 數據集或模型的一系列偏見指標集合。
模型評估 (Model Evaluation): 衡量機器學習模型效能的過程。
評估指標 (Evaluation Metrics): 用於量化模型效能的度量標準。
混淆矩陣 (Confusion Matrix): 用於視覺化模型預測與真實標籤的表格。
True Positive (TP): 模型正確預測為正例。
True Negative (TN): 模型正確預測為負例。
False Positive (FP): 模型錯誤預測為正例。
False Negative (FN): 模型錯誤預測為負例。
BLEU: 一種用於機器翻譯評估的精度指標。
METEOR: 一種基於精度的機器翻譯評估指標,克服了 BLEU 的缺陷。
ROUGE: 一種用於摘要任務的評估指標,衡量召回率。
Amazon Bedrock Model Evaluation: AWS 中的一項功能,提供自動和手動模式來評估 LLM 效能。
Guardrails: AWS Bedrock 中的一項安全功能,用於實施策略以過濾和拒絕不適當或不需要的 LLM 請求和回應。
Model Invocation Logging: 將 Amazon Bedrock 模型調用資料發送到 CloudWatch Logs 的功能。
Amazon Personalize: 一項機器學習服務,用於為客戶建構應用程式內的推薦。
Domain Recommenders: 針對特定使用案例優化的 Amazon Personalize 推薦器。
Amazon CodeWhisperer: AWS 中的一項 AI 程式設計助理服務,提供即時程式碼建議。
Amazon CodeGuru: AWS 中的一項開發人員工具,用於自動程式碼審查和應用程式性能分析。
Code Reviewer: Amazon CodeGuru 的一部分,連接到程式碼儲存庫以提供建議。
Profiler: Amazon CodeGuru 的一部分,查找程式碼中的低效率。
Amazon Kendra: 一項由機器學習驅動的企業搜尋服務。
索引 (Index): Amazon Kendra 組織和索引資料以實現快速、準確的搜尋。
資料來源連接器 (Data Source Connector): Amazon Kendra 用於連接到不同資料來源的內建連接器。
Amazon Polly: 一項將文字轉換為逼真語音的服務。
SSML (Speech Synthesis Markup Language): 一種基於 XML 的標記語言,用於控制語音合成的各個方面。
Lexicons: Amazon Polly 中用於指定特定單詞或短語發音的文件。
Speech Marks: Amazon Polly 中提供語音相關額外資訊的元資料標記。
AWS Certified AI Practitioner key notes
https://blog.kwunlam.com/AWS-Certified-AI-Practitioner-key-notes/