日鉄ソリューションズ株式会社

DataRobotからNVIDIA cuOptを使ってみた(前編)

タグ コラム

カテゴリ カスタマイズ可能なAIアプリを開発するソリューションDataRobot 業種・業界共通 業務効率化・業務自動化・業務プロセス改善 コスト削減・コスト最適化・経費削減 データドリブン経営 AI・データ利活用 デジタルソリューション&コンサルティング

NVIDIA® cuOpt™(以下cuOpt)はGPUを活用して大規模な最適化問題を高速に解く最適化ソルバーであり、2025年3月にオープンソース化されました。それと同時にNSSOLがDataRobot Japanと提供する分析・予測AIツールDataRobotからNVIDIA® cuOpt™を利用できるようになりました。本コラムでは、『予測×最適化』を実現する手段となり得る「DataRobotでのcuOptの利用」についてご紹介します。

後編:DataRobotからNVIDIA cuOptを使ってみた(後編)

データ利活用のステージは「予測」から「最適化」へ

ビジネスにおけるデータの利活用は「取得・可視化」→「分析」→「予測」→「最適化」のステージがあります。

  1. 取得・可視化:データを収集し、整理して見える化する段階
  2. 分析:集積したデータを深掘りし、要因やパターンを明らかにする段階
  3. 予測:過去のデータと分析結果をもとに、未来の状態を推定する段階
  4. 最適化:予測結果を活用し、最も効率的・効果的な行動を決定する段階

昨今、DataRobot等のAIツールの普及により、企業におけるデータの利活用は「予測」のステージまできていますが、「最適化」の部分までは着手できていない、または人が経験や勘に頼って対応している状態です。今後、データの利活用をビジネスの価値へ結びつけるために、多くの企業は「最適化」のステージへ進むと考えています。

予測×最適化のユースケース

過去データから未来を予測し、その予測結果をもとに意思決定を最適化するユースケースとして、いくつか例を挙げます。

ユースケース①:需要予測 × 生産計画最適化

予測:過去の販売データ、季節要因、キャンペーン情報をもとに未来の需要を予測
最適化:予測結果と生産能力等の条件をもとに、工場や店舗の生産スケジュールやライン配分を最適化
効果:在庫コスト削減、欠品率低下、生産ライン稼働率向上など

ユースケース②:交通量予測 × 配送ルート最適化

予測:過去の交通データ、天候、曜日、イベント情報をもとに、道路の混雑状況や所要時間を予測
最適化:予測結果と配送時間枠・積載容量をもとに、配送車の配送ルートを最適化
効果:配送時間短縮、燃料コスト削減など

ユースケース③:顧客行動予測 × マーケティング最適化

予測:過去の購買データや解約状況から、顧客の購買行動や解約リスクを予測
最適化:予測結果をもとに、マーケティング施策(キャンペーン、クーポン配布、広告配信)を最適化
効果:キャンペーンROI向上、解約率低下など

DataRobotとNVIDIA AI Enterpriseの連携

AI予測ツールの一つであるDataRobotは、NVIDIA AI Enterpriseと連携しており、DataRobotの環境にNVIDIA NIM™ マイクロサービス (以下NIM)のモデルを取り込むことができます。
DataRobotに取り込めるNIMモデルにはGPUを活用した最適化ソルバーであるcuOptのNIMモデルも含まれており、DataRobotで予測した結果をもとにcuOptのNIMモデルで最適化問題を求解することが可能です。例えば、需要予測を入力として生産計画を最適化する流れを、予測と最適化の連携として一連のパイプラインに組み込むことができます。
このように、DataRobotとNVIDIA AI Enterpriseの連携により、『予測×最適化』という新しいワークフローが一つのプラットフォームで実現されることで、ビジネスのスピードと意思決定の質を同時に高めることが期待できます。

NVIDIA cuOptとは

cuOptは、NVIDIAが提供するGPU活用型の大規模組合せ最適化ソルバーです。NVIDIAの公式ページ<cuOpt | 意思決定の最適化 | NVIDIA>には、最適化ソルバーとしてのcuOptの特徴が以下のように記載されています。

  • 混合整数線形計画法 (MILP: Mixed-integer Linear Programming)、線形計画法 (LP: Linear Programming)、配送計画問題 (VRP: Vehicle Routing Problems) の解決に適している
  • 数百万もの変数と制約を持つ大規模な問題に対処するように設計されている
  • 低精度のソリューションで十分な場合、CPU LPソルバーと比較して大幅な高速化を実感できる
  • 混合整数プログラミング ライブラリ (MIPLIB: Mixed-integer Programming Library) の記録とルーティング ベンチマークで 23 の世界記録を保持している

