MLOps Academy · レッスン

PickleとJoblibでシリアライズする

sklearnモデルを安全に保存・読み込みします。

レッスン 1/413 ステップ

「PickleとJoblibでシリアライズする」はCoddyKit上の無料MLOps Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはMLOps Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 MLOps Academyコースには全4レッスンが含まれています。

モデルをシリアライズする理由

学習済みモデルはメモリ上に存在し、スクリプトが終了すると消えてしまいます。Serializationを使うとファイルに保存できるため、後から再び読み込めます。💾

pickleを使う

Python組み込みのpickleモジュールは、ほぼあらゆるオブジェクトをディスクに保存できるバイト列に変換し、後から元と同じ状態に復元できます。

モデルをディスクに書き出す

ファイルをバイナリ書き込みモードで開き、pickle.dumpを呼び出して学習済みモデルを書き込みます。

import pickle
with open('model.pkl', 'wb') as f:
    pickle.dump(model, f)

モデルを読み戻す

モデルを復元するには、ファイルをバイナリ読み込みモードで開き、pickle.loadを呼び出します。予測の準備が整った同じオブジェクトが返されます。

with open('model.pkl', 'rb') as f:
    model = pickle.load(f)

joblibが存在する理由

Scikit-learnのモデルには、大きなNumPy配列が含まれています。joblibは、通常のpickleよりもはるかに効率よくこれらの配列を保存します。🚀

joblibで保存する

joblibなら簡潔な1行で済みます。joblib.dumpにオブジェクトとファイル名を渡すだけで、手動でファイルハンドルを用意する必要はありません。

import joblib
joblib.dump(model, 'model.joblib')

joblibで読み込む

読み込み方法は保存方法と対応しています。同じファイル名を指定してjoblib.loadを呼び出すと、学習済みの推定器が返されます。

model = joblib.load('model.joblib')
model.predict(X_test)

pickleの重大な注意点

信頼できない提供元のファイルは、決してunpickleしないでください。悪意のあるpickleは、読み込んだ瞬間に任意のコードを実行できます。⚠️

バージョンを一致させる

pickleはライブラリのバージョンに依存します。別のscikit-learnバージョンでモデルを読み込むと、エラーになったり、気付かないうちに誤動作したりする可能性があります。

保存時の環境を固定する

ファイルの隣に、使用したライブラリの正確なバージョンを必ず記録してください。requirementsを固定すれば、保存したモデルを明日も同じように読み込めます。

import sklearn
print(sklearn.__version__)

pickleとjoblibのどちらを使うか

scikit-learnモデルにはjoblibを使いましょう。小さく配列を含まないPythonオブジェクトなら、通常のpickleで十分です。

理解度チェック

モデルのシリアライズについて学んだ内容を確認しましょう。

まとめ

これで、pickleとjoblibを使ってモデルを保存・再読み込みできるようになりました。sklearnにはjoblibを優先し、信頼できないファイルは決して読み込まず、バージョンを固定しましょう。🎉

無料で開始

AI チューターと学ぶ Python — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「PickleとJoblibでシリアライズする」レッスンは無料ですか?

はい。「PickleとJoblibでシリアライズする」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、MLOps Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 MLOps Academyコースには全4レッスンが含まれています。

「PickleとJoblibでシリアライズする」で何を学びますか?

sklearnモデルを安全に保存・読み込みします。 ブラウザで直接実行するハンズオンコードでMLOps Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

MLOps Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのMLOps Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「PickleとJoblibでシリアライズする」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このMLOps Academyレッスンでコードを書いて実行できますか?

はい。すべてのMLOps Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. PickleとJoblibでシリアライズする
  2. MLflow Model Flavor
  3. 移植性のためにONNXへエクスポートする
  4. モデルのシグネチャとスキーマを定義する
← MLOps Academyに戻る