ローカルLLMのすすめ

この記事は [都市大 Advent Calendar 2024](https://adventar.org/calendars/10970) 19日目の記事です。

## はじめに

こんにちは！
社会メディア学科4年（2024年現在）の木本です。

アドカレ遅れてごめんなさい！卒論に追われていました。

この記事は「ローカルでLLMを使おうぜ！」という趣旨の記事です。

## LLMとは

みなさん「ChatGPT」はご存知ですか？ご存知ですよね。それです。

中には「Claude」を使っているという方もいると思います。

上に挙げたようなLLMは、自然言語を理解・生成する能力を持つ機械学習モデルの一種です。

「ChatGPT」や「Claude」は、各サービスを運営する会社のサーバーで動作しています。
無料版のサービスでは一部機能制限があったり、1日の上限が決まっていたりするのは、他者のリソースを利用しているからなんですね。

そんなLLM、実はローカル（自分のPC上）でも動くんです！

早速やってみましょう。

今回はOllamaを利用します。

## 3行で簡単に説明

- Ollama をインストールする
- Ollama で利用するモデルをダウンロードする
- 使う

## 手順

Ollamaは、ローカル環境で動作する大規模言語モデル（LLM）を簡単に利用できるようにするためのツールです。

### 1. インストール

https://ollama.com/

上記のサイトからインストーラが入手できます。

インストーラをダウンロードしたら、インストールしてください。

- Macの場合
    - `Ollama.app` をアプリケーションフォルダに移動後、開いてインストール
- Windowsの場合
    - `OllamaSetup.exe`を開いてインストール

インストールが完了すると`Run your first model`と書かれた画面が出てくると思います。

### 2. ターミナルを開く

- Macの場合
    - `ターミナル` という名前のアプリを開く
- Windowsの場合
    - `PowerShell` を起動してください

### 3. モデルのインストール

利用したいモデルを自分で選んでインストールできます。

モデルがまだPCにインストールされていない場合、以下のコマンドを実行するだけで、自動的にインストールが行われます。

```
ollama run [利用したいモデルの名前]
```

Ollamaの[README.md](https://github.com/ollama/ollama/blob/main/README.md#model-library)では、利用可能なモデルとして以下を抜粋しています。

`Model` はモデル名。
`Parameters` はパラメータ数。パラメータが大きくなればなるほど賢いLLMが利用できると思ってください。
`Size`はモデルの大きさです。PCの容量と相談しましょう。

これらのモデル以外も利用可能ですが、今回はこの中から Llama 3.2のパラメータ1Bモデル（サイズ 1.3GB）をインストールしてみます。

以下のコマンドを実行してインストールします。

```
ollama run llama3.2:1b
```

| Model              | Parameters | Size  | Download                       | 
| ------------------ | ---------- | ----- | ------------------------------ | 
| Llama 3.3          | 70B        | 43GB  | ollama run llama3.3            | 
| Llama 3.2          | 3B         | 2.0GB | ollama run llama3.2            | 
| Llama 3.2          | 1B         | 1.3GB | ollama run llama3.2:1b         | 
| Llama 3.2 Vision   | 11B        | 7.9GB | ollama run llama3.2-vision     | 
| Llama 3.2 Vision   | 90B        | 55GB  | ollama run llama3.2-vision:90b | 
| Llama 3.1          | 8B         | 4.7GB | ollama run llama3.1            | 
| Llama 3.1          | 405B       | 231GB | ollama run llama3.1:405b       | 
| Phi 3 Mini         | 3.8B       | 2.3GB | ollama run phi3                | 
| Phi 3 Medium       | 14B        | 7.9GB | ollama run phi3:medium         | 
| Gemma 2            | 2B         | 1.6GB | ollama run gemma2:2b           | 
| Gemma 2            | 9B         | 5.5GB | ollama run gemma2              | 
| Gemma 2            | 27B        | 16GB  | ollama run gemma2:27b          | 
| Mistral            | 7B         | 4.1GB | ollama run mistral             | 
| Moondream 2        | 1.4B       | 829MB | ollama run moondream           | 
| Neural Chat        | 7B         | 4.1GB | ollama run neural-chat         | 
| Starling           | 7B         | 4.1GB | ollama run starling-lm         | 
| Code Llama         | 7B         | 3.8GB | ollama run codellama           | 
| Llama 2 Uncensored | 7B         | 3.8GB | ollama run llama2-uncensored   | 
| LLaVA              | 7B         | 4.5GB | ollama run llava               | 
| Solar              | 10.7B      | 6.1GB | ollama run solar               | 

以下のように、`success`の文字が表示されればインストール完了です！

![スクリーンショット 2024-12-25 21.05.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203924/960e439d-3024-325b-d627-5e476e408b8f.png)

### 4. LLMを利用する

インストール後はすでに`Send a message`の文字が出ていると思います。

そこに文章を入力してみると以下のようになります。

つ、使える…！このLLMがあなたのPC上で動いています！

…とはいうものの、ちょっと日本語が怪しいですね。パラメータ1Bの1.3GBしかないモデルですので、これくらいの性能なのは仕方ないです。

![スクリーンショット 2024-12-25 21.13.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203924/f172dbd0-318b-bdda-5f7a-104ae5a1441a.png)

今回は`llama3.2:1b`を利用しましたが、例えば、`elyza:jp8b`という日本語に特化した5GBくらいのモデルを使うとさらに高度な会話ができるようになります。
色々なモデルを試して遊んでみましょう！

![スクリーンショット 2024-12-25 21.23.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203924/aa00d388-b894-0767-8327-ecf56516e0de.png)

次回以降OllamaでLLMを利用する際は、インストールと同じコマンドを実行してください。
モデルがインストールされていれば、すぐにLLMを利用できます。

```
ollama run [利用したいモデルの名前]
```

## おわりに

せっかくなので、先ほど紹介した `elyza:jp8b` に書いてもらいました。

大体言いたいことを言ってくれています。すごい。

興味を持った方はぜひ試してみてください！

![スクリーンショット 2024-12-25 21.32.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203924/eceba8db-d9f6-052f-d3f9-3a822a5ba971.png)

## 宣伝

私が所属しているサークル「[東京都市大学デジタルコンテンツ研究会](https://tcu-dc.net/)」をよろしくお願いします。

みんなでプログラミング、DTM、イラスト、動画制作などを行なっています！
ご興味ある都市大生はぜひ！

（実はHPのリニューアル計画を進めていて、新HPが2025年1月に公開される予定です…！）
（頑張ったので見て…！）

![tcu-dc-web-preview.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203924/c8b92abc-5e95-bec8-1669-ce92049fa6d4.png)