ChromeOS FlexでローカルAIを動かす：FlatpakとGPT4ALLの導入、そして実用性への挑戦

### はじめに：古きPCにAIの息吹を

近年、パソコンの世界は大きく変化しています。特に、クラウドとAIの進化は目覚ましく、私たちのデジタルライフに新たな可能性をもたらしています。そんな中、Googleが提供するChromeOS Flexは、古いPCを再活用し、最新のChromeOS環境で動かすことができる画期的なソリューションとして注目されています。Webブラウジングに特化していたChromebookのイメージを超え、Linux開発環境を搭載することで、より幅広いアプリケーションが利用できるようになりました。

![](https://i.imgur.com/Oz1QKqn.png)


一方で、ChatGPTのような大規模言語モデル（LLM）の登場は、AI技術を身近なものにし、私たちの生活に深く浸透し始めています。インターネット接続なしでAIを利用したい、プライバシーを保護したいといったニーズから、自分のパソコンでLLMを動かす「ローカルLLM」への関心も高まっています。

この記事では、ChromeOS Flexを導入したPCに、Flatpakという仕組みを使ってローカルLLMアプリケーション「GPT4ALL」をインストールし、実際にAIを動かしてみた体験について詳しくお伝えします。そして、その中で見えてきた性能の限界や、後の追加検証から明らかになった可能性についても考察していきます。

### 第1章：ChromeOS FlexへのFlatpak導入体験

ChromeOS FlexのLinux開発環境は、Debianという種類のLinuxをベースにした仮想的な空間（コンテナ）で動いています。通常、Linuxでは`apt`というコマンドを使ってソフトウェアをインストールしますが、Flatpakは、より多くのアプリケーションを簡単かつ安全にインストールできるようにするための便利な仕組みです。Flatpakを使うと、アプリとその動作に必要な部品（依存関係）がすべてまとめて提供されるため、複雑な設定なしに様々なアプリを動かすことができます。

![](https://i.imgur.com/1FJ6nty.jpeg)

筆者がChromeOS FlexにFlatpakを導入した手順は以下の通りです。

1.  **Linuxターミナルを開く**
    ChromeOSの画面左下にある丸いボタン（ランチャー）をクリックし、「Linuxアプリ」フォルダの中にある「ターミナル」を開きます。ここが、Linux環境を操作するための入り口です。

2.  **ソフトウェアリストの更新とアップグレード**
    Linux環境を最新の状態に保つため、最初に次のコマンドを実行しました。これは、新しいソフトウェアをインストールする前に、システムの情報を整理し、古いソフトウェアを更新するための大切な準備作業です。

    ```bash
    sudo apt update && sudo apt upgrade -y
    ```

3.  **Flatpakのインストール**
    次に、Flatpak本体をLinux環境にインストールします。

    ```bash
    sudo apt install flatpak -y
    ```

    このコマンドを実行すると、Flatpakがダウンロードされ、必要な設定が自動で行われます。

4.  **Flathubの追加**
    Flathubは、Flatpak形式のアプリがたくさん集まっている「アプリストア」のような場所です。ここから多くのアプリをインストールできるようになるので、ぜひ追加しておきましょう。

    ```bash
    flatpak --user remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
    ```

    このコマンドの`--user`という部分は、システム全体ではなく、いま使っているユーザーだけにFlathubを追加するという意味です。これにより、より安全にFlatpakを利用できます。また、`--if-not-exists`は、もしFlathubがすでに追加されていたとしても、エラーにならずに処理を続けるための便利なオプションです。

5.  **Linux開発環境の再起動**
    FlatpakのインストールとFlathubの追加が終わったら、一度Linux開発環境をシャットダウンして、もう一度起動することをおすすめします。これにより、変更がシステムにきちんと反映され、新しい設定が有効になります。ターミナルのアイコンを右クリックし、「Linuxをシャットダウン」を選んだ後、再度ターミナルを開くか、Linuxアプリを起動すれば、再起動が完了します。

これらの手順を問題なく進めることで、ChromeOS FlexのLinux開発環境にFlatpakを無事に導入することができました。この成功は、Flatpakが持つ柔軟性と、ChromeOS FlexのLinux環境の使いやすさを示しています。

#### 参考：Flatpakアプリの管理コマンド

  * **Flatpakアプリの更新**
    インストール済みのFlatpakアプリをすべて最新の状態に保つには、以下のコマンドを実行します。
    ```bash
    flatpak update
    ```
  * **Flatpakアプリのアンインストール**
    不要になったFlatpakアプリを削除するには、以下のコマンドを実行します。`org.example.ApplicationName`の部分は、アンインストールしたいアプリのIDに置き換えてください（例: `org.mozilla.firefox`）。
    ```bash
    flatpak uninstall org.example.ApplicationName
    ```
  * **インストール済みFlatpakアプリのリスト表示**
    現在インストールされているFlatpakアプリの一覧を確認するには、以下のコマンドを実行します。
    ```bash
    flatpak list
    ```

### 第2章：GPT4ALLの導入と最初の挑戦

Flatpakの準備が整ったところで、いよいよローカルLLMアプリケーションであるGPT4ALLのインストールに取り掛かりました。GPT4ALLは、インターネット接続なしでAIチャットができる便利なデスクトップアプリで、Flathubを通じて簡単に導入できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/35574/7ff2cdd3-fe4f-4f28-a942-16ac908f8ee8.png)


GPT4ALLのFlathubページ（[https://flathub.org/apps/io.gpta4all.gpt4all](https://www.google.com/search?q=https://flathub.org/apps/io.gpta4all.gpt4all)）にアクセスし、「Install」ボタンをクリックすると、「Manual Install」という項目にFlatpakでのインストールコマンドが表示されます。

筆者は、そこに表示された以下のコマンドをLinuxターミナルにコピー＆ペーストして実行しました。

```bash
flatpak install flathub io.gpta4all.gpt4all
```

このコマンドを実行すると、GPT4ALLの本体と、それに必要な部品がFlathubからダウンロードされ、自動的にインストールが進みます。今回は`-y`というオプションをつけなかったので、途中でいくつか確認のメッセージが表示されましたが、すべて「はい」と答えることでインストールは完了しました。

インストールが終わると、GPT4ALLのアイコンがChromeOSのアプリランチャーの「Linuxアプリ」フォルダの中に現れました。このアイコンをクリックすると、GPT4ALLのアプリが無事に起動しました。これで、ChromeOS Flex上で自分のパソコンで動くAIチャット環境が手に入ったことになります。

### 第3章：Lenovo A285でのGPT4ALL：モデル選びと性能検証

GPT4ALLを起動できたものの、AIとして実際に使うには、モデルと呼ばれるAIの頭脳となるデータをダウンロードする必要があります。筆者が今回使っているPCは、**Lenovo A285**という機種で、その主な性能は以下の通りです。

  * **CPU:** AMD Ryzen 5 PRO 2500U (ノートPCとしては比較的高性能な部類)
  * **メモリ:** 8GB (パソコンに最初から搭載されているメモリ)
  * **GPU:** CPUに内蔵されているグラフィック機能 (Radeon Vega 8 Graphics)

特に重要なのは、メモリが8GBという点です。GPT4ALLで使えるLLMモデルは、そのデータの大きさによって、必要とするメモリの量が異なります。モデルが大きければ大きいほど、より賢く、より自然な回答が期待できますが、その分多くのメモリが必要になります。8GBのメモリでは、8GBを超えるサイズのモデルは実質的に動かすことができません。そのため、筆者は8GBのメモリで動かせる範囲のモデルを選ぶ必要がありました。

![](https://i.imgur.com/oEuGrbd.jpeg)

#### 3.1. llama 3.2 3B instructを試す

利用できるモデルの中から、必要なメモリが4GBである「**llama 3.2 3B instruct**」モデルを選び、GPT4ALLを通じてダウンロードしました。このモデルは、8GBというメモリの制限の中で使える、比較的小さめのモデルの一つです。

モデルのダウンロードと準備が完了した後、実際に質問を投げかけ、llama 3.2 3B instructに回答させてみました。

**課題1：回答の質について**

回答は得られたものの、その内容にはいくつかの課題が見られました。一般的な知識に関する質問に対して、3B（30億パラメータ）というモデルサイズでは、期待するほどの正確さや詳細さに欠ける回答が多く、まるで人間のように自然な対話をするのは難しいと感じました。これは、モデル自体の能力の限界であり、より大規模で高性能なモデルであれば、回答の質は大きく改善される可能性が高いです。

**課題2：回答速度について**

最も気になったのは、回答にかかる時間でした。llama 3.2 3B instructという比較的小さなモデルであるにもかかわらず、質問に対する回答が出てくるまでに**約5分**もの時間がかかりました。Ryzen 5 PRO 2500Uは、ノートPCのCPUとしては決して遅い部類ではありません。しかし、LLMの推論（AIが考えたり答えを出したりする計算）には非常に多くの計算能力が必要であり、CPUだけでその処理を行うには、どうしても時間がかかってしまいます。もし、Ryzen 7 5825Uのようなより高性能なCPUを搭載していれば、この3Bモデルであれば、ここまでの時間はかからず、実用的な速度で動作する可能性は十分にあります。しかし、今回のようなCPU内蔵GPUのみの環境では、やはり高速な処理には限界があることを痛感しました。

![](https://i.imgur.com/8qvQSXM.jpeg)


**課題3：GPUの利用について**

GPT4ALLは通常、パソコンに搭載されたグラフィックボード（GPU）を利用することで、AIの処理速度を大きく向上させることができます。しかし、筆者の環境では、GPT4ALLが内蔵GPU（Radeon Vega 8 Graphics）を認識し、活用することができませんでした。これは、ChromeOS FlexのLinux環境がGPUをうまく扱えないこと、またはGPT4ALLとAMD製内蔵GPUの組み合わせに特別な設定が必要なためかもしれません。GPUが使えないため、すべての処理はCPUに頼らざるを得ず、これが回答速度の低下に直接つながっていました。

#### 3.2. LocalDocs機能の試用とパフォーマンス

GPT4ALLには、「LocalDocs」という便利な機能があります。これは、自分のパソコンにあるファイルをAIに読み込ませて、その内容について質問できる機能です。この機能の性能も試してみました。

**試したこと:**
約379KBのMarkdownファイル（テキスト形式の文書ファイル）をLocalDocs機能に読み込ませ、その内容について質問を投げかけました。

**課題4：ファイルの読み込み時間**

驚いたことに、わずか379KBのMDファイルであっても、AIがその内容を理解し、質問に答えられるようにするまでの前処理（embeddingと呼ばれる、テキストを数値に変換する作業）に**25分**もの時間がかかりました。これは、小さなファイルであっても、AIが処理するのに非常に時間がかかることを示しています。もし、もっと大きな文書やたくさんのファイルを読み込ませようとすれば、現実的な時間で終わらせることは難しいでしょう。

**課題5：LocalDocs利用時の回答速度**

さらに、読み込ませたファイルの内容についてllama 3.2 3B instructに質問を投げかけると、回答が出てくるまでに**10分以上**もかかりました。これは、通常のチャットモードよりもさらに時間がかかっており、LocalDocs機能が現在のパソコンの性能では、残念ながら実用レベルに達していないことを示しています。

### 第4章：性能検証から見えた可能性と今後の展望

今回のGPT4ALLを使ったAIの試用を通じて、ChromeOS Flex上でローカルLLMを動かすことの面白さと、現在のLenovo A285というPCの性能における限界が明確になりました。

#### 4.1. 現在の環境における限界のまとめ

  * **メモリの制限:** Lenovo A285の8GBメモリでは、4GBのllama 3.2 3B instructモデルが事実上の上限でした。AIの賢さはモデルの大きさに大きく左右されるため、メモリが少ないと、より賢いAIを使うことができません。
  * **CPUのみでの処理の限界:** ノートPC向けのCPUとしては優秀なRyzen 5 PRO 2500Uでも、GPUが使えない環境でのAIの計算は非常に時間がかかります。AIの計算は、多くの計算を同時に進めることが得意なGPU向きの処理であり、CPUだけでは、その能力を最大限に引き出すのは難しいです。
  * **GPU活用の重要性:** 今回、GPUがAIの処理に利用できなかったことは、回答速度の遅さに大きく影響しました。AIの処理においては、GPUを使うことでCPU単独の場合と比べて、何十倍、何百倍も速くなることがあります。GPUが使えないと、実用的な速度でのAI利用は非常に困難になります。
  * **LocalDocsの非実用性:** 小さなファイルを読み込ませるだけで長時間かかる現状では、LocalDocs機能は、大量の文書を扱う用途では現実的ではありません。すぐに知りたい情報をAIに質問して答えてもらう、といった使い方をするには、大幅な性能向上が必要です。

#### 4.2. 追加テストによるCPU性能の考察と可能性

これらの課題を受け、OSは異なるものの、より高性能なPCでの追加テストを実施しました。
テストに用いたPCのスペックは以下の通りです。

  * **CPU:** AMD Ryzen 7 5825U (Cinebench R23 CPUマルチコアスコア: 6713)
      * 参考：Lenovo A285のRyzen 5 PRO 2500Uは同スコアで2285
  * **メモリ:** 32GB
  * **OS:** Windows 11 Pro

この環境で、Lenovo A285で課題となった「課題4：ファイルの読み込み時間」と「課題5：LocalDocs利用時の回答速度」の2点を再検証しました。

**追加テストの結果：**

  * **課題4（ファイルの読み込み時間）:** 379KBのMDファイルのembedding処理が**8分**に短縮されました。（Lenovo A285では25分）
  * **課題5（LocalDocs利用時の回答速度）:** llama 3.2 3B instructによる回答時間が**1分**に短縮されました。（Lenovo A285では10分以上）

**考察：**

この追加テストの結果は非常に重要です。OSが異なるため直接的な比較は難しいものの、**CPU性能の向上が、特にLocalDocs機能における「ファイルの読み込み時間」と「回答速度」に大きく寄与している**ことが明らかになりました。Cinebench R23のスコアで約3倍の性能差があるRyzen 7 5825Uにすることで、処理時間が大幅に短縮され、特にLocalDocs利用時の回答速度は、現実的な時間と言えるレベルにまで改善されました。

これは、llama 3.2 3B instructのような比較的メモリ要求の少ないモデルの場合、GPUアクセラレーションが有効でなくても、**CPU性能の向上がそのままAI処理の速度向上に繋がる**ことを示しています。ファイル読み込み（embedding）は一度行えばよい処理であり、その時間が8分であれば十分に実用的な範囲です。また、その後の回答が1分で得られるのであれば、ローカルで文書を参照しながらAIに質問するという使い方も現実味を帯びてきます。

#### 4.3. より高性能なPCで広がる可能性（再考）

今回の経験から、もしもっと高性能なPCであれば、ChromeOS Flex上でもローカルLLMが十分に実用的なレベルになる可能性を強く感じています。

![](https://i.imgur.com/8xv9Ul5.jpeg)

  * **より多くのメモリ:** LLMのモデルサイズに応じて、十分なメインメモリが不可欠です。特に内蔵GPU搭載のシステムでは、GPUがメインメモリの一部をVRAMとして共有するため、利用可能なメモリ容量は実質的に減少します。例えば、16GBのモデルを安定して動かすには、システム全体で最低でも24GB〜32GB程度のメモリが望ましいでしょう。より大規模なモデル（例えば、7B、13B、あるいはそれ以上のモデル）を動かすためには、それに応じた大容量のメモリ（32GB以上が理想）を搭載したPCが推奨されます。これにより、より正確で詳細な回答が期待できるでしょう。
  * **高性能CPUと高速な内蔵GPU:** 今回の追加テストで示されたように、CPU性能の向上がLLMの処理速度に大きく影響します。特に、最近の高性能なCPUに内蔵されているGPU（例えば、AMD RyzenのRadeonグラフィックスやIntel Core UltraのArcグラフィックスなど）も、LLM推論の高速化に貢献する可能性があります。これらの高速な内蔵GPUがChromeOS FlexのLinux環境で有効に活用できるようになれば、実用的なAI処理の可能性がさらに広がるでしょう。
  * **速いSSD:** AIのモデルファイルや、LocalDocs機能で使うデータは非常に大きくなるため、データの読み書きが速いSSDが不可欠です。今回の環境ではSSDの速度がボトルネックになることはありませんでしたが、大規模なAIモデルやたくさんのデータを扱う場合には、高速なSSDが重要になります。

### まとめ：AIを身近にする次の一歩

ChromeOS FlexにFlatpakを導入し、GPT4ALLを使ってローカルAIモデルを動かすことに成功した今回の試みは、技術的な側面から見て非常に価値のあるものでした。これにより、古いPCを再活用しながら、最先端のAI技術を自分の手元で試せる道が開かれました。

Lenovo A285のような、比較的性能が高くない一般的なノートPCでは、特にメモリの容量とGPUを活用できないことが原因で、LLMの処理に時間がかかるという限界が見えました。しかし、その後の追加テストでは、**CPU性能の向上が、特にLocalDocs機能におけるファイルの読み込みと回答速度に大きな改善をもたらす**ことが明らかになりました。これは、高性能なCPUがあれば、GPUアクセラレーションがなくても、特定のLLMモデルであれば十分に実用的な速度で動作する可能性を示唆しています。

今回の経験は、ChromeOS Flexが持つ可能性と、オープンソースのAI技術が今後も進化していく未来を示唆しています。もし、より高性能なCPU、大容量のメモリ、そして高速な内蔵GPUを搭載したPCであれば、ChromeOS Flex上でもローカルLLMが十分に実用的なレベルで活躍できる可能性は十分にあると考えます。

将来的には、ChromeOS FlexのLinux環境がGPUをより簡単に使えるようになることや、AIの計算をより効率的に行う技術が進むことで、もっと多くの人が手軽に自分のPCでAIを動かし、その恩恵を受けられるようになることを期待しています。古いPCに新しい価値を与え、AIの力をより身近なものにするChromeOS Flexの進化に、これからも注目していきたいです。