Open5
phi4 + Ollama、ローカルLLM に挑戦

概要
- ローカルLLM + phi4 + Ollama、 環境を構築するメモになります。
- Ollamaは、windows版を使う例です。
- PCは、 RAM 32GB (GPUなし)
[ 公開 2025/01/11 ]
構成
- Ollama
- phi4
- ollama-ui (chrome機能拡張)
- phi4 (14B)
- 約 9.1 GB
- ダウンロード時間 約18分ほど
- 起動コマンド
ollama run phi4
- ollama list
PS C:\Users\user1> ollama list
NAME ID SIZE MODIFIED
phi4:latest ac896e5b8b34 9.1 GB 12 hours ago
- 試しプロンプト
>>> 日本語わかりますか?
はい、私は日本語を理解しています。何か質問がある場合や、お手伝いが必要なことがあれば、どうぞお気軽にお尋ねください!
web画面 (ollama-ui)
-
とりあえず、chrome機能拡張を追加しました。
-
https://chromewebstore.google.com/detail/ollama-ui/cmgdpmlhgjhoadnonobjeekmfcehffco
-
chat保存できそうでした。
-
問い合わせ後、PC のCPU負荷: 70~90%ほど上昇しました。
-
出力速度が遅く。長文の場合は。長時間 生成される。
- コード生成 試す
- プロンプト:軽めの React 画面
コード生成して欲しいです。
TODOアプリ、
React , tailwindCSS 使用したいです。
・TODOの追加機能を、追加したい
- 出力
もちろんです!以下はReactとTailwind CSSを使った簡単なTODOアプリケーションのコード例です。このサンプルでは、新しいTODOを追加する機能を実装しています。
準備
まず、ReactとTailwind CSSが導入された環境で作業します。以下のようにcreate-react-appとTailwind CSSをセットアップすることができます:
Create React App
npx create-react-app todo-app
cd todo-app
Tailwind CSS をインストール
npm install tailwindcss postcss autoprefixer
npx tailwindcss init -p
tailwind.config.js と styles.css の編集
tailwind.config.jsを以下のように設定します:
module.exports = {
content: [
"./src/**/*.{js,jsx,ts,tsx}",
],
theme: {
extend: {},
},
plugins: [],
};
src/index.cssを以下のように書き換えます:
@tailwind base;
@tailwind components;
@tailwind utilities;
アプリケーションコード
以下は、TODO追加機能を含む基本的なReactコンポーネントの例です:
// src/App.js
import React, { useState } from 'react';
import './App.css';
function App() {
const [tasks, setTasks] = useState([]);
const [newTask, setNewTask] = useState('');
const addTask = () => {
if (newTask.trim()) {
setTasks([...tasks, newTask]);
setNewTask('');
}
};
return (
<div className="App bg-gray-100 min-h-screen flex items-center justify-center">
<div className="w-full max-w-md p-8 bg-white rounded-lg shadow-xl">
<h1 className="text-2xl font-bold mb-6 text-center">TODO List</h1>
{/* Task input form */}
<div className="mb-4 flex items-center">
<input
type="text"
value={newTask}
onChange={(e) => setNewTask(e.target.value)}
placeholder="Add a new task..."
className="flex-grow p-2 border rounded-l-md focus:outline-none"
/>
<button
onClick={addTask}
className="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded-r-md">
Add
</button>
</div>
{/* Task list */}
<ul className="mb-6">
{tasks.map((task, index) => (
<li key={index} className="flex items-center mb-2">
<span className="text-gray-700">{task}</span>
</li>
))}
</ul>
{/* Footer */}
<div className="text-center">
<p className="text-xs text-gray-500">© 2023 TODO App</p>
</div>
</div>
</div>
);
}
export default App;
実行
すべての準備ができたら、以下のコマンドを使ってアプリケーションを開始します:
npm start
これによりブラウザが起動し、http://localhost:3000でTODOアプリケーションを確認できます。新しいTODOを追加するための入力欄と「Add」ボタンが表示されるはずです。
このコードには、基本的なTODO機能しか含まれていませんが、削除機能や編集機能を追加することでさらに拡張可能です。
まとめ
- そこそこ生成でも使えそうな。小型モデルのイメージでした。
- 生成速度が遅い点は、ローカルPC増強も必要かと思いました。

