「機械学習システムの技術的負債の管理」
機械学習システムの技術的負債の管理
持続可能な迅速な配信のコストを軽減するための実装コードを探索する
機械学習(ML)コミュニティが年々進化するにつれて、MLプロジェクトの開発に利用できるリソースは豊富になっています。たとえば、データの前処理や基本的な予測タスクには、NumPy、SciPy、matplotlibに基づいた一般的なPythonパッケージであるscikit-learnを利用することができます。また、さまざまな種類のデータセットを分析するための事前学習済みモデルのオープンソースコレクションをHugging Faceから活用することもできます。これらは、現在のデータサイエンティストが標準的なMLタスクを迅速かつ容易に処理しながら、適度に良いモデルのパフォーマンスを実現するのに役立っています。
しかし、MLツールの豊富さは、ビジネスステークホルダーや実践者さえも、エンタープライズレベルのMLシステムの構築に必要な労力を過小評価する原因となることがしばしばあります。特に締め切りが厳しいプロジェクトに直面した場合、チームは十分な技術的な考慮を行わずにシステムを本番環境に展開することがあります。その結果、MLシステムはしばしば技術的に持続可能かつ保守可能な方法でビジネスニーズに対応していない状態となってしまいます。
システムが進化し、時間の経過とともに展開されるにつれて、技術的な負債が蓄積されます — 暗黙のコストが放置されるほど、それを修正するためのコストはより高くなります。
MLシステムには、技術的な負債の複数の要因があります。以下にいくつかを挙げます。
#1 予期しない要件に対応するための柔軟性のないコード設計
MLが取り組むべきエンタープライズの課題に対処できるかを検証するために、多くのMLプロジェクトは概念実証(PoC)から始まります。まず、データを探索するためにJupyter NotebookやGoogle Colabの環境を作成し、その後いくつかのアドホックな関数を開発し、ステークホルダーにプロジェクトがほぼ完了したような錯覚を与えます。しかし、PoCから直接システムを構築すると、主に「接着剤コード」と呼ばれる、特定の互換性のないコンポーネントを接続するためのサポートコードが主体となることがあります。これらのコードはスパゲッティのようで、保守が困難でエラーの発生しやすいものとなります。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles