Evolution Software 改善使用 ML.NET 的不佳品質
客戶
Evolution Software Design, Inc.
產品與服務
ML.NET
Azure
.NET Core
ASP.NET Core
Entity Framework Core
SignalR
SQL Server
Xamarin
產業
顧問
組織規模
小型 (1-100 名員工)
國家/地區
美國
Evolution Software Design, Inc. 是一家顧問公司,透過策略性技術解決方案以及開發醫療保健、電子商務、農業和企業應用程式協助其他組織更有效地應用技術。該公司最近的一項投資是在榛果產業,與各種榛果加工公司合作,使用機器學習和 ML.NET,提高了從農場到消費者的榛果品質。
ML.NET 讓您可以直接利用現有的 .NET 與 C# 技能和軟體資產,將機器學習功能新增至應用程式。由於應用程式的其餘部分是使用 Microsoft 技術堆疊開發並部署在 Azure 上,因此機器學習模型的整合簡單易懂。」
商務問題
為了讓榛果適合人類食用,它們必須滿足特定需求。其中一項需求是,榛果必須「完全乾燥」,或包含特定層級的濕度,產業的規定為介於 8.5% 到 11.5% 之間。若要讓購買者接受此堅果,請務必讓濕度內容正確: 如果太低,堅果收縮太多; 如果太高,則堅果可能會發霉和變質。
為確認榛子在收成後達到此濕氣等級,會從農場把它們送至接收站並置於商業風乾機中,其中最多可包含50,000 磅的榛子。
判斷榛果在乾燥機中到達目標濕度必須花費的時間,可能容易出錯,而且會受到多種變數影響,例如榛果品種、每批的重量、所用的乾燥機、位置和天氣。判斷濕度內容的標準方式是個非常仰賴手動的過程: 定時派人去乾燥機舀出一桶榛果、將果仁秤重、烘乾,然後查看重量差異。這個程序需要在乾燥期間重複執行數次,而且在華氏 120 度空氣以 100 mph 速度吹送的情況下,乾燥機中的條件較不理想。
已經進行此流程一段時間的人通常會認為,他們不需執行取樣流程即可知道榛果是否已處理好,這可能導致濕度不正確以及不同乾燥機的結果不一致,進而造成接收站和榛果加工商的營收損失。
此外,由於每年秋季在相當短的時段內會收集及處理大量的榛子 (在 2018 年,參與的榛子處理公司從接收站收到六千八百萬磅的乾堅果),因此在全天候作業期間讓風乾機最佳化有很高的商業價值。
為解決這些商務問題,榛果監視器應用程式會使用 ML.NET 來預測乾燥批次中堅果的濕度,並在達到目標等級時發出警示。
該應用程式的目標是使其變得極為簡單,讓操作乾燥機的人員了解堅果的濕度何時會接近最佳濕度範圍,同時減少取樣的需要; 最終我們的目標是讓他們不必經常對堅果進行取樣。」
為什麼要使用 ML.NET?
雖然機器學習似乎是解決商務問題的有趣策略,但要在應用程式中輕鬆地執行這項操作似乎不太明確。不過,ML.NET 的推出大幅加速了實作,並在經過四週半的開發之後,Evolution Software 擁有其第一個機器學習模型,可改善 35 個商用烘乾機在 2.5-3% 內榛果濕度層級的預測。
ML.NET 的影響
除了監視溫度、濕度及氣壓等測量值之外,操作烘乾機的處理器現在還可透過行動裝置方便的網頁用戶端即時預測其可使用的濕度等級。通知引擎會同時對計量和預測的值進行操作,因此,當達到目標濕氣等級時,操作員就會收到簡訊或電子郵件訊息。
這項額外的資訊為操作員提供了更高的可見性,並可透過其行動電話及其他裝置,更加了解乾燥過程的狀態。
解決方案架構
資料處理
應用程式會在資料抵達伺服器時使用 SignalR 取得即時更新,並將資料儲存在 SQL 資料庫中。每台乾燥機都有多個和中樞連線的感應器,每分鐘會將下列收集到的資料透過 REST 傳送到在 ASP.NET Core MVC 中實作的 Web API:
進行預測所需的其他資料,例如開始與結束時間、重量、榛果種類、結構 (乾燥機),以及位置 (乾燥設備),會由使用設備的工作人員手動收集和記錄:
也會手動收集並記錄榛果樣本(用於訓練資料) 的濕度層級:
資料轉換和機器學習演算法
Hazelnut Monitor 使用 one-hot encoding 將「特性」分類 (各種榛果、乾燥機位置和箱號/結構編號) 轉換成浮點數資料類型 (這是 ML.NET 演算法接受的格式),並將這些特性與溫差、濕度差和重量串連。這些特性資料行接著會傳遞至快速樹狀回歸演算法,其會預測榛果濕氣層級。
去年,訓練演算法會每日執行一次做為排程的工作,而訓練的模型隨後會以 zip 檔案推送到 Azure Blob 儲存體。接下來此模型會載入至 Azure App Service 快取中,並用於新資料以製造潮濕等級預測。本季節 Evolution Software 規劃要將此程序移轉至排程的 Azure Function。
用戶端應用程式
Hazelnut Monitor 提供使用 .NET Core 和 Aurelia 建置,並裝載在 Azure 上的 Web 型入口網站,可提供跨多個位置乾洗作業的見解。 它也包含規則引擎和通知系統 (使用 Azure Functions),可在特定度量值超出範圍時 (例如溫度過熱或過冷)、感應器故障或達到目標濕度內容時,透過簡訊和電子郵件通知來警示重要人員。
ML.NET 的發行讓 Evolution Software 能夠直接將機器學習功能新增至榛果監視器應用程式中。該公司利用其現有的 .NET 及 C# 技能及軟體資產,在短時間內從零開始建立可運行的機器學習模型,從而解決目標業務問題。
準備開始了嗎?
我們的逐步教學課程可協助您讓 ML.NET 在電腦上執行。