メインコンテンツまでスキップ

「LM Studio」タグの記事が13件件あります

全てのタグを見る

エージェント(Qwen3.5 27b)のテストとAIに実行計画させるのは大事?

· 約3分
もみじーな
個人開発者

自分用のAIエージェントアプリを作成しているのですがGithub CopilotとかManusみたいに作業中の項目が見たいので実行計画をまず立てさせてから開発させるようにしたら生成の精度がよくなりました。

実行計画の実装前・実装後どうだったか

エラーがなくてもバグが多かったりAI自体がループに入ったりしましたが計画させて作業を分割したらなぜ1回でそこそこ動くアプリを作成してくれるようになりました。
ループもあんまりしなくなった。(なぜだ?むしろループを見ていない気も)
一度に色々と考えて生成させるのが原因なのか?
ある程度制限すれば減るのか?

生成テスト

テトリスの作成テスト

画像生成はStable Diffusionを起動していないのでエラーです
立ててれば自動で画像も生成して画像確認してつかってくれます。
あとこれは生成後に背景がなかったのでテストも兼ねておしゃれにしてと命令してます。

エージェントが勝手にエラーチェックもして修正してから報告してくるので基本的にはエラーがでるとかもないです。
スタートボタンなども勝手に押してテストしてくれます。(自分でもここまで機能実装して何を目指しているのかですが)

リバーシの作成テスト

エージェントの1回の完了報告でエラーやバグ、UIがずれているかもなさそう?
このリバーシとかもそうですがQwen3.5 27bとかQwen3.5シリーズが作成したものってなんか似たり寄ったりのUIと機能になりますよね。

TODOアプリの作成テスト

TODOアプリはなんとなくテストしただけです。 普通に動くし普通に使えなくはない。

最後に

Qwen3.5 27bいいですよねやっぱ 9bとかで開発テストしてますが使うときに27bを使うとここまで違うのかと実感します。(特にUIとか)
実行計画を立てさせるのがどれくらい効果的かはわかりませんが去年、Github CopilotでClaude 3.7(記憶が曖昧)とかの時に生成させたものに近いものが作れる気もしますのでQwen4.5に期待してます。
あと1bit量子化まだか?
富士通のQEPどうなったんですかね?3月になったので公開はされてるかもしれないですが精度89%がどれくらい響くのかもありますがはやくそこそこ精度の100bレベルが32GBくらいのVRAMで動いてくれると面白いですよね。

Qwen3.5のエージェントにWikipediaのDBを与えてみた

· 約8分
もみじーな
個人開発者

※3/11に追加でベクトル化もしましたが大変よかったです。

通常のAIモデルだと学習以前のデータは間違った答えを渡してくるので少しでもデータの正確性を保つためにWikipediaのデータを自動で検索するようにしてみました。

本当はベクトル化したいですけど時間かかるぽいので今回はテストとしてやってます。
来週か再来週あたりベクトル化したいですね。

画像のように現在の総理大臣も前のも大丈夫です。
なぜか私だけさんがつかないのがこのAIへの毎回の疑問ですが・・・

ちなみLM Studioだけだとこんな感じです。

ウェブリサーチさせる方法もありますけどネットを挟むとローカルだけだと動かないですしボットは嫌われる(企業ならやめたほうがいい)ので今回はWikipediaがデータベースを配布していることもあるのでダウンロードしてSQLite FTS5にデータを変換してAIが検索できるようにしてみました。

SQLite FTS5のデータはAPIでAIが参照するようにしているので割愛しますがデータベース化の仕方だけ残しておきます。

データベース作成方法

Wikipediaのデータ自体はhttps://dumps.wikimedia.org/jawiki/ から最新をダウンロードするだけです。
jawiki-20260301-pages-articles-multistream.xml.bz2 という4.4 GBを今回はダウンロードしました。

適当に学習させるフォルダに入れておいてください。
最終的にこうなります。

準備

学習に使ったコードは以下です。

requirements.txt

mwparserfromhell

build_wiki_db.py

"""
jawiki XML.bz2 → SQLite FTS5 (wiki.db) 変換スクリプト

出力:
wiki.db (同フォルダに作成)
"""

