邊緣AI技術的核心價值在於將計算和資料處理移至裝置端,降低延遲並提升隱私安全性。裝置上訓練的應用包含異常檢測、個人化設定等,可根據使用者行為調整模型。聯邦學習雖允許多裝置協同訓練,但其高計算成本和資料傳輸需求與邊緣AI的初衷相悖。無線更新則提供一種折衷方案,透過韌體更新將實驗室訓練的模型佈署至裝置。構建成功的邊緣AI團隊,需要領域專家、嵌入式工程師、資料科學家和機器學習專家等角色,並有效結合領域專業知識和多元觀點,才能克服技術挑戰,開發出符合市場需求的產品。

邊緣AI的實用案例與技術限制

邊緣AI的在裝置上的訓練

在某些特定應用中,直接在裝置上進行AI模型的訓練是可行的。這種做法有幾個明顯的優點。首先,它允許模型根據裝置使用者的特定行為進行個人化調整。其次,由於訓練資料儲存在本地,因此能夠更好地保護使用者的隱私。

異常檢測

異常檢測是一種典型的在裝置上進行訓練的應用場景。這種方法假設異常訊號是罕見的,大多數時候裝置都在正常運作。因此,裝置可以將收集到的資料視為具有隱含的「正常」標籤。當訊號開始偏離基線時,應用程式可以及時發現並採取相應的行動。

個人化

另一個適合在裝置上進行訓練的例子是當使用者被要求主動提供標籤時。例如,一些智慧型手機使用面部識別作為安全驗證方法。在設定過程中,使用者需要註冊自己的面部影像。這些面部影像的數值表示將被儲存起來。

這些應用通常使用精心設計的嵌入模型,將原始資料轉換為緊湊的數值表示。嵌入模型設計的目的是使得兩個嵌入之間的歐幾裡得距離對應於它們之間的相似度。在面部識別的例子中,這使得判斷新面孔是否與註冊的面孔相匹配變得容易:計算新面孔與註冊面孔之間的距離,如果足夠接近,則認為是同一個人。

隱含關聯

另一種在裝置上進行訓練的例子是當標籤可以透過關聯獲得時。例如,蘋果的最佳化電池充電功能透過在裝置上訓練模型來預測使用者何時可能使用裝置。實作這一點的一種方法是訓練一個預測模型,根據過去幾小時的使用記錄,輸出在特定時間使用裝置的機率。

在這種情況下,很容易在單個裝置上收集和標記訓練資料。後台收集使用記錄,並根據某些指標(如螢幕是否被啟動)進行標記。時間與記錄內容之間的隱含關聯使得資料能夠被標記。然後,可以訓練一個簡單的模型。

聯邦學習

聯邦學習是一種分散式訓練模型的方法,可以在多個裝置上進行,同時保護使用者的隱私。它不是傳輸原始資料,而是傳輸部分訓練好的模型,在裝置之間(或裝置與中央伺服器之間)進行交換。部分訓練好的模型可以被合併,並在準備就緒後分發回裝置。

然而,聯邦學習有一些嚴重的限制。它在計算上非常昂貴,需要大量的資料傳輸,這與邊緣AI的核心優勢相違背。訓練過程非常複雜,需要同時具備裝置端和伺服器端的元件,這增加了專案的風險。

由於資料沒有被全域性儲存,因此無法驗證訓練好的模型是否在整個佈署過程中表現良好。從本地裝置上傳模型為安全攻擊提供了一個途徑。最後,也是最重要的,它並沒有解決標籤的問題。如果沒有標記的資料,聯邦學習是無用的。

無線更新

雖然不是實際上的在裝置上進行訓練的技術,但最常見的更新模型的方法是透過無線更新。可以利用從現場收集的資料,在實驗室中訓練出新的模型,並透過韌體更新將其分發到裝置上。

這依賴於網路通訊,並且不能解決取得標記資料的問題,但它是保持模型隨著時間更新的最常見方法。

第5章:工具與專業知識

邊緣AI開發工作流程包含許多高度技術性的任務,大多數專案需要由一組專家組成的團隊來匯集技能和專業知識。

開發邊緣AI團隊

邊緣AI是一個非常完整的技術領域,涵蓋了從半導體電子學的物理特性到跨裝置和高階架構的工程設計等各個知識領域。它要求團隊具備人工智慧和機器學習的最新方法,以及裸機嵌入式軟體工程的豐富經驗。邊緣AI利用了整個電腦科學和電機工程的歷史。

在這個領域工作的人們依賴於建立專家網路,以便對其他拼圖碎片有所瞭解。如果你正在開發邊緣AI產品,你可能需要為自己做同樣的事情。

團隊組成

最佳的邊緣AI團隊應具備廣泛的跨學科知識、直接在問題領域工作的經驗,以及在迭代開發過程中工作的舒適度。迄今為止,最成功的產品來自於對所要解決的問題有直接經驗的團隊:他們利用現有的知識來指導邊緣AI產品的開發。

最低需求

一個團隊至少需要兩種角色:

  1. 領域專家:對要解決的問題有深入的瞭解。
  2. 嵌入式工程師:具有開發類別似目標裝置的經驗。

這兩個角色可以由同一個人擔任。但是,如果沒有機器學習或其他AI演算法的經驗,他們將不得不嚴重依賴端對端平台來指導非ML專家完成演算法建立的過程。

領域專業知識

領域專業知識是團隊中最重要的組成部分。如果只有領域專業知識和預算,你仍然可以僱用開發人員並建立產品。但如果團隊中沒有人對所要解決的問題有深入的瞭解,那麼很難解決這個問題。

事實上,你可能會試圖解決錯誤的問題或創造一個沒有人需要的解決方案。邊緣AI的目標是將專家知識提煉成軟體,並用它來自動化流程。但是,如果我們自己不知道怎麼做,又如何建立一個能做到這一點的系統呢?

驗證解決方案

如果您不是領域專家,您首先要找到一個領域專家。然後,您需要讓他們驗證您計劃建立的解決方案。以下是一些需要詢問的問題:

  • 您要解決的問題真的存在嗎?
  • 如果存在,這是一個值得解決的有用問題嗎?
  • 是否已經存在解決該問題的方案?
  • 您提出的解決方案真的能夠幫助解決問題嗎?
  • 您提出的解決方案聽起來可行嗎?
  • 如果您建立了您的解決方案,該領域的人會想要購買它嗎?

工具和專業知識的挑戰

雖然許多問題可以由最小團隊解決,但最複雜的問題需要更多的工作。本章的其餘部分概述了可能重要的角色和職責,希望能讓您瞭解自己的團隊需要什麼。同時,也討論了為邊緣AI招募人才的挑戰。

專案成功的關鍵:領域專業知識與多元觀點

在開發專案時,確保團隊具備足夠的領域專業知識(Domain Expertise)至關重要。領域專家能夠提供寶貴的見解,幫助團隊預測和降低風險。如果缺乏相關專業知識,專案可能會違反該領域的某些基本規則,而團隊卻無法察覺。因此,在專案啟動前,若無法找到具備所需專業知識的人才,應當中止專案。

領域專業知識的重要性

領域專業知識應當是組織的核心,專家們將參與專案的多個方面,因此他們不應該只是邊緣成員。理想的情況是,在組織的各個層級都具備領域專業知識,例如核心團隊、工程師、董事會成員和顧問等。透過結合不同專業人士的見解,團隊能夠更好地預測和降低風險。

若對某個想法深信不疑,但缺乏相關專業知識,可能需要投入時間自行發展所需的專業能力。

多元觀點的價值

除了領域專業知識外,團隊還應追求多元性(Diversity)。多元的團隊能夠提供多角度的觀點,有助於識別和解決問題。在職場多元性方面,可以從四個核心領域來思考:

  1. 內在多元性(Internal Diversity):包括年齡、國籍、種族、性取向、性別認同、身體能力等個人特質。
  2. 外在多元性(External Diversity):涵蓋社會經濟地位、生活經歷、教育背景、個人興趣等後天獲得的特質。
  3. 組織多元性(Organizational Diversity):與個人在組織中的角色相關,如工作地點、職能、層級、薪酬水平等。
  4. 世界觀多元性(Worldview Diversity):涉及倫理框架、政治信仰、個人哲學等影響個人看待世界的方式。

由於每個人的經歷和觀點都是獨特的,因此多元化的團隊能夠更全面地理解問題,並提出創新的解決方案。此外,多元觀點還有助於識別產品中的潛在問題,例如具有不同背景的人可能會從不同的角度評估產品的效能。

多元觀點的重要性

圖表翻譯: 此圖示呈現了多元觀點對專案成功的貢獻,包括全面理解問題、提出創新解決方案和識別潛在問題,從而帶來更好的產品設計、競爭優勢和降低風險。

實施多元性的挑戰

雖然多元性帶來許多好處,但也伴隨著一些挑戰。多元化的團隊可能在達成共識方面遇到困難,因此長官層需要準備好做出決策,並記錄決策過程中的不同意見。

