GoodSeed、ローカルSQLiteとNeptune migrationを軸にした軽量ML experiment trackerを打ち出す

Redditスレッド: MachineLearning の議論
Website: goodseed.ai
GitHub: Kripner/goodseed
Migration guide: Neptune to GoodSeed

GoodSeedは、MachineLearningコミュニティに対して「あえて役割を絞った」experiment trackerとして提示されている。orchestration、labeling、feature store、deploymentまで抱え込む巨大platformではなく、研究者やengineerが日々本当に必要とする作業に集中するという立場だ。つまり、runを記録し、metricを見て、configを比較し、あるtraining jobがなぜ別の結果になったのかを追跡できるだけの文脈をきちんと残すことに主眼を置いている。Reddit投稿とsiteのcopyの両方が、GoodSeedをfull ML Ops suiteではなくexperiment trackerだと明確に定義している。

技術的な中核もシンプルだ。READMEによると、GoodSeedはmetricとconfigをローカルSQLite fileに保存し、built-in HTTP serverでbrowserから閲覧できるようにする。Python APIも軽量で、ユーザーは goodseed.Run を作り、scalar configやmetric seriesを記録し、training終了時にrunを閉じればよい。storage modeは3つある。cloud はローカルSQLiteを保ちつつbackgroundでremote APIへ同期し、local は完全ローカル、disabled は書き込みをno-opにする。これにより、個人のlaptop実験からhosted accessが必要なteamまで、同じinterfaceで扱える。

巨大stackなしのmonitoring

GoodSeedのmonitoring範囲は単なるloss chartより広い。READMEとReddit投稿によれば、stdout、stderr、未処理traceback、CPUとmemory使用量、NVIDIAとAMD GPU metric、さらにactive repositoryのGit metadataまで取得できる。特にGit trackingは実務的だ。dirty state、diff、commit情報、branch、remoteが残るため、「そのときのコードはたぶんこれだった」という曖昧な記憶ではなく、具体的なsource treeの状態と実験結果を結び付けやすい。

migration面も重要だ。投稿者はRedditで、すでにGoodSeedをNeptuneの代替として使っていると述べている。project側もNeptuneのtransition materialと neptune-exporter を使ったmigration flowへ直接リンクしており、さらにNeptune proxy viewまで備える。つまり、既存runをすぐに捨てず、まずGoodSeed UIで確認しながら徐々に移行できる構成だ。

もちろんまだ初期段階ではある。READMEはbetaと明記し、Reddit投稿もremote serverが現時点では一部data typeのみ対応で、席数にも制限があると説明している。それでもこの投稿が支持を得たのは、機能を増やすよりも、ローカル保存を基本にしてexperiment trackingをきれいなdeveloper workflowとして扱いたいという需要が確かに存在することを示したからだ。