生成AIのためのコンポーネントをパッケージングするKitOpsの解説動画を紹介

Cloud Native Computing Foundation(CNCF)が公開しているWebinarから、生成AIのパッケージングの標準を目指してオープンソースとして公開されているKitOpsの解説動画を紹介する。タイトルは「KitOps:AI Model Packaging Standards」、プレゼンテーションを行ったのはBrad Micklea氏でKitOpsプロジェクトのメインテナーだ。Jozu.comは機械学習アプリケーションをパッケージングするオープンソースソフトウェアであるKitOpsの開発元で、すでにCNCFのサンドボックスプロジェクトに採択されるべく2024年11月のKubeCon NAのタイミングでCNCFに申請を行っている。
●動画:KitOps: AI Model Packaging Standards
●参考:We're submitting KitOps to the CNCF - Jozu MLOps
日本人ならピンと来る通り、Jozu.comという名称は日本語の「上手」が由来だそうだ。
KitOpsが何を目指しているのかについてはJozu.comのWebサイトに掲載されているダイアグラムがわかりやすいだろう。
機械学習のための開発、ここではJupyter Notebookを使ってデータを処理するコードを書いてモデルの学習を行うことを例として挙げているが、その後の行程としてコードのパッケージ、検証、本番環境への実装までをJozuが担い、推論と運用はその後のプロセスが担当するというフローが描かれている。つまりデータサイエンティストの仕事と運用担当の仕事の間を、Jozuがプラットフォームとして受け持つということになる。その際のパッケージの部分をKitOps、より正確にはOCI準拠のパッケージフォーマット、ModelKitというパッケージが使われるという意味だろう。
ただ、ここで少しわかりづらいのは、Jozuはプラットフォームであり、OSSのKitOpsをそのツールとして使い、Jozu.comはSaaSとしてJozuのホスティング、より正確に書けばKitOpsが利用するパッケージフォーマットのModelKitをホストする有償のサービスであるということだろう。またJozuはドバイに本社を持つAkara Technologies, Inc.がオーナーシップを持つとJozu.comのサイトには記載されているため、Akara TechnologiesがJozu.comに出資を行っているという意味だと想定できる。Brad Micklea氏はその投資を受ける側の責任者という立場だろう。
この2つのスクリーンショットはJozu.comのサイトからの引用なので、より正確に理解したい場合はJozu.comを参照して欲しい。
具体的に何をすればいいのか? については以下のチュートリアルが参考になるだろう。
●参考:A Guide to Machine Learning System Design and Best Practices
ここで機械学習において必要とされるモデル、パラメータ、データセット、そしてそれらを操作するプログラムコード、さらにこのアプリケーションを解説するドキュメントなどの成果物(Artifact)が、さまざまなリポジトリに散在するという状況が問題を発生させていると解説。通常のソフトウェアとは異なり、モデル、パラメータ、データセットが生成AIにおいては重要だが、それが企業においてはコンプライアンスの問題やデベロッパーのマシンでは動くのに本番環境では動かないといった環境依存問題に繋がると指摘した。
そしてモデルのバージョン管理、構成管理が一元的に行えないことで生成AIを実装し、追跡監視することが難しいというコメントを使って、この問題が想像上のものではないことを紹介した。もっとも、ここでコメント主の実名や企業名が明らかにされていないのは残念と言える。
続いて、上述の問題を解決するためのツールであるKitOpsを紹介。KitOpsの中核はOCIに準拠したコンテナフォーマットであるKitModelであると解説。ここで重要なのは、AI開発のためにこれまで使ってきたツールはそのまま使えることだろう。ツールはそのまま使いながら、成果物をOCIでパッケージすることで成果物の統一的な管理が可能になるというのが利点だ。
実際の使用例として、JozuのユーザーインターフェースでDeepSeek-R1をパッケージする部分を紹介した。ここではKitModelの中身としてDeepseekを使い、OCI 1.1に準拠したレジストリーからコンテナイメージをプルしている。
さらにModelKitをどこで実行するのかについてはDocker、Kubernetesなどから選択し、実装に必要な構成情報もYAMLの形式で格納できることを解説。単にパッケージングするだけではなくその実装についても情報を取り込むことが可能になっている。
改ざんに対して耐性が高く、署名を行うことが可能で属性を可視化し、生成AIのための唯一の情報源となれることを説明した。そしてこれまで機械学習のための成果物を検証可能にするためにリポジトリをフォークして自社のセキュアなストレージに格納していたというドイツのシステムインテグレータのコメントを引用し、KitOpsによってその必要がなくなったことを紹介した。ここでもコメント主が匿名になっているのは残念だ。
KitOpsのようなAIの成果物を統一的に管理することの必要性については、ビジネス側のニーズとソフトウェア開発における技術的なニーズが高まってきたことが背景にあると解説。特にここではヨーロッパのAIに対する規制や問題発生時の補償について言及されている辺りに、生成AIがビジネスに与えるインパクトの大きさを示していると言える。
KitOpsと同じような機能を果たすツールやサービスについても比較を行っている。ここではGitLab、SonatypeのNexusリポジトリ、Hugging Face、MLFlowのツールなどを比較対象として評価している。ここでの指標はベンダーニュートラルでオープンなフォーマットかどうか、すべての成果物を管理できるかどうか、巨大なモデルやデータセットを管理できるか、そして自動的に実装可能なプロジェクトに変換できるか、などを挙げている。
ここから2枚のスライドでは、企業の中でAI/機械学習アプリが開発から実装されるまでのプロセスを分解しながら、KitOps(ModelKit)とプラットフォームであるJozuの役割を解説した。プラットフォームエンジニアが機械学習のための環境を用意するとことから始まっているのは、ModelKitのテンプレートを紹介したかったということだろう。その上でJupyter Notebookを使ってモデルを開発、MLFlowでテスト、そのテストに合格したらAIを利用する外部のアプリケーションを開発するデベロッパーに移行し、実行可能なイメージに変換したのちに本番環境に実装という流れだ。新しいバージョンのアプリケーションが出てきた時には、古いバージョンにタグを付けて古いバージョンであることを明示したうえで新しいソフトウェアと置き換えるというところまでを解説した。ここで環境を作る部分と最後に古いバージョンをリタイアさせるところまでが記載されているのは、常にデータセットやモデルが更新されていくのが生成AIにおいては必須であることを示しているといえる。
次のスライドではKitOpsの中核となるModelKitの内部構成について、Kitfile、Modelkit Manifest、モデル、コード、データセット、ドキュメントによって構成されていることを説明した。
ModelKitのレシピとなるKitfileについても例を示しながら説明を行った。
KitOpsがどれだけダウンロードされているのかについて、2023年4月から始まる折れ線グラフでその増加を紹介。4月から始まったダウンロード数は、2024年1月の段階で5万回に届く勢いで増えていると説明した。
この数字が多いかどうかは評価が分かれるところだが、少なくともAIと機械学習アプリの開発と運用を橋渡しするという空白地帯を埋めるという位置付けのソフトウェアとしては、健闘していると言えるのではないだろうか。
さらに、これまでのリリースについても解説を行った。ここでは2024年Q1からさまざまな機能追加が行われたこと、2024年Q4にCNCFにサンドボックスプロジェクトとして申請を行ったことなどが説明されたが、CNCFのAIにおけるモデルパッケージングに関する仕様策定にも関わっていることが示されているため、CNCFの標準仕様としてKitOps/ModelKitが採用される可能性は高いと想定するのが妥当だろう。
最後にKitOpsによって開発の繰り返しの間隔、つまり開発からテスト、実装を繰り返す際に必要となる最低限の時間についても解説し、平均で3.4日が削減されたと説明。ここに関しても、もう少し具体的にどのプロセスからどれだけの時間が削減できたのかを母数とともに解説してあれば、よりそのデータの信頼性が増しただろう。またリスクについてもコンプライアンス違反が防げた件数なども併せて紹介できていれば尚良いといったところだろうが、実際問題としてそこまで定量的な数値が取れていないというのが実態ではないだろうか。
生成AI、機械学習アプリケーションによって新たに生まれてしまった問題点を解決するために、OCIを使って成果物をパッケージングするKitOpsとそれを支えるSaaSとしてのJozuには、引き続き注目をして行きたい。
●KitOpsのGitHubページ:https://github.com/jozu-ai/kitops
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- Red Hat Summit 2019で訊いたAPI管理と開発ツールがRed Hatにとって重要な理由
- AI_dev Europe 2024開催、キーノートとMOFを解説したセッションを紹介
- Open Source Summit Japan 2023から、組込系システムにおけるサプライチェーンに関するセッションを紹介
- KubeCon Europe 2024開催。前日に開催されたAIに特化したミニカンファレンスを紹介
- 「Open Source Forum 2019」開催 ― CI/CDの標準化やプロダクションAIのためのエコシステムなど解説
- AI_devよりエグゼクティブディレクターのIbrahim Haddad氏にインタビュー
- CNDO 2021、サイバーエージェントのテックリードがコンテナランタイムの最新情報を解説
- KubeCon+CloudNativeCon NA 2023の併催イベントCloud Native Wasm Dayのキーノートを紹介
- 「Cloud Native Trail Map」の10ステップを紐解く(ステップ8~10)
- 「CNCF 技術展望レーダー」日本語版を公開 ークラウドネイティブ技術の利用動向をエンジニア対象に調査、ほか