了解 AI 工程師的考量
越來越多的軟體解決方案都包含 AI 功能;因此,軟體工程師必須知道如何將 AI 功能整合至其應用程式與服務。
機器學習的進展,加上可以取得的大量資料增加,以及用來處理及訓練預測模型的強大計算能力,共同造就封裝了 AI 功能的預先封裝軟體服務。 軟體工程師可以利用這些服務建立使用基礎 AI 功能的應用程式與代理程式,再用來當作建立智慧型解決方案的建置組塊。
這表示軟體工程師在程式設計、測試、使用原始檔控制系統,以及封裝應用程式以進行部署時,只要應用現有的技能即可,而不需要成為資料科學家或機器學習專家。
然而,為了充分利用 AI 的商機,軟體工程師的確需要對核心 AI 與機器學習準則的概念有所了解。
模型訓練與推斷
許多 AI 系統都依賴必須使用範例資料「訓練」的預測模型。 訓練流程會分析資料,並判斷資料中的「特徵」(在新的觀察中廣泛出現的資料值) 與「標籤」(用來訓練模型以進行預測的值) 之間的關聯性。
在模型訓練之後,您可以提交包含已知「特徵」值的新資料,並讓模型預測最有可能的「標籤」。 使用模型進行預測,稱為「推斷」。
軟體工程師可以用來建置已啟用 AI 解決方案的許多服務和架構都需要經過開發,其中包括從現有資料訓練模型,之後才能用來推斷應用程式中的新值。
機率與信賴分數
經過妥善訓練的機器學習模型可以很精確,但沒有任何預測性模型是萬無一失的。 機器學習模型所做的預測是根據「機率」,而軟體工程師不需要對機率理論有深入的數學理解,因此務必要了解預測是反映統計機率,而不是絕對事實。 在大部分的情況下,預測會有相關聯的「信賴分數」,反映所進行之預測的機率。 軟體開發人員應該使用信賴分數值評估預測,並套用適當的閾值,以將應用程式可靠性最佳化,並降低可能根據邊緣機率進行預測的風險。
負責任的 AI 與道德
軟體工程師務必要考量其軟體對使用者與社會大眾的影響,包括其用途的道德考量。 當應用程式充斥著人工智慧時,這些考量更因為 AI 系統運作及影響決策的方式而顯得格外重要;通常是根據機率模型,而這些模型又仰賴訓練時使用的資料。
AI 解決方案似人類的本質是讓應用程式更方便使用的重要優勢,但也會讓使用者對於應用程式做出正確決策的能力給予極大的信任。 透過不正確的預測或誤用 AI 功能對個人或群體可能造成的傷害,是一項主要考量,而建置已具備 AI 功能之解決方案的軟體工程師應經過足夠的考量以降低風險,並確保有公平性、可靠性與適當的保護可避免傷害或歧視。