IBMニュースレター
The DX Leaders
AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。
ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。
ほとんどのMLライブラリはモジュールで構成されているため、開発者は前処理、トレーニング、検証メトリクス、その他のタスクを処理するMLパイプラインを構築するときに、モジュールを組み合わせて使用できます。ライブラリはオープンソースで無料で使用できるものが多く、選択肢も豊富です。Githubページが1つあります。Pythonプログラミング言語だけで、このようなMLライブラリが 1,000近く集約されています。(Pythonは主流の機械学習言語として登場しましたが、MLプロジェクトはJavaScript、R、その他の言語でも見られます)。
あらゆる種類のアプリケーション用のライブラリがあります。Hugging Faceのトランスフォーマーは、事前トレーニング済みのトランスフォーマー・モデルへの簡単なアクセスを提供します。Stable-Baselines3などのライブラリは強化学習をサポートしています。機械学習ライブラリは、2つの主要なカテゴリに分類することができます。機械学習プロジェクトのフレームワークまたはプラットフォームとして機能する一般的なライブラリ。MLプロジェクトの特定の段階またはコンポーネントには、専用のライブラリーが使用できます。
IBMニュースレター
AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。
ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。
一般的な機械学習ライブラリ(「汎用フレームワーク」または「コア・プラットフォーム」とも呼ばれます)は、数十にのぼります。しかし、特に人気があり、常にランクインしている「ベスト」リストには、TensorFlow(および密接に関連するKeras)、PyTorch、scikit-learnの4つが含まれています。プロジェクトまたはチームのニーズに応じて、それぞれの強みは少し異なります。
NumPyはそれ自体がMLライブラリーではなく、すべてのMLライブラリーが構築されているライブラリーです。機械学習の核心は、大量のデータからパターンを見つけることです。NumPyは、n次元配列として知られる構造を作成するライブラリーであり、これらのデータポイントを整理し、それらに数学関数を適用するのに役立ちます(線形代数として知られる数学の分野)。これらのn次元または多次元配列(つまり、大きな操作可能な数値コンテナ)は、「テンソル」と呼ばれることもあり、MLライブラリの議論で頻繁に使用される用語です。(2次元配列は行列と呼ばれます)。
NumPyは機械学習のコアデータ構造であるテンソルを処理しますが、実際には、現代のMLのプロセッサ集約型の要求には制限が多すぎます。他の制約の中でも、NumPy(そのルーツは1990年代に遡ります)は、商用MLの取り組みが通常必要とする高度なグラフィックス プロセッシングユニット(GPU)プロセッサ(いわゆる「GPUアクセラレーション」)と「対話」するには古すぎます。
TensorFlowは、2015年にGoogle Brainチームによって最初に開発された汎用MLライブラリです。Googleがこのライブラリをオープンソース化した後、人気が高まりました。TensorFlowはCPUプロセッサーだけでなく、高性能GPUやテンソル・プロセッシング・ユニット(TPU)と呼ばれるGoogle製の特殊なプロセッサーでも動作します。
TensorFlowは、ニューラル・ネットワーク(脳の構造を模倣したもの)に依存する機械学習の変種であるディープラーニングに特に適しています。「ディープラーニング」は、インプットとアウトプットの間に複数の層が含まれるからと呼ばれています。ディープラーニングは、自然言語処理(NLP)、コンピューター・ビジョン、画像認識などの商用アプリケーションで有用であることが明らかになっています。Googleで開発され、同社の多くの商用アプリや製品に利用されているTensorFlowは、大規模なデプロイメントに優れています。
KerasはTensorFlowと密接に関連しています。Googleのエンジニアによって作成されたものですこれは、TensorFlowベースのMLプロジェクトで、よりユーザーフレンドリーなAPIを求める開発者によって通常使用されるライブラリです。2025年にリリースされたKerasのバージョンでは、PyTorchなど、TensorFlow以外の他のフレームワークのサポートが追加されました。Kerasは、広範なドキュメンテーションと役立つチュートリアルでも知られています。
PyTorchはもともと2016年後半にMetaの研究者によって開発されました。これは古いTorchライブラリのPythonポートであり、その中核にはテンソルがありました。PyTorchがLinux Foundationに動きした2022年までに、2,400人を超えるコントリビューターがPyTorchを使用したプロジェクトは150,000件を超えると報告されています。(この分野は広範なコラボレーションによって繁栄しているため、オープンソースの機械学習が主流なパラダイムです。)TensorFlowと同様に、PyTorchでも開発者はNumPyのような操作を実行できますが、CPUの代わりにGPUを使用するため、PyTorchは別のディープラーニング・フレームワークとなっています。
「PyTorchかTensorFlowか」多くの場合、機械学習の取り組みに着手する人々にとって、最初の質問となることがよくあります(以前はTheanoと呼ばれるライブラリもありましたが、2017年に廃止されました)。絶対的な答えはありませんが、PyTorchは、その柔軟で柔軟な(「Pythonic」な)デザインと使いやすさから、多くの開発者に人気が高まっています。教育機関向けや研究者の間で長年にわたって支持されてきましたが、業種・業務では野心的でスケーラブルなユースケースでも使用されることが増えています。例えば、TeslaのAutopilotはPyTorchを使用して構築され、Microsoftのクラウド・コンピューティング・プラットフォームであるAzureは、それをサポートしています。PyTorchは非常に人気があり、サポートツール(TorchvisionやTorchTextなど)のエコシステムも存在しています。)がその周辺で成長しました。TensorflowとPytorchはどちらも計算グラフ - オペレーションと変数の流れを表すデータ構造を使用しています。
IBMはPyTorch Foundationのメンバーであり、watsonxポートフォリオでPyTorchを使用しています。
Scikit-learn(小文字の「scikit-learn」で表記され、「sklearn」とも呼ばれる)は、もう1つの基礎的なMLライブラリであり、NumPyおよびデータサイエンティストに人気の科学計算をサポートするSciPyと呼ばれる関連ライブラリと相互運用できるように設計されています。Scikit-learnには、パターン認識を本質とする多数のMLアルゴリズムが含まれています。例えば、分類アルゴリズム(例:Eメールがスパムかどうかを判断するアルゴリズム)、回帰アルゴリズム(予測、forecasting、推奨システムをサポートするシステム)、クラスター・アルゴリズム(類似した項目をグループ化するアルゴリズム)などが含まれます。scikit-learnは初心者にとって機械学習の基礎(データの前処理、データパイプライン、決定木、最適化など)を学ぶのに最適な場所ですが、商用製品を作成するためのエンジンとしては限界があります。NumPyと同様、scikit-learnはGPUアクセラレーションがないため、ディープラーニング・モデルには適しておらず、「ディープラーニング・ライブラリ」とはみなされません。それでも、アイデアをテストし、プロトタイピングするための実験室としては有用です。
MLモデルの中核(本質的には学習部分)は、上記の基本ライブラリーのいずれか上で実行されます。しかし、機械学習は複雑で多段階にわたる作業であるため、ライブラリは特定のMLタスクに関連するワークフローを支援するために進化してきました。さらに、業種・業務(金融分野や医療分野など)やデータ・タイプ(画像や音声データなど)は、専用のMLライブラリーのメリットを享受するために十分に区別されています。この複雑さの結果、約1,000に上るオープンソース・ライブラリーを調べることはこの記事の目的には外れますが、特に人気のあるものをいくつか説明することは有用です。
Pandasはデータサイエンス向けの最高のPythonライブラリであり、あらゆるML作業の中核機能です。多くのMLライブラリと同様に、NumPy上に構築されています。Pandasは、Excelのスプレッドシートに似た「データ・フレーム」と呼ばれる構造を追加することで、NumPyの配列をさらに進化させています。この追加された構造により、実世界のデータの大規模なデータセットに対してデータ操作を実行することが可能になります。
matplotlibとseabornは、データの可視化からパターンと洞察を明らかにすることを目的とした、2つの人気のあるデータ可視化ライブラリです。前者はプロットとグラフを生成し、後者はその上にあり、少しML向けです(例えば、seabonはpandasのデータフレームを直接使用できます)。
実行可能な機械学習の取り組みを開始するには、多くの実験と試行錯誤が必要です。そのため、ライブラリMLFlowは、チームがMLモデル、パラメータ、成果をログに記録し、デバッグ作業を管理して、トレーニング済みのモデルをすぐに出荷できる状態に動き移行するのに役立ちます。