import bz2
import re
import sqlite3
import os
import sys
import time
import gc
import xml.sax
import xml.sax.handler

DB_PATH = "wiki.db"
BATCH_SIZE = 500 # 一度にINSERTする記事数
MAX_ARTICLES = 0 # 0 = 無制限。テスト時は例えば 10000 に設定すること
CHUNK_SIZE = 1024 * 1024 # 1MB ずつ bz2 展開

def strip_markup(text: str) -> str:
if not text:
return ""

# コメント除去
text = re.sub(r'<!--.*?-->', '', text, flags=re.DOTALL)
# <ref> タグ除去
text = re.sub(r'<ref[^>]*>.*?</ref>', '', text, flags=re.DOTALL)
text = re.sub(r'<ref[^/]*/>', '', text)
# その他HTMLタグ除去
text = re.sub(r'<[^>]+>', '', text)
# {{テンプレート}} 除去(ネスト対応・最大5段)
for _ in range(5):
prev = text
text = re.sub(r'\{\{[^{}]*\}\}', '', text)
if text == prev:
break
# [[File:...]] [[Image:...]] 除去
text = re.sub(r'\[\[(?:File|Image|ファイル|画像):[^\]]*\]\]', '', text, flags=re.IGNORECASE)
# [[リンク|表示テキスト]] → 表示テキストのみ残す
text = re.sub(r'\[\[[^\]|]*\|([^\]]*)\]\]', r'\1', text)
# [[リンク]] → テキストのみ残す
text = re.sub(r'\[\[([^\]]*)\]\]', r'\1', text)
# [URL 表示] → 表示テキスト
text = re.sub(r'\[https?://\S+\s+([^\]]+)\]', r'\1', text)
# 単独URL除去
text = re.sub(r'\[https?://\S+\]', '', text)
# 見出し記号除去
text = re.sub(r'={2,}(.+?)={2,}', r'\1', text)
# 太字・斜体
text = re.sub(r"'{2,3}", '', text)
# 表・wikitable
text = re.sub(r'^\s*[|!{][^\n]*', '', text, flags=re.MULTILINE)
# 余白整理
text = re.sub(r'\n{3,}', '\n\n', text)
return text.strip()


class WikiHandler(xml.sax.handler.ContentHandler):
"""
XML要素をツリーに蓄積せず、文字列バッファのみ使用。
メモリ使用量は記事1件分のテキストのみ (数KB〜数百KB)。
"""

def __init__(self, on_article):
super().__init__()
self._on_article = on_article
self._in_page = False
self._in_revision = False
self._tag = None
self._title_buf = []
self._ns_buf = []
self._text_buf = []

def startElement(self, name, attrs):
if name == 'page':
self._in_page = True
self._in_revision = False
self._title_buf = []
self._ns_buf = []
self._text_buf = []
self._tag = None
elif name == 'revision' and self._in_page:
self._in_revision = True
if name in ('title', 'ns') and self._in_page:
self._tag = name
elif name == 'text' and self._in_page and self._in_revision:
self._tag = name

def endElement(self, name):
if name in ('title', 'ns', 'text'):
self._tag = None
elif name == 'revision':
self._in_revision = False
elif name == 'page':
self._in_page = False
ns = ''.join(self._ns_buf).strip()
title = ''.join(self._title_buf).strip()
text = ''.join(self._text_buf)
self._title_buf = []
self._ns_buf = []
self._text_buf = []
if ns == '0' and title and text \
and not text.lstrip().startswith('#REDIRECT') \
and not text.lstrip().startswith('#転送'):
self._on_article(title, text)

def characters(self, content):
if not self._in_page or self._tag is None:
return
if self._tag == 'title':
self._title_buf.append(content)
elif self._tag == 'ns':
self._ns_buf.append(content)
elif self._tag == 'text':
self._text_buf.append(content)


class _StopBuild(Exception):
pass


# ── DB構築 ───────────────────────────────────────────────
def build_db(dump_path: str):
print(f"入力ファイル : {dump_path}")
print(f"出力DB : {DB_PATH}")
print("─" * 50)

