ChatGPTやMicrosoft Copilotなどの生成AIサービスが便利なのは分かるが、いざ使おうと思うと「情報漏えいなどが心配」と感じていないだろうか。そんな心配がある場合、手元のWindows 10/11上でLLM(大規模言語モデル)を実行すればよい。無料な上に意外なほど簡単にLLMが実行でき、住所や名前を分割するなどのテキスト処理ができる。本Tech TIPSでは、Windows 10/11上でLLMを実行する手順を紹介しよう。
対象:Ollama+Llama-3-ELYZA-JP-8B(Windows 10/11)
ChatGPTやMicrosoft Copilot、PerplexityなどのLLM(大規模言語モデル)/生成AIサービスを利用することで、これまで面倒だった名前を「姓」と「名」に分離するなどが簡単にできるようになった(Tech TIPS「【Excel】一筋縄ではいかない『姓』と『名』を自動で分離する方法」参照)。
しかし、こうした生成AIサービスは、SaaS(Software as a Service)で提供されているため、入力データがインターネット上のどこかのサイトにアップロードされることは避けられず、どうしても情報漏えいなどのセキュリティ面で不安がある。
「姓」と「名」の分割といったテキストの加工であれば、生成AIサービスではなくLLMでも処理できる。最近では、性能や容量が限られるPCでも動作する軽量なLLMをさまざまなベンダーが開発しており、日本語を強化したものもある。こうしたLLMを手元のWindows 10/11上で実行させる「ローカルLLM」であれば、情報漏えいや利用コストを気にしなくても済む。
そこで、本Tech TIPSでは、Windows 10/11上でローカルLLMを実行する方法を紹介する。ここでは、Metaがオープンソースとして提供しているLLM「Llama 3」をベースに、ELYZAが日本語で追加学習した「Llama-3-ELYZA-JP-8B」というLLMを取り上げる。「Llama-3-ELYZA-JP-8B」は、「Llama 3ライセンス」で提供されており、月間ユーザーが7億人を超えない限り、無料で商用利用も可能だ。
Windows 10/11上でLLMを実行するためには、ローカルLLMの実行ツール(推論フレームワーク)である「Ollama」をインストールする。OllamaはMIT Licenseで無料で利用可能だ。
Webブラウザで以下のURLを開き、[Download for Windows]ボタンをクリックする。インストーラーの「OllamaSetup.exe」がダウンロードできるので、これを実行して、Ollamaをインストールする。
Ollamaのインストールが完了したら、Windowsターミナルを起動し、以下のコマンドラインを実行してみる。バージョンが表示されたら、Ollamaがインストールできている。
ollama --version
Ollamaがインストールできたら、ELYZAのLLM「Llama-3-ELYZA-JP-8B」を実行してみよう。Llama-3-ELYZA-JP-8Bは、Ollamaで実行可能な量子化済みのGGUFファイルが機械学習プラットフォーム「Hugging Face」で提供されているため、Windowsターミナルで以下のコマンドラインを実行するだけでよい。
ollama run hf.co/elyza/Llama-3-ELYZA-JP-8B-GGUF
初回のみGGUFファイル「Llama-3-ELYZA-JP-8B-GGUF」のダウンロードやモデルの読み込みなどに時間がかかるが、2回目以降はすぐにプロンプトの入力が可能になる。なお、Llama-3-ELYZA-JP-8B-GGUFの読み込みでエラーが発生した場合は、再度、上記のコマンドを実行すれば、続きから作業が実行される。
「>>> Sent a message」と表示されたら、プロンプトが入力可能だ。
このようにOllamaでLlama-3-ELYZA-JP-8Bを直接実行できる。その一方で、Llama-3-ELYZA-JP-8B-GGUFを別途ダウンロードしてOllamaに登録することで、オフライン(インターネット未接続)でLlama-3-ELYZA-JP-8Bを実行させることも可能だ。
インターネットに接続しているPCのWebブラウザでHugging Faceの「elyza/Llama-3-ELYZA-JP-8B-GGUF」ページを開いたら、[Files and versions]タブを開く。
ダウンロード可能なファイルの一覧が表示されるので、「Llama-3-ELYZA-JP-8B-q4_k_m.gguf」の右側にある[ダウンロード]アイコンをクリックする。ファイルサイズが約4.6GBあるので、ストレージ容量やダウンロード時間に気を付けてほしい。
「Llama-3-ELYZA-JP-8B-q4_k_m.gguf」がダウンロードできたら、Ollamaを実行するPCの[C:\Elyza]フォルダなど適当なフォルダにコピーしておく。このフォルダ内に次の2つのテキストファイルをメモ帳などで作成する。
{{ if .System }}<|start_header_id|>system<|end_header_id|>
{{ .System }}<|eot_id|>{{ end }}{{ if .Prompt }}<|start_header_id|>user<|end_header_id|>
{{ .Prompt }}<|eot_id|>{{ end }}<|start_header_id|>assistant<|end_header_id|>
{{ .Response }}<|eot_id|>
FROM <フォルダ名>/Llama-3-ELYZA-JP-8B-q4_k_m.gguf
TEMPLATE """
{{ if .System }}<|start_header_id|>system<|end_header_id|>
{{ .System }}<|eot_id|>{{ end }}{{ if .Prompt }}<|start_header_id|>user<|end_header_id|>
{{ .Prompt }}<|eot_id|>{{ end }}<|start_header_id|>assistant<|end_header_id|>
{{ .Response }}<|eot_id|>
"""
この2つのファイルは必ず「Llama-3-ELYZA-JP-8B-q4_k_m.gguf」を移動したフォルダ内に作成すること。
上記ファイルを用意したら、Windowsターミナルを起動し、カレントフォルダを「Llama-3-ELYZA-JP-8B-q4_k_m.gguf」のあるフォルダに移動し、以下のコマンドラインを実行して、Ollamaに「Llama-3-ELYZA-JP-8B-q4_k_m.gguf」を登録する。ここでは、「Elyza」という名前で登録しているが、名前は自分の分かりやすいものを付ければよい。
ollama create Elyza -f Modelfile
Ollamaに「Llama-3-ELYZA-JP-8B-q4_k_m.gguf」を登録したら、以下のコマンドラインを実行して、登録されているモデルを確認しよう。
ollama list
「NAME」欄に「Elyza」が表示されたら正しく登録できているので、以下のコマンドラインを実行して、「Llama-3-ELYZA-JP-8B-q4_k_m.gguf」を実行しよう。
ollama run Elyza
「>>> Sent a message」と表示されたら、プロンプトが入力可能だ。
準備ができたところで、実際にプロンプトを入力してみよう。複数行を入力したい場合は、["](ダブルクオート)キーを3回入力してから[Enter]キーを押す。入力を促す記号が「>>>」から「...」に変わるはずだ。
ここで例えば、「以下の名前を『姓』と『名』に分離し、『姓 名』の形式で出力してください」と入力し、以下に「織田信長」のような「姓」と「名」に区切り(スペースなど)がない名前の一覧をMicrosoft Excelなどからコピーして貼り付ける。再び["]キーを3回入力すると、プロンプトが入力され、「Llama-3-ELYZA-JP-8B」による処理が実行される。
しばらくすると、「姓 名」の形式で名前が出力されるはずだ。Ollamaから抜けて、PowerShellやコマンドプロンプトに戻るには、[Ctrl]+[D]キーを押せばよい。処理はローカルのPCで実行されるので、Windows 10/11を機内モードにしていても構わない。
「Llama-3-ELYZA-JP-8B」は、2023年12月31日までの情報に基づいて回答するため、最新のニュースなどに対しては正しく回答できないことがあるので注意してほしい。例えば、「次期アメリカ大統領は誰?」という質問への回答は、下画面のようなものだった。
住所から郵便番号を調べる、住所を「都道府県」「市区町村」「それ以下」に分割する、といった処理は得意なようだ。ただし、入力するデータが多いと、途中で処理が止まってしまったり、続きを出力するか聞かれたりすることもあるようなので、その場合はプロンプトを工夫してほしい。
ストレージ容量が足りなくなったなどの理由で、Ollamaに作成したモデルを削除したいような場合、Windowsターミナルを起動し、以下のコマンドラインを実行すればよい。
ollama rm <作成したモデル名>
また、Ollama自体をアンインストールしたい場合は、通常のアプリケーションと同様、[設定]アプリを起動し、[アプリ]−[インストールされているアプリ]で、「Ollama」で検索、見つかった「Ollama」の右側にある[…]アイコンをクリックして、[アンイストール]を選択すればよい。Ollamaに登録したモデルごと削除できる。
Copyright© Digital Advantage Corp. All Rights Reserved.