Sber.DS 是一個平台,即使沒有代碼,您也可以創建和實現模型

各種規模的企業每天都會出現關於哪些其他流程可以自動化的想法和會議。 但是,除了需要花費大量時間來創建模型之外,您還需要花費大量時間來評估模型並檢查所獲得的結果不是隨機的。 實施後,任何模型都必須受到監控並定期檢查。

這些都是任何公司都需要完成的階段,無論其規模大小。 如果我們談論俄羅斯聯邦儲蓄銀行的規模和遺產,微調的數量就會顯著增加。 截至2019年底,Sber已使用超過2000個型號。 僅僅開發一個模型是不夠的,還需要與工業系統集成,開發用於構建模型的數據集市,並確保其在集群上運行的控制。

Sber.DS 是一個平台,即使沒有代碼,您也可以創建和實現模型

我們的團隊正在開發 Sber.DS 平台。 它允許您解決機器學習問題,加快測試假設的過程,原則上簡化了開發和驗證模型的過程,並且還可以在 PROM 中控制模型的結果。

為了不辜負您的期望,我想提前說明,這篇文章是介紹文章,在開頭部分,我們原則上討論 Sber.DS 平台的底層內容。 我們將分別講述模型從創建到實施的生命週期。

Sber.DS由幾個元件組成,其中關鍵的是函式庫、開發系統和模型執行系統。

Sber.DS 是一個平台,即使沒有代碼,您也可以創建和實現模型

該庫控制模型的生命週期,從開發模型的想法出現到在 PROM 中實現、監控和退役。 許多庫的功能是由監管規則規定的,例如訓練和驗證樣本的報告和儲存。 事實上,這是我們所有模型的暫存器。

該開發系統專為模型和驗證技術的可視化開發而設計。 開發的模型經過初步驗證並提供給執行系統以執行其業務功能。 此外,在運行時系統中,可以將模型放置在監視器上,以便定期啟動驗證技術來監控其操作。

系統中有多種類型的節點。 有些旨在連接到各種資料來源,有些則旨在轉換來源資料並豐富它(標記)。 有許多用於建立不同模型的節點和用於驗證它們的節點。 開發人員可以從任何來源載入數據、轉換、過濾、視覺化中間數據,並將其分解為多個部分。

該平台還包含可以拖放到設計區域的現成模組。 所有操作均使用可視化介面執行。 事實上,不需要一行程式碼就可以解決問題。

如果內建功能不夠,系統提供快速創建自己的模組的能力。 我們提出了基於整合開發模式 Jupyter 核心網關 對於那些從頭開始創建新模組的人。

Sber.DS 是一個平台,即使沒有代碼,您也可以創建和實現模型

Sber.DS 的架構建立在微服務之上。 關於什麼是微服務有很多觀點。 有些人認為將整體程式碼拆分成多個部分就足夠了,但同時它們仍然會存取同一個資料庫。 我們的微服務必須僅透過 REST API 與另一個微服務通訊。 沒有直接存取資料庫的解決方法。

我們努力確保服務不會變得非常龐大和笨拙:一個實例不應消耗超過 4-8 GB 的 RAM,並且必須能夠透過啟動新實例來水平擴展請求。 每個服務僅透過 REST API 與其他服務通訊(開放API)。 負責服務的團隊需要保持 API 向後相容,直到最後一個客戶端使用它。

該應用程式的核心是使用 Spring 框架用 Java 編寫的。 該解決方案最初是為了在雲端基礎設施中快速部署而設計的,因此該應用程式是使用容器化系統建置的 紅帽OpenShift (Kubernetes)。 無論是在增加業務功能(正在添加新的連接器、AutoML)方面還是在技術效率方面,該平台都在不斷發展。

我們平台的特點之一是我們可以在任何 Sberbank 模型執行系統上運行在視覺化介面中開發的程式碼。 現在已經有兩個:一個在 Hadoop 上,另一個在 OpenShift (Docker) 上。 我們不止於此,我們還創建整合模組以在任何基礎設施(包括本地和雲端)上運行程式碼。 關於有效融入俄羅斯聯邦儲蓄銀行生態系統的可能性,我們也計劃支持現有執行環境的工作。 未來,該解決方案可以「開箱即用」靈活地整合到任何組織的任何環境中。

那些曾經嘗試支援在 PROM 中的 Hadoop 上運行 Python 的解決方案的人知道,為每個資料節點準備和交付 Python 使用者環境是不夠的。 大量使用 Python 模組的機器學習的 C/C++ 程式庫不會讓您高枕無憂。 我們必須記住在新增新的庫或伺服器時更新包,同時保持與已實現的模型程式碼的向後相容性。

有多種方法可以實現此目的。 例如,提前準備幾個常用的庫,並在PROM中實現。 在Cloudera的Hadoop發行版中,他們通常會使用 。 現在在 Hadoop 中也可以運行 搬運工人-容器。 在某些簡單的情況下,可以將程式碼與套件一起交付 python.eggs.

銀行非常重視運行第三方程式碼的安全性,因此我們充分利用Linux核心的新功能,讓進程在隔離的環境中運行 Linux命名空間例如,您可以限制對網路和本機磁碟的訪問,從而顯著降低惡意程式碼的能力。 每個部門的資料區域都受到保護,並且只有該資料的所有者才能存取。 平台確保一個區域的資料只能透過資料發布流程到達另一個區域,從存取來源到資料落地目標店面的各個階段都受到控制。

Sber.DS 是一個平台,即使沒有代碼,您也可以創建和實現模型

今年我們計畫完成在 Hadoop 上啟動用 Python/R/Java 寫的模型的 MVP。 我們為自己設定了一項雄心勃勃的任務,那就是學習如何在 Hadoop 上運行任何自訂環境,以免以任何方式限制我們平台的使用者。

此外,事實證明,許多DS專家在數學和統計學方面非常出色,可以做出很酷的模型,但不太精通大數據轉換,他們需要我們資料工程師的幫助來準備訓練樣本。 我們決定幫助同事創建方便的模組,用於 Spark 引擎上模型的標準轉換和特徵準備。 這將使您能夠花更多的時間開發模型,而不必等待資料工程師準備新的資料集。

我們聘用具有不同領域知識的人員:Linux 和 DevOps、Hadoop 和 Spark、Java 和 Spring、Scala 和 Akka、OpenShift 和 Kubernetes。 下次我們會講模型庫,模型如何在公司內部經歷生命週期,如何驗證與實作。

來源: www.habr.com

添加評論