con = sqlite3.connect(DB_PATH)
cur = con.cursor()
cur.executescript("""
PRAGMA journal_mode = WAL;
PRAGMA cache_size = -32000;
PRAGMA temp_store = FILE;
PRAGMA mmap_size = 0;
""")

cur.executescript("""
DROP TABLE IF EXISTS wiki;
CREATE VIRTUAL TABLE wiki USING fts5(
title,
body,
tokenize = 'unicode61'
);
""")
con.commit()

batch = []
count = [0]
t0 = time.time()

def on_article(title: str, text: str):
body = strip_markup(text)
if len(body) < 50:
return
batch.append((title, body))
count[0] += 1
if len(batch) >= BATCH_SIZE:
cur.executemany("INSERT INTO wiki(title, body) VALUES (?, ?)", batch)
con.commit()
batch.clear()
elapsed = time.time() - t0
rate = count[0] / elapsed
print(f"\r{count[0]:,} 件処理済 ({rate:.0f} 件/秒)", end='', flush=True)
if count[0] % 5000 == 0:
gc.collect()
if MAX_ARTICLES and count[0] >= MAX_ARTICLES:
raise _StopBuild()

handler = WikiHandler(on_article)
parser = xml.sax.make_parser()
parser.setFeature(xml.sax.handler.feature_namespaces, False)
parser.setContentHandler(handler)

opener = bz2.open if dump_path.endswith('.bz2') else open
try:
with opener(dump_path, 'rb') as f:
while True:
chunk = f.read(CHUNK_SIZE)
if not chunk:
break
parser.feed(chunk)
parser.close()
except _StopBuild:
pass
except xml.sax.SAXParseException as e:
print(f"\n[警告] XML解析終了: {e}")

if batch:
cur.executemany("INSERT INTO wiki(title, body) VALUES (?, ?)", batch)
con.commit()

elapsed = time.time() - t0
print(f"\n{'─'*50}")
print(f"完了: {count[0]:,} 記事 所要時間: {elapsed/60:.1f} 分")
if os.path.exists(DB_PATH):
print(f"DBサイズ: {os.path.getsize(DB_PATH) / 1024**3:.2f} GB")
con.close()


# ── 検索テスト ────────────────────────────────────────────
def test_search(query: str, limit: int = 5):
if not os.path.exists(DB_PATH):
print("wiki.db が見つかりません。先に build を実行してください。")
return
con = sqlite3.connect(DB_PATH)
cur = con.cursor()
rows = cur.execute(
"SELECT title, snippet(wiki, 1, '[', ']', '...', 20) FROM wiki WHERE wiki MATCH ? ORDER BY rank LIMIT ?",
(query, limit)
).fetchall()
con.close()
if not rows:
print(f"「{query}」に一致する記事が見つかりませんでした。")
return
for i, (title, snip) in enumerate(rows, 1):
print(f"\n[{i}] {title}")
print(f" {snip}")


# ── エントリーポイント ────────────────────────────────────
if __name__ == '__main__':
if len(sys.argv) >= 2:
cmd = sys.argv[1]
if cmd == 'search':
q = ' '.join(sys.argv[2:]) if len(sys.argv) > 2 else '機械学習'
test_search(q)
else:
# 引数をダンプファイルとして扱う
build_db(cmd)
else:
# 自動検索
candidates = [f for f in os.listdir('.') if f.endswith('.xml.bz2')]
if not candidates:
print("エラー: *.xml.bz2 ファイルが見つかりません。")
print("使い方: python build_wiki_db.py <ダンプファイル>")
sys.exit(1)
build_db(candidates[0])

私がbatファイルで起動したいので作成してます。
build.bat

@echo off
chcp 65001 > nul
echo ============================================
echo Wikipedia FTS5 DB ビルダー
echo ============================================
echo.

:: Python確認
python --version > nul 2>&1
if %errorlevel% neq 0 (
echo [エラー] Python が見つかりません。
echo Python 3.8以上をインストールしてください。
pause
exit /b 1
)

:: 依存ライブラリインストール
echo [1/2] 依存ライブラリをインストール中...
pip install -r requirements.txt
if %errorlevel% neq 0 (
echo [エラー] pip install に失敗しました。
pause
exit /b 1
)

