古いラズベリーパイでクラウド費用ゼロのローカルテキスト分類器を作る
15. Mai 2026
0
Computing/SoftwareComments (0)
Log in to leave a comment
No posts yet
Log in to leave a comment
No posts yet
引き出しの隅に放り込んである第1世代のラズベリーパイやPi Zeroは、大抵の場合、扱いに困る代物です。わずか512MBのメモリでは、最近のオンデバイスAIツールを動かそうとした瞬間にデバイスがそのままフリーズしてしまいますから。毎月発生するAWSやOpenAIのAPI費用を考えると、この古物でも何とか動かしてみたいものですが、名案は浮かびません。結論から言うと、Linuxカーネルを限界まで絞り出し、90Mの超小型モデルを載せれば、24時間稼働する独立型の自動化ノードを作ることができます。速度は遅くても、お金は一銭もかかりません。
第1世代のラズベリーパイは、オペレーティングシステムがデフォルトで消費する容量を差し引くと、AI推論プロセスが使用できるスペースは300MBも残りません。不足したメモリを補うためにSDカードにデフォルトのswapファイルを割り当てる行為は自殺行為です。遅すぎる速度のせいでボトルネックが発生し、書き込み制限のあるSDカードの寿命を縮めるだけです。代わりに、RAMの一部を圧縮してディスクのように使用するLinuxカーネルのzramモジュールを組み込む必要があります。
700MHzのシングルコアARMv6プロセッサには、lz4アルゴリズムが正解です。圧縮率の高いzstdは、この老いたCPUを過熱させて壊そうとします。速度が最も速く軽量なlz4で1GB容量のzram領域を確保すれば、物理メモリ空間を最大で3倍近く節約できます。
Linuxカーネルが大規模な演算に直面した際、AIプロセスを強制終了(OOM Kill)してしまう現象も防がなければなりません。カーネルパラメータであるvm.swappinessの値を、デフォルトの60から10に下げてください。モデルの重みが物理メモリから追い出されてディスクに移動してしまう惨事を防いでくれます。ファイルシステムのメタデータがRAMを占有しないよう、vm.vfs_cache_pressureの設定は500に上げることで、プロセス空間が息を吹き返します。
ターミナルを開き、以下の設定をそのまま流し込めば、再起動なしでカーネルが固定されます。