track-ml-experiments
О программе
Этот навык настраивает сервер отслеживания MLflow для автоматизации логирования экспериментов в популярных ML-фреймворках, обеспечивая систематическое сравнение запусков через метрики и визуализации. Он управляет артефактами в удалённом хранилище для воспроизводимых рабочих процессов с полным отслеживанием происхождения данных. Используйте его при запуске новых ML-проектов, требующих отслеживания экспериментов, или при переходе с ручного логирования на автоматизированные воспроизводимые системы.
Быстрая установка
Claude Code
Рекомендуетсяnpx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/track-ml-experimentsСкопируйте и вставьте эту команду в Claude Code для установки этого навыка
Документация
追蹤 ML 實驗
完整配置檔與模板見 Extended Examples。
設立 MLflow 追蹤伺服器並實現含指標、參數與產物之全面實驗追蹤。
適用時機
- 始需實驗追蹤之新機器學習專案
- 自手動實驗日誌遷至自動追蹤
- 系統化比較多次模型訓練執行
- 與團隊成員分享實驗結果
- 建含完整血緣追蹤之可重現 ML 工作流
- 將實驗追蹤整合入 CI/CD 管道
輸入
- 必要:含 ML 框架(sklearn、pytorch、tensorflow、xgboost)之 Python 環境
- 必要:MLflow 安裝(
pip install mlflow) - 選擇性:產物之遠端儲存後端(S3、Azure Blob、GCS)
- 選擇性:後設資料儲存之資料庫後端(PostgreSQL、MySQL)
- 選擇性:遠端後端之認證憑據
步驟
步驟一:初始化 MLflow 追蹤伺服器
以適當之後端商店設立 MLflow 追蹤伺服器。
# Option 1: Local file-based tracking (development)
mkdir -p mlruns
export MLFLOW_TRACKING_URI="file:./mlruns"
# Option 2: SQLite backend with local artifacts
mlflow server \
--backend-store-uri sqlite:///mlflow.db \
--default-artifact-root ./mlartifacts \
# ... (see EXAMPLES.md for complete implementation)
建供團隊分享之配置檔:
# mlflow_config.py
import os
MLFLOW_TRACKING_URI = os.getenv(
"MLFLOW_TRACKING_URI",
"http://mlflow-server.company.com:5000"
)
# ... (see EXAMPLES.md for complete implementation)
預期: MLflow UI 於指定 host:port 可達,顯示空之實驗清單。伺服器日誌確認無錯啟動。
失敗時: 以 netstat -tulpn | grep 5000 檢埠可用,驗資料庫連線字串,確 S3 憑據已配置(aws configure),檢遠端存取之防火牆規則。
步驟二:為 ML 框架配置自動日誌
啟用框架專屬之自動日誌以自動捕指標、參數與模型。
# training_script.py
import mlflow
from mlflow_config import MLFLOW_TRACKING_URI, MLFLOW_EXPERIMENT_NAME
# Set tracking URI
mlflow.set_tracking_uri(MLFLOW_TRACKING_URI)
mlflow.set_experiment(MLFLOW_EXPERIMENT_NAME)
# ... (see EXAMPLES.md for complete implementation)
對 PyTorch:
import mlflow.pytorch
mlflow.pytorch.autolog(
log_every_n_epoch=1,
log_every_n_step=None,
log_models=True,
disable=False,
exclusive=False,
# ... (see EXAMPLES.md for complete implementation)
預期: 執行現於 MLflow UI 中且所有超參數、指標(訓練/驗證損失、準確度)、模型產物與輸入範例皆自動記錄。
失敗時: 驗 MLflow 版本與 ML 框架相容(mlflow.sklearn.autolog() 需 MLflow ≥1.20),檢自動日誌是否支援你之模型類型,停用自動日誌並用手動日誌為退路,以 mlflow.set_tracking_uri() 檢日誌之連線錯。
步驟三:實現全面手動日誌
加自訂指標、參數、產物與標籤以為完整實驗文件。
# comprehensive_tracking.py
import mlflow
import numpy as np
import matplotlib.pyplot as plt
from pathlib import Path
def train_and_log_model(params, X_train, y_train, X_test, y_test):
"""
# ... (see EXAMPLES.md for complete implementation)
預期: MLflow UI 顯示豐富之實驗資訊,含逐步指標、視覺化產物、模型簽名、輸入範例與供過濾與搜尋之全面標籤。
失敗時: 檢產物儲存權限(aws s3 ls s3://bucket/path),驗圖記錄之 matplotlib 後端(plt.switch_backend('Agg')),確 log_dict 之 JSON 可序列化資料類型,檢本地產物儲存之磁碟空間。
步驟四:比較執行並產報告
用 MLflow 之比較工具分析多實驗。
# compare_runs.py
import mlflow
from mlflow.tracking import MlflowClient
client = MlflowClient()
def compare_experiments(experiment_name, metric_name="test_accuracy", top_n=5):
"""
# ... (see EXAMPLES.md for complete implementation)
命令列比較:
# Compare runs using MLflow CLI
mlflow runs compare --experiment-name customer-churn \
--order-by "metrics.test_accuracy DESC" \
--max-results 10
# Export run data to CSV
mlflow experiments csv --experiment-name customer-churn \
--output experiments.csv
預期: 主控台輸出顯示按關鍵指標排序之執行,HTML 報告以格式化比較表產生,CSV 檔含所有執行資料以供進一步分析。
失敗時: 以 mlflow experiments list 驗實驗存在,檢指標名完全相符(區分大小寫),確執行已成功完成(檢執行狀態),驗輸出檔之檔案寫入權限。
步驟五:配置遠端產物儲存
設立 S3/Azure/GCS 後端以為可規模產物管理。
# artifact_storage_config.py
import mlflow
import os
def configure_s3_backend():
"""
Configure S3 for artifact storage.
"""
# ... (see EXAMPLES.md for complete implementation)
含 PostgreSQL 與 S3 之 MLflow Docker Compose:
# docker-compose.yml
version: '3.8'
services:
postgres:
image: postgres:14
environment:
POSTGRES_DB: mlflow
# ... (see EXAMPLES.md for complete implementation)
預期: 產物成功上傳至遠端儲存,MLflow UI 顯示指向 S3/Azure/GCS URI 之產物連結,自 UI 下載產物正確運作。
失敗時: 以 aws s3 ls 或 az storage blob list 驗雲憑據,檢 bucket/container 權限(需寫存取),確 MLflow 已安裝雲擴展(pip install mlflow[extras]),測試與儲存端點之網路連通,檢瀏覽器存取之 CORS 設定。
步驟六:實現實驗生命週期管理
設立自動清理、歸檔與組織政策。
# lifecycle_management.py
import mlflow
from mlflow.tracking import MlflowClient
from datetime import datetime, timedelta
client = MlflowClient()
def archive_old_experiments(days_old=90):
# ... (see EXAMPLES.md for complete implementation)
預期: 舊實驗已移至刪除狀態,失敗執行已自活躍清單移除,最佳執行已標籤以便於 UI 中過濾,儲存空間已回收。
失敗時: 檢實驗權限(須為擁有者方可刪),驗執行確於 FAILED 狀態,確指標於所有被排序之執行中存在,檢大量操作之資料庫連通,驗遠端儲存中產物刪除之足夠權限。
驗證
- MLflow 追蹤伺服器經 web UI 可達
- 實驗已建且執行已成功記錄
- 自動日誌自動捕框架專屬指標
- 自訂指標、參數與產物正確記錄
- 比較查詢返預期之頂執行
- 遠端產物儲存已配置且運作
- 產物可自 UI 與程式化下載
- 執行過濾與搜尋以標籤運作
- HTML 比較報告無錯產生
- 生命週期管理腳本成功執行
常見陷阱
- 連線逾時:MLflow 伺服器自訓練腳本不可達——驗
MLFLOW_TRACKING_URI環境變數,檢防火牆規則,確伺服器執行 - 產物上傳失敗:S3/Azure 憑據未配置或 bucket 不存——先測雲 CLI 存取,驗 bucket 權限
- 缺指標:自動日誌停用或框架版本不支援——檢 MLflow 版本相容,退至手動日誌
- 執行雜亂:太多實驗執行汙染 UI——早期實施標籤策略,常用生命週期管理腳本
- 大產物:記錄整資料集致儲存膨脹——僅記錄樣本或參考,用外部資料版本控制(DVC)
- 不一致之命名:參數於不同執行中以不同名記錄——於配置檔中標準化命名慣例
- 資料庫鎖:SQLite 不支援並發寫——對多用戶環境用 PostgreSQL/MySQL
- 自動日誌衝突:多自動日誌配置互擾——用
exclusive=True或停相衝之自動日誌
相關技能
register-ml-model— 於 MLflow 模型註冊處註所追蹤之模型version-ml-data— 用 DVC 對資料集做版本控制以求可重現實驗setup-automl-pipeline— 將實驗追蹤整合入自動 ML 管道deploy-ml-model-serving— 將最佳所追蹤模型部署至生產orchestrate-ml-pipeline— 將實驗追蹤與工作流編排結合
GitHub репозиторий
Frequently asked questions
What is the track-ml-experiments skill?
track-ml-experiments is a Claude Skill by pjt222. Skills package instructions and resources that Claude loads on demand, so Claude can perform track-ml-experiments-related tasks without extra prompting.
How do I install track-ml-experiments?
Use the install commands on this page: add track-ml-experiments to Claude Code as a plugin, or clone its repository into your skills directory, then restart Claude so it picks up the skill.
What category does track-ml-experiments belong to?
track-ml-experiments is in the Meta category, tagged ai, automation and design.
Is track-ml-experiments free to use?
Yes. track-ml-experiments is listed on AIMCP and free to install. It runs inside Claude, so no separate service account is required to use the skill itself.
Похожие навыки
Этот навык предоставляет проверенную в продакшене настройку для Content Collections — TypeScript-ориентированного инструмента, который преобразует файлы Markdown/MDX в типобезопасные коллекции данных с валидацией Zod. Используйте его при создании блогов, сайтов документации или контентных приложений на Vite + React для обеспечения типобезопасности и автоматической проверки содержимого. Он охватывает всё: от настройки плагина Vite и компиляции MDX до оптимизации развертывания и валидации схем.
Этот навык позволяет разработчикам создавать приложения на платформе прогнозных рынков Polymarket, включая интеграцию с API для торговли и получения рыночных данных. Он также обеспечивает потоковую передачу данных в реальном времени через WebSocket для отслеживания текущих сделок и рыночной активности. Используйте его для реализации торговых стратегий или создания инструментов, обрабатывающих обновления рынка в реальном времени.
Этот навык помогает разработчикам создавать плагины OpenCode, которые подключаются к более чем 25 типам событий, таким как команды, файлы и операции LSP. Он предоставляет структуру плагина, спецификации API событий и шаблоны реализации для модулей на JavaScript/TypeScript. Используйте его, когда вам нужно перехватывать, отслеживать или расширять жизненный цикл ассистента OpenCode AI с помощью пользовательской событийно-ориентированной логики.
SGLang — это высокопроизводительный фреймворк для обслуживания больших языковых моделей (LLM), специализирующийся на быстрой структурированной генерации JSON, regex и рабочих процессов агентов с использованием кэширования префиксов RadixAttention. Он обеспечивает значительно более высокую скорость вывода, особенно для задач с повторяющимися префиксами, что делает его идеальным для сложных структурированных результатов и многократных диалогов. Выбирайте SGLang вместо альтернатив, таких как vLLM, когда вам требуется ограниченное декодирование или вы создаете приложения с интенсивным совместным использованием префиксов.