echo.
echo [2/2] wiki.db を構築します(数十分かかります)...
echo 処理中はウィンドウを閉じないでください。
echo.

python build_wiki_db.py

if %errorlevel% neq 0 (
echo.
echo [エラー] ビルドに失敗しました。
pause
exit /b 1
)

echo.
echo ============================================
echo 完了! wiki.db が作成されました。
echo ============================================
echo.
pause

batファイル起動

batファイル実行したらこんな感じですね

完了

私の環境では20分程度で終わりました。

API実装などは自由に

12GB程度のデータベースが生成されますがデータベースなので自由に組み込めるはずです。
最新のデータがほしくなったら都度、DBを更新する必要がありますがある程度のデータには答えてくれるようになります。

最後に

そもそも現状のローカルAIに求めすぎな気がするんですよね所詮はローカルです。
物足りないならクラウドを使うべきだとは思いますがローカルで楽しみたいですよね・・・

もし時間に余裕があるならembedding,ベクトル化することをお勧めします。
精度が多分ですが全然違います。

追加でベクトル化もしました(2026/03/11)

結局、次の日にembeddingを作成しましたが更新してなかったので書いておきますが
embed + FTS5ハイブリッド検索に切り替えた方が確実に精度が上がります。
これは確実です。
FTS5だけだったときは時々違うデータが入っていたのでそれはなくなりました。

DB→embed作成で所要時間はRTX5090で50分かからなかったのでこの精度ならやる価値はあると思いますが最新データがどうしてもほしい場合だけです。

せっかくなのでコーディング用に次はBigCodeとか試して見ようと思いますがどれくらい精度があがってくれるか楽しみです。

Qwen3.5搭載のAIエージェントを作れば案外使える

· 約2分
もみじーな
個人開発者

Gensparkを契約しようか考えてたのですがManusと同じく一瞬でクレジットなくなるので微妙なんですよね。
あとGensparkは画像を集めろと命令しても著作物はあつめ・・なんでもないです。

なので自作してますが少なくとも作るのは難しくないです。
データベースも自分しか使わないのでSQLiteにしてるので楽ですね。

今は色んなオープンソースやライブラリがあるので結構いい感じに個人用なら作成が可能です。
Qwen3.5の9bと2bなどで切り分けて使えるようにしてますが27bとかでもいいですが速度がちょっとって感じですね。
gpt-oss-20bとかでもそりゃいいですけど画像が使えないです。

動作動画も張っておきます。

AIのエンドポイントはLM StudioとOpenRouterに対応させてるのでローカルでもクラウドでも可能にしてます。

ウェブリサーチもPlaywrightでいい感じになってますが精度があまりまだよくないですしエージェントに画像生成も組み込ませたいのでまだまだ理想のエージェントは遠そうです。

Qwen3.5 Small(0.8b,2b,4b,9b)の画像認識テスト(内容を訂正しました)

· 約2分
もみじーな
個人開発者

※3月4日にかなり修正してます


帰ってきて適当に作ってデバッグログみない自分が悪いのですが昨日作成した分は補助モードに勝手に入っており綺麗にできていただけでした。

補助モードを実装した理由は生成失敗によるミスをなくすためでしたがそれが悪さをしてましたね・・・

補助モードを削除したうえでOpenCVで画像加工処理するように変更しました。

結局,2Bが一番組み込むならいいです。

Thinkingもなんとかきれました。
9Bでも爆速です。

もうしばらくは満足です。

昨日(3月3日)までの分↓
動画はあれみて4bすごいと思われないように限定公開にしました。

小さくて画像認識精度が高いモデルを日頃さがしてるのですがQwen3.5 4Bはかなりよかったです。

テトリス作って画像認識操作テストした動画です。
Qwen3-VL-4Bから2Bまでは処理できてませんがQwen3.5 4Bから圧倒的です。
もちろん画像認識精度だけの問題ではないですが性能がここまであがるとこれからが楽しみです。
ロボットとかドローンとかに組み込めば面白そう?

