3.3K Views
November 07, 24
スライド概要
JijModeling 1.8リリースパーティの発表資料です。
connpass: https://j-ij.connpass.com/event/333758/
YouTube: https://www.youtube.com/live/MToZlbekp0g
OMMXは数理最適化を実務に応用する過程で必要になるソフトウェア同士・人間同士のやりとりのためのデータ形式とSDKです。この発表ではOMMXの設計思想から機能紹介、今後の開発ロードマップについて説明します。
カニだよ(´・ω・`)
OMMX: Open Mathematical prograMming eXchange JijModeling 1.8 リリースパーティ てらモス (@termoshtt) 2024/11/07 © 2024 Jij Inc.
(再掲)数理最適化に対するJijの取り組み モデリング 数理モデルの定式化・実装 JijModeling OMMX モデルの変換 / エンコード モデルの変換・変数のエンコード 最適化 高速な最適化(アルゴリズム)/シミュレーション 分析 結果の分析 © 2024 Jij Inc. JijModeling-Transpiler Qamomile OpenJij TensorNetworkQCircuit MINTO 数理最適化の開発フロー全体を サポートするクラウドサービス
(再掲)JijModeling 1.8 リリースパーティのアウトライ ン モデリング JijModeling 数理モデルの定式化・実装 OMMX モデルの変換 / エンコード モデルの変換・変数のエンコード JijModeling-Transpiler Qamomile 今日話すのはここ! 最適化 したろう OpenJij TensorNetworkQCircuit 1. JijModelingの概要 MINTO 2. OMMXの概要 3. JijModeling 1.8 アップデート内容 高速な最適化(アルゴリズム)/シミュレーション 分析 結果の分析 てらモス © 2024 Jij Inc. 数理最適化の開発フロー全体を サポートするクラウドサービス
JijModeling 1.8 リリースパーティのアウトライン 1. JijModelingの概要 2. OMMXの概要 3. JijModeling 1.8 アップデート内容 © 2024 Jij Inc.
アウトライン ● OMMXの設計思想 ● OMMXの機能紹介 ● OMMXロードマップ © 2024 Jij Inc.
アウトライン ● OMMXの設計思想 ● OMMXの機能紹介 ● OMMXロードマップ © 2024 Jij Inc.
数理最適化 for Data Scientists 業務データ分析 pandas Jupyter SQL 数理モデル作成 JijModeling Qamomile 前処理・エンコード ● ● 複数人のチームで作業する 多くのソフトウェアを組み合わ せて使う ○ 一般的なデータ分析ツール ○ 数理最適化専用ツール © 2024 Jij Inc. SCIP 最適化 CBC Gurobi Kubeflow matplotlib 可視化・検証 MINTO
数理最適化向けデータフォーマット ● ● ソフトウェア同士でのデータ交換 ○ プログラミング言語やOSに依らないデータ形式が必要 ○ 交換するのは主に数理モデルとその解 人間同士でのデータ交換・実験データの管理 ○ 任意のタイミングで同僚とデータがやりとりできる必要がある ■ ○ © 2024 Jij Inc. 実験データの管理とは未来の自分とのやりとり どうやって作ったデータなのかを記述するメタデータが必要
OMMX: Open Mathematical prograMming eXchange OMMX Message OMMX Artifact ソフトウェア同士の交換用データ形式 人間同士の交換用パッケージ形式 OMMX SDK OMMX Adapter 多言語のソフトウェア開発環境 数理最適化ソフトウェアとの連携 OMMXを中心としたデータフローで 数理最適化の実務応用を効率化する © 2024 Jij Inc.
OMMX Components ● OMMX Message ○ Protocol Buffersベースのスキーマ付きデータ形式 ○ 数理モデル (ommx.v1.Instance) とその解 (ommx.v1.Solution) ○ Python SDKによるPandas連携 ○ 2024/7 v1 Release ● OMMX Artifact ○ コンテナベース (OCI Artifact) のメタデータ付きパッケージ形式 ○ DockerHubやGitHub Container RegistryにそのままPush/Pull可能 ○ MIPLIBのデータセット(再配布可能分のみ)もOMMX Artifactとして GitHubで配布中 © 2024 Jij Inc.
OMMX Components ● OMMX SDK ○ OMMX MessageとArtifactを操作するための各言語SDK ○ Python SDK 1.3.2 / Rust SDK 1.1.1 ■ WIP: C++ SDK / WebAssembly-based JavaScript SDK / Julia SDK ○ MPSフォーマットのサポート ■ WIP: QPLIB / LPフォーマット ● OMMX Adapter ○ 既存の数理最適化ツールとOMMXの相互連携のためのパッケージ群 ○ Python-MIP / SCIP / Fixstars Amplify -Adapters ■ WIP: Pyomo / Gurobi © 2024 Jij Inc.
アウトライン ● OMMXの設計思想 ● OMMXの機能紹介 ● OMMXロードマップ © 2024 Jij Inc.
Install OMMX Python/Rust SDK ● OSS (Apache-2.0 or MIT) ○ ● ● https://github.com/Jij-Inc/ommx Python SDKはPyPIで配布 ○ pip install ommx ○ poetry add ommx ○ uv add ommx Rust SDKは crates.ioで配布 ○ © 2024 Jij Inc. cargo install ommx
Create OMMX Message 決定変数を定義して➕と✖演算 子を使って多項式を作る © 2024 Jij Inc. ● OMMX MessageはSDKを使って操作する ● 数理モデルを簡単に作成・変換出来る ● 多項式以外 (log, exp等) は今後対応予定
Create OMMX Message ナップザック問題 比較演算子で制 約条件を作る © 2024 Jij Inc. 全部合わせて ommx.v1.Instanceに
Solve by OMMX Adapter Python-MIP Adapterで解く ommx.v1.Solutionとして解が得られる x[0] = x[3] = 1 で他は 0 この時最適値は p[0] + p[3] = 10 + 31 = 41 © 2024 Jij Inc.
Load MPS file © 2024 Jij Inc.
Load MIPLIB dataset as OMMX Artifact MIPLIBのインスタンスをOMMX ArtifactとしてGitHub Container Registryで再配布している © 2024 Jij Inc.
Compose into OMMX Artifact GitHubにアップロード するArtifactを作る Artifactにommx.v1.Instanceを追加 一つのArtifactに複数のInstanceや Solutionを追加できる GitHubにPush © 2024 Jij Inc.
アウトライン ● OMMXの設計思想 ● OMMXの機能紹介 ● OMMXロードマップ © 2024 Jij Inc.
OMMX Board / GUI Tools ● TensorBoardの数理最適化版 ● 他にも機械学習でよく使われ るツール群を数理最適化向け に移植していく 機械学習の開発体験を数理最 適化用に再構成 ● From TensorBoard Guide © 2024 Jij Inc.
OMMX Pass / “Compiler Framework” ● 数理最適化向け「コンパイラフレームワーク」 ○ 統合・連携可能な数理モデルの分析と変換を行うためのAPI群 ■ 分析例:与えられたBoundに対してある制約条件は常に満たされる ■ 変換例:他の制約の線型結合で表現できる制約を削除する ■ バイナリエンコーディング等のモデル変換 ● 実課題固有の数理モデル構造を前提とした前処理アルゴリズムを実装する必 要があるが、それをComposableにする仕組みが存在しない ● LLVM PassやDNN向けグラフコンパイラ(TVM/Glow/XLA)とのアナロジー © 2024 Jij Inc.
OMMX タイムライン/イベント 2024/7 OMMX v1 Release JijModeling 1.8 リリースパーティ Today QUBO対応 2025 C++ SDK OMMX Tutorial Gurobi Adapter OMMX Hackathon OMMX Board OMMX Pass 2026 © 2024 Jij Inc.
OMMX 開発者コミュニティ拡大中! ● OMMXとは ○ ソフトウェア・人間同士で数理最適化の データをやり取りするためのデータ形式 ○ 様々なソフトウェアと連携するためのSDK ● OMMXを中心としたデータフローで数理最適化 を実務に応用するための開発を効率化する GitHub https://github.com/Jij-Inc/ommx © 2024 Jij Inc. #ommx_日本語 https://discord.gg/BXzu2nH4 OMMXの個別相談や無料チュートリアル会は随時実施しております。 ご希望の方はアンケート、メールにてお教えくださいませ。