webUI の種類 nextjs-ollama-llm-ui
- webUIの種類を探して、 nextjsのwebUI 検索できました。
参考
起動手順
- 上記の、README の順で。画面起動できました。
-
git cloneします。
-
.env
mv .example.env .env
- 接続先変更する場合 .env変更すれば良いかもです。
NEXT_PUBLIC_OLLAMA_URL="http://localhost:11434"
- install
npm install
- start dev
npm run dev
- モデルは、phi4:latest を選択しました。
- 試しに、プロンプト入力しました。問題なく出力されました。

ollama + phi4 , UI画面作成 electron
- electron + Reactの UI画面作成 試作メモになります
- 前の、ollama + phi4 ローカルLLM環境に対応、生成AI 出力目的
- 出力 実行ファイルは、windows版でテストしました。
- ollamaは、モデルphi4 を起動しておきます。
構成
- electron
- React
- tailwindcss
- ollama (JS ライブラリ)
参考
- ollama javascript ライブラリを使用しました。
- https://ollama.com/blog/python-javascript-libraries
- https://github.com/ollama/ollama-js
書いたコード
ストリーミング通信
- .chat で、通信可能
import ollama from 'ollama'
const response = await ollama.chat({
model: 'llama2',
messages: [{ role: 'user', content: 'Why is the sky blue?' }],
})
console.log(response.message.content)
- stream: true
- ストリーミング、通信開始後に先頭から一部分データ配信イメージでした。
import ollama from 'ollama'
const message = { role: 'user', content: 'Why is the sky blue?' }
const response = await ollama.chat({ model: 'llama3.1', messages: [message], stream: true })
for await (const part of response) {
process.stdout.write(part.message.content)
}
見た目
- 受信テキストの、electron 画面表示
- ダウンロードは、MD形式でファイル出力できました。
GIF 動画
- 出力速度は遅めです、高性能なPCでないです。
- コード生成に挑戦、とりあえず出力できました。

ollama + llama3.1:8b , 生成メモ
- ollama + llama3.1:8b ローカルLLM環境 試すメモです。
- 出力 実行ファイルは、windows版でテストしました。
- 前の UI画面 electron版を使用
書いたコード
構成
- electron
- React
- tailwindcss
- ollama (JS ライブラリ)
参考
- ollama list
D:\>ollama list
NAME ID SIZE MODIFIED
llama3.1:8b 46e0c10c039e 4.9 GB 38 seconds ago
qwen2.5-coder:latest 2b0496514337 4.7 GB 3 hours ago
qwen2.5-coder:7b 2b0496514337 4.7 GB 3 hours ago
llama3.2:latest a80c4f17acd5 2.0 GB 4 hours ago
phi4-cline:latest eacbc14d4070 9.1 GB 4 days ago
phi4:latest
GIF動画
まとめ
- 前の、phi4 14bより。速度は改善しました。
- ローカルPC(CPU)で、大きいモデルで 14b以上は負荷的に厳しいようで
- 今回の、llama3.1:8b や llama3.2 ですと。快適にできそうでした。

deepseek-r1:14b + Ollama ローカルLLM , 生成メモ
- deepseek-r1:14b + Ollama ローカルLLM環境 試すメモです。
- UI画面は、 前の electron版を使用
関連
参考
- run
ollama run deepseek-r1:14b
- 7b
* ollama run deepseek-r1:7b
- 今回は、14b (9 GB) 以下、テストしました。
- ollama list
D:\>ollama list
NAME ID SIZE MODIFIED
deepseek-r1:14b ea35dfe18182 9.0 GB 3 hours ago
deepseek-r1:7b 0a8c26691023 4.7 GB 4 hours ago
deepseek-coder-v2:16b 63fb193b3a9b 8.9 GB 10 hours ago
llama3.1:8b 46e0c10c039e 4.9 GB 3 days ago
llama3.2:latest a80c4f17acd5 2.0 GB 3 days ago
phi4-cline:latest eacbc14d4070 9.1 GB 7 days ago
phi4:latest ac896e5b8b34 9.1 GB 9 days ago
GIF動画
- コード生成テスト、軽めのReact 画面
- 速くはないです。。長文の出力は、5分以上になりそうでした。
- model deepseek-r1:14b を選択しました。