このクラスが2Bにおさえられたら夢が広がりますがとりあえずQwen3.5 4Bでここまで動くならよさそうです。

ホールド機能つけてないので配置がおかしいところがありますが私がテトリスやるより早いですたぶん・・・・

LM Studio用の低消費電力PCを組むぞ(GPUだけ届かない)

· 約3分
もみじーな
個人開発者

※今回、購入理由は低消費電力なデュアルGPUをテストするためです。
ローカルAIはまだ特別な理由がない限り勧めしません(金の無駄)(画像生成は例外 5060ti 16GBが入門におすすめ)
あとLM Studio用とは書いてますが多分,llama.cppかOllamaで運用します。


とりあえずPCパーツは買い揃えました。

そしてArc Pro B60 24GBは1枚だけこの前に購入しましたがくる気配はありませんね。

できれば年内来てほしいです。

年末に遊ばせてください・・・

テストしてないので抵抗がありますが来週も来ないようならもう1枚追加注文はする予定ですが本当に買ってよいものか中古のRTX3090を2枚買った方が幸せだったのではないか7900xtxをもう1枚買えばよかったのではないか?

しかしもうパーツは買い揃えました止まることなどできないのです。

どうせ7900xtxもRTX3090もx8/x8だと処理能力落ちますし・・・

そして買ったものが以下です・・・

前のプランと少し変わってます。

買ったものリスト

カテゴリー製品名価格
ケースP20C11,970
マザーボードZ890 VALKYRIE35,780
CPUCore Ultra 5 22523,980
メモリCMH32GX5M2B5600C40K38,980
電源TOUGHPOWER GT/1200W ATX 3.123,676
M.2WD Blue SN5000 NVMe SSD WDS100T4B0E8,903
GPUArc B60 24GB120,000
FANMAG COREFROZR AA133,933
グリスJP-DX11,280

合計268,502円でした。(プラス120,000になる予定)

6月頃組んだUltra 7 265K PCと比べてもやっぱりメモリが高いので少し高く感じますね。

これでもクーポンとか色々適用したんですけどね・・・・

組み立てはGPUが届くまでに適当にやっておきますが次回は組んだからテストするぞで始まることを祈ります。

早く届いてくれーーー

一応、写真貼っておきます。

組み立てだけしました

2日後くらいに組み立てだけしました。
ケースとマザーボードの相性が多分悪かったですが無事biosまで確認しました。
PCの上に使わずにおいてたHuionのディスプレイを使ったのでほこりで画面が汚いですね・・・
グリスも結局使わなかったです。
MSIのファンに最初から塗ってあった分で十分ひえてそうです。
画像ではCPUファンがOPTにささってますが気にしないで・・・ あとケースに背面ファンがなかったので後で追加します。

LM Studio用の低消費電力PCをArc Pro B60 24GBで組みたい2(GPUは買ったぞ)

· 約2分
もみじーな
個人開発者

タイトル通りArc Pro B60 24GBを1枚だけ購入しました。

本当は嫌ですが予約購入です・・・・

果たしていつ入荷されるのか

本当は2枚欲しいのですがちょっと構成を考え直す可能性を考慮してとりあえず1枚予約購入です。

ケースも買いなおすことにしました。

結局、あのケースは2スロット厚でギリギリ収まったとしてもおそらく廃熱で死にます。

ごめよHyte お前は倉庫で眠っててくれ

現在、考えているPC構成は以下の2パターンに絞りました。

電源はもしかしたら850か1000wにするかもしれないので合計は目安ですね。

まだ、電力スパイクとかもちゃんと考えてないので・・・

足りはしてるはず。

Aプラン

カテゴリー製品名価格
ケースQUBE 500 Flatpack14,000
マザーボードZ890 AERO G52,830
CPUCore Ultra 5 22528,000
メモリCMK32GX5M2B5600C4034,000
電源RM750e 202512,000
M.2CT500P310SSD8-JP7,000
GPUArc B60 24GB x2240,000

合計387,830円

Bプラン