利益相關者

專案的利益相關者包括所有可能受到專案影響的人群和社群。與這些利益相關者保持溝通,收集他們的反饋至關重要。

程式碼範例:收集反饋的簡單系統

class FeedbackSystem:
    def __init__(self):
        self.feedbacks = []

    def collect_feedback(self, feedback):
        self.feedbacks.append(feedback)

    def review_feedbacks(self):
        for feedback in self.feedbacks:
            print(feedback)

# 使用範例
feedback_system = FeedbackSystem()
feedback_system.collect_feedback("這是一個很好的功能!")
feedback_system.review_feedbacks()

內容解密:

  1. FeedbackSystem 類別用於管理反饋資訊。
  2. collect_feedback 方法用於收集使用者的反饋意見。
  3. review_feedbacks 方法用於檢視所有收集到的反饋意見。
  4. 在使用範例中,我們建立了一個 FeedbackSystem 物件,並示範瞭如何收集和檢視反饋。

透過結合領域專業知識和多元觀點,並與利益相關者保持緊密聯絡,專案團隊能夠更好地開發出符合需求且具創新性的產品。

邊緣AI專案中的關鍵角色與責任

在開發一個成功的邊緣AI系統時,瞭解不同利害關係人的需求和價值至關重要。這不僅包括組織內部人員,還有客戶、系統的終端使用者,以及任何可能直接或間接受到影響的人。利害關係人的需求和價值可以透過直接詢問他們來瞭解,他們應該在整個開發流程中得到代表,從概念設計到產品生命週期結束。

利害關係人識別

利害關係人可以透過一個成熟的工具——利害關係人對映來識別。團隊中應該有人熟悉這個過程,以確保所有相關的利害關係人都被納入考慮。

角色與責任

開發一個產品需要多個角色的協作,以下是一些在邊緣AI工作流程中常見的角色:

知識與理解

這些角色對於理解問題和以正確的方式解決問題至關重要:

  • 領域專家:領域專家對專案領域有深入的瞭解。他們瞭解相關的科學知識,例如工業自動化專案需要工業流程的領域專家,醫療保健專案需要相關醫學和生物學的專家。
  • 倫理與公平專家:倫理與公平專家的角色是避免做出可能導致有害或無效產品的錯誤。他們需要對所使用的技術、可能出現的問題以及需要遵循的流程有深入的瞭解。同時,領域專業知識也很重要,因為倫理問題可能特定於某個領域。

規劃與執行

這些高階別的角色對於引導專案從概念到發布以及長期的支援非常重要:

  • 產品經理:產品經理負責對產品做出決定:它應該是什麼、應該做什麼、以及為誰服務。他們的工作是深入瞭解問題和市場,並與技術角色合作設計和實施有效的解決方案。
  • 專案經理:專案經理的角色涉及協調複雜任務在不同人員之間的執行。例如,專案經理可能會組織資料集的收集,這些資料將用於構建和建立產品。
  • 專案集經理:專案集經理協調由多個專案組成的高階別策略。例如,一家公司計劃將邊緣AI納入其業務的多個部分以節省成本,可能會使用專案集經理來協調這個過程。

演算法開發

這些角色參與資料集的探索和演算法的設計,以及對正在構建的系統進行評估的機制:

  • 資料科學家:資料科學家負責收集、維護和理解作為邊緣AI專案基礎的資料。他們具備資料清理、分析和特徵工程的技能。
  • DSP工程師:DSP工程師開發和實施DSP演算法。他們通常具備演算法開發和低階程式設計的強大技能。DSP在大多數邊緣AI專案中非常重要。
  • 機器學習實踐者:機器學習實踐者花時間試圖用機器學習解決問題。他們會嘗試將問題框定在不同型別的學習演算法中,然後與資料集合作,試圖開發出能夠解決問題的演算法。

產品工程

這組角色負責產品本身的開發,包括硬體和應用程式碼,並將演算法以高效的形式在裝置上實作:

  • 硬體工程師:硬體工程師設計為產品提供動力的硬體。這包括捕捉原始資料的感測器和嘗試理解資料的處理器,以及印刷電路板的設計和佈局。
  • 嵌入式軟體工程師:嵌入式軟體工程師編寫使硬體生效的低階程式碼。他們的程式碼必須與感測器介面、執行演算法,並解釋輸出以做出決定。
  • 嵌入式機器學習工程師:一些嵌入式軟體工程師專注於機器學習。 他們的工作是確保機器學習演算法在特定硬體上盡可能高效地執行。
  • 工業設計師:工業設計師創造產品的物理設計。這與邊緣AI相關,因為物理設計決定了感測器資料收集的許多現實。