また、cuOptはオープンソース ソフトウェアとして提供されており、ソースコードやAPIがGitHub< GitHub - NVIDIA/cuopt: GPU accelerated decision optimization >で公開されています。

現時点でcuOptを利用する方法は大きく分けると以下の3パターンがあります。

  1. NVIDIAのAPI カタログ(Webブラウザ)上で実行(サンプルのみ)
  2. 自端末に環境を構築し、オープンソースのライブラリをインポートして実行
  3. NVIDIA AI EnterpriseのNIMモデルをデプロイし、REST APIでリクエスト実行

今回は、「3.NVIDIA AI EnterpriseのNIMモデルをデプロイし、REST APIでリクエスト実行」の一例として、DataRobotでcuOptを利用する手順についてご紹介します。

DataRobotでのcuOptの利用手順

DataRobotでのcuOptの利用手順は以下となります。

  1. DataRobot上でcuOptのNIMモデルをデプロイし、デプロイしたNIMモデルのエンドポイントやAPIキーの情報を取得する
  2. DataRobot上にデプロイしたcuOptのNIMモデルへ最適化問題を求解リクエストし、求解結果を取得するPythonプログラムを作成する
  3. ローカル環境でPythonプログラムを実行し、cuOptでの最適化問題の求解結果を確認する

上記2のcuOptのNIMモデルをREST APIで実行するPythonプログラムについては、NVIDIAのAPI カタログに公開されているサンプルコード< cuopt Model by NVIDIA | NVIDIA NIM >の「nim_client.py」が参考になります。カスタマイズが必要な点については、以下で説明します。

①求解リクエストAPI・求解結果取得APIのリクエストURL変更

サンプルコードはローカルホスト上にデプロイしたcuOptのNIMモデルに対するリクエストとなっているため、リクエストURLを変更する必要があります。
具体的には、DataRobot上でNIMモデルのベースURLが確認できるので、サンプルコードの「http://localhost:5000」の部分をベースURLに変更します。

引用:サンプルコードの求解リクエストAPIのリクエストURL部分
引用:サンプルコードの求解結果取得APIのリクエストURL部分

②求解リクエストAPI・求解結果取得APIのリクエストヘッダー追加

DataRobot上にデプロイしたNIMモデルへのリクエストにはAPIキーが必要なため、下記postやgetの引数へヘッダーを追加し、ヘッダーに"Authorization"でAPIキーを設定します。(サンプルは、ローカルホストでNIMモデルのコンテナを起動しているため、リクエスト時には認証不要で、ヘッダーを設定していないコードになっています。)リクエスト時に必要なAPIキーもDataRobot上で確認することができます。

引用:サンプルコードの求解リクエストAPIのリクエスト実行部分
引用:サンプルコードの求解結果取得APIのリクエスト実行部分

③求解リクエストAPIのリクエストペイロードを求解したい最適化問題に変更

サンプルコードの求解リクエストAPIのリクエストペイロードは、ルーティング問題(TSP、VRP、PDP)用のスキーマの例となっています。求解したい最適化問題がLPまたはMILPの場合は、LP用のスキーマの内容で設定する必要があります。
求解リクエストAPIのリクエストペイロードの設定内容については、cuOpt Open-API Reference< cuOpt Open-API Reference - Swagger — NVIDIA cuOpt (25.12) >の「POST /cuopt/request」に詳細が記載されています。

引用:サンプルコードの求解リクエストAPIのリクエストペイロード部分

前編は、「DataRobotでのcuOptの利用」の手順までをご紹介しました。後編では、実際にDataRobot上でのcuOptを実行してみた結果や、『予測×最適化』のワークフローを一つのプラットフォームで実現するイメージについてご紹介します。

本記事で引用しているサンプルコードは、下記のNVIDIA cuOpt 公式ドキュメントページより抜粋しました。
出典: https://build.nvidia.com/nvidia/nvidia-cuopt/deploy(閲覧日:2026年1月23日)
© NVIDIA Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0
http://www.apache.org/licenses/LICENSE-2.0
引用目的で必要最小限の抜粋を行い、出所と URL 、ライセンス文言を明示しています。

光野 隼人

日鉄ソリューションズ 株式会社

デジタルソリューション&コンサルティング本部

先端技術オファリングセンター

インテリジェントシステム部

お問い合わせ

ソリューション・サービス全般に関するご相談・‍お問い合わせを承っております。
お気軽にご相談ください。

相談する