カテゴリー製品名価格
ケースQUBE 500 Flatpack14,000
マザーボードProArt B650-CREATOR34,000
CPUryzen5 760028,000
メモリCMK32GX5M2B5600C4034,000
電源RM750e 202512,000
M.2CT500P310SSD8-JP7,000
GPUArc B60 24GB x2240,000

合計 369,000円

x8/x8対応のマザーがなさすぎてマザーボードは高くなりがちですね。

一応、Arc Pro B60 24GBをDualで運用を検討している方がいたら安いマザーボードは基本的にNGだと思っておいてください。

性能が落ちます。

また、CPUにも実は制限があります。Ryzenでの例ですが例えばGが付くモデルとかは避けるべきです。

理由はCPU自体が持っているレーン数が少ないため、2枚挿し時に制限がかかる可能性があります。(間違えている可能性はありますがリスクは捨てるべきです)

とりあえず6950xtを前のPCからもぎ取って動作テストはしたいかな。

あまりにもB60がゴミならやめて別を考えます・・・

LM Studio用の低消費電力PCをArc Pro B60 24GBで組みたい

· 約6分
もみじーな
個人開発者

一応,書いときます(特殊な理由がないならAPI使いましょう)


現在、RTX5090をAI生成もといゲームように使ってますが24時間365日起動しとくのは微妙なのとどうしてもゲーム中に使えないので構成を検討中です。

とりあえずArc Pro B60を年内に1枚買ってみる予定です。(在庫があれば)

私が今回,推論用PCの購入に検討したもの

AMD Ryzen AI Max+ 395

AMD Ryzen AI Max+ 395を買えばいいという話ですがこれは論外です。

中華のミニPCをAIサーバー用途に30万,40万払うのはさすがに怖すぎます。

gmktecのミニPCを過去にサーバーようにフル稼働させたときに1か月もたなったことがあるのでさすがにね・・・
(確かに交換してくれますがデータが吹き飛ぶ可能性があります。)

重要なのは中華ミニPCはサーバーではありません。(通常用途で使ってあげてください)

Corsair AI Workstation 300の日本発売を待ってましたが出る気配もないのであきらめです。
(そりゃ輸入してもいいですよ?ついてるWifiとかの技適がね)

NVIDIA DGX Spark

NVIDIA DGX Sparkも検討しましたが発表時と話が違うぞ?
そのメモリ帯域速度で60万はなんかなと・・・

企業とか開発者じゃなく、個人でこれを買うならケチらずいっそメモリは少し減りますがNVIDIA RTX PRO 6000でも買ってください。

NVIDIA RTX PRO 6000

5090より確かにメモリ量が3倍です。
ただそれだけです。
私がやりたいローカルAIでの動画生成がまだ5秒や10秒でしかも音声なしの状態でこれを買うメリットは存在しません。

まだ、次の世代と生成AIの進化を待つべきです。

絶対、2027年のRubin買った方がいいですよ。

私はSora2(OpenAIのPro)に課金をおすすめします。

Nvidia DGX Station GB300かH200

Nvidia DGX Station GB300は高い高すぎる。
正直、将来的には検討の対象ですが価格以外に騒音と熱を処理できるスペースが現在、ありません。

車が買えるレベルのH200を買うにしても私がやりたいことリストをローカルAIがまだできないので暫くはAPIでいいかなというのが現状です。

買うならDELLとかのAIサーバーになりそう。

それまでに規制の少ない課金AIがでればそれで解決ですがSora2とか見てるとキャラクターとかストーリーとか制限が入りそう。

2026年発売予定のMac Studio M5 Ultra

これは来年あたり買ってみる候補になります。
おそらくメモリ帯域が1TBくらいになります。
メモリ量も1tbにならんかな

そしてArc Pro B60 24GB

今、ソフマップとかで約12万で販売が開始されてます。
安いです。
現在、売れ残りの7900xtxと確かに価格は変わらないですしメモリ帯域速度も遅いです。

しかし重要なのは消費電力とIntelということです。

IntelのGPUを買ったことがないのです。

買ってみます。

ただそれだけです。

10月に7900xtxが投げ売りされてたのですが開けてないのでがこれは飾っておきます。
私には6950xtを積んだ化石PCがまだあるのです。

