みんなのケータイ

スマホで動く1.5Mパラメータの形態素解析エンジンを作った。これも一応ローカルAI、だよね?

 近頃は大規模言語モデル(LLM)を手元のパソコンで動かすローカルAIが一部界隈で話題になっていて、高速処理には大容量メモリが必要なことから「メモリはあればあるだけいい」みたいな感じになっています。

 ただ、今のところ個人レベルで手の届く範囲のマシンだと、いくら頑張ってメモリを積もうとも、OpenAIのChatGPTやAnthropicのClaudeのようにクラウドで提供されている最新AIの能力にはかないません。

オープンな数百GB~テラバイトクラスのAIモデルもありますが、スマホは当然としてそのへんのパソコンでも扱えず、扱えたとしても能力は(おそらく)最新クラウドAIには届きません

 じゃあ、ローカルAIはまだ使い物にならないのか、というと、そうではないとも思っています。チャットや画像認識・生成などが可能なAIは非常に複雑で、実行するには高いマシン性能が求められます。しかし、ごく限られた領域の処理に特化したAIなら、必要メモリはもっと少なく済み、フツーのパソコンでも、あるいはスマホでも十分実用できるのではないかと。

 その証明となるかもしれないのが、最近筆者がClaude CodeやCodexで作った「日本語形態素解析エンジン」です。これは要するにテキストを品詞分解したりタイポを修正したりするためのライブラリなのですが、一応深層学習みたいなことをしていて、総パラメータ数約1.5Mでそれなりに実用できているのです。

自作テキストエディタに統合した自作の形態素解析機能、その名も「Sobagaki」です(形態素解析エンジンは和っぽい名前が多いので、それに合わせました)

 LLMのパラメータ数でよく聞く単位は「B」(Billion)、つまり10億。筆者が作った形態素解析エンジンは「1.5M」、150万パラメータですから、10億単位のLLMから見れば塵みたいなものです。モデルサイズ(ファイルサイズ)も計9MB弱しかありません。

 とはいえこの規模だと、パソコンは当然として、スマホでも一瞬で処理してくれます。性質上、他の一般的なLLMと単純比較はできないのですが、画像にある通りPixel 10 Proで800トークン/秒前後、パソコンで8000トークン/秒前後を処理しています。なお、正答率はMeCab(fugashi+UniDic)が「0.9963」なのに対し、自作したものは「0.9877」なので、頑張ってる方かなと。

パソコンでは8000トークン/秒前後

 そんなわけで、スマホのような(パソコンと比べれば)非力でメモリの少ない環境であっても、やり方によってはローカルAIを実用的なものにする方法はいろいろあるのかな、と思います。

 すぐ使える用途特化型の超ミニAIモデルが(そもそもニーズがないので)世の中にまだあまり存在していない、というのがネックではあるのですが、「ないならAIコーディングで作る」ことができるのが今の時代です。

 自分のやりたいことに合わせた専用AIモデルを開発すれば、仕事はもっと楽になり、クオリティも高くなるに違いありません。ただ、その自分用AIモデルの開発をしていくうちに結局さらにハイスペックなパソコンが欲しくなってしまうのですが……。やっぱり大容量メモリは大正義! なのかも。

AIモデルを作る学習処理の様子。ここに時間がかかるので、速いCPUとGPU、あとメモリも欲しくなります