邊緣AI開發的挑戰與人才需求

邊緣AI(Edge AI)開發涉及多個領域,包括軟體工程、機器學習(ML)、嵌入式系統等。由於這是一個新興領域,找到具備相關經驗的人才十分困難。然而,隨著工具的進步和平台的發展,進入門檻已經大大降低。

邊緣AI開發所需角色

邊緣AI專案需要不同領域的專業人才,包括:

軟體工程師

許多邊緣AI專案涉及伺服器端元件的開發,這需要不同於嵌入式應用開發的技能。因此,需要具備後端開發經驗的軟體工程師。

技術服務角色

這些角色確保開發過程中的技術面順利進行,並管理團隊生產力和安全所需的工具。

MLOps工程師

MLOps工程師負責建立和維護MLOps解決方案,這本質上是一個DevOps角色,但需要對邊緣AI工作流程有深入瞭解。

安全專家

安全專家負責團隊、資料和產品的安全需求。這既是諮詢角色,也需要主動採取措施降低安全風險。

品質保證工程師

品質保證工程師協助設計和實施測試計畫,以評估產品是否符合設計目標。

邊緣AI人才招募挑戰

由於邊緣AI是一個新興領域,具備相關經驗的人才非常稀缺。招募具備邊緣AI經驗的工程師幾乎是不可能的,因為全球這樣的人才寥寥無幾。

幸運的是,新興領域意味著即使是最有經驗的工程師,也只有幾年的優勢。最近在邊緣AI工具方面的進步,尤其是端對端平台的發展,大大降低了進入門檻。

演算法開發人才需求

在演算法開發方面,需要資料科學家和機器學習從業者。其中一些從業者具有應用工程背景,而其他人可能具有更學術的背景,研究機器學習的基本原理並提出新技術。

應用型從業者在邊緣AI中非常重要,因為他們具有問題框架的經驗。然而,學術研究人員也可以適應邊緣AI專案,但可能需要更多時間來適應典型的軟體開發環境。

嵌入式工程人才需求

在嵌入式工程方面,挑戰各不相同。使用深度學習直譯器(或由深度學習編譯器生成的程式碼)通常只是函式庫整合的問題,但有時嵌入式工程師需要深入內部來找出問題所在。

嵌入式工程師也可能需要負責將模型轉換為適合裝置使用的形式,這需要一些機器學習的見解。另一個常見任務是實作經典的機器學習模型,雖然目前還沒有很好的嵌入式特定C++函式庫,但移植模型通常很容易,因為有更高階語言的參考實作。

學習邊緣AI技能

近年來,出現了一些學習邊緣AI的優秀資源。與大多數領域一樣,邊緣AI也有理論和實踐兩個方面。理論內容對那些希望推動該領域發展的人最感興趣,而實踐內容對那些希望建立產品的人更有幫助。

圖表翻譯:

此圖示展示了邊緣AI開發中不同角色之間的關係。

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

title 邊緣AI實用案例技術限制與團隊組建

package "邊緣 AI 實用案例" {
    package "裝置端訓練" {
        component [異常檢測] as anomaly
        component [個人化設定] as personal
        component [隱含關聯] as implicit
    }

    package "技術限制" {
        component [聯邦學習] as federated
        component [無線更新] as ota
        component [計算成本] as compute
    }

    package "團隊組建" {
        component [領域專家] as domain
        component [嵌入式工程師] as embedded
        component [資料科學家] as ds
    }
}

anomaly --> personal : 本地資料
federated --> ota : 折衷方案
domain --> embedded : 跨領域協作

note bottom of federated
  高計算成本
  與邊緣優勢相悖
end note

collect --> clean : 原始資料
clean --> feature : 乾淨資料
feature --> select : 特徵向量
select --> tune : 基礎模型
tune --> cv : 最佳參數
cv --> eval : 訓練模型
eval --> deploy : 驗證模型
deploy --> monitor : 生產模型

note right of feature
  特徵工程包含:
  - 特徵選擇
  - 特徵轉換
  - 降維處理
end note

note right of eval
  評估指標:
  - 準確率/召回率
  - F1 Score
  - AUC-ROC
end note

@enduml

圖表翻譯: 此圖表展示了不同角色在邊緣AI專案中的協作關係,包括軟體工程師、MLOps工程師、安全專家、品質保證工程師、資料科學家和嵌入式工程師如何共同推動專案發展。