実験の設計

プロンプト:TXT・Markdown・HTML——出力形式でLLMの品質はどう変わるか(記事内画像)

Redditユーザー /u/BigYoSpeck がSourceに投稿した検証だ。近頃「Claude CodeではMarkdownよりHTMLが有効」という話が出回っている。それがローカルモデルでも成立するか、という問いが出発点である。

モデルはQwen3.6 35B A3B(Q8量子化、F16 KVキャッシュ)。プロンプトは「Blazorのレンダーサイクルを詳しく説明せよ」で固定し、出力形式だけを5パターン変えた。Raw text / Markdown / Unstyled HTML / Styled HTML(HTML+CSS)/ No constraint(モデルが自由選択)の5条件だ。MTP(3ドラフトトークン)で推論速度も計測している。

数値で見るビフォーアフター

計測結果を並べる。

| 条件 | 推論トークン | 出力トークン | 生コンテンツトークン | トークン/秒 | 所要時間 |
|---|---|---|---|---|---|
| Raw text | 1,873 | 1,080 | 1,080 | 146 | 20秒 |
| Markdown | 1,264 | 1,496 | 1,269 | 123.5 | 23秒 |
| Unstyled HTML | 166 | 7,346 | 4,857 | 139 | 56秒 |
| Styled HTML | 108 | 10,290 | 3,418 | 139 | 82秒 |
| No constraint | 1,465 | 2,256 | 2,002 | 122 | 31秒 |

注目すべき点が二つある。

一つ目は推論トークンの逆転だ。HTMLを指定すると推論トークンが激減する。Styled HTMLでは108トークンしか使っていない。Raw textの1,873と比べると94%削減だ。モデルがHTMLタグの生成に計算資源を振り向け、内容の思考に使うトークンが枯渇している、と考えられる。

二つ目は出力トークンの爆発だ。Styled HTMLは10,290トークン。Raw textの1,080と比べると約9.5倍。しかし生コンテンツ(フォーマット除去後)は3,418トークンにとどまる。残りの約6,800トークンはHTMLタグとCSSである。処理時間も82秒と最長だ。

品質評価はChatGPT 5.5 Extended Reasoningに採点させた。評価軸は「正確な情報量(40点)」「説明の質(25点)」「誤りの少なさ(25点)」「情報密度(10点)」の計100点だ。

| 順位 | 条件 | 情報量 | 説明 | 誤り | 密度 | 合計 |
|---|---|---|---|---|---|---|
| 1 | Markdown | 31 | 21 | 18 | 8 | 78 |
| 2 | No constraint | 32 | 18 | 13 | 8 | 71 |
| 3 | Raw text | 30 | 19 | 11 | 6 | 66 |
| 4 | Unstyled HTML | 34 | 17 | 6 | 4 | 61 |
| 5 | Styled HTML | 33 | 19 | 3 | 3 | 58 |

Markdownが78点で首位。Styled HTMLは58点で最下位だ。情報量のカバレッジ単体ではHTMLが上位だが、誤りの多さと情報密度の低さが足を引っ張っている。Styled HTMLの誤りスコアは3/25。Markdownの18/25と比べると壊滅的だ。

各単語・形式指定が出力に与える影響

ここが職人として最も気になる部分だ。

形式指定はプロンプトの「制約」として機能する。制約が強いほどモデルの推論リソースが形式の維持に消費され、内容生成から奪われる。これが今回のデータで明確に示された。

Markdownの強みは「軽い構造」にある。見出し・箇条書き・コードブロックをわずかなトークンで表現できる。モデルは構造維持のコストを最小化しながら、推論リソースを内容に集中できる。結果として1,264トークンの推論で78点を叩き出した。

HTMLの問題は「タグの冗長性」だ。`

...

...

` という構造は、Markdownの `## ...` と同じ意味を持つが、トークン数は数倍になる。モデルはタグを閉じ、属性を書き、CSSクラスを整合させることに注意を割く。思考の帯域が削られる。

No constraintでモデルがMarkdownを選んだ事実も重要だ。自由にさせると、モデル自身がMarkdownを「最適な出力形式」と判断する。これはモデルの訓練データの分布を反映している可能性がある。

プロンプトで再現するなら、形式指定は以下のように書く。

Write a detailed explanation of [TOPIC].
Format: Markdown (use ## headings, bullet points, and code blocks where appropriate).

ビフォー(形式未指定):

Write a detailed explanation of the Blazor render cycle.

アフター(Markdown明示):

Write a detailed explanation of the Blazor render cycle.
Format: Markdown (use ## headings, bullet points, and code blocks where appropriate).

No constraintの結果(71点)とMarkdown明示(78点)の差は7点だ。「Markdownで書け」と一言加えるだけで品質スコアが約10%改善する計算になる。

結論

HTMLはトークンを食い、推論を殺し、品質を下げる。少なくともQwen3.6 35B A3Bというローカルモデルにおいては、この実験の範囲でそう言える。「Claude CodeでHTMLが有効」という話がローカルモデルにそのまま適用できるとは限らない、という点は留意が必要だ。モデルアーキテクチャ・訓練データ・タスクの種類によって結果は変わる可能性がある。

再現したい読者へ。まず自分のモデルとタスクで同じ5条件を試せ。推論トークン数を記録することを忘れるな。品質スコアだけでなく、推論トークンの変化がモデルの「思考コスト」を可視化する最も直接的な指標だ。形式指定を変えるだけで、プロンプトの1行が出力品質を決定する。