測試模型

端到端機器學習

Joshua Stapleton

Machine Learning Engineer

部署

  • ML 生命週期的下一步
  • 在訓練與評估之後
  • 讓模型可供使用

機器學習生命週期的部署階段

端到端機器學習

測試

  • 測試:
    • 模型不會當掉
    • 推論時回傳合理的輸出
    • 合理時間內回傳結果

機器學習生命週期的部署階段

端到端機器學習

Unittest

  • 測試
    • 標記異常/意外事件。
    • 檢查模型是否如預期表現。

 

  • unittest
    • Python 內建的寫測試函式庫。
    • 測試案例:涵蓋一種測試類型。
    • 測試案例方法:針對該案例的一個面向進行單一測試。
端到端機器學習

Unittest 用法

import unittest


class TestModelInference(unittest.TestCase):
def setUp(self): self.model = fitted_model self.X_test = X_test
def test_prediction_output_shape(self): y_pred = self.model.predict(self.X_test) self.assertEqual(y_pred.shape[0], self.X_test.shape[0])
if __name__ == '__main__': unittest.main()
端到端機器學習

Unittest 用法(續)

 

    def test_input_values(self):
        print("Running test_input_values test case")

        # Get inputs (each row in testing set)
        for input in X_test: 
            for value in input:
                # if value is cholestrol, for example:
                self.assertIn(value, [0, 500])
端到端機器學習

Python 測試入門

端到端機器學習

測試的要與不要

最佳實務

  • 不要……
    • 寫過多測試
    • 重複撰寫測試
    • 為高度可靠的元件寫測試。

 

  • 要……
    • 透過測試提升可靠度。
    • 用測試檢查/管理預期。
    • 為新功能撰寫測試。
端到端機器學習

測試的好處

TDD 的好處

  • 開發有信心
    • 穩定迭代
    • 減少對臭蟲的擔心
  • 效能
    • 可靠性
    • 可上線水準
端到端機器學習

一起來練習吧!

端到端機器學習

Preparing Video For Download...