Member-only story
探索MLOps:提升機器學習專案品質的入門指南
最近在Coursera上看到DevOps, DataOps, MLOps這一門課程。裡面介紹了有關GitHub workflow, Copilot, AWS, GCP以及Azure的一些工具使用。
課程當中讓我了解到,原來機器學習除了演算法開發之外,還有很多CI/CD的技術可以學習。
對我而言,除了在線上課程中看到的內容外,我也整理了一些我覺的可以使用的工具與一些方法:
requirements.txt
對於一個python專案來說,requirements.txt是相當重要的存在,它告訴了開發者需要安裝哪些套件以及套件版本,才能順利使用這個專案的程式碼。很多時候,即使是相同的套件,不同的版本號可能都會造成實驗無法重製,或是程式執行上出錯。這時候,可以用pipreqs套件,它可以針對特定目錄底下所使用到的套件,產生一份requirements.txt
安裝並使用pipreqs:
pip install pipreqs
pipreqs /path/to/your/project
範例requirements.txt:
matplotlib>=3.3
numpy>=1.23.5
opencv-python>=4.1.1
pillow>=10.3.0
PyYAML>=5.3.1
requests>=2.32.0
scipy>=1.4.1
thop>=0.1.1
torch>=1.8.0
torchvision>=0.9.0
tqdm>=4.64.0
tensorboard>=2.4.1
pandas>=1.1.4
seaborn>=0.11.0
.gitignore
.gitignore用來告訴git哪些檔案不要在commit的過程中,一起被commit進去。例如PyTorch的權重檔案(*.pt or *.pth)或是訓練的資料集圖片(*.jpg, *.png, etc,.)。原因是Git的用意還是希望大家用於管理程式碼的版本,而不是作為雲端硬碟的儲存空間來保存這些檔案。
除此之外,GitHub提供給用戶的repo空間相當有限,若檔案太大,是無法push上去的,需要使用Git Large File Storage才能push。因此在專案剛建立好的初期,就先把.gitignore修改好就相當重要。個人認為YOLOv5專案的.gitignore就寫得還蠻不錯的,有興趣的讀者可以參考。