qwen2.5から3.0,ついでにollamaからLMStudioに変更

qwen3.0の方がモデルサイズが小さくとも性能は2.5の大きいモデルと同等との情報あったので3.0系を使ってみようと思ったけど、ollamaでそのまま使える3.0系のモデルがなかったから、LMStudioをインストしてみた

デフォルトではOpenAIの大きめのモデルをロードするようになっているけど、それはSSD領域もったいないので削除

メニュー右上のダウンロードボタンから、画像に示すメニューが開けるから、Open Downloads Directoryをクリックして不要なモデルを削除すれば良い

今ダウンロードしたのは4Bと8Bモデル、

4Bでもそこそこの対応力があって速度も速いから、こちらを標準で使ってみようと思う、uvはC言語で書かれてると言ってくるけどもね、それでも初期のLLMモデルに比べればかなり優秀ではある

Roo codeからollmaは設定できるけど、LMStudioは見えない、起動はしているはずなのだけど起動してない状態だね

ollamaを使うと、ClineもそうだけどLLMとして想定しているのはClaudeなので回答の出方はイマイチ、今の所の利用範囲でクラウドの利用料払うつもりは無いね

P.S. 2025/8/20

Qwen3-8Bだとuvについて正しく回答する、その後4Bに切り替えても同様だから、一見結果を共有しているように見える、ただし8Bだとメモリ管理(メモリ32GBでもコンテナも立ち上げてるから多分厳しい)でyellowマークが出てしまうけども

 

 

admin

 

A.Iアシストでコーディング

最近はコード自体はほぼ生成A.Iで作成されることが多いと思うけど、ローカルでLLM動かして使えるかどうかやってみた

・参考サイト

https://zenn.dev/mkj/articles/cf8536923d9cd7#discuss

・環境:M4 MacBook Pro 32GBメモリ、ollama、VScode + Cline

・モデルの選択(Alibabaのモデルが限定されらリソースではコーディング目的には一番向いているらしいから)

% ollama pull qwen2.5-coder:7b-instruct

コンソールから動かしてみた感じではなかなかいけてる感じ、Rustは知らないと言われるけどC言語、Python、Golangは扱える

・設定:ollamaを選択、

・動かしてみたとこ、

ソースファイルが見つからないと言われるから設定が必要かもしれない

・リソース消費状況

メモリもかなりキツいし、途中でファンも回り出すから、高負荷ではあるからAirでは32GBでもきついかもしれない

ローカルLLMでどこまで使い物になるかやってみる

P.S.

結構タイムアウトするケースが多くて、いまいちollamaとの相性がよくなさそうに思える、コンソールからollama経由でモデル使う方が遥かに安定している

 

admin

uvめちゃ高速

Pythonのパッケージ管理ツールですが、Rustで書かれているとのことで驚嘆するぐらい高速(10倍から100倍と言われてます)に動作、もはやpipやvenvは不要と言っても良いと思うよ

導入については、

https://note.com/daisukeminagawa/n/nd1e39a10873a

にわかりやすく書かれているので、それに沿ってMacBook M4 Proでやってみた

インストール
% curl -LsSf https://astral.sh/uv/install.sh | sh

パスを通す
source $HOME/.local/bin/env

確認(日付見ると、かなりアクティブぽい)
% uv --version
uv 0.8.9 (68c0bf8a2 2025-08-11)

uv環境のプロジェクトディレクトリ作成して移動
% mkdir uv_python

.venvという名前の仮想環境を作成
 % uv venv
Using CPython 3.13.3 interpreter at: /opt/homebrew/opt/python@3.13/bin/python3.13
Creating virtual environment at: .venv
Activate with:  % uv venv
Using CPython 3.13.3 interpreter at: /opt/homebrew/opt/python@3.13/bin/python3.13
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate

環境のアクティベート
% source .venv/bin/activate

uv pipでパッケージインストール
% uv pip install requests
Resolved 5 packages in 892ms
Prepared 5 packages in 38ms
Installed 5 packages in 4ms
 + certifi==2025.8.3
 + charset-normalizer==3.4.3
 + idna==3.10
 + requests==2.32.4
 + urllib3==2.5.0

~~~全てのコマンドめちゃ早いよ、~~~

Python実行(サンプルのGoogle.comにアクセスするだけのコード)
% python test.py
Hello from uv-powered project!
Successfully fetched Google. Status code: 200

仮想環境から抜ける
% deactivate

Activateしなくとも直接実行できるrunコマンドがある
% uv run python test.py
Hello from uv-powered project!
Successfully fetched Google. Status code: 200

condaPython以外のライブラリが必要なケースで使って、高速開発環境構築にはuvかな、ともかく高速でストレスなく実行できます

コマンドの詳細は、

https://zenn.dev/tabayashi/articles/52389e0d6c353a

に詳しい

 

admin

玄関のスマートロックをタンデム運用にした

玄関ドアが物理的に経たってきたので、リフォーム実施、交換するドアもスマートロック対応

しかし生体認証が実質ないので、セサミをそのまま流用して並行運用することにした

YKKとsesameでの結合度合いはサムターンキーンの状態だけなので、お互いのスマートロックシステムから見ると、手操作とほぼ変わらないので独立して動作可能できるということになります

 

admin

 

 

デジポテをi2cインターフェースからSPIに変更

i2cのMCP4018はレスポンスはまともに帰ってきても機能しなかった(レスポンスは返るから実装の問題ではないと思う)から、DIP品のMCP4131に変えてみた

MCP4131はデータ線が入出力共通なので、ドライバー側には抵抗入れてMCP4131が出力モードの時にレベルを確保できるようにしないといけない、その割には戻り値は使ってないですが

三端子ともオープンなので、使い方の自由度はMCP4018に比べると高い、これだとちゃんと書き込み値に応じて抵抗値も変化(当たり前、それが普通)

SPI版のデジポテ制御に変えたソースコードは、

https://github.com/chateight/dsp/blob/main/dsp.c

になります

 

admin

セサミの不具合(その1)

セサミは快適に使っていましたが、その分もう物理キー使うことなくなってしまった、スマホのPASMOタッチが急に使えなくなりました

まあ先進的な機能取り込んでるメーカーではありがちなことですが

① 指紋認証は使えているからBLEが通じなくなっているわけではない

② スマホの再起動ではダメ、アプリからPASMO削除しても登録ができない

③ ネットで類似の事例見つけて、セサミタッチのファームの再インスト(再インスト前も最新版表示になってはいた)を行ったら、PASMOが登録できて認識もするようになった

スマートキーというのは物理キー含めて代替え手段を複数用意しておかないとなかなか安心して使うのは難しいもの

 

admin

BuhoCleanerを使ってみた

SSDサイズというのは時間経過とともに段々圧迫されていきますが、SSDの領域(ゴミ)クリーナーとしてBuhoCleanerの評価が良さそうなので使ってみました

無償版は削除できるのが3GBまでなので途中で削除止まったので、有償版購入して実行してみた、永久ライセンスで2,980円也、永久といってもどこかで使用不能にはなるのですが、Macのデスク容量512GBが現在購入価格で3万円相当だから、およそ50GB削除できれば見合う計算か、まあそれ以外に動作が軽くなる可能性もあるわけだし

スキャンでジャンク22GBと出たので、そのまま削除実行

実行結果で、

20GBぐらいは増加してるようだ、まあ定期的なゴミ取りツールとして見れば妥当なところか、

メニューには他の機能もあるけど、Mac OSの基本機能との差は何なのかな?

追記:常駐しててこんな画面がワンクリックで現れるから、アクティビティモニターより使いやすいかも

 

admin

HUB75 LEDにプレゼンターの名前表示

Apache + PHP配下で動いているプレゼン管理アプリにHUB75 LEDアレイつないでプレゼンターの名前を表示するようにした

全体の構成は以下の図の通りで、発表管理アプリは他人が作ったものなのでソースコードの公開は無し、発表者リストのトップの名前をHUB75 LEDに表示するようにしてみた

<発表管理画面>

このトップにあるゲスト20を@以下はjsで削除(最大全角4文字、半角8文字までの表示制限)してgolangサーバーにfetch、golangサーバーにはjs用の口を作って、CORS対応にしています

jsで発表者の並べ替え対応しているので、並べ替えが発生するとeventListenerを起動してgolangサーバーにfetchするようになってます

https://github.com/chateight/golang/tree/master/image

golangサーバー側のソースはこんな感じ、

 

jsで追加部分のコードを抜き出すとこんな処理、ブラウザのjsキャッシュが残っていて結構ハマりました

// notify top presenter name
//
function notifyTopPresenter() {
  const firstItem = document.querySelector("#presentersList .list-item");
  if (firstItem) {
    const name = firstItem.querySelector(".presenter-name")?.textContent || "";
    const event = new CustomEvent("topPresenterChanged", {
      detail: { name: name.trim() },
    });
    document.dispatchEvent(event);
  }
}

// listener for topPresenterChanged event
//
document.addEventListener("topPresenterChanged", function (e) {
  let name = e.detail.name || "";
  name = name.trim().replace(/^["“”'‘’]+|["“”'‘’]+$/g, "");
  name = name.split("@")[0];

  const formData = new FormData();
  formData.append("text", name);
  console.log("先頭の発表者:", name);
  fetch("http://rasp-b.local:8000/uploadText_js", {
    method: "POST",
    //headers: { "Content-Type": "application/json" },
    body: formData
  })
  .then(res => res.text())
  .then(msg => console.log("サーバー応答:", msg))
  .catch(err => console.error("通信エラー:", err));
});

しばらく運用して改良点は反映の予定

 

admin

geminiのAPI経由の使用可能モデル変更されてるね

https://isehara-3lv.sakura.ne.jp/blog/2025/04/28/ラズパイ5のchatbot機能を統合/

4月にラズパイ5で作ったchatbot久々に動かそうとしたら動かない、より正確にはDifyからのレスポンスが返らない(回答が空か短すぎると言われる)、さらに調べるとgeminiへのqueryがエラーになっている

5月あたりにgoogleの対応が変わっていて、古いモデル名は使えなくなっているらしい、以下のFlash 001用のようなモデルは終了で末尾がlatestのモデルを選択したら動いた

変更後、

確認はcurlで、

curl -X POST 'http://localhost/v1/chat-messages' \
--header 'Authorization: Bearer app-***** your api key' \
--header 'Content-Type: application/json' \
--data-raw '{
    "inputs": {},
    "query": "What are the specs of the iPhone 13 Pro Max?",
    "response_mode": "streaming",
    "conversation_id": "",
    "user": "abc-123",
    "files": [
      {
        "type": "image",
        "transfer_method": "remote_url",
        "url": "https://cloud.dify.ai/logo/logo-site.png"
      }
    ]
}'

但し、最近無償版は混雑しているようで、割と頻繁にbusyで帰ってくるから、使いたいなら有償にしなさいよと言ってるようだ、それならばローカルLLMの選択もありだよね

 

admin

sesame関連の電池の仕様と寿命のまとめ

sesameデバイスの種類が増えてきたので、電池の仕様のまとめ

sesameの電池型格
————————-

・セサミ5:CR123A

・セサミタッチ:CR2

・リモコン:CR2450*(1~3個)

・オープンセンサー:CR1632

セサミ5とセサミタッチはそこそこ大容量電池、消費電力多そうだし(一年ぐらいで見とくのが良さそう)、リモコン(電池3個で3年)はそこそこで、オープンセンサーはおそらくライフ中(10年有効とか)に電池交換の機会はなさそうだ

 

admin