LambdaでLightGBMを使おうとしてエラーになった話

タイトルの通りで、機械学習のAPIを作成したく、LambdaでLightGBMを使おうとしたところ、次のエラーが出てしまいました。

libgomp.so.1: cannot open shared object file: No such file or directory

libgomp.so.1は並列処理で使われる「OpenMP」に関するライブラリのようで、そのライブラリが読み込めないとのことです。

最初はLambdaでOpenMPを使う方法を模索したのですが、よくよく考えてみたらLightGBMでOpenMPを使わない方法が無いものか調べました。(学習ではなく推論なので並列処理できなくても問題は無いはず)

そして、ありました!

https://github.com/microsoft/LightGBM/tree/master/python-package#build-threadless-version

pipインストール時にオプションでOpenMPを使わないようにできました。(公式としてはOpenMPを使うことを強く推奨していますが)

pip install lightgbm --install-option=--nomp

その結果、無事LambdaでLightGBMが使えるようになりました。

少しでも役に立てば!