電子趣味の部屋

電子系のガジェットやアプリ開発等の趣味の話題を書いてます

gpt-oss-20b にブロック崩しを作ってもらう

Beelink GTR9 Proを購入してからLLMで色々遊んでます。
以前から遊んではいたのですが、あまり大きなモデルは扱えなかったので、簡単なことしかしてませんでした。

以前からコーディング性能を試すために「ブロック崩しが遊べるHTMLを作ってください」とプロンプトを指定してるのですが、今回は gpt-oss-20b で試してみました。
Beelink GTR9 Proは gpt-oss-120b でも実行できるのですが、今回は 割と幅広い環境で実行できるように、あえて gpt-oss-20b で試してます。

実行環境はLM Studioです。
モデルに openai/gpt-oss-20b を選択しました。
コンテキスト長はデフォルトだと途中で切れてしまう可能性があるため、約3倍の12249にしました。

以下のプロンプトを指定しました。

ブロック崩しが遊べるHTMLを作ってください。

出力されたソースをHTMLファイルで保存すると、そのまま実行できるようになりました。


URL : https://www.uosoft.net/blog-parts/block.html

この画像をクリックすると、別タブで実際のHTMLファイルを表示することができます。
ソースは難読化等の加工はしていないので、ブラウザの機能のソースを表示で見ることができます。

このままでは味気無いので、色を付けてみました。
次は以下のプロンプトを指定しました。

以下の修正をして作り直してください。
ブロックの行毎に異なる色にする。
ボールの色は白。
バーの色はシルバー。

ただ「修正をしてください」と指定すると、修正部分のみ出力されることがあったので、「作り直してください」と指定してます。



URL : https://www.uosoft.net/blog-parts/block2.html

こんな感じでカラー表示されました。

今までローカルで実行できる色々なLLMのモデルで試してましたが、出力されたソースを何も修正無しでそのまま実行できたのは初めてでした。

これまで、ChatGPTや生成APIでのAIコーディングサービスを色々試しましたが、無料の範囲内では快適でなかったり、遊んでるうちにトークン上限に引っかかったりしてました。
もっと自由に快適に使いたいためローカルLLMに手を出しましたが、gpt-ossがリリースされたことにより、コーディング目的でもやっとまともに使えるようになったと感じました。

Windows環境でのROCmに対応したPyTorchのインストール

Beelink GTR9 Pro (AMD Ryzen AI Max+ 395)ASUS Vivobook S 14 (AMD Ryzen AI 9 HX 370)のWindows環境へROCmに対応したPyTorchのインストールしたので、メモしておきます。

バージョン等は2025年10月4日時点の情報です。

基本的にAMDの公式ページに書かれている内容でインストールしました。
rocm.docs.amd.com

Python

Pythonのバージョンは 3.12 が条件になります。
今回は 3.12.10 をインストールしました。
www.python.org

インストール時に「Add Python to environment variables」にチェックを付け、パスを追加しておいてください。

PyTorch

Windowsのターミナルやコマンドラインで以下のコマンドを実行します。

pip install --no-cache-dir https://repo.radeon.com/rocm/windows/rocm-rel-6.4.4/torch-2.8.0a0%2Bgitfc14c65-cp312-cp312-win_amd64.whl
pip install --no-cache-dir https://repo.radeon.com/rocm/windows/rocm-rel-6.4.4/torchaudio-2.6.0a0%2B1a8f621-cp312-cp312-win_amd64.whl
pip install --no-cache-dir https://repo.radeon.com/rocm/windows/rocm-rel-6.4.4/torchvision-0.24.0a0%2Bc85f008-cp312-cp312-win_amd64.whl

確認

詳細は省略しますが、以下のようにPythonのコンソールからGPUが認識されていることを確認しました。

>python
Python 3.12.10 (tags/v3.12.10:0cc8128, Apr  8 2025, 12:21:36) [MSC v.1943 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> print(torch.__version__)
2.8.0a0+gitfc14c65
>>> print(torch.cuda.is_available())
True
>>> print(torch.cuda.device_count())
1
>>> print(torch.cuda.current_device())
0
>>> print(torch.cuda.get_device_name())
AMD Radeon(TM) 8060S Graphics
>>> print(torch.cuda.get_device_capability())
(11, 5)
>>>

PyTorchではじめるAI開発

PyTorchではじめるAI開発

Amazon

ディアブロの話

ディアブロ4を久しぶりに遊んでます。
シーズン10「獄炎螺旋」が先週から始まり、最近のシステムが気になって軽く遊ぶつもりが、すっかりハマってしまいました。
拡張パックが発売されたシーズン6以来なので、約1年ぶりです。

ディアブロは初代からプレイしており、学生の頃に友人から誘われて始めました。
Winodws95の頃だったと思います。
その頃はウルティマオンラインをメインに遊んでいたので、ディアブロの方は友人がいる時くらいしか遊んでませんでした。

本格的に遊んだのはディアブロ2の頃からで、この頃はウルティマオンラインもあまり遊ばなくなって、システム的にも複雑でなく、敵も大量に出現する割には難しくもなく無双的な爽快感があるこちらの方で遊んでました。
ウルティマオンラインは違い、ディアブロはPTに勝手に誘われて勝手に参加して勝手に抜けても問題無い文化も手軽て遊びやすかったです。
結構な密度で遊んだのは初めの3ヶ月くらいですが、その後はたまに遊んだり途中で拡張パックが発売されたこともあり、なんだかんだで2年ほど遊んでました。

その後、10年後に忘れてた頃にディアブロ3が発売されました。
懐かしい思い軽い気持ちでPS3版を購入して、ストーリーをクリアしたところで止まっていたのですが、PS4で発売したのをきっかけでストリークリア後の要素にはまってしまい、パラゴンレベル900になってます。
コンソール機版でもコントローラでの操作が最適化されて遊びやすかったです。
またオンラインも空いてるPTにランダムで参加できたりとシステム的にも手軽で、サクサク進めることができました。
Switchを手に入れた頃にもセールしてた時に購入し、ソロ専用として空き時間に遊んでました。
シーズン毎の特有の新規要素の開発は終わりましたが、過去のシーズンの要素の使いまわして現在でもシーズン制が続いてるようです。

ディアブロ2のリマスター(リザレクテッド)も購入しましたが、アイテムの大きさに応じて枠を消費して持ち物があまり持てなかったり、マウス操作の面影がありディアブロ3ほどコントローラでの操作が最適化されていないと感じました。
システム性か操作性かわかりませんが、結局1週間ほどしか遊んでいません。

ディアブロ4はオープンワールドになり複数の依頼を同時に進めたりするようになりました。
以前のような手軽さは変わってないので、遊びやすさは健在です。。
PTにランダムで参加できる要素はなくなりましたが、どうしても1人ではクリアできないダンジョンイベントがある場合、前で待ってると同じ目的の人が無言でPTに誘ってくれる人がいたりとディアブロらしさは健在です。
また、イベント的な特定のダンジョンやボスを周回するようなPTもオープンに募集や手軽に参加ができたりするので、手軽さは残ってます。
今回はXBOX版を購入したわけですが、ROG Allyでも遊びたくてPC版(Steam)も購入してしまいました。
セーブデータはBattleNetのIDで管理されてるので、異なる機種間でも共有されます。

ディアブロシリーズは長時間やり込むことができますが、各々の要素は短めで数分の空き時間でも遊ぶこともできます。
この手軽さから気が付けば長期間あそんでしまいます。
もしSwitch2で発売されたら購入するつもりでいます。

Beelink GTR9 Pro のPCゲームのカクつきについての解決方法 (MediaTek RZ717)

Beelink GTR9 Proで特に3Dのゲームをしていると、画面がカクつく現象がありました。

しばらく遊んでると解消しますが、シーンが変わるとまた現象が起きるといった状態でした。
APU特有の挙動と思ってましたが、どうもWifi&BluethhthのコントローラのMediaTek RZ717が影響しているようでした。

参考ページ
www.nichepcgamer.com

参考ページではRZ717を無効にするようなことが書かれてますが、無線LANとBluetoothは使いたいので、このページに書いてある通りドライバを最新にしてみました。
ASRock > X870E Taichi
https://www.asrock.com/mb/AMD/X870E%20Taichi/index.jp.asp#Download
リンク先にある一覧から MediaTek Bluetooth ドライバー と MediaTek 無線 LAN ドライバー (バージョン省略)を入手して更新したところ、無事に解決しました。
参考ページにはカクつきは直りませんでしたと書いてありますが、うちの環境では直り問題なく遊べるようになりました。

AMD Ryzen AI Max+ 395搭載の機種は標準でMediaTek RZ717が使用されてると思うので、同じ現象が発生している方は試してみてください。

NICEHCK EB2S 私的レビュー

手元に置いておいて気軽に使えるインナーイヤー型のイヤホンとしてNiceHCK EB2を長年使用してたのですが、Aliexpressのメッセージでストアクーポンをもらったので新しくしました。

Amazonでも販売してます。

NICEHCK EB2S

全体的には旧製品のNICEHCK EB2とそんなに差は無いような気がします。
正直なところ、差が分からないくらいです。

15.4mmと割と大型のドライバのせいか、低音もしっかりしてます。インナーイヤー型のイヤホンは低音が弱くなりがちですが、この機種はしっかりと迫力のある音を聴かせてくれます。
音の傾向は典型的なドンシャリ型で、やや低音寄りです。
多ドライバのカナル型イヤホンには劣りますが、音の分離も良好です。
低価格の多ドライバのKZ ZSTと比較しても分離感や解像度も高く感じます。

インナーイヤー型は解放感があり気持ち的にも楽に感じます。
遮音性は低く音漏れが気になるので室内専用にしてます。
落ち着いて音楽を聴くときはカナル型の別のイヤホンを使うとして、サブとして手軽に使えるインナーイヤー型のイヤホンが欲しいときは価格的にもちょうど良い機種だと思います。

Beelink GTR9 Pro (AMD Ryzen AI Max+ 395 RAM128GB)が到着しました

Beelink GTR9 Pro (AMD Ryzen AI Max+ 395 RAM128GB)が到着しました。

現在所有しているPCで一番高価なものになってしまいました。$1,985.00(305,998円)
さらにDHLから輸入消費税と立替納税手数料で3,580円請求されました。

主な目的はLLMのモデルgpt-oss-120bを使用することです。
現状gpt-oss-120bを動作させることができる機種で一般に入手できるものは他のメーカーも含めて30万円程度のAMD Ryzen AI Max+ 395 RAM128GBの機種か50万円以上のMacしかない状況なので、これでも安い方です。

主な仕様は過去記事の最後の方に書いてありますので、参照してください。
blog-e.uosoft.net

CPUはAMD Ryzen AI Max+ 395で16コア32スレッドです。

メインメモリは128GBあり、ここからVRAMに割り当てます。
VRAMの容量は64GBと96GBを選択でき、デフォルトは96GBです。

性能も目安として3DMarkのTime Spyを実際に実行してみました。

この数値はGeForce RTX 4060搭載のゲーミングノートPCを超えてます。
blog-e.uosoft.net

目的のLM Studioでgpt-oss-120bを実行してみました。

プロンプトに「生成AIって何?」と入力した結果ですが、32.89token/s出ました。
VRAM使用量は61GBでした。

gpt-oss-20bでも試してみたところ、こちらは61.51token/sでした。

気になる消費電力ですが、アイドル時は25W前後、通常作業時は40~60W、3Dゲームをすると120W以上、LLMやベンチマーク実行時は160Wでした。
ミニPCとしては結構電気を食うイメージで、ゲーミングノートPCをTurboモードで動作させてる感じです。

これではちょっと多いなと思い、動作モードの変更ができないかBIOSの設定を見てみました。

デフォルトはバランスモードで、他にはパフォーマンスモードでした。
ECO Modeの設定をEnabledにしてみました。

CPUのTDPを45Wに制限するようです。
これで消費電力がアイドル時は20W前後、通常作業時は20~40W、3DゲームやLLMやベンチマーク実行時は100W前後になりました。
Web上でこのブログを書いてる最中で27W前後です。
これで普段使用しているゲーミングノートPCのサイレントモードと同等になりました。
気になるパフォーマンスですが、3DMarkのTime Spyの結果

60Wも減少しているのに思ったより低下は少なく、普段使用しているゲーミングノートPCのサイレントモードより高い結果となりました。
gpt-oss-120bの実行も31.37token/sとほとんど低下してません。

静音性も高く、160Wの高負荷時でもゲーミングノートPCのサイレントモードの高負荷時より静かです。

不明な点がありまして、電源OFFの状態でも5Wの電力が流れてます。
電源OFF時でもUSBに電力が流れているのでこのコントローラ関係が消費してると思われますが、BIOSの設定でOFFにできるか探してみましたが、不明のままでした。
使用してないときに無駄な電力が気になるので、手元にスイッチのある延長電源ケーブルを注文しました。

また欠点として、前面にUSB-Cが1つしかありません。まだUSB-CもUSB-Aもそこそこ使用し、同時に2個以上を接続することもあるので不便に感じます。
USBの延長ケーブルか、簡単なUSBハブを用意して裏面にあるUSB端子も有効活用しようと考えてます。
https://www.bee-link.com/products/beelink-gtr9-pro-amd-ryzen-ai-max-395

GMKTEK EVO-X2は騒音の問題で躊躇しましたが、Beelink GTR9 Proにして良かったと思います。
自宅サーバ用途で考えてましたが、3Dゲームも快適で気に入ったのでメイン機として使うことにしました。
次にメイン機を変えた時はこちらを自宅サーバにしようと思ってます。

Bluetooth+USB無線接続のコンパクトなキーボード・マウス

実験用PCやRaspberry PiやMiSTer FPGA等を使用する際に汎用キーボード・マウスとしてロジクールのMK245を使用してました。
もう5年以上使用して飽きてきたのと、常時使用するものではないのでもっとコンパクトなものが欲しいと思い探してたところ良いものが見つかり購入してみました。

今回購入したものは、 Omikamo Bluetooth キーボード 折りたたみ マウスセット 日本語配列 です。

キーボード配列やキーのサイズは、ノートPCにありがちな標準的なものです。コンパクトキーボードにありがちな変則的な入力はありません。
テンキーが付いてるのもレトロPCのエミュレータを使用するときに便利です。

折りたたむとこんな感じです。

キーボードは2.4G(USB無線)とBluetooth3個ペアリングでき、独立したキーで切り替えができます。

マウスも特に特徴は無い標準的なものです。動きが悪いとかボタンの反応が悪いとかは無く快適です。

マウスは2.4G(USB無線)とBluetooth2個ペアリングでき、裏側にあるボタンで切り替えができます。
2.4G(USB無線)のトングルはキーボード・マウス両方の受信を兼ねていて1個です。マウスに収納できます。

まだ1か月ほどしか使用していないので耐久性はわかりませんが、2.4G(USB無線)とBluetoothも特に切れたり反応が悪くなることも無く快適です。
よく使う機器はBluetoothでペアリングして、2.4G(USB無線)は汎用的に使えるのでより便利になりました。
よりコンパクトになったので、収納場所にも困らなくなりました。