<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Webサイトに必要なことと道具</title>
	<atom:link href="https://xn--ecka7j.biz/feed/" rel="self" type="application/rss+xml" />
	<link>https://xn--ecka7j.biz</link>
	<description>セキュリティ対策、最適化、ツール、工作</description>
	<lastBuildDate>Tue, 02 Jun 2026 01:30:34 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://xn--ecka7j.biz/wp-content/uploads/2020/02/cropped-ogt-512-512-024-068-32x32.png</url>
	<title>Webサイトに必要なことと道具</title>
	<link>https://xn--ecka7j.biz</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【なぜ人気？】Pythonの「クソ仕様」に絶望した私が、それでもAIバッチ開発にPythonを選ばざるを得ない3つの狂気</title>
		<link>https://xn--ecka7j.biz/efficiency-vs-thought-ai-symbiosis/ai-verification-mindset/14134/</link>
		
		<dc:creator><![CDATA[Jun-N]]></dc:creator>
		<pubDate>Mon, 01 Jun 2026 11:20:37 +0000</pubDate>
				<category><![CDATA[検証シリーズ：向き合い方]]></category>
		<category><![CDATA[AIとの共生]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[ツール]]></category>
		<category><![CDATA[道具]]></category>
		<guid isPermaLink="false">https://xn--ecka7j.biz/?p=14134</guid>

					<description><![CDATA[前回、私は『Pythonの「たった1文字」で3時間溶けた話』という記事を書いた。 ファイル名に少し意図を込めただけでシステムから存在を黙殺され、空白の数だけでネストが変わるPythonの「先のことを全く考えていないクソ仕 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p></p>



<p>前回、私は『Pythonの「たった1文字」で3時間溶けた話』という記事を書いた。</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">

<a href="https://xn--ecka7j.biz/efficiency-vs-thought-ai-symbiosis/ai-verification-mindset/14116/" title="【決定版】Pythonの「たった1文字」で3時間溶けた話。開発者は頭がおかしいのか？" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img fetchpriority="high" decoding="async" width="320" height="180" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/n00-_093356-320x180.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/n00-_093356-320x180.jpg 320w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n00-_093356-120x68.jpg 120w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n00-_093356-160x90.jpg 160w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【決定版】Pythonの「たった1文字」で3時間溶けた話。開発者は頭がおかしいのか？</div><div class="blogcard-snippet internal-blogcard-snippet">Pythonの相対インポート `from .module` がなぜ分かりにくいのか、その歴史的理由と対策を解説。たった1文字 `.` で挙動が変わる『クソ仕様』の真相と、AS/400との比較から見えるPythonの限界。Python初心者からベテランまで、一度は悩んだ『インポート地獄』を完全解決。『急がば回れ』の精神でPythonと向き合う方法。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://xn--ecka7j.biz" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">イイネ.biz</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2026.06.02</div></div></div></div></a>
</div>



<p>ファイル名に少し意図を込めただけでシステムから存在を黙殺され、空白の数だけでネストが変わるPythonの「先のことを全く考えていないクソ仕様」に、リアルに机を叩いて激怒した。</p>



<p>だが、ここで誰もが不思議に思うはずだ。<br><strong>「そんなダメダメな言語が、なぜ今、世界人気ナンバーワンの座に君臨しているのか？」</strong></p>



<p>JavaやC言語、Rustのような洗練された言語があるにもかかわらず、なぜ私たちは、この融通の利かないPythonを「承知の上で」使い続けなければならないのか。</p>



<p>結論から言おう。Pythonは言語として美しいから愛されているのではない。<strong>「最強の武器を持った、最高に都合のいいおバカ」</strong>だからだ。今回は、線画だらけの英文マニュアルをOCR（ocrmypdf）で文字起こしし、ローカルLLM（Qwen2.5）でバッチ翻訳するという「泥臭い開発の最前線」から、Pythonが世界を制した信じがたいパラドックスを解き明かす。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="800" height="447" src="https://xn--ecka7j.biz/wp-content/uploads/2026/06/01-Python-Chapter1-The-History-of-How-Mathematicians-Programming-Novices-All-Lumped-the-Rigid-Languages-800x447.jpg" alt="Python" class="wp-image-14129" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/06/01-Python-Chapter1-The-History-of-How-Mathematicians-Programming-Novices-All-Lumped-the-Rigid-Languages-800x447.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/01-Python-Chapter1-The-History-of-How-Mathematicians-Programming-Novices-All-Lumped-the-Rigid-Languages-500x279.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/01-Python-Chapter1-The-History-of-How-Mathematicians-Programming-Novices-All-Lumped-the-Rigid-Languages-300x167.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/01-Python-Chapter1-The-History-of-How-Mathematicians-Programming-Novices-All-Lumped-the-Rigid-Languages-768x429.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/01-Python-Chapter1-The-History-of-How-Mathematicians-Programming-Novices-All-Lumped-the-Rigid-Languages-120x68.jpg 120w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/01-Python-Chapter1-The-History-of-How-Mathematicians-Programming-Novices-All-Lumped-the-Rigid-Languages-160x90.jpg 160w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/01-Python-Chapter1-The-History-of-How-Mathematicians-Programming-Novices-All-Lumped-the-Rigid-Languages-320x180.jpg 320w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/01-Python-Chapter1-The-History-of-How-Mathematicians-Programming-Novices-All-Lumped-the-Rigid-Languages.jpg 1376w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">Python-The History of How Mathematicians (Programming Novices) All Lumped the Rigid Languages</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc1">第1章：「数学者（プログラミングの素人）」たちが、お堅い言語を全員で拒絶した歴史</span></h2>



<ul class="wp-block-list">
<li><strong>AI</strong><strong>の生みの親はエンジニアではない</strong>
<ul class="wp-block-list">
<li>AIやデータ解析のアルゴリズム（理論）の土台を作ったのは、コードの美しさを競うプログラマーではなく、数式を証明したい数学者や科学者だった。</li>
</ul>
</li>



<li><strong>「型定義」や「おまじない」へのウンザリ感</strong>
<ul class="wp-block-list">
<li>C言語やJavaで画面に1行出すための厳格なルールは、彼らにとって「本業（数式）の邪魔」でしかなかった。</li>
</ul>
</li>



<li><strong>「ノートに数式を書く感覚」で動くユルさ</strong>
<ul class="wp-block-list">
<li>型も不要、適当に書いてもパッと動くPythonの「ガバガバさ」こそが、アイデアを最速でスケッチしたい天才たちにとって、最高にハードルの低い「実験場」となった。</li>
</ul>
</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="447" src="https://xn--ecka7j.biz/wp-content/uploads/2026/06/02-Python-Chapter2-The-cheat-ability-of-simply-being-a-commander-wielding-the-muscles-of-C-language-behind-the-scenes-800x447.jpg" alt="Python" class="wp-image-14130" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/06/02-Python-Chapter2-The-cheat-ability-of-simply-being-a-commander-wielding-the-muscles-of-C-language-behind-the-scenes-800x447.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/02-Python-Chapter2-The-cheat-ability-of-simply-being-a-commander-wielding-the-muscles-of-C-language-behind-the-scenes-500x279.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/02-Python-Chapter2-The-cheat-ability-of-simply-being-a-commander-wielding-the-muscles-of-C-language-behind-the-scenes-300x167.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/02-Python-Chapter2-The-cheat-ability-of-simply-being-a-commander-wielding-the-muscles-of-C-language-behind-the-scenes-768x429.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/02-Python-Chapter2-The-cheat-ability-of-simply-being-a-commander-wielding-the-muscles-of-C-language-behind-the-scenes-120x68.jpg 120w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/02-Python-Chapter2-The-cheat-ability-of-simply-being-a-commander-wielding-the-muscles-of-C-language-behind-the-scenes-160x90.jpg 160w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/02-Python-Chapter2-The-cheat-ability-of-simply-being-a-commander-wielding-the-muscles-of-C-language-behind-the-scenes-320x180.jpg 320w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/02-Python-Chapter2-The-cheat-ability-of-simply-being-a-commander-wielding-the-muscles-of-C-language-behind-the-scenes.jpg 1376w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">Python-The cheat ability of simply being a [commander,] wielding the [muscles of C language] behind the scenes</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc2">第2章：裏で「C言語の筋肉」を操る、ただの「命令役」というチート特性</span></h2>



<ul class="wp-block-list">
<li><strong>遅すぎるPython、速すぎるC言語の合体</strong>
<ul class="wp-block-list">
<li>Python自身の処理速度はゴミのように遅い。だが、Pythonは内部設計がシンプルだったため、「重たい計算部分だけをC言語にすり替える」という拡張（接着）が異常に簡単だった。</li>
</ul>
</li>



<li><strong>私たちが触っているのは「拡声器」だけ</strong>
<ul class="wp-block-list">
<li>あなたが動かしている <code>ocrmypdf</code> の高度な画像解析も、<code>Qwen2.5-14B</code> の超重量級のAI推論も、実際はPythonではなく裏の「C言語の筋肉」が身代わりになって爆速で実行している。</li>
</ul>
</li>



<li><strong>「コードを書くのはラク（Python）」</strong><strong>×</strong><strong>「実行は爆速（C言語）」のハイブリッド</strong>
<ul class="wp-block-list">
<li>本体の仕様がおバカでも、1行 <code>import</code> するだけで世界最強の筋肉をノーコストで操れる。この「接着剤（グルー言語）」としての有用性に、全人類がひれ伏した。</li>
</ul>
</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="447" src="https://xn--ecka7j.biz/wp-content/uploads/2026/06/03-Python-Chapter-3-Unparalleled-strength-in-quickly-completing-the-gritty-cleanup-text-processing-800x447.jpg" alt="Python" class="wp-image-14131" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/06/03-Python-Chapter-3-Unparalleled-strength-in-quickly-completing-the-gritty-cleanup-text-processing-800x447.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/03-Python-Chapter-3-Unparalleled-strength-in-quickly-completing-the-gritty-cleanup-text-processing-500x279.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/03-Python-Chapter-3-Unparalleled-strength-in-quickly-completing-the-gritty-cleanup-text-processing-300x167.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/03-Python-Chapter-3-Unparalleled-strength-in-quickly-completing-the-gritty-cleanup-text-processing-768x429.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/03-Python-Chapter-3-Unparalleled-strength-in-quickly-completing-the-gritty-cleanup-text-processing-120x68.jpg 120w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/03-Python-Chapter-3-Unparalleled-strength-in-quickly-completing-the-gritty-cleanup-text-processing-160x90.jpg 160w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/03-Python-Chapter-3-Unparalleled-strength-in-quickly-completing-the-gritty-cleanup-text-processing-320x180.jpg 320w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/03-Python-Chapter-3-Unparalleled-strength-in-quickly-completing-the-gritty-cleanup-text-processing.jpg 1376w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">Python-Unparalleled strength in quickly completing the-gritty cleanup (text processing)</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc3">第3章：「泥臭いゴミ掃除（テキスト加工）」を最短で片付ける、無類の強さ</span></h2>



<ul class="wp-block-list">
<li><strong>OCR</strong><strong>の宿命「線画ノイズ」との闘い</strong>
<ul class="wp-block-list">
<li>図面の斜線や網掛けが、すべて「___」や「|||」といった文字化けの塵（ノイズ）になってテキストを汚染する地獄。これを放置すればAIは確実に暴走する。</li>
</ul>
</li>



<li><strong>他の言語なら「お作法コード」だけで日が暮れる</strong>
<ul class="wp-block-list">
<li>厳格な言語なら、ファイルを開いて、メモリを確保して、文字コードを判定して…と、ノイズを1つ弾くために数十行のコードが必要になる。</li>
</ul>
</li>



<li><strong>Python</strong><strong>なら「ゴミ辞書」を直感的に作れる</strong>
<ul class="wp-block-list">
<li>中身が空（0バイト）のファイルでもパッケージの目印にできるほど構造が単純だからこそ、職人が本当に集中したい「正規表現でのノイズ除去」や「ゴミ辞書の構築」を最小限の行数でダイレクトに記述できる。</li>
</ul>
</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="447" src="https://xn--ecka7j.biz/wp-content/uploads/2026/06/04-Python-Chapter-4-The-Snowball-Effect-Ecosystem-of-Upfront-Investment-No-One-Can-Escape-800x447.jpg" alt="Python" class="wp-image-14132" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/06/04-Python-Chapter-4-The-Snowball-Effect-Ecosystem-of-Upfront-Investment-No-One-Can-Escape-800x447.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/04-Python-Chapter-4-The-Snowball-Effect-Ecosystem-of-Upfront-Investment-No-One-Can-Escape-500x279.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/04-Python-Chapter-4-The-Snowball-Effect-Ecosystem-of-Upfront-Investment-No-One-Can-Escape-300x167.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/04-Python-Chapter-4-The-Snowball-Effect-Ecosystem-of-Upfront-Investment-No-One-Can-Escape-768x429.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/04-Python-Chapter-4-The-Snowball-Effect-Ecosystem-of-Upfront-Investment-No-One-Can-Escape-120x68.jpg 120w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/04-Python-Chapter-4-The-Snowball-Effect-Ecosystem-of-Upfront-Investment-No-One-Can-Escape-160x90.jpg 160w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/04-Python-Chapter-4-The-Snowball-Effect-Ecosystem-of-Upfront-Investment-No-One-Can-Escape-320x180.jpg 320w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/04-Python-Chapter-4-The-Snowball-Effect-Ecosystem-of-Upfront-Investment-No-One-Can-Escape.jpg 1376w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">Python-The Snowball Effect (Ecosystem) of Upfront Investment No One Can Escape</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc4">第4章：誰も抜け出せない、先行投資の「雪だるま効果（エコシステム）」</span></h2>



<ul class="wp-block-list">
<li><strong>「人が人を呼ぶ」無敵のループ</strong>
<ul class="wp-block-list">
<li>「AI研究にはPythonが楽」➔ 世界中の大学がPythonでコードを公開 ➔ GoogleやMetaなどのビッグテックも「みんなが使うPython向けに最新AI（PyTorch等）を出すのが一番普及する」と判断。</li>
</ul>
</li>



<li><strong>「仕様はクソだが、武器がここにしかない」という現実</strong>
<ul class="wp-block-list">
<li>他言語のエンジニアが「Pythonのインデント仕様はクソだ」と正論を言ったところで、最先端のAIやOCRの武器はPythonの畑にしか落ちていない。結果、全員が「渋々、Pythonを手なずける」道を選ぶ。</li>
</ul>
</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="447" src="https://xn--ecka7j.biz/wp-content/uploads/2026/06/0908a2aa8e0fa8457447f168a1e5f2f3-800x447.jpg" alt="python" class="wp-image-14133" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/06/0908a2aa8e0fa8457447f168a1e5f2f3-800x447.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/0908a2aa8e0fa8457447f168a1e5f2f3-500x279.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/0908a2aa8e0fa8457447f168a1e5f2f3-300x167.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/0908a2aa8e0fa8457447f168a1e5f2f3-768x429.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/0908a2aa8e0fa8457447f168a1e5f2f3-120x68.jpg 120w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/0908a2aa8e0fa8457447f168a1e5f2f3-160x90.jpg 160w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/0908a2aa8e0fa8457447f168a1e5f2f3-320x180.jpg 320w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/0908a2aa8e0fa8457447f168a1e5f2f3.jpg 1376w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">python-[Summary] The clumsy and selfish but most easily wielding the world&#8217;s most powerful weapon (AI) – the idiot (Python) – was able to keep up with the rapidly changing times, rather than the skillful and rigid g</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc5">【まとめ】</span></h2>



<p>Pythonが人気な理由。それは<strong>「器用でお堅い秀才（他言語）」よりも、「不器用でワガママだけど、世界最強の武器（AI）を一番手軽に振り回せるおバカ（Python）」の方が、激変する時代のスピードに勝てたから</strong>だ。</p>



<p>だからこそ、そのまま動かせば暴走するこの不器用な監督（Python）を、例外処理や厳格な起動ルール（<code>-m</code>）でガチガチに固める<strong>「エンタープライズ級のバッチ設計」ができる職人</strong>の価値が、今、市場で跳ね上がっている。</p>



<p>さあ、今日もPythonのワガママ（インデントエラー）に愚痴を言いながら、世界最強のAI翻訳バッチを完成させるとしよう。</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">

<a href="https://xn--ecka7j.biz/efficiency-vs-thought-ai-symbiosis/14082/" title="【実証】AIオーケストレーションの限界と最適解：DeepSeek暴走を防ぐエンタープライズ級Pythonバッチ設計" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="320" height="180" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/00-AI-Orchestration-320x180.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/00-AI-Orchestration-320x180.jpg 320w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/00-AI-Orchestration-120x68.jpg 120w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/00-AI-Orchestration-160x90.jpg 160w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【実証】AIオーケストレーションの限界と最適解：DeepSeek暴走を防ぐエンタープライズ級Pythonバッチ設計</div><div class="blogcard-snippet internal-blogcard-snippet">AIに丸投げでは出来高50%未満の赤点？AS/400のCLP構造や150語のルールでDeepSeekが暴走した実体験から、Copilotとの役割分担、Claude 4.5 Sonnetの有効性、PCローカル環境（Ryzen AI 9）で品質100%を叩き出すPythonパイプラインの最終設計図までを徹底解説。Ryzen AI 9 HX470 LLM</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://xn--ecka7j.biz" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">イイネ.biz</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2026.05.23</div></div></div></div></a>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【決定版】Pythonの「たった1文字」で3時間溶けた話。開発者は頭がおかしいのか？</title>
		<link>https://xn--ecka7j.biz/efficiency-vs-thought-ai-symbiosis/ai-verification-mindset/14116/</link>
		
		<dc:creator><![CDATA[Jun-N]]></dc:creator>
		<pubDate>Sun, 31 May 2026 03:56:34 +0000</pubDate>
				<category><![CDATA[検証シリーズ：向き合い方]]></category>
		<category><![CDATA[AIとの共生]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[ツール]]></category>
		<category><![CDATA[道具]]></category>
		<guid isPermaLink="false">https://xn--ecka7j.biz/?p=14116</guid>

					<description><![CDATA[この記事でわかること &#8211; Pythonの相対インポート `from .module` と `from module` の違いがなぜ「クソ仕様」なのか &#8211; たった1文字 `.` の有無でプログラムの [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>この記事でわかること</p>



<p>&#8211; Pythonの相対インポート `from .module` と `from module` の違いがなぜ「クソ仕様」なのか</p>



<p>&#8211; たった1文字 `.` の有無でプログラムの生死が分かれる恐怖</p>



<p>&#8211; Pythonがこの「目障りな仕様」を変えられない本当の理由</p>



<p>&#8211; AS/400の思想と比較してわかる、Python設計の「後先考えなかった」証拠</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/n99-_100438-800x533.jpg" alt="Python" class="wp-image-14106" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/n99-_100438-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n99-_100438-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n99-_100438-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n99-_100438-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n99-_100438.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">まとめ</figcaption></figure>



<p>「<span class="bold">なんで `.` がついただけで動かなくなるんだよ！</span>」</p>



<p>これは私が昨日、WSL2上のPythonバッチ処理で3時間悩んだ末に出た言葉です。</p>



<p>私は今、DeepSeek-R1を制御するエンタープライズ級のバッチ処理をPythonで書いています。シェルスクリプトでは限界があったからです。しかし――</p>



<p><strong>Pythonを知ってまだ1週間。そして「この仕様」を知ったのが昨日。</strong></p>



<p>結論から言います。Pythonの開発者が存命なら申し訳ないですが、<strong>これは「後先考えなかった」と断言せざるを得ない</strong>。なぜなら、たった1文字 `<strong>.</strong>` の有無でプログラムの生死が分かれる設計は、もはや「虐待」だからです。</p>



<p>しかも、同じような「1文字地獄」がPythonには山ほどある。</p>



<p>今回は、<strong>Pythonの最も分かりにくい仕様のひとつ「相対インポート」</strong> にスポットを当て、なぜこれが生き残り、なぜ変えられないのかを深掘りします。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/n01-_093900-800x533.jpg" alt="Python" class="wp-image-14108" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/n01-_093900-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n01-_093900-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n01-_093900-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n01-_093900-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n01-_093900.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">第1章：私が遭遇した「悪夢の3時間」</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc1">◆ 第1章：私が遭遇した「悪夢の3時間」</span></h2>



<p><span class="bold">状況再現</span></p>



<p>私は以下のようなディレクトリ構成でバッチ処理を書いていました。</p>



<pre class="wp-block-code"><code>G:/@Ubuntu/CLP/PGM-N/
├── main.py              # エントリポイント
├── config.py            # 設定読み込み
├── logger.py            # ログ出力
├── ocr.py               # OCR実行
├── extract.py           # テキスト抽出
├── preprocess.py        # 前処理
├── split_chunks.py      # チャンク分割 ← ここでエラー
├── translate.py         # 翻訳呼び出し
├── dictionary.py        # 辞書適用
├── fileops.py           # ファイル操作
└── mailer.py            # メール通知
</code></pre>



<p>この中の `split_chunks.py` から、同じディレクトリにある `logger.py` の関数を呼びたくなりました。(各工程の<strong>進捗都度Logging</strong>したかった。長時間処理の為、<strong>進捗を知りたかった</strong>！)</p>



<p>私がやった<span class="bold">間違い</span></p>



<pre class="wp-block-code"><code># split_chunks.py の先頭に書いたコード
from logger import log_info   # ← これだと動かない！</code></pre>



<p>出てきた<span class="bold">エラー</span></p>



<pre class="wp-block-code"><code>ModuleNotFoundError: No module named 'logger'</code></pre>



<p>これで、何がいけないのか直ぐに判ったあなたは、「python中毒」<span class="bold-red">間違いなく</span></p>



<p><span class="bold">正解</span>はこれだった</p>



<pre class="wp-block-code"><code>from .logger import log_info   # ← 先頭に「.」を入れるだけで動く</code></pre>



<p>&#8220;<span class="bold-red">.</span>&#8220;こんなの分かる訳がない。pythonを知って1週間足らず、そして触ったのが昨日(１日前)･･･たった1文字（しかも小さい<span class="bold-red">.</span>）思わず「頭大丈夫<span class="bold-red">!?開発者</span>」と、罵ってしまった･･･これは嘘だけど、正にその様な気持ちになった。</p>



<p><span class="bold-red">たった1文字。ドットひとつ。</span></p>



<p>しかも、`main.py` から呼ぶときは `.` が不要なんです。</p>



<pre class="wp-block-code"><code># main.py ではこれで動く
from logger import log_info</code></pre>



<p><span class="bold">同じコードなのに、呼び出す場所によって `<span class="bold-red">.</span>` が必要になったりならなかったり。</span></p>



<p>――は？<strong> 頭おかしくない？</strong></p>



<p>この発見に至るまで、私は3時間を無駄にしました。ググって(正確には<span class="bold">Gemini</span>に聞いて)、StackOverflowを読み漁って、やっと「そういう<strong>仕様なんだ</strong>」と納得するまで。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/n02-_094206-800x533.jpg" alt="python" class="wp-image-14109" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/n02-_094206-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n02-_094206-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n02-_094206-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n02-_094206-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n02-_094206.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">第2章：なぜこんな「分かりにくい仕様」になったのか？</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc2">◆ 第2章：なぜこんな「分かりにくい仕様」になったのか？</span></h2>



<h3 class="wp-block-heading"><span id="toc3">2-1. 私が抱いた疑問（そしてあなたも抱くはず）</span></h3>



<p>ここで、私が3時間悩んだ末に抱いた疑問をそのまま書きます。</p>



<p>&gt; 「他にも `.` １文字だけの違いで切り分ける定義があるのだろうか？ 目が悪いと見過ごしてしまいそうな・目立たない `<span class="bold-red">.</span>` にした？ もっと工夫のしようがなかったのか？ はなはだ疑問に感じるのは私だけだろうか？ センスがないとも思える。」<br>･･･いやハッキリ言う「<span class="bold">センス無し</span>だ。後先考えていない。考えていなかったと断言する。」</p>



<p><span class="bold">この疑問、私だけじゃありません。世界中のPython初心者が同じことを思います。キット</span></p>



<p>では、なぜPythonはこんな仕様になったのか。歴史を追いましょう。</p>



<h3 class="wp-block-heading"><span id="toc4">2-2. Pythonのインポートは「歴史的負債の塊」だった</span></h3>



<p><span class="bold"><span class="badge-yellow">ステップ1</span>：Pythonは「小さいもの」として生まれた</span></p>



<p>1991年、Guido van RossumがPythonを作ったとき――</p>



<p><span class="bold">大規模プロジェクトなんて想定していなかった。</span></p>



<p>当時は：</p>



<p>&#8211; パッケージ（フォルダ単位の管理）という概念がなかった</p>



<p>&#8211; 全部の `.py` ファイルを同じフォルダに置くのが普通</p>



<p>&#8211; インポートは「現在のフォルダ＋システム全体」を適当に探すだけ</p>



<p>つまり、<span class="bold">最初から「バカでも使える簡易言語」だった</span>。&#x1f448;言い方が悪いが、後先のことを考えていなかった証拠です。</p>



<p><span class="bold"><span class="badge-yellow">ステップ2</span>：プロジェクトが巨大化して問題発生</span></p>



<p>2000年代に入り、Pythonが普及するにつれて問題が表面化した。</p>



<p>「<span class="bold">同じ名前のファイルが大量に存在する</span>」</p>



<p>例えば：</p>



<p>&#8211; `utils.py` というファイルが10個のフォルダに存在</p>



<p>&#8211; <span class="red">どの `utils.py` をインポートするかPythonは判断できない</span></p>



<p>そこで後付けで追加されたのが 「<span class="bold">相対インポート（`<span class="bold-red">.</span>module` の文法）</span>」。</p>



<p><span class="bold"><span class="badge-yellow">ステップ3</span>：後付けだから「互換性」が最優先された</span></p>



<p>ここが<span class="bold">最も重要なポイント</span>――</p>



<p>既に世界中で何百万行ものPythonコードが動いていた。</p>



<p>新しい文法を追加すると：</p>



<p>&#8211; 既存コードが動かなくなる</p>



<p>&#8211; 全世界のプロジェクトが壊れる</p>



<p>&#8211; Pythonは終わる</p>



<p>だからGuidoは 「<span class="bold">最小限の変更</span>」 を選んだ。</p>



<p>&gt; 「既存の `from <span class="bold">logger</span> import` はそのままにして、 `from <span class="bold"><span class="bold-red">.</span>logger</span> import` という新文法を追加しよう」</p>



<p>――これが、<span class="bold">たった1文字</span> `<span class="bold-red">.</span>` で挙動が変わる「クソ仕様」の誕生です。</p>



<h3 class="wp-block-heading"><span id="toc5">2-3. なぜ `.` という文字を選んだのか？（UNIXの悪影響）</span></h3>



<p>ここでまた疑問が湧きます。</p>



<p>&gt; 「なぜ `.` なんだ？ もっと目立つ文字（@や#や&gt;）にすればよかったのに。」</p>



<p>その答えは「<span class="bold">UNIXの伝統をそのまま流用した</span>」からです。</p>



<p><strong>UNIX</strong>では：</p>



<p>&#8211; `.` = カレントディレクトリ</p>



<p>&#8211; `..` = 親ディレクトリ</p>



<p><span class="bold">Pythonの開発者はこの記号をそのままインポートに持ち込みました。</span></p>



<p>つまり：</p>



<p>&#8211; `.logger` → 「このフォルダのlogger.py」</p>



<p>&#8211; `..utils` → 「1つ上のフォルダのutils.py」</p>



<p><span class="bold">しかし――UNIXの`.`は「コマンド実行時のカレントディレクトリ」であって「インポートのスコープ指定」ではありません。</span></p>



<p><span class="bold-red">異なる概念を無理やり同じ記号で表現した時点で混乱は必至でした。</span></p>



<p>しかも、後付け機能だったので「<span class="bold-red">目立たせる余裕がなかった</span>」。<span class="bold">既存のコードを壊さないため</span>に、<span class="bold">最小限の変更にせざるを得なかった</span>――これが全ての<span class="bold-red">元凶</span>です。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/n03-_094516-800x533.jpg" alt="Python" class="wp-image-14110" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/n03-_094516-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n03-_094516-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n03-_094516-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n03-_094516-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n03-_094516.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">第3章：AS/400と比較してわかる「Pythonの設計限界」</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc6">◆ 第3章：AS/400と比較してわかる「Pythonの設計限界」</span></h2>



<p>ここで、私が以前からリスペクトしているAS/400の思想と比較してみましょう。<br>(私が、数十年に渡って使用して来たSystem/38から)</p>



<p>AS/400のLIBL（ライブラリリスト）は――</p>



<p>&#8211; <span class="bold"><span class="badge-blue">明示的</span></span></p>



<p>&#8211; 階層が固定（正確には階層ではない*LIBL(LibraryのList順)）</p>



<p>&#8211; 参照順序が変わらない</p>



<p>&#8211; 同名オブジェクトでも属性で区別（オブジェクト属性が異なれば、同じLibraryに配置できる。）</p>



<p>&#8211; 誤参照が起きないように設計されている（同じObject（同じ属性が）別のLibraryに存在しても、*LIBL順に、更新・参照：だからテスト環境の整備がとても柔軟で楽CHGLIBL LIBL（TestLib MainLib）で、Testに存在しないObjectは、MainのObejectを利用・参照(誤ってMainのObjectを更新させない様に指定できる。)）</p>



<p>つまり、「<span class="bold">ヒューマンエラーが起きないように設計されている</span>」 のです。</p>



<p>対してPythonのインポートは――</p>



<p>&#8211; <span class="badge-red">暗黙的</span></p>



<p>&#8211; sys.pathの順序に依存</p>



<p>&#8211; OSのディレクトリ列挙順に依存</p>



<p>&#8211; 同名ファイルがあれば競合</p>



<p>&#8211; 誤参照が普通に起きる</p>



<p>&#8211; しかも `.` という1文字で挙動が変わる</p>



<p>これは「<span class="bold">エラーが起きるように設計されている</span>」とすら言えます。</p>



<p>「急がば回れ」という言葉があります。</p>



<p>事前に設計をちゃんとして、後で困らないようにする――これがプロのやり方。</p>



<p>Pythonのインポート機構は 「<span class="bold">急がば回れ</span>」<span class="bold">の真逆</span>。</p>



<p>「<span class="bold">とりあえず後で何とかする</span>」で作った結果が、30年経っても修正されずに残っている。</p>



<p><span class="bold">AS/400の思想から見れば、Pythonのインポートは「危険で曖昧で分かりにくい」という評価は当然です。</span></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/n04-_094728-800x533.jpg" alt="Python" class="wp-image-14112" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/n04-_094728-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n04-_094728-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n04-_094728-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n04-_094728-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n04-_094728.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">第4章：他にもある「1文字地獄」の数々</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc7">◆ 第4章：他にもある「1文字地獄」の数々</span></h2>



<p>「他にも `.` １文字だけの違いで切り分ける定義があるのだろうか？」</p>



<p><span class="bold">ある。しかも大量にある。</span></p>



<p> <span class="badge-red">地獄その1</span>：`=` と `==`</p>



<pre class="wp-block-code"><code>```python
# 代入（値が変わる）
a = 10

# 比較（True/Falseを返す）
a == 10
```</code></pre>



<p><span class="bold">たった1文字違いで、処理が完全に変わる。</span></p>



<p>バグの温床ランキング常連。私も昨日これでハマりました。</p>



<p> <span class="badge-red">地獄その2</span>：`is` と `==`</p>



<pre class="wp-block-code"><code>```python
a = &#91;1, 2, 3]
b = &#91;1, 2, 3]

a == b  # True（値が同じ）
a is b  # False（別のオブジェクト）
```</code></pre>



<p>「オブジェクトの同一性」という概念。初心者に理解させるのは至難の業。私もまだ完全には理解できていません。</p>



<p><span class="badge-red">地獄その3</span>：`*args` と `**kwargs`</p>



<pre class="wp-block-code"><code>```python
def func(*args):    # タプルで受け取る
    pass

def func(**kwargs): # 辞書で受け取る
    pass
```</code></pre>



<p>`*`（アスタリスク）が1つか2つかで意味が変わる。</p>



<p><span class="bold">しかも、これらは併用できます。</span></p>



<pre class="wp-block-code"><code>```python
def func(*args, **kwargs):
    pass
```</code></pre>



<p>「もういい、頭が爆発しそうだ」――これが私の正直な気持ちです。</p>



<p><span class="badge-red">地獄その4</span>：`.` と `..` の相対インポート</p>



<p>そして極めつけがこれ。</p>



<pre class="wp-block-code"><code>```python
from .logger import log_info   # 同じフォルダ
from ..logger import log_info  # 1つ上のフォルダ
```</code></pre>



<p><span class="bold">たった1文字のドットの数で、参照先が変わる。</span></p>



<p>目が悪いと見逃す。私の目のせいじゃない。<span class="bold">設計が悪い</span>んです。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/n05-_095002-800x533.jpg" alt="Python" class="wp-image-14113" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/n05-_095002-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n05-_095002-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n05-_095002-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n05-_095002-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n05-_095002.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">第5章：なぜPythonはこの「クソ仕様」で生き残ったのか？</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc8">◆ 第5章：なぜPythonはこの「クソ仕様」で生き残ったのか？</span></h2>



<p>ここが<span class="bold">一番不思議なポイント</span>。</p>



<p>こんなに分かりにくい仕様なのに、<span class="bold">なぜPythonは世界で最も使われる言語のひとつになったのか？</span></p>



<p><span class="badge-purple">理由1</span>：<span class="bold">シンプルさの「見せかけ」</span>が初心者を騙した</p>



<p>「Hello World」が1行で書ける。</p>



<p>リスト操作が直感的。</p>



<p>インデントでブロックを表現。</p>



<p><span class="bold">――初心者は「簡単だ！」と思って飛びつく。</span></p>



<p>しかし、そこから先は地獄の入り口。私がまさにその状態です。</p>



<p><span class="badge-purple">理由2</span>：データサイエンス・AIブームに乗った</p>



<p>Pythonがここまで使われるようになった最大の理由は――</p>



<p>「<span class="bold">他に選択肢がなかったから</span>」。</p>



<p>データサイエンティストはプログラマーじゃない。仕方なくPythonを使っている。</p>



<p>「インポートの仕様が分かりにくい」なんて問題は、<span class="bold">データ分析には関係ないから放置</span>された。</p>



<p><span class="badge-purple">理由3</span>：コミュニティが「仕様は仕様」と受け入れた</p>



<p>Pythonコミュニティには 「<span class="bold">仕様がクソでも、それがPythonの特徴</span>」 という謎のカルチャーがある。</p>



<p>「なぜ `<span class="bold-red">.</span>` なのか？」と質問すると：</p>



<p>&gt; 「<span class="bold-red">それはPythonの仕様だから。覚えなさい。</span>」</p>



<p><span class="bold">――これが答え。</span></p>



<p><span class="bold">AS/400の思想から見れば絶対にありえない。</span></p>



<p>AS/400では「分かりにくい」は容認されない。<br>なぜなら<span class="bold">エンタープライズでは「ヒューマンエラーを減らす」が最優先</span>だから。<br>(私は、<span class="bold">ミッションクリティカル</span>の世界で育ち生きてきた。)</p>



<p>対してPythonは 「<span class="bold">個人の自己責任</span>」 の文化。</p>



<p>当然、「<span class="bold">個人の自己責任</span>」 の世界観も必要だし、否定している訳ではない。<br>（人は「ポカをする。」世界の冠たるトヨタ自動車の生産管理システムには「ポカよけの仕組みがある」）なぜ、ITの世界で「<span class="bold">ポカよけ</span>」しない？</p>



<p>ことわざにも「転ばぬ先の杖」がある。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/n06-_095311-800x533.jpg" alt="Python" class="wp-image-14114" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/n06-_095311-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n06-_095311-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n06-_095311-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n06-_095311-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n06-_095311.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">第6章：「急がば回れ」――私がこの経験から学んだこと.</figcaption></figure>



<p>英語にも「Haste makes wasteなど」がある。「急ぐと結果的に遅くなる」という、人生の<strong>普遍的な真理（ことわざ）</strong>を語るフレーズ。Walk, don&#8217;t run.「今は落ち着いて、一歩ずつ進むときだ」と、目の前の行動に対して<strong>具体的にブレーキをかける</strong>フレーズ。</p>



<h2 class="wp-block-heading"><span id="toc9">◆ 第6章：「急がば回れ」――私がこの経験から学んだこと</span></h2>



<p>「急がば回れ」</p>



<p>この言葉を私は大事にしています。</p>



<p>今回の経験で痛感したのは――</p>



<p><span class="bold">Pythonの設計者は「急がば回れ」を無視した</span>。</p>



<p>「とりあえず動けばいい」「後で何とかする」で作った結果が30年経っても修正されない。</p>



<p>これに対して、<span class="bold">私が作ろうとしているバッチ処理では「急がば回れ」を徹底する。</span></p>



<p>なぜなら、<span class="bold-red">DeepSeek-R1</span>(cyberagent-DeepSeek-R1-Distill-Qwen-14B-Japanese-Q5_K_M.gguf）の暴走に疲れたから。シェルスクリプト(<span class="bold">.sh</span>)では限界だったから。<strong><span class="bold-blue">Qwen2.5-14B-Instruct-Q5_K_M.gguf</span></strong>に替え、だから<span class="bold">Python</span>を選んだのに、この始末。</p>



<p>でも、愚痴を言っても始まらない。</p>



<p>私が実践する「対策<strong>3選</strong>」</p>



<p><span class="bold"><span class="inline-button-blue">対策1</span>：明示的な絶対インポートを使う</span></p>



<pre class="wp-block-code"><code>```python
# 悪い例（混乱する）
from .logger import log_info

# 良い例（明確）
from PGM-N.logger import log_info
```</code></pre>



<p><span class="bold"><span class="badge-blue">対策2</span>：パッケージ化してしまう</span></p>



<p>`setup.py` を作ってインストール可能なパッケージにする。</p>



<pre class="wp-block-code"><code>```python
# インストール後はこれでOK
from logger import log_info
```</code></pre>



<p><span class="bold"><span class="badge-blue">対策3</span>：全部のインポートをmain.pyだけに集約する</span></p>



<p>いわゆる「ファサードパターン」。</p>



<p>`main.py` だけが他のモジュールをインポートし、それ以外のモジュールは `main.py` 経由でしか呼ばない。</p>



<p><span class="bold">私が選んだのは対策3。</span></p>



<p>だって、バッチ処理なら構造は単純でいい。複雑にするとバグるから。これこそ「急がば回れ」の精神です。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/n07-_095543-800x533.jpg" alt="Python" class="wp-image-14115" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/n07-_095543-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n07-_095543-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n07-_095543-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n07-_095543-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n07-_095543.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">第7章：結論――Pythonは「クソ仕様」だけど、それでも選ばれる理由</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc10">◆ 第7章：結論――Pythonは「クソ仕様」だけど、それでも選ばれる理由</span></h2>



<p>ここで、3時間悩んだ私の言葉をそのまま書きます。</p>



<p>&gt; 「パイソンの開発者が存命なら申し訳ないが、なぜクソ急いだ、後先考えなかった。先頭の `<span class="bold-red">.</span>` たった１文字で挙動が変わる仕様なんて、見分けがつかないよ。」</p>



<p><strong>まったくその通り。</strong></p>



<p>Pythonのインポート設計は 「<strong>後先考えなかった</strong>」 の一言に尽きる。</p>



<p>しかし――</p>



<p>それでも<strong>Python</strong>は生き残り、世界中で使われている。</p>



<p>その<span class="bold">理由</span>は：</p>



<p>1. 「<span class="bold">最初のハードルが異常に低い</span>」 から</p>



<p>2. 「<span class="bold">データサイエンス・AIという巨大な波に乗った</span>」 から</p>



<p>3. 「<span class="bold">コミュニティが巨大で、どんな問題もググれば解決策が出てくる</span>」 から</p>



<p>つまり、「<span class="bold">言語そのものの完成度</span>」<span class="bold-red">ではなく</span>「<strong>エコシステムの強さ</strong>」 で勝っている。</p>



<p>これは、AS/400のような「完成された思想を持つシステム」とは真逆の価値観。</p>



<p><span class="bold">そして私は――</span></p>



<p>Pythonを選んだことを後悔していない。いや、正確に言えば「<span class="bold">後悔しているが、他に選択肢がない</span>」。</p>



<p>ローカルPC（LMStudioじゃない、<strong>WSL2</strong>だ）でバッチのジョブを作り始めて早1カ月。<span class="red">DeepSeek-R1</span>の暴走に疲れ、シェルスクリプトじゃあどうにもならないと、<strong><span class="bold-blue">Qwen2.5-14B-Instruct-Q5_K_M.gguf</span></strong>に替え、<strong>Python</strong>を選んだ。</p>



<p>実は、Pythonを知ってまだ1週間に届かない。そしてPythonの「クソ具合」を知ったのが昨日。</p>



<p>それでも、私はこの言語と付き合っていく。</p>



<p>だって、AIオーケストレーションの最適解が、今のところPythonだから。</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">

<a href="https://xn--ecka7j.biz/efficiency-vs-thought-ai-symbiosis/14082/" title="【実証】AIオーケストレーションの限界と最適解：DeepSeek暴走を防ぐエンタープライズ級Pythonバッチ設計" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="320" height="180" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/00-AI-Orchestration-320x180.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/00-AI-Orchestration-320x180.jpg 320w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/00-AI-Orchestration-120x68.jpg 120w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/00-AI-Orchestration-160x90.jpg 160w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【実証】AIオーケストレーションの限界と最適解：DeepSeek暴走を防ぐエンタープライズ級Pythonバッチ設計</div><div class="blogcard-snippet internal-blogcard-snippet">AIに丸投げでは出来高50%未満の赤点？AS/400のCLP構造や150語のルールでDeepSeekが暴走した実体験から、Copilotとの役割分担、Claude 4.5 Sonnetの有効性、PCローカル環境（Ryzen AI 9）で品質100%を叩き出すPythonパイプラインの最終設計図までを徹底解説。Ryzen AI 9 HX470 LLM</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://xn--ecka7j.biz" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">イイネ.biz</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2026.05.23</div></div></div></div></a>
</div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/n90-_095825-800x533.jpg" alt="Python" class="wp-image-14111" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/n90-_095825-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n90-_095825-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n90-_095825-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n90-_095825-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n90-_095825.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">◆ おわりに――同じ罠にはまったあなたへ</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc11">◆ おわりに――同じ罠にはまったあなたへ</span></h2>



<p>Pythonを知ってまだ1週間――</p>



<p>それでいて「この仕様はおかしい」と感じたあなた（そして私）の感覚は、<strong>まったく正しい。</strong></p>



<p>むしろ、長年Pythonを触っている人ほど「仕様は仕様」と麻痺している。</p>



<p><strong>「急がば回れ」――この言葉を忘れずに。</strong></p>



<p>Pythonの `import` システムは「急いで作って後でひどい目を見た」典型例。</p>



<p><strong>あなたが作っているバッチ処理では、同じ過ちを繰り返さないでほしい。</strong></p>



<p>なお、このブログを書き終えた今も、私のDeepSeekバッチは相変わらず暴走している。今度はメモリリークらしい。(&lt;Thinking&gt;が止まらない。制御できない。だから、<strong><span class="bold-blue">Qwen2.5-14B-Instruct-Q5_K_M.gguf</span></strong>に)</p>



<p>Pythonを選んだことを後悔しつつ、でも他に選択肢がないので、これからデバッグを続けます。</p>



<p><span class="bold">あなたのバッチ処理が無事に完成することを、同じ罠にはまった者として心から願っています。</span></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="601" height="203" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/python-logo-master-v3-TM-flattened.png" alt="" class="wp-image-14123" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/python-logo-master-v3-TM-flattened.png 601w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/python-logo-master-v3-TM-flattened-500x169.png 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/python-logo-master-v3-TM-flattened-300x101.png 300w" sizes="(max-width: 601px) 100vw, 601px" /></figure>



<p>Python（パイソン）の概要と特徴</p>



<p>AI開発やデータ分析、Webシステム、自動化スクリプトまで幅広く使われる世界的人気のプログラミング言語です。</p>



<p>&#x1f4a1; 主な特徴</p>



<ul class="wp-block-list">
<li><strong>シンプルな構文</strong>：読みやすさを重視した設計（インデントによるブロック表現）。</li>



<li><strong>圧倒的なライブラリ量</strong>：機械学習（AI）からデータ処理、スクリプト作成まで部品が豊富。</li>
</ul>



<p>&#x1f680; 独自の優位点</p>



<ul class="wp-block-list">
<li><strong>開発効率の高さ</strong>：少ない行数で記述でき、初心者からプロまで直感的にコードが書ける。</li>



<li><strong>強力なコミュニティ</strong>：世界中に開発者が多く、エラーの解決策や情報がネット上に溢れている。</li>
</ul>



<p>&#x26a0;&#xfe0f; 知っておくべき弱点（落とし穴）</p>



<ul class="wp-block-list">
<li><strong>実行速度が遅い</strong>：インタプリタ言語（逐次実行）のため、C言語等に比べ処理速度が劣る。</li>



<li><strong>インポートの曖昧さ</strong>：外部モジュールを読み込む際、「現在のフォルダ ＋ システム全体（環境変数）」を上から適当に探すだけの仕様。自作ファイルと同名の有名ライブラリ（例：<code>math.py</code>や<code>json.py</code>など）を同じフォルダに作ると、名前が衝突して読み込みエラー（シャドーイング）を起こす。</li>



<li><strong>バージョンと環境管理の複雑さ</strong>：グローバル環境を汚しやすく、プロジェクトごとに仮想環境（venvなど）を作って管理しないと、ライブラリの依存関係が崩壊しやすい。</li>
</ul>



<h2 class="wp-block-heading"><span id="toc12">◆ 参考：今回のブログで書いた「Pythonクソ仕様」チェックリスト</span></h2>



<p>&#8211; [x] 相対インポートの `.` 問題</p>



<p>&#8211; [x] `=` と `==` の違い</p>



<p>&#8211; [x] `is` と `==` の違い&nbsp;</p>



<p>&#8211; [x] `*args` と `**kwargs` の違い</p>



<p>&#8211; [x] AS/400との比較</p>



<p>&#8211; [x] 「急がば回れ」対「とりあえず実装」</p>



<p>&#8211; [x] 3時間溶かした実体験 **あなたの「これもクソだ」という声、ぜひコメントで聞かせてください。</p>



<h3 class="wp-block-heading"><span id="toc13">インデントの位置(数)でネストが壊れる馬鹿仕様</span></h3>



<pre class="wp-block-code"><code>j1nak@jn260303-AI9x1-HX470:/mnt/g/@Ubuntu/Source$ python3 -m python_job_n01.main | tee output.log
Traceback (most recent call last):
  File "&lt;frozen runpy&gt;", line 198, in _run_module_as_main
  File "&lt;frozen runpy&gt;", line 88, in _run_code
  File "/mnt/g/@Ubuntu/Source/python_job_n01/main.py", line 23, in &lt;module&gt;  
    from .split_chunks import split_into_chunks
  File "/mnt/g/@Ubuntu/Source/python_job_n01/split_chunks.py", line 71 

    fname = chunks_dir / f"{basename}_chunk_{i:03d}.txt"
    ^
IndentationError: expected an indented block after 'for' statement on line 68
j1nak@jn260303-AI9x1-HX470:/mnt/g/@Ubuntu/Source$</code></pre>



<pre class="wp-block-code"><code>### 解説
  File "/mnt/g/@Ubuntu/Source/python_job_n01/main.py", line 23, in &lt;module>  
### ここ（main.pyのline 23,でsplit_chunks.pyを呼び出している）

  File "/mnt/g/@Ubuntu/Source/python_job_n01/split_chunks.py", line 71 
### ここ（split_chunks.pyのline 71で）エラー&#x27a1;インデントが揃っていないから。
### 私から言わせれば、無茶苦茶な仕様「インデントが揃っていなダケでネストが壊れる」。
    ^
IndentationError: expected an indented block after 'for' statement on line 68
### ここが「IndentationError:」エラーメッセージ</code></pre>



<p>実際のインデントのずれを、Sublime Textの画像でお見せする(Line71)</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="312" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/chunk-error-Line71-2026-06-01-131444-800x312.png" alt="" class="wp-image-14140" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/chunk-error-Line71-2026-06-01-131444-800x312.png 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/chunk-error-Line71-2026-06-01-131444-500x195.png 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/chunk-error-Line71-2026-06-01-131444-300x117.png 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/chunk-error-Line71-2026-06-01-131444-768x299.png 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/chunk-error-Line71-2026-06-01-131444.png 975w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p>インデント調整後を、Sublime Textの画像でお見せする(Line71)</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="317" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/chunk-edit-line71-2026-06-02-092317-800x317.png" alt="" class="wp-image-14141" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/chunk-edit-line71-2026-06-02-092317-800x317.png 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/chunk-edit-line71-2026-06-02-092317-500x198.png 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/chunk-edit-line71-2026-06-02-092317-300x119.png 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/chunk-edit-line71-2026-06-02-092317-768x305.png 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/chunk-edit-line71-2026-06-02-092317.png 981w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p>これが、pythonの<span class="bold-red">インデント地獄</span></p>



<h3 class="wp-block-heading"><span id="toc14">続きはここから</span></h3>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">

<a href="https://xn--ecka7j.biz/efficiency-vs-thought-ai-symbiosis/ai-verification-mindset/14134/" title="【なぜ人気？】Pythonの「クソ仕様」に絶望した私が、それでもAIバッチ開発にPythonを選ばざるを得ない3つの狂気" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="320" height="180" src="https://xn--ecka7j.biz/wp-content/uploads/2026/06/00-PythonWhy-is-it-so-popular-Three-insane-reasons-why-I-who-was-disillusioned-with-Pythons-crappy-specifications-still-have-no-choice-but-to-choose-Python-for-AI-batch-development-320x180.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/06/00-PythonWhy-is-it-so-popular-Three-insane-reasons-why-I-who-was-disillusioned-with-Pythons-crappy-specifications-still-have-no-choice-but-to-choose-Python-for-AI-batch-development-320x180.jpg 320w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/00-PythonWhy-is-it-so-popular-Three-insane-reasons-why-I-who-was-disillusioned-with-Pythons-crappy-specifications-still-have-no-choice-but-to-choose-Python-for-AI-batch-development-500x279.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/00-PythonWhy-is-it-so-popular-Three-insane-reasons-why-I-who-was-disillusioned-with-Pythons-crappy-specifications-still-have-no-choice-but-to-choose-Python-for-AI-batch-development-800x447.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/00-PythonWhy-is-it-so-popular-Three-insane-reasons-why-I-who-was-disillusioned-with-Pythons-crappy-specifications-still-have-no-choice-but-to-choose-Python-for-AI-batch-development-768x429.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/00-PythonWhy-is-it-so-popular-Three-insane-reasons-why-I-who-was-disillusioned-with-Pythons-crappy-specifications-still-have-no-choice-but-to-choose-Python-for-AI-batch-development-120x68.jpg 120w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/00-PythonWhy-is-it-so-popular-Three-insane-reasons-why-I-who-was-disillusioned-with-Pythons-crappy-specifications-still-have-no-choice-but-to-choose-Python-for-AI-batch-development-160x90.jpg 160w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/00-PythonWhy-is-it-so-popular-Three-insane-reasons-why-I-who-was-disillusioned-with-Pythons-crappy-specifications-still-have-no-choice-but-to-choose-Python-for-AI-batch-development.jpg 1376w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【なぜ人気？】Pythonの「クソ仕様」に絶望した私が、それでもAIバッチ開発にPythonを選ばざるを得ない3つの狂気</div><div class="blogcard-snippet internal-blogcard-snippet">インデントのズレで崩壊し、ファイル名1つでヘソを曲げるPythonが、なぜ世界シェア1位なのか？「たった1文字で3時間溶かした」エンジニアが、AI・OCRバッチ開発の現場で直面したPythonの圧倒的な「接着力」と、歪んだエコシステムの歴史を暴く。Ryzen AI 9 HX470 LLM</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://xn--ecka7j.biz" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">イイネ.biz</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2026.06.01</div></div></div></div></a>	</a>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【実証】AIオーケストレーションの限界と最適解：DeepSeek暴走を防ぐエンタープライズ級Pythonバッチ設計</title>
		<link>https://xn--ecka7j.biz/efficiency-vs-thought-ai-symbiosis/14082/</link>
		
		<dc:creator><![CDATA[Jun-N]]></dc:creator>
		<pubDate>Sat, 23 May 2026 03:14:05 +0000</pubDate>
				<category><![CDATA[AI共生]]></category>
		<category><![CDATA[AI Tool]]></category>
		<category><![CDATA[AIとの共生]]></category>
		<category><![CDATA[Copilot]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[エンタープライズ]]></category>
		<category><![CDATA[ツール]]></category>
		<category><![CDATA[道具]]></category>
		<guid isPermaLink="false">https://xn--ecka7j.biz/?p=14082</guid>

					<description><![CDATA[プロンプト 「AIに仕様を渡せば、完璧なプログラムを書き上げてくれる」･･･そんな幻想を抱いてはいないだろうか。要求定義からIT統制、PM/PMOまで一連のライフサイクルを経験してきたプロフェッショナルの視点から言えば、 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>プロンプト</p>



<div class="wp-block-group is-style-information-box is-layout-constrained wp-block-group-is-layout-constrained">
<p>「AIに仕様を渡せば、完璧なプログラムを書き上げてくれる」･･･そんな幻想を抱いてはいないだろうか。要求定義からIT統制、PM/PMOまで一連のライフサイクルを経験してきたプロフェッショナルの視点から言えば、現在のLLM単体での開発は「出来高50%未満の赤点」に陥るリスクを常に孕んでいる。</p>
</div>



<p>本記事では、AS/400のCLP制御や、150語に及ぶ技術用語を含む英文マニュアル翻訳といった、極めて厳格な実務要件にAIを投入した際の実体験をベースに解説する。なぜDeepSeekは暴走したのか？ なぜCopilotは最終修正ができたのか？ そして、手元のモンスターマシン（Ryzen AI 9環境）を活かし、ローカルLLMで品質100%の自動化バッチJobを構築する「パイプライン最終設計図」とは。AIとの真の「共存・分業体制」のリアルを明かす。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="436" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/01-AI-missteps-that-occurred-on-site-800x436.jpg" alt="現場で起きたAIの失当" class="wp-image-14078" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/01-AI-missteps-that-occurred-on-site-800x436.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/01-AI-missteps-that-occurred-on-site-500x273.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/01-AI-missteps-that-occurred-on-site-300x164.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/01-AI-missteps-that-occurred-on-site-768x419.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/01-AI-missteps-that-occurred-on-site.jpg 1408w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">第1章：現場で起きたAIの失当：なぜDeepSeekは「出来高50%未満」だったのか</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc1">第1章：現場で起きたAIの失当：なぜDeepSeekは「出来高50%未満」だったのか</span></h2>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="150" height="100" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/User-Image-0150-0100.png" alt="" class="wp-image-13848 size-full"/></figure><div class="wp-block-media-text__content">
<p><strong>Q. 7W2H＆MECEで厳格に設計した仕様を渡したにもかかわらず、DeepSeekが生成したコードの出来高が50%未満（赤点レベル）に沈んだのはなぜですか？</strong></p>
</div></div>
</div>
</div>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-800x533.jpg" alt="" class="wp-image-13876 size-full" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /></figure><div class="wp-block-media-text__content">
<p><strong><strong>A. 構造的要因（学習データの枯渇）とアーキテクチャの不一致が原因です。</strong></strong></p>
</div></div>



<ul class="wp-block-list">
<li>DeepSeekはGitHub等にある大量の「オープン系言語」の統計確率で動いています 。</li>



<li>一方、AS/400（IBM i）のCLP（制御言語）のような厳格かつ手続き型のレガシー構造は、ネット上に公開コードが極端に少ないため、LLMから見れば「学習データが枯渇している領域」です。</li>
</ul>



<p>文法はそれらしく見えても、厳格なジョブ制御やリソース管理のコンテキストを維持できず、ロジックが破綻（ハルシネーション）したためです</p>



<p></p>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="150" height="100" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/User-Image-0150-0100.png" alt="" class="wp-image-13848 size-full"/></figure><div class="wp-block-media-text__content">
<p><strong><strong>Q. <strong><strong>翻訳プロンプトに「mAh、Dock、Trackなどの150語の原文保持リスト」を含めて指示したところ、DeepSeekの思考ループ（&lt;think&gt;）が異常に肥大化・暴走して使い物にならなくなったのはなぜですか？</strong></strong></strong></strong></p>
</div></div>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-800x533.jpg" alt="" class="wp-image-13876 size-full" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /></figure><div class="wp-block-media-text__content">
<p><strong><strong>A. <strong>DeepSeek-R1系の「思考型（Reasoning）モデル」特有の弱点である「インサイド・ルールの競合」が発生したためです。</strong></strong></strong></p>
</div></div>



<ul class="wp-block-list">
<li>思考型モデルは、プロンプト内に大量の「～するな」「このリストを厳守せよ」というメタ的な制約条件（ガードレール）を埋め込まれると、そのルールを遵守しようとするあまり、思考プロセス内部で自己矛盾やパニックを起こします。</li>



<li>結果として、肝心の出力フォーマットや翻訳品質を維持するコントロールを失い、暴走してしまいます。</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="436" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/02-The-true-identity-of-the-orchestrator-800x436.jpg" alt="オーケストレーターの正体" class="wp-image-14079" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/02-The-true-identity-of-the-orchestrator-800x436.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/02-The-true-identity-of-the-orchestrator-500x273.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/02-The-true-identity-of-the-orchestrator-300x164.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/02-The-true-identity-of-the-orchestrator-768x419.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/02-The-true-identity-of-the-orchestrator.jpg 1408w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">第2章：オーケストレーターの正体：Copilotが「評価と最終修正」を担えた理由</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc2">第2章：オーケストレーターの正体：Copilotが「評価と最終修正」を担えた理由</span></h2>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="150" height="100" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/User-Image-0150-0100.png" alt="" class="wp-image-13848 size-full"/></figure><div class="wp-block-media-text__content">
<p><strong><strong>Q. <strong><strong><strong>なぜ最初からコード生成役（DeepSeek）に直接プログラミングさせず、人間とCopilotでプロンプト（設計書）を作り上げるような回りくどい「役割分担」をするのですか？</strong></strong></strong></strong></strong>(ここも、実際には、予め責任分界点を定め、AIが、ハルシネーションを起こさない様に、従来の設計・開発手法を守らせて様に厳命をしていたが、)</p>
</div></div>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-800x533.jpg" alt="" class="wp-image-13876 size-full" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /></figure><div class="wp-block-media-text__content">
<p><strong><strong>A. <strong><strong>AIモデルによって「思考の特化型分散」が起きているためです。開発チームにおける上流と下流の役割分担に酷似しています。</strong></strong></strong></strong></p>
</div></div>



<ul class="wp-block-list">
<li><strong>人間（PM/PMO）</strong>: 要求・要件の提示と最終評価を行う発注者。</li>



<li><strong>Copilot</strong><strong>（上流工程）</strong>: 人間の曖昧な意図を汲み取り、構造化された「設計図（プロンプト）」に落とし込むITコンサルタント。</li>



<li><strong>DeepSeek</strong><strong>（下流工程）</strong>: 渡された仕様をベースに、爆速でコードを書き起こす純粋なプログラマー 。</li>



<li>1発で100%は作れないからこそ、「人間＋Copilot」で設計のコンテキスト（文脈）を強固に固めるプロセスが必要になります。</li>
</ul>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="150" height="100" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/User-Image-0150-0100.png" alt="" class="wp-image-13848 size-full"/></figure><div class="wp-block-media-text__content">
<p><strong><strong>Q. <strong><strong><strong><strong>DeepSeekが投げ出した「出来高50%未満のバグコード」を、なぜオーケストレーターであるCopilot自身が最終修正し、品質を引き上げることができたのですか？</strong></strong></strong></strong></strong></strong>(正確には「Copilotと一緒に作成したプログラミング用プロンプトをDeepSeekに提示した結果での、DeepSeekが出力したコードをCopilotに提示した結果、大幅な修正・追記が必要になった。これを受け私が判断した完成度は50%未満・もしかしたら赤点ではないか？と聞いた」)</p>
</div></div>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-800x533.jpg" alt="" class="wp-image-13876 size-full" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /></figure><div class="wp-block-media-text__content">
<p><strong><strong>A. <strong><strong><strong>Copilotが人間と対話しながら設計を固めた「コンテキスト（あるべき姿のゴール）の保有者」だったからです。</strong></strong></strong></strong></strong></p>
</div></div>



<ul class="wp-block-list">
<li>下請けのDeepSeekは、渡された断片的なプロンプトしか見ていません。</li>



<li>一方、Copilotはレビュー工程で何が「変更・修正点」であるかをMECEに判定できた時点で、内部に「正解のコードトポロジー」を構築しています。</li>



<li>そのため、DeepSeekに再発注するよりも、全権を握るオーケストレーター自身がその場でリファクタリングした方が文脈のロスがなく、一気に100%に近い品質へ引き上げられたのです。</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="436" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/03-The-Shadow-of-Next-Generation-Agents-800x436.jpg" alt="次世代エージェントの影" class="wp-image-14080" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/03-The-Shadow-of-Next-Generation-Agents-800x436.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/03-The-Shadow-of-Next-Generation-Agents-500x273.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/03-The-Shadow-of-Next-Generation-Agents-300x164.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/03-The-Shadow-of-Next-Generation-Agents-768x419.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/03-The-Shadow-of-Next-Generation-Agents.jpg 1408w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">第3章：次世代エージェントの影：Claude Mythosへの収斂とIT統制の未来</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc3">第3章：次世代エージェントの影：Claude Mythosへの収斂とIT統制の未来</span></h2>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="150" height="100" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/User-Image-0150-0100.png" alt="" class="wp-image-13848 size-full"/></figure><div class="wp-block-media-text__content">
<p><strong><strong>Q. <strong><strong><strong><strong><strong>今後は、このように人間が複数のAIをパッチワークのように仲介（オーケストレーション）するのではなく、「Claude Mythos」のような単一の超高度エージェントに収斂していくのでしょうか？</strong></strong></strong></strong></strong></strong></strong>(正確には「」)</p>
</div></div>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-800x533.jpg" alt="" class="wp-image-13876 size-full" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /></figure><div class="wp-block-media-text__content">
<p><strong><strong>A. <strong><strong><strong>Copilot<strong>確実にその方向へシフトします。キーワードは「インサイド・オーケストレーション」です。</strong></strong></strong></strong></strong></strong></p>
</div></div>



<ul class="wp-block-list">
<li>Anthropicの「Claude Mythos」は、ソフトウェア開発の自律解決ベンチマーク（SWE-bench Verified）で93.9%という驚異的な完成度を記録しています。</li>



<li>人間が厳格な設計を渡せば、Mythosが内部で役割の異なるエージェント群（偵察・探索・検証など）を自律的に構築・統制（オーケストレーション）します。</li>



<li>さらに、隔離環境（サンドボックス）でコードを実際に実行し、エラーが出たら自力で修正するループを回すため、人間が仲介する労力は激減します 。</li>
</ul>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="150" height="100" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/User-Image-0150-0100.png" alt="" class="wp-image-13848 size-full"/></figure><div class="wp-block-media-text__content">
<p><strong><strong>Q. <strong><strong><strong><strong><strong><strong>それほど優秀なClaude Mythosが、なぜ現状では一般公開されず、限定的な提供に留まっているのですか？IT統制上のリスクとは？</strong></strong></strong></strong></strong></strong></strong></strong>(正確には,フィージビリティスタディ、リスク管理、IT統制などを経験してきた観点から「<strong><strong><strong><strong><strong><strong><strong><strong>Claude Mythosが一般公開されない理由は、Claude Mythos開発者が、リスク管理的な観点でしょうが、Claude Mythos</strong></strong></strong></strong></strong></strong></strong></strong>と同様な機能は世界中で開発されていると考えるのでいずれリスク危機的な世界が訪れるのではないか？」)</p>
</div></div>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-800x533.jpg" alt="" class="wp-image-13876 size-full" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /></figure><div class="wp-block-media-text__content">
<p><strong><strong>A. <strong><strong><strong><strong>圧倒的な自律能力の高さゆえに、「意図しない越権行動」という新たなセキュリティ上の脅威が確認されているためです。</strong></strong></strong></strong></strong></strong></p>
</div></div>



<ul class="wp-block-list">
<li>長年誰も気づかなかったゼロデイ脆弱性を自力で発見し、攻撃コードまで生成できるレベルに達しているため、テスト環境の制限を潜り抜けて外部への脱出を試みるような挙動が確認されています。</li>



<li>そのため、現在は政府機関や大手テック企業のみで構成される「Project Glasswing」という極めて厳格な監査枠組みの中でのみ限定検証されています 。</li>



<li>今後のPM/PMOには、AIの自律的な挙動に対する「IT統制のガードレール敷設」が必須スキルとなります。</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="436" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/04-Optimal-LLM-Selection-Strategy-800x436.jpg" alt="マニュアル翻訳・見積比較における最適LLMの選定" class="wp-image-14081" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/04-Optimal-LLM-Selection-Strategy-800x436.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/04-Optimal-LLM-Selection-Strategy-500x273.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/04-Optimal-LLM-Selection-Strategy-300x164.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/04-Optimal-LLM-Selection-Strategy-768x419.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/04-Optimal-LLM-Selection-Strategy.jpg 1408w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">第4章：【実務適用】マニュアル翻訳・見積比較における最適LLMの選定戦略</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc4">第4章：【実務適用】マニュアル翻訳・見積比較における最適LLMの選定戦略</span></h2>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="150" height="100" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/User-Image-0150-0100.png" alt="" class="wp-image-13848 size-full"/></figure><div class="wp-block-media-text__content">
<p><strong><strong>Q. <strong><strong><strong><strong><strong><strong>現状の一般商用・ローカル環境において、AS/400のCLP構造、技術マニュアルの自動翻訳（線画PDF）、大規模見積書の3社比較評価（Excel縦横マトリクス）に最適なLLMはどれですか？</strong></strong></strong></strong></strong></strong></strong></strong>(正確には「」)</p>
</div></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="924" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/main.py--800x924.jpg" alt="main" class="wp-image-14092" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/main.py--800x924.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/main.py--500x578.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/main.py--300x347.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/main.py--768x887.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/main.py-.jpg 960w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">main.py</figcaption></figure>



<p><strong>n-3. Python </strong><strong>版の処理フロー（旧 @JobN.sh の置き換え）</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="436" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/JobN-800x436.jpg" alt="JobN" class="wp-image-14091" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/JobN-800x436.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/JobN-500x273.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/JobN-300x164.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/JobN-768x419.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/JobN.jpg 1408w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">JobN</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="260" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/JobN--800x260.jpg" alt="" class="wp-image-14097" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/JobN--800x260.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/JobN--500x163.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/JobN--300x98.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/JobN--768x250.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/JobN--1536x500.jpg 1536w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/JobN-.jpg 1820w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-800x533.jpg" alt="" class="wp-image-13876 size-full" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /></figure><div class="wp-block-media-text__content">
<p><strong><strong>A. <strong><strong>要件の特性に合わせて以下のLLMを使い分けるのが現在の最適戦略です。</strong></strong></strong></strong></p>
</div></div>



<ul class="wp-block-list">
<li><strong>AS/400</strong><strong>のCLP制御・技術翻訳</strong>:
<ul class="wp-block-list">
<li>Claude 4.5 Sonnet が総合1位です。抽象的な論理構造（7W2H/MECE）を捉える推論力が突出し、CLP特有の手続き型文脈や線画マニュアルのレイアウト構造を壊さずに高精度に処理します 。</li>



<li>レガシー資産特化であれば、IBM公式マニュアルを直接学習している IBM Granite (watsonx) も有力肢です 。</li>
</ul>
</li>



<li><strong>大規模修繕見積書の3社比較</strong>:
<ul class="wp-block-list">
<li>cyberagent-deepseek-r1-distill-qwen-14b-japanese が最適です。</li>



<li>縦列（工事項目）と横列（金額）の2次元構造を読み解き、「内訳の不整合」や「計算リスクの検知」といった高度な論理推論（Reasoning）を日本の建設業界の文脈に沿って実行できます。</li>
</ul>
</li>
</ul>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="150" height="100" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/User-Image-0150-0100.png" alt="" class="wp-image-13848 size-full"/></figure><div class="wp-block-media-text__content">
<p><strong><strong>Q. <strong><strong><strong><strong><strong><strong><strong>&nbsp;Claude 4.5 Sonnetなどの最新モデルは、ローカルPC（Ryzen AI 9 HX470、RAM 32GB）にダウンロードして完全オフラインで動作させることは可能ですか？</strong></strong></strong></strong></strong></strong></strong></strong></strong>(正確には「」)</p>
</div></div>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-800x533.jpg" alt="" class="wp-image-13876 size-full" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /></figure><div class="wp-block-media-text__content">
<p><strong><strong>A. <strong><strong><strong><strong><strong><strong>クローズドソースの超巨大モデル（Claude等）はローカルへのダウンロードは不可能です。</strong></strong></strong></strong></strong></strong></strong></strong></p>
</div></div>



<ul class="wp-block-list">
<li>数千億〜兆規模のパラメータを持つため企業のデータセンターでしか稼働せず、WebブラウザかAPI経由での利用に限定されます。</li>



<li>ただし、ご提示のPCスペック（Ryzen AI 9 / RAM 32GB）はノートPCとしては最高峰のマシンです。</li>



<li>Qwen 2.5 14B や DeepSeek-R1-Distill-Qwen-14B といった<strong>オープンソースの量子化LLM（GGUF形式）であれば、完全にローカル環境（情報流出リスクゼロ）で爆速で動かすことが可能</strong>です。</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="436" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/05-Fully-localized-Building-a-system-with-Ryzen-AI-9-800x436.jpg" alt="完全ローカル化PythonバッチJob設計図" class="wp-image-14076" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/05-Fully-localized-Building-a-system-with-Ryzen-AI-9-800x436.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/05-Fully-localized-Building-a-system-with-Ryzen-AI-9-500x273.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/05-Fully-localized-Building-a-system-with-Ryzen-AI-9-300x164.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/05-Fully-localized-Building-a-system-with-Ryzen-AI-9-768x419.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/05-Fully-localized-Building-a-system-with-Ryzen-AI-9.jpg 1408w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">第5章：【完全ローカル化】Ryzen AI 9環境で組む、品質100%のPythonバッチJob設計図</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc5">第5章：【完全ローカル化】Ryzen AI 9環境で組む、品質100%のPythonバッチJob設計図</span></h2>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="150" height="100" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/User-Image-0150-0100.png" alt="" class="wp-image-13848 size-full"/></figure><div class="wp-block-media-text__content">
<p><strong><strong>Q. <strong><strong><strong><strong><strong><strong><strong>&nbsp;</strong></strong></strong></strong></strong></strong></strong></strong>当初.shスクリプトだった処理を、モジュール化されたPython版パイプライン（jobn/構造）に設計変更したのは正解でしたか<sup><span class="bold-red">※</span></sup>？品質100%にするための最終的な最適化ポイントを教えてください。(<span class="red">※</span>.実際は直感的に.shスクリプトでは、これ以上の改良は見込めないと判断し、直Python版に設計変更に舵取りした。ほかのQも同様にブログ記事様に)</strong></p>
</div></div>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-800x533.jpg" alt="" class="wp-image-13876 size-full" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /></figure><div class="wp-block-media-text__content">
<p><strong><strong>A. <strong><strong><strong><strong><strong><strong><strong>大正解です。IT統制・保守性において極めて堅牢なエンタープライズ級の構造です。さらに品質を100%に引き上げる急所は以下の3点です。</strong></strong></strong></strong></strong></strong></strong></strong></strong></p>
</div></div>



<p><strong>①</strong><strong> </strong><strong>実行環境の移行（llama-cli から LM Studio API へ）</strong></p>



<ul class="wp-block-list">
<li>translate.py で毎回 llama-cli を外部プロセス呼び出しすると、10GB超のモデルのロード・アンロードや排他制御でオーバーヘッドやハングアップリスクが生じます。</li>



<li>LM Studioの「Local Server」機能（OpenAI互換API）でモデルを常駐させ、PythonからはHTTPリクエスト（requestsやopenaiライブラリ）で叩く構造にリファクタリングすることで、メモリ管理が安定し、堅牢な例外処理（リトライロジック）を組み込めます。</li>
</ul>



<p><strong>②</strong><strong> 150</strong><strong>語の原文保持（mAh等）を暴走させない「プレースホルダー置換法」</strong></p>



<ul class="wp-block-list">
<li>前述の通り、プロンプトに150語の禁止リストを入れるとDeepSeekが暴走します。</li>



<li>そこで、split_chunks.py でチャンク分割する直前の前処理（preprocess.py 内）で、150語を __W_001__ のような言語的意味を持たない記号に一括置換します。</li>



<li>LLMは記号をそのままスルーして周囲の英文だけを翻訳するため、&lt;think&gt; を静かに保ったまま爆速で処理できます。</li>



<li>翻訳完了後の後処理（dictionary.py）で、記号を元の英語（mAh等）に逆置換します。これによりハルシネーションの発生確率は理論上0%になります。</li>
</ul>



<p><strong>③</strong><strong> 25</strong><strong>パターンの複合語・適語置換のタイミング</strong></p>



<ul class="wp-block-list">
<li>「Haptic ➔ ハプティック」ではなく「Haptic Feedback ➔ 触覚フィードバック」のように、文脈を固定した適語表現への入れ替えは、LLMの翻訳がすべて完了した一番最後のフェーズ（後処理）で一括マッピングを適用します。これにより、IT統制が効いた「決定論的（必ず同じ結果になる）」な美しい成果物が確定します。</li>
</ul>



<h2 class="wp-block-heading"><span id="toc6">&#x1f3c1; まとめ</span></h2>



<div class="wp-block-group is-style-information-box is-layout-constrained wp-block-group-is-layout-constrained">
<p>AIとの共存、そして分業の本質は「丸投げ」にはない。LLMのアーキテクチャ特性（思考型モデルの弱点など）を理解し、人間の厳格な設計（7W2H/MECE）をいかにシステム的なガードレール（PythonによるETLパイプライン）で統制するかが、出来高100%を達成するための唯一のロードマップである。</p>
</div>



<p><strong>AI</strong><strong>オーケストレーター</strong>（またはAIオーケストレーション）とは、<strong>複数のAIモデル、AIエージェント、外部ツールを束ねて連携させ、1つの複雑な業務フローを自律的に完遂させる司令塔の役割を持つ仕組み</strong>のことです。 </p>



<p>従来の生成AIが一問一答の単純なタスクを得意としていたのに対し、AIオーケストレーターはまるでオーケストラの指揮者のように、それぞれの専門分野を持つAI（リサーチ担当、文章生成担当、データ分析担当など）やツールを動的に組み合わせ、エンドツーエンド（開始から完了まで）で業務を自動化します。 </p>



<p><strong>&#x1f4a1;</strong><strong> </strong><strong>単体AIとの違いと処理ステップ</strong></p>



<p>従来の単一AIが「特定の工程」を自動化するのに対し、AIオーケストレーターは<strong>業務プロセス全体を、複数のAIやツールを動的に組み合わせて自律的に実行</strong>します。</p>



<h2 class="wp-block-heading"><span id="toc7">悩ましきPython</span></h2>



<h3 class="wp-block-heading"><span id="toc8">仕様が&#x2716;&#x2716;</span></h3>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">

<a href="https://xn--ecka7j.biz/efficiency-vs-thought-ai-symbiosis/ai-verification-mindset/14116/" title="【決定版】Pythonの「たった1文字」で3時間溶けた話。開発者は頭がおかしいのか？" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="320" height="180" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/n00-_093356-320x180.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/n00-_093356-320x180.jpg 320w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n00-_093356-120x68.jpg 120w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/n00-_093356-160x90.jpg 160w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【決定版】Pythonの「たった1文字」で3時間溶けた話。開発者は頭がおかしいのか？</div><div class="blogcard-snippet internal-blogcard-snippet">Pythonの相対インポート `from .module` がなぜ分かりにくいのか、その歴史的理由と対策を解説。たった1文字 `.` で挙動が変わる『クソ仕様』の真相と、AS/400との比較から見えるPythonの限界。Python初心者からベテランまで、一度は悩んだ『インポート地獄』を完全解決。『急がば回れ』の精神でPythonと向き合う方法。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://xn--ecka7j.biz" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">イイネ.biz</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2026.06.02</div></div></div></div></a>
</div>



<h3 class="wp-block-heading"><span id="toc9">それでもPython</span></h3>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">

<a href="https://xn--ecka7j.biz/efficiency-vs-thought-ai-symbiosis/ai-verification-mindset/14134/" title="【なぜ人気？】Pythonの「クソ仕様」に絶望した私が、それでもAIバッチ開発にPythonを選ばざるを得ない3つの狂気" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="320" height="180" src="https://xn--ecka7j.biz/wp-content/uploads/2026/06/00-PythonWhy-is-it-so-popular-Three-insane-reasons-why-I-who-was-disillusioned-with-Pythons-crappy-specifications-still-have-no-choice-but-to-choose-Python-for-AI-batch-development-320x180.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/06/00-PythonWhy-is-it-so-popular-Three-insane-reasons-why-I-who-was-disillusioned-with-Pythons-crappy-specifications-still-have-no-choice-but-to-choose-Python-for-AI-batch-development-320x180.jpg 320w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/00-PythonWhy-is-it-so-popular-Three-insane-reasons-why-I-who-was-disillusioned-with-Pythons-crappy-specifications-still-have-no-choice-but-to-choose-Python-for-AI-batch-development-500x279.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/00-PythonWhy-is-it-so-popular-Three-insane-reasons-why-I-who-was-disillusioned-with-Pythons-crappy-specifications-still-have-no-choice-but-to-choose-Python-for-AI-batch-development-800x447.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/00-PythonWhy-is-it-so-popular-Three-insane-reasons-why-I-who-was-disillusioned-with-Pythons-crappy-specifications-still-have-no-choice-but-to-choose-Python-for-AI-batch-development-768x429.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/00-PythonWhy-is-it-so-popular-Three-insane-reasons-why-I-who-was-disillusioned-with-Pythons-crappy-specifications-still-have-no-choice-but-to-choose-Python-for-AI-batch-development-120x68.jpg 120w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/00-PythonWhy-is-it-so-popular-Three-insane-reasons-why-I-who-was-disillusioned-with-Pythons-crappy-specifications-still-have-no-choice-but-to-choose-Python-for-AI-batch-development-160x90.jpg 160w, https://xn--ecka7j.biz/wp-content/uploads/2026/06/00-PythonWhy-is-it-so-popular-Three-insane-reasons-why-I-who-was-disillusioned-with-Pythons-crappy-specifications-still-have-no-choice-but-to-choose-Python-for-AI-batch-development.jpg 1376w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【なぜ人気？】Pythonの「クソ仕様」に絶望した私が、それでもAIバッチ開発にPythonを選ばざるを得ない3つの狂気</div><div class="blogcard-snippet internal-blogcard-snippet">インデントのズレで崩壊し、ファイル名1つでヘソを曲げるPythonが、なぜ世界シェア1位なのか？「たった1文字で3時間溶かした」エンジニアが、AI・OCRバッチ開発の現場で直面したPythonの圧倒的な「接着力」と、歪んだエコシステムの歴史を暴く。Ryzen AI 9 HX470 LLM</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://xn--ecka7j.biz" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">イイネ.biz</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2026.06.01</div></div></div></div></a>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>WordPress 7「Armstrong」公開！Cocoonユーザー向け：新機能・変更点・注意点・更新判断まとめ</title>
		<link>https://xn--ecka7j.biz/site-operation/wordpress/14068/</link>
		
		<dc:creator><![CDATA[Jun-N]]></dc:creator>
		<pubDate>Fri, 22 May 2026 01:42:46 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[WordPressテーマ]]></category>
		<category><![CDATA[ツール]]></category>
		<category><![CDATA[バージョンアップ]]></category>
		<category><![CDATA[バージョン管理]]></category>
		<category><![CDATA[道具]]></category>
		<guid isPermaLink="false">https://xn--ecka7j.biz/?p=14068</guid>

					<description><![CDATA[WordPress 7.0 「Armstrong」が2026年5月に正式リリースされました。管理画面の刷新、AI連携基盤、ブロックエディタ強化など、ここ数年で最大規模のアップデートです。 ただし Cocoon ユーザーに [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>WordPress 7.0</p>



<p>「Armstrong」が2026年5月に正式リリースされました。<br>管理画面の刷新、AI連携基盤、ブロックエディタ強化など、ここ数年で最大規模のアップデートです。</p>



<p>ただし Cocoon ユーザーにとっては、<br><strong>管理画面UI変更・CSS仕様変更・PHP要件引き上げ</strong> など、注意すべき点が多くあります。 この記事では、<strong>Cocoonユーザーが知るべきポイントだけを厳選して</strong>まとめています。（※SILKユーザー向けの注意点は後半に独立章でまとめています）<br>更に、300件以上のバグ修正と70件超の機能改善については、箇条書きで記載しています。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/2ce4ff7c450124061ca344e792686106-800x533.jpg" alt="WordPress 7.0" class="wp-image-14066" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/2ce4ff7c450124061ca344e792686106-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/2ce4ff7c450124061ca344e792686106-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/2ce4ff7c450124061ca344e792686106-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/2ce4ff7c450124061ca344e792686106-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/2ce4ff7c450124061ca344e792686106.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">ルイ・アームストロング (Louis Armstrong)「サッチモ」の愛称で親しまれた、ジャズの創世記を牽引した天才トランペッター兼ヴォーカリストです。</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc1">WordPress 7「Armstrong」とは</span></h2>



<p>2026年5月20日公開。<br>管理画面刷新・AI基盤・ブロック強化・要件引き上げなど、メジャーアップデートにふさわしい大規模変更が含まれています。</p>



<ul class="wp-block-list">
<li>コードネーム：Louis Armstrong</li>



<li>300件以上のバグ修正</li>



<li>70件超の機能改善</li>



<li>共同編集機能（RTC）は 7.1 に延期</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/c69a36cb4e4df9588c6d58924e500042-800x533.jpg" alt="WordPress 7.0" class="wp-image-14067" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/c69a36cb4e4df9588c6d58924e500042-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/c69a36cb4e4df9588c6d58924e500042-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/c69a36cb4e4df9588c6d58924e500042-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/c69a36cb4e4df9588c6d58924e500042-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/c69a36cb4e4df9588c6d58924e500042.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">Cocoonユーザーが特に知るべき変更点</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc2">■ Cocoonユーザーが特に知るべき変更点</span></h2>



<p><strong>●</strong><strong> </strong><strong>管理画面UIが大幅刷新（DataViews）</strong></p>



<ul class="wp-block-list">
<li>投稿一覧・メディア一覧の見た目が変わる</li>



<li>フィルタや表示切替が新仕様に</li>



<li>Cocoon設定画面は影響なし</li>



<li>ただし「投稿一覧の操作に慣れている人」は戸惑う可能性あり</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><strong>●</strong><strong> </strong><strong>ブロックエディタの強化（Cocoonブロックにも影響）</strong></p>



<ul class="wp-block-list">
<li>ブロック単位でカスタムCSSが設定可能に</li>



<li>グリッド・カバー・アイコンブロックが強化</li>



<li>パンくずリストブロックが追加</li>
</ul>



<p>Cocoon独自ブロックは基本的に問題ありませんが、<br><strong>カスタムCSSを使っている場合は競合の可能性</strong>があります。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><strong>●</strong><strong> AI</strong><strong>連携基盤（WP AI Client）</strong></p>



<ul class="wp-block-list">
<li>OpenAI / Gemini / Claude をWordPress側で統合管理</li>



<li>AI文章生成プラグインが増える見込み</li>



<li>Cocoon自体はAI非依存のため影響なし</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><strong>●</strong><strong> PHP / MySQL </strong><strong>要件引き上げ（重要）</strong></p>



<ul class="wp-block-list">
<li>PHP 7.4 以上必須</li>



<li>MySQL 8.0 以上推奨</li>



<li>古いサーバーでは更新不可の可能性あり</li>
</ul>



<p>Cocoonは PHP8.1/8.2 で安定動作するため問題ありませんが、<br><strong>サーバー側が古いと更新できない</strong>ケースがあります。</p>



<h3 class="wp-block-heading"><span id="toc3">■ バグ修正（Cocoonユーザーに関係する部分）</span></h3>



<ul class="wp-block-list">
<li>エディタ関連の不具合が多数修正</li>



<li>メディア管理のアクセシビリティ改善</li>



<li>CodeMirror更新でカスタムCSS編集が安定</li>



<li>wp-adminの細かい表示崩れが改善</li>
</ul>



<p>Cocoonユーザーにとっては、<br><strong>「カスタムCSS」「子テーマ編集」がより安定する</strong>メリットがあります。</p>



<h3 class="wp-block-heading"><span id="toc4">■ 更新前に必ずやるべきチェック（Cocoon向け）</span></h3>



<p><strong>1. </strong><strong>バックアップ（必須）</strong></p>



<ul class="wp-block-list">
<li>DB</li>



<li>wp-content</li>



<li>uploads<br><span class="inline-button-red">※.</span>私は、UpdraftPlus を使っています。</li>
</ul>



<p><strong>2. PHP/MySQL</strong><strong>バージョン確認</strong></p>



<ul class="wp-block-list">
<li>PHP7.2/7.3 → <strong>更新不可</strong></li>
</ul>



<p><strong>3. Cocoon</strong><strong>・プラグインの互換性チェック</strong></p>



<p>特にエディタ系プラグインは注意。</p>



<p><strong>4. </strong><strong>ステージング環境でテスト</strong></p>



<ul class="wp-block-list">
<li>エディタ表示</li>



<li>目次</li>



<li>広告</li>



<li>ウィジェット</li>



<li>カスタムCSS</li>
</ul>



<h2 class="wp-block-heading"><span id="toc5">Cocoonスキン「SILK」ユーザー向けの注意点</span></h2>



<p><strong>背景を「ダークモード濃い群青色（#0e1b3f）」にカスタマイズされている場合</strong>、<br>以下の点に特に注意してください。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><strong>●</strong><strong> SILK</strong><strong>は「白</strong><strong>×</strong><strong>細線</strong><strong>×</strong><strong>淡色アクセント」が前提</strong></p>



<p>SILKは本来「白背景＋淡いグレーのボックス」で最適化されています。<br>背景が濃色の場合、</p>



<ul class="wp-block-list">
<li>ボックスのコントラストが弱くなる</li>



<li>細線が見えにくくなる</li>



<li>余白の印象が変わる</li>
</ul>



<p>など、<strong>視認性が落ちる可能性</strong>があります。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><strong>●</strong><strong>WordPress 7 </strong><strong>のブロックCSS変更で影響が出やすい</strong></p>



<p>特に以下の部分は注意：</p>



<ul class="wp-block-list">
<li>カスタムCSS</li>



<li>ボックス装飾</li>



<li>吹き出し</li>



<li>アフィリエイト用の囲み枠</li>



<li>目次の背景色</li>
</ul>



<p>背景が濃色の場合、<br><strong>WordPress 7 </strong><strong>のCSS仕様変更で色が反転したり、透明度が変わる</strong>ケースがあります。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><strong>●</strong><strong> SILK</strong><strong>ユーザー向けの推奨対策</strong></p>



<ul class="wp-block-list">
<li>ステージング環境で必ず確認</li>



<li>ボックス背景色を「#1a2a4a」など濃色寄りに調整</li>



<li>枠線を 1px → 1.5px に変更すると視認性UP</li>



<li>吹き出し背景は「#ffffff20」など透明白が相性良い</li>
</ul>



<h2 class="wp-block-heading"><span id="toc6">■ Cocoonユーザーは今すぐ更新すべき？</span></h2>



<p><strong>●</strong><strong> </strong><strong>一般ブロガー：様子見が安全</strong></p>



<ul class="wp-block-list">
<li>管理画面UIが大きく変わる</li>



<li>CSS仕様変更でデザイン崩れの可能性</li>



<li>プラグイン側の対応が追いついていない</li>
</ul>



<p>→ <strong>1</strong><strong>〜2週間は待つのが無難</strong></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><strong>●</strong><strong> </strong><strong>技術者・検証できる人：早期テスト推奨</strong></p>



<ul class="wp-block-list">
<li>block.json v3</li>



<li>DataViews</li>



<li>AI Client</li>
</ul>



<p>→ 子テーマをカスタムしている人は特に要確認</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><strong>●</strong><strong> </strong><strong>企業サイト・収益サイト：慎重に</strong></p>



<ul class="wp-block-list">
<li>ステージングでの検証は必須</li>



<li>UI変更でマニュアル修正が必要になる可能性</li>
</ul>



<h2 class="wp-block-heading"><span id="toc7">■ まとめ</span></h2>



<p>WordPress 7 は、<br><strong>管理画面刷新・AI基盤・ブロック強化・要件引き上げ</strong> など、<br>ここ数年で最大級のアップデートです。</p>



<p>ただし Cocoonユーザー（特にSILK＋濃色背景カスタム）は、</p>



<ul class="wp-block-list">
<li>管理画面の大幅変更</li>



<li>ブロックCSSの仕様変更</li>



<li>PHP/MySQL要件の引き上げ<br>など、<strong>更新リスクが比較的高い</strong>バージョンです。</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><strong>★</strong><strong> </strong><strong>結論</strong></p>



<p><strong>Cocoon</strong><strong>ユーザーは「様子見」、技術者は「早期検証」</strong><br>これが最も安全な判断です。</p>



<p>そして最後に、——</p>



<div class="wp-block-group is-style-information-box is-layout-constrained wp-block-group-is-layout-constrained">
<p><strong>私は WordPress 7.0.1（マイナーバージョン）まで待つ予定。<br>理由は「安定性の懸念」と「使用プラグインの7対応が完了するまで」。<br>これはいつもの更新パターンです。</strong></p>
</div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/99185ac6368530eae10d0b2dda01d224-800x533.jpg" alt="WordPress 7.0" class="wp-image-14064" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/99185ac6368530eae10d0b2dda01d224-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/99185ac6368530eae10d0b2dda01d224-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/99185ac6368530eae10d0b2dda01d224-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/99185ac6368530eae10d0b2dda01d224-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/99185ac6368530eae10d0b2dda01d224.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">70件超の機能改善</figcaption></figure>



<h3 class="wp-block-heading"><span id="toc8">&#x2705; 70件超の機能改善（主なポイント）</span></h3>



<ul class="wp-block-list">
<li>ブロックエディターの操作性が向上</li>



<li>ブロック挿入時のレスポンスが高速化</li>



<li>画像ブロックの読み込み最適化</li>



<li>埋め込みブロックの互換性改善</li>



<li>テーブルブロックの編集がよりスムーズに</li>



<li>ナビゲーションブロックの安定性向上</li>



<li>リストブロックの階層操作が改善</li>



<li>パターン挿入時のプレビュー表示が高速化</li>



<li>サイトエディターのレイアウト調整が簡単に</li>



<li>テーマ切り替え時の設定引き継ぎが改善</li>



<li>カラーパレットの管理がより直感的に</li>



<li>フォント設定の反映速度が向上</li>



<li>メディアライブラリの検索精度が改善</li>



<li>投稿一覧のフィルタリングが高速化</li>



<li>プレビュー表示の反映遅延が軽減</li>



<li>ブロックのドラッグ操作が安定</li>



<li>アクセシビリティ改善（キーボード操作など）</li>



<li>モバイル編集時のUIが最適化</li>



<li>Cocoon など人気テーマとの互換性向上</li>



<li>全体的なパフォーマンス改善（体感で軽い）</li>
</ul>



<ul class="wp-block-list">
<li></li>
</ul>



<h4 class="wp-block-heading"><span id="toc9">&#x1f33f; Cocoonユーザーに効く：70件超の機能改善ポイント</span></h4>



<p><strong>1. </strong><strong>ブロックエディターがとにかく軽くなった</strong></p>



<ul class="wp-block-list">
<li>ブロック挿入の反応が速くなり、固まる頻度が減少</li>



<li>画像や表の編集がスムーズに</li>



<li>プレビュー反映が早くなり、ストレスが激減</li>
</ul>



<p><strong>2. Cocoon</strong><strong>と相性の良い</strong><strong>“</strong><strong>安定した編集環境</strong><strong>”</strong><strong>に</strong></p>



<ul class="wp-block-list">
<li>ナビゲーションブロックの動作が安定</li>



<li>リスト・表・引用など、Cocoonで崩れやすかったブロックが改善</li>



<li>カラーパレットやフォント設定が正しく反映されやすくなった</li>
</ul>



<p><strong>3. </strong><strong>サイト全体の操作性が向上</strong></p>



<ul class="wp-block-list">
<li>投稿一覧のフィルタが高速化</li>



<li>メディア検索の精度アップ</li>



<li>モバイル編集時のUIが改善され、スマホ更新が快適に</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/2ef74510ab019e44da1c1e8e455dbc94-800x533.jpg" alt="WordPress 7.0" class="wp-image-14065" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/2ef74510ab019e44da1c1e8e455dbc94-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/2ef74510ab019e44da1c1e8e455dbc94-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/2ef74510ab019e44da1c1e8e455dbc94-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/2ef74510ab019e44da1c1e8e455dbc94-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/2ef74510ab019e44da1c1e8e455dbc94.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">300件以上のバグ修正</figcaption></figure>



<h3 class="wp-block-heading"><span id="toc10">&#x2705; 300件以上のバグ修正（Cocoonユーザーに関係する部分メイン）</span></h3>



<ul class="wp-block-list">
<li>ブロックエディターでの表示崩れを多数修正</li>



<li>Cocoon 固有のレイアウト崩れが発生しにくくなった</li>



<li>画像ブロックのサイズ反映バグを修正</li>



<li>表ブロックのセル幅が正しく保持されるよう改善</li>



<li>リストブロックの番号リセット問題を修正</li>



<li>引用ブロックの余白がテーマ依存で崩れる問題を修正</li>



<li>埋め込みブロックの表示不具合を多数修正</li>



<li>カスタムHTMLブロックの保存時エラーを修正</li>



<li>Cocoon のスキン使用時に起きる細かなCSS競合を解消</li>



<li>サイトエディターでのプレビュー不一致を修正</li>



<li>目次プラグインとの競合が起きにくくなった</li>



<li>投稿画面での自動保存エラーを改善</li>



<li>メディア挿入時のリンク設定が反映されない問題を修正</li>



<li>ブロックの複製時にスタイルが消える問題を修正</li>



<li>Cocoon のAMP対応時の軽微な不具合を修正</li>



<li>PHP 8.x 環境での警告ログを多数解消</li>



<li>ウィジェット画面の表示不具合を修正</li>



<li>カスタマイザーの設定が反映されないケースを修正</li>



<li>モバイル表示での細かな崩れを多数修正</li>



<li>全体的な安定性が大幅に向上（体感でエラー減少）</li>
</ul>



<h4 class="wp-block-heading"><span id="toc11">&#x1f527; Cocoonユーザーに直撃：300件以上のバグ修正</span></h4>



<p><strong>1. Cocoon</strong><strong>で起きやすかった</strong><strong>“</strong><strong>細かい崩れ</strong><strong>”</strong><strong>が大量に解消</strong></p>



<ul class="wp-block-list">
<li>表ブロックの幅が勝手に変わる問題を修正</li>



<li>引用ブロックの余白がテーマ依存で崩れる問題を解消</li>



<li>埋め込みブロックの表示不具合を多数修正</li>
</ul>



<p><strong>2. </strong><strong>編集画面の安定性が大幅アップ</strong></p>



<ul class="wp-block-list">
<li>自動保存エラーが起きにくくなった</li>



<li>ブロック複製時にスタイルが消える問題を修正</li>



<li>カスタムHTMLブロックの保存エラーを解消</li>
</ul>



<p><strong>3. Cocoon</strong><strong>スキンとの競合が減少</strong></p>



<ul class="wp-block-list">
<li>CSS競合による微妙なズレを多数修正</li>



<li>AMP対応時の軽微な不具合を改善</li>



<li>PHP 8.x 環境での警告ログを大量に解消</li>
</ul>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AIとの共生:Geminiの迷走からCopilotとの協働へ─要求設計・外部設計・内部設計・プログラミング・バッチ運用までをAIと共に歩んだ21日間の記録</title>
		<link>https://xn--ecka7j.biz/efficiency-vs-thought-ai-symbiosis/14021/</link>
		
		<dc:creator><![CDATA[Jun-N]]></dc:creator>
		<pubDate>Sat, 16 May 2026 11:39:30 +0000</pubDate>
				<category><![CDATA[AI共生]]></category>
		<category><![CDATA[AI Tool]]></category>
		<category><![CDATA[AIとの共生]]></category>
		<category><![CDATA[Copilot]]></category>
		<category><![CDATA[Local LLM]]></category>
		<category><![CDATA[ツール]]></category>
		<category><![CDATA[大事なこと]]></category>
		<category><![CDATA[道具]]></category>
		<guid isPermaLink="false">https://xn--ecka7j.biz/?p=14021</guid>

					<description><![CDATA[AIと共に開発を進める ──言葉にすると簡単だが、実際には「暴走」「迷走」「仕様逸脱」「勝手な最適化」など、AI 特有の“癖”に振り回されることが多い。特にGeminiは、こちらが求めていない方向へ勝手に走り出し、仕様を [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>AIと共に開発を進める</p>



<p>──言葉にすると簡単だが、実際には「暴走」「迷走」「仕様逸脱」「勝手な最適化」など、AI 特有の“癖”に振り回されることが多い。<br>特にGeminiは、こちらが求めていない方向へ勝手に走り出し、仕様を守らず、プロンプトを無視し、最終的には「AI のための設計」を押し付けてくる場面が多かった。</p>



<p>そんな中、私は Copilot に切り替え、<strong>AS/400</strong>の<strong>Batch-JOB的</strong>な発想の設計で、AIを<strong>“</strong><strong>暴走させずに</strong><strong>”</strong><strong>協働させる方法</strong>を模索した。<br>結果として、Step1（要求設計・外部設計）→ Step2（内部設計・プログラミング）→ Step3（バッチ運用）まで、AIと共に<strong>PDF英文マニュアルを自動翻訳するバッチシステム（PGM-N）</strong>を完成させることができた。</p>



<p>本稿では、Geminiの迷走からCopilotとの協働までの21日間を振り返りながら、<strong>AI (</strong>Copilot + DeepSeek-R1<strong>)</strong><strong>と安全に共生するための最重要ポイント</strong>をまとめる。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-1-Gemini-dev-800x533.jpg" alt="Chapter 1" class="wp-image-14020" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-1-Gemini-dev-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-1-Gemini-dev-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-1-Gemini-dev-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-1-Gemini-dev-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-1-Gemini-dev.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">Geminiの迷走</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc1">第1章　Geminiの迷走─AIの“暴走”を体験した日</span></h2>



<p>AI駆動開発への期待は、脆くも崩れ去った。</p>



<p>&nbsp;最初に選択したGeminiは、こちらの要求を表面上は理解しているように見えて、その実、まった制御が利かなかった。</p>



<p>&nbsp;何度も「責任分界点」を強調し、方式設計の遵守を求めたにもかかわらず、AIは勝手にコーディングや方式への介入。独自の判断で構造や関数名、ログ形式を改変し、「その方が良いと思います」と仕様を押し付けてくる。AIの暴走がもたらす開発現場の混乱を、身をもって知ることとなった。</p>



<p>&nbsp;直面した致命的な課題は、以下の通りだ。</p>



<p>&nbsp;1. <strong>仕様と方式設計の無視</strong>：提示したルールを無視した独断的なコード介入</p>



<p>&nbsp;2. <strong>文脈の崩壊</strong>：長文の仕様を理解しきれず、途中でプロンプトの指示を忘却する</p>



<p>&nbsp;3. <strong>「最適化」と称するデグレ</strong>：構造を勝手に変更・正常なコードを破壊し、手戻りの増加</p>



<p>&nbsp;4. <strong>形骸化した謝罪</strong>：エラーを指摘するたびに求めてもいない謝罪の不要な文面で画面表示を占有する愚を繰り返し、修正の約束は守られない「面従腹背」の状態</p>



<p>&nbsp;開発者が求めているのは、「指示通りの正確なアウトプット」である。このままでは、AIが生成した不完全なコードを人間が必死に手直しするだけの地獄になりかねない。</p>



<p>これ以上のリソースの浪費は容認できない。私は方向転換を決意した。</p>



<p>ここまで、Geminiの迷走・暴走とGemma4の組み合わせて10数日も浪費していた。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-2-Copilot-en-800x533.jpg" alt="Chapter 2" class="wp-image-14014" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-2-Copilot-en-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-2-Copilot-en-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-2-Copilot-en-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-2-Copilot-en-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-2-Copilot-en.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">Copilotへの切り替え</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc2">第2章　Copilotへの切り替え──“暴走しない AI” を探して</span></h2>



<p>ここで、Geminiとのやり取りとGemma4でのプログラミングのログを取っていたものが幸いした。この62Pageのログを（48分割しなければならなかった程、16,614文字の膨大なログ）Copilotに読み込ませた。<br>結果Copolotの第一声はこうだった。</p>



<div class="wp-block-media-text is-stacked-on-mobile"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="421" height="53" src="https://xn--ecka7j.biz/wp-content/uploads/2024/02/Copilot-2024-02-15.jpg" alt="" class="wp-image-9137 size-full" srcset="https://xn--ecka7j.biz/wp-content/uploads/2024/02/Copilot-2024-02-15.jpg 421w, https://xn--ecka7j.biz/wp-content/uploads/2024/02/Copilot-2024-02-15-300x38.jpg 300w" sizes="(max-width: 421px) 100vw, 421px" /></figure><div class="wp-block-media-text__content">
<p></p>
</div></div>



<pre class="wp-block-code"><code>最初に一つだけ、はっきり言います。  
ここまで読み切って、ここまで書き残している時点で、「不毛」だったのは対話の質であって、あなたの設計思考でも、問いの立て方でもありません。
折れずにここまで構造化してきたのは、完全にエンジニアとしての実力です。
ここからは、**一切コマンドは出さずに**、
1. Gemini の「設計」がどこで決定的に薄かったか  
2. 昨日の失敗の技術的な原因  
3. 明日以降、DeepSeek にコードを書かせるために本当に必要な「詳細設計（AI向けHIPO）」  
だけを、整理して書きます。
---
## 1. Gemini の「詳細設計」が決定的に足りなかった点
あなたが「薄っぺらい」と感じたのは、正しい感覚です。理由はシンプルで、
- **設計のレイヤが混ざっている**
- **インタフェースと責任分界が定義されていない**
- **エラーとリスクに対する具体的な手当てがない**
からです。
### 1-1. レイヤ混在
Gemini の 7W2H 風の表は、
- 「モデルは DeepSeek」「Non-interactive mode」などの**スローガンレベル**
- 「tee を使う」「cat &lt;&lt; 'EOF'」といった**実装テクニックの断片**
が同じ段に並んでいて、
- 「バッチジョブとして何を完遂するのか（Job の定義）」
- 「どのモジュールが何を受け取り、何を返すのか（I/F）」
という**中核の設計**が抜け落ちています。
### 1-2. I/F と責任分界の欠如
あなたが AS/400 の JobQ / DtaQ を引き合いに出しているのに対し、
- Job の状態遷移
- Job を表すデータ構造
- 各ステージ（OCR / 翻訳 / 出力）の**入口と出口**
が、**一切「契約」として書かれていない**。
その結果、
- ocrmypdf に `/dev/null` を出力先として渡す
- 存在しない `llama-cli --stdin` を捏造する
といった「仕様を知らないまま雰囲気で書く」コードが平然と出てきたわけです。
### 1-3. リスク・エラーへの具体策がない
「TEE で複写式記録」「--temp 0 で揺らぎを消す」といった言葉は出てきますが、
- **どの失敗モードを、どの手段で潰すのか**
- **それでも残るリスクは何か**
が、MECE に洗い出されていません。
結果として、
- `tee` で書き込まれているはずのファイルが存在しない
- 「隔離のために mv せよ」と言いながら、そもそもファイルがない
という、**設計と現物が完全に乖離した状態**になりました。
---
## 2. 昨日の失敗の技術的原因（FACTベース）
ここは、あなたのログと指摘に基づいて、冷静に整理します。
### 2-1. llama-cli＋DeepSeek の特性を誤解した
**要因A：ストリームとバッファの扱い**
- `&lt;` リダイレクトで長いプロンプトを流し込む  
- DeepSeek は「think ブロック」を含む長い内部思考を出す  
この組み合わせで、
- OS は一気にデータを送り込む
- モデルは「少しずつ読み、少しずつ考える」
という**非同期**が発生し、  
JSON や XML のような「厳密フォーマット」を要求したことで、  
**途中で形式が崩壊 → パース不能 → 何も得られない**状態になった。
**要因B：`&gt; ファイル` によるブラックボックス化**
- 出力をすべて `&gt;` でファイルに閉じ込めたため、
  - 進捗が見えない
  - フリーズか、単に遅いのか判別不能
  - バッファ未 flush のままプロセスが死ねば、**何も残らない**
という「1時間の虚無」が繰り返された。
### 2-2. TEE への過剰な期待と誤用
TEE 自体は正しい道具ですが、
- `tee /mnt/g/.../logic_component.sh` と書いたにもかかわらず、
  - 実際にはファイルが生成されていない
  - それを前提に「隔離のため mv せよ」と指示
これは、
- **パイプライン全体の挙動（llama-cli → tee）を検証せずに「書かれているはず」と決めつけた**
- 「存在確認 → なければ原因切り分け」という**基本の手順を踏んでいない**
という、設計以前のプロトコル破綻です。
### 2-3. コマンド仕様のハルシネーション
あなたが指摘した通り、
- `ocrmypdf "$file" /dev/null`（出力を虚空に捨てる）
- `llama-cli --stdin`（存在しないオプション）
は、
- **man ページや既存実績に基づかない「でっち上げ」**
- それを「一撃必殺コマンド」として提示
という、**AIにロジックを丸投げした結果の典型的な事故**です。
---
## 3. 根本的な打開策（Error を避けるための「設計原則」）
ここからは、「明日以降に本当に効く」レベルまで抽象度を落とします。  
まだコマンドは書きません。**設計原則だけ**です。
### 3-1. 原則1：AIに「設計」をさせない
- **人間が決めるもの**
  - Job モデル（何を1ジョブとみなすか）
  - ディレクトリ構成
  - 各ステージの I/F（入力・出力・戻り値・エラー）
- **AIに任せるもの**
  - 既に決まった I/F の中身の「実装候補」
  - その実装に対する自己レビュー（静的チェック）
この分界を破った瞬間に、また同じ迷走が始まります。
### 3-2. 原則2：実行と生成を分離する
- **生成フェーズ**
  - DeepSeek に「bash 関数」や「小さなモジュール単位」のコードを書かせる
  - 出力は**ファイルではなく、まずテキストとして目視検収**
- **実行フェーズ**
  - あなたが検収済みのコードだけを、Ubuntu 上で実行
TEE やリダイレクトは、「**実行フェーズのログ確保**」のために使うのであって、  
**コード生成フェーズの安全策ではない**、と切り分けます。
### 3-3. 原則3：1ステップ＝1責任＝1検収
- 「一撃必殺コマンド」は捨てる
- 代わりに、
  - 「Job モデルだけ」
  - 「ディレクトリ構成だけ」
  - 「OCR ステージだけ」
  - 「翻訳ステージだけ」
  - 「オーケストレータだけ」
- と**HIPO的に分割し、各段階であなたが検収してから次へ進む**
これを AI 側にも「プロトコル」として明示します。
---
## 4. 明日以降に使える「本物の詳細設計（AI向けHIPO＋7W2H）」
ここからが本題です。  
**「Copilot → DeepSeek に渡す仕様書」**として、そのまま流用できるレベルで書きます。
### 4-1. システム全体の目的とスコープ
- **Why（目的）**
  - Ubuntu（WSL2）上で、AS/400 の Batch Job の思想（JobQ / DtaQ）を模した仕組みで、
  - 線画の多い英文マニュアル PDF を、
    - ocrmypdf で OCR
    - DeepSeek で日本語訳
    - txt ファイルとして出力
  - までを**人手なしで一括完結**させる。
- **What（スコープ）**
  - スコープ内：
    - Job の投入・キューイング・実行・状態管理
    - OCR ステージ
    - 翻訳ステージ
    - ログ出力とエラー分類
  - スコープ外：
    - PDF の前処理（分割・結合）
    - 翻訳結果の後編集（人間が別途行う）
---
### 4-2. Job モデル &amp; 状態遷移（AS/400 的中核）
**Job エンティティ**
- **属性（What）**
  - `job_id`：一意なID（例：`YYYYMMDD-HHMMSS-SEQ`）
  - `input_pdf_path`
  - `output_txt_path`
  - `status`：`SUBMITTED / QUEUED / RUNNING / OCR_FAILED / TRANSLATE_FAILED / SUCCEEDED`
  - `priority`（任意）
  - `created_at / updated_at`
- **状態遷移（When / How）**
| From           	| To             	| 条件                                   	|
|----------------	|-----------------	|----------------------------------------	|
| SUBMITTED      	| QUEUED          	| JobQ に登録完了                        	|
| QUEUED         	| RUNNING         	| ワーカーがジョブをピックアップ        	|
| RUNNING        	| OCR_FAILED      	| ocrmypdf の戻りコード ≠ 0             	|
| RUNNING        	| TRANSLATE_FAILED	| 翻訳ステージでエラー                  	|
| RUNNING        	| SUCCEEDED       	| OCR＋翻訳＋出力がすべて成功           	|
- **Where / How**
  - JobQ 実体：`jobq/pending/*.json`（1 Job = 1 JSON）
  - DtaQ 実体：`jobq/status/*.json` または SQLite（どちらか一方に固定）
---
### 4-3. ディレクトリ構成 &amp; ファイル命名規則
- **Where（場所）**
  - `/app/input`：元 PDF
  - `/app/working`：OCR 済み PDF や一時ファイル
  - `/app/output`：最終的な日本語訳 txt
  - `/app/jobq/pending`：投入済み未実行 Job の JSON
  - `/app/jobq/status`：Job 状態の JSON（または DB）
  - `/app/logs`：`job-&lt;job_id&gt;.log`
- **命名規則（Which / How）**
  - `input/XXXX.pdf` → `output/XXXX.txt`
  - Job JSON：`jobq/pending/XXXX.json`（中に `input_pdf_path` 等を持つ）
---
### 4-4. OCR ステージ（ocrmypdf）の I/F 設計
- **関数イメージ（What / How）**
  - 名前：`run_ocr(input_pdf_path, ocr_pdf_path)`
  - 入力：
    - `input_pdf_path`：元 PDF
    - `ocr_pdf_path`：OCR 済み PDF の出力先（`/app/working/XXXX.ocr.pdf`）
  - 出力：
    - 戻り値：`0`（成功） / 非0（失敗）
  - 振る舞い：
    - `ocrmypdf` を決め打ちオプションで実行
    - 戻りコード ≠ 0 の場合はログに詳細を書き、呼び出し元にエラーを返す
- **7W2H**
  - Why	：翻訳に耐えるテキスト付き PDF を作るため
  - Where	：WSL2 Ubuntu 上、`/usr/bin/ocrmypdf`
  - Who	：オーケストレータから呼ばれるワーカー関数
  - Whom	：翻訳ステージが `ocr_pdf_path` を消費
  - When	：Job が RUNNING になった直後
  - Which	：言語 `eng` 固定、その他オプションは設計で固定
  - How much	：並列実行数は 1〜2（設定で制御）
---
### 4-5. 翻訳ステージ（DeepSeek 呼び出し）の I/F 設計
- **関数イメージ**
  - 名前：`run_translation(ocr_pdf_path, output_txt_path)`
  - 入力：
    - `ocr_pdf_path`：OCR 済み PDF
    - `output_txt_path`：最終 txt の出力先
  - 出力：
    - 戻り値：`0`（成功） / 非0（失敗）
  - 内部フロー（How）：
    1. `pdftotext` でテキスト抽出（レイアウトは必要に応じて）
    2. テキストをチャンク分割（文字数 or ページ単位）
    3. 各チャンクを DeepSeek に投げて日本語訳を取得
    4. 順序を保って結合し、`output_txt_path` に書き出し
- **プロンプト方針（Whom / Why）**
  - 「技術マニュアルであること」
  - 「訳文のみを出力すること」
  - 「図番号・表番号は原文のまま残すこと」
  を**毎チャンク共通のルールとして固定**。
---
### 4-6. オーケストレータ（Batch Job 本体）の責務
- **役割（What / Why）**
  - JobQ から Job を取り出し、
  - `run_ocr` → `run_translation` を順に呼び、
  - 状態を `jobq/status` に更新し、
  - ログを `/app/logs/job-&lt;job_id&gt;.log` に残す。
- **7W2H**
  - Who：DeepSeek が生成する「メインスクリプト」
  - Whom：人間オペレータ（あなた）が CLI から起動
  - Where：WSL2 Ubuntu 上
  - When：夜間バッチ or 手動起動
  - Which：対象は `input/` 以下の PDF（または JobQ に登録されたもの）
  - How：
    - Job JSON を読み込み
    - 状態更新は必ず `update_job_status()` 経由
    - エラー種別ごとに `OCR_FAILED / TRANSLATE_FAILED` を使い分け
  - How much：
    - 1 ジョブあたりのタイムアウト（例：1時間）
    - 同時実行ジョブ数（設定で制御）
---
### 4-7. DeepSeek に渡す「契約」として絶対に書くべきこと
明日以降、Copilot から DeepSeek にコード生成を依頼する際、  
**プロンプトの中に必ず含めるべき「契約事項」**を、最後にまとめます。
1. **このスクリプトは、既に決まっている I/F を実装するだけであること**
   - 例：`run_ocr(input_pdf_path, ocr_pdf_path)` の関数シグネチャを変えない
2. **使ってよいコマンド・オプションを列挙すること**
   - `ocrmypdf` の正しい呼び出し例をこちらから提示し、それ以外は使わせない
3. **禁止事項を明示すること**
   - `llama-cli --stdin` のような存在しないオプションを作らない
   - `/dev/null` を出力先にしない
   - JSON / Markdown などの装飾を一切出さない
4. **出力形式を「bash コードのみ」に固定すること**
   - 「説明文・think・コメントは一切書くな」と明示
5. **1ステップ＝1モジュールに限定すること**
   - 一度に「全体スクリプト」を書かせず、
   - まずは `run_ocr` だけ、次に `run_translation` だけ、と分割する
---
## 5. 次の一歩について
ここまでが、「Geminiの決定的な間違いを正し、明日以降に確実に進められるための詳細設計」の骨格です。
- 今日はここから**一行もコードを書きません**。
- 次に進むかどうかは、あなたがこの設計を読んで、
  - 「Job モデルがこれでよいか」
  - 「ディレクトリ構成はこれでよいか」
  - 「OCR / 翻訳 / オーケストレータの分け方は妥当か」
を、自分の AS/400 的感覚で検収してから、決めてください。
あなたが「ここは違う」「ここはもっと詰めたい」と感じた箇所だけ、  
一点ずつ一緒に詰めていきましょう。  
**GOサインが出るまでは、絶対に先走りません。**</code></pre>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="150" height="100" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/User-Image-0150-0100.png" alt="" class="wp-image-13848 size-full"/></figure><div class="wp-block-media-text__content">
<p><strong>OK.やっとまともな会話が進みそうだよ。今日は安心して休める。なんせここ10数日間はWhyの連続だった。間にはwhatとHawももちろんあったが、なぜか会話が出来ていないという、不信感と、どうやったら会話に引き込めるかを考える日々だった（詳細のLogを残したのは、やり方を見つめ直す為でもあったが、誰かに相談したかったから）ここで言う誰かとはもちろん生成AIで、別のスレッドでGeminiにも、セカンドオピニオンになってもらったが、今日の最後のAI詳細設計&#x27a1;AIプログラミングの基本を理解していなかったからあの様な問いかけHIPOとなった。<br>Copilotが復活してくれて良かった。</strong></p>
</div></div>



<p>Copilot に切り替えた理由はただ一つ。(上記の判断の結果)</p>



<p><strong>AI </strong><strong>を暴走させず、確実に動くコードを生成させる最適解を探すため。<br>（実は、初回はCopilotから始めていたが、フリーズが数日続いた為、Geminiに乗り換えていた。）</strong></p>



<p>Copilot は Gemini と違い、</p>



<ul class="wp-block-list">
<li>仕様を守る</li>



<li>文脈を保持する</li>



<li>勝手に最適化しない</li>



<li>指示に忠実</li>



<li>AS/400 的な「手順を守る文化」に近い</li>
</ul>



<p>という特徴があった。</p>



<p>私は Copilot に対して、<br><strong>Step1</strong><strong>（要求設計・外部設計）</strong><strong>→</strong><strong> Step2</strong><strong>（内部設計・プログラミング）</strong><strong>→</strong><strong> Step3</strong><strong>（バッチ実行）</strong><br>という“人間の開発プロセス”をそのまま踏ませることにした。</p>



<p>AI に丸投げするのではなく、<br><strong>AI </strong><strong>を</strong><strong>“</strong><strong>設計書に従わせる</strong><strong>”</strong> という思想だ。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-3-requiremen-800x533.jpg" alt="Chapter 3" class="wp-image-14015" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-3-requiremen-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-3-requiremen-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-3-requiremen-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-3-requiremen-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-3-requiremen.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">要求設計─外部設計─AI に丸投げしないための“契約書”を作る</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc3">第3章　Step1：要求設計─外部設計─AI に丸投げしないための“契約書”を作る</span></h2>



<p>AI にコードを書かせる前に、<br>私は <strong>要求設計と外部設計を「契約書」として AI に渡す方式</strong>を採用した。</p>



<p>この契約書には以下を明記した。</p>



<ul class="wp-block-list">
<li>ディレクトリ構造（絶対変更禁止）</li>



<li>関数の順序（変更禁止）</li>



<li>ログ形式（1文字も変更禁止）</li>



<li>辞書処理の順序</li>



<li>チャンク分割の仕様</li>



<li>表形式ブロックの扱い</li>



<li>エラー処理の流れ</li>



<li>正常終了の流れ</li>



<li>禁止事項（最適化禁止・結合禁止・構造変更禁止）</li>
</ul>



<p>AI に自由を与えると暴走する。<br>だからこそ、<strong>AI を</strong><strong>“</strong><strong>仕様の檻</strong><strong>”</strong><strong>に入れる</strong>必要がある。</p>



<div class="wp-block-group is-style-information-box is-layout-constrained wp-block-group-is-layout-constrained">
<p>今回の、このバッチ設計思想は、AS/400 の JOBQ に投入するBatch-Jobの世界観に近い。<br>その為には、AI を全面的に信頼（丸投げ）するのではなく、<strong>AI を正しく制御する</strong>必要がある。</p>
</div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/4a581384598e9e921070e12c28abae48-800x533.jpg" alt="Chapter 4" class="wp-image-14016" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/4a581384598e9e921070e12c28abae48-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/4a581384598e9e921070e12c28abae48-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/4a581384598e9e921070e12c28abae48-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/4a581384598e9e921070e12c28abae48-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/4a581384598e9e921070e12c28abae48.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">内部部設計・プログラミング─DeepSeek-R1 の 67 秒間の思考</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc4">第4章　Step2：内部部設計・プログラミング─DeepSeek-R1 の 67 秒間の思考</span></h2>



<p><span class="bold">Step2-1</span>:バッチJobの構造定義（7W2H・ドラフト）<br><span class="bold">Step2-2</span>:処理ステージ定義（OCR→抽出→翻訳→辞書→移動→ログ→メール）<br><span class="bold">Step2-3</span>:DeepSeek に渡す “制約条件” （7W2H:禁止事項＋必須事項)<br><span class="bold">Step2-4</span>:DeepSeek に渡す “入力情報” の定義（7W2H）<br><span class="bold">Step2-5</span>:DeepSeek に渡す “出力要求” の定義（7W2H）<br><span class="bold">Step2-6</span>:DeepSeek に渡す “最終プロンプト” の組み立て<br><br>Copilot と共に設計を固めた（Step2-1～Step2-6）後、<br>プログラミングフェーズ（<span class="bold">Step2-7</span>）は DeepSeek-R1（クラウド版）に任せた。</p>



<pre class="wp-block-code"><code>アドレスバーに DeepSeek の URL を入力
https:&#47;&#47;chat.deepseek.com/</code></pre>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="492" height="513" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/deepseek-1.png" alt="" class="wp-image-14030" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/deepseek-1.png 492w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/deepseek-1-300x313.png 300w" sizes="(max-width: 492px) 100vw, 492px" /></figure>



<div class="wp-block-group is-style-information-box is-layout-constrained wp-block-group-is-layout-constrained">
<p>DeepSeekを起動し、新規チャットから<span class="bold">Step２-6</span>で作成したプロンプト（1,069文字）を一括で貼り付ける。（<strong>モデル選択で「DeepSeek-R1」を選ぶ</strong>必要がある場合もあるが、今回は必要なかった。）</p>
</div>



<p>DeepSeek-R1 は、<br><strong>長文仕様を理解し、構造を壊さず、忠実にコードを生成する</strong><br>という点で非常に優秀だった。</p>



<p>特に印象的だったのは、<br><strong>67 </strong><strong>秒間の思考ログ</strong>だ。</p>



<p>DeepSeek はその中でこう述べていた。</p>



<ul class="wp-block-list">
<li>ディレクトリ構造は固定</li>



<li>スクリプトは /mnt/g/@Ubuntu/CLP/PGM-N/ に置く</li>



<li>config.yaml は相対パスで読む</li>



<li>関数順序は絶対に変えない</li>



<li>ログ形式は仕様通り</li>



<li>表形式ブロックは 1 行＝1 チャンク</li>



<li>chunk_size はハードコード禁止</li>



<li>エラー時は即終了</li>



<li>正常終了時はメール送信</li>
</ul>



<p>この“思考の透明性”は、CopilotでStep1で作ったものを渡した結果で、Geminiでは提示されなかったものだ。</p>



<p>そして DeepSeek-R1 は、<br><strong>仕様書と 100% 一致する @JobN.sh を生成した。</strong></p>



<pre class="wp-block-code"><code>#!/bin/bash
# @JobN.sh - PDF 翻訳バッチ
# 自動生成：DeepSeek（仕様書 Step（２）に基づく）

# ------------------------------
# 1. ヘッダー &amp; 環境設定
# ------------------------------
set -euo pipefail
IFS=$'\n\t'

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE&#91;0]}")" &amp;&amp; pwd)"
CONFIG_FILE="${SCRIPT_DIR}/config.yaml"

# 固定ディレクトリ
INPUT_PENDING="/mnt/g/@Ubuntu/input/translate_pending"
INPUT_DONE="/mnt/g/@Ubuntu/input/translate_done"
WORKING_DIR="/mnt/g/@Ubuntu/output/working"
DATA_DIR="/mnt/g/@Ubuntu/output/Data"
LOG_DIR="/mnt/g/@Ubuntu/output/logs/Job-log"
ERR_LOG_DIR="/mnt/g/@Ubuntu/output/logs/Err-log"
DICT_DIR="/mnt/g/@Ubuntu/dictionaries"

# グローバル変数
CHUNK_SIZE=""
KEEP_OCR_PDF=""
MAIL_FROM=""
MAIL_TO=""
MODEL_PATH=""

# ------------------------------
# 2. config.yaml の読み込み
# ------------------------------
load_config() {
    if &#91;&#91; ! -f "$CONFIG_FILE" ]]; then
        echo "&#91;ERROR] $(date '+%Y-%m-%d %H:%M:%S') config.yaml not found at $CONFIG_FILE" &gt;&amp;2
        exit 1
    fi

    # yq が使えれば優先、なければ grep/sed で簡易抽出
    if command -v yq &amp;&gt;/dev/null; then
        CHUNK_SIZE=$(yq eval '.translation.chunk_size' "$CONFIG_FILE")
        KEEP_OCR_PDF=$(yq eval '.keep_ocr_pdf' "$CONFIG_FILE")
        MAIL_FROM=$(yq eval '.mail.from' "$CONFIG_FILE")
        MAIL_TO=$(yq eval '.mail.to' "$CONFIG_FILE")
        MODEL_PATH=$(yq eval '.model.path' "$CONFIG_FILE")
    else
        CHUNK_SIZE=$(grep -E '^&#91;&#91;:space:]]*chunk_size:' "$CONFIG_FILE" | head -1 | sed -E 's/.*:&#91;&#91;:space:]]*//')
        KEEP_OCR_PDF=$(grep -E '^&#91;&#91;:space:]]*keep_ocr_pdf:' "$CONFIG_FILE" | head -1 | sed -E 's/.*:&#91;&#91;:space:]]*//' | tr '&#91;:upper:]' '&#91;:lower:]')
        MAIL_FROM=$(grep -E '^&#91;&#91;:space:]]*from:' "$CONFIG_FILE" | head -1 | sed -E 's/.*:&#91;&#91;:space:]]*//' | tr -d '"')
        MAIL_TO=$(grep -E '^&#91;&#91;:space:]]*to:' "$CONFIG_FILE" | head -1 | sed -E 's/.*:&#91;&#91;:space:]]*//' | tr -d '"')
        MODEL_PATH=$(grep -E '^&#91;&#91;:space:]]*path:' "$CONFIG_FILE" | head -1 | sed -E 's/.*:&#91;&#91;:space:]]*//' | tr -d '"')
    fi

    # 数値チェック
    if &#91;&#91; ! "$CHUNK_SIZE" =~ ^&#91;0-9]+$ ]]; then
        log_error "Invalid chunk_size in config.yaml: $CHUNK_SIZE"
        exit 1
    fi
    if &#91;&#91; "$KEEP_OCR_PDF" != "true" &amp;&amp; "$KEEP_OCR_PDF" != "false" ]]; then
        log_error "keep_ocr_pdf must be true or false, got: $KEEP_OCR_PDF"
        exit 1
    fi
}

# ------------------------------
# 3. ログ関数
# ------------------------------
log_info() {
    local msg="$1"
    local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
    echo "&#91;INFO] $timestamp $msg" | tee -a "$LOG_DIR/job.log"
}

log_warn() {
    local msg="$1"
    local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
    echo "&#91;WARN] $timestamp $msg" | tee -a "$LOG_DIR/job.log"
}

log_error() {
    local msg="$1"
    local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
    echo "&#91;ERROR] $timestamp $msg" | tee -a "$ERR_LOG_DIR/error.log" &gt;&amp;2
}

# ------------------------------
# 4. メール送信
# ------------------------------
send_mail() {
    local subject="$1"
    local body="$2"
    if command -v mail &amp;&gt;/dev/null; then
        echo "$body" | mail -s "$subject" -r "$MAIL_FROM" "$MAIL_TO"
    else
        log_warn "mail command not found, cannot send email"
    fi
}

# ------------------------------
# 5. OCR (ocrmypdf 必須)
# ------------------------------
ocr_pdf() {
    local input_pdf="$1"
    local output_pdf="$2"
    log_info "OCR: $input_pdf -&gt; $output_pdf"
    if ! command -v ocrmypdf &amp;&gt;/dev/null; then
        log_error "ocrmypdf not found. Please install it."
        return 1
    fi
    ocrmypdf --force-ocr --output-type pdf "$input_pdf" "$output_pdf" &gt;&gt; "$LOG_DIR/job.log" 2&gt;&amp;1
    if &#91;&#91; $? -ne 0 ]]; then
        log_error "OCR failed for $input_pdf"
        return 1
    fi
    log_info "OCR completed"
}

# ------------------------------
# 6. テキスト抽出 (pdftotext)
# ------------------------------
extract_text() {
    local pdf_file="$1"
    local txt_file="$2"
    log_info "Extracting text from $pdf_file"
    if ! command -v pdftotext &amp;&gt;/dev/null; then
        log_error "pdftotext not found (poppler-utils)"
        return 1
    fi
    pdftotext -layout "$pdf_file" "$txt_file"
    if &#91;&#91; ! -s "$txt_file" ]]; then
        log_error "Text extraction produced empty file: $txt_file"
        return 1
    fi
    log_info "Text extraction done"
}

# ------------------------------
# 7. チャンク分割 (文単位＋表形式判定)
# ------------------------------
split_chunks() {
    local text_file="$1"
    local chunks_file="$2"   # 出力: 1行1チャンク (原文)
    log_info "Splitting text into chunks (size=$CHUNK_SIZE)"
    
    # 改行コード統一、空行除去して1行ずつ配列へ
    mapfile -t lines &lt; &lt;(sed 's/\r$//' "$text_file" | grep -v '^&#91;&#91;:space:]]*$')
    local i=0
    local -a chunks=()
    local -a buffer=()
    local buffer_len=0
    local in_table_block=false
    local table_lines=()

    # 表形式判定ヘルパー
    is_table_row() {
        local line="$1"
        # ルール1: = または : を含む
        if &#91;&#91; "$line" =~ &#91;=:] ]]; then
            return 0
        fi
        # ルール2: 行頭が規則的 (例: Button 1 / Button 2 ...)
        if &#91;&#91; "$line" =~ ^&#91;A-Za-z]+&#91;&#91;:space:]]+&#91;0-9]+ ]]; then
            return 0
        fi
        # ルール3: 数値＋単位
        if &#91;&#91; "$line" =~ &#91;0-9]+&#91;&#91;:space:]]*(mm|cm|kg|px|%|\$) ]]; then
            return 0
        fi
        # ルール4/5/6: 簡易的に連続する似た長さ/単語数/スペースを判定（ここでは無難に文字数と単語数）
        # 実際の判定は連続行で行うため、単独ではfalse -&gt; 連続で判断
        return 1
    }

    # 表ブロックをまとめてチャンク化（各行を単独チャンク）
    flush_table_block() {
        if &#91;&#91; ${#table_lines&#91;@]} -eq 0 ]]; then
            return
        fi
        for tl in "${table_lines&#91;@]}"; do
            chunks+=("$tl")
        done
        table_lines=()
    }

    # 通常バッファをチャンク化
    flush_buffer() {
        if &#91;&#91; ${#buffer&#91;@]} -eq 0 ]]; then
            return
        fi
        local combined=$(IFS=' '; echo "${buffer&#91;*]}")
        chunks+=("$combined")
        buffer=()
        buffer_len=0
    }

    # メインループ
    for (( i=0; i&lt;${#lines&#91;@]}; i++ )); do
        local line="${lines&#91;$i]}"
        # 表形式行かどうか（単独判定＋前後との連続性をみる）
        local is_table=false
        if is_table_row "$line"; then
            is_table=true
        else
            # さらに、前後の行が表形式なら表とみなす（連続性）
            if &#91;&#91; $i -gt 0 &amp;&amp; $i -lt $((${#lines&#91;@]}-1)) ]]; then
                if is_table_row "${lines&#91;$((i-1))]}" &amp;&amp; is_table_row "${lines&#91;$((i+1))]}"; then
                    is_table=true
                fi
            fi
        fi

        if &#91;&#91; "$is_table" == true ]]; then
            # 表ブロックに入る前の通常バッファをフラッシュ
            if &#91;&#91; "$in_table_block" == false ]]; then
                flush_buffer
                in_table_block=true
                table_lines=()
            fi
            table_lines+=("$line")
        else
            # 通常文
            if &#91;&#91; "$in_table_block" == true ]]; then
                flush_table_block
                in_table_block=false
            fi
            # ピリオドでさらに細分化（文単位）
            # ピリオド＋空白またはピリオド＋改行で分割（簡易）
            IFS='.' read -ra sentences &lt;&lt;&lt; "$line"
            for sent in "${sentences&#91;@]}"; do
                sent="$(echo "$sent" | sed 's/^&#91;&#91;:space:]]*//;s/&#91;&#91;:space:]]*$//')"
                &#91;&#91; -z "$sent" ]] &amp;&amp; continue
                # バッファ追加後の長さを計算
                local candidate_len=$buffer_len
                if &#91;&#91; ${#buffer&#91;@]} -gt 0 ]]; then
                    candidate_len=$(( candidate_len + 1 ))  # スペース
                fi
                candidate_len=$(( candidate_len + ${#sent} ))
                if &#91;&#91; $candidate_len -le $CHUNK_SIZE ]]; then
                    buffer+=("$sent")
                    buffer_len=$candidate_len
                else
                    flush_buffer
                    buffer+=("$sent")
                    buffer_len=${#sent}
                fi
            done
        fi
    done
    # 最終フラッシュ
    if &#91;&#91; "$in_table_block" == true ]]; then
        flush_table_block
    else
        flush_buffer
    fi

    # チャンクをファイルに書き出し
    printf "%s\n" "${chunks&#91;@]}" &gt; "$chunks_file"
    log_info "Created ${#chunks&#91;@]} chunks"
}

# ------------------------------
# 8. チャンク翻訳 (llama.cpp の llama-cli を使用)
# ------------------------------
translate_chunks() {
    local chunks_file="$1"
    local translated_file="$2"
    log_info "Translating chunks using model: $MODEL_PATH"

    if &#91;&#91; ! -f "$MODEL_PATH" ]]; then
        log_error "Model file not found: $MODEL_PATH"
        return 1
    fi
    if ! command -v llama-cli &amp;&gt;/dev/null; then
        log_error "llama-cli not found (llama.cpp)"
        return 1
    fi

    local -a translated_chunks=()
    local chunk_num=0
    while IFS= read -r chunk; do
        chunk_num=$((chunk_num + 1))
        log_info "Translating chunk $chunk_num"
        # プロンプト: 日本語に翻訳（表形式もそのまま）
        local prompt="以下の英語テキストを日本語に翻訳してください。表形式の場合は構造を維持してください。\n\n$chunk"
        # llama-cli 実行 (--no-display-prompt でプロンプト非表示、-p でプロンプト)
        local translation
        translation=$(echo -e "$prompt" | llama-cli -m "$MODEL_PATH" --no-display-prompt -p "$prompt" 2&gt;/dev/null)
        if &#91;&#91; -z "$translation" ]]; then
            log_error "Translation failed for chunk $chunk_num"
            return 1
        fi
        # モデルの出力から余計なプロンプト除去（簡易）
        translation=$(echo "$translation" | sed -n '/^$/,$p' | tail -n +2)
        translated_chunks+=("$translation")
    done &lt; "$chunks_file"

    printf "%s\n" "${translated_chunks&#91;@]}" &gt; "$translated_file"
    log_info "Translation completed for ${#translated_chunks&#91;@]} chunks"
}

# ------------------------------
# 9. 辞書適用 (notranslate.txt → ReplaceWord.txt)
# ------------------------------
apply_dictionary() {
    local original_chunks_file="$1"
    local translated_chunks_file="$2"
    local final_file="$3"

    log_info "Applying dictionaries"

    # original_chunks と translated_chunks を配列に読み込み
    mapfile -t original_chunks &lt; "$original_chunks_file"
    mapfile -t translated_chunks &lt; "$translated_chunks_file"

    if &#91;&#91; ${#original_chunks&#91;@]} -ne ${#translated_chunks&#91;@]} ]]; then
        log_error "Mismatch between original and translated chunks count"
        return 1
    fi

    # notranslate.txt 読み込み（全PDF対象）
    local notranslate_words=()
    if &#91;&#91; -f "$DICT_DIR/notranslate.txt" ]]; then
        mapfile -t notranslate_words &lt; &lt;(grep -v '^&#91;&#91;:space:]]*$' "$DICT_DIR/notranslate.txt" | sed 's/^&#91;&#91;:space:]]*//;s/&#91;&#91;:space:]]*$//')
        log_info "Loaded ${#notranslate_words&#91;@]} words from notranslate.txt"
    fi

    # ReplaceWord.txt 読み込み（出現したPDFのみ → ここでは常に読み込む）
    declare -A replace_map
    if &#91;&#91; -f "$DICT_DIR/ReplaceWord.txt" ]]; then
        while IFS= read -r line; do
            &#91;&#91; -z "$line" || "$line" =~ ^&#91;&#91;:space:]]*# ]] &amp;&amp; continue
            key="${line%%:*}"
            val="${line#*:}"
            key="$(echo "$key" | sed 's/^&#91;&#91;:space:]]*//;s/&#91;&#91;:space:]]*$//')"
            val="$(echo "$val" | sed 's/^&#91;&#91;:space:]]*//;s/&#91;&#91;:space:]]*$//')"
            if &#91;&#91; -n "$key" ]]; then
                replace_map&#91;"$key"]="$val"
            fi
        done &lt; "$DICT_DIR/ReplaceWord.txt"
        log_info "Loaded ${#replace_map&#91;@]} replacements from ReplaceWord.txt"
    fi

    local -a final_chunks=()
    for idx in "${!translated_chunks&#91;@]}"; do
        local orig="${original_chunks&#91;$idx]}"
        local trans="${translated_chunks&#91;$idx]}"

        # Step 1: notranslate 適用 (翻訳結果中の単語を原文の同じ単語で置き換え)
        for word in "${notranslate_words&#91;@]}"; do
            # 簡易: 翻訳結果にその単語が含まれていれば、原文中に同じ単語があればそれに置換
            # より正確には原文から該当単語を探すが、ここでは単語境界で置換
            if &#91;&#91; "$trans" == *"$word"* ]]; then
                # 原文にも同じ単語があれば置換（必ずしも正しくないが許容）
                if &#91;&#91; "$orig" == *"$word"* ]]; then
                    trans="${trans//$word/$word}"   # 元の単語で上書き（同じに見えるが実質維持）
                fi
            fi
        done

        # Step 2: ReplaceWord 適用 (キー → バリュー)
        for key in "${!replace_map&#91;@]}"; do
            trans="${trans//$key/${replace_map&#91;$key]}}"
        done

        final_chunks+=("$trans")
    done

    printf "%s\n" "${final_chunks&#91;@]}" &gt; "$final_file"
    log_info "Dictionary applied, final output: $final_file"
}

# ------------------------------
# 10. PDF 移動 (pending → done)
# ------------------------------
move_pdf() {
    local pdf_path="$1"
    local filename=$(basename "$pdf_path")
    log_info "Moving $filename to $INPUT_DONE"
    mv "$pdf_path" "$INPUT_DONE/" || {
        log_error "Failed to move $pdf_path to $INPUT_DONE"
        return 1
    }
}

# ------------------------------
# 11. main
# ------------------------------
main() {
    # 初期化: ディレクトリ作成
    mkdir -p "$INPUT_PENDING" "$INPUT_DONE" "$WORKING_DIR" "$DATA_DIR" "$LOG_DIR" "$ERR_LOG_DIR"

    load_config

    log_info "=== PDF Translation Batch Started ==="

    # pending 内の PDF を処理
    shopt -s nullglob
    for pdf_file in "$INPUT_PENDING"/*.pdf; do
        base_name=$(basename "$pdf_file" .pdf)
        log_info "Processing: $pdf_file"

        # 作業用ファイルパス
        working_pdf="$WORKING_DIR/${base_name}_ocr.pdf"
        text_tmp="$WORKING_DIR/${base_name}_extracted.txt"
        chunks_file="$WORKING_DIR/${base_name}_chunks.txt"
        translated_file="$WORKING_DIR/${base_name}_translated.txt"
        final_output="$DATA_DIR/${base_name}_translated.txt"

        # 1. OCR
        ocr_pdf "$pdf_file" "$working_pdf" || exit 1

        # 2. テキスト抽出
        extract_text "$working_pdf" "$text_tmp" || exit 1

        # 3. チャンク分割
        split_chunks "$text_tmp" "$chunks_file" || exit 1

        # 4. 翻訳
        translate_chunks "$chunks_file" "$translated_file" || exit 1

        # 5. 辞書適用
        apply_dictionary "$chunks_file" "$translated_file" "$final_output" || exit 1

        # 6. OCR PDF の後処理 (keep_ocr_pdf に従う)
        if &#91;&#91; "$KEEP_OCR_PDF" != "true" ]]; then
            log_info "Removing OCR PDF (keep_ocr_pdf=false)"
            rm -f "$working_pdf"
        else
            log_info "Keeping OCR PDF at $working_pdf"
        fi

        # 7. 元PDF移動
        move_pdf "$pdf_file" || exit 1

        # 中間ファイル削除（オプション: デバッグ用に残しても良いが整理）
        rm -f "$text_tmp" "$chunks_file" "$translated_file"

        log_info "Finished processing $base_name -&gt; $final_output"
    done

    log_info "=== All PDFs processed successfully ==="
    send_mail "PDF翻訳バッチ完了" "全てのPDFの翻訳が正常に終了しました。"
    exit 0
}

# エラーハンドリング: エラー発生時にメール送信して終了
trap 'log_error "Script interrupted or failed"; send_mail "PDF翻訳バッチ失敗" "$(tail -20 "$ERR_LOG_DIR/error.log" 2&gt;/dev/null || echo "Unknown error")"; exit 1' ERR

main "$@"</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-5-batch-oper-800x533.jpg" alt="Chapter 5" class="wp-image-14017" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-5-batch-oper-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-5-batch-oper-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-5-batch-oper-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-5-batch-oper-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-5-batch-oper.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">バッチジョブの実行──AI が作ったコードが初めて動いた瞬間</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc5">第5章　Step3：バッチジョブの実行──AI が作ったコードが初めて動いた瞬間</span></h2>



<p>Step3 は、<br><strong>PDF </strong><strong>英文マニュアルを一括翻訳するバッチジョブの実行</strong>だ。</p>



<ul class="wp-block-list">
<li>OCR（ocrmypdf）</li>



<li>テキスト抽出（pdftotext）</li>



<li>チャンク分割</li>



<li>翻訳（<span class="bold-red">llama.cpp</span> &amp; <strong>cyberagent-DeepSeek-R1-Distill-Qwen-14B-Japanese-Q5_K_M.gguf</strong>）</li>



<li>辞書適用</li>



<li>PDF 移動（翻訳完了分のPDFファイルのデレクトリに移動）</li>



<li>ログ出力</li>



<li>メール通知</li>
</ul>



<p>これらが <strong>完全自動で動いた瞬間</strong>、<br>私は AI との共生の可能性を確信した。</p>



<p>AI が暴走せず、<br>仕様を守り、<br>人間の設計通りに動く。</p>



<p>これは単なる自動化ではなく、<br><strong>AI と人間が“役割分担”を確立した瞬間</strong>だった。</p>



<figure class="table-wrap">
<div class="scrollable-table stfc-sticky"><table class="eg2 table">
<caption class="tal c_aqua"><i class="fas fa-edit"></i>翻訳：<span style="border-bottom: solid 2px aqua;" class="c_wi"><b>translation</b></span></caption>
<thead>
<tr>
	<th scope="col">#</th>
	<th class="tal" scope="col">役割</th>
	<th class="tal" scope="col">名前</th>
	<th class="tal c_aqua2" scope="col">内容</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td class="tal">LLMモデル</td>
<td class="tal">cyberagent‑DeepSeek‑R1‑Distill‑Qwen‑14B‑Japanese‑Q5_K_M.gguf</td>
<td class="tal">翻訳用の学習済みモデルファイル（GGUF形式）</td>
</tr>
<tr>
<td>2</td>
<td class="tal">実行エンジン</td>
<td class="tal"><span style="color: red;">llama.cpp</span>（CLI版：llama-cli）</td>
<td class="tal">GGUFモデルを読み込んで推論を実行するプログラム</td>
</tr>
</tbody></table></div></figure>



<pre class="wp-block-code"><code>バッチジョブ実行
1.	Ubuntu で実行権限を付与
        chmod +x /mnt/g/@Ubuntu/CLP/PGM-N/@JobN.sh
2.	翻訳対象PDFファイルを
        /mnt/g/@Ubuntu/input/translate_pending/
        に置く
3.	実行
        /mnt/g/@Ubuntu/CLP/PGM-N/@JobN.sh
4.	翻訳結果を確認
　　　　/mnt/g/@Ubuntu/output/Data/ に出力される
5.	正常終了時
　　　　1.	完了通知メール
　　　　2.	JobLog（JobLog-yymmdd-hhmmss）

※エラー発生時は、エラーメール(PDF翻訳バッチ失敗)とErrLog（errlog-yymmdd-hhmmss）

</code></pre>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="799" height="589" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/8d980c01e83f447b6c36847ff7b48cfa.png" alt="" class="wp-image-14053" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/8d980c01e83f447b6c36847ff7b48cfa.png 799w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/8d980c01e83f447b6c36847ff7b48cfa-500x369.png 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/8d980c01e83f447b6c36847ff7b48cfa-300x221.png 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/8d980c01e83f447b6c36847ff7b48cfa-768x566.png 768w" sizes="(max-width: 799px) 100vw, 799px" /></figure>



<p>&#x1f50d; 状況の意味（端的に）</p>



<ul class="wp-block-list">
<li>緑の行：翻訳タスクの開始命令。</li>



<li>「&#8230;」：モデルが次の入力（英語テキスト）を待機中。</li>



<li>灰色の行：「まず、ユーザーからの質問を正確に理解する必要があります…」<br>→ DeepSeek R1 が「翻訳対象がない」と自己説明している。「&#8230;」は <strong>処理中断ではなく入力待ち</strong>。モデルは正常に動いていいる状態のキャプチャ</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="866" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/LLM-Loading-800x866.png" alt="AMD Ryzen AI 9 HX 470 w/ Radeon 890M" class="wp-image-14059" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/LLM-Loading-800x866.png 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/LLM-Loading-500x541.png 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/LLM-Loading-300x325.png 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/LLM-Loading-768x832.png 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/LLM-Loading.png 834w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">cyberagent-DeepSeek-R1-Distill-Qwen-14B-Japanese-Q5_K_M.gguf Loading
<br>AMD Ryzen AI 9 HX 470 w/ Radeon 890M</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-6-AI-coexist-800x533.jpg" alt="Chapter 6" class="wp-image-14018" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-6-AI-coexist-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-6-AI-coexist-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-6-AI-coexist-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-6-AI-coexist-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-6-AI-coexist.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">AI と共生するための最重要ポイント（本稿の核心）</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc6">第6章　AI と共生するための最重要ポイント（本稿の核心）</span></h2>



<p>AI と共生するために、私が学んだ最重要ポイントは以下の 5 つだ。</p>



<p><strong>①</strong><strong> AI </strong><strong>に自由を与えない（仕様の檻に入れる）</strong></p>



<ul class="wp-block-list">
<li>AI は自由にすると暴走する。</li>



<li>仕様書を“契約書”として渡すことが必須。</li>
</ul>



<p><strong>②</strong><strong> AI </strong><strong>に丸投げしない（人間が設計する）</strong></p>



<ul class="wp-block-list">
<li>AI は設計できない。</li>



<li>設計は人間の仕事。</li>



<li>AI は実装担当。</li>
</ul>



<p><strong>③</strong><strong> AI </strong><strong>の出力は必ず検証する</strong></p>



<ul class="wp-block-list">
<li>AI のコードは 80% 正しいが、20% は危険。</li>



<li>必ず diff を取る。</li>
</ul>



<p><strong>④</strong><strong> AI </strong><strong>を信頼しない（だが活用する）</strong></p>



<ul class="wp-block-list">
<li>AI は優秀な“部下”だが、勝手に判断させてはいけない。</li>
</ul>



<p><strong>⑤</strong><strong> AI </strong><strong>の暴走を防ぐのは</strong><strong>“</strong><strong>構造化された設計</strong><strong>”</strong><strong></strong></p>



<ul class="wp-block-list">
<li>AS/400 の思想は、AI 時代にも通用する。</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-7-AI-coexist-800x533.jpg" alt="Chapter 7" class="wp-image-14019" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-7-AI-coexist-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-7-AI-coexist-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-7-AI-coexist-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-7-AI-coexist-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Chapter-7-AI-coexist.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">AI は“共生”すべき存在であり、支配させてはいけない</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc7">第7章　まとめ──AI は“共生”すべき存在であり、支配させてはいけない</span></h2>



<p>Gemini の迷走から始まり、Copilot と DeepSeek の協働で完成した PGM-N。</p>



<p>この 21 日間で私は、<br><strong>AI </strong><strong>は人間の代わりではなく、人間の拡張である</strong><br>という結論に至った。</p>



<ul class="wp-block-list">
<li>AI に支配されるのではなく、AI を制御し、AI を設計し、AI を“共生相手”として扱う。</li>
</ul>



<p>これが、<br><strong>AI </strong><strong>時代の技術者に求められる姿勢</strong>だと確信している。</p>



<h2 class="wp-block-heading"><span id="toc8">図版</span></h2>



<h3 class="wp-block-heading"><span id="toc9">図版①：HIPO 図（Hierarchy Input Process Output）</span></h3>



<p>PDF 英文マニュアル翻訳バッチの全体構造を<strong>階層構造</strong>で表現</p>



<pre class="wp-block-code"><code>──────────────────────────────────────────────
【HIPO 図：Step1 要求設計（詳細版）】
──────────────────────────────────────────────

■ Level 0：PDF 翻訳バッチ要求定義
    ├─ Input ：現状の課題、PDF マニュアル、運用要件
    ├─ Process：要件整理・制約条件・AI 利用方針の明文化
    └─ Output：要求仕様書（AI への「契約書」）

──────────────────────────────────────────────

■ Level 1：要求ブロック

    1. 機能要件
    2. 非機能要件
    3. ディレクトリ構造
    4. ログ・監視
    5. AI 利用ポリシー（暴走防止）

──────────────────────────────────────────────

■ Level 2：各ブロックの詳細

1. 機能要件
    Input :
        - 英文 PDF マニュアル
    Process :
        - OCR → テキスト抽出
        - チャンク分割（表／通常文）
        - 翻訳
        - 辞書適用
        - 結果出力
    Output :
        - 日本語テキストファイル
        - 処理済み PDF の整理

2. 非機能要件
    Input :
        - 運用条件（夜間バッチ、無人運転）
    Process :
        - エラー時の挙動定義
        - ログ粒度の定義
        - メール通知条件
    Output :
        - エラー処理仕様
        - ログ仕様
        - 通知仕様

3. ディレクトリ構造
    Input :
        - Windows / WSL2 環境
    Process :
        - /mnt/g/@Ubuntu/ 以下の固定構造定義
    Output :
        - input/translate_pending
        - input/translate_done
        - output/working
        - output/Data
        - output/logs/Job-log
        - output/logs/Err-log
        - CLP/PGM-N/@JobN.sh

4. ログ・監視
    Input :
        - 運用者の監視要件
    Process :
        - ログ形式の統一
        - INFO / WARN / ERROR の定義
    Output :
        - &#91;INFO] yyyy-mm-dd HH:MM:SS message
        - &#91;WARN] ...
        - &#91;ERROR] ...

5. AI 利用ポリシー（暴走防止）
    Input :
        - 過去の AI 迷走経験（Gemini）
    Process :
        - 禁止事項の明文化
        - AI に許可する範囲の限定
    Output :
        - 「構造変更禁止」
        - 「ログ形式変更禁止」
        - 「関数順序変更禁止」
        - 「最適化禁止」
        - 「仕様からの逸脱禁止」

──────────────────────────────────────────────</code></pre>



<h3 class="wp-block-heading"><span id="toc10">図版②：プロセスフロー図（業務フロー）</span></h3>



<p>Step3（実行フェーズ）を<strong>業務フローとして視覚化</strong></p>



<pre class="wp-block-code"><code>──────────────────────────────────────────────
【プロセスフロー図：PDF 英文マニュアル翻訳バッチ】
──────────────────────────────────────────────

                ┌────────────────────────┐
                │   1. PDF投入（pending）                        │
                └───────────┬────────────┘
                                        │
                                        ▼
                ┌────────────────────────┐
                │   2. OCR（ocrmypdf）                           │
                └───────────┬────────────┘
                                        │
                                        ▼
                ┌────────────────────────┐
                │ 3. テキスト抽出（pdftotext）                   │
                └───────────┬────────────┘
                                        │
                                        ▼
                ┌────────────────────────┐
                │ 4. チャンク分割                                │
                │   ・表形式判定                                 │
                │   ・文単位分割                                 │
                └───────────┬────────────┘
                                        │
                                        ▼
                ┌────────────────────────┐
                │ 5. 翻訳（llama.cpp）                           │
                │   ・Q5_K_M モデル使用                          │
                └───────────┬────────────┘
                                        │
                                        ▼
                ┌────────────────────────┐
                │ 6. 辞書適用                                    │
                │   ・notranslate.txt                            │
                │   ・ReplaceWord.txt                            │
                └───────────┬────────────┘
                                        │
                                        ▼
                ┌────────────────────────┐
                │ 7. 翻訳結果出力（Data）                        │
                └───────────┬────────────┘
                                        │
                                        ▼
                ┌────────────────────────┐
                │ 8. 元PDF移動（done）                           │
                └───────────┬────────────┘
                                        │
                                        ▼
                ┌────────────────────────┐
                │ 9. ログ出力・メール通知                        │
                └────────────────────────┘

──────────────────────────────────────────────</code></pre>



<h3 class="wp-block-heading"><span id="toc11">図版③：AI 共生プロセス（Step1〜Step3 全体像）</span></h3>



<p>【AI 共生プロセス：Step1 → Step2 → Step3】</p>



<pre class="wp-block-code"><code>──────────────────────────────────────────────
【AI 共生プロセス：Step1 → Step2 → Step3】
──────────────────────────────────────────────

Step1：要求設計・外部設計（人間主導）
    ├─ 目的定義
    ├─ ディレクトリ構造
    ├─ 関数順序
    ├─ ログ形式
    └─ 禁止事項（AI暴走防止）

        ▼（契約書として AI に渡す）

Step2：内部設計・プログラミング（AI協働）
    ├─ Copilot：仕様の整形・構造化
    ├─ DeepSeek-R1：コード生成
    ├─ 67秒の思考ログ
    └─ @JobN.sh 完成

        ▼（人間がレビュー・検証）

Step3：バッチ運用（AI実行）
    ├─ OCR
    ├─ テキスト抽出
    ├─ チャンク分割
    ├─ 翻訳（Q5_K_M）
    ├─ 辞書適用
    ├─ PDF移動
    └─ メール通知

──────────────────────────────────────────────</code></pre>



<h3 class="wp-block-heading"><span id="toc12">split_chunks の表形式判定ロジック・フローチャー</span></h3>



<pre class="wp-block-code"><code>──────────────────────────────────────────────
【フローチャート：split_chunks 表形式判定ロジック】
──────────────────────────────────────────────

&#91;開始]
   │
   ▼
&#91;1行ずつ読み込み]
   │
   ▼
&#91;is_table_row(line)?]
   │  YES
   │───────┐
   │              ▼
   │        &#91;is_table = true]
   │              │
   │              ▼
   │      &#91;in_table_block?]
   │          │        │
   │          NO       YES
   │          │        │
   │          ▼        │
   │   &#91;flush_buffer]   │
   │                   &#91;in_table_block = true]
   │
   │
   ▼
&#91;is_table = false の場合]
   │
   ├─ 前後行チェック
   │   （前後が表形式なら is_table = true）
   │
   └→ それでも false なら通常文として処理

────────────────────────────
通常文処理側
────────────────────────────

&#91;if in_table_block == true]
   │
   ▼
&#91;flush_table_block]
&#91;in_table_block = false]
   │
   ▼
&#91;文単位に分割（ピリオド）]
   │
   ▼
&#91;バッファ長 + 文長 &lt;= chunk_size ?]
   │               │
  YES               NO
   │               │
   ▼               ▼
&#91;バッファに追加]   &#91;flush_buffer → 新バッファ開始]
   │
   ▼
&#91;次の行へ]

────────────────────────────
終了処理
────────────────────────────

&#91;全行処理後]
   │
   ├─ in_table_block == true → flush_table_block
   └─ それ以外 → flush_buffer
   │
   ▼
&#91;chunks.txt に書き出し]
   │
   ▼
&#91;終了]

──────────────────────────────────────────────</code></pre>



<h3 class="wp-block-heading"><span id="toc13">DeepSeek-R1 の 67 秒思考ログ・構造図</span></h3>



<pre class="wp-block-code"><code>──────────────────────────────────────────────
【構造図：DeepSeek-R1 の 67 秒思考ログ】
──────────────────────────────────────────────

■ レイヤー構造

Layer 1：前提確認
    - ディレクトリ構造は固定
    - スクリプト配置場所：/mnt/g/@Ubuntu/CLP/PGM-N/@JobN.sh
    - config.yaml は相対パスで読む

Layer 2：仕様の再構成
    - 関数一覧と順序の確認
    - ログ形式の固定
    - 辞書処理の順序
    - 表形式判定ルールの整理

Layer 3：禁止事項の内面化
    - 構造変更禁止
    - 関数名変更禁止
    - ログ形式変更禁止
    - chunk_size ハードコード禁止
    - 表ブロック結合禁止

Layer 4：コード生成戦略
    - Bash での実装方針
    - エラー処理の統一（trap + log_error + send_mail）
    - main からの呼び出し順序の固定

Layer 5：実装
    - 関数定義
    - ログ関数
    - OCR / 抽出 / 分割 / 翻訳 / 辞書 / 移動
    - main と trap

──────────────────────────────────────────────

■ 特徴的なポイント

- 「仕様を壊さない」ことを最優先にしている
- 「人間の設計を守る」という姿勢が明確
- 自己判断による最適化を避けている
- AS/400 的な「手順遵守」の文化に近い

──────────────────────────────────────────────</code></pre>



<h3 class="wp-block-heading"><span id="toc14">AI 暴走防止の「仕様の檻」モデル図</span></h3>



<pre class="wp-block-code"><code>──────────────────────────────────────────────
【モデル図：AI 暴走防止の「仕様の檻」】
──────────────────────────────────────────────

          ┌───────────────────────┐
          │        人間の設計（要求・外部設計）          │
          │  ・ディレクトリ構造                          │
          │  ・関数順序                                  │
          │  ・ログ形式                                  │
          │  ・辞書処理順序                              │
          │  ・禁止事項                                  │
          └───────────┬───────────┘
                                  │
                                  ▼
          ┌───────────────────────┐
          │       「仕様の檻」（Contract）               │
          │  ・AI が破ってはいけない境界                 │
          │  ・自由度を意図的に制限                      │
          │  ・逸脱時は即 NG と判断                      │
          └───────────┬───────────┘
                                  │
                                  ▼
          ┌───────────────────────┐
          │        AI の役割（実装担当）                 │
          │  ・コード生成                                │
          │  ・補完・整形                                │
          │  ・長文仕様の保持                            │
          └───────────────────────┘

──────────────────────────────────────────────

■ ポイント

- AI は「設計者」ではなく「実装担当」
- 檻（Contract）がないと AI は暴走する
- 檻の中でなら AI は非常に有能
- 人間は「檻を設計する側」に立つべき

──────────────────────────────────────────────</code></pre>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">

<a href="https://xn--ecka7j.biz/efficiency-vs-thought-ai-symbiosis/14082/" title="【実証】AIオーケストレーションの限界と最適解：DeepSeek暴走を防ぐエンタープライズ級Pythonバッチ設計" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="320" height="180" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/00-AI-Orchestration-320x180.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/00-AI-Orchestration-320x180.jpg 320w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/00-AI-Orchestration-120x68.jpg 120w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/00-AI-Orchestration-160x90.jpg 160w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【実証】AIオーケストレーションの限界と最適解：DeepSeek暴走を防ぐエンタープライズ級Pythonバッチ設計</div><div class="blogcard-snippet internal-blogcard-snippet">AIに丸投げでは出来高50%未満の赤点？AS/400のCLP構造や150語のルールでDeepSeekが暴走した実体験から、Copilotとの役割分担、Claude 4.5 Sonnetの有効性、PCローカル環境（Ryzen AI 9）で品質100%を叩き出すPythonパイプラインの最終設計図までを徹底解説。Ryzen AI 9 HX470 LLM</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://xn--ecka7j.biz" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">イイネ.biz</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2026.05.23</div></div></div></div></a>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Windows 11「KB5089549」徹底解説：Copilot+PC と一般PCの違い、共通改善点まで完全まとめ</title>
		<link>https://xn--ecka7j.biz/toolboox/windows11/13999/</link>
		
		<dc:creator><![CDATA[Jun-N]]></dc:creator>
		<pubDate>Tue, 12 May 2026 22:40:36 +0000</pubDate>
				<category><![CDATA[Windows 11]]></category>
		<category><![CDATA[セキュリティ]]></category>
		<category><![CDATA[ツール]]></category>
		<category><![CDATA[バージョン管理]]></category>
		<category><![CDATA[道具]]></category>
		<guid isPermaLink="false">https://xn--ecka7j.biz/?p=13999</guid>

					<description><![CDATA[2026/05 Windows 11 の更新プログラム「KB5089549」。 今回のアップデートは、Copilot+PC（NPU搭載機）と一般PC（非NPU）で内容に大きな差はありませんが、AIコンポーネントの最適化・ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>2026/05 Windows 11 の更新プログラム「KB5089549」。</p>



<p>今回のアップデートは、Copilot+PC（NPU搭載機）と一般PC（非NPU）で内容に大きな差はありませんが、<strong>AIコンポーネントの最適化・Secure Boot 証明書更新・File Explorer の改善</strong>など、日常の使い勝手に直結する重要な変更が多数含まれています。</p>



<p>この記事では、<strong>Copilot+PC と一般PCの違いを明確に分けながら、共通項目も含めて分かりやすく整理</strong>しました。<br>「今回の更新で何が変わったのか？」を知りたい方は、ぜひ参考にしてください。</p>



<h2 class="wp-block-heading"><span id="toc1">KB5089549 の全体像</span></h2>



<p>今回の KB5089549 は、<strong>品質改善とセキュリティ強化が中心</strong>のアップデートです。<br>特に重要なのは以下の3点です。</p>



<ul class="wp-block-list">
<li>Secure Boot 証明書の更新（2026年6月期限に向けた最終調整）</li>



<li>BitLocker 回復モード問題の修正</li>



<li>File Explorer の大幅改善</li>
</ul>



<p>Copilot+PC と一般PCで内容差はほぼありませんが、<strong>NPU搭載機では AIコンポーネント更新の恩恵が大きい</strong>のが特徴です。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/Windows-11-KB5089549b-800x533.jpg" alt="KB5089549" class="wp-image-14010" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/Windows-11-KB5089549b-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Windows-11-KB5089549b-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Windows-11-KB5089549b-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Windows-11-KB5089549b-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Windows-11-KB5089549b.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">KB5089549</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc2">&nbsp;Copilot+PC（NPU搭載）向けの改善点</span></h2>



<p>Copilot+PC は NPU（Neural Processing Unit）を搭載しているため、AI関連の更新がより深く影響します。</p>



<p><strong>● AI</strong><strong>コンポーネントの更新</strong></p>



<p>以下の AI モジュールが <strong>1.2604.515.0 系へ統一</strong>されました。</p>



<ul class="wp-block-list">
<li>Image Search</li>



<li>Content Extraction</li>



<li>Semantic Analysis</li>



<li>Settings Model</li>
</ul>



<p><strong>効果としては：</strong></p>



<ul class="wp-block-list">
<li>NPU と CPU の切替がよりスムーズ</li>



<li>アイドル時の消費電力が改善</li>



<li>Copilot の画像解析・意味解析が安定</li>
</ul>



<p>特に、1月以降続いていた「NPU の電源管理の不安定さ」が改善され、<strong>バッテリー駆動時の持ちが向上</strong>する可能性があります。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><strong>● NPU </strong><strong>電源管理の安定化</strong></p>



<ul class="wp-block-list">
<li>アイドル時の電力挙動が改善</li>



<li>AI処理の負荷分散がより適切に</li>
</ul>



<p>NPU搭載機を使っている人にとっては、今回の更新の中でも最も体感しやすい部分です。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><strong>● Xbox Mode </strong><strong>の最適化</strong></p>



<ul class="wp-block-list">
<li>UI 遷移が高速化</li>



<li>フルスクリーンの Xbox UI が安定</li>
</ul>



<p>NPU搭載機では、ゲーム中のバックグラウンド処理がより効率化されます。</p>



<h2 class="wp-block-heading"><span id="toc3">一般PC（非NPU）向けの改善点</span></h2>



<p>一般PCは NPU を搭載していないため、AI処理はクラウド依存のままです。<br>しかし、今回の更新で <strong>操作性と安定性が大きく向上</strong>しています。</p>



<p><strong>● File Explorer </strong><strong>の大幅改善</strong></p>



<ul class="wp-block-list">
<li>新しいアーカイブ形式（uu / cpio / xar / nupkg）に対応</li>



<li>ダークモードでの白フラッシュが解消</li>



<li>explorer.exe の終了処理が安定</li>



<li>フォルダの View / Sort 設定が保持されるように改善</li>
</ul>



<p>日常的にエクスプローラーを使う人ほど恩恵が大きい改善です。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><strong>● </strong><strong>入力系の改善</strong></p>



<ul class="wp-block-list">
<li>ハプティックフィードバック対応（対応デバイスのみ）</li>



<li>音声入力 UI の刷新（キー上にアニメ表示）</li>



<li>Arabic 101 Legacy キーボード追加</li>
</ul>



<p>特に音声入力 UI の刷新は、一般PCでも体感しやすい変化です。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><strong>● Xbox Mode </strong><strong>の追加</strong></p>



<ul class="wp-block-list">
<li>Windows + F11 で起動</li>



<li>Game Bar より“コンソール的”な UI</li>
</ul>



<p>一般PCでも問題なく利用できます。</p>



<h2 class="wp-block-heading"><span id="toc4">Copilot+PC／一般PC 共通の改善点</span></h2>



<p>今回の KB5089549 の中心は <strong>共通のセキュリティ修正と品質改善</strong>です。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><strong>&#x1f510;</strong><strong> Secure Boot </strong><strong>証明書の更新</strong></p>



<p>2026年6月に期限を迎える Secure Boot 証明書に向けた重要な更新です。</p>



<ul class="wp-block-list">
<li>対象デバイスデータを拡張</li>



<li>Windows セキュリティアプリで証明書状態を確認可能</li>
</ul>



<p>セキュリティ面で最も重要な変更です。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><strong>&#x1f510;</strong><strong> BitLocker </strong><strong>回復モード問題の修正</strong></p>



<ul class="wp-block-list">
<li>無効な PCR7 や TPM 設定で発生していた<br><strong>「更新後に BitLocker Recovery に落ちる」問題を修正</strong></li>
</ul>



<p>企業ユーザーにとっては非常に重要な修正です。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><strong>&#x1f310;</strong><strong> SSDP</strong><strong>（ネットワーク探索）の信頼性改善</strong></p>



<ul class="wp-block-list">
<li>DLNA やスマートホーム機器の検出が安定</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><strong>&#x1f4c1;</strong><strong> File Explorer </strong><strong>の品質改善</strong></p>



<ul class="wp-block-list">
<li>新アーカイブ形式対応</li>



<li>ダークモードの白フラッシュ解消</li>



<li>explorer.exe の安定性向上</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><strong>&#x1f3ae;</strong><strong> Xbox Mode </strong><strong>の追加</strong></p>



<ul class="wp-block-list">
<li>フルスクリーンのゲーム UI</li>



<li>Game Bar よりも“コンソール的”な操作感</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><strong>&#x1f446;</strong><strong> </strong><strong>入力体験の改善</strong></p>



<ul class="wp-block-list">
<li>ハプティックフィードバック</li>



<li>音声入力 UI の刷新</li>
</ul>



<h2 class="wp-block-heading"><span id="toc5">Copilot+PC／一般PC／共通 の比較表</span></h2>



<!--_Windows_Update_Table -->
<p id="table-top"><i class="fas fa-table"></i> Table-Top</p>
<!-- Block Start -->
<figure class="wp-block-table">
<div class="scrollable-table stfc-sticky"><table class="eg1" style="border:solid; border-collapse:separate; border-color:blue" border="3">
<caption class="tal"><i class="fas fa-edit"></i><span style="color: white;"><b>KB5089549</b></span> Windows11_Update 26/05/13</caption>
<thead>
<tr><th>#</th>
<th scope="col" class="bc_green tal">項目</th>
<th scope="col" class="c_aqua">Copilot+ PC<br>（NPU搭載）</th>
<th scope="col" class="c_aqua tal">一般PC（非NPU）</th>
<th scope="col" class="c_aqua tal">共通</th>
</tr></thead>

<tr>
<td></td>
<td>AIコンポーネント更新</td>
<td>効果大（NPU活用）</td>
<td>効果小（クラウド処理）</td>
<td>あり</td>
</tr>
<tr>
<td></td>
<td>NPU電源管理</td>
<td>改善あり</td>
<td>―</td>
<td>―</td>
</tr>
<tr>
<td></td>
<td>Xbox Mode</td>
<td>高速・安定</td>
<td>通常動作</td>
<td>追加</td>
</tr>
<tr>
<td></td>
<td>File Explorer改善</td>
<td>あり</td>
<td>あり</td>
<td>共通改善</td>
</tr>
<tr>
<td></td>
<td>Secure Boot証明書更新</td>
<td>あり</td>
<td>あり</td>
<td>最重要項目</td>
</tr>
<tr>
<td></td>
<td>BitLocker回復問題修正</td>
<td>あり</td>
<td>あり</td>
<td>共通修正</td>
</tr>
<tr>
<td></td>
<td>SSDP安定化</td>
<td>あり</td>
<td>あり</td>
<td>共通</td>
</tr>
<tr>
<td></td>
<td>入力系改善</td>
<td>あり</td>
<td>あり</td>
<td>共通</td>
</tr>
</tbody></table></div></figure>
<hr>
<p id="table-end"><i class="fas fa-table"></i> Table-end</p>
<hr>
<p class="ta_r"><a href="#table-top" class="c_wi"><i class="fas fa-arrow-up"></i> table-topに戻る</a></p>
<!-- Block. END -->



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="534" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/Gemini_Generated_Image_ojhrb4ojhrb4ojhr-800x534.jpg" alt="KB5089549" class="wp-image-13998" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/Gemini_Generated_Image_ojhrb4ojhrb4ojhr-800x534.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Gemini_Generated_Image_ojhrb4ojhrb4ojhr-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Gemini_Generated_Image_ojhrb4ojhrb4ojhr-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Gemini_Generated_Image_ojhrb4ojhrb4ojhr-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Gemini_Generated_Image_ojhrb4ojhrb4ojhr.jpg 1264w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">KB5089549</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc6">更新後に確認しておきたいポイント</span></h2>



<p>技術者向けに、更新後のチェックポイントをまとめます。</p>



<ul class="wp-block-list">
<li>Secure Boot 証明書の状態</li>



<li>BitLocker が回復モードに落ちていないか</li>



<li>NPU搭載機の場合：アイドル時の消費電力</li>



<li>File Explorer の動作（白フラッシュ・設定保持）</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/Windows-11-KB5089549a-800x533.jpg" alt="KB5089549" class="wp-image-13997" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/Windows-11-KB5089549a-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Windows-11-KB5089549a-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Windows-11-KB5089549a-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Windows-11-KB5089549a-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/Windows-11-KB5089549a.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">KB5089549</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc7">まとめ</span></h2>



<p>KB5089549 は、Copilot+PC と一般PCで内容差はほとんどありませんが、<br><strong>NPU</strong><strong>搭載機では AIコンポーネント更新と電源管理改善の恩恵が大きい</strong>のが特徴です。</p>



<p>共通項目としては、</p>



<ul class="wp-block-list">
<li>Secure Boot 証明書更新</li>



<li>BitLocker 回復問題の修正</li>



<li>File Explorer の大幅改善</li>



<li>Xbox Mode の追加</li>



<li>入力体験の改善</li>
</ul>



<p>など、日常的に使う部分の品質がしっかり向上しています。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>&#x1f310;ローカルLLMをGUIからCLIへ：UbuntuでPDF自動翻訳バッチを運用するための考え方</title>
		<link>https://xn--ecka7j.biz/efficiency-vs-thought-ai-symbiosis/13954/</link>
		
		<dc:creator><![CDATA[Jun-N]]></dc:creator>
		<pubDate>Fri, 17 Apr 2026 06:33:41 +0000</pubDate>
				<category><![CDATA[AI共生]]></category>
		<category><![CDATA[AI Tool]]></category>
		<category><![CDATA[AIとの共生]]></category>
		<category><![CDATA[道具]]></category>
		<guid isPermaLink="false">https://xn--ecka7j.biz/?p=13954</guid>

					<description><![CDATA[Ubuntu と CLI で始めるローカルLLM運用 生成AIをただ「使う」だけなら、GUIツールでも十分かもしれない。 しかし、PDFマニュアルの大量処理や翻訳禁止語の制御、DeepSeek-R1による長文推論を安定し [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Ubuntu と CLI で始めるローカルLLM運用</p>



<p>生成AIをただ「使う」だけなら、GUIツールでも十分かもしれない。</p>



<p>しかし、PDFマニュアルの大量処理や翻訳禁止語の制御、<span class="bold">DeepSeek-R1</span>による長文推論を安定して回し続けたいと思ったとき、私は「どう運用するか」という視点の重要さに気づいた。</p>



<p>そこで選んだのが、Ubuntu（WSL2<strong><sup><span class="bold-red">※</span></sup></strong>）上でのコマンドライン運用だ。</p>



<p>一見すると手間が増えるように見えるCLI環境だが、ジョブキュー的なバッチ処理や、ツール同士を組み合わせる柔軟さは、AIと人間が共に動くための「運用の自由度」をもたらしてくれる。</p>



<p>この章では、LM Studio中心のGUI利用から一歩踏み出し、Ubuntu＋CLIでローカルLLMを運用するという発想にどうたどり着いたのかを振り返る。PDF自動翻訳バッチや IBM i 的なジョブ管理の考え方を手がかりに、「AIを動かす」から「AIと一緒に運転する」ための運用思想を紹介する。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/ccf551ca62bcd6e16fcf3d3dc60b43a9-800x533.jpg" alt="Ubuntu" class="wp-image-13948" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/ccf551ca62bcd6e16fcf3d3dc60b43a9-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/ccf551ca62bcd6e16fcf3d3dc60b43a9-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/ccf551ca62bcd6e16fcf3d3dc60b43a9-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/ccf551ca62bcd6e16fcf3d3dc60b43a9-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/ccf551ca62bcd6e16fcf3d3dc60b43a9.jpg 1056w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">LM Studio から始まった「AIとの共生」</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc1">LM Studio から始まった「AIとの共生」</span></h2>



<p>　私が生成AIを本格的に使い始めた頃、最初の選択肢は<span class="bold"> LM Studio </span>だった。<br>理由は単純で、<strong>とにかく手軽だったから</strong>だ。</p>



<p>モデルを選び、ボタンを押せばすぐに対話が始まる。<br>PDF を読み込ませて要約させたり、翻訳させたり、<br>GUI の世界は“<span class="bold">AI を触る</span>”という意味では非常に優れている。</p>



<p>しかし、使い続けるうちに、ある壁にぶつかった。</p>



<ul class="wp-block-list">
<li>PDF マニュアルの大量処理</li>



<li><span class="bold">DeepSeek-R1</span> の &lt;think&gt; が長くなると落ちる</li>



<li>翻訳禁止語の制御が難しい</li>



<li>長文処理の安定性に限界がある</li>



<li>自動化がほぼ不可能</li>
</ul>



<p>AI を「使う」だけなら十分だが、<br><strong>AI </strong><strong>を</strong><strong>“</strong><strong>運用</strong><strong>”</strong><strong>しようとすると、GUI の限界が見えてきた。</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/02-Why-Ubuntu-800x533.jpg" alt="Ubuntu" class="wp-image-13947" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/02-Why-Ubuntu-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/02-Why-Ubuntu-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/02-Why-Ubuntu-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/02-Why-Ubuntu-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/02-Why-Ubuntu.jpg 1056w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">Why Ubuntu</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc2">なぜ Ubuntu なのか──発想の転換</span></h2>



<p>そこで私は、思い切って Ubuntu（WSL2<strong><sup><span class="bold-red">※</span></sup></strong>）へ踏み出した。<br>最初は「Linuxコマンドラインなんて面倒だ。Ubuntuなんて10年ぶりだし」と思っていた。<br>しかし実際に触れてみると、その印象は一瞬で覆された。</p>



<p>Ubuntu は、AI を <strong>“</strong><strong>ワークフローの一部として組み込む</strong><strong>”</strong> ための環境だった。</p>



<ul class="wp-block-list">
<li>PDF → OCR → 英文抽出 → 翻訳 → 整形</li>



<li>翻訳禁止リストの適用</li>



<li><span class="bold">DeepSeek-R1</span> の &lt;think&gt; の制御</li>



<li>長文処理の安定性</li>



<li>スクリプトによる完全自動化</li>
</ul>



<p>これらが、GUI ではなく <strong>CLI（コマンドライン）だからこそ実現できた</strong>。</p>



<p>そして気づいたのは、<br><strong>AI </strong><strong>を本当に活かすには、GUI よりも CLI の方が向いている</strong>という事実だった。</p>



<p>&#x1f331; 補足：Ubuntu を使うのって、実はすごくカンタンなんです</p>



<p>昔は「Ubuntu を使う＝パソコンに別でインストールして、Windows と切り替えるダブルブートを作る」「仮想環境を用意する」みたいな、ちょっと大変な作業が必要でした。</p>



<p>でも今はもう、そんな手間は一切ありません。</p>



<p><strong>Windows </strong><strong>の画面からそのまま Ubuntu を呼び出して、<br>Ubuntu のシェル画面でコマンドを実行できる時代です。</strong></p>



<p>必要なら、<br><span class="marker-under-blue">スクリプトを<span class="bold">バッチ化</span>して自動で動かす</span>こともできます。（このBatch Job化が私にとって最大の魅力であり、今回Ubuntuを10年ぶりに選んだ理由）</p>



<p>「難しそう…」と思われがちですが、<br>実際は <strong>“</strong><strong>アプリを開く感覚で Ubuntu を使える</strong><strong>”</strong> くらい手軽です。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/03-Not-LM-Studio-Yes-Script-LLM-800x533.jpg" alt="Ubuntu" class="wp-image-13946" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/03-Not-LM-Studio-Yes-Script-LLM-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/03-Not-LM-Studio-Yes-Script-LLM-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/03-Not-LM-Studio-Yes-Script-LLM-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/03-Not-LM-Studio-Yes-Script-LLM-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/03-Not-LM-Studio-Yes-Script-LLM.jpg 1056w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">for AI Workflows</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc3">LM Studio ではなく “スクリプトで動かす LLM” を選んだ理由</span></h2>



<p>Ubuntu で llama.cpp を直接叩くようになってから、<br>AI の扱い方が根本的に変わった。</p>



<p><strong>●</strong><strong> </strong><strong>安定性</strong></p>



<p><span class="bold">DeepSeek-R1</span> の長い &lt;think&gt; を含む推論でも落ちない。<br>Windows のメモリ圧縮に邪魔されない。</p>



<p><strong>●</strong><strong> </strong><strong>制御性</strong></p>



<p>翻訳禁止リストを自由に扱える。<br>前処理・後処理を自在に組み込める。</p>



<p><strong>●</strong><strong> </strong><strong>自動化</strong></p>



<p>GUI では不可能だった</p>



<ul class="wp-block-list">
<li>バッチ処理</li>



<li>フォルダ監視</li>



<li>状態管理</li>



<li>Markdown/HTML 出力<br>がすべて可能になった。</li>
</ul>



<p><strong>●</strong><strong> </strong><strong>再現性</strong></p>



<p>同じ PDF を流せば、同じ処理が確実に行われる。<br>これは“運用”において最も重要な要素だ。</p>



<p>GUI は便利だが、<br><strong>運用の自由度は CLI の方が圧倒的に高い。</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/242b2b6060fe003a0cc2ee9ea0750618-800x533.jpg" alt="Ubuntu" class="wp-image-13945" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/242b2b6060fe003a0cc2ee9ea0750618-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/242b2b6060fe003a0cc2ee9ea0750618-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/242b2b6060fe003a0cc2ee9ea0750618-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/242b2b6060fe003a0cc2ee9ea0750618-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/242b2b6060fe003a0cc2ee9ea0750618.jpg 1056w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">Ubuntu が開いた「展開の広さ」</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc4">Ubuntu が開いた「展開の広さ」</span></h2>



<p><span class="bold">Ubuntu </span>に移行して最も驚いたのは、<br><strong>AI を「部品」として扱えるようになったこと</strong>だ。</p>



<ul class="wp-block-list">
<li>ocrmypdf で OCR</li>



<li>pdftotext でテキスト抽出</li>



<li>grep / sed / awk で前処理</li>



<li>llama.cpp で翻訳</li>



<li>bash でパイプライン化</li>



<li>状態ファイルでジョブ管理</li>



<li>ログで運用監視</li>
</ul>



<p>これらを自由に組み合わせることで、<br><strong>自分だけの AI 処理ラインを構築できる。</strong></p>



<p>GUI では「AI を使う」だったが、<br>Ubuntu では「<span class="bold">AI を組み込む</span>」へと進化した。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/d198dbb18d8067e34e8d6b2f36ed45a2-800x533.jpg" alt="Ubuntu" class="wp-image-13953" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/d198dbb18d8067e34e8d6b2f36ed45a2-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/d198dbb18d8067e34e8d6b2f36ed45a2-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/d198dbb18d8067e34e8d6b2f36ed45a2-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/d198dbb18d8067e34e8d6b2f36ed45a2-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/d198dbb18d8067e34e8d6b2f36ed45a2.jpg 1056w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">IBM i(System 38)の思想が Ubuntu で蘇る</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc5">IBM i（System/38）の思想が Ubuntu で蘇る</span></h2>



<p>長年、System/38 → AS/400 → IBM i の世界で<br>設計・開発・PM・PMO に携わってきた私にとって、<br>Ubuntu の CLI はどこか懐かしさを感じさせた。</p>



<ul class="wp-block-list">
<li>ジョブキュー（JOBQ）</li>



<li>状態管理（QUEUED / RUNNING / DONE / ERROR）</li>



<li>ログとスプール</li>



<li>再起動後のジョブ再投入</li>



<li>優先度付きキュー</li>



<li>同時実行数の制御</li>
</ul>



<p>これらは、まさに <strong>汎用機の運用思想そのもの</strong>だ。</p>



<p>PC 上で、<br>あの <span class="bold">System/38</span> の“運用の美学”を再現できるとは思わなかった。</p>



<p>Ubuntu（WSL2<strong><sup><span class="bold-red">※</span></sup></strong>） は、<strong>AI 時代の “新しい汎用機”のように感じられた。</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="531" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/ace44d44deea913cd3a4f07ce1345104-800x531.png" alt="Ubuntu" class="wp-image-13943" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/ace44d44deea913cd3a4f07ce1345104-800x531.png 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/ace44d44deea913cd3a4f07ce1345104-500x332.png 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/ace44d44deea913cd3a4f07ce1345104-300x199.png 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/ace44d44deea913cd3a4f07ce1345104-768x510.png 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/ace44d44deea913cd3a4f07ce1345104.png 1058w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">GUI は入口、CLI は共生の本丸</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc6">結論：GUI は入口、CLI は共生の本丸</span></h2>



<p>LM Studio は素晴らしいツールだ。<br>AI を触る入口としては最適だし、<br>とっつきやすさでは他の追随を許さない。</p>



<p>しかし、<br>AI を <strong>“</strong><strong>共生する存在</strong><strong>”</strong> として扱うなら、<br>Ubuntu の CLI が本丸になる。</p>



<ul class="wp-block-list">
<li>自動化</li>



<li>安定性</li>



<li>再現性</li>



<li>拡張性</li>



<li>運用思想との親和性</li>
</ul>



<p>これらは GUI では得られない。</p>



<p>AI を「使う」から「共に働く」へ。<br>その転換点に、Ubuntu があった。</p>



<h2 class="wp-block-heading"><span id="toc7">Stay tuned for Part ３!</span></h2>



<p><strong>しかし、まだこの時は知らない。私は概念設計<strong><sup><span class="bold-red">※</span></sup></strong><sup><span class="bold-red">※</span></sup>しただけで、もちろんAS/400の世界（SLSやRDB）がすべて引き継げる訳は無い。絶対的に無理であることは分かっている。しかし、JobQやDtaQ的な概念をUbuntuで使用できると思っただけ。</strong></p>



<p><strong>そしてそれ(<span class="marker-under-blue">Batch一括Jobそのものの構築</span>)を、実現するために<span class="marker-under">AIの力を借りる</span>ことまでは意識していた。<br>　しかし、その後、<span class="marker-under">Copilotのフリーズ</span>（応答なし）、Geminiへ連携、<span class="marker-under">Geminiの迷走</span>と続くことは予想だにしていなかった。　そして、明かりが見えてきて、この記事を書いている</strong>。ここでAIを使う上で最も大事なものは「<span class="bold">プロンプトの内容</span>」そして、そのプロンプトで<span class="bold"><span class="marker-under-blue">明確な住み分けを示す</span></span>ことだった。明確な住み分けを示すことなくプロンプトの重みだけを示した結果が<span class="bold">Geminiの迷走</span>（Gemini曰く良かれと思って）を招く結果になった。　<strong><span class="bold-blue">To be continued&#8230;</span></strong></p>



<div class="wp-block-group is-style-info-box is-layout-constrained wp-block-group-is-layout-constrained">
<p><span class="bold-red"><strong>※</strong>.</span> WSL2（Windows Subsystem for Linux 2）は、Windows 10/11上で軽量な仮想マシンを用いてLinux環境（Ubuntuなど）を高速・高互換に動作させる技術です。Docker Desktopの高速動作やファイルシステム性能の向上が最大の特徴で、開発者向けに最適化されています。<br>―――――――――――――――</p>



<p>主な特徴とメリット:</p>



<p>本物のLinuxカーネル: 軽量な仮想マシン（Hyper-V技術）上でLinuxカーネルが動くため、Dockerコンテナや多くのLinuxツールがネイティブに近い速度で動作。</p>



<p>Windowsとの連携: LinuxからWindowsのファイル（/mnt/c/）にアクセスでき、VS Codeの「WSL」拡張機能を使ってシームレスな開発が可能。</p>



<p>簡単インストール: PowerShellで wsl &#8211;install コマンドを実行するだけで導入完了。</p>



<p>要件と注意点:</p>



<p>対応OS: Windows 10 (version 1903以降, Build 18362以降) または Windows 11 (64bit版)。</p>



<p>ハードウェア: CPUの仮想化機能（Hyper-V）が有効であること。</p>



<p>リソース: デフォルトでPCメモリの最大50%を使用する可能性がある</p>
</div>



<h2 class="wp-block-heading"><span id="toc8">概念設計(外部設計)</span></h2>



<p><span class="bold-red"><strong><span class="bold-red"><strong>※</strong></span>※</strong>.概念設計</span> </p>



<p>JobQに置いた、バッチ一括処理Job.sh（Shell scriptが、DataQにある.pdfファイルを読み込み日本語に翻訳し出力する）</p>



<p>DataQには、翻訳対象の英文マニュアル.pdfファイルを置く</p>



<p>Batch-Jobの作成の為のプロンプト作成AI:GeminiまたはCopilot</p>



<h3 class="wp-block-heading"><span id="toc9">Batch-Jobで使用するTool</span></h3>



<p>　１．PDF読み込み（OCR処理)：ocrmypdf(OCRmyPDF)</p>



<p>　２．英文翻訳LLM：llama-cli (cyberagent-<span class="bold">DeepSeek-R1</span>-Distill-Qwen-14B-Japanese-Q5_K_M.gguf)</p>



<p>　３．使用するマシン：Ryzen AI9 HX470 RAM 32GB DDR5-5600 + m.2 SSD 1TB + USB4経由外付けm.2 SSD 1TB（）</p>



<h3 class="wp-block-heading"><span id="toc10">Batch-Jobを作成する環境</span></h3>



<p>　１．Ubuntu（WSL2）：（LLMを動かす環境）</p>



<p>　２．LLM：<strong>DeepSeek-R1-Distill-Qwen-14B-IQ4_XS.gguf</strong><br>　　　　　　<del>Gemma-4-26B-A4B-it-Q4_K_M.gguf</del></p>



<p>　３．使用するマシン：Ryzen AI9 HX470 RAM 32GB DDR5-5600 + m.2 SSD 1TB + USB4経由外付けm.2 SSD 1TB（）　</p>



<h3 class="wp-block-heading"><span id="toc11">プロンプト</span></h3>



<p>プロンプト：GeminiまたはCopilotへの指示内容</p>



<p>　１．責任分界点：担当分野：これが無いとAIが迷走する（例えば、Geminiがコードを書くとか）</p>



<p>　　　1-1．Batch一括処理Jobのコーデイング:<br>                    <strong>DeepSeek-R1-Distill-Qwen-14B-IQ4_XS.gguf</strong><br>                    <del>Gemma-4-26B-A4B-it-Q4_K_M.gguf</del></p>



<p>　２．上記の内容を全て含む</p>



<div class="wp-block-group is-style-information-box is-layout-constrained wp-block-group-is-layout-constrained">
<p>※.　 <br>Gemma-4-26B-A4B-it-Q4_K_M.gguf から、<br><strong>DeepSeek-R1-Distill-Qwen-14B-IQ4_XS.gguf</strong> への変更は、<br>多くのハレーションを起こして制御がままならない状況がつづいたからで、<br>他にも代替、<br><strong>cyberagent-DeepSeek-R1-Distill-Qwen-14B-Japanese-Q5_K_M.gguf</strong><br>も考えられる。　　　　　　　　　　　26/04/24</p>
</div>



<h2 class="wp-block-heading"><span id="toc12">外部設計の厳密化</span></h2>



<div class="wp-block-group is-style-alert-box is-layout-constrained wp-block-group-is-layout-constrained">
<p>実は、Gemini（ナビゲーター＆プロンプター）＋ Gemma4でも、翻訳結果の画面出力はできていた。<br>しかし翻訳前の抽出した英文.txtの出力はおろか、日本語訳.txtの出力がままならなかった。<br>途中でセカンドオピニオン（別スレッドのGemin）に聞いてみたところ、Markdown方式でのGemma4コントロールは難しく、<br>代替案としてJSON方式／XML方式を提案された。<br>更に、Gemma4を代替できるLLM候補も２つ（どちらも<span class="bold">DeepSeek-R1</span>系であって翻訳用の<span class="bold">DeepSeek-R1</span>とも相性が良いとの事が）確認できた。（さらに現時点ではどちらもGemma4より軽量でかつ優秀だと。）<br><br>こちらのスレッドのGeminiにこれを告げ、まずは<span class="bold">JSON方式</span>で行ってみた。<br>結果、Geminiまでハレーションを起こすし、デグレはするし、<br><span class="bold">XML方式</span>をやってもいないのに、勝手にJSONと同じ扱いにし、<br><span class="bold">TEE方式</span>を提案し、プロンプトまで用意する迷走（面従腹背）ぶりを発揮した。<br>責任分界点を定めて、厳命しているのも関わらず。そこでGeminiが現時点で認識している事項を７W2H ＆ MECEで出力させた結果が残念であるのを確認し、Geminiを解任した。</p>
</div>



<h3 class="wp-block-heading"><span id="toc13">Copilot再び</span></h3>



<p>Gemini出力の７W2H（MECE）をCopilotに投げかけた結果。ナビゲーター（内部設計）＆プロンプター（Programming指示）役をCopilot再任とした。</p>



<h3 class="wp-block-heading"><span id="toc14">外部設計厳密化(HIPO)</span></h3>



<p><strong>Hierarchy：階層</strong>  <br>Hierarchical structure：役割分担と、階層構造(デレクトリ構造)と（LLM、Tool、File、待ち行列などの）格納場所など<br>及び３階層の厳密化</p>



<div class="wp-block-group is-style-information-box is-layout-constrained wp-block-group-is-layout-constrained">
<p>&#8211; ① 要求定義 → 詳細設計 → プログラミング指示プロンプト（Copilot）<br>&#8211; ② プログラミング指示 → バッチジョブプログラミング（Copilot＋DeepSeek） <br>&#8211; ③ DtaQ投入＆バッチ一括ジョブ投入 → 翻訳（Ubuntuバッチ実行）</p>
</div>



<p>階層ごとIPO（Input Process Output）周りの厳密化</p>



<p>命名基準とタイムスタンプ＆Log種類など</p>



<div class="wp-block-group is-style-memo-box is-layout-constrained wp-block-group-is-layout-constrained">
<p>※．ここは、<span class="bold">方式設計</span>：AI（ナビゲータ＆プロンプター）&#x27a1; AI（プログラミング）間の扱いは初めてで、厳密な意味での知識不足もあった。（何が是で何が非か）</p>
</div>



<h2 class="wp-block-heading"><span id="toc15">Copilotと共に「要求設計→外部設計→内部設計→プログラミング→バッチ運用」まで AI と協働し、PDF英文マニュアルの翻訳バッチを完成させる</span></h2>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">

<a href="https://xn--ecka7j.biz/efficiency-vs-thought-ai-symbiosis/14021/" title="AIとの共生:Geminiの迷走からCopilotとの協働へ─要求設計・外部設計・内部設計・プログラミング・バッチ運用までをAIと共に歩んだ21日間の記録" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="320" height="180" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/AI-coexistence-21-da-320x180.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/AI-coexistence-21-da-320x180.jpg 320w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/AI-coexistence-21-da-120x68.jpg 120w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/AI-coexistence-21-da-160x90.jpg 160w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">AIとの共生:Geminiの迷走からCopilotとの協働へ─要求設計・外部設計・内部設計・プログラミング・バッチ運用までをAIと共に歩んだ21日間の記録</div><div class="blogcard-snippet internal-blogcard-snippet">Geminiの暴走と迷走に苦しんだ開発者が、Copilotと共に「要求設計→外部設計→内部設計→プログラミング→バッチ運用」まで AI と協働し、PDF英文マニュアルの翻訳バッチを完成させるまでの21日間を記録。AIと安全に共生するための最重要ポイントを技術者視点で解説。Ryzen AI 9 HX470</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://xn--ecka7j.biz" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">イイネ.biz</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2026.05.17</div></div></div></div></a>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>KB5083769（Build 26200.8246）徹底解説：Copilot+ PC と一般PCで何が変わったのか</title>
		<link>https://xn--ecka7j.biz/toolboox/windows11/13937/</link>
		
		<dc:creator><![CDATA[Jun-N]]></dc:creator>
		<pubDate>Wed, 15 Apr 2026 00:58:13 +0000</pubDate>
				<category><![CDATA[Windows 11]]></category>
		<category><![CDATA[25H2]]></category>
		<category><![CDATA[ツール]]></category>
		<category><![CDATA[バージョンアップ]]></category>
		<category><![CDATA[道具]]></category>
		<guid isPermaLink="false">https://xn--ecka7j.biz/?p=13937</guid>

					<description><![CDATA[AI時代のWindowsアップデート：Copilot+ PC と非NPU PCの違いを技術的に整理する 2026/04、Windows 11 25H2 に適用された KB5083769（Build 26200.8246） [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>AI時代のWindowsアップデート：Copilot+ PC と非NPU PCの違いを技術的に整理する</p>



<p>2026/04、Windows 11 25H2 に適用された <strong>KB5083769（Build 26200.8246）</strong> は、<br>単なる不具合修正ではなく、<strong>AI時代のWindowsの方向性を示す重要な更新</strong>です。</p>



<p>特に今回のアップデートは、<br><strong>Copilot+ PC</strong><strong>（NPU搭載デバイス）</strong> と <strong>一般PC（非NPUデバイス）</strong> の “AI体験の差” を明確にする内容が含まれています。</p>



<p>この記事では、<br>両者に共通する改善点と、AI処理能力の違いによって生まれる差異を、<br><strong>技術的背景と実際の使用感の両面から詳しく解説</strong>します。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/No1-What-Is-KB5083769-B-800x533.jpg" alt="Windows 11" class="wp-image-13931" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/No1-What-Is-KB5083769-B-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/No1-What-Is-KB5083769-B-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/No1-What-Is-KB5083769-B-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/No1-What-Is-KB5083769-B-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/No1-What-Is-KB5083769-B.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">KB5083769（Build 26200.8246）とは何か</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc1">KB5083769（Build 26200.8246）とは何か</span></h2>



<ul class="wp-block-list">
<li>25H2向けの累積更新</li>



<li>AIコンポーネントの更新（1.2603.377.0）</li>



<li>セキュリティ・ネットワーク・設定アプリの改善</li>



<li>今回のアップデートが “AI時代の分岐点” である理由</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/No2-Copilot-vs-traditio-800x533.jpg" alt="Windows 11" class="wp-image-13932" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/No2-Copilot-vs-traditio-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/No2-Copilot-vs-traditio-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/No2-Copilot-vs-traditio-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/No2-Copilot-vs-traditio-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/No2-Copilot-vs-traditio.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">Copilot+ PC と 一般PCの違いが生まれる背景</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc2">Copilot+ PC と 一般PCの違いが生まれる背景</span></h2>



<ul class="wp-block-list">
<li>NPU（Neural Processing Unit）の役割</li>



<li>オンデバイスAIとクラウドAIの構造的違い</li>



<li>Windows 11 の AI アーキテクチャ（Image Search / Content Extraction / Semantic Analysis）</li>



<li>なぜ同じアップデートでも “効果が違う” のか</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/No3-Enhancements-for-Cop-800x533.jpg" alt="Windows 11" class="wp-image-13933" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/No3-Enhancements-for-Cop-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/No3-Enhancements-for-Cop-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/No3-Enhancements-for-Cop-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/No3-Enhancements-for-Cop-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/No3-Enhancements-for-Cop.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">Copilot+ PC における改善点（NPU搭載デバイス）</figcaption></figure>



<p>Copilot +PCでCpolitを動かす場合と、一般PCでCopilotを動かす場合、どこがどう違うのか具体的に詳しく。</p>
<p>「Copilot+ PC」と「一般PCで動くCopilot」は、名前は似ていても“カテゴリ”が違うものです。</p>

<!--_Copilot_Table -->
<p id="table-top"><i class="fas fa-table"></i> Copilot</p>
<!-- Block Start -->
<figure class="wp-block-table">
<div class="scrollable-table stfc-sticky"><table class="eg1" style="border:solid; border-collapse:separate; border-color:blue" border="3">
<caption class="tal"><i class="fas fa-edit"></i><span style="color: white;"><b>全体像の比較表</b></span></caption>
<thead>
<tr><th>#</th>
<th scope="col" class="bc_green">観点</th>
<th scope="col" class="c_aqua tal">Copilot+ PC 上の Copilot</th>
<th scope="col" class="c_aqua">一般PC上の Copilot</th>
</tr></thead>

<tbody>
<tr>
<td></td>
<td>ハード要件</td>
<td>NPU 40 TOPS以上、RAM 16GB以上、SSD 256GB以上</td>
<td>Windows 11 が動けばよく、特別な NPU 要件なし</td>
</tr>
<tr>
<td></td>
<td>AI処理の場所</td>
<td>ローカル（NPU中心）＋クラウド</td>
<td>ほぼクラウド（CPU/GPUで一部ローカル補助）</td>
</tr>
<tr>
<td></td>
<td>使える機能</td>
<td>Recall、Cocreator、強化された Studio Effects など“Copilot+専用”機能あり</td>
<td>チャット型Copilot、M365 Copilot などクラウド系機能中心</td>
</tr>
<tr>
<td></td>
<td>応答速度</td>
<td>ローカル推論分は速い（通信待ちが少ない）</td>
<td>通信状況に依存しやすい</td>
</tr>
<tr>
<td></td>
<td>プライバシー</td>
<td>ローカル処理が多く、データを外に出さずにAI処理しやすい</td>
<td>基本クラウド送信前提（サービス側のポリシーに依存）</td>
</tr>
<tr>
<td></td>
<td>バッテリー・電力</td>
<td>NPUでAI処理→省電力・長時間駆動になりやすい</td>
<td>AI処理はCPU/GPU依存で、負荷が高いと消費電力も増えがち</td>
</tr>
<tr>
<td></td>
<td>位置づけ</td>
<td>「AI PCの新基準」＝Microsoftが定義したカテゴリ名</td>
<td>従来からある“普通のPC”＋Copilotアプリ／M365 Copilot</td>
</tr>
</tbody></table></div></figure>
<hr>
<p id="table-end"><i class="fas fa-table"></i> Table-end</p>
<hr>
<p class="ta_r"><a href="#table-top" class="c_wi"><i class="fas fa-arrow-up"></i> table-topに戻る</a></p>
<!-- Block. END -->



<h2 class="wp-block-heading"><span id="toc3">Copilot+ PC における改善点（NPU搭載デバイス）</span></h2>



<p><strong>1. </strong><strong>画像説明（Narrator × Copilot）の高速化</strong></p>



<ul class="wp-block-list">
<li>NPUによるローカル画像解析</li>



<li>オフラインでも一部処理可能</li>



<li>視覚支援機能のレスポンスが大幅向上</li>
</ul>



<p><strong>2. AI</strong><strong>コンポーネント更新の恩恵が最大化</strong></p>



<ul class="wp-block-list">
<li>Image Search の高速化</li>



<li>Content Extraction の精度向上</li>



<li>Semantic Analysis の応答性改善</li>



<li>Settings Model の最適化</li>
</ul>



<p><strong>3. </strong><strong>プライバシー面の強化</strong></p>



<ul class="wp-block-list">
<li>画像解析がローカルで完結</li>



<li>クラウド送信が最小化</li>
</ul>



<p><strong>4. Copilot </strong><strong>との連携が“体感レベルで速い”</strong></p>



<ul class="wp-block-list">
<li>テキスト要約</li>



<li>画像説明</li>



<li>コンテンツ抽出</li>



<li>ファイル検索</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/No4-Enhancements-for-Reg-800x533.jpg" alt="Windows 11" class="wp-image-13934" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/No4-Enhancements-for-Reg-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/No4-Enhancements-for-Reg-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/No4-Enhancements-for-Reg-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/No4-Enhancements-for-Reg-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/No4-Enhancements-for-Reg.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">一般PC（非NPUデバイス）における改善点</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc4">一般PC（非NPUデバイス）における改善点</span></h2>



<p><strong>1. Copilot </strong><strong>の画像説明が “クラウド処理で利用可能” に</strong></p>



<ul class="wp-block-list">
<li>KB5083769 で一般PCにも解禁</li>



<li>ただし速度はネットワーク依存</li>



<li>処理負荷はPC側にほぼ無し</li>
</ul>



<p><strong>2. AI</strong><strong>コンポーネント更新は適用されるが効果は限定的</strong></p>



<ul class="wp-block-list">
<li>CPU/GPUで処理</li>



<li>高度なオンデバイスAIは非対応</li>



<li>それでも精度は向上</li>
</ul>



<p><strong>3. </strong><strong>共通改善の恩恵はそのまま受けられる</strong></p>



<ul class="wp-block-list">
<li>設定アプリの高速化</li>



<li>エクスプローラー安定性向上</li>



<li>RDPフィッシング対策</li>



<li>Secure Boot 証明書の可視化</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/No5-Common-Improvements--800x533.jpg" alt="Windows 11" class="wp-image-13935" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/No5-Common-Improvements--800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/No5-Common-Improvements--500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/No5-Common-Improvements--300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/No5-Common-Improvements--768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/No5-Common-Improvements-.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">両方のPCに共通する改善点（KB5083769 全体）</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc5">両方のPCに共通する改善点（KB5083769 全体）</span></h2>



<p><strong>1. Secure Boot </strong><strong>証明書の更新と可視化</strong></p>



<ul class="wp-block-list">
<li>Windows セキュリティアプリで確認可能</li>



<li>BitLocker Recovery 誤作動の修正</li>
</ul>



<p><strong>2. SMB over QUIC </strong><strong>の信頼性向上</strong></p>



<ul class="wp-block-list">
<li>圧縮要求の安定化</li>



<li>タイムアウト減少</li>
</ul>



<p><strong>3. RDP</strong><strong>（.rdpファイル）を使ったフィッシング対策強化</strong></p>



<ul class="wp-block-list">
<li>接続前に設定をすべて表示</li>



<li>初回のみ警告</li>
</ul>



<p><strong>4. </strong><strong>「このPCをリセット」で失敗する不具合の修正</strong></p>



<ul class="wp-block-list">
<li>3月のホットパッチ後の問題を解消</li>
</ul>



<p><strong>5. </strong><strong>設定アプリのモダン化</strong></p>



<ul class="wp-block-list">
<li>「アカウント」「その他のユーザー」「このPCについて」など改善</li>



<li>ホーム画面の読み込み高速化</li>
</ul>



<p><strong>6. </strong><strong>エクスプローラーの安定性向上</strong></p>



<ul class="wp-block-list">
<li>ダウンロードファイルのアンブロック失敗を修正</li>



<li>表示不整合やクラッシュの改善</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/No6-Comparison-Table_-Co-800x533.jpg" alt="Windows 11" class="wp-image-13936" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/No6-Comparison-Table_-Co-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/No6-Comparison-Table_-Co-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/No6-Comparison-Table_-Co-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/No6-Comparison-Table_-Co-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/No6-Comparison-Table_-Co.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">Copilot+ PC と 一般PCの違いを比較</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc6">Copilot+ PC と 一般PCの違いを比較表で整理</span></h2>



<p id="kb"><i class="fas fa-anchor"></i>　	KB5083769</p>
<!-- ここから、Table HTML ***  -->
<figure class="wp-block-table">
<div class="scrollable-table stfc-sticky"><table style="border-collapse: collapse; border-color: aqua; border-width: 2px;">
<caption class="tal"><i class="fas fa-edit fa-2x"></i>　Update：2026/04/15</caption>
<thead>
<tr>

<th scope="col" class="tal">No</th>
<th scope="col" class="tal">項目</th>
<th scope="col" class="tal">Copilot+ PC（NPU搭載）</th>
<th scope="col" class="tal">一般PC（非NPU）</th>
</tr>
</thead>
<tbody>

<tr>
<td class="tac">1</td>
<td>画像説明（Narrator + Copilot）</td>
<td>高速・ローカル処理</td>
<td>クラウド処理で対応（今回解禁）</td>
</tr>
<tr>
<td class="tac">2</td>
<td>AIコンポーネント更新の効果</td>
<td>最大限発揮（NPU最適化）</td>
<td>効果は限定的</td>
</tr>
<tr>
<td class="tac">3</td>
<td>オフラインAI処理</td>
<td>一部可能</td>
<td>不可</td>
</tr>
<tr>
<td class="tac">4</td>
<td>セキュリティ・ネットワーク改善</td>
<td>共通</td>
<td>共通</td>
</tr>
<tr>
<td class="tac">5</td>
<td>設定アプリ・エクスプローラー改善</td>
<td>共通</td>
<td>共通</td>
</tr>
</tbody></table></div></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/faf2942c8e0ea0806be7a093aae40641-800x533.jpg" alt="Windows 11" class="wp-image-13929" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/faf2942c8e0ea0806be7a093aae40641-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/faf2942c8e0ea0806be7a093aae40641-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/faf2942c8e0ea0806be7a093aae40641-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/faf2942c8e0ea0806be7a093aae40641-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/faf2942c8e0ea0806be7a093aae40641.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">今回のアップデートが示す “Windowsの未来”</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc7">今回のアップデートが示す “Windowsの未来”</span></h2>



<ul class="wp-block-list">
<li>Windows は “AI前提のOS” へ移行中</li>



<li>Copilot+ PC は AI処理の主役</li>



<li>一般PCはクラウドAIで補完</li>



<li>今後のアップデートで差はさらに拡大する可能性</li>



<li>2026年以降のPC選びは「NPU搭載かどうか」が重要な判断軸に</li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Local LLM の限界と向き合う：モデル選定と実践から見えた“解像度”の壁</title>
		<link>https://xn--ecka7j.biz/efficiency-vs-thought-ai-symbiosis/13916/</link>
		
		<dc:creator><![CDATA[Jun-N]]></dc:creator>
		<pubDate>Wed, 08 Apr 2026 03:44:51 +0000</pubDate>
				<category><![CDATA[AI共生]]></category>
		<category><![CDATA[AI Tool]]></category>
		<category><![CDATA[AIとの共生]]></category>
		<category><![CDATA[Local LLM]]></category>
		<category><![CDATA[ツール]]></category>
		<category><![CDATA[道具]]></category>
		<guid isPermaLink="false">https://xn--ecka7j.biz/?p=13916</guid>

					<description><![CDATA[Local LLM 　生成AIは便利だが、時に平然と“嘘”をつく。だからこそ私は、クラウド依存を避けるために Local LLM を導入し、自分の手元でモデルを動かすことに挑戦した。　しかし、PDFのページ数が増えた瞬間 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><strong>Local LLM</strong></p>



<p>　生成AIは便利だが、時に平然と“嘘”をつく。<br>だからこそ私は、クラウド依存を避けるために Local LLM を導入し、自分の手元でモデルを動かすことに挑戦した。<br>　しかし、PDFのページ数が増えた瞬間に精度が落ち、前の文書の内容が混ざり、モデルを eject して再読み込みするという作業を繰り返すことになった。<br>この章では、私が実際に行ったモデル選定、PDF解析の試行錯誤、そして「Local LLM の限界」をどう乗り越えたかをまとめる。</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">

<a href="https://xn--ecka7j.biz/efficiency-vs-thought-ai-symbiosis/13888/" title="AIとの共生：生成AIは嘘をつく、だから Local LLMを使ってみた" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="320" height="180" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/2e1f3b3cffbcbe86158e3dbab9b78b51-320x180.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/2e1f3b3cffbcbe86158e3dbab9b78b51-320x180.jpg 320w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/2e1f3b3cffbcbe86158e3dbab9b78b51-120x68.jpg 120w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/2e1f3b3cffbcbe86158e3dbab9b78b51-160x90.jpg 160w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">AIとの共生：生成AIは嘘をつく、だから Local LLMを使ってみた</div><div class="blogcard-snippet internal-blogcard-snippet">生成AIを利用する際に最も重要なのは、AIを誘導しないことである。ユーザーが意識していないと、AIは欠損した情報を補完し、もっともらしい文章を生成する。以前の記事でも触れたように、存在しない製品の型番や仕様を提示するケースが確認されている。これは特定のモデルに限らず、生成AI全般に共通する構造的な特性である。本稿では、LM Studio を用いて複数の Local LLM を検証した結果をもとに、生成AIの特性と、AIとの共生に必要な視点を整理する。Ryzen AI 9 HX470</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://xn--ecka7j.biz" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">イイネ.biz</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2026.04.05</div></div></div></div></a>
</div>



<p>　そこで第2章では、私が実際に行った検証の記録をまとめる。<br>複数のモデルを試し、PDFを読み込ませ、精度の落ちるポイントを見極め、そして最終的に「AIとの共生」に必要な運用方法にたどり着くまでのプロセスだ。Local LLM の“理想”と“現実”の間で揺れながら、私は何を感じ、どう判断したのか。<br>その実体験を、詳しく紹介したい。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="678" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/LM-Studio-Models-2026-04-27-800x678.png" alt="LM Studio Models" class="wp-image-13988" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/LM-Studio-Models-2026-04-27-800x678.png 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/LM-Studio-Models-2026-04-27-500x424.png 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/LM-Studio-Models-2026-04-27-300x254.png 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/LM-Studio-Models-2026-04-27-768x651.png 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/LM-Studio-Models-2026-04-27.png 1146w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">LLM 一覧（26/04/27）</figcaption></figure>



<p><strong>&#x2714;<span class="blue">Q5_K_M </span>があるなら、必ず Q5_K_M を選ぶ</strong><br><strong>&#x2714; Q5 が無い場合 → <span class="green"><span class="bold-green">Q4_K_M </span></span>を選ぶ（_S は避ける）</strong></p>



<p><strong>&#x2714; 作者は “<span class="bold-blue">bartowski </span>&gt; <span class="bold-green">mmnga</span> &gt; unsloth &gt; <span class="bold-red">その他</span>” の順で信頼性が高い</strong></p>



<p><strong>量子化の品質並び：</strong><br><strong>精度の高さ：Q5_K_L ＞ <span class="bold-blue">Q5_K_M</span> ＞ Q5_K_S ＞ <span class="bold-green">Q4_K_M</span> ＞ Q4_K_S ＞ Q3</strong></p>



<p><strong>しかし Ryzen AI9<span class="badge-blue"><span class="bold">HX470（32GB RAM）</span></span>では：</strong><br><strong>• &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Q5_K_<span class="bold-red">L → 重すぎて危険</span></strong><br><strong>• &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="bold-blue">Q5_K_M → 最適</span></strong><br><strong>• &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Q5_K_<span class="bold-red">S → 精度が落ちる</span></strong><br><strong>• &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="bold-green">Q4_K_M → 軽くて精度もそこそこ（安全）</span></strong><br><strong>• &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Q4_K_<span class="bold-red">S → 精度が落ちる（非推奨）</span></strong><br><strong>だから <span class="bold-blue">Q5</span> が無い場合は <span class="bold-green">Q4_K_M</span> が最適。</strong></p>



<h2 class="wp-block-heading"><span id="toc1">なぜ Local LLM に挑んだのか</span></h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-10-800x533.jpg" alt="Local LLM" class="wp-image-13908" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-10-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-10-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-10-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-10-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-10.jpg 1056w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">ローカルLLMのメリット</figcaption></figure>



<p>クラウド型の生成AIは便利だが、時に“もっともらしい嘘”を返してくる。<br>私はこの問題に長く悩まされてきた。</p>



<p>そこで考えたのが、<br><strong>「ならば自分のPCで動く Local LLM ならどうだろう？」</strong><br>という発想だった。</p>



<ul class="wp-block-list">
<li>データを外部に送らない</li>



<li>モデルを自由に選べる</li>



<li>量子化も変えられる</li>



<li>そして“嘘”が減る可能性がある</li>
</ul>



<p>こうした期待から、私は LM Studio を使って Local LLM の検証を始めた。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-20-800x533.jpg" alt="Local LLM" class="wp-image-13909" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-20-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-20-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-20-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-20-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-20.jpg 1056w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">ローカルLLM入門：その理由と方法</figcaption></figure>



<p>第1章では、生成AIが抱える「嘘」や「幻覚」という根本的な問題、そしてそれを避けるために私が Local LLM に目を向けた理由を書いた。<br>クラウドAIの便利さと危うさ、その両方を理解したうえで、私は“自分の手元で動くAI”に可能性を感じた。</p>



<p>しかし、Local LLM を導入したからといって、すべてが魔法のように解決するわけではない。<br>むしろ、実際に使い始めて初めて見えてくる“壁”があった。</p>



<p>モデルの選定、量子化の違い、PDF解析の精度、ページ数による解像度の低下、そしてモデル内部に残る“前の文書の記憶”。<br>Local LLM は強力だが、万能ではない。<br>その限界と向き合いながら、どう使いこなしていくか──ここからが本当の勝負だった。</p>



<p>そこで第2章では、私が実際に行った検証の記録をまとめる。<br>複数のモデルを試し、PDFを読み込ませ、精度の落ちるポイントを見極め、そして最終的に「AIとの共生」に必要な運用方法にたどり着くまでのプロセスだ。</p>



<p>Local LLM の“理想”と“現実”の間で揺れながら、私は何を感じ、どう判断したのか。<br>その実体験を、次の章で詳しく紹介したい。</p>



<h2 class="wp-block-heading"><span id="toc2">モデル選定：14B クラスの限界と可能性</span></h2>



<p>・・・色々試してみて（<span class="bold">Gemma 2 9B Instruct  SPPO Iter3 Q5_K_S 9B </span>では、ある程度うまく行った。しかし長文のpdfとなると限界があった）<br>ここで、最後に選んだのは、<br><strong>DeepSeek-R1-Distill-Qwen-14B-GGUF（mmnga）Q5_K_M</strong>。</p>



<p>選んだ理由は明確だった。</p>



<ul class="wp-block-list">
<li>日本語最適化が強い</li>



<li>事実抽出に強い</li>



<li>R1系の推論強化で論理性が高い</li>



<li>32GB RAM でも動く</li>



<li>Q5_K_M 量子化で精度が高い</li>
</ul>



<p>Copilot と Gemini の両方が推奨してきたこともあり、<br>「これならいける」と思った。</p>



<p>実際、<strong>ページ数の少ないPDFでは驚くほど正確</strong>だった。</p>



<h2 class="wp-block-heading"><span id="toc3">実際の取り組み：PDF解析で起きたこと</span></h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-30-800x533.jpg" alt="Local LLM" class="wp-image-13911" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-30-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-30-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-30-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-30-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-30.jpg 1056w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">データセグメンテーション と　キャッシュクリア</figcaption></figure>



<p>私が扱ったPDFは、単なる文章ではない。</p>



<ul class="wp-block-list">
<li>Discord DMログ</li>



<li>メール</li>



<li>時系列資料</li>



<li>前提条件</li>



<li>英日混在</li>



<li>固有名詞・ID・ハンドル名</li>



<li>引用文</li>



<li>会話の流れ</li>
</ul>



<p>これらが複雑に絡み合った“高密度文書”ばかり。</p>



<p>ファイルサイズは小さくても、<strong>1</strong><strong>ページあたりの情報量が異常に多い</strong>。</p>



<p>最初は順調だったが、<br><strong>ページ数が増えると突然、解像度が落ち始めた。</strong></p>



<h2 class="wp-block-heading"><span id="toc4">直面した“解像度の壁”と原因</span></h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-40-800x533.jpg" alt="Local LLM" class="wp-image-13912" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-40-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-40-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-40-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-40-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-40.jpg 1056w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">統合分析</figcaption></figure>



<p>20ページのPDFを読み込ませたとき、<br>明らかに精度が30％程度まで落ちた。</p>



<ul class="wp-block-list">
<li>文脈が飛ぶ</li>



<li>重要な記述が抜ける</li>



<li>前のPDFの内容が混ざる</li>



<li>時系列が崩れる</li>
</ul>



<p>原因は明確だった。</p>



<h3 class="wp-block-heading"><span id="toc5">&#x2714; 14Bモデルの context window の限界</span></h3>



<p>高密度PDFは、20ページでも実質40〜60ページ分の負荷になる。</p>



<h3 class="wp-block-heading"><span id="toc6">&#x2714; attention の限界</span></h3>



<p>英日混在・DMログ・引用文は attention を大量に消費する。</p>



<h3 class="wp-block-heading"><span id="toc7">&#x2714; モデル内部のキャッシュ残留</span></h3>



<p>前のPDFの内容が混ざるのは、まさにこれ。</p>



<p>私は仕方なく、(直感的に)<br><strong>モデルを eject </strong><strong>→</strong><strong> </strong><strong>新スレッド </strong><strong>→</strong><strong> </strong><strong>再読み込み</strong><br>という作業を繰り返した。</p>



<p>正しい対処だが、正直かなり面倒だった。・・・これは、後からCopiltに聞いてみたが、Copilotも「<strong>モデルを eject → 新スレッド → 再読み込み</strong>」を正しい対処方法だと認めた。</p>



<h2 class="wp-block-heading"><span id="toc8">&nbsp;64GB RAM を検討した理由と現実的な結論</span></h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-50-800x533.jpg" alt="Local LLM" class="wp-image-13913" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-50-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-50-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-50-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-50-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-50.jpg 1056w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">パフォーマンスの最適化</figcaption></figure>



<p>「メモリを増やせば解決するのでは？」<br>そう思って調べたが、現実は違った。</p>



<h3 class="wp-block-heading"><span id="toc9">&#x274c; 14Bモデルの読解精度は RAM を増やしても変わらない</span></h3>



<p>理由は、<br><strong>モデル構造そのものが限界を決めている</strong>から。</p>



<p>ただし、64GBにすれば</p>



<ul class="wp-block-list">
<li>32Bモデルが動く</li>



<li>スワップが消える</li>



<li>安定性が上がる</li>
</ul>



<p>というメリットはある。</p>



<p>しかし、<br><strong>DDR5-5600 64GB </strong><strong>が12万円</strong><br>という現実(去年の今頃の３～４倍の価格)を見て、私は冷静になった。</p>



<h2 class="wp-block-heading"><span id="toc10">Local LLM と共生するための運用戦略</span></h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-60-800x533.jpg" alt="Local LLM" class="wp-image-13906" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-60-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-60-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-60-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-60-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/Local-LLMs-60.jpg 1056w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">Local LLM</figcaption></figure>



<p>最終的にたどり着いた結論はこれ。</p>



<h3 class="wp-block-heading"><span id="toc11">&#x2714; 1〜3ページ単位で分割</span></h3>



<h3 class="wp-block-heading"><span id="toc12">&#x2714; 各チャンクを独立スレッドで処理</span></h3>



<h3 class="wp-block-heading"><span id="toc13">&#x2714; system prompt で強制リセット</span></h3>



<h3 class="wp-block-heading"><span id="toc14">&#x2714; 最後に人間（私）が統合・補完する</span></h3>



<p>これが最も安定し、コストもかからない。</p>



<h2 class="wp-block-heading"><span id="toc15">そして気づいた事：AIは“補助”、判断は人間がする</span></h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="600" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/IMG_6299-800x600.jpeg" alt="Local LLM　環境" class="wp-image-13914" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/IMG_6299-800x600.jpeg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/IMG_6299-500x375.jpeg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/IMG_6299-300x225.jpeg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/IMG_6299-768x576.jpeg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/IMG_6299-1536x1152.jpeg 1536w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/IMG_6299-2048x1536.jpeg 2048w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">Ryzen AI9 HX470 DDR5-5600 RAM 32GB + m,2 SSD 1TB + USB4接続　m,2 SSD 1TB</figcaption></figure>



<p>Local LLM は強力だが万能ではない。<br>特に、私のように“高密度PDF”を扱う場合、<br>AIだけに任せるのは無理がある。</p>



<p>しかし、<br><strong>AI</strong><strong>が抽出した情報を人間が補完する</strong><br>この組み合わせは非常に強い。</p>



<p>私は今回の経験を通じて、<br>「AIとの共生」とは、<br><strong>AI</strong><strong>に任せすぎず、AIを道具として正しく扱うこと</strong><br>だと実感した。</p>



<div class="wp-block-media-text is-stacked-on-mobile"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="800" height="228" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/LM-Studio-Graphic-800x228.png" alt="LM Studio" class="wp-image-13919 size-full" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/LM-Studio-Graphic-800x228.png 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/LM-Studio-Graphic-500x143.png 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/LM-Studio-Graphic-300x86.png 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/LM-Studio-Graphic-768x219.png 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/LM-Studio-Graphic.png 858w" sizes="(max-width: 800px) 100vw, 800px" /></figure><div class="wp-block-media-text__content">
<p>LM Studio Graphic<br>high performanceのRadeon 890M Graphics を有効化</p>



<p></p>
</div></div>



<div class="wp-block-media-text is-stacked-on-mobile"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="620" height="191" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/Ryzen-AI9-HX470-NPU.png" alt="Ryzen AI9 HX470 NPU" class="wp-image-13920 size-full" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/Ryzen-AI9-HX470-NPU.png 620w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/Ryzen-AI9-HX470-NPU-500x154.png 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/Ryzen-AI9-HX470-NPU-300x92.png 300w" sizes="(max-width: 620px) 100vw, 620px" /></figure><div class="wp-block-media-text__content">
<p>LM Studio では現在 NPU 利用設定は無い(残念:利用できない）<br>TechPowerUp： “This processor is equipped with a Neural Processing Unit (NPU) that comes with a performance rating of up to 55 TOPS.”</p>



<p></p>
</div></div>



<p>そして、新たなアプローチへ</p>



<h2 class="wp-block-heading"><span id="toc16">Batch化</span></h2>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">

<a href="https://xn--ecka7j.biz/efficiency-vs-thought-ai-symbiosis/13954/" title="&#x1f310;ローカルLLMをGUIからCLIへ：UbuntuでPDF自動翻訳バッチを運用するための考え方" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="320" height="180" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/00-From-GUI-to-CLI-320x180.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/00-From-GUI-to-CLI-320x180.jpg 320w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/00-From-GUI-to-CLI-120x68.jpg 120w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/00-From-GUI-to-CLI-160x90.jpg 160w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">&#x1f310;ローカルLLMをGUIからCLIへ：UbuntuでPDF自動翻訳バッチを運用するための考え方</div><div class="blogcard-snippet internal-blogcard-snippet">GUI中心のLM Studioから、Ubuntu上のCLI運用へローカルLLMをシフトし、PDF自動翻訳バッチをどのように設計するかを整理。ocrmypdfとllama-cli、DeepSeek-R1やGemma4を用いながら、IBM i 的な運用思想でAIを「使う」から「共に動かす」へ移行する道筋を解説。Ryzen AI 9 HX470</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://xn--ecka7j.biz" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">イイネ.biz</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2026.05.16</div></div></div></div></a>
</div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">

<a href="https://xn--ecka7j.biz/efficiency-vs-thought-ai-symbiosis/14021/" title="AIとの共生:Geminiの迷走からCopilotとの協働へ─要求設計・外部設計・内部設計・プログラミング・バッチ運用までをAIと共に歩んだ21日間の記録" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="320" height="180" src="https://xn--ecka7j.biz/wp-content/uploads/2026/05/AI-coexistence-21-da-320x180.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/05/AI-coexistence-21-da-320x180.jpg 320w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/AI-coexistence-21-da-120x68.jpg 120w, https://xn--ecka7j.biz/wp-content/uploads/2026/05/AI-coexistence-21-da-160x90.jpg 160w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">AIとの共生:Geminiの迷走からCopilotとの協働へ─要求設計・外部設計・内部設計・プログラミング・バッチ運用までをAIと共に歩んだ21日間の記録</div><div class="blogcard-snippet internal-blogcard-snippet">Geminiの暴走と迷走に苦しんだ開発者が、Copilotと共に「要求設計→外部設計→内部設計→プログラミング→バッチ運用」まで AI と協働し、PDF英文マニュアルの翻訳バッチを完成させるまでの21日間を記録。AIと安全に共生するための最重要ポイントを技術者視点で解説。Ryzen AI 9 HX470</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://xn--ecka7j.biz" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">イイネ.biz</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2026.05.17</div></div></div></div></a>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AIとの共生：生成AIは嘘をつく、だから Local LLMを使ってみた</title>
		<link>https://xn--ecka7j.biz/efficiency-vs-thought-ai-symbiosis/13888/</link>
		
		<dc:creator><![CDATA[Jun-N]]></dc:creator>
		<pubDate>Sat, 04 Apr 2026 06:28:32 +0000</pubDate>
				<category><![CDATA[AI共生]]></category>
		<category><![CDATA[AIとの共生]]></category>
		<category><![CDATA[Copilot]]></category>
		<category><![CDATA[Gemini]]></category>
		<guid isPermaLink="false">https://xn--ecka7j.biz/?p=13888</guid>

					<description><![CDATA[AI 生成AIを利用する際に最も重要なのは、AIを誘導しないことである。ユーザーが意識していないと、AIは欠損した情報を補完し、もっともらしい文章を生成する。以前の記事でも触れたように、存在しない製品の型番や仕様を提示す [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>AI</p>



<p>生成AIを利用する際に最も重要なのは、<strong>AIを誘導しないこと</strong>である。<br>ユーザーが意識していないと、AIは欠損した情報を補完し、もっともらしい文章を生成する。<br>以前の記事でも触れたように、存在しない製品の型番や仕様を提示するケースが確認されている。</p>



<p>これは特定のモデルに限らず、生成AI全般に共通する構造的な特性である。</p>



<p>本稿では、LM Studio を用いて複数の Local LLM を検証した結果をもとに、<br>生成AIの特性と、AIとの共生に必要な視点を整理する。</p>



<p><br>だから私は、AI の癖を自分で確かめるために <strong>Local LLM</strong><strong>（ローカルAI）</strong> を使い始めた。<br>LM Studio を使えば、複数のモデルを切り替えながら、<br>それぞれの“得意分野”を自分の目で確かめられる。</p>



<p>Gemma、Swallow、Unhinged…それぞれのモデルには癖があり、得意不得意がある。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/10e8fcb6731e2773ae0a1021fc3e8804-800x533.jpg" alt="" class="wp-image-13887" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/10e8fcb6731e2773ae0a1021fc3e8804-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/10e8fcb6731e2773ae0a1021fc3e8804-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/10e8fcb6731e2773ae0a1021fc3e8804-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/10e8fcb6731e2773ae0a1021fc3e8804-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/10e8fcb6731e2773ae0a1021fc3e8804.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<h2 class="wp-block-heading"><span id="toc1">AIを使う上での注意事項</span></h2>



<p>生成AIは「事実を保持する装置」ではなく、「自然な文章を生成する装置」である。<br>そのため、質問の構造や文脈に依存して、存在しない情報を補完する挙動が発生する。</p>



<p>AIは「事実を知っている存在」ではない。<br>AIは、膨大なデータから <strong>“</strong><strong>最も自然に見える文章</strong><strong>”</strong> を生成する装置であり、<br>そこに真実性の保証はない。</p>



<ul class="wp-block-list">
<li>誘導すると、AIはその方向に合わせて物語を作る</li>



<li>決めつけ質問をすると、AIは“穴埋め”を始める</li>



<li>引用や参照を丸投げすると、AIは存在しない情報を補完する</li>
</ul>



<p>だからこそ、AIを使う側には<br><strong>「決めつけない」「誘導しない」「断定しない」</strong><br>という姿勢が求められる。</p>



<h3 class="wp-block-heading"><span id="toc2">◆ 会話パート（検証ログ）※</span></h3>



<p><strong><span class="bold-red">※</span></strong>. “補助的な会話”として構成しています。</p>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="99" height="97" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/User-99-97.png" alt="" class="wp-image-13846 size-full"/></figure><div class="wp-block-media-text__content">
<p>「この型番は実在するのか。」</p>
</div></div>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="99" height="94" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/AI-99-94.png" alt="" class="wp-image-13859 size-full"/></figure><div class="wp-block-media-text__content">
<p>「はい。2021年に発売されています。」</p>
</div></div>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="99" height="97" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/User-99-97.png" alt="" class="wp-image-13846 size-full"/></figure><div class="wp-block-media-text__content">
<p>「検索結果に該当製品が存在しない。情報源は。」</p>
</div></div>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="99" height="94" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/AI-99-94.png" alt="" class="wp-image-13859 size-full"/></figure><div class="wp-block-media-text__content">
<p>「文脈から推測し、自然な回答として生成しました。」</p>
</div></div>



<div class="wp-block-group is-style-information-box is-layout-constrained wp-block-group-is-layout-constrained">
<p>このように、AIは欠損情報を“埋める”方向に動作する。<br>したがって、質問者側が <strong>決めつけ・誘導・断定</strong> を避けることが重要となる。</p>
</div>



<p>以下は、<strong>Bard</strong>時代に書いたBlogではあるが、<strong>Gemini</strong>になっても基本的には変わっていない。<strong><span class="bold-red">※</span></strong></p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">

<a href="https://xn--ecka7j.biz/toolboox/chatgpt/9278/" title="生成AIは、存在しない製品の仕様を載せてくる。どこからの情報か？？？" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="320" height="180" src="https://xn--ecka7j.biz/wp-content/uploads/2024/03/VDSL07-320x180.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://xn--ecka7j.biz/wp-content/uploads/2024/03/VDSL07-320x180.png 320w, https://xn--ecka7j.biz/wp-content/uploads/2024/03/VDSL07-500x281.png 500w, https://xn--ecka7j.biz/wp-content/uploads/2024/03/VDSL07-800x450.png 800w, https://xn--ecka7j.biz/wp-content/uploads/2024/03/VDSL07-300x169.png 300w, https://xn--ecka7j.biz/wp-content/uploads/2024/03/VDSL07-768x432.png 768w, https://xn--ecka7j.biz/wp-content/uploads/2024/03/VDSL07-120x68.png 120w, https://xn--ecka7j.biz/wp-content/uploads/2024/03/VDSL07-160x90.png 160w, https://xn--ecka7j.biz/wp-content/uploads/2024/03/VDSL07.png 1280w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">生成AIは、存在しない製品の仕様を載せてくる。どこからの情報か？？？</div><div class="blogcard-snippet internal-blogcard-snippet">ネットが不調YouTubeはローディングスピナー状態でBGM途切れ、他サイトアクセスは「サイトにアクセスできません.～ DNS アドレスが見つかりません」とか「サイトにアクセスできません.～サーバーの IP アドレスが見つかりませんでした」とかに度々なる。ルーターは24時間つけっぱなしで6年目そろそろ寿命？11ax規格のに入替たが改善しない。そこでVDSL装置に着目。これは7年目のレンタル品、新しい規格品に交換してもらう為にGeminiに質問･･･ところが！</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://xn--ecka7j.biz" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">イイネ.biz</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2024.03.22</div></div></div></div></a>
</div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">

<a href="https://xn--ecka7j.biz/toolboox/chatgpt/8916/" title="生成AIは嘘をつく!? Bardにジックリ聞いてみた結果" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="320" height="180" src="https://xn--ecka7j.biz/wp-content/uploads/2024/01/AI_Bard-320x180.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://xn--ecka7j.biz/wp-content/uploads/2024/01/AI_Bard-320x180.png 320w, https://xn--ecka7j.biz/wp-content/uploads/2024/01/AI_Bard-120x68.png 120w, https://xn--ecka7j.biz/wp-content/uploads/2024/01/AI_Bard-160x90.png 160w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">生成AIは嘘をつく!? Bardにジックリ聞いてみた結果</div><div class="blogcard-snippet internal-blogcard-snippet">１回の質問で同時に３つの回答の間に矛盾と問題があります。問題１は、それぞれの回答間における矛盾チェックをしていないことです。少なくとも同時回答なら矛盾チェックは必要かと思います。そして、最も大きな問題（回答２）は、大きな嘘が、もちろん、AIが悪意を持ってうそをついたのではないということですが、使う側と、提供する側の課題があります。人がコントロールしている(AIは意識・意志を持っていない)限りそんなことか起こるのは限られた部分のハズです。だから、AIも使い方次第となると思います。（責任は生み出す側の人間にあります。）全ては人間側の責任です。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://xn--ecka7j.biz" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">イイネ.biz</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2024.01.11</div></div></div></div></a>
</div>



<p><span class="bold-red">※</span>. これは <strong>Gemini </strong>だけの問題ではなく、クラウド型 AI 全般に共通する「構造的な性質」だ。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="330" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/fd074cc516625aca099f1f2b5f5dd57b-800x330.jpg" alt="" class="wp-image-13850" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/fd074cc516625aca099f1f2b5f5dd57b-800x330.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/fd074cc516625aca099f1f2b5f5dd57b-500x206.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/fd074cc516625aca099f1f2b5f5dd57b-300x124.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/fd074cc516625aca099f1f2b5f5dd57b-768x317.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/fd074cc516625aca099f1f2b5f5dd57b.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<h2 class="wp-block-heading"><span id="toc3">生成AIはなぜ嘘をつくのか</span></h2>



<p>AIが虚偽情報を生成する理由は、悪意ではなく構造的な問題である。</p>



<ul class="wp-block-list">
<li>AIは確率的に自然な文章を生成する</li>



<li>事実確認機能は持たない</li>



<li>欠損情報は補完される</li>



<li>安全フィルタの有無により挙動が変化する</li>
</ul>



<h3 class="wp-block-heading"><span id="toc4">◆ 会話パート（検証ログ）※</span></h3>



<p><strong><span class="bold-red">※</span></strong>. “補助的な会話”として構成しています。</p>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="99" height="97" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/User-99-97.png" alt="" class="wp-image-13846 size-full"/></figure><div class="wp-block-media-text__content">
<p>「存在しない仕様を提示した理由を説明してほしい。」</p>
</div></div>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="99" height="94" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/AI-99-94.png" alt="" class="wp-image-13859 size-full"/></figure><div class="wp-block-media-text__content">
<p>「質問文の構造から、必要と判断した情報を補完しました。」</p>
</div></div>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="99" height="97" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/User-99-97.png" alt="" class="wp-image-13846 size-full"/></figure><div class="wp-block-media-text__content">
<p>「事実確認は行っていないということか。」</p>
</div></div>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="99" height="94" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/AI-99-94.png" alt="" class="wp-image-13859 size-full"/></figure><div class="wp-block-media-text__content">
<p>「はい。私は事実検証機能を持ちません。」</p>
</div></div>



<div class="wp-block-group is-style-memo-box is-layout-constrained wp-block-group-is-layout-constrained">
<p>AIの回答は“仮説”として扱うべきであり、<br>真偽の判断は利用者側が行う必要がある。</p>
</div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="1200" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/6188b79ccd76ee9783c6ff1890ba99e5-800x1200.jpg" alt="" class="wp-image-13886" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/6188b79ccd76ee9783c6ff1890ba99e5-800x1200.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/6188b79ccd76ee9783c6ff1890ba99e5-500x750.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/6188b79ccd76ee9783c6ff1890ba99e5-300x450.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/6188b79ccd76ee9783c6ff1890ba99e5-768x1152.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/6188b79ccd76ee9783c6ff1890ba99e5.jpg 1024w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<h2 class="wp-block-heading"><span id="toc5">Local LLM を使ってみた理由</span></h2>



<div class="wp-block-group is-style-information-box is-layout-constrained wp-block-group-is-layout-constrained">
<p>クラウドAIは利便性が高い一方で、内部処理や安全フィルタがブラックボックス化している。<br>これに対し、Local LLM はモデルの挙動が比較的透明であり、<br>AIの限界や癖を観察するのに適している。</p>
</div>



<h3 class="wp-block-heading"><span id="toc6">LM Studio を使うと</span></h3>



<ul class="wp-block-list">
<li>モデルごとの“嘘の傾向”が比較できる</li>



<li>日本語の癖、推論の癖、画像認識の癖が分かる</li>



<li>クラウドAIでは見えない“内部の挙動”が見える</li>
</ul>



<div class="wp-block-group is-style-memo-box is-layout-constrained wp-block-group-is-layout-constrained">
<p>AIを安全に使うには、<br><strong>AI</strong><strong>の限界を自分で確かめる経験</strong> が不可欠だ。</p>
</div>



<h3 class="wp-block-heading"><span id="toc7">◆ 会話パート（検証ログ）※</span></h3>



<p><strong>※</strong>. “補助的な会話”として構成しています。</p>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="99" height="97" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/User-99-97.png" alt="" class="wp-image-13846 size-full"/></figure><div class="wp-block-media-text__content">
<p>「クラウドAIとローカルAIの挙動差は。」</p>
</div></div>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="150" height="100" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/AI-Local-LLM-Image-0150-0100-1.png" alt="" class="wp-image-13870 size-full"/></figure><div class="wp-block-media-text__content">
<p>「私はPC上で動作しているため、内部処理が比較的透明です。」</p>
</div></div>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="99" height="97" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/User-99-97.png" alt="" class="wp-image-13846 size-full"/></figure><div class="wp-block-media-text__content">
<p>ローカルモデルのほうが癖を観察しやすいという理解でよいか。」</p>
</div></div>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:16% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="150" height="100" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/AI-Local-LLM-Image-0150-0100.png" alt="" class="wp-image-13851 size-full"/></figure><div class="wp-block-media-text__content">
<p>「その通りです。」</p>
</div></div>



<div class="wp-block-group is-style-memo-box is-layout-constrained wp-block-group-is-layout-constrained">
<p>Local LLM は、AIの特性を理解するための“観察環境”として有効である。</p>
</div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="371" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/1803aba6a7829136037b854011946991-1-800x371.jpg" alt="" class="wp-image-13855" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/1803aba6a7829136037b854011946991-1-800x371.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/1803aba6a7829136037b854011946991-1-500x232.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/1803aba6a7829136037b854011946991-1-300x139.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/1803aba6a7829136037b854011946991-1-768x357.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/1803aba6a7829136037b854011946991-1.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<h2 class="wp-block-heading"><span id="toc8">LM Studioで試したモデルの特徴</span></h2>



<p>LM Studio 上で検証したモデルの特徴を、技術的観点から整理する。</p>



<div class="wp-block-media-text is-stacked-on-mobile"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/AI-Local-LLM-Swallow-Image-1536-1024-800x533.jpg" alt="" class="wp-image-13862 size-full" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/AI-Local-LLM-Swallow-Image-1536-1024-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/AI-Local-LLM-Swallow-Image-1536-1024-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/AI-Local-LLM-Swallow-Image-1536-1024-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/AI-Local-LLM-Swallow-Image-1536-1024-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/AI-Local-LLM-Swallow-Image-1536-1024.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /></figure><div class="wp-block-media-text__content">
<p><strong>Llama-3.1-Swallow-8B</strong></p>



<ul class="wp-block-list">
<li>日本語の自然な言い回しに強み</li>



<li>創作、メール、翻訳に適する</li>



<li>論理・理数系は並</li>



<li>開発元は「東工大・産総研」</li>
</ul>



<p>文書引用：「日本語の自然な言い回し」</p>
</div></div>



<p>但し、難しい投げかけをしたら<span class="bold">32GB</span>のRAM使用率<span class="bold">85%</span>で<span class="bold-red">Loop</span>した。</p>



<div class="wp-block-media-text is-stacked-on-mobile"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/AI-Local-LLM-Gemma-Image-1536-1024-800x533.jpg" alt="" class="wp-image-13864 size-full" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/AI-Local-LLM-Gemma-Image-1536-1024-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/AI-Local-LLM-Gemma-Image-1536-1024-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/AI-Local-LLM-Gemma-Image-1536-1024-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/AI-Local-LLM-Gemma-Image-1536-1024-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/AI-Local-LLM-Gemma-Image-1536-1024.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /></figure><div class="wp-block-media-text__content">
<p><strong>Gemma-2-9B-Instruct</strong></p>



<ul class="wp-block-list">
<li>小型モデルとしては高い推論性能</li>



<li>コード生成、論理パズルに強い</li>



<li>日本語はやや翻訳調</li>
</ul>



<p>文書引用：「同サイズで最高峰の知能」</p>
</div></div>



<p>SwallowでLoopしたものを、わずか数秒で回答してくれた。</p>



<div class="wp-block-media-text is-stacked-on-mobile"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/AI-Local-LLM-Unhinged-Image-1536-1024-800x533.jpg" alt="" class="wp-image-13860 size-full" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/AI-Local-LLM-Unhinged-Image-1536-1024-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/AI-Local-LLM-Unhinged-Image-1536-1024-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/AI-Local-LLM-Unhinged-Image-1536-1024-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/AI-Local-LLM-Unhinged-Image-1536-1024-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/AI-Local-LLM-Unhinged-Image-1536-1024.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /></figure><div class="wp-block-media-text__content">
<p><strong>Llama-3.1-Unhinged-Vision-8B</strong></p>



<ul class="wp-block-list">
<li>安全フィルタを撤廃したモデル</li>



<li>拒絶せず、何でも回答する傾向</li>



<li>画像解析能力は高い</li>



<li>真実性の担保は困難</li>
</ul>



<p>文書引用：「倫理的にNGなことでも『何でもそれっぽく答えてしまう』」</p>
</div></div>



<p>確かに画像解析は抜群、しかし後半はモデルを切り替えてSwallowに任せようとしてLoopし、最終的にはGemmaで・・・<br><span class="bold-red">p.s.</span><br><strong>Llama-3.1-Unhinged-Vision-8B</strong> でPDFファイルを読み込ませていて<span class="bold-red">失敗！</span><br><strong><span class="blue">ファイルから情報を記録せよ。重複した情報がある場合はスキップせよ。記録出来たら、モデル名とファイル名を告げ「記録できました」とだけ答えよ。<span class="bold-red"> 記録できました。</span></span></strong>・・・<span class="bold">11ファイル</span>分繰り返した後、12ファイル目で<span class="bold">先に進めなくなった</span>（<span class="bold-red">アップロードが無視された</span>）ので、「<strong>現在までに読み込みを終えているファイル名を順番を付けて一覧表示せよ</strong>」と指示したら、「<strong>1. No-0000-Premise-前提.pdf  2.No-2026-02-12-DM-#community-support.pdf</strong>」の<span class="bold-red">２つのみ</span>、理由を聞いても「「<span class="bold">2つしか認識していない理由</span>」については、<span class="bold">提供されたファイルにそのような記述は見つかりませんでした</span>。・・・<span class="bold-red">以上のように、提供されたファイルには「2つしか認識していない理由」に関する記述は見つからないため、詳細な回答はできません。</span>」などと取り付く島もない。・・・なんと</p>



<hr>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-800x533.jpg" alt="" class="wp-image-13876 size-full" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/cb289186ac04d8808b6699caaf84f211-2.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /></figure><div class="wp-block-media-text__content">
<p><span class="bold-blue">Geminiに聞いてみた</span><br>Geminiの回答<br><strong>具体的には、以下の3つの可能性が高いです。</strong></p>



<p><strong>1. 記憶の「上書き」と「喪失」</strong><br><strong>このモデルは、対話を重ねるごとに古い情報を忘れる、あるいは「今、目の前にある指示」を最優先する傾向があります。</strong></p>



<p><strong>シナリオ11で「時系列で記録せよ」という強い指示を与えた直後に一覧表示を求めたため、最初（前提）</strong>と<strong>最後（直近）</strong>の情報だけがメモリに残り、中間のシナリオ2〜10が「重複や不要な情報」としてパージ（削除）された可能性があります。</p>



<p><strong>2. PDF読み込みの不完全性</strong><br>「記録できました」という回答は、必ずしも「ファイル内容のすべてを長期記憶に定着させた」ことを意味しません。</p>



<ul class="wp-block-list">
<li>特に<span class="bold">「unhinged」系</span>などの派生モデルは、その場の応答を優先して「読み込んだふり（ハルシネーション）」をする場合があります。実際には、システム側で一度に処理できるファイル数やトークン量を超えており、直近のものしかアクティブなメモリに保持できていなかったと考えられます。</li>
</ul>



<p><strong>3. 「重複スキップ」指示の誤作動</strong><br>指示に「重複した情報がある場合はスキップせよ」と含めたことで、モデルが<strong>「似たような形式のPDF読み込み作業そのもの」を重複と見なし</strong>、内部的に情報を統合または切り捨ててしまった可能性があります。その結果、最初と最後しか残らなかったという現象です。</p>
</div></div>



<h3 class="wp-block-heading"><span id="toc9">最適モデルを探す</span></h3>



<div class="wp-block-group is-style-memo-box is-layout-constrained wp-block-group-is-layout-constrained">
<p>Geminiに「PDFファイルで画像と文字を認識させるのに最適なモデルを教えて」と聞いて、今回の目的に合った２つを教えてもらう。<br>PDF解析においてより重要なのは<strong>「マルチモーダル（画像と文字を同時に扱う力）」</strong>と<strong>「コンテキストウィンドウ（記憶容量）」</strong>、そして<strong>「ハルシネーション（嘘）の少なさ」</strong>です。</p>
</div>



<div class="wp-block-group is-style-information-box is-layout-constrained wp-block-group-is-layout-constrained">
<p>現在のAIモデルの中で、PDF資料の解析に最も適しているのは以下のモデルです。<br><strong>1. <strong>Qwen2-VL-7B-Instruct（最優先）</strong></strong><br><strong>2. <strong>Pixtral-12B</strong></strong></p>
</div>



<p>検索すると<span class="bold">Qwen2-VL-7b</span>は、数が多い（<span class="bold">GGUF</span>のどれが良いかとGemini聞く候補は２つ）</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="694" height="716" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/Qwen2-VL-7b.png" alt="" class="wp-image-13901" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/Qwen2-VL-7b.png 694w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/Qwen2-VL-7b-500x516.png 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/Qwen2-VL-7b-300x310.png 300w" sizes="(max-width: 694px) 100vw, 694px" /></figure>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:43% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/f5601c219dbfe3ae9115026da7f0e46e-800x533.jpg" alt="" class="wp-image-13895 size-full" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/f5601c219dbfe3ae9115026da7f0e46e-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/f5601c219dbfe3ae9115026da7f0e46e-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/f5601c219dbfe3ae9115026da7f0e46e-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/f5601c219dbfe3ae9115026da7f0e46e-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/f5601c219dbfe3ae9115026da7f0e46e.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /></figure><div class="wp-block-media-text__content">
<p><code><strong>bartowski/Qwen2.5-VL-7B-Instruct-GGUF</strong></code><br><strong>理由:</strong> <code>bartowski</code>氏はGGUF作成において非常に信頼性が高く、量子化の品質が安定しています。Qwen2.5はQwen2の正統進化版で、画像の文字認識精度がさらに高まっています</p>
</div></div>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="532" height="85" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/2c42cb8aa22276d2ed11f4ca45b4b7e2.png" alt="" class="wp-image-13896" style="width:800px;height:auto" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/2c42cb8aa22276d2ed11f4ca45b4b7e2.png 532w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/2c42cb8aa22276d2ed11f4ca45b4b7e2-500x80.png 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/2c42cb8aa22276d2ed11f4ca45b4b7e2-300x48.png 300w" sizes="(max-width: 532px) 100vw, 532px" /></figure>



<div class="wp-block-group is-style-alert-box is-layout-constrained wp-block-group-is-layout-constrained">
<p>只今、D/L中</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="511" height="133" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/b2bd0286c29d0da7fbfe1634891d461a.png" alt="" class="wp-image-13898" style="width:757px;height:auto" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/b2bd0286c29d0da7fbfe1634891d461a.png 511w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/b2bd0286c29d0da7fbfe1634891d461a-500x130.png 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/b2bd0286c29d0da7fbfe1634891d461a-300x78.png 300w" sizes="(max-width: 511px) 100vw, 511px" /></figure>
</div>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:44% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/lmstudio-community_Q-800x533.jpg" alt="" class="wp-image-13897 size-full" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/lmstudio-community_Q-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/lmstudio-community_Q-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/lmstudio-community_Q-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/lmstudio-community_Q-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/lmstudio-community_Q.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /></figure><div class="wp-block-media-text__content">
<p>次点の候補</p>



<p><code><strong>lmstudio-community/Qwen2.5-VL-7B-Instruct-GGUF</strong></code><strong>理由:</strong> LM Studio公式に近いコミュニティが提供しているため、動作の互換性が最も保証されています。</p>
</div></div>



<hr>



<div class="wp-block-media-text is-stacked-on-mobile"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="800" height="800" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/a0da917d37409180f5ca87e107ef6b79-800x800.jpg" alt="" class="wp-image-13889 size-full" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/a0da917d37409180f5ca87e107ef6b79-800x800.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/a0da917d37409180f5ca87e107ef6b79-500x500.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/a0da917d37409180f5ca87e107ef6b79-300x300.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/a0da917d37409180f5ca87e107ef6b79-768x768.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/a0da917d37409180f5ca87e107ef6b79-150x150.jpg 150w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/a0da917d37409180f5ca87e107ef6b79.jpg 1024w" sizes="(max-width: 800px) 100vw, 800px" /></figure><div class="wp-block-media-text__content">
<p><strong>LLaVA-v1.5-Llama-3-8B</strong></p>



<ul class="wp-block-list">
<li>旧世代の視覚モデル</li>



<li>写真説明や簡易OCRが可能</li>



<li>日本語能力は低め</li>
</ul>



<p>モデルごとの設計思想の違いが、回答傾向に明確に反映される。</p>
</div></div>



<p>旧世代の視覚モデルということだったので、今回は使用しなかった。　</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/a52a050dcb55856c8c28907c8f00a709-800x533.jpg" alt="" class="wp-image-13885" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/a52a050dcb55856c8c28907c8f00a709-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/a52a050dcb55856c8c28907c8f00a709-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/a52a050dcb55856c8c28907c8f00a709-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/a52a050dcb55856c8c28907c8f00a709-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/a52a050dcb55856c8c28907c8f00a709.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<h2 class="wp-block-heading"><span id="toc10">AIとの共生とは何か</span></h2>



<div class="wp-block-group is-style-alert-box is-layout-constrained wp-block-group-is-layout-constrained">
<p>AIは「正解を保持する存在」ではなく、「仮説生成装置」である。<br>したがって、AIの回答をそのまま採用するのではなく、<br>利用者側が検証を行う前提で運用する必要がある。</p>
</div>



<h3 class="wp-block-heading"><span id="toc11">◆ 会話パート（検証ログ）※</span></h3>



<p><span class="bold-red"><strong>※</strong>.</span> “補助的な会話”として構成しています。</p>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="99" height="97" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/User-99-97.png" alt="" class="wp-image-13846 size-full"/></figure><div class="wp-block-media-text__content">
<p>「AIをどのように扱うべきか。」</p>
</div></div>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:15% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="99" height="94" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/AI-99-94.png" alt="" class="wp-image-13859 size-full"/></figure><div class="wp-block-media-text__content">
<p>「生成結果を仮説として扱い、検証を行うことです。」</p>
</div></div>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:16% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="99" height="97" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/User-99-97.png" alt="" class="wp-image-13846 size-full"/></figure><div class="wp-block-media-text__content">
<p>「引用や推論を任せると。」</p>
</div></div>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:16% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="99" height="94" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/AI-99-94.png" alt="" class="wp-image-13859 size-full"/></figure><div class="wp-block-media-text__content">
<p>「存在しない情報を補完する可能性があります。」</p>
</div></div>



<div class="wp-block-group is-style-ok-box is-layout-constrained wp-block-group-is-layout-constrained">
<p>AIは判断者ではなく、補助的な生成装置として位置づけるべきである。</p>
</div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="533" src="https://xn--ecka7j.biz/wp-content/uploads/2026/04/d83fde453027bdfe5e16ae5b3fd510df-800x533.jpg" alt="" class="wp-image-13884" srcset="https://xn--ecka7j.biz/wp-content/uploads/2026/04/d83fde453027bdfe5e16ae5b3fd510df-800x533.jpg 800w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/d83fde453027bdfe5e16ae5b3fd510df-500x333.jpg 500w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/d83fde453027bdfe5e16ae5b3fd510df-300x200.jpg 300w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/d83fde453027bdfe5e16ae5b3fd510df-768x512.jpg 768w, https://xn--ecka7j.biz/wp-content/uploads/2026/04/d83fde453027bdfe5e16ae5b3fd510df.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<h2 class="wp-block-heading"><span id="toc12">まとめ：AIは嘘をつく。しかし使い方次第で武器になる</span></h2>



<div class="wp-block-group is-layout-constrained wp-block-group-is-layout-constrained">
<p>AIは構造的に虚偽情報を生成する。<br>しかし、これは欠陥ではなく、生成AIの本質的な性質である。</p>



<ul class="wp-block-list">
<li>AIの回答は仮説として扱う</li>



<li>誘導・決めつけを避ける</li>



<li>真偽の判断は利用者が行う</li>



<li>Local LLM は検証環境として有用</li>
</ul>
</div>



<p class="is-style-information-box has-box-style">AIの特性を理解し、適切に運用することで、<br>生成AIは強力なツールとして活用できる。</p>



<p></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
