24BモデルのオンデバイスAI環境を構築しました

はじめに
弊社では、外部サーバーにデータを送信するクラウドAIではなく、社内サーバーで稼働するプライベートなAIが必要という判断がありました。
このプライベートなAI(オンデバイスAI)の構築と、半年程の運用で気づいたことを記載します。
なぜオンデバイスAIが必要なのか
一部の業務委託プロジェクトでは、アプリのソースコードを社内のGitlabで管理しています。
これは必要なセキュリティ要件であり、たとえ学習に使われないとしても、クラウドAIにプロジェクトのソースコードを送信することは避けてきたことでした。
以前から契約しているAIサービスはありましたが、それを利用する場合はプロジェクトの固有名詞を隠して、ソースコードの必要な一部分に限定して切り取るなど、手間をかけていました。
そこでGitlabと同様に社内サーバーで稼働するAIを構築して、手間とリスクを抑えてAI活用できる環境を構築することになりました。
構成
構想当時、Devstralが公開されて話題になっていたこと、筆者の知識量からクラウドと同等の高性能AIは現実的じゃないと判断したことから、24Bモデルが動かせる環境を検討しました。
PC本体
MacStudio M4Max 16コア 64GBユニファイドメモリ
AIモデル(途中で変更)
Devstral-Small-2505-MLX-4bit → Devstral-Small-2507-MLX-4bit
サーバーツール
mlx_lmライブラリのserverコマンド
検証を兼ねた運用のため、エンジニア各個人の環境にAIコーディングソフトを入れたオンプレミス運用ではなく、AIが稼働している社内サーバーにVisualStudioCode + RooCodeを入れ、画面共有で各エンジニアが指定時間に作業しにくるオンデバイス運用にしました。
運用結果
結論としては、実装の精度が期待に満たないため、実務で使い続けられるレベルでは無いと判断しました。
例えば、下記のような不満点がありました。
- Typescriptの型エラーを何度も修正し続け、最終的にエラーは残っているが動作に支障は無いと結論付ける。
- テストコード生成プロンプトの中でステップ指示を書いても最後まで実行してくれない。
- 日本語の返答を指示しても日本語にならない。
量子化ビット数や量子化方式の変更、サーバーツールの変更、プロンプトの工夫など、チューニングに余地はあったかもしれませんが、より高性能なAIモデルを動かせる可能性も出てきたため、このオンデバイスAIの検証はこれで完了とします。
