LESSON 1 / 37免費試讀
本章導論:EdgeAI 代表了人工智慧部署方式的典範轉移,將 AI 能力從雲端運算轉移到本地端的邊緣裝置。本章將探討定義這種變革性 AI 實作方式的基本概念、關鍵技術與實務應用。本模組共分四節:第一節建立 EdgeAI 基礎,對比傳統雲端 AI 與邊緣 AI 部署模型,並探討模型量化、壓縮優化與小型語言模型(SLM)等關鍵技術如何突破邊緣裝置的運算限制;第二節透過 Microsoft 的 Phi 與 Mu 模型生態系,以及日本航空的 AI 報告系統等具體案例,展示 EdgeAI 在各行各業的成功實作;第三節提供動手實作所需的完整環境準備指南,涵蓋開發工具、硬體需求、核心模型資源與優化框架;第四節則探討支援邊緣 AI 部署的硬體生態系,包括 Intel、Qualcomm、NVIDIA 與 Windows AI PC 等平台的詳細比較與部署考量。讀完本章後,你將理解雲端與邊緣 AI 架構的根本差異、邊緣部署的核心優化技術、真實世界的應用案例、實作 EdgeAI 解決方案的實務技能,以及硬體平台選擇與效能評測的最佳實務。EdgeAI 正成為形塑 AI 部署未來的關鍵趨勢,為分散式、高效率且保護隱私的 AI 系統鋪路,使其能在維持高效能標準的同時,不再依賴雲端連線獨立運作。
EdgeAI 代表了人工智慧部署方式的典範轉移,將 AI 能力直接帶到邊緣裝置上,而不再只依賴雲端運算。理解 EdgeAI 如何在資源受限的裝置上實現本地 AI 運算,同時維持合理效能並解決隱私、延遲與離線能力等挑戰,是相當重要的一件事。
在這堂課中,我們將探討 EdgeAI 及其基本概念,包括傳統 AI 運算範式、邊緣運算面臨的挑戰、實現 EdgeAI 的關鍵技術,以及在各行各業的實務應用。
完成這堂課後,你將能夠:
傳統上,生成式 AI 應用要有效運作,必須仰賴高效能運算基礎設施來執行大型語言模型(LLM)。組織通常會將這些模型部署在雲端環境的 GPU 叢集上,並透過 API 介面存取其能力。
這種集中式模型在許多應用場景中運作良好,但在邊緣運算場景中卻存在固有限制。傳統做法是將使用者查詢傳送到遠端伺服器,利用強大硬體進行處理,再透過網際網路回傳結果。這種方法雖然能存取最先進的模型,但也因此對網際網路連線產生依賴、帶來延遲疑慮,並在敏感資料必須傳送到外部伺服器時引發隱私考量。
在處理傳統 AI 運算範式時,我們需要理解幾個核心概念:
筆記型電腦、手機,以及像 Raspberry Pi 與 NVIDIA Orin Nano 這樣的物聯網(IoT)裝置等邊緣裝置,存在獨特的運算限制。與資料中心基礎設施相比,這些裝置的處理能力、記憶體與能源資源通常相當有限。
在這類裝置上執行傳統 LLM,歷來一直是個難題,原因正是這些硬體限制。然而,邊緣 AI 運算的需求在各種場景中變得日益重要。想想那些網路連線不可靠或根本不存在的情況,例如偏遠的工業現場、行進中的車輛,或是網路覆蓋不佳的地區。此外,像是醫療裝置、金融系統或政府應用等需要高度安全標準的應用,可能需要在本地處理敏感資料,以維持隱私與合規要求。
邊緣運算環境面臨著幾項傳統雲端 AI 解決方案不會遇到的根本限制:
Edge AI 指的是將人工智慧演算法部署並執行在邊緣裝置上——也就是位於網路「邊緣」、靠近資料產生與收集之處的實體硬體。這些裝置包括智慧型手機、物聯網感測器、智慧攝影機、自駕車、穿戴式裝置與工業設備等。與依賴雲端伺服器進行運算的傳統 AI 系統不同,Edge AI 將智慧直接帶到資料來源端。
Edge AI 的核心精神在於將 AI 運算去中心化,把它從集中式的資料中心移出,分散到組成我們數位生態系的龐大裝置網路之中。這代表 AI 系統設計與部署方式上的根本架構轉變。
Edge AI 的核心概念支柱包括:
┌─────────────────────────────────────────────────────────────────────┐
│ TRADITIONAL AI ARCHITECTURE │
└─────────────────────────────────────────────────────────────────────┘
│
┌──────────────┐ Data Transfer ┌───────────────┐ API Response ┌───────────┐
│ Edge Devices ├─────────────────>│ Cloud Servers │────────────────> │ End Users │
└──────────────┘ └───────────────┘ └───────────┘
Data Model Inference Results
Collection High Latency
High Bandwidth
Privacy Concerns
┌─────────────────────────────────────────────────────────────────────┐
│ EDGE AI ARCHITECTURE │
└─────────────────────────────────────────────────────────────────────┘
│
┌────────────────────────────────────────────────────┐ Direct Response ┌───────────┐
│ Edge Devices with Embedded AI │───────────────────>│ End Users │
│ ┌─────────┐ ┌───────────────┐ ┌──────────────┐ │ └───────────┘
│ │ Sensors │─>│ SLM Inference │─>│ Local Action │ │
│ └─────────┘ └───────────────┘ └──────────────┘ │
└────────────────────────────────────────────────────┘
Data Low Latency Immediate
Collection Processing Response
No Data Transfer
Enhanced Privacy
EdgeAI 代表了人工智慧部署方式的典範轉移,將 AI 能力直接帶到邊緣裝置上,而不再只依賴雲端運算。這種做法讓 AI 模型能在運算資源有限的裝置上本地執行,提供即時推論能力,而不需要持續的網際網路連線。
EdgeAI 涵蓋了各種讓 AI 模型更有效率、更適合部署在資源受限裝置上的技術與方法。其目標是在大幅降低 AI 模型運算與記憶體需求的同時,維持合理的效能水準。
讓我們來看看支撐各種裝置類型與使用案例中 EdgeAI 實作的基本方法。
EdgeAI 建立在幾項基本原則之上,這些原則將它與傳統雲端 AI 區分開來:
EdgeAI 中最重要的技術之一就是模型量化。這個過程涉及降低模型參數的精度,通常是從 32 位元浮點數降到 8 位元整數,甚至更低的精度格式。雖然降低精度聽起來令人擔心,但研究顯示,許多 AI 模型即使精度大幅降低,仍能維持其效能表現。
量化的運作方式是將浮點數值的範圍映射到較小的離散數值集合上。舉例來說,量化可能只用 8 位元來表示每個參數,而不是原本的 32 位元,這樣一來記憶體需求就能減少 4 倍,推論速度通常也會更快。
# Example: PyTorch model quantization
import torch
# Load a pre-trained model
model = torch.load('large_model.pth')
# Quantize the model to INT8
quantized_model = torch.quantization.quantize_dynamic(
model, # model to quantize
{torch.nn.Linear, torch.nn.Conv2d}, # layers to quantize
dtype=torch.qint8 # quantization data type
)
# Save the quantized model
torch.save(quantized_model, 'quantized_model.pth')
# Memory usage comparison
original_size = model.size()
quantized_size = quantized_model.size()
print(f"Memory reduction: {original_size / quantized_size:.2f}x")
不同的量化技術包括:
對於 EdgeAI 部署而言,選擇合適的量化策略取決於特定的模型架構、效能需求,以及目標裝置的硬體能力。
除了量化之外,還有各種壓縮技術能協助降低模型大小與運算需求,包括:
剪枝(Pruning):這項技術會移除神經網路中不必要的連結或神經元。透過辨識並消除對模型效能貢獻甚微的參數,剪枝能在維持準確度的同時大幅縮小模型體積。
# Example: Neural network pruning in TensorFlow
import tensorflow as tf
import tensorflow_model_optimization as tfmot
# Define the model
model = tf.keras.Sequential([
tf.keras.layers.Dense(128, activation='relu', input_shape=(784,)),
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dense(10, activation='softmax')
])
# Apply pruning during training
pruning_schedule = tfmot.sparsity.keras.PolynomialDecay(
initial_sparsity=0.0,
final_sparsity=0.5, # 50% of connections will be pruned
begin_step=0,
end_step=10000
)
pruned_model = tfmot.sparsity.keras.prune_low_magnitude(
model, pruning_schedule=pruning_schedule
)
# Compile the pruned model
pruned_model.compile(
optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy']
)
# Train the model while pruning
pruned_model.fit(x_train, y_train, epochs=10)
# Convert to a smaller model for deployment
final_model = tfmot.sparsity.keras.strip_pruning(pruned_model)
知識蒸餾(Knowledge Distillation):這種方法是訓練一個較小的「學生」模型,去模仿較大的「教師」模型的行為。學生模型學習逼近教師的輸出,通常能以少得多的參數量達到相近的效能。
模型架構優化:研究人員開發了專門為邊緣部署設計的架構,例如 MobileNets、EfficientNets 等輕量化架構,能在效能與運算效率之間取得平衡。
EdgeAI 中一個新興趨勢是小型語言模型(SLM)的發展。這些模型從設計之初就以精簡與高效為目標,同時仍提供有意義的自然語言能力。SLM 透過謹慎的架構選擇、高效的訓練技術,以及針對特定領域或任務的專注訓練來達成這個目標。
與壓縮大型模型的傳統做法不同,SLM 通常使用較小的資料集訓練,並採用專門為邊緣部署設計的優化架構。這種做法不僅能讓模型更小,對特定使用案例來說也可能更有效率。
現代邊緣裝置越來越多地內建專用硬體,用來加速 AI 工作負載:
NPU 是專門為神經網路運算設計的特殊處理器。這類晶片能比傳統 CPU 更有效率地執行 AI 推論任務,通常功耗也更低。許多現代智慧型手機、筆記型電腦與物聯網裝置現在都內建 NPU,以實現裝置端的 AI 處理。
// Example: Using Windows ML to target NPU acceleration in C#
using Microsoft.ML.OnnxRuntime;
// Create session options with NPU provider
var sessionOptions = new SessionOptions();
sessionOptions.AppendExecutionProvider_DmlExecutionProvider(); // DirectML for NPU
// Load the ONNX model
using var session = new InferenceSession("model.onnx", sessionOptions);
// Create input tensor
var inputTensor = new DenseTensor<float>(new[] { 1, 3, 224, 224 }); // Example input shape
var inputs = new List<NamedOnnxValue> { NamedOnnxValue.CreateFromTensor("input", inputTensor) };
// Run inference with NPU acceleration
using var results = session.Run(inputs);
var output = results.First().AsTensor<float>();
// Process output
Console.WriteLine($"Inference result: {output[0]}");
內建 NPU 的裝置包括:
雖然邊緣裝置沒有資料中心那種強大的 GPU,但許多裝置仍內建整合式或獨立式 GPU,能加速 AI 工作負載。現代行動 GPU 與整合繪圖處理器,能為 AI 推論任務帶來顯著的效能提升。
# Example: Using TensorRT for GPU acceleration on edge devices
import tensorrt as trt
import numpy as np
# Create TensorRT logger and builder
TRT_LOGGER = trt.Logger(trt.Logger.WARNING)
builder = trt.Builder(TRT_LOGGER)
network = builder.create_network(1 << int(trt.NetworkDefinitionCreationFlag.EXPLICIT_BATCH))
parser = trt.OnnxParser(network, TRT_LOGGER)
# Parse ONNX model
with open('model.onnx', 'rb') as model:
parser.parse(model.read())
# Configure builder
config = builder.create_builder_config()
config.max_workspace_size = 1 << 28 # 256 MiB
config.set_flag(trt.BuilderFlag.FP16) # Use FP16 precision for edge GPU
# Build and serialize engine
engine = builder.build_engine(network, config)
with open('model.trt', 'wb') as f:
f.write(engine.serialize())
即使是純 CPU 裝置,也能受惠於 EdgeAI 優化後的實作。現代 CPU 內建專門處理 AI 工作負載的指令集,軟體框架也已開發出來,以最大化 CPU 在 AI 推論上的效能。
# Example: Using XNNPACK with TFLite for optimized CPU inference
# Compilation command with XNNPACK acceleration enabled
bazel build -c opt --copt=-O3 --copt=-march=native \
tensorflow/lite/delegates/xnnpack:libxnnpack_delegate.so
# Convert TensorFlow model to TFLite with optimization
tflite_convert \
--keras_model_file=model.h5 \
--output_file=model.tflite \
--inference_type=FLOAT \
--experimental_new_converter \
--experimental_new_quantizer
對於從事 EdgeAI 工作的軟體工程師來說,理解如何運用這些硬體加速選項,對於優化目標裝置上的推論效能與能源效率至關重要。
EdgeAI 最顯著的優點之一,就是提升了隱私與安全性。由於資料在裝置本地處理,敏感資訊永遠不會離開使用者的掌控範圍。這對於處理個人資料、醫療資訊或機密商業資料的應用來說,格外重要。
EdgeAI 消除了將資料傳送到遠端伺服器處理的需求,大幅降低延遲。這對於自駕車、工業自動化,或需要即時回應的互動式應用等即時應用來說至關重要。
EdgeAI 讓 AI 功能即使在沒有網際網路連線時也能運作。這對於偏遠地區、旅行途中,或網路穩定性堪憂的場景下的應用來說,相當有價值。
透過降低對雲端 AI 服務的依賴,EdgeAI 能協助降低營運成本,尤其是對使用量龐大的應用而言。組織可以避免持續產生的 API 費用,並降低頻寬需求。
EdgeAI 將運算負載分散到各個邊緣裝置上,而不是集中在資料中心。這有助於降低基礎設施成本,並提升整體系統的可擴展性。
EdgeAI 驅動著許多智慧裝置的功能,從能在本地處理指令的語音助理,到不需將影片上傳雲端就能辨識物體與人物的智慧攝影機。物聯網裝置運用 EdgeAI 進行預測性維護、環境監控與自動化決策。
智慧型手機與平板電腦運用 EdgeAI 實現各種功能,包括照片增強、即時翻譯、擴增實境與個人化推薦。這些應用受惠於本地處理帶來的低延遲與隱私優勢。
製造業與工業環境運用 EdgeAI 進行品質控管、預測性維護與流程優化。這些應用通常需要即時處理,且可能在連線受限的環境中運作。
醫療裝置與健康照護應用運用 EdgeAI 進行病患監測、診斷輔助與治療建議。本地處理帶來的隱私與安全優勢,在醫療應用中格外重要。
EdgeAI 通常涉及模型大小、運算效率與效能之間的取捨。雖然量化與剪枝等技術能大幅降低資源需求,但也可能影響模型的準確度或能力。
開發 EdgeAI 應用需要專門的知識與工具。開發者必須理解優化技術、硬體能力與部署限制,這會增加開發的複雜度。
儘管邊緣硬體不斷進步,這些裝置與資料中心基礎設施相比仍存在顯著限制。並非所有 AI 應用都能有效部署在邊緣裝置上,有些可能需要混合式做法。
更新部署在邊緣裝置上的 AI 模型可能相當困難,尤其是對連線或儲存容量有限的裝置而言。組織必須為模型版本管理、更新與維護制定策略。
EdgeAI 的發展持續快速演進,硬體、軟體與技術層面都有不斷的進展。未來趨勢包括更多專用邊緣 AI 晶片、更精進的優化技術,以及更完善的 EdgeAI 開發與部署工具。
隨著 5G 網路日益普及,我們可能會看到結合邊緣運算與雲端能力的混合式做法,在維持本地處理優勢的同時,實現更複雜精密的 AI 應用。
EdgeAI 代表著朝向更分散、更高效、更能保護隱私的 AI 系統的根本轉變。隨著這項技術持續成熟,我們可以預期 EdgeAI 將在各種應用與裝置中,扮演越來越重要的角色。
透過 EdgeAI 實現的 AI 民主化,為創新開闢了新的可能性,讓開發者能打造在各種環境中都能穩定運作、同時尊重使用者隱私並提供即時回應體驗的 AI 應用。對於任何從事 AI 技術工作的人來說,理解 EdgeAI 正變得越來越重要,因為它代表著 AI 在我們日常生活中部署與體驗方式的未來。
內容來源:本頁譯自 Microsoft 的開源課程
Edge AI for Beginners,原文連結:https://github.com/microsoft/edgeai-for-beginners/blob/main/Module01/01.EdgeAIFundamentals.mdMIT License, Copyright (c) Microsoft Corporation。
本頁為碼力獅社群的中文翻譯與整理(翻譯課文、保留原文的參考資源連結、附上重點整理),
非原作者的官方中文版;內容如與原文有出入,以原文為準。
原課程的範例程式碼、Workshop 教材與 Notebook 請直接使用原始 repo。