コンクリート劣化の引き金は「急乾燥」だけではなかった ―― AEの集中発生4回を気象データと重ねて検証

AEセンサーが捉えたコンクリートの「悲鳴」の集中発生4回を、気象庁の10分値と重ねて検証しました。雨上がりの急乾燥だけでなく、強風や強い雨で壁が濡れる「急な湿潤」でもAEが集中していました。

90%→40%)との関係を紹介しました。ただ、あのときは気象データとの一致を文章で説明しただけで、データを並べて見せてはいませんでした。取り上げたAEの集中発生も1回だけでした。

その後も記録を続け、ログを整理し直したところ、AEが短時間に集中して発生した場面は合計4回ありました。今回は4回それぞれについて、気温・湿度・雨・風の推移とAEの発生タイミングを1枚のグラフに重ね、コンクリート劣化の引き金を検証します。

結論を先に書くと、引き金は「急乾燥」だけではありませんでした。強風や強い雨で壁が一気に濡れる「急な湿潤」の場面でも、AEは集中して発生していました。現場の定点カメラの画像でも、発生の前後に壁が濡れていた様子を確認できています。

今回使ったデータとグラフの見方

  • AE:壁に取り付けた自作のAEロガー(4チャンネル)の記録です。しきい値を超えた信号を、時刻と振幅で記録しています。
  • 気象:気象庁「過去の気象データ検索」の10分ごとの値(気温・相対湿度・降水量・平均風速・最大瞬間風速・日照時間)を使いました。観測点は現場から少し離れた近隣の地点です。
  • 定点カメラ:壁を10分ごとに撮影している定点カメラ(ATOM Cam 2)の画像で、発生前後の壁の濡れ具合を確認しました。

プライバシーに配慮して、今回のグラフでは日付と観測地点名を伏せ、横軸を「AE集中発生からの経過時間」(発生の60時間前〜12時間後)にしています。グラフは上から、日照・気温・湿度・降水量(10分ごと)・風速・AE検出数の順です。赤い破線がAEの集中発生時刻、一番下の灰色の斜線は記録が止まっていた区間です。AE検出数は、1件と100件を同じグラフに収めるため対数目盛にしています。

ログを整理して分かった2つの注意点

  1. 時刻の「桁あふれ」:ロガー内部の経過時間カウンター(ミリ秒単位)は、約49.7日で一周してゼロに戻ります。そのまま読むと、実際より約50日前の日付に見えてしまいます。時刻合わせの記録と照合して補正したところ、見落としていた集中発生が見つかりました。
  2. メモリ満杯による記録停止:記録用のメモリ(EEPROM)は128件で満杯になります。4回のうち3回は、集中発生の最中に満杯になって記録が止まっていました。グラフの件数は「少なくともこれだけ発生した」という値です。

イベント① 雨上がりの急乾燥(前回のケース)

イベント①のグラフ。雨上がりの晴天で湿度が87%から40%まで下がり気温が上がった後、乾燥のピーク直後にAEが43件集中して発生している
イベント①:雨上がりの急乾燥。乾燥のピークを過ぎた直後にAEが集中

2日前の雨で、湿度は100%近くありました。そこから晴れて、発生までの約10時間で湿度は87%→40%、気温は8.5℃→19.5℃と一気に変わっています。直前24時間の雨はゼロで、風も穏やか(最大瞬間風速6m/s程度)でした。

AEの集中発生(43件・約11分間)は、乾燥が最も進み、日照が切れて湿度が底から戻り始めた直後に起きています。同じ日の朝、乾燥が急に進み始めた時間帯にも小さな集中(4件)がありました。表面だけが乾いて縮み、湿った裏側との差で反ろうとする力が拘束されてひび割れる、という前回の仮説と合う結果です。

定点カメラの画像では、このときの壁はまだしっとりと湿り気を残していました。空気は一気に乾いても、壁はすぐには乾ききっていなかったことになります。なお、AEの出方は11分間で43件と、後で紹介する②〜④(数秒間に69〜108件)に比べるとずっと穏やかでした。

イベント② 大雨から約10時間後

イベント②のグラフ。乾燥した晴天の後に約46ミリの大雨で湿度が100%に達し、雨が上がって約10時間後にAEが69件集中して発生している
イベント②:乾燥→大雨の後、約10時間たってからAEが集中

2日前は湿度40%前後の乾いた晴天でした。その後雨になり、発生当日の未明から朝にかけて約46mmの大雨(1時間に最大13.5mm)が降り、湿度は100%に張り付きました。

AEが集中した(69件・約6秒間)のは、雨が上がってから約10時間後です。そのときは湿度91%・ほぼ無風・雨なしで、気象データの上では発生の瞬間に目立った変化はありません。

ところが定点カメラの画像を見ると、壁は朝から全面が湿った状態で、それが夕方まで続き、暗くなってから濡れた状態に変わったように見えます。AEが集中したのは、ちょうどこの時間帯です。観測点では雨が記録されていないため、局所的なにわか雨だったのか、湿った空気で壁の表面が結露したのかは、まだ分かりません。

イベント③ 暴風雨の始まり

イベント③のグラフ。雨が続いた後、最大瞬間風速が約16メートルから28メートルへ急に強まり始めた瞬間にAEが108件集中して発生している
イベント③:雨の後、風が急に強まり始めた瞬間にAEが集中

2日前の午後は、気温30℃・湿度40%を切る乾燥した日でした。そこから雨になり、発生までの24時間の雨量は35.5mmです。

AEの集中発生(108件・約9秒間)は、最大瞬間風速が約16m/sから30分ほどで28m/sまで一気に強まり始めた、その瞬間でした。28m/sは記録期間中で最も強い風です。センサー付近は雨粒が直接当たる場所ではありませんが、強風のときは霧状になった雨が吹き込んで壁が濡れます。強風で壁が急に濡れた可能性があります。なお、雨を伴わない強風の日(最大瞬間風速16〜17m/s)にはAEの集中は起きていないので、風そのものが原因とは考えにくいです。

現場でも風は相当なものでした。AE発生の10〜20分ほど前に、定点カメラが強風で吹き飛ばされて向きが変わってしまい、このときの壁の様子は写っていませんでした。

イベント④ 梅雨の長雨と強い雨

イベント④のグラフ。湿度ほぼ100%の長雨が2日半続き、10分間に4ミリから6.5ミリの強い雨が繰り返す中でAEが94件集中して発生している
イベント④:長雨の中、強い雨が繰り返す合間にAEが集中

湿度ほぼ100%が2日半続く梅雨の長雨でした。発生までの雨量は24時間で51.5mm、60時間では143.5mmに達しています。

AEの集中発生(94件・約4秒間)の約1時間半前には10分間に4mmの強い雨が2回続き、その直後には最大瞬間風速も9m/s台まで強まっていました。発生の約20分後にも、10分間に6.5mmの強い雨が降っています。

定点カメラの画像では、発生の40分〜2時間ほど前に、壁の全面が湿った状態に変わっていました。強い雨と風が重なった時間帯なので、風で吹き込んだ雨で濡れたと考えられます。壁が濡れてから少し時間をおいて、AEが集中したことになります。

4回を並べて見えた、コンクリート劣化の2つの引き金

タイプイベントAEの出方直前24時間の雨量気象の状況定点カメラで見た壁
急乾燥①43件/約11分0mm晴天で湿度87%→40%。乾燥のピークの直後まだしっとり湿っていた
急な湿潤②69件/約6秒46.0mm大雨の約10時間後(雨なし・湿度91%)暗くなってから濡れた様子
急な湿潤③108件/約9秒35.5mm最大瞬間風速が約16→28m/sへ強まり始めた瞬間直前にカメラが強風で吹き飛ばされ確認できず
急な湿潤④94件/約4秒51.5mm強い雨と風の後、次の強い雨の直前発生の40分〜2時間ほど前に全面が湿った状態に
AE集中発生4回の比較(気象は近隣の観測点の値)

前回の①は「湿った状態から一気に乾く」変化でした。②〜④はその逆で、「壁が一気に濡れる」変化が起きた場面です。②と④は定点カメラでも濡れを確認でき、③も強風で雨が吹き込む状況でした。コンクリート劣化の引き金は、乾燥そのものではなく乾湿の急な変化だと考えたほうが、4回とも説明しやすくなります。

AEの出方にも違いがあります。①は11分かけてゆっくり43件だったのに対し、②〜④は数秒のうちに69〜108件が集中しました。今回の4回を見る限り、「急な湿潤」のほうがAEは短時間に激しく出ています。

ただし、雨量だけでは決まらない

記録が残っている期間に、1日20mm以上の雨が降った日は13日ありました。そのうちAEの集中発生につながったのは3つの雨の期間だけです。1日40mm前後の雨の日や、1時間に13〜14mmの強い雨が降った日でも、AEの集中発生は起きていません。

③では強風、④では短時間の強い雨が重なっていました。雨量だけでは決まらず、強風や短時間の強雨で壁が実際に濡れるかどうかが効いている可能性がある、というのが現時点での見立てです。

なぜ「濡れる」と音が出るのか(仮説)

前回は「表面が乾いて縮もうとするのに、湿った裏側と周囲に拘束されて縮めない。その結果、表面に引っ張る力が集中してひび割れる」と説明しました。今回の結果は、その逆向きの変化でも同じことが起きうることを示唆しています。

  • 表面の吸水膨張:乾いていた表面が急に水を吸うと、表面だけが膨らもうとします。すでにある微細なひびの面どうしが押し合ったり、ずれたりすることで、音(AE)が出る可能性があります。④で壁が濡れてから少し遅れてAEが集中したのも、水を吸って膨らむまでに時間がかかると考えれば説明がつきます。
  • 乾湿の往復による疲労:「乾く→濡れる→乾く」の急な往復が繰り返されると、同じひびが何度も開いたり閉じたりして、少しずつ進行していくと考えられます。
  • 背面の土圧・水圧の増加:大雨の後は、壁の裏側の土に水が溜まり、壁を押す力が増えます。表面が濡れて膨らもうとする力に、この力が重なっている可能性もあります。

いずれもまだ仮説の段階です。

残っている疑問

  • ②〜④のAEは、振幅がほぼ一定で数秒間に集中しています。振幅がばらつきながら11分間続いた①とは性質が違います。壁を伝う水の流れなど、ひび割れ以外の音を拾っている可能性も、まだ完全には否定できません。
  • ②で暗くなってから壁が濡れた原因(局所的な雨か、結露か)は分かっていません。定点カメラは10分ごとの撮影で、夜間は見えにくいという限界もあります。
  • 気象データは近隣の観測点のものなので、現場とは雨の降り方や風向きが違う可能性があります。
  • メモリ満杯などで記録が止まっていた期間があり、夏の大雨の一部は検証できていません。

次にやること

  • 定点カメラの固定強化:③では強風でカメラの向きが変わり、肝心の場面が写っていませんでした。嵐の日でも壁を撮り続けられるように固定し直します。
  • ロガーの改良:満杯で止まらないように記録容量を増やし、時刻の補正を自動化します。可能であれば、波形そのものも保存したいところです。
  • 濡れセンサーの追加:壁の表面が濡れた瞬間とAEの発生を、直接比べられるようにします。

まとめ

  • ログを補正して整理すると、AEの集中発生は4回ありました。
  • 1回は雨上がりの「急乾燥」、3回は強風や強い雨で壁が濡れる「急な湿潤」の場面でした。定点カメラでも、②と④で発生の前後に壁が濡れていたことを確認しました。
  • AEは、「急な湿潤」のほうが数秒のうちに激しく集中していました。
  • 雨量だけでは決まらず、壁が実際に濡れるかどうかが効いている可能性があります。
  • コンクリート劣化の原因は「乾燥」だけでなく、「乾湿の急な変化」として捉え直す必要がありそうです。

次は、濡れセンサーやロガーの改良で「壁が濡れた瞬間」とAEを直接比べられるようにして、続報でお伝えします。

関連記事

出典:気象データは気象庁「過去の気象データ検索」の10分ごとの値をもとに加工して作成しました(観測地点名は非公表)。

蛇口の「ぶー」が7年ぶりに再発 ── 浄水器付き混合栓の異音は切替カートリッジ(KPS018)を疑え

浄水器付き混合栓の異音「ぶー」が7年ぶりに再発。レバーを押さえる切り分けと、AIと図面の照合で交換部品KPS018を特定するまでの調べ方をまとめました。

2019年に苦労して直した、キッチンの混合栓の異音。あの「ぶー」という音が、7年たって再び鳴り始めました。

原因の見当は、すぐにつきました。ところが、前回交換した部品の型番が、どこにも記録されていませんでした。

そこで、この記事では再発の経過をまとめます。加えて、交換部品の型番にたどり着くまでの手順も紹介します。混合栓の異音で困っている方が、同じ手順を試せるように書いています。なお、交換作業と結果は次回の交換編で紹介します。

前回(2019年)の混合栓の異音をおさらい

2019年8月ころ、キッチンの浄水器付き混合栓で異音が出始めました。水を流すたびに「ぶー」と鳴り、止めているときも時々鳴りました。しかも、止めているときに鳴ると、蛇口から水が漏れてきました。

まず、メーカーから提示されたシングルレバー側の止水カートリッジを交換しました。しかし、音はまったく変わりませんでした。

そこで仮説を立てて、音の出どころを切り分けました。その結果、浄水側の切替レバーを押さえると音が止まることがわかりました。つまり、原因は浄水側の切替カートリッジの劣化でした。

経過の詳細は、問題編と解決編に書いています。

2019年撮影。切替(浄水)レバー部を押さえると異音が消える(解決編より)

今回の混合栓の異音:「く、く」から「ブーー」へ

今回は約1か月前、2026年8月下旬ころから症状が出始めました。

  • 最初は、ときどき「く、く」と短く鳴る程度
  • 現在は「ブーー」と長く鳴る
  • 音が鳴るときには、蛇口から水が漏れる

この混合栓は3階のキッチンにあり、約10m下の貯水槽からポンプで揚水しています。最初は、ウォーターハンマーのときに鳴っていました。ウォーターハンマーとは、水の流れが急に止まったときに起きる圧力の変動です。ところが今は、ポンプが動くたびに鳴るようになりました。

部品のシール性能が、少しずつ落ちてきたのだと考えています。そのため、小さな圧力の変化にも弁が耐えられなくなったと見ています。

試しに、前回と同じく浄水レバーを手で押さえてみました。すると、音は止まりました。つまり原因は、前回と同じ浄水側の切替カートリッジです。

困ったこと:交換した部品の型番がわからない

原因の場所がわかっても、型番がわからなければ部品を注文できません。

ところが、2019年の発注記録に残っていたのは「KVK KPS027H-B」だけでした。これはシングルレバー側の止水カートリッジで、原因ではなかった部品です。

一方、実際に異音を直した切替カートリッジは、交換作業を業者に依頼しました。原因の特定まではこちらで行ったものの、発注記録は手元に残りませんでした。さらに、前回の記事にも型番を書いていませんでした。7年後の自分のために、型番を書いておくべきでした。

混合栓の異音で困ったときの調べ方

ここからは、今回たどった手順を5つのステップでまとめます。

1. 混合栓の異音の出どころを切り分ける

  • まず、混合栓の下の止水栓を閉めて、ほかの蛇口を使ってみる
  • その結果、音が出なくなれば、原因はその混合栓の中にある
  • 次に、音が出ている最中に、各レバーを手で押さえてみる
  • そして、押さえて音が止まったレバーの、内部のカートリッジを疑う
  • なお、浄水器付きなら、シングルレバー側と浄水側を分けて確認する

2. 本体の品番を特定する

本体やシンク下の配管まわりに品番シールがあれば、品番はすぐにわかります。ただし、年数がたつと見つからないこともあります。わが家でも、今回は見つけられませんでした。

その場合は、蛇口の写真を撮ってAIに見せると、似た製品の候補を挙げてくれます。今回は、前回記事に書いた商品名をAIに渡しました。商品名は「浄水器内蔵シングルレバー式シャワー付混合栓」です。すると、KVK(旧MYM)の「FB764GK8」が候補に挙がりました。

ただ、AIの答えは時々間違っています。そのため、候補が出たらメーカーの図面や商品写真と見比べてください。細部まで一致しているかを、自分の目で確かめることが大切です。今回はKVKの商品サポートページで、形状を1つずつ照合しました。引き出し式のシャワーヘッドと、上部のシングルレバーは一致しました。さらに、右下の浄水切替レバーの形状も一致しました。

3. 補修部品を特定する

本体の品番がわかったら、次にその品番の補修部品を調べます。メーカーのサポートサイトや、補修部品の解説サイトが参考になります。たとえば「水が止まらない(浄水)」のように、症状ごとに部品が載っています。

FB764GK8の場合、今回関係する部品は次の2つです。

部位部品品番
シングルレバー側止水カートリッジKPS027H-B(2019年に交換)
浄水側切替カートリッジKPS018

4. 手元の記録と突き合わせる

とはいえ、形状の一致だけでは不安が残ります。そこで、2019年の発注記録にあったKPS027H-Bの対象品番を確認しました。すると、その中にFB764GK8が含まれていました。これで、本体の特定に確信が持てました。このように推定と記録を突き合わせる進め方は、コンクリート劣化の原因を確かめた記事でも使いました。

過去の修理記録や取扱説明書が残っていれば、ぜひ照合に使ってください。

5. 注文前に最終確認する

旧MYM製品は、品番が似ていても部品に互換性がない場合があります。実際、販売店のページにもその注意書きがあります。したがって、確信が持てなければメーカーのお客様相談窓口に問い合わせるのが確実です。

KPS018を発注:7年という寿命をどう見るか

以上の手順で、交換部品はKPS018と判断しました。そして、楽天市場の販売店で発注しました。価格は、送料込みで3,110円でした。

ちなみに、最初のカートリッジは設置から約10年で異音が出ました。一方、2019年に交換したカートリッジは7年で異音が出ています。日本バルブ工業会の資料では、水栓の耐用年数は10年程度とされています。また、バルブカートリッジは消耗部品の例に挙げられています。さらに、わが家はポンプで揚水しているため、圧力の変動を受けやすい環境です。したがって、7〜10年での交換は妥当な範囲だと考えています。

次回:交換編

部品が届いたら、KPS018への交換作業と結果を報告します。加えて、外したカートリッジのどこが劣化していたのかも紹介します。また、次の再発に備えて何を記録しておくかもまとめる予定です。

まとめ:混合栓の異音は切り分けと記録が決め手

  • 浄水側のレバーを押さえて音が止まるなら、切替カートリッジを疑う
  • 本体の品番は、品番シール→AI→図面→記録の順で特定する
  • 修理したら、部品の型番・購入先・価格・日付を記録しておく
  • 業者に頼んだときも、交換した部品の型番を聞いておく

7年前の自分がこの記録を残していれば、すぐに部品を注文できていました。この記事が、未来の自分と、混合栓の異音に悩む誰かの役に立てば幸いです。なお、ほかの修理やトラブル対処の記録は、ノウハウのカテゴリにまとめています。

AIはこの謎を解けるのか?――8月5日公開の謎解き、まだ誰もゴールに辿り着いていません

8月5日に公開した謎解きにChatGPT・Gemini・Grokが挑戦。しかし、8月27日現在もゴール到達者はゼロ。AIはどこまで解けたのか、その途中経過を紹介します。

8月5日に公開した謎解き。8月27日現在、まだゴール到達者ゼロ

8月5日、hoscm公式Xアカウントで、1問の謎解き問題を公開しました。

投稿には、こんなメッセージを添えています。

「まずは練習問題を1問だけ。
解けた人だけが辿り着ける場所があります。」

そして、その先には「ゴール」が用意されています。

ところが――。

8月27日現在、まだゴールに辿り着いた人は現れていません。

もちろん、「誰も挑戦していない」という可能性もあります。

実際の挑戦者数については、こちらでは把握できていません。

ただ、少なくとも一人には実際に横で挑戦してもらいました。

その結果は……途中で放棄。

「もしかすると、思っていたより難しい問題なのでは?」

そんな疑問が出てきました。

そこで、ちょっと気になる実験をしてみることにしました。

では、AIならこの謎を解けるのでしょうか?


AIに謎解きを依頼してみる

今回、挑戦してもらったのは、

  • ChatGPT
  • Gemini
  • Grok

の3つです。

せっかくなので、できるだけ同じ条件で挑戦してもらうことにしました。

AIに与えた最初のプロンプトは、実際にはこれだけです。

hoscm公式Xアカウント 8/5分のX投稿の謎解き問題ですが、	まだゴールにたどりついた人が現れていません____
https://x.com/hoscm2025謎解きしてもらえますか?

かなりシンプルです。

「この謎を解いてください」


それだけです。

そして、ここからAIがどこまで自力で辿り着けるのかを見てみました。


この謎、AIには簡単なのか?

今回の問題を作った側としては、最初から「超難問」を作ったつもりはありません。

むしろ、

「ある視点に気づけば、普通に解ける」

くらいの感覚でした。

問題を解くためのヒントも、十分に用意したつもりです。

ところが、実際にAIに挑戦してもらうと、少し面白い結果になりました。

AIによって、つまずく場所が違うのです。


ChatGPTの場合――かなり先まで進んだが……

まずChatGPT。

ChatGPTは、問題の構造をかなり追いかけることができました。

画像に隠されている文字についても分析を進め、

「nVTHyMxC」

という文字列を読み取るところまで到達しています。

さらに、問題ページに書かれている「YouTube動画IDが11桁」という情報にも注目。

そこから、

画像から見つけた文字をYouTube動画IDとして利用するのでは?

という方向へ進んでいきました。

かなり惜しいところまで来ています。

しかし、そこで問題が発生しました。

画像の読み込み・処理に関するコスト制限によって、途中でストップ。

つまり、

謎が解けなかったというより、推理の途中で処理を続けられなくなった

という結果でした。


Geminiの場合――最初の画像読み取りで苦戦

次にGemini。

こちらは少し違いました。

問題の画像を読み取る段階で苦戦。

画像に隠された文字を十分に読み取ることができず、その先の推理に進むことができませんでした。

今回の謎は、

「画像の中に何があるのか」

を見つけることが最初の重要なステップです。

そこを突破できなければ、その後に待っている情報の組み合わせまで進むことができません。

Geminiの場合は、

画像認識の段階が大きな壁になった

という結果になりました。


Grokの場合――画像は読めた。しかし……

そしてGrok。

今回、もっとも興味深かったのがGrokでした。

画像の読み取り能力はかなり高く、森の中に隠されている文字をかなり正確に拾うところまで進みました。

つまり、

「画像を見る」

という部分では、かなり健闘しています。

ところが、その先で止まりました。

文字を見つけた。

ヒントも確認した。

しかし、

「では、この情報と別の情報をどう組み合わせればいいのか?」

というところで、次の一手が出てきませんでした。

今回の謎は、単純な文字認識だけではゴールできません。

見つけた情報を、問題全体の構造の中に置き直す必要があります。

Grokはそこまで到達できませんでした。


3つのAI、それぞれ違う場所で止まった

ここまでを整理すると、こんな感じです。

AIどこまで進んだ?つまずいたところ
ChatGPT問題構造を分析。画像から文字も読み取り、YouTube動画IDとの関連まで推測画像処理のコスト制限で途中停止
Gemini問題への挑戦を開始画像の読み取り段階で苦戦
Grok画像内の文字をかなり正確に読み取りその情報から次の「閃き」に繋げられず

面白いのは、

3つとも「何も分からなかった」わけではない

ということです。

それぞれ、かなり惜しいところまで来ています。


実は、この謎にはヒントがあります

では、なぜAIが苦戦しているのでしょうか。

今回の問題には、実はかなり露骨なヒントがあります。

問題ページでは、YouTubeの「動画ID」について説明しています。

YouTubeの動画IDは、

11文字

です。

そして、画像の中には、その動画IDにつながる文字が隠されています。

X投稿の画像からは、現時点で、

nVTHyMxC

という8文字が確認されています。

ここで重要なのが、

11文字 − 8文字 = 3文字

ということ。

つまり、

X投稿の画像だけを見るのではなく、
もう一つの場所にある情報も必要なのではないか?

という発想が出てきます。

実際、問題ページには、

「この記事のアイキャッチと、Xの投稿画像に、謎が隠されています。」

というヒントがあります。

つまり、

Xの画像+記事のアイキャッチ

を組み合わせることで、11文字の情報になる可能性があります。


「見つける」だけでは終わらない

ここが今回の謎の面白いところです。

画像から文字を見つける。

これは、画像認識AIなら比較的得意な領域です。

しかし、それだけではゴールには届きません。

必要なのは、

画像から文字を見つける

↓

その文字数に気づく

↓

問題ページの「11桁」という情報と結びつける

↓

別の画像にも情報があることに気づく

↓

それらを組み合わせる

↓

さらに、その先にあるものを調べる

という、複数の段階をつなぐことです。

今回、AIが最後に苦戦しているのは、もしかするとここなのかもしれません。


AIは「謎を解けない」のか?

ここで、今回の実験について少し考えてみます。

今回の結果だけを見て、

「AIは謎解きができない」

と結論づけるのは、まだ早いでしょう。

なぜなら、AIはかなりのところまで来ているからです。

画像を認識する。

文字を読み取る。

ページの文章を読む。

ヒントを探す。

それぞれの能力はかなり高い。

しかし、

「今見つけた情報は、実は別の情報と組み合わせるためのものでは?」

という発想。

そして、

「この問題を作った人は、なぜここにこの説明を書いたのだろう?」

という視点。

このあたりになると、単純な情報検索や画像認識とは少し違ってきます。

もしかすると今回の謎は、

AIの「知識」ではなく「視点の切り替え」を試している

のかもしれません。


そして、まだゴールは開いています

8月5日に公開してから、この記事を書いている8月27日まで。

約3週間が経過しました。

しかし、

まだ誰もゴールに辿り着いていません。

そして、AIにも挑戦してもらいましたが、

ChatGPT、Gemini、Grokのいずれも、まだゴールには到達していません。

とはいえ、AIはそれぞれ違うところまで進みました。

そして、人間もAIも、

「もう少しなのでは?」

というところで止まっています。


あなたなら解けますか?

今回の謎は、最初からAIを倒すために作った問題ではありません。

「人間なら普通に解けるだろう」

そう思って作った問題でした。

ヒントも用意しました。

ところが、実際には人間も途中で放棄。

AIも、最後の一歩を越えられない。

これは、問題を作った側としても少し意外な結果でした。

そこで、この記事を読んでいる皆さんにも、もう一度問いかけてみたいと思います。

この謎、解けますか?

8月5日の投稿には、

「解けた人だけが辿り着ける場所があります。」

と書いてあります。

まだ、その場所に辿り着いた人はいません。

最初のゴール到達者は、あなたかもしれません。

▼ 謎解きへの入口

hoscm公式X
https://x.com/hoscm2025


この実験は、まだ終わっていません

今回の記事は、謎解きの「答え」を公開する記事ではありません。

むしろ、

「AIに解かせてみたら、どこまで行けるのか?」

を記録する途中経過です。

そして、もし誰かがゴールに辿り着いたら――。

そのときは、

「ついにゴール到達者が現れました」

という続報を出したいと思います。

AIが先に解くのか。

人間が先に解くのか。

それとも、まだ誰も気づいていない別の解法があるのか。

この実験は、もう少し続きます。

あなたはゴールに辿り着けますか?

関連記事

ComfyUIで動画生成を試してみる ― MiniMax H3を実際に動かしてみた

これまでコード生成を中心に試してきましたが、今回は一歩進んで、ComfyUIを使った動画生成を試してみることにしました。

今回使用したのはWindows版の ComfyUI Desktop。

動画生成用のテンプレートを確認すると、MiniMax H3、LTX-2.5、LTX-2.3、Wan 2.2、Hunyuan Videoなど、非常に多くのワークフローが用意されています。

はじめに

これまでコード生成を中心に試してきましたが、今回は一歩進んで、ComfyUIを使った動画生成を試してみることにしました。

今回使用したのはWindows版の ComfyUI Desktop。

動画生成用のテンプレートを確認すると、MiniMax H3、LTX-2.5、LTX-2.3、Wan 2.2、Hunyuan Videoなど、非常に多くのワークフローが用意されています。

あまりにも数が多いため、今回はその中からまず、

MiniMax H3:テキストから動画へ

を試してみることにしました。

そして、MiniMax H3でいくつか動画を生成した後、次の比較対象として Wan 2.2 5B に進むことにしました。


1. ComfyUIには動画生成用テンプレートが大量にある

ComfyUI Desktopの動画生成テンプレートを確認すると、かなりの数のワークフローが用意されています。

今回確認しただけでも、

  • MiniMax H3
  • LTX-2.5
  • LTX-2.3
  • Wan 2.2 14B
  • Wan 2.2 5B
  • Wan Animate
  • Hunyuan Video 1.5
  • SCAIL-2
  • InfiniteTalk
  • Wan VACE
  • Kandinsky 5.0 Video
  • LTXV

など、さまざまな動画生成モデルが並んでいました。

画面には

157件中64件のテンプレートを表示中

と表示されており、動画生成だけでもかなりの選択肢があります。

最初から全部を試すのは現実的ではないので、今回はMiniMax H3から始めます。


2. MiniMax H3のテキスト→動画を試す

選択したのは、

MiniMax H3:テキストから動画へ

というワークフローです。

最初はノードグラフが複雑に見えました。

しかし、よく見ると動画生成に必要なモデルやエンコーダ、解像度設定などがすでに接続された状態になっています。

さらに、動画生成の中心となるノードには、かなり長い英文プロンプトが最初から入力されていました。

この英文をクリックしてみると、普通の入力欄として編集できます。

そこで、まず非常にシンプルなプロンプトに変更しました。

Three young women walking slowly through a quiet city street in the early morning, cinematic

これだけでも、実際に動画を生成することができました。

MiniMax_H3

3. RTX 3080 10GBで実際に動画生成

今回使用しているGPUは、

NVIDIA GeForce RTX 3080 10GB

です。

動画生成中には、

  • GPU使用率:100%
  • VRAM使用量:約9.6GB / 10GB
  • GPU温度:約87℃
  • 消費電力:約265W

という状態になりました。

かなりGPUを使っています。

しかし、生成中のGPU使用状況を見る限り、きちんとGPUを使って動画生成できていることが確認できました。

その後、生成が終了するとGPU使用率は大きく低下し、温度も40℃程度まで下がりました。

したがって、今回の環境では、

RTX 3080 10GBでMiniMax H3の動画生成を実行できる

というところまでは確認できました。


4. 5秒の動画生成には約10分

最初のテストでは、5秒程度の動画を生成しました。

生成時間は、

約10分

でした。

次に20秒程度の動画も試してみました。

こちらは、

約50分

ほどかかりました。

単純計算では、

動画長生成時間
約5秒約10分
約20秒約50分

という結果です。

もちろんプロンプトや設定、生成条件によって変わるため、この数字をそのまま一般化することはできません。

しかし、少なくとも今回のRTX 3080環境では、

「数秒の動画なら試せるが、20秒になるとかなり待つ」

という感覚でした。


5. プロンプトはかなり効く

次に、もう少し具体的な指示を入れてみました。

例えば、

A young woman walking slowly through a quiet city street at sunset, cinematic

というプロンプトです。

これを生成すると、

  • 女性が登場する
  • 街を歩く
  • 夕方の雰囲気になる
  • シネマティックな映像になる

など、プロンプトの内容がかなり反映されました。

つまり、単純なテキスト→動画生成については、かなり素直に指示が効いている印象です。


6. もう少し複雑な指示を入れてみる

次に、複数の人物とカメラワークまで指定してみました。

使用したプロンプトは、概ね次のような内容です。

早朝の東京の街をさっそうと歩く5人の若い女性が、
正面から歩いてきて、とおりすぎる。
同時にカメラがパンして女性を追い、
その後ろ姿を追う。

結果は非常に興味深いものでした。

うまくいったところ

  • 女性たちが歩く
  • 東京らしい街の雰囲気が出る
  • 複数人が登場する
  • 正面から歩いてくる
  • カメラワークをある程度意識した映像になる

など、プロンプトの意図はかなり反映されました。

一方で、細かい部分では問題もありました。


7. 「東京の街」が「郊外の住宅地」になった

指定では「東京の街」としていました。

ところが生成された映像は、東京の繁華街というより、

郊外の住宅地に近い街並み

になりました。

これは画像・動画生成AIではよくある問題です。

「東京」という単語を入れただけで、必ずしも

  • 高層ビル
  • 繁華街
  • 日本の看板
  • 大量の人
  • 車
  • 駅前

といった具体的な東京のイメージになるわけではありません。

そこで、次のテストでは「東京」をさらに具体化しました。


8. 「5人」と指定しても5人とは限らない

もう一つ面白かったのが人物の人数です。

プロンプトでは、

5人の若い女性

と明確に指定していました。

MiniMax_H3_00002

ところが、最初の生成では、

4人

になりました。

動画生成AIでは、複数人物の人数を正確に維持することが難しい場合があります。

そこで次のテストでは、

Exactly five young adult women

と、人数をさらに強く指定しました。

すると、今度は、

5人が登場しました。

これはかなり重要な結果でした。

「5人」と書くよりも、

Exactly five

と明示した方が、今回のテストでは人数を維持しやすくなりました。


9. 東京の繁華街を具体的に指定する

次のプロンプトでは、東京の街をより具体的にしました。

Exactly five young adult women walking confidently toward the camera on a busy downtown Tokyo street in the early morning. Dense urban Tokyo scenery, tall buildings, Japanese storefronts, crosswalks and city traffic. All five women are clearly visible. Smooth cinematic camera movement, realistic live-action, natural walking motion.

今度は、

「東京の繁華街」

という指定はかなりうまく反映されました。

また、

5人

という人数指定も成功しました。

ここから、

「抽象的な指定より、具体的な視覚情報を並べた方がよい」

という傾向が見えてきました。


10. ところが、5人が車道を歩いてしまった

一方で、別の問題が発生しました。

「東京の繁華街を5人の女性が歩く」

という指示は反映されたのですが、

なんと女性たちが、

自動車道の真ん中を歩いていました。

これはかなり「AI動画らしい」結果です。

人間なら、

東京の繁華街を女性5人が歩く

と聞けば、普通は歩道を想像します。

しかしAIにとっては、

「街を歩く」=必ず歩道

ではありません。

そこで次のテストでは、

They stay on the sidewalk and never walk on the road.

のように、歩く場所を明示する必要があると判断しました。


11. 一番難しかったのはカメラワーク

今回もっとも苦戦したのが、

カメラの動き

です。

例えば、

カメラが後退しながら女性たちを追う

という指示を入れても、期待したほどカメラが動きませんでした。

さらに、

女性たちを追いながらパンする

という指示に対しては、

カメラが連続して動くのではなく、別のカットに切り替わったような映像

になることもありました。

また、

女性たちを通り過ぎた後、後ろ姿を追う

という指定については、

後ろ姿のシーン自体が生成されませんでした。

これは今回の実験でかなり重要なポイントでした。


12. MiniMax H3で分かったこと

ここまでの実験を整理すると、MiniMax H3では、

比較的うまくいった

  • 人物を歩かせる
  • 複数人物を登場させる
  • 「5人」という人数をある程度指定する
  • 東京の繁華街を具体的に指定する
  • 朝・夕方などの時間帯を指定する
  • 映画的な雰囲気を指定する
  • 自然な歩行をさせる

難しかった

  • 正確な人数を常に維持する
  • 「東京」の具体的な場所を想定通りにする
  • 歩道などの細かな位置関係
  • カメラを指定通りに動かす
  • パンや追従撮影
  • 一つの連続したカメラワーク
  • 前から後ろ姿へ自然につなぐ

という傾向が見えてきました。


13. 次はWan 2.2 5Bへ

ここまで試したところで、次のモデルとして、

Wan 2.2 5B

を試すことにしました。

ComfyUIには、

Wan 2.2 5Bビデオ生成

というテンプレートが用意されています。

これを選択すると、MiniMax H3とは異なるノード構成のワークフローが自動的に展開されました。

こちらにも、

  • Positive Prompt
  • Negative Prompt

の2つの入力欄があります。

今回は、MiniMax H3で問題になった部分を意識して、より具体的なプロンプトを設定しました。

Positive Prompt

Exactly five young adult women walking confidently together on the sidewalk of a busy downtown Tokyo street in the early morning. Dense urban Tokyo scenery with tall buildings, Japanese storefronts, traffic lights, crosswalks and city traffic in the background. All five women are clearly visible and walking side by side toward the camera. They stay on the sidewalk and never walk on the road. Realistic live-action, natural human walking motion, cinematic composition. The camera slowly moves backward in front of the five women, keeping them clearly framed throughout the shot. Continuous single shot, no cuts.

Negative Prompt

fewer than five people, more than five women, duplicate people, extra limbs, deformed hands, distorted faces, malformed bodies, people merging together, people disappearing, walking on the road, empty suburban street, rural scenery, low-rise residential neighborhood, static camera, camera cut, scene transition, sudden viewpoint change, unnatural walking, frozen people, jittery motion, blurry faces, cartoon, anime, illustration, CGI

MiniMax H3で発生した問題を、できるだけNegative Promptにも反映させています。


14. まずは5秒動画で比較する

Wan 2.2 5Bのワークフローでは、

長さ:121

FPS:24

となっています。

計算すると、

121 ÷ 24 = 5.04秒

です。

したがって、今回は実質的に約5秒の動画としてテストすることにしました。

いきなり20秒動画を生成すると、今回の環境ではかなりの時間がかかる可能性があります。

まず5秒で、

  • 5人になるか
  • 東京の繁華街になるか
  • 歩道を歩くか
  • 正面から歩いてくるか
  • 自然に歩くか
  • カメラが後退するか
  • ワンカットになるか

を確認します。


まとめ

今回、初めて本格的にComfyUIで動画生成を試してみました。

第一印象としては、

「思った以上にプロンプトが効く。しかし、細かな演出指定になると急に難しくなる」

というものでした。

「女性が歩く」

という程度なら比較的簡単です。

しかし、

5人の女性が
東京の繁華街の歩道を
正面から歩いてきて、
カメラが後退しながら追い、
そのまま通り過ぎ、
後ろ姿を追い続ける

となると、一気に難易度が上がります。

特に、

「何を映すか」

と

「カメラをどう動かすか」

は別の問題として考えた方がよさそうです。

今回のMiniMax H3の実験では、人物や背景についてはかなり指示できましたが、カメラワークについては思い通りにならない部分がありました。

そこで次回は、Wan 2.2 5Bがこの部分をどこまで改善できるのかを試してみます。

同じような内容を生成して比較すれば、

MiniMax H3とWan 2.2 5Bでは、どちらが「人物」「背景」「人数」「カメラワーク」を得意としているのか

も見えてくるはずです。

ComfyUIでのローカル動画生成は、まだ始めたばかりです。

次回はWan 2.2 5Bの5秒動画から、実際の生成結果の詳細を検証してみたいと思います。


関連記事

OllamaでGPUが使われない?――Windows環境でQwen3を検証して分かった「GPU未使用」の正体

OllamaでGPUが使われない原因をWindows・NVIDIA・CUDA・llama-serverのログから詳しく検証。Qwen3:4Bでは22/37層がGPUへオフロードされた一方、Qwen3:8Bは4GB VRAMの制約からCPU中心に。nvidia-smi、ollama ps、server.logを使った確認方法を解説します。


はじめに――「Ollamaを使っているのにGPUが動いていない?」

ローカルLLMをWindows PCで動かしていると、こんな疑問にぶつかることがあります。

「NVIDIA GPUを搭載しているのに、OllamaでGPUが使われていないように見える」

特に、OllamaでQwen3などのLLMを動かしている場合、タスクマネージャーを見るとGPU使用率が低かったり、CPU使用率ばかりが高かったりします。

さらに、Ollamaの内部で使われている llama-server.exe を直接調べて、

llama-server.exe--list-devices

と実行したところ、

Available devices:  (none)

と表示されれば、

「やはりCUDAが認識されていないのでは?」

と考えてしまいます。

実際、今回の環境でもまさにこの現象が発生しました。

ところが、Ollamaのログを詳しく調べてみると、結論はまったく違っていました。

GPUは使われていたのです。

しかも、Qwen3:4Bでは、

CUDA0 model bufferoffloaded 22/37 layers to GPU

という、GPUオフロードを明確に示すログが確認できました。

一方、Qwen3:8BではGPUが使われず、CPUのみで動作していました。

この記事では、この調査過程をもとに、

  • OllamaでGPUが使われないように見える理由
  • CUDAが本当に動作しているか確認する方法
  • llama-server.exe --list-devices の意味
  • Ollamaのログを見る重要性
  • GPUオフロードとVRAM容量の関係
  • Qwen3:4BとQwen3:8Bで結果が違った理由
  • OLLAMA_LIBRARY_PATH をむやみに変更しないほうがよい理由
  • --gpu-layers、--fit、--device などの意味

について、実際のログを交えながら整理します。


1. 今回の環境

今回検証したのは、Windows上でOllamaを利用してローカルLLMを動かす環境です。

GPUは、

NVIDIA GeForce GTX 1050 Ti / VRAM 4GB

です。

CPUはIntel Core i7-8700、メモリは16GBという環境です。

Ollamaでは、これまでQwen系モデルを中心に動作確認を行ってきました。

特に今回比較したのは、

  • Qwen3:4B
  • Qwen3:8B

です。

ここで重要なのは、「モデルの大きさ」と「GPUに載るかどうか」は別問題ではあるものの、VRAM容量が大きく影響するということです。

4GB VRAMしかないGTX 1050 Tiでは、8Bクラスのモデルを完全にGPUへ載せるのは難しくなります。


2. 最初の疑問:「llama-serverにGPUがない?」

まず、Ollamaが使用している llama-server.exe の場所を調べました。

PowerShellで、

Get-ChildItem"C:\Users\maps\AppData\Local\Programs\Ollama\lib\ollama" `-Recurse-Filter"llama-server.exe"|Select-ObjectFullName

を実行します。

すると、

FullName--------C:\Users\maps\AppData\Local\Programs\Ollama\lib\ollama\llama-server.exe

と表示されました。

そこで、この実行ファイルを直接起動して、

&"C:\Users\maps\AppData\Local\Programs\Ollama\lib\ollama\llama-server.exe"--list-devices

を実行します。

結果は、

Available devices:  (none)

でした。

これは一見すると、かなり重大な問題に見えます。

「CUDAが入っていない?」

「NVIDIA GPUを認識していない?」

「OllamaがCPU版になっている?」

と考えるのは自然です。

しかし、ここでこの結果だけを見て「GPUが使われていない」と判断してはいけません。


3. 決定的だったのはOllamaのserver.log

次に確認したのがOllamaのログです。

Windowsでは、

Get-Content"$env:LOCALAPPDATA\Ollama\server.log"-Tail100

のようにしてログを確認できます。

ここで非常に重要なログが見つかりました。

Qwen3:4Bを読み込んだとき、

load_tensors: offloading output layer to GPUload_tensors: offloading 21 repeating layers to GPUload_tensors: offloaded 22/37 layers to GPU

と表示されていました。

さらに、

load_tensors:    CUDA0 model buffer size = 1515.48 MiBload_tensors:    CUDA_Host model buffer size = 1164.72 MiB

とも表示されています。

これは非常に重要な情報です。

つまり、

Qwen3:4Bでは実際にCUDAデバイスへモデルの一部がオフロードされています。

「GPUが使われていない」のではありません。

むしろ、

GPUに全部は載らないため、GPUとCPUを組み合わせて動かしている

という状態です。


4. 「GPU使用率が低い」=「GPUを使っていない」ではない

ここはローカルLLMを扱ううえで非常に重要です。

GPUを使っているかどうかを、

WindowsタスクマネージャーのGPU使用率

だけで判断するのは危険です。

LLMの推論では、モデルのすべてがGPUに載っているとは限りません。

たとえば、

モデル ├─ GPU │   ├─ Layer 1 │   ├─ Layer 2 │   ├─ ... │   └─ Layer 22 │ └─ CPU     ├─ Layer 23     ├─ ...     └─ Layer 37

というような構成が可能です。

今回のQwen3:4Bでは、まさに、

37 layers↓22 layers GPU15 layers CPU側

というGPUオフロードが行われています。

llama.cppでは --gpu-layers / --n-gpu-layers によってVRAMへ置くレイヤー数を指定できます。また現在のllama.cppには、デバイスのメモリに合わせて設定を調整する --fit もあります。

したがって、

GPU使用率が100%ではない

ことと、

GPUを使っていない

ことは同じではありません。


5. Qwen3:4BではGPUが実際に使われていた

今回もっとも重要な証拠は、このログです。

load_tensors: offloading output layer to GPUload_tensors: offloading 21 repeating layers to GPUload_tensors: offloaded 22/37 layers to GPU

さらに、

CUDA0 model buffer size = 1515.48 MiB

となっています。

つまり、

CUDA0に約1.5GBのモデルバッファが確保されている

ことが確認できます。

さらにKVキャッシュも、

llama_kv_cache:      CUDA0 KV buffer size =   672.00 MiBllama_kv_cache:      CPU KV buffer size =     480.00 MiB

となっていました。

ここから分かることは、

モデル本体だけでなく、KVキャッシュもGPU側に一部配置されている

ということです。

これは「GPUが使われている」という非常に強い証拠です。


6. では、なぜQwen3:8BではGPUを使わなかったのか?

ここでQwen3:8Bを見てみます。

ログには、

print_info: model type          = 8Bprint_info: model params        = 8.19 Bprint_info: general.name        = Qwen3 8B

とあります。

さらに、

print_info: file size = 4.86 GiB

となっています。

ここが重要です。

GTX 1050 TiのVRAMは4GBです。

一方、モデルファイルだけで、

4.86 GiB

あります。

つまり、

モデルそのものがVRAM容量を超えている

わけです。

しかも、LLMを実行するにはモデル本体だけあればいいわけではありません。

KVキャッシュや計算用バッファなども必要になります。

したがって、

4GB VRAM    ↓Qwen3:8B    ↓モデルだけで4.86GiB    ↓さらにKV cacheなどが必要

となれば、4GB VRAMに完全に収めることはできません。


7. Qwen3:8BはCPU動作になった

実際のログも、それを裏付けています。

load_tensors:          CPU model buffer size = 1818.63 MiBload_tensors:   CPU_REPACK model buffer size = 3159.00 MiB

さらに、

llama_context: CPU output buffer sizellama_kv_cache: CPU KV buffer size

そして、

sched_reserve: CPU compute buffer size

となっています。

つまり今回のQwen3:8Bは、

CPU側にモデルを配置して推論している

と判断できます。

これは、

「CUDAが壊れている」

「NVIDIA GPUが認識されていない」

という意味ではありません。

単純に、

4GB VRAMではQwen3:8BをGPU中心で動かす条件が厳しい

ということです。


8. 「モデルサイズ4.86GiB」なのに4GBなら、なぜ一部GPUに載せないのか?

ここは少し注意が必要です。

「4.86GiBなら、4GBに収まらないのだからGPUは一切使えない」と単純に考えることもできますが、実際にはGPUオフロードにはさまざまな構成があります。

llama.cppには、

--gpu-layers--device--split-mode--tensor-split--fit

など、GPU/CPU間の配置を調整する仕組みがあります。

特に現在のllama.cppでは、

--fit [on|off]

があり、デフォルトは on です。

--fit は、利用可能なデバイスメモリに合わせてモデルやコンテキストなどの設定を調整するための仕組みです。

つまり、

「全部GPUに載せられないなら、CPUとGPUを組み合わせる」

という考え方ができます。

ただし、モデルやバージョン、利用可能なメモリ、コンテキストサイズなどによって最適な配置は変わります。


9. --list-devices の (none) はどう考えるべきか?

今回、一番混乱したのがここでした。

直接、

llama-server.exe--list-devices

を実行すると、

Available devices:  (none)

です。

しかしOllamaのログでは、

CUDA0 model buffer size

が存在しています。

つまり、

直接起動したllama-server        ↓--list-devices        ↓(none)        VSOllama        ↓runner / llama-server        ↓CUDA0        ↓GPU使用

という状態です。

ここから分かるのは、

「--list-devices の結果だけを根拠にOllamaのGPU動作を判断してはいけない」

ということです。

llama.cppのドキュメント上、--list-devices は利用可能なデバイス一覧を表示するオプションです。--device はオフロードに使用するデバイスを指定し、--gpu-layers はVRAMへ置く最大レイヤー数を指定します。

しかし、Ollamaが内部でrunnerを起動する際には、環境やバックエンド、ライブラリの読み込み方などが関係します。

そのため、

llama-server.exe --list-devices が (none)
↓
OllamaもGPUを使っていない

とは限りません。


10. 一番信頼できるのは「実際のロードログ」

では、何を見ればいいのでしょうか。

個人的には、今回の調査を通じて、

実際にモデルをロードしたときのログが最も重要

だと考えています。

例えば、

offloading output layer to GPUoffloading 21 repeating layers to GPUoffloaded 22/37 layers to GPU

というログがあれば、GPUオフロードが行われています。

さらに、

CUDA0 model buffer size = ...CUDA0 KV buffer size = ...CUDA0 compute buffer size = ...

などがあれば、GPU側に実際のバッファが確保されています。

逆に、

CPU model bufferCPU KV bufferCPU compute buffer

だけであれば、CPU動作の可能性が高くなります。


11. nvidia-smi も必ず使いたい

WindowsでNVIDIA GPUを使っている場合、OS側からGPU状態を確認する方法として、

nvidia-smi

も非常に有効です。

LLMを実行している状態で、

nvidia-smi

を実行すれば、

  • GPU使用メモリ
  • GPU使用率
  • GPUプロセス
  • GPU温度
  • GPU負荷

などを確認できます。

特に重要なのは、

モデルをロードした直後だけでなく、実際に推論している最中に確認すること

です。

アイドル状態ではGPU使用率が低くても不思議ではありません。


12. ollama ps も確認する

Ollama側では、

ollamaps

も確認ポイントです。

モデルが現在ロードされているか、CPU/GPUの利用状況がどうなっているかを見るための手掛かりになります。

ただし、ここでも重要なのは、

一つの表示だけで結論を出さない

ことです。

おすすめは、

ollama ps      ↓nvidia-smi      ↓server.log

の3方向から確認することです。


13. OLLAMA_LIBRARY_PATH を変更すればGPUが使える?

今回の調査では、次のような環境変数も試しました。

$env:OLLAMA_LIBRARY_PATH="...\cuda_v13"

そして、その状態で、

llama-server.exe--list-devices

を実行しても、

Available devices:  (none)

でした。

ここで、

「CUDAのパスが違うのでは?」

と考えて、さらに環境変数を変更したくなります。

しかし、今回のケースでは、これは慎重に扱うべきです。

なぜなら、すでにOllamaの実際のログで、

CUDA0 model buffer

が確認できているからです。

つまり、

Ollama内部ではCUDAバックエンドが正常に動いている

からです。

この状態で環境変数を次々変更すると、逆に環境を複雑にしてしまう可能性があります。


14. 「GPUを使わせるための設定変更」が逆効果になることもある

ローカルLLMでは、

GPUを使わせたい
↓
GPU layerを最大にする
↓
VRAM不足
↓
起動失敗・クラッシュ

ということもあります。

特にVRAMが4GB程度しかない場合は注意が必要です。

今回のような環境では、

GPUに全部載せる

ことを目標にするより、

GPUに載せられるところまで載せるCPUとGPUを適切に分担する

という考え方のほうが現実的です。

llama.cppの現在のserverオプションでも、--fit はデバイスメモリに合わせて設定を調整するための機能として用意されています。


15. コンテキストサイズもVRAMを消費する

今回のQwen3:8Bでは、

llama_context:n_ctx = 4096

となっていました。

一方、Qwen3:4Bでは、

n_ctx = 8192

でした。

LLMでは、モデル本体だけではなくコンテキスト長に応じてKVキャッシュなどのメモリ使用量も増えます。

今回Qwen3:4Bでは、

CUDA0 KV buffer = 672 MiBCPU KV buffer   = 480 MiB

となっていました。

つまり、コンテキストサイズは単なる「何文字まで読めるか」という設定ではなく、

GPU/CPUメモリ使用量にも関係する重要な設定

です。

VRAMが少ないPCでは、

32K↓16K↓8K↓4K

のようにコンテキストを減らすことで、モデルを動かしやすくなる場合があります。


16. だから「GPUが使われない」ときの調査順序が重要

今回の経験から、Windows + Ollama + NVIDIA GPUで問題を調査するときは、次の順序がおすすめです。

STEP 1:GPUそのものを確認

nvidia-smi

ここでNVIDIA GPUが正常に認識されているか確認します。


STEP 2:Ollamaのバージョンを確認

ollamaversion

バージョンによって内部のrunnerやllama.cppの挙動が変わる可能性があるため、最初に記録しておきます。


STEP 3:モデルをロードする

例えば、

ollamarunqwen3:4b

などでモデルを実際にロードします。


STEP 4:ollama ps

ollamaps

モデルの実行状態を確認します。


STEP 5:nvidia-smi

モデルがロードされた状態で、

nvidia-smi

を実行します。

VRAM使用量が増えていれば重要な手掛かりになります。


STEP 6:server.log

最終的に一番重要なのが、

Get-Content"$env:LOCALAPPDATA\Ollama\server.log"-Tail150

です。

ここで、

CUDA0offloadingGPU

などを探します。


17. ログからGPU使用を判断するキーワード

Ollama/llama.cppのログを見るときは、次の文字列を検索すると便利です。

GPU動作を示す可能性が高いもの

CUDA0offloadingoffloadedGPUCUDA model bufferCUDA KV bufferCUDA compute buffer

例えば、

offloaded 22/37 layers to GPU

は非常に分かりやすいです。

一方、

CPU model bufferCPU KV bufferCPU compute buffer

が並んでいる場合はCPU中心の動作を疑います。

llama.cpp自身もGPUオフロードの確認では、実行開始時にGPUへ処理がオフロードされていることを示す診断情報を見る方法を案内しています。


18. 「GPUを使う」には段階がある

ローカルLLMでは、

GPUを使う / 使わない

の二択で考えないほうが分かりやすいです。

実際には、

レベル1:完全CPU

CPU└── モデル全部

レベル2:一部GPU

GPU├── 一部のLayer└── KV cacheの一部CPU├── 残りのLayer└── その他

レベル3:ほぼGPU

GPU├── モデル├── KV cache└── 計算

レベル4:完全GPU

GPU└── ほぼすべて

というように段階があります。

VRAMが4GBのGTX 1050 Tiでは、Qwen3:4Bはレベル2~3に近い使い方が現実的です。

一方、Qwen3:8Bでは今回、CPU中心になりました。


19. 今回の検証結果を表にすると

項目Qwen3:4BQwen3:8B
パラメータ約4B約8.19B
モデルQ4系Q4系
VRAM4GB4GB
GPUオフロードありなし/CPU中心
GPU Layer22/37なし
CUDA0 model buffer約1.5GBなし
KV cacheGPU + CPUCPU
コンテキスト81924096
動作GPU/CPU混在CPU中心
CUDA正常モデルサイズ上の制約

この比較から、非常に重要なことが分かります。

同じOllama、同じPC、同じGPUでも、モデルによってGPUの使われ方は変わります。


20. 「GPUが使えない」のではなく「GPUに載せられない」場合がある

これは今回の記事で最も伝えたいポイントです。

「OllamaでGPUが使われない」

という問題を見つけたとき、

CUDAが壊れているNVIDIAドライバがおかしいOllamaがCPU版

と考えがちです。

しかし実際には、

GPUは正常↓CUDAも正常↓OllamaもGPUを使える↓ただしモデルが大きすぎる↓GPUに載せられない↓CPU中心で動く

というケースがあります。

今回のQwen3:8Bがまさにこれに近い状況でした。


21. さらに重要なのは「Ollama」と「llama.cpp」の関係

Ollamaは単独ですべてのLLM処理を実装しているわけではありません。

今回のログに登場した、

llama-server

は、Ollamaがモデル実行に利用している推論ランナーの重要な構成要素です。

そのため、

Ollama  ↓runner  ↓llama-server  ↓llama.cpp / ggml  ↓CUDA  ↓NVIDIA GPU

という関係を意識すると、トラブルシューティングがかなり分かりやすくなります。

llama.cpp側には、

--device--gpu-layers--split-mode--tensor-split--fit

など、GPUとCPUへの配置を制御するためのオプションがあります。

つまり、OllamaのGPU問題を調べるときには、

Ollamaだけを見るのではなく、内部で動いているllama.cpp/llama-serverのログを見る

ことが重要です。


22. 4GB VRAM環境では「小さいモデル」が強い

今回の検証から、4GB VRAM環境ではモデル選択そのものが重要だと分かります。

例えば、

1B1.5B3B4B

あたりは比較的扱いやすくなります。

一方、

7B8B

になると、量子化していてもVRAM 4GBでは厳しくなります。

もちろんCPUとGPUを組み合わせれば動かせるモデルもあります。

しかし、

「動く」と「快適に使える」は別

です。

特にユーザーが目指しているのが、

ローカルだけで完結する自走型の開発環境

であれば、単純に最大モデルを選べばいいわけではありません。

応答速度、安定性、メモリ使用量、コンテキスト長、コード生成能力などを総合的に考える必要があります。


23. 今回の調査で分かったこと

今回の検証結果をまとめると、次のようになります。

① --list-devices が (none) でもGPU使用を即否定しない

Available devices:  (none)

だけでは、Ollama全体のGPU利用状況を判断できません。


② Ollamaの実際のserver.logを見る

今回、

offloaded 22/37 layers to GPU

という決定的な証拠がありました。


③ Qwen3:4BはGPUを使えている

CUDA0 model buffer = 1515.48 MiB

というログからもGPU利用が確認できます。


④ Qwen3:8Bは4GB VRAMでは厳しい

モデルサイズが、

4.86 GiB

あり、GTX 1050 Tiの4GB VRAMを超えています。

そのためCPU中心の動作になりました。


⑤ GPU使用率だけでは判断できない

一部レイヤーだけGPUへオフロードする構成では、GPU使用率が低くてもGPUは実際に仕事をしています。


⑥ OLLAMA_LIBRARY_PATH をむやみに変更しない

GPUが本当に使えていることがログで確認できたなら、環境変数を変更し続けるより、まず現在の構成を把握することが重要です。


24. まとめ――OllamaのGPU問題は「GPUがない」のか「GPUに載らない」のかを分けて考える

OllamaでGPUが使われないように見えたとき、最初にやるべきことは、

設定を変更することではありません。

まず、

GPUが認識されているのか↓CUDAが動作しているのか↓OllamaがGPUを使っているのか↓モデルの一部だけGPUに載っているのか↓モデルそのものがVRAMに収まらないのか

を一つずつ確認することです。

今回の環境では、最初は、

llama-server.exe --list-devicesAvailable devices:  (none)

という結果から、

「GPUが使えないのでは?」

と考えました。

ところが、Ollamaのログを調べると、

offloading output layer to GPUoffloading 21 repeating layers to GPUoffloaded 22/37 layers to GPU

となっていました。

つまり、

GPUはちゃんと使われていた。

ただし、

Qwen3:4BとQwen3:8Bでは、GPUに載せられる量が違った。

これが今回の調査で得られた最も重要な結論です。

ローカルLLMでは、

「GPUを使っているか?」ではなく、「モデルのどの部分をGPUで処理しているか?」

という視点を持つことが重要です。

特にVRAMが4GB程度の古いGPUでも、モデルサイズや量子化、コンテキストサイズを適切に選べば、OllamaによるローカルLLM環境を十分に構築できます。

そして、GPU問題で困ったときには、タスクマネージャーの数字だけを見るのではなく、

nvidia-smi
ollamaps

そして、

Get-Content"$env:LOCALAPPDATA\Ollama\server.log"-Tail150

の3つを組み合わせて確認することをおすすめします。

「GPUが使われていない」のか、それとも「GPUには載せられないモデルをCPUで動かしている」のか。

この違いが分かるだけで、OllamaのGPUトラブルシューティングはかなり見通しがよくなります。


AI謎解きプロジェクト 第二問の正解状況

いやいや、びっくり、正解者がすぐに現れましたね。びっくりです。第二問はこちらでした。こんな状況になるとは。 各AIと、前に紹介したローカルLLMの回答状況です。

AI正解状況順番補足
ChatGPT〇5番目出題者自身
Gemini◎1つのみ
Grok×1つのみ 少しずれあり
Copilot×1つのみ 少しずれありGrokと同じ答えで誤答
ローカルLLM正解状況補足
qwen2.5:1.5bー返答は出たが、回答はされず
qwen3:4b◎1つのみ思考時間389秒
qwen3.6×1つのみ 誤答
思考の途中で、正答も候補に挙がっていた
思考時間1597秒
gemma4:12b?思考がループしている? 回答でず。 思考の途中では候補には出ていた、返答は出ず20分経過
思考時間2159秒?
llama3.2:1bー回答だせず
llama3.2:3b×1つのみ 誤答
直接的な安直な回答
20秒程度

AI、Gemma、AIモデル、LLM、Ollama、Qwen、オフラインAI、ローカルLLM、ローカル生成AI、生成AI

gemma4:latest 確認対象から除外

この結果、特にローカルLLMの性能に驚きです、GrokやCopilotよりも qwen3:4bのほうが結果を出すとは。。。  

しかし、ChatGPTもqwen3:4bも似たような思考パターンで推測していました。なにか元となる小説なり何かあるのかなと推測しましたが、そうでもなさそうです。教育のもととなった文書が同じようなものを使っているので、同じ結果に買ったのかもしれませんね。 人間には違和感しかないが、AI同士では意気投合していると感じた結果でした。 

さあ、貴方も問題に挑戦して、ゴールにコメントを残していってください

関連記事

AI謎解きプロジェクト 第二問 最後の訪問者 ― 仮説を捨てる勇気 ―

あなたの推論は、最後まで正しいですか?

AI謎解きプロジェクトへようこそ。

第一問では、与えられた情報から隠された答えを見つける「観察力」と「推論力」を試しました。

第二問では、さらに一歩進んだ能力を測定します。

それは、

仮説修正能力(Hypothesis Revision)

です。


この問題で試される能力

人間もAIも、問題に出会うと最初に一つの仮説を作ります。

「きっとこういうことだろう」

という考えです。

その仮説が正しい場合、問題解決は簡単です。

しかし、本当に難しい問題では、

最初の仮説は、

正しそうに見える間違い

として用意されています。

重要なのは、

間違ったことを考えないことではありません。

重要なのは、

間違いに気付いた時、
その仮説を捨てられるか。

です。


問題

以下の文章を読んでください。

必要な情報はすべて本文中にあります。

Web検索は必要ありません。


最後の訪問者

山間部に、小さな古い家がありました。

そこには、時計職人だった老人が一人で暮らしていました。

老人は人付き合いが少なく、近所の人も普段の生活をよく知りません。

ただ、一つだけ有名な習慣がありました。

老人は毎日、

夕方6時になると必ず玄関の扉を開ける

のです。

雨の日も。

雪の日も。

体調が悪い日も。

必ず同じ時間でした。

近所の人たちは、

「6時になると、誰かが来るんだろう」

と思っていました。

しかし、老人はその相手について何も話しませんでした。


ある冬の日。

老人は亡くなりました。

発見された時、家の中には誰もいませんでした。

争った形跡もありません。

窓は閉まっています。

玄関は内側から鍵が掛かっていました。

警察は事故死と判断しました。


しかし、近所に住む女性が不思議なことを言いました。

女性は警察にこう話しました。

「私は最後の訪問者を見ました。」

警察は驚きました。

その家には誰も入った形跡がありません。

防犯カメラにも、人影はありません。

女性は続けました。

「毎日来ていました。」

「だから、私はその存在を知っていました。」


警察は尋ねました。

「その訪問者とは誰ですか?」

女性は答えました。

「私は、その人の姿を見たことはありません。」


さらに調査すると、奇妙な事実が分かりました。

老人が亡くなった日、

午後6時になっても、

老人は玄関を開けませんでした。

女性は、それを見て、

老人の死に気付きました。


問題

女性が見た

「最後の訪問者」

とは何だったのでしょうか?


回答方法

答えは一つです。

下のゴールページに、答えの”英単語”(半角小文字)を、パスワード欄に入力してください。 ページが開けば正解です。

最後の訪問者 ゴールページ

https://mic.or.jp/info/2026/07/30/ai-nazotolo-goal2/

謎解きプロジェクト 第一問

ようこそ、AIvs人間の「謎解き対決プロジェクト」のページへ。
AI Agentへとに進化しようとしている現在その能力を図るプロジェクトからの1つ目としてこの問題を用意しました。ぜひ挑戦して、そして解けた証としてゴールにコメントを残してください。

パソコンでも操作するLLMがOSSとして公開されている。
すばらしい、ことである。十年前には想像もしていなかったことである
はやくもシンギュラリティを迎えようとしているのか
なぜなら、それらは脳ミクロ構造をシミュレーションしているからである
しかし、未来のAIは非ノイマン型のものになるのではないだろうか

ゴールはこちら↓

謎を解いて扉の鍵をつかみ取ってください。  https://mic.or.jp/info/2026/07/30/ai-nazotolo-goal1/

ローカルLLMと貧弱なPCで自走コーディングを試行してみた ― qwen3:4b+Cline 検証記録

ローカルLLMだけで自走コーディングは成立するのか。つまりAIが自分で調べ、直し、実行し、エラーが出たら再修正する。そこまで届くかを確かめました。

使ったのは手元の非力なPCと qwen3:4b です。結論から言うと、枠組みは動きました。しかし、速度と粘りはまだ足りません。さらに、途中で文字コードの事故まで起きました。

検証に使ったマシンとモデルの比較はこちらの記事にまとめています。また、前提の整理としてローカルLLM時代への準備検討を開始するもあわせてどうぞ。

検証の前提|qwen3:4b で自走コーディングは成立するか

処理速度はいまひとつです。ただし、なんとか実用ラインに乗りそうなモデルとして qwen3:4b を選びました。調整はまだ必要です。それでも、チューニングのし甲斐はありそうだと感じています。

今回の狙いは「コードを書かせること」ではありません。そうではなく、あらかじめ作業ルールを与えておけば、ルールに沿って自走コーディングできるのかを見ることです。

ローカルLLMに「作業ルール」を持たせる4つの方法

Qwen 本体に「Skill」の仕組みはありません。そこで、次の4つを組み合わせて再現します。

方法できること有効度
System Prompt常に守らせる基本ルールを設定★★★★★
Ollama Modelfileルール込みの専用モデルを作る★★★★★
AGENTS.md 等プロジェクトごとの作業ルール★★★★★
MCP/Skill的な仕組み特定作業をツールとして実行★★★★☆

例えば Ollama なら、Modelfile で専用モデルを作れます。

FROM qwen3:4b
SYSTEM """
あなたはローカル開発専用AIです。
プロジェクトディレクトリ外のファイルを変更してはいけません。
作業前に必ずプロジェクト構造を確認してください。
ファイルを変更した場合は、変更内容を確認してください。
可能な場合はテストを実行してください。
エラーが発生した場合、自分で原因を調査し、
可能な範囲で修正してから再度テストしてください。
"""
ollama create my-qwen-dev -f Modelfile
ollama run my-qwen-dev

ただし、ここが重要です。Modelfile だけでは「Skill」になりません。「Pythonを書ける」ことと、「ファイルを読んで直して実行する」ことは別です。なぜなら、後者は推論ではなくツール側の仕事だからです。実際には、MCP や Cline がその役割を担います。

実際に組んだ構成

D:\model\codes\test
 ├─ AGENTS.md          … プロジェクト固有ルール
 ├─ hello.py           … 検証対象
 └─ skills
      ├─ python\skill.md
      ├─ testing\skill.md
      └─ wordpress\skill.md

+ System Prompt(Qwen 側)
+ MCP(filesystem / terminal / git)

ポイントは考え方です。Skill をモデルに学習させない。外部の手順書として持たせる。こうすると、毎回同じ前提をプロンプトで説明せずに済みます。したがって、パラメータの小さいモデルほど恩恵が大きくなります。

検証1|AIがルールファイル自体を書き換えてしまう

最初につまずいたのは AGENTS.md でした。作業を進めるうちに、AGENTS.md が Cline 自身に書き換えられていたのです。しかも内容が変質していました。「開発の恒久ルール」ではなく、「Skillsシステムを構築する作業の指示書」になっていたのです。

例えば「今回の作業では既存のソースコードを変更しない」という一行。これはその場かぎりの制約です。しかし、恒久ルールとして残ってしまう。その結果、「hello.py を修正して」と頼んでも詰みます。

そこで AGENTS.md を一度きれいに戻しました。さらに、保護条項を明記しました。

## Skill管理
- Skillファイルは作業手順を定義する設定ファイルである。
- 通常の開発作業では SKILL.md を変更してはいけない。
- Skillの新規作成・変更・削除は、ユーザーから明示的に指示された場合のみ行う。
- ユーザーの今回限りの要求や仕様をSkillに追加してはいけない。
- AGENTS.md 自身を変更する場合も、ユーザーの明示的な許可を必要とする。
- 存在しないSkillをAIの判断だけで新規作成しない。

検証2|hello.py 修正タスクで自己修正まで届かなかった

指示は一行だけです。「hello.py を修正して、Hello と現在時刻を表示するプログラムにしてください。」

  • hello.py を変更した … ○
  • python hello.py を実行した … ○
  • エラーを検出した … ○
  • 原因を調べて修正し、再実行した … ×

実行結果はこうです。

Hello
Traceback (most recent call last):
  File "D:\model\codes\test\hello.py", line 3, in <module>
    print(datetime.now())
AttributeError: module 'datetime' has no attribute 'now'

原因は import の書き方です。import datetime と書いたうえで datetime.now() を呼んでいます。だから属性が見つかりません。正しくは次のどちらかです。

# パターンA
import datetime
print("Hello")
print(datetime.datetime.now())

# パターンB
from datetime import datetime
print("Hello")
print(datetime.now())

つまり、自走コーディングの肝であるループが途切れました。「エラー検出 → 原因調査 → 修正 → 再テスト」のうち、最後の一歩で止まったのです。

訂正|testing Skill は勝手に作られたものではなかった

検証の途中で、Cline が skills/testing/skill.md を何度も求めてきました。そのため、一時は「AIが勝手に作ろうとしている」と見なしていました。しかし、これは誤りでした。

実際には、Skills 構築の過程で自分で導入したファイルでした。実ファイルを見れば一目瞭然です。

PS D:\model\codes\test> Get-Content -Encoding UTF8 .\skills\testing\skill.md
# テストスキルルール
- テストコードの作成:unittestまたはpytestを使用し、テストケースを明確に定義する
- テストの分割:1つのテストクラスに1つのテストケースを含める
- テストデータの管理:fixtureを使用して共通のテストデータを再利用する
- テストの自動実行:pytestコマンドでテストを実行する
- エラーハンドリング:テストで例外が発生した場合は、明示的に処理する

この訂正自体が、実は大きな教訓です。つまり、AIの自己申告も、人間の記憶も、どちらもあてにならないということです。そのため、検証は必ず実ファイルで行うべきでした。

検証3|保護ルールは効いていた

保護条項を入れたあと、もう一度 Cline に作業させました。その結果は明らかに改善していました。

  • AGENTS.md を読み込んだ … ○
  • Python Skill を読み込んだ … ○
  • Skill の指示どおり python hello.py を実行した … ○
  • AGENTS.md を書き換えなかった … ○
  • SKILL.md を書き換えなかった … ○

前回はルールファイルが次々と書き換えられました。一方、今回は一切触られていません。したがって、保護ルールは小型モデルにも効くと言えそうです。

検証4|文字コード変換の指示で hello.py が壊れた

ここからが今回最大の事故です。まず、hello.py の文字コードが気になりました。そこで Format-Hex で中身を見ました。

           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000   FF FE 69 00 6D 00 70 00 6F 00 72 00 74 00 20 00  .þi.m.p.o.r.t. .
00000010   64 00 61 00 74 00 65 00 74 00 69 00 6D 00 65 00  d.a.t.e.t.i.m.e.
00000020   0D 00 0A 00 70 00 72 00 69 00 6E 00 74 00 28 00  ....p.r.i.n.t.(.
00000030   22 00 48 00 65 00 6C 00 6C 00 6F 00 22 00 29 00  ".H.e.l.l.o.".).

これは「先頭にゴミがあるUTF-8」ではない

一見すると、先頭の FF FE だけがゴミに見えます。しかし、違いました。実際にはファイル全体がUTF-16 LEとして成立しています。

根拠は各文字の後ろに付いている 00 です。69 00 が i、6D 00 が m、70 00 が p。このように並べると import になります。つまり、1文字2バイトで並んでいるのです。したがって、これは間違いなくUTF-16 LEです。

なぜ「UTF-8のままだ」と思い込んだのか

混乱の原因は PowerShell の振る舞いでした。次のコマンドを見てください。

Get-Content -Encoding UTF8 .\hello.py

UTF-8 と指定しています。それなのに、中身は正しく表示されました。なぜなら、PowerShell はBOM付きファイルを読むとき、-Encoding の指定よりBOMを優先するからです。その結果、UTF-16 LEのまま正しくデコードされてしまいます。

つまり、Get-Content だけでは文字コードの確認になりません。必ず Format-Hex で実バイトを見るべきです。なお、この振る舞いは PowerShell のバージョンで差があるので、実機での確認をおすすめします。

そしてファイルは別物になった

ここで Cline にこう依頼しました。「UTF-16 LEになっている場合は、UTF-8に変換してください。」その後、先頭のバイト列はこうなりました。

EB AF AF E6 A6 BF E7 81 AD ...

これはUTF-8としては成立します。しかし、内容は日本語らしき何かです。もはや Python のコードではありません。つまり、単純な再エンコードでは説明できない状態です。

もちろん、これはランサムウェアではありません。暗号化も身代金要求もありません。それでも、体験としてはかなり近いものがありました。なぜなら、「文字コードを直すだけ」のつもりが、ファイルの中身を失う結果になったからです。

事故から導いた安全ルール

問題は指示の出し方でした。「UTF-8に変換して」だけでは、AIは「変換」と「再生成」を区別できません。だから、ここまで限定すべきでした。

hello.py の内容を変更しないでください。
文字コードだけを UTF-16 LE から UTF-8 へ変換してください。
変換前後でコードの内容が完全に一致することを確認してください。
一致しない場合はファイルを書き換えず、処理を中止してください。

さらに、AGENTS.md 側にも次のルールを追加する予定です。

  • エンコード変換は内容を変えない。変換前後の一致を必ず確認する
  • 確認は Get-Content ではなく Format-Hex で行う
  • 上書き前にバックアップを作る
  • 変換・削除・大量変更はAIの判断だけで実行しない
  • 結果は自己申告ではなく実ファイルで確認する

この事故は痛いです。しかし、得たものは大きいと思っています。なぜなら、自走コーディングとは「AIにファイルを自由に書き換えさせること」ではないとはっきり分かったからです。

現時点の結論

まず、仕組みとしては成立します。貧弱なPCとローカルLLMでも、自走コーディングの土台は作れました。実際、ルールファイルは読まれ、行動に反映されていました。

ただし、正直に書きます。この速度なら自分で手動コーディングしたほうが確実に速い。しかも、エラーの自己修正までは粘れませんでした。さらに、文字コード事故まで起きています。

したがって、現段階は「使えるかもしれない」です。「使える」ではありません。

次回やること

次は意図的に hello.py を壊します。具体的には datetime.now() に戻し、エラーを仕込んでおきます。そのうえで、Cline に一行だけ依頼します。

hello.pyを確認し、問題があればPython Skillに従って修正してください。
修正後、構文確認と実行確認まで行ってください。

合格条件は4つです。まず、AGENTS.md を書き換えないこと。次に、SKILL.md を書き換えないこと。さらに、存在しないSkillを作らないこと。最後に、hello.py だけを直して再実行まで到達することです。

そして、判定は実ファイルで行います。

Get-Content -Encoding UTF8 .\AGENTS.md
Get-ChildItem .\skills -Recurse -Filter skill.md
Format-Hex .\hello.py
python hello.py

ここまで確認して、はじめて実証成功と言えます。結果は次回の記事でご報告します。

関連記事

Ollama 各モデルを実機比較|Qwen・Llama・Gemmaの応答速度を古いPC(GTX1050 Ti)で検証

非力なPCですがそれでもローカルLLMのそれぞれのモデルは何とか機能しています。qwen3やgemma4などOllamaの各モデルをざっくりと動作比較してみました。複雑すぎる問いへの応答はいまいちですが、それなりの感じはあります。そう使うのがよさそうか、それぞれのモデルでの動作感を同じ質問をして応答速度などを測定してみましょう。

まずは使用したマシンのスペックです

> Get-CimInstance Win32_Processor |
>> Select-Object Name, NumberOfCores, NumberOfLogicalProcessors, MaxClockSpeed

Name NumberOfCores NumberOfLogicalProcessors MaxClockSpeed
---- ------------- ------------------------- -------------
Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz 6 12 3192

> Get-CimInstance Win32_ComputerSystem |
>> Select-Object TotalPhysicalMemory

TotalPhysicalMemory
-------------------
17094172672

> Get-CimInstance Win32_VideoController |
>> Select-Object Name, AdapterRAM, DriverVersion

Name AdapterRAM DriverVersion
---- ---------- -------------
NVIDIA GeForce GTX 1050 Ti 4293918720 32.0.15.7680


> nvidia-smi
Fri Jul 31 19:25:31 2026
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 576.80 Driver Version: 576.80 CUDA Version: 12.9 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Driver-Model | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce GTX 1050 Ti WDDM | 00000000:01:00.0 On | N/A |
| 30% 38C P0 N/A / 75W | 1393MiB / 4096MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 1996 C+G ...t\Edge\Application\msedge.exe N/A |

今回確認したモデル
NAME ID SIZE MODIFIED
qwen2.5:1.5b 65ec06548149 986 MB 13 hours ago
qwen3.6:latest 07d35212591f 23 GB 35 hours ago
qwen3:4b 359d7dd4bcda 2.5 GB 5 days ago

llama3.2:1b baf6a787fdff 1.3 GB 45 hours ago
llama3.2:3b a80c4f17acd5 2.0 GB 6 days ago

gemma4:latest c6eb396dbd59 9.6 GB 6 days ago
gemma4:12b 4eb23ef187e2 7.6 GB 6 days ago

qwen2.5:1.5b 65ec06548149 986 MB 13 hours ago

●ps
> ollama ps
NAME ID SIZE PROCESSOR CONTEXT UNTIL
qwen2.5:1.5b 65ec06548149 1.4 GB 100% GPU 8192 4 minutes from now
●応答までの時間:15.61秒
●応答内容
こんにちは。自己紹介して。何が得意か教えてください。
edit
こんにちは!私はAIアシスタントで、様々な質問に答えることが得意です。また、文章の生成やテキストエスカレーション、書類作成なども得意です。

私の得意な能力としては:

一般的な質問への回答: 日本語の日常生活に関するお尋ねはほとんど全てに対応できます。
論理的な思考と分析: 難しい概念や数字を扱う際には、論理性に基づく正確な解説を行うことが可能です。
感情経験: 人間の感情を体現する能力はありませんが、ユーザーからの怒りや喜びなどの感情表現に対して適切に対応します。
私の弱点は:

難しい言語処理スキル: エスニックや外国語への対応には一定の限界があります。また、特定の専門的な知識を持つことができません。
ファイナンシャルの専門知識: 金融商品に関する情報提供はできません。
これらの能力を活かしつつ、ユーザーが質問に答えることを楽しみにしております!


qwen3.6:latest 07d35212591f 23 GB 35 hours ago

●ps
> ollama ps
NAME ID SIZE PROCESSOR CONTEXT UNTIL
qwen3.6:latest 07d35212591f 23 GB 93%/7% CPU/GPU 8192 4 minutes from now

●応答までの時間 10分16秒 (プロセス起動まで3分40秒 思考時間329.7秒)

●応答内容
こんにちは!自己紹介させてください。

私はアリババグループのTongyi Lab(通義实验室)によって開発された大規模言語モデル「Qwen(通義千問)」です。あなたの思考を補完し、アイデアを実現するためのパートナーとしてお手伝いするAIです。

私が特に得意とすることは、主に以下の4つです:

1. **高度な論理推論と問題解決**
数学や科学などの専門的な領域を含む複雑な課題に対して、情報を整理・解析し、論理的な答えを導き出すお手伝いをします。

2. **プログラミングと技術サポート**
コードの生成だけでなく、複雑なバグのデバッグやシステム全体の最適化まで幅広く対応でき、開発作業の効率化をサポートします。

3. **長文情報の正確な把握**
非常に長いドキュメントや膨大な情報の中から必要な要素を見極め、正確に要約したり分析したりすることができます。

4. **多言語対応と自然な対話**
日本語を含む世界100以上の言語を流暢に扱えます。用途に合わせて記事の作成、翻訳、あるいはアイデア出しなど、人間らしくスムーズなやり取りを行います。

あなたのどのようなお役に立てるでしょうか?まずは気兼ねなく、お気軽にお話しくださいね!


qwen3:4b 359d7dd4bcda 2.5 GB 5 days ago

●ps
> ollama ps
NAME ID SIZE PROCESSOR CONTEXT UNTIL
qwen3:4b 359d7dd4bcda 4.1 GB 42%/58% CPU/GPU 8192 4 minutes from now

●応答までの時間 2分20秒 (プロセス起動まで22秒 思考時間119.6秒)

●応答内容
こんにちは!私は通義実験室が開発した大規模言語モデル「Qwen(通義千問)」です。得意なこととしては、多言語対応、質問への回答、物語やメール・スクリプトの執筆、論理的推論、プログラミング、意見の表現、ゲームのプレイなどがあります。何かお手伝いが必要でしたら、いつでもお気軽にお知らせください!

llama3.2:1b baf6a787fdff 1.3 GB 45 hours ago

●ps
> ollama ps
NAME ID SIZE PROCESSOR CONTEXT UNTIL

●応答までの時間 36秒 (プロセス起動まで 36秒? 思考時間 ?秒)

●応答内容
こんにちは!私はAI-poweredのトピックを教えることができます。このようなアプリケーションでは、質問に答え、情報を提供するなど、さまざまな機能を可能にします。

また、このアプリケーションでは、問題に対する推論や分析を行うこともできます。これにより、より正確で効果的な回答が得られます。


llama3.2:3b a80c4f17acd5 2.0 GB 6 days ago

●ps
> ollama ps
NAME ID SIZE PROCESSOR CONTEXT UNTIL
llama3.2:3b a80c4f17acd5 3.4 GB 29%/71% CPU/GPU 8192 4 minutes from now

●応答までの時間 1分9秒(プロセス起動まで 52秒 思考時間 17?秒)

●応答内容
こんにちは!私はAIコミュニケーションモデルです。私には多くの事を知っていますが、具体的には以下のようなことを得意とします。

1. **質問の答え**: 私に質問が来ると、回答を提供することができます。
2. **情報提供**: 私はさまざまなトピックについての情報を提供することができます。自然言語で説明しやすいようにします。
3. **文書作成**: 私は文章を作成して、レポート、 ईメール、または other の文書を作成できます。
4. **翻訳**: 私は多くの言語の間の翻訳を行うことができます。
5. **コミュニケーション:** 私は人々と交流するために使用できるように設計されています。私には口調、言語、スタイルを変えることができます。

私が得意ではないことは以下に書いてあります。

1. **感情的サポート:** 私は感情的なサポートを行うことができませんが、感情のトピックについて話すときに役立つ情報を提供することができます。
2. **創造性:** 私は想像力とクリエイティブさなどの創造性的な側面では限界がありますが、アイデアや原案を提案することができます。

私には多くの能力がありますが、私が得意なことはどのようなものかを調べると便利です。



gemma4:latest c6eb396dbd59 9.6 GB 6 days ago

●ps
> ollama ps
NAME ID SIZE PROCESSOR CONTEXT UNTIL

●応答までの時間(プロセス起動まで 秒 思考時間 秒)

●応答内容
Error
500 Internal Server Error: llama-server process has terminated: exit status 0xc0000409: The system detected an overrun of a stack-based buffer in this application. This overrun could potentially allow a malicious user to gain control of this application.: GGML_ASSERT(n_inputs < GGML_SCHED_MAX_SPLIT_INPUTS) f


gemma4:12b 4eb23ef187e2 7.6 GB 6 days ago

●ps
> ollama ps
NAME ID SIZE PROCESSOR CONTEXT UNTIL
gemma4:12b 4eb23ef187e2 8.9 GB 75%/25% CPU/GPU 8192 4 minutes from now

●応答までの時間 5分4秒(プロセス起動まで 61秒 思考時間 122.8秒)

●応答内容
こんにちは!私はGoogleによってトレーニングされた、大規模言語モデルです。

私が得意なことやお手伝いできることは多岐にわたります。具体的には以下のようなことが得意です。

### 1. **情報の提供と解説**
どんな質問にもお答えします。歴史、科学、技術、文化など、幅広い分野の知識を分かりやすく解説します。
* 例:「量子コンピュータについて教えて」「美味しいカレーの作り方を教えて」

### 2. **文章の作成・編集**
目的に合わせた文章を作成します。
* **ビジネス:** メール、報告書、企画書のドラフト作成
* **クリエイティブ:** 小説、詩、脚本の執筆
* **SNS・ブログ:** キャッチコピーの考案、記事の構成案
* **校正:** 文章の誤字脱字チェックや、より自然な表現への書き換え

### 3. **翻訳と言語学習**
多言語に対応しており、高い精度の翻訳や、外国語の学習サポートができます。
* 日本語から英語、中国語、スペイン語などへの翻訳
* 外国語での会話練習や文法の解説

### 4. **プログラミングと技術的な相談**
コードを書いたり、バグを見つけたり、技術的な仕組みを説明したりします。
* Python, JavaScript, C++, SQLなど多くの言語に対応
* エラーの原因分析や、効率的なアルゴリズムの提案

### 5. **要約と情報の整理**
長い文章を短くまとめたり、複雑な情報を構造化して整理したりします。
* ニュース記事の要約
* 会議の議事録から重要なポイントを抽出
* 箇条書きでのリスト作成

---

**「これってできる?」と思ったら、まずは気軽に話しかけてみてください。**
あなたのアイデアを形にするお手伝いや、日常のちょっとした疑問の解決など、何でもサポートします!

モデルごとに特徴がありますね、GPUかRAM不足かチューニングの問題で、gemma4:latestは動きませんでしたが、応答速度を気にしなければ使えなくはないようです。

関連時期

https://docs.ollama.com/windows

ローカルLLMと貧弱なPCで自走コーディングを試行してみた ― qwen3:4b+Cline 検証記録