ローカル言語モデルについてざっくばらんに調べてことをまとめます。
この界隈には明るくないため間違いが含まれるかもしれません。また、あくまで概観なので細かいやり方等は各公式、ほか記事にお任せします。
実際に動作を試したものもあるので念のためスペック。GPUは内蔵なうえ多分使ってないので割愛。
OS: Windows 11 25H2
CPU: 12th Gen Intel(R) Core(TM) i7-1260P (2.10 GHz)
RAM: 16.0GB
LLMとSLMについて
LLM (Large Language Model): 大規模言語モデル
SLM (Small Language Model): 小規模言語モデル
Copilotの説明
大規模言語モデル(LLM)と小規模言語モデルの違いは、主に以下のポイントで説明できます:
- パラメータ数とモデルサイズ
大規模言語モデル
数十億〜数兆のパラメータを持ちます。例:GPT-4、PaLM、Claudeなど。
→ 膨大なデータを学習しており、複雑な推論や多様なタスクに対応可能。
小規模言語モデル
数百万〜数億程度のパラメータ。
→ 軽量で、特定のタスクに特化しやすい。
- 計算リソース
大規模モデル
高性能GPUやTPUが必要で、推論にも大きなメモリと計算力が必要。
→ クラウドや専用サーバーでの運用が一般的。
小規模モデル
CPUや低スペックGPUでも動作可能。
→ エッジデバイスやオンプレミス環境で利用しやすい。
- 性能と汎用性
大規模モデル
高精度で多言語対応、創造的な文章生成や複雑な質問応答が得意。
→ ただし、コストが高く、応答速度が遅くなる場合も。
小規模モデル
特定領域に特化すれば高速で効率的。
→ 一般的な知識や複雑な推論は苦手。
- 学習データ
大規模モデル
インターネット全体や巨大なコーパスを利用。
小規模モデル
限定的なデータセットやドメイン特化データで学習。
- 利用シーン
大規模モデル
汎用AIアシスタント、翻訳、コード生成、クリエイティブ用途。
小規模モデル
チャットボット、FAQ対応、組み込みシステム、プライバシー重視の環境。
✅ まとめると:
大規模モデル=高性能・高コスト・汎用性
小規模モデル=軽量・低コスト・特化型
実行環境
モデルを動かすためのツールやフレームワークまとめ
llama.cpp
モデルを動かすためのエンジン。CLIが用意されており直接使うこともできるが、手軽にやるなら後述のOllama、LM Studioが良さそう。
Ollama
CLIツール。内部ではllama.cppが動作しているらしい。
LM Studio
GUIツール。Ollama同様エンジンはllama.cpp。
Docker Model Runner
Hugging Face
他のツールを使う場合もここからモデルを取得できる。Docker Hubみたいなもん?
TransformersというPythonフレームワークでモデルを動かせる。
Transformers: https://github.com/huggingface/transformers
こんな感じでモデルによってはチュートリアルが用意されている。
代表的なモデル
Phi
Microsoft製。Phi-3はSLM、Phi-4はLLM。
Phi-3: https://huggingface.co/collections/microsoft/phi-3
Phi-4: https://huggingface.co/collections/microsoft/phi-4
Phi 3 Mini 4k Instructは手元のWindowsでサクッと動いた。日本語では聞く内容によってはしどろもどろになるが、チューニング次第で使えるものにはなるか?
「大規模言語モデルと小規模言語モデルの違いについて教えてください。」の回答
大規模言語モデル(大型言語モデル)と小規模言語モデル(中小型言語モデル)は、それぞれ特徴を持っています。
-
サイズ:大規模言語モデルは通常、数百万から数十億のトークンに関する重み付き統計が存在し、膨大な量のテキストデータを学習
できます。一方、小規模モデルは数百から数千のトークンに対して関連付けることが可能です。 -
パラレル訓練:大型モデルはパラレル訓練を通じて、ゼロショットの精度を向上させます。小型モデルはこの方法が適用されること
が多いです。
incomplete question -
計算資源:大型言語モデルはより多くの計算資源(例えば、GPUやTPU)を要します。小型モデルにとっては、それほどの計算資源が
不要であることが一般的です。 -
学習時間:大型モデルは長い学習時間を要します。例えば、BERTやGPTなどのモデルは数ヶ月から数ヶ年かけてトレーニングが必要
です。小型モデルはより迅速にトレーニングが可能です。 -
コスト:大型言語モデルは経済的なコスト(サポート費用、オフィス空間など)を予算に与える必要があります。小型モデルはこれ
らのコストを削減できることが多いです。 -
実用性:大型言語モデルは、テキストの理解度が高く、より正確な質素提供が可能です。一方で、小型モデルは特定のタスクに対し
て適切な表現を学習するために有用です。 -
最新性:大型モデルは頻繁に更新が必要で、それにより最新な言語使いのトレンドを反映することが期待されます。小型モデルは一
般的に更新不能であり、最新化には注意を払わなければなりません。 -
アクセス:大型モデルが公開されている場合、高速インタフェースの提供が期待されますが、小型モデルではそうした機能をサポー
トしにくいことがあります。 -
使用範囲:大型モデルはより広い言語分析の範囲で使えるため、多様な言語やジャンルを仕事にすることが容易です。小型モデルは
特定のドメインやタスクに限られています。 -
モビリティ:大型モデルは更新や導入に必要な時間が長く、維持コストが高いことがあります。一方で、小型モデルの適用を更新
しても比較的安価であり、維持コストは低減されることが期待されます。
これらの違いについてよく理解することで、特定のニーズや目的に最も適したモデルを選択することが可能です。
続けて、「3項目に要約してください。」の回答
以下、特定の観点から大規模言語モデルと小規模言語モデルの違いをまず3項目(サイズ、計算資源、コスト)に焦点をあてる形で要約
します。
- サイズ:
大規模モデルは、数百万から数十億のトークンが関連付けられる膨大な重みを持ち、より高いテキスト解析能力を有しています。一方
で、小規模モデルはパラレル訓練によりゼロショットのレビューや機能付きAIの生成が可能な上限を持ちます。
- 計算資源:
大規模モデルは、GPUやTPUなどの高性能計算資源を必要とするため、その運用が支払いに占有します。小規模モデルはこれらの計算資
源を一律必要とせず、コンピュータの半高性能なプロセッサでも十分に動作します。
- コスト:
大規模モデルは経済的なコスト(サポート費用、オフィス空間、高い計算資源の運用費)が予算に影rsすることがあります。そのため
、小規模モデルは迅速な開発を促し、コスト効率が高いです。また、大規模モデルの更新やメンテナンスにはそれほどのコストを支払
う必要があることもあります。
以上で、3項目で言えば大規模モデルはサイズが大きく、計算資源とコストの予算が大きいですが、それにも関わらず高い精度を提供し
ます。一方で小規模モデルはサイズや計算資源の要求が少ないと同時にコスト効率も良いので、特定のニーズに合わせた使用が適して
います。
Gemma
Google製 LLM。
Gemma 3: https://huggingface.co/collections/google/gemma-3-release
gpt-oss
Open AI製 LLM。
gpt-oss: https://huggingface.co/collections/openai/gpt-oss
gpt-oss-safeguard: https://huggingface.co/collections/openai/gpt-oss-safeguard
gpt-oss-20bは16GBメモリのエッジデバイスでも動作するといううたい文句だが手元のWindowsでは展開時に固まって動かなかった。中規模LLMだけあってある程度余裕のあるスペックのほうが良さそう。Apple sillicon Macでは動くかも。
Llama
Meta製 LLM。
ファインチューニング
小規模モデルでもかなりのスペックを要求されるためまだ試せず。手元の良いスペックのPCがないのでAzure Machine Learningとか?
Phiのファインチューニング
手法については通常、LoRA、qLoRAの3パターンあるらしい。詳細はリンク参照。
Azure Machine Learningでファインチューニング