検討中の構成と大失敗

現在、検討中の構成は以下です。

項目製品名
CPUUltra 5 225
Memory適当に64GBか32GB
MBATXを適当に
PSU750WでGold電源
M.2 SSD1TB
CPUファン一応、簡易水冷買うか?
PCケースHyte Y40
GPUARC B60

どこを失敗しているか

失敗したのはPCケースです。
実は何も考えずに10月にセールしていたのでB60用にY40 Songque Limited Editionを買ってしまいました。
このPCケース何が問題かわかる人にはわかります。

まず価格・・・ではないですね。

そうです、このケースはデザインを追求したPCケースである為にあることができません。

それがデュアルGPUです。

マザボにささらないのです1枚目すらライザーケーブル必須なのです・・・・・

ロープロはささりますね。

しかもこのPCケースを買った理由が既に2つフルプライスで去年買ってあったのですが1万円引きで公式で売ってたのと積みすぎてケースが取り出せないないというアホな理由です。

なんだよPCケース積みすぎって

転売ヤーではないですがそのうちPCたくさんHyteで組んで飾りたいと思い実はHYTE Y70 Silver Wolf Limited Editionもあと3台分あります。

見てくださいとてもきれいです(LEDは一部うざいので消しました)

ホタルエディションも1台ですが予約済ですよ?

仕方がないのでとりあえず1枚構成で組んでみる予定です。

Hyteさんには申し訳ないですが最悪、切断・・・はしないですがケースを変えるか考えます。

多分,箱にいれたまま積んである色んなPCケースだけでRTX PRO 6000が買えますね・・・・

床も抜けそう

OpenAIのgpt-oss-120bがギリギリ動いた(速度テストだけ)

· 約2分
もみじーな
個人開発者

LM Studioでgpt-oss-120bがギリギリ動作したので報告です。

私の環境

項目詳細(製品名や型番など)
CPUUltra7 265K
GPURTX 5090
Memory64GB (DDR5-4800)

MoEっぽいので動くとは思いましたがまぁ使えなくはない速度でした。

一応,トークン速度(14.55token/s)でした。

長いコードを書かせてみましたが使えなくはないくらいの生成速度ですが他の30bなどのモデル速度と比較するとやっぱり生成時間が苦痛です。

文章生成だけならいいかもしれないですがコード生成だったり修正だと待ち時間がいやなので少なくとも80GB以上のメモリがグラボにあるならいいですがないならおとなしく30bかAPI使ったほうがでいいす。

モデルのロードも60GBを超えるのでメモリ帯域速度的にかなり遅かったです。

使えそうならメモリ増設しようかなと思ったけど今回はいいかな
(2枚刺しにしている理由はDDR5は4枚だと不安定になると聞いたから)

OpenAIのgpt-oss-20bをテストする

· 約4分
もみじーな
個人開発者

LMStudioでgpt-oss-20bを試してみました。

20bなのであまり期待はできませんがQwen3 Coderと比較したかったので前と同じプロンプトでテストです。

HTML, CSS, JSを使用して、2025年9月に開催される『Tech Innovation Summit』のウェブサイトを作成してください。イベント概要、スケジュール、講演者紹介、チケット購入ページを含み、モダンで革新的なデザインにし、カウントダウンタイマーも実装してください。

gpt-oss-20bで作成したサイトが以下です。

https://momijiina.com/other/20250811/gpt-oss-20b.html


前回のqwen3-coder-30bでテストしたやつ

https://momijiina.com/other/20250801.html


正直、どっちも悪くはないですがqwen3-coder-30bのほうがきれいです。

gpt-oss-20bはRTX 5090で165.66 tok/secでした。

おそらくこちらもMOEです。

あと試してみてなかったのでqwen3-30b-a3b-2507も試してみました。

https://momijiina.com/other/20250811/qwen3-30b-a3b-2507.html

あれ? qwen3-30b-a3b-2507のほうがいい?

やっぱりテストプロンプトはもっと難しいやつにしたほうがいいかな?

なので次のテスト(プロンプトはAI生成です)

「Googleスプレッドシート風」の軽量ウェブアプリ(静的: HTML/CSS/Vanilla JSのみ)を生成してください。
要件:
index.html / styles.css / script.js の3ファイル構成
機能:
任意サイズ初期グリッド (例: 20列 x 30行) を生成
A1 形式セル参照
数式: 先頭= のセルは式として評価
四則演算 (+ - * /)
括弧 ()
セル参照 (例: =A1+B2*2)
範囲対応関数: SUM(A1:B5), AVG, MIN, MAX
再計算はセル変更時に全体再評価(循環参照はエラーマーク)
行/列の追加ボタン
選択セル強調・行列ヘッダー固定
コピー & ペースト (Ctrl+C / Ctrl+V) : 値ベース
Undo / Redo(直近履歴 50 件)
データの JSON / CSV エクスポート & インポート
ローカルストレージ自動保存(間隔 2 秒 or デバウンス)
ダーク / ライトテーマ切替
UI:
簡易ツールバー: 追加行/列, Undo, Redo, Export JSON, Import JSON, Export CSV, Theme toggle, Clear
ステータスバーに: 選択セルアドレス, 計算結果プレビュー
コード品質:
モジュール的構造 (関数を整理)
コメントで主要ロジック説明
依存なし(CDN含む)
アクセシビリティ配慮 (tabindex, aria-label)
セキュリティ:
eval 不使用。自作の式パーサー/トークナイザで実装
想定外トークンはエラー扱い
パフォーマンス:
1000+ セルでも即時レスポンス
再計算アルゴリズムはシンプルな全再計算で可(要最適化コメント)
出力: ファイルごとにコードブロック (ファイル名付き) で提示。
最後に利用手順 (ブラウザで開くだけ) と拡張アイデア箇条書き。

各モデルで作成したサイトの画像です。
ちょっと今回、JSONのインポートがあるので写真だけです。(危ないので)
ChatGPT5 比較用

gemma3 27b (53.93 tok/sec)

qwen3-coder-30b (128.50 tok/sec)

qwen3-30b-a3b-2507 (138.83 tok/sec)

gpt-oss-20b (164.46 tok/sec)

gemma3は見た目だけで入力が不可能でした。

gpt-oss-20b、qwen3-30b-a3b-2507に関してはセルは表示されず。

今回、1回の生成だけでまともに動いたローカルモデルはqwen3-coder-30bだけですがエラーを追加で貼り付ければ修正はどのモデルでも可能です。

GPT5を10点とするとqwen3-coder-30bは5か6点です。

ですがローカルで動くことに価値がありますのでqwen3-coder-30bは今のところ 5090で動作する最高のモデルですね。

UGREEN HDMI KVMを購入

· 約2分
もみじーな
個人開発者

Radeon RX 6950 XTも比較したいなと思ったときにわざわざマウスとHDMIケーブルを差し替えるのがめんどくさかったのでKVMを購入してみました。

サーバー用が少し高かったイメージがあったのでいくらかなと思ったのですが3500円でUGREENさんがうってました。

USB3.0と2.0で価格も500円くらいしか差がなかったですが3.0だと電源アダプターが必要みたいだったのでやめました。

中身はこんな感じです。

付属のHDMIは短いですがモニターの近くに置くものなので問題ないのともともとのHDMI 2つをこっちにさす感じです。

USB Type Bのほうはある程度長いのでメインとサブを1.5mくらい? 離してますが中央にKVMおけば問題なく届きました。

2か月で壊れたというレビューもあるので怖いですがとりあえず今は異常はなさそうです。

UGREENは安かろう悪かろうみたいなイメージが昔はありましたが最近はよく聞くので良くなったと信じます。

これですぐ壊れるなら次はAnkerを買います・・・

少し前に買ったUGREENの原神エディションはまだ壊れてないのも今回、品質を信じてみた決めてですかね。


一応 Amazonの製品名(型番とか書いてくれ・・・)
UGREEN HDMI KVM切替器 2入力1出力 キーボード、マウス、モニターを共有 PC2台用 4K@60Hz USB2.0 4ポート 切替器 HDMI2.0専用 ドライバー不要 簡単接続 手元スイッチ&USBケーブル付