huggingfaceの.cacheの肥大化!シンボリックリンクで解決!



1. Hugging Faceキャッシュフォルダのシンボリックリンク設定方法
Hugging Faceのモデルやデータセットを利用する際、キャッシュフォルダが大きくなることがあります。特にSSDの容量が限られている場合、Dドライブなどの大容量ストレージにキャッシュを移動させるのが便利です。今回は、シンボリックリンクを使用してキャッシュフォルダを移動する方法を説明します。
1.1. 動作環境
- Windows 11
1.2. キャッシュフォルダの削除
まず、現在のキャッシュフォルダを削除します。ここでは、C:\Users\[myuser]\.cache\huggingface
を削除します。[myuser]はあなたの使用しているユーザー名を使用する。キャッシュフォルダを移動させないで削除する理由は、キャッシュフォルダのサイズが大きくなっている場合、移動させるの時間がかかるためです。私の場合はSSDを使っても2日以上かかるということがエクスプローラーかわかっていたため、あきらめて削除しました。
削除前のキャッシュフォルダサイズは147GBにもなっていることがあります。


1.3. シンボリックリンクの作成
シンボリックリンクを作成するために、管理者としてコマンドプロンプトを作成します。
次に、キャッシュフォルダをDドライブに移動し、シンボリックリンクを作成します。以下のコマンドを使用します。
mklink /D C:\Users\[myuser]\.cache\huggingface D:\model_data
このコマンドは、C:\Users\[myuser]\.cache\huggingface
とD:\model_data
をリンクさせます。[myuser]はあなたの使用しているユーザー名にしてください。これにより、キャッシュデータがDドライブに保存されるようになります。
試しに、bertのモデルを使用して、キャッシュにダウンロードしてみたいと思います。
from transformers import pipeline,set_seed
set_seed(42)
pipe = pipeline('fill-mask', model='bert-large-cased',device=0)
out=pipe("The [MASK] is sleeping peacefully on the couch, curled up in a cozy ball, with the sunlight streaming through the window and warming its fur.")
out
Dドライブにモデルが配置されたことを確認できました。
bert-large-uncasedについてはこちらで解説しています。
2. 容量の多いSSDやHDDの利用
大容量のSSDやHDDを増設してシンボリックリンクを使用することで、効率的にストレージを管理できます。この方法を利用することで、Hugging Faceのモデルやデータセットを多くのデバイスに渡って使用する際に便利です。


2.1. おすすめのSSD
おすすめのSSDのリンクを張っておきます。
2.1.1. NVMe M.2対応SSD
Crucial(クルーシャル) P3plus 1TB 3D NAND NVMe PCIe4.0 M.2 SSD
Gen4対応の2TBのSSD
Samsung 990 PRO 2TB PCIe Gen 4.0 x4
Gen4対応の4TBのSSD
Samsung 990 PRO 4TB PCIe Gen 4.0 x4
Crucial(クルーシャル) T705 1TB 3D NAND NVMe PCIe5.0
2.1.2. SATA対応SSD
fanxiang SSD 4TB SATA3.0 6Gb/s 2.5インチ
シリコンパワー 4TB SSD SATA III 2.5インチ
Samsung 870 QVO 4TB SATA 2.5インチ
WD Blue SATA SSD 内蔵 4TB 2.5インチ
2.2. おすすめHDD
Seagate BarraCuda 3.5インチ 1TB
Western Digital ウエスタンデジタル WD Blue 内蔵 HDD ハードディスク 8TB
Seagate IronWolf Pro 3.5インチ 14TB 内蔵 ハードディスク HDD
Seagate IronWolf Pro 3.5インチ 16TB 内蔵 ハードディスク HDD
Seagate IronWolf Pro 3.5インチ 22TB 内蔵 ハードディスク HDD