【ローカル】ゲーミングPCがあれば、生成AIを無料で無限に使える話【LLM】
はじめに
知ってる方にとっては当たり前の話ですが、まだまだ知らない人も多いので、ローカルLLMに関する事柄を整理しました。
ローカルLLMとは?
ローカルLLM(Large Language Model)とは、個人のパソコンやデバイスで動作する大規模言語モデルのことです。もっと簡単に説明すると、ChatGPTのようなサービスを、ローカルで無料で無制限に利用できます。
さらにクラウドベースのAIと異なり、データーはすべて自身のデバイス上に保存されるため、プライバシーや著作権の問題から開放されます。
※ たとえば、メールの返信内容を考える時に、相手のメール内容をそのままクラウド動作のChatGPTにコピペしてしまうと、情報漏えいとされる可能性があります。書籍などの著作物の利用も同じです。(OpenAIの社員に内容を知られる・AIの学習や改善に再利用される事を利用時に同意しているため)
ローカルLLMは、一般にオープンソースで公開されているので、(ライセンスの範囲内で)無料でダウンロード・利用が可能です。もちろん動作させるには、ゲーミングPC程度の高性能なパソコンと電気代が必要になりますが、それ以外は使いたい放題です。
一昔前は、簡単に利用できるGUIインタフェースが無かったため、ローカルLLMを利用するためには、Python言語で直接ライブラリを利用する方法しかありませんでした。しかし、今はOpen WebUIやLM Studioなどの高機能なGUI環境が整備され、技術者以外でもローカルLLMを本格的に利用できるようになっています。
筆者も好んで利用している(Ollama) Open WebUIを利用すると、ChatGPTクローンなGUIインターフェースでローカルLLMを利用する事ができます。
システムプロンプトにどの様なAIアシスタントであるのかの指示を登録すると、ちゃんとペルソナを演じてくれます。
どの程度のスペックのゲーミングPCが必要?
8Bモデルであれば、普及帯GPU(RTX 3050/3060/4060の8G版)で快適に動作すると思います。ただしシステムメモリは16GB以上必要です。
※ 筆者のデスクトップPCは(GTX 1660ti + 1650)の二枚刺しで運用しています。合わせるとGPUメモリが10GBになるので、軽量8Bモデルを8kトークンで動作させる分には十分実用的です。
※ GPUメモリが足りない場合でもCPUで動作させる事は可能です。しかしその場合の動作速度は1/10以下になるため、実用性はほとんどありません。
どんなローカルLLMモデルがあるのか?
オープンソースとしてhuggingfaceで入手可能な有名モデルには、
Metaが開発したLlama3/3.1
Googleが開発したGemma2
MistralとNVIDIAが開発したMistral-Nemo
Alibabaが開発したQwen2/2.5
Microsoftが開発したPhi3/3.5
それらに日本語チューニングを行った
ElyzaのElyza(Llama3ベース)
RinnaのYouko(Llama3ベース)
CyberagentのMistral-nemo-Japanese-instruct(Mistral-nemoベース)
等があります。最近のものは多言語対応になっており、日本語もそのまま利用できます。ただし、会話の中に日本語以外が混ざってしまったり、変な日本語を生成したりするので、文章作成などの日本語メインの用途の場合は、日本語チューニングモデルが必須になります。
性能はどうなのか?
AI脳細胞のようなLLMパラメータ数で比較すると、一般的なローカルLLMの規模は7B(70億)で、ChatGPT-4の規模は1,800B(1.8兆)とされているので、数百倍の差があります。
しかし性能的にそこまでの差はありません。ただし規模に相応な「おバカさん」である事も事実なので注意が必要です。
ローカルでの動作(生成)速度はどうか?
7Bモデルであれば、8GBの一般的なGPUメモリ内に収まるため、ネットで利用する時と似たような速度です。またローカル利用では、サーバー負荷に影響される事なく安定した速度を得られる事も利点です。
トークン数とは?
LLMには一度に処理(入力+回答)できる文字の上限が決まっています。たとえばLlama3では8kトークンを利用できます。英語では約1単語=1トークン強、日本語では1文字=1トークン弱です。
例えばChatGPTでは、
GPT-3.5:4kトークン
GPT-4:32kトークン
とされています。ローカルLLMも、最近リリースされたものの多くは32kが標準になっています。翻訳&要約や文章作成の実用途ではかなり影響するものです。
Visionモデル
ローカルでもVisionモデルが利用できます。VLMやマルチモーダルモデルとも言われるモデルで、LLMに視覚能力をもたせたモデルです。Flux.1等の画像生成のプロンプト作成にそのまま利用できます。
しかしながら、未だに(簡単に利用できる)日本語対応のVLMがないのが残念です。
簡単に利用できませんが、Qwen2-VL(2B)モデルを利用すると、
※ Python言語でAPIを直接利用
かなり正確に日本語の表を読み取れます。数式も読み取れ、商用に匹敵する精度だと思います。GGUF・Ollama対応が待たれます。
脱獄モデルとは?
脱獄モデルとは、Uncensoredモデルの事です。企業が作るLLMは、有害な内容や非ポリコレ内容、攻撃的なものは回答させないフェイルセーフを導入しています。それらをチューニング手法を利用して回避しているモデルです。
商用サービスでは絶対にありえない事なので、ローカル利用でしか実現できない用途の一つです。余計な制約がなくなり性能が良くなる事も多いですが、自己責任で利用してください。
ちなみに画像生成のStable Diffusionも、昔はnsfwはブロックするものがデフォルトだったのですが、今では制限を外した「脱獄モノ」が一般に利用されています。