
Hugging FaceのモデルをSnowflake Model Registryにインポートする機能を試してみる
データ事業本部の鈴木です。
この記事はSnowflake Advent Calendar 2025の16日目の記事です。
時代はAIということで、テキスト生成に始まり、画像や音声・動画など多岐にわたる対象に対していろんなタスクをAIが処理するようになりました。例えばHugging Faceではさまざまなモデルが公開されており、そのモデルをダウンロードすることで自分でAIアプリケーションを構築することが可能です。
例えば以下で紹介されているVLM(視覚情報と言語情報の相互関係を取り扱うAIモデル)を使えば動画から構造化した情報を取得可能ですが、Hugging Faceから直接ダウンロードしたQwen2.5-VL-7B-InstructモデルをSPCS上で実行しています。
SnowflakeでもこのHugging Faceからモデルを扱う方法がいくつかサポートされており、直近では検証済みモデルをModel Registryにインポートする機能がプレビュー提供されました。
今回は簡単にですがこのプレビュー機能がどのような使い心地なのか確認してみました。
Snowflake Model Registryについて
2024年の5月に一般提供を開始したSnowflake Model Registryは、発表当初はどちらかというと機械学習モデル向けで、小さいモデルとXGBoostなど、大きいモデルだとニューラルネットを使ったモデルを格納し、PythonやSQLで実行するための機能という印象でしたが、最近ではHugging Faceモデルなど大きなモデルのインポートも担っています。Model RegistryのモデルをSPCSへデプロイする機能もプレビューでサポートしました。
SnowflakeのHugging Faceモデル利用方法の整理
現状、大きく2つの方法で可能となっています。
1. 直接ダウンロードする方法
Hugging Faceと通信可能な環境を構築し、モデルを直接ダウンロードしてModel RegistryへアップロードしたりSPCSで利用したりできます。
以下のガイドでtransformers.Pipelineを使ったモデルのダウンロードとModel Registryへの登録方法が紹介されています。
lm_hf_model = transformers.pipeline(
task="text-generation",
model="bigscience/bloom-560m",
token="...", # Put your HuggingFace token here.
return_full_text=False,
max_new_tokens=100,
)
lmv = reg.log_model(lm_hf_model, model_name='bloom', version_name='v560m')
少し前の記事ではありますが、こちらでも紹介されていました。
モデルダウンロードをSnowflake上で実施する場合は、Hugging Faceへの外部アクセスが許可された環境下で行う必要があります。
私はSnowflakeのNotebooksでチャレンジしてみたのですが、何かしらの理由でダウンロードが上手くいかず断念してしまいました。性能が許せば、ローカルのPCなどネットワークアクセスおよびキャッシュの書き込み権限が制御しやすい環境で行うとよいかもしれません。
また、冒頭で取り上げたチュートリアルではvLLMを使いダウンロード・ホストしたモデルをSPCSで実行していました。
2. Hugging Faceからのモデルインポート機能を使う方法
記事執筆時点でプレビュー提供されている機能です。Snowflakeが検証したモデルをリストから選択し、Model Registryにインポートできます。
Hugging Faceからのモデルダウンロードや、Model Registryへのアップロードのための環境構築・プログラム作成をしなくてもSnowsightから実行可能な点が大きなメリットです。
ただしインポートできるのはリストにある検証済みモデルのみです。
Hugging Faceからのモデルインポート機能を使ってみた
1. インポートの開始
SnowsightのAI & MLメニューからModels画面を開くと、右上にImport modelボタンができているのでクリックしました。

Import modelポップアップが出るので、以下のように入力しました。今回はgpt-oss 20bをインポートしてみました。
インポート先のデータベース・スキーマも選択しておきました。

モデルは以下のようにリストから選択できました。

今回はとりあえずインポートにどの程度時間がかかるのかを試してみたかったので、Import modelを押してインポートを実行しました。

なお、現時点ではインポート時にはSYSTEM_COMPUTE_POOL_CPUコンピュートプールが使われました。このコンピュートプールは削除することもできるため、環境にない場合は再作成すれば実行できました。ない場合は以下のようにエラーがでました。

2. インポート状況の確認
インポート自体はJobが起動されて実行されました。

インポートは開始から概ね45分程度で終了しました。

今回、SYSTEM_COMPUTE_POOL_CPUコンピュートプールを再作成したのですが、CPU_X64_XSインスタンスファミリーで作成したため、性能をもっと上げるともう少し速くなるかもしれません。
3. インポートされたモデルの確認
無事にモデルがインポートされると、指定したスキーマにモデルが作成されました。
使い方は自分でModel Registryにモデルをインポートした際と同じのようです。サイズは38.5GBと大きく、さすがLLMだなというところでした。時間がかかるのも納得ですね。

最後に
以前にプレビュー提供されたModel RegistryのモデルをSPCSにデプロイする方法をご紹介しましたが、将来的にはこの機能を使ってHugging Faceモデルのインポートからコンテナでの実行を非常に簡単にできるようになると考えられます。
今回は試してみませんでしたが、インポートだけでなくデプロイまでするボタンがImport modelポップアップにあったため、気になる方は試してみてください。








