估算 ML 應用項目的時間、成本和可交付成果
已發表: 2019-11-20想像一下你自己要去商店買一個定制的錢包。
雖然您知道您需要什麼類型的錢包,但不知道獲得定製版本所需的成本或時間。
機器學習項目也是如此。 為了幫助您解決這個難題,我們為您提供了成功項目的詳細信息。
機器學習就像一枚有兩面的硬幣。
一方面,它有助於消除流程中的不確定性。 但另一方面,它的發展充滿了不確定性。
雖然幾乎每個機器學習 (ML)項目的最終結果都是使業務變得更好並簡化流程的解決方案; 它的開發部分有一個完全不同的故事要分享。
儘管 ML 在改變幾個成熟的移動應用品牌的利潤故事和商業模式方面發揮了巨大作用,但它仍然處於起步階段。 反過來,這種新穎性使移動應用程序開發人員在處理 ML 項目計劃並使其做好生產準備時變得更具挑戰性,同時牢記時間和成本限制。
這個困難的解決方案(可能是唯一的解決方案)是對時間、成本和可交付成果的黑白機器學習應用程序項目估計。
但在我們開始這些部分之前,讓我們先看看是什麼讓夜間蠟燭的困難和燃燒變得值得。
為什麼您的應用需要機器學習框架?
您可能會想,我們為什麼要在時間、成本和可交付成果估算的中間討論框架。
但時間和成本背後的真正原因就在這裡,這讓我們了解了我們開發應用程序的動機。 您是否需要機器學習:
提供個性化體驗
用於合併高級搜索 m
用於預測用戶行為
為了更好的安全性
深度用戶參與
基於這些原因,時間、成本和可交付成果將相應地取決於。
機器學習模型的類型
您會考慮使用哪種模型來調整時間和成本? 如果您不知道,我們提供了信息供您了解和選擇型號,具體取決於您的要求和預算。
機器學習在其不同的用例中可以分為三種模型類型,它們在將基本應用程序轉變為智能移動應用程序方面發揮作用——監督、無監督和強化。 這些機器學習模型所代表的知識有助於定義如何開發支持 ML 的應用程序。
監督學習
這是向系統提供數據的過程,其中算法的輸入及其輸出被正確標記。 由於輸入和輸出信息被標記,系統被訓練以識別算法內數據中的模式。
它變得更加有益,因為它用於根據未來的輸入數據預測結果。 當社交媒體在照片中被標記時識別出某人的臉時,可以看到這方面的一個例子。
無監督學習
在無監督學習的情況下,數據被輸入到系統中,但它的輸出沒有像監督模型的情況那樣被標記。 它允許系統識別數據並從信息中確定模式。 一旦模式被存儲,所有未來的輸入都被分配給模式以產生輸出。
這種模型的一個例子可以在社交媒體根據一些已知數據(如人口統計、教育背景等)向朋友提供建議的情況下看到。
強化學習
與無監督學習的情況一樣,在強化學習中提供給系統的數據也沒有標記。 兩種機器學習類型的不同之處在於,當產生正確的輸出時,系統會被告知輸出是正確的。 這種學習類型使系統能夠從環境和經驗中學習。
這方面的一個例子可以在 Spotify 中看到。 Spotify 應用程序會推薦歌曲,然後用戶必須點贊或不點贊。 在選擇的基礎上,Spotify 應用程序了解用戶對音樂的品味。
機器學習項目的生命週期
機器學習項目可交付成果時間表的生命週期通常如下所示:
ML 項目計劃設置
- 定義任務和要求
- 確定項目可行性
- 討論一般模型權衡
- 創建項目代碼庫
數據的收集和標記
- 創建標籤文檔
- 構建數據攝取管道
- 數據質量驗證
模型探索
- 建立模型性能的基線
- 使用初始數據管道創建簡單模型
- 在早期階段嘗試並行的想法
- 找到問題域的 SoTA 模型(如果有)並重現結果。
模型的細化
- 進行以模型為中心的優化
- 隨著複雜性的增加調試模型
- 進行錯誤分析以發現故障模式。
測試和評估
- 在測試分佈上評估模型
- 重新審視模型評估指標,確保它推動理想的用戶行為
- 為模型推理功能、輸入數據管道、生產中預期的顯式場景編寫測試。
模型部署
- 通過 REST API 公開模型
- 將新模型部署到一部分用戶,以確保在最終推出之前一切順利。
- 能夠將模型回滾到以前的版本
- 監控實時數據。
模型維護
- 重新訓練模型以防止模型過時
- 如果模型所有權發生轉移,請教育團隊
如何估計機器學習項目的範圍?
Appinventiv 機器學習團隊在仔細閱讀機器學習類型和開發生命週期後,繼續定義機器學習應用程序項目對項目的估計,遵循以下階段:
第 1 階段 - 發現(7 到 14 天)
ML 項目計劃路線圖從問題的定義開始。 它調查了應該解決的問題和運營效率低下的問題。
這裡的目標是確定需求並查看機器學習是否滿足業務目標。 該階段要求我們的工程師與客戶端的業務人員會面,以了解他們希望解決的問題的願景。
其次,開發團隊應該確定他們擁有哪種數據,以及他們是否需要從外部服務中獲取這些數據。
接下來,開發人員必須評估他們是否能夠監督算法——是否每次做出預測時都返回正確的響應。
可交付成果——一個問題陳述,它定義一個項目是微不足道的還是複雜的。
第 2 階段 - 探索(6 至 8 週)
這個階段的目標是建立一個概念證明,然後可以作為 API 安裝。 訓練基線模型後,我們的 ML 專家團隊會評估生產就緒解決方案的性能。
這個階段讓我們清楚地了解在發現階段計劃的指標應該期望什麼樣的性能。
可交付成果——概念證明
第 3 階段 - 開發(4 個月以上)
這是團隊迭代工作直到達到生產就緒答案的階段。 因為到項目達到這個階段時,不確定性要少得多,所以估計會非常精確。
但如果結果沒有得到改善,開發人員將不得不應用不同的模型或對數據進行返工,甚至在需要時更改方法。
在這個階段,我們的開發人員在 sprint 中工作,並決定每次迭代後要做什麼。 可以有效地預測每個 sprint 的結果。
雖然可以有效地預測衝刺結果,但在機器學習的情況下,提前計劃衝刺可能是錯誤的,因為您將在未知領域工作。
可交付成果——生產就緒的 ML 解決方案
第 4 階段 - 改進(持續)
一旦部署,決策者幾乎總是急於結束項目以節省成本。 雖然該公式適用於 80% 的項目,但同樣不適用於機器學習應用程序。
發生的情況是數據在整個機器學習項目時間線上發生變化。 這就是為什麼必須不斷監控和審查 AI 模型的原因——以防止其退化並提供支持移動應用程序開發的安全 AI 。
以機器學習為中心的項目需要時間來實現令人滿意的結果。 即使你發現你的算法從一開始就超過了基準,它們也很可能是一次打擊,並且當在不同的數據集上使用時,程序可能會丟失。
影響總成本的因素
開發機器學習系統的方式具有一些顯著特徵,例如與數據相關的問題和與性能相關的因素,這些因素決定了最後的費用。
數據相關問題
可靠機器學習的發展不僅取決於驚人的編碼,而且訓練信息的質量和數量也起著至關重要的作用。
- 缺乏合適的數據
- 複雜的提取、轉換、加載過程
- 非結構化數據處理
性能相關問題
足夠的算法性能是另一個重要的成本因素,因為高質量的算法需要幾輪調整會話。
- 準確率各不相同
- 處理算法的性能
我們如何估算機器學習項目的成本?
當我們談論機器學習項目的成本估算時,首先要確定所談論的項目類型很重要。
機器學習項目主要分為三種類型,它們在回答機器學習成本是多少方面發揮作用:
首先——這種類型已經有了解決方案——模型架構和數據集都已經存在。 這些類型的項目實際上是免費的,所以我們不會談論它們。
其次——這些項目需要基礎研究——與主流模型相比,ML 在全新領域或不同數據結構中的應用。 這些項目類型的成本通常是大多數初創公司無法承受的。
第三——這些是我們在成本估算中要重點關注的。 在這裡,您採用已經存在的模型架構和算法,然後更改它們以適應您正在處理的數據。
現在讓我們進入估算 ML 項目成本的部分。
數據成本
數據是機器學習項目的主要貨幣。 最大的解決方案和研究集中在監督學習模型的變化上。 眾所周知的事實是,監督學習越深入,對註釋數據的需求就越大,反過來,機器學習應用程序的開發成本就越高。
現在,雖然 Scale 和 Amazon 的 Mechanical Turk 等服務可以幫助您收集和註釋數據,但質量呢?
檢查然後更正數據樣本可能非常耗時。 該問題的解決方案有兩個方面——要么外包數據收集,要么在內部對其進行改進。
您應該外包大部分數據驗證和細化工作,然後在內部任命一兩個人來清理數據樣本並對其進行標記。
研究費用
正如我們上面所分享的,該項目的研究部分涉及入門級可行性研究、算法搜索和實驗階段。 通常來自產品交付研討會的信息。 基本上,探索階段是每個項目在生產之前都要經歷的階段。
以最完美的方式完成這個階段是一個過程,在實施 ML 討論的成本中附帶一個附加數字。
生產成本
機器學習項目成本的生產部分由基礎設施成本、集成成本和維護成本組成。 在這些成本中,您將不得不在雲計算方面花費最少。 但這也會因一種算法的複雜性而異。
集成成本因一個用例而異。 通常,將 API 端點放在雲中並記錄它以供系統的其餘部分使用就足夠了。
人們在開發機器學習項目時往往會忽略的一個關鍵因素是需要在項目的整個生命週期中傳遞持續的支持。 來自 API 的數據必須經過適當的清理和註釋。 然後,必鬚根據新數據對模型進行訓練並進行測試、部署。
除了上述幾點之外,還有兩個因素對開發 AI 應用程序/ML 應用程序的成本估算具有重要意義。
開發機器學習應用程序的挑戰
通常,在繪製機器學習應用程序項目估算時,也會考慮與之相關的開發挑戰。 但在某些情況下,挑戰出現在 ML 支持的應用程序開發過程的中途。 在這種情況下,總時間和成本估算會自動增加。
機器學習項目面臨的挑戰包括:
- 決定哪些特徵集將成為機器學習特徵
- 人工智能和機器學習領域的人才短缺
- 獲取數據集的成本很高
- 取得令人滿意的結果需要時間
結論
當基於模塊化設計開發並由經驗豐富的團隊按照敏捷方法處理時,估算完成軟件項目所需的人力和時間相對容易。 但是,當您致力於創建時間和精力方面的機器學習應用程序項目估算時,同樣的事情變得更加困難。
即使目標可能是明確定義的,但模型是否會達到預期結果的保證並不存在。 通常不可能降低範圍,然後通過預定義的交付日期在時間盒設置中運行項目。
最重要的是您要確定存在不確定性。 一種有助於緩解延遲的方法是確保輸入數據的格式適合機器學習。
但最終,無論您計劃採用哪種方法,只有當您與知道如何以最簡單的形式開發和部署複雜性的機器學習應用程序開發機構合作時,它才會被認為是成功的。
關於機器學習應用項目估算的常見問題解答
問:為什麼在開發應用程序時使用機器學習?
通過將機器學習整合到他們的移動應用程序中,企業可以利用許多好處。 一些最流行的是在應用營銷方面——
- 提供個性化體驗
- 高級搜索
- 預測用戶行為
- 更深入的用戶參與
問:機器學習如何幫助您的業務?
機器學習對企業的好處不僅僅是將它們標記為破壞性品牌。 它影響到他們的產品變得更加個性化和實時。
機器學習可以成為讓企業更貼近客戶的秘訣,這正是他們想要的方式。
問:如何估算開發機器學習項目的投資回報率?
雖然這篇文章可以幫助您建立機器學習應用項目估算,但計算 ROI 是另一回事。 您還必須考慮組合中的機會成本。 此外,您還必須了解您的企業對該項目的期望。
問:哪個平台更適合 ML 項目?
您選擇是與Android 應用程序開發公司還是與 iOS 開發者建立聯繫,完全取決於您的用戶群和意圖——無論是盈利還是以價值為中心。