OllamaでローカルLLMを試す

Ollamaは、LlamaやGemmaなどのLLMをローカル環境で簡単に実行・管理できるツール。
現時点で、ローカルLLMを試す場合のデファクトスタンダードになっている印象。

ollama.com

Downloadに記載の通りにダウンロード・インストールする。
インストール後のバージョン。

$ ollama --version
ollama version is 0.24.0

Ollamaインストール後、どのモデルを起動するか、というところなんだけど、日本語を扱う場合はQwenが第一候補に挙がってくる。
次点Gemmaという感じなのかな(この辺は毎日のように状況変わるからな。。

各モデルのざっくり把握は、以下を参考にさせてもらった。

dev.classmethod.jp

じゃあQwenかな、と思ったものの、以下のような記事も見て、一旦Gemmaにした。まぁ、どちらも試せばいいと思ってる。

zenn.dev

ちなみに、Ollamaで利用できるモデルはこちらで確認可。

実行環境はMac mini 2023で、Apple M2のメモリ16GB。
心許ない部類なので、E2Bか、いけてE4Bなんだろうなという感じ。

モデルが決まったらOllamaで実行。

$ ollama run gemma4:e4b
pulling manifest 
pulling 4c27e0f5b5ad: 100% ▕████████████████████████████████████████████████████████████████████▏ 9.6 GB                         
pulling 7339fa418c9a: 100% ▕████████████████████████████████████████████████████████████████████▏  11 KB                         
pulling 56380ca2ab89: 100% ▕████████████████████████████████████████████████████████████████████▏   42 B                         
pulling f0988ff50a24: 100% ▕████████████████████████████████████████████████████████████████████▏  473 B                         
verifying sha256 digest 
writing manifest 
success 
>>> Send a message (/? for help)

Ollamaだけで最低限のCUIを提供してくれてるので、適当にプロンプト打ってみる。

>>> 日本語で、ローカルLLMとは何かを初心者向けに説明してください。
Thinking...
Here's a thinking process that leads to the suggested explanation:

1.  **Analyze the Request:** The user wants an explanation of "Local LLMs" (ローカルLLM) in Japanese, tailored for beginners 
(初心者向け).

2.  **Determine the Core Concept (Local LLMs):**
    *   *What is an LLM?* (A large AI model that processes language, like ChatGPT).
    *   *What is "Local"?* (Running it *on your own device* rather than sending data to a remote server/cloud).
    *   *Why is it important?* (Privacy, speed, offline capability, control).

3.  **Identify the Target Audience/Tone (Beginner/Friendly):**
    *   Avoid overly technical jargon (e.g., "transformer architecture," "inference cycle").
    *   Use analogies and simple comparisons (Cloud vs. Local).
    *   Maintain a helpful, reassuring, and easy-to-read tone.

4.  **Structure the Explanation (The "Teach Me" Flow):**

    *   **Introduction (Hook):** Start with a simple definition and an analogy. What is the *problem* local LLMs solve? 
(Reliance on the internet/Big Tech).
    *   **Part 1: What is an LLM? (The Basics):** Briefly explain what an LLM is (the engine). Use ChatGPT as the prime 
example.
    *   **Part 2: The Cloud vs. Local Comparison (The Core Difference):** This is the most crucial part. Use a physical 
analogy (e.g., calling a friend vs. whispering to yourself).
        *   *Cloud:* Needs internet, depends on others, data leaves the house (privacy risk). (Example: ChatGPT/OpenAI).
        *   *Local:* Works offline, data stays put, fully controlled. (The benefit).
    *   **Part 3: Why Use Local LLMs? (Advantages):** List the benefits clearly (Privacy, Speed, Cost/Dependence).
    *   **Part 4: Drawbacks/Considerations (The Reality Check):** Be honest that they aren't perfect (Requires good 
hardware, might be less powerful than the biggest cloud models).
    *   **Conclusion/Summary:** Recap the main point simply.

5.  **Drafting and Refining (Japanese Adaptation):**

    *   *Self-Correction during drafting:* I must make sure to explain *why* privacy is better locally. (Because the data 
doesn't leave your computer).
    *   *Adding Analogies:* Use the "データがどこに留まるか" (Where the data stays) analogy.
    *   *Tone Check:* Ensure the Japanese is natural and encouraging (e.g., using phrases like 「簡単に言うと」「〜という仕組
みです」).

6.  **Final Review:** The explanation is structured, easy to follow, uses simple language, and accurately addresses the 
technical concept for a beginner. (This leads to the final provided Japanese text). (Time check: Satisfactory length and 
detail.)
...done thinking.

ローカルLLMについてですね。AIの話題は専門用語が多くて難しく感じますが、心配いりません。

「ローカルLLM」とは、**「AIをインターネットを経由せずに、自分のパソコンやスマートフォンという場所で動かす仕組み」** のことです
。

なるべく専門用語を使わず、簡単な例を交えてご説明しますね。

---

### 🏢 1. まず、「LLM」とは何ですか?(基本のおさらい)

「LLM (Large Language Model)」とは、「大規模言語モデル」の略です。

例えるなら、**「非常に高性能で、文章のパターンを学習した脳みそ」** のようなものです。この「脳みそ」に何か質問(プロンプト)を
すると、学んだパターンに基づいて人間らしい文章を返してくれる、というのがChatGPTのようなAIの役割です。

### ☁️ 2. なぜ「ローカル」という場所が重要なのか?(クラウド vs ローカル)

AIを動かす方法には、主に2つの方法があります。この違いが「ローカル」の核心です。

#### ① クラウド型(現在主流なChatGPTなど)
一般的なAI(例:ChatGPTやCopilotなど)は、「クラウド(雲)」という場所、つまり**遠くにある巨大なデータセンターのサーバー**で動
いています。

**【仕組み】**
あなた(ユーザー)のPC ➡️ 📡 インターネット ➡️ 🌐 遠くのサーバー(クラウド) ➡️ 📡 インターネット ➡️ あなたのPC

**【イメージ】**
遠くの図書館に「プロの司書(AI)」がいて、あなたからの質問を彼が受けて、答えをインターネット経由で受け取るイメージです。

**【デメリット(セキュリティ・プライバシー面)】**
質問の内容や入力したデータは、一旦この「遠くのサーバー」に送られて処理されます。そのため、「このデータを企業が知っているのでは
ないか」「プライバシーが漏れるのではないか」という懸念が生まれるのです。

#### ② ローカル型(ローカルLLM)
ローカルLLMは、AIの処理を**あなた自身のPCや専用の機械(デバイス)の中だけで完結**させます。

**【仕組み】**
あなた(ユーザー)のPC ➡️ 🧠 **PCの内部だけで処理** ➡️ あなたのPC

**【イメージ】**
あなたが質問をすると、その「脳みそ(AI)」が**あなたのPCの内部に置いてある**ので、質問内容が外部に出ること自体がありません。

### 🕵️ 3. ローカルLLMを使うメリット3選

ローカルで動かすことによって、ユーザーにとってどのような良いことがあるのでしょうか。

#### ✅ メリット1:最高のプライバシー(最も重要)
あなたのPCからデータが外部に出ないため、非常に高いプライバシーが保証されます。企業の機密データや、個人的なメモなど、絶対に他人
に知られたくない情報を扱う場合に非常に有効です。

#### ✅ メリット2:インターネットがなくても動く(オフライン)
サーバーに接続する必要がないため、Wi-Fiが繋がらない場所(電車の中や山間部など)でもAIが使えます。

#### ✅ メリット3:動作を完全にコントロールできる(自由度)
使用するモデルのバージョンを自由に選んだり、動作の制限を細かく決めたりと、自分だけの環境でAIを動かすことができます。

### ⚠️ 4. 注意点(デメリット)

ローカルLLMは魔法ではありません。メリットが大きい分、考慮すべき点もあります。

1.  **PCのスペックが要求される:** 処理を自分のPC内で行うため、非常に高性能な「計算能力(GPUなど)」を持ったPCでないと、動作が
非常に遅くなりがちです。
2.  **モデルのサイズと性能のトレードオフ:** 本格的な最上位のモデル(例:OpenAIの最新モデル)に匹敵する性能をローカルで出すのは
非常に難しく、一般的に「多少の性能低下」を許容する必要があります。
3.  **セットアップが難しい:** 初めて使う人にとっては、モデルをダウンロードしたり、PCに設定したりする過程が、やや技術的なハード
ルを感じるかもしれません。

### 💡 まとめ

| 項目 | クラウド型(ChatGPTなど) | ローカルLLM |
| :--- | :--- | :--- |
| **動作場所** | 遠くのインターネットのサーバー | 自分のパソコンの内部 |
| **インターネット** | 必須 | 不要(オフライン可) |
| **プライバシー** | 外部送信するため懸念あり | データが外部に出ないため安全 |
| **必要なもの** | インターネット接続 | 高性能なPCスペック |
| **得意な用途** | 最高の性能が必要な場合 | **プライバシー重視、オフラインでの利用** |

簡単にまとめると、「**プライバシーと独立性**」を最も重視したい、または「**インターネットがない場所**」でAIを使いたい場合に、ロ
ーカルLLMが非常に役立つ仕組み、というのが答えとなります。

>>> Send a message (/? for help)

なるほど。思ったよりたくさん出力してきた。

ちなみにこれはgemmaのthinkingがONになってる状態。
Ollamaで実行する場合はオプションでON/OFF制御ができるようになっていて、起動時に ollama run gemma4:e4b --think=false として無効にするか、起動後に /set nothink で無効化することができる。

ollama.com

これでローカルLLMの最低限の環境ができる。
ここからより使いやすくするために、Open WebUIなどを動かしてChatGPTライクなGUIで操作できるようにするとか色々やってくといい。

ベンダー提供型のクラウドAIとうまく使い分けていけるといいね。

おひさしぶり。

6年以上前に作り始めたサイトがずっと中途半端だったんだけど、中途半端なサイトに独自ドメインを割り当ててるのも勿体ないので、めちゃくちゃシンプルな個人のランディングページをこさえて、そっちに当て替えた。

tomcky.net

コンテンツを生やすことをずっと放置している間に、AIでスキルや知識の差なんてすぐに埋まっちゃう世の中になっちゃって、なんでもいいので日々のログを残すこと、あなた(私)は何をしてきたのだろうと見返せる何か、があったほうがいいような、そうじゃないような気もしてきたので、重い腰を上げて生やしていこうと思う次第。
それの入り口としては、このような簡素なものでも十分かという気がしている。

見ての通りほぼ素のHTML/CSSだけで作ってるわけだけどCodexに全部お任せ。
Emmetつかって素早く書くことに喜びを感じていた時代もあったが最早ナニソレである。

ただ、こんなに簡素なものでも、微調整含めラフにやり取りしてたら、あっという間にレートリミットで1時間ともたなかった。ちなみにPlus契約。(日頃Claude CodeをMax 20xで使ってるから感覚がおかしい)。
あと、デザインはやっぱりむずかしい。指示するにも言語化がね。

ホスティングはCloudflare Pages。個人で初めて使ったんだが、スクショ貼りながら「これでいい?」とか「次は?」とか「エラー出てるんだけど」とか聞きながらChatGPTの言うとおりにするだけ。ベンリダナ。

ほんと、前の記事を書いてからずいぶんと様変わりした。
そもそも6年も前なので、そりゃ変わるだろうという感じではある。

そういうわけで、いろいろなことが変わり続ける世の中で、日々何かを探しながら何とか生きている。

【近況】2020-08-01

こういう雑多なのも良いかなと思って書いてます。
今後も書くかもしれないし、書かないかもしれない。

転職して1ヶ月経った

DXな会社に転職して無事1ヶ月が経ちました。
相変わらずフルリモートです。が、今度は福岡 - 東京と、物理的にもリモート不可避な状況になりました。
それぞれ得意分野を持つすごい方々に囲まれる中で、自分がどういうポジションで動いていくと良いのかを考える日々です。

route06.co.jp

一先ず腰を落ち着けてRailsやるか

Railsでサービスつくっているなう、です。Devise力がほんのちょっぴり上がりました。

Railsやったことないわけではなく、RailsでWebアプリ一通り作ってみてと言われたら作れる(と思う多分)し、誰かが作ったアプリのコードも読めはするなと思っていて。
けれども、実装のスピードはそこまで出ないし、よりベターな書き方やイディオムとかの知識は浅い、というのが現状な気がしております。
たぶん今後も技術選定でRailsという選択肢は上位に来るだろう雰囲気なので、このタイミングで浸かっておこうという気持ちです。

ということで「パーフェクト Ruby on Rails」買いました。

ブログつくってる

はてなブログの独自ドメインをやめて、Vercelにホストしたサイトに独自ドメインを割り当てたのが3月末。
流石に放置しすぎでは、ということで重い腰を上げてブログを作ろうとしているが未だ完成は見えず。
腰が重いのでサイトも重いです。

ちなみに、フロントはNext.js(TypeScript)・バックエンドはmicroCMSに丸投げしてます。
HeadlessCMSを使うことも増えそうで良い機会なので。

microcms.io

技術的な興味の話

前職辞める直前まで1年?くらいはインフラのお手伝いをさせてもらっていて、それが結構楽しかったこともあり、インフラ勉強したいですって話したりしてました(し、実際色々やらせてもらえてとても嬉しかった)。
それは割と今もあって、機会があれば、と思ってたりはします。

まぁ仮に仕事として出来なくても学ぶことはできるし、落ち着いたらまたいろいろ勉強始められたらいいなぁ。という気持ちです。

ということで

ちゃんと生きてます :)