🛠️ Windowsで始めるローカルLLM環境構築：Ollamaを使ってみよう

### **はじめに**

近年、AI技術、特に大規模言語モデル（LLM）の進化は目覚ましいものがありますね。ChatGPTのようなクラウドベースのサービスが一般的ですが、実は自分のPC上でLLMを動かすことも可能です。ローカルでLLMを動かすことには、プライバシーの確保やオフラインでの利用、API利用料の削減など、様々なメリットがあります。

しかし、「ローカルでLLMを動かす」と聞くと、環境構築が難しそう...と感じる方もいらっしゃるかもしれません。モデルのダウンロード、実行環境の準備、ライブラリのインストールなど、煩雑な作業が必要になると思われがちです。

そこで今回は、Windows環境で**Ollama**というツールを使って、驚くほど簡単にローカルLLM環境を構築する方法をご紹介します。Ollamaを使えば、複雑な設定なしに様々なLLMを手軽に試すことができます。

この記事を通じて、あなたのPC上でAIが賢く応答する感動をぜひ体験してみてください！

### **Ollamaとは？**

Ollamaは、ローカル環境で大規模言語モデル(LLM)を簡単に実行するためのオープンソースツールです。様々な種類のLLM（モデルファイル）を管理し、コマンド一つでダウンロード、インストール、実行を行うことができます。

従来のローカルLLM実行では、モデルに応じたライブラリ（Transformers, Llama.cppなど）をインストールし、モデルファイルを別途ダウンロードし、さらにスクリプトを準備するなど、手間がかかる作業が多くありました。

Ollamaはこれらの工程を抽象化し、まるでDockerのようにモデルを「run」するだけで実行できる手軽さを提供します。モデルのバージョン管理や切り替えも容易になり、ローカルLLMの敷居を大きく下げてくれるツールと言えます。

### **なぜローカルLLMを動かすのか？ (Ollamaを使うメリット)**

Ollamaを使ってローカルでLLMを動かすことには、主に以下のようなメリットがあります。

1. **プライバシーの確保:** 外部のサーバーにデータを送信する必要がないため、機密情報や個人情報を含む内容でも安心して利用できます。  
2. **オフラインでの利用:** 一度モデルをダウンロードしてしまえば、インターネット接続がない環境でもLLMを利用できます。  
3. **API利用料の削減:** クラウドサービスのAPIを利用する場合、通常利用量に応じた料金が発生します。ローカルで動かせば、そういった費用はかかりません（電気代はかかりますが）。  
4. **自由なカスタマイズと実験:** 様々なモデルを手軽に切り替えて試したり、OllamaのAPIを利用して独自のアプリケーションに組み込んだりすることが容易になります。  
5. **学習と理解:** 実際に手元でモデルを動かすことで、LLMの仕組みや挙動についてより深く理解することができます。

### **動作環境・前提条件**

OllamaはWindowsを含む複数のOSに対応していますが、この記事ではWindows環境での構築方法を扱います。

* **OS:** Windows 10 以降 (64-bit)  
* **メモリ (RAM):** モデルの種類にもよりますが、最低8GB、快適に利用するには16GB以上を強く推奨します。大きなモデルを動かすには32GB以上あると望ましいです。  
* **ストレージ:** モデルファイルはサイズが大きい（数GB～数十GB）ため、十分な空き容量が必要です。  
* **GPU (推奨):** NVIDIA製のGPUがあると、推論速度が大幅に向上します。GPUがない場合でもCPUで動作しますが、処理に時間がかかります。GPUを利用するには、対応するドライバーがインストールされている必要があります。  
* **インターネット接続:** Ollamaのダウンロードおよびモデルのダウンロード時に必要です。

※ お使いのPCのスペック（特にメモリ容量とGPUの有無）によって、動かせるモデルのサイズや快適さが大きく変わります。

### **Ollamaのインストール手順 (Windows版)**

Windows版のOllamaは、インストーラーが用意されているため非常に簡単にインストールできます。

1. Ollama公式サイトへアクセス:  
   まず、以下のOllama公式サイトにアクセスします。  
   https://ollama.com/  
2. ダウンロードページへ移動し、Windows版をダウンロード:  
   サイトにアクセスしたら、「Download」ボタンを探してクリックします。ダウンロードページに移動したら、「Download for Windows」ボタンをクリックして、インストーラー（`OllamaSetup.exe`のようなファイル）をダウンロードします。  
   ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/103b9b41-2b35-445d-9d3d-d02bf6d45b97.png)
  
3. インストーラーの実行:  
   ダウンロードした`OllamaSetup.exe`ファイルを実行します。  
4. インストールウィザードの進行:  
   インストーラーが起動します。基本的に表示される指示に従って「Install」をクリックしていけば問題ありません。インストール先のフォルダを変更したい場合は適宜変更してください。  
   ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/74613723-afba-4278-83b9-12827b260a93.png)

5. インストール完了:  
   インストールが完了すると、セットアップ完了画面が表示されます。「Close」をクリックしてインストーラーを閉じます。  
   インストール後、Ollamaが自動的に起動し、バックグラウンドでサービスとして実行されるようになります。タスクトレイにOllamaのアイコンが表示されているか確認してみましょう。  
   ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/72977f7b-2552-4971-87c9-77cbb7e1d54b.png)

これでOllama自体のインストールは完了です！非常に簡単ですね。

### **モデルのダウンロードと実行方法**

Ollamaをインストールしただけでは、まだLLMは使えません。次に、利用したいモデルをダウンロードします。OllamaはコマンドプロンプトやPowerShellから操作します。

1. ターミナル（コマンドプロンプトまたはPowerShell）を開く:  
   Windowsの検索バーに「cmd」と入力してコマンドプロンプトを開くか、「powershell」と入力してPowerShellを開きます。どちらを使っても構いません。  
2. モデルを実行（初回はダウンロード）:  
   Ollamaでモデルを使うには、`ollama run <モデル名>`というコマンドを使います。例えば、軽量で汎用的なモデルであるmistralを使ってみましょう。  
   ```bash
   ollama run mistral
   ```

   このコマンドを初めて実行すると、Ollamaは自動的に指定されたモデル（この例ではmistral）がローカルにあるか確認し、なければインターネットからダウンロードを開始します。  
   ```bash
   pulling manifest
   pulling ff82381e2bea... 100% ▕████████████████████████████████████████████████████████▏ 4.1 GB
   pulling 43070e2d4e53... 100% ▕████████████████████████████████████████████████████████▏  11 KB
   pulling 491dfa501e59... 100% ▕████████████████████████████████████████████████████████▏  801 B
   pulling ed11eda7790d... 100% ▕████████████████████████████████████████████████████████▏   30 B
   pulling 42347cd80dc8... 100% ▕████████████████████████████████████████████████████████▏  485 B
   verifying sha256 digest
   writing manifest
   success
   ```

   ダウンロードには、モデルのサイズとインターネット回線速度に応じて時間がかかります。数GBあるモデルが一般的なので、しばらく待ちましょう。  
   ダウンロードと展開が完了すると、モデルが実行可能な状態になり、プロンプトが表示されます。  
   ```bash
   >>>
   ```

### **基本的な使い方と動作確認**

モデルのダウンロード・実行が完了し、`>>>` プロンプトが表示されたら、LLMとの対話を開始できます。

1. 質問を入力する:  
   プロンプト（`>>>`）に対して質問や指示を入力し、Enterキーを押します。  
   ```bash
   >>> 自己紹介をしてください
   ```

2. モデルからの応答:  
   モデルが思考し、応答を生成して表示します。  
   ```bash
   >>> 自己紹介をしてください  
   こんにちは！私はDaliaです。現在、人工知能と機械学習の分野で働きております。また、私は日本語や英語、スペイン語、ポル
   トガル語を話せます。私は、人類と人工知能の互動に関心があり、それらの間の関係性を研究しています。お手伝いできることが
   あれば、よろしくお願いします！
   ```

3. 対話を続ける:  
   続けて質問を入力することで、対話を続けることができます。  
   ```bash
   >>> Pythonで簡単なフィボナッチ数列のコードを書いてください  
   以下に、Pythonで簡単なフィボナッチ数列を生成するコード例を示します。
   
   ```python
   def fibonacci(n):
       if n <= 0:
           return "Invalid input"
       elif n == 1 or n == 2:
           return 1
       else:
           a, b = 1, 1
           for _ in range(2, n):
               a, b = b, a + b
           return b
   
   # 指定した数までのフィボナッチ数列を表示する関数
   def fibonacci_sequence(n):
       result = []
       for i in range(1, n+1):
           result.append(fibonacci(i))
       return result

   # 数列の範囲を指定してフィボナッチ数列を表示する
   fib_seq = fibonacci_sequence(10)
   print(f"The first 10 Fibonacci numbers are: {fib_seq}")
   \```
   
   このコードでは、引数に与えられた数（`n`）に応じてフィボナッチ数列を生成します。そして、指定した数までのフィボナッチ
   数列を表示する関数も含めています。
   ```

4. 対話を終了する:  
   対話を終了したい場合は、/byeと入力してEnterキーを押すか、Ctrl + Dを押します。  
   ```bash
   >>> /bye
   ```

5. インストール済みのモデルを確認する:  
   現在Ollamaにインストールされているモデルの一覧を確認するには、以下のコマンドを使います。  
   ```bash
   ollama list

   NAME              ID              SIZE      MODIFIED
   mistral:latest    f974a74358d6    4.1 GB    11 minutes ago
   ```

   このように、インストール済みのモデルとその情報が表示されます。

### **利用できるモデルについて**

Ollamaは様々な種類のLLMに対応しています。公式サイトのLibraryページで確認できます。

[https://ollama.com/library](https://ollama.com/library)

人気のモデルとしては、以下のようなものがあります。

* **llama2:** Metaが開発したオープンなLLM。様々なバリエーションがあります。  
* **mistral:** 高性能かつ比較的小さなサイズのモデル。汎用性が高いです。  
* **gemma:** Googleが開発した軽量なオープンモデル。  
* **codellama:** コード生成に特化したモデル。  
* **japanese-stablelm-instruct:** 日本語性能に優れたモデル。

モデルによっては、末尾に`:7b`や`:13b`、`:70b`といったパラメータ数を示すタグや、`:latest`、`:instruct`、`:uncensored`といったバージョンやファインチューニングの種類を示すタグが付いています。パラメータ数が多いほど高性能になる傾向がありますが、その分必要なメモリやストレージ容量も増大します。

ご自身のPCスペックに合わせて、適切なサイズのモデルを選んで試してみてください。例えば、メモリが16GB程度であれば、7Bパラメータのモデル（例: `mistral:7b`, `llama2:7b`）あたりから試すのがおすすめです。

別のモデルを試したい場合は、同様に`ollama run <試したいモデル名>`コマンドを実行すれば、Ollamaが自動でダウンロードして実行してくれます。

### **おわりに**

この記事では、Windows環境でOllamaを使ったローカルLLM環境の構築方法をご紹介しました。Ollamaのおかげで、以前に比べて格段に手軽にローカルでLLMを動かせるようになったことがお分かりいただけたかと思います。

ローカルLLMは、プライバシー面での安心感やオフラインでの利用、コスト面でのメリットなど、クラウドベースのサービスとは異なる魅力を持っています。

ぜひこの記事を参考に、あなたのPC上で様々なLLMを動かして、その可能性を探求してみてください。OllamaにはAPI機能もあり、独自のアプリケーション開発に組み込むことも可能です。