知識がなくても始められる、AIと共にある豊かな毎日。
AIツールレビュー

スライサー設定の取り違えを AI に見つけさせる — 素材・温度・プレートの組み合わせを公式プロファイルで試す

ゲンキ

フィラメントを ABS に替えたのに、ビルドプレートは PLA を刷ったときの Cool Plate のまま。共有しているプリンターに「PLA Basic をノズル 260℃で」と書いた依頼が届く。スライサー設定の取り違えは、たいてい素材を替えた直後か、人から設定を文章で受け取ったときに起きる。Bambu Studio はこのうち一部を自分で止めるが、すべてではない。しかも文章で届いた設定は、誰かがスライサーに打ち込むまで確かめられない。

※本記事にはアフィリエイト広告(PR)が含まれます。

そこで、スライサー設定の取り違えを AI に見つけさせられるかを試した。正解は Bambu Studio の公式プロファイル(GitHub の本家リポジトリ、コミット da8b44e)から作り、Bambu Lab P1S と 0.4 mm ノズルの組み合わせで、9 種類のフィラメントについて 42 組の設定を用意した。これを「JSON と推奨値」「日本語の依頼文と推奨値」「日本語の依頼文だけ」の3通りで渡し、計 126 件を手元の Nimble 9B と claude -p に判定させた。本記事では、文章を書かずに、決めた問いへの答えと確率だけを返すモデルを、英語の decision model の訳として判定モデルと呼ぶ。Nimble 9B はその一つである。

先に結果を書く。推奨値を渡した2通りでは、claude -p は「刷ってよいか」と「どこが問題か」の両方で 42 組すべてを当てた。Nimble は「どこが問題か」で 42 組中 38 組と 39 組、9割強を当てた。推奨値を渡さないと、Nimble の「どこが問題か」の正答は 17 組(40.5%)まで下がった。ただしそのとき、答えがどれだけ一つの選択肢に集中しているかを表す confidence の平均も 0.066 まで下がり、分からないことを数値で示した。もう一つ目立ったのは、Nimble で同じ状態に対する2つの問いの答えが食い違ったことだ。「どこが問題か」ではノズル温度だと答えながら、「刷ってよいか」には「はい」と答える組が多かった。

なお、Ollama や Cloudflare が自社の説明の基準にしている TypeSafe の Jev は、今回は使っていない。Jev の位置づけと API の形は Jev とは何か — 文章を書かずに判定だけを返す AI を、3Dプリントの工程に置く(2026-10-12 公開) で説明した。手元で判定モデルを動かす Ollama の入口 /v1/systemone は Jev の API に合わせた形なので、本記事と同じ問いは Jev にも同じ形で送れる。ただし、ここに載せる数字はすべて Nimble と claude -p を各条件1回ずつ動かした結果である。

目次
  1. 素材を替えたのに温度とプレートが前のまま — スライサー設定の取り違えはどこで起きるか
  2. Bambu Studio が自分で止めるもの、止めないもの
  3. 正解は Bambu Studio の公式プロファイルから作った
  4. 実測の条件 — 42 組を3通りの渡し方で判定させる
  5. 結果 — 推奨値を渡せば「どこが問題か」は9割以上当たった
  6. 推奨値を渡さないと — Nimble は4割まで下がり、confidence も下がった
  7. 問いの立て方で答えが割れた — 「刷ってよいか」と「どこが問題か」
  8. 規則と AI の分担 — スライサー設定の取り違えのうち AI に任せる部分
  9. この実測で言えないこと
  10. まとめ — スライサー設定の取り違えは規則で止め、依頼文の読み取りを AI に任せる
  11. 参照
忍者AdMax

素材を替えたのに温度とプレートが前のまま — スライサー設定の取り違えはどこで起きるか

素材を替えたのに温度とプレートが前のまま — スライサー設定の取り違えはどこで起きるか

Bambu Studio の公式プロファイルには、フィラメントごとに、推奨するノズル温度の範囲と、ビルドプレートの種類ごとのベッド温度が書かれている。P1S と 0.4 mm ノズルの組み合わせで見ると、PLA Basic の既定のノズル温度は 220 ℃、推奨範囲は 190〜240 ℃ だ。一方の ABS は既定が 270 ℃、範囲が 240〜280 ℃ で、両者の範囲が重なるのは 240 ℃ の一点だけである。

プレートの違いはさらに大きい。PLA Basic は Engineering Plate の値が 0 で、ABS は Cool Plate と Cool Plate SuperTack の値が 0 になっている。この 0 は「おすすめしない」ではなく「そのプレートには対応しない」という意味で、Bambu Studio はスライスそのものを止める。詳しくは次の節で書く。

取り違えが起きやすい場面は、大きく3つに分けられる。

  1. 素材を替えて、温度かプレートの片方だけを戻し忘れる。PLA Basic から ABS に替えたのに Cool Plate のまま、という形だ
  2. 前の素材の値を書き写す。ABS の 270 ℃ を PLA Basic の設定に入れる、PLA Basic の 220 ℃ のまま ABS を刷る、といった形である
  3. 設定が文章で届く。共有のプリンターへの依頼、チャットのメッセージ、作業のメモには、略した素材名や日本語のプレート名と、温度の数字が並ぶ

1と2は Bambu Studio の中で起きる取り違えで、後で見るとおり、その一部は Bambu Studio が自分で止める。これに対して3は Bambu Studio の外で起きる。依頼文を読んで設定に打ち込む人が気づかなければ、取り違えはそのまま入力される。AI に読ませる意味があるとすれば、まずこの3の場面だ。

なお、複数の素材を1つの造形で使う場合は、素材の組み合わせごとに設定がさらに増える。パージやサポートの設定は マルチマテリアル スライシング実践 2026 — パージ・サポート・素材境界の設定術(2026-07-04 公開) で扱った。本記事では、1つの造形に1つの素材を使う場合の、素材・ノズル温度・ベッド温度・プレートの4つの組み合わせに絞る。

PLA から ABS や ASA のような高温側の素材に替えるときに、温度とプレートの戻し忘れが起きやすい。他社の ASA を使う場合は、スライサーで汎用(Generic)のプロファイルを選び、推奨値を製品の表示と照らし合わせておく。

¥2,849 (2026/09/19 10:47時点 | Amazon調べ)

Bambu Studio が自分で止めるもの、止めないもの

Bambu Studio が自分で止めるもの、止めないもの

AI に任せる前に、Bambu Studio 自体が何を確かめているかを見ておく。本家のソースコード(同じコミット da8b44e)を読むと、設定の確認は扱いの強さが違う4種類に分かれていた。

確かめることBambu Studio の扱い処理のあるファイル
選んだプレートのベッド温度が 0エラー。スライスを止めるsrc/libslic3r/Print.cpp
ノズル温度が推奨範囲の外フィラメント設定で値を書き換えたときに警告ダイアログ。スライスは止まらず、スライス時・送信時には確かめないsrc/slic3r/GUI/ConfigManipulation.cpp、src/slic3r/GUI/Tab.cpp
ノズルの硬さが素材の要求に足りない印刷を送る画面で警告。プリンターからノズルの種類が取れたときだけsrc/slic3r/GUI/SelectMachine.cpp
ベッド温度がプロファイルの軟化温度以上設定項目の説明文で注意を促すだけ。エラーでも警告でもないsrc/libslic3r/PrintConfig.cpp

プレートの 0 は「非対応」で、スライスが止まる

プレートごとのベッド温度の設定項目には、説明文が付いている。たとえば Engineering Plate の項目には「Value 0 means the filament does not support to print on the Engineering Plate」とあり、0 は「そのフィラメントはこのプレートでの印刷に対応しない」という意味だと分かる。さらにスライス前の検査では、選んだプレートのベッド温度が 0 なら「Plate %d: %s does not support filament %s」というエラーを返す。つまり 0 は「非推奨」ではなく、Bambu Studio がスライスを止める「非対応」である。

ノズル温度の範囲外は値を書き換えたときの警告で、スライスは止まらない

フィラメント設定でノズル温度を推奨範囲の外の値に書き換えると、Bambu Studio は「Nozzle may be blocked when the temperature is out of recommended range.」と書いた警告ダイアログを出し、「Please confirm whether to use the temperature for printing.」と確認を求める。範囲の比較には標準ノズルの値を使う。ここで利用者が確認すれば、その温度のまま先へ進める。

この確認が呼ばれるのは、フィラメント設定の画面でノズル温度の値を書き換えたときだけだ。範囲外の値を含むプリセットや 3MF を読み込んだ場合は、スライス時にも、印刷を送る画面でも、この範囲を確かめない。

プレートの 0 がエラーでスライスを止めるのに対し、範囲外の温度は値を書き換えたときの警告にとどまり、スライスは止まらない。この扱いの差は、後で正解を作るときにも区別した。

ノズルの硬さは送信時、軟化温度は説明文だけ

フィラメントには、必要なノズルの硬さ(HRC)も書かれている。設定項目の説明は「Minimum HRC of nozzle required to print the filament. Zero means no checking of nozzle’s HRC.」で、炭素繊維入りの PLA-CF・PETG-CF・PA6-CF は 40 を要求する。Bambu Studio が持つノズルの情報では、ステンレスは HRC 20、焼き入れ鋼は 55 なので、ステンレスでは足りず、焼き入れ鋼なら足りる。Bambu Lab の日本のストアも、PA6-CF について「ステンレススチールノズルは非推奨」と書いている。ただし、この確認は印刷を送る画面で行われ、プリンターからノズルの種類が取れたときだけ警告が出る。スライスの時点で行う確認ではない。

本記事で軟化温度と呼ぶのは、フィラメントのプロファイルにある temperature_vitrification という設定値で、Bambu Studio での項目名は Softening temperature である。設定項目の説明文は、素材がこの温度で柔らかくなるとし、ベッド温度がこの温度以上なら、前扉を開けるか上部のガラスを外すことを強く勧めると書いている。とはいえ、これは説明文にとどまり、エラーにも警告ダイアログにもならない。

この設定値は、Bambu Lab の技術データシート(TDS)に載る材料の物性値と同じではない。たとえば PLA Basic のプロファイル値は 45 ℃ だが、PLA Basic の TDS はガラス転移温度を 60 ℃、ビカット軟化温度を 57 ℃ としている。

0 以外のベッド温度が素材に合うかは確かめていない

プロファイルは、プレートごとのベッド温度を範囲ではなく1つの値で持つ(初層とその他の層で項目は分かれる)。ソースコードを見た範囲では、0 以外のベッド温度がその素材に合っているかを確かめる処理は見当たらなかった。

まとめると、プレートの 0 と範囲外のノズル温度は、規則で書ける確認として Bambu Studio 自体も行っている。ただし温度の範囲を確かめるのは値を書き換えたときだけで、読み込んだ設定の温度はスライス時にも送信時にも確かめない。どちらも規則で書ける確認なので、AI の判定でこれを置き換える必要はない。Bambu Studio がまったく見ないのは、Bambu Studio に入る前の設定、つまり人が文章で書いた依頼である。

正解は Bambu Studio の公式プロファイルから作った

正解は Bambu Studio の公式プロファイルから作った

本家のリポジトリとコミットを固定する

正解の出典は、GitHub の bambulab/BambuStudio に置かれた公式プロファイルだ。GitHub の情報ではこのリポジトリはフォークではなく本家で、ライセンスは AGPL-3.0 である。README には、Bambu Studio が PrusaSlicer をもとにしていると書かれている。

master のプロファイルは更新されていくので、調べた時点の master の先頭にあったコミット da8b44e(2026年9月28日)に固定して値を引いた。最新の正式版 v02.08.02.61(2026年8月21日公開)とも比べたところ、温度・プレート・ノズルの硬さの値は同じで、違いは一部のファイルのフィラメントの価格の項目だけだった。フィラメントのプロファイルを置いたディレクトリには、下位のディレクトリ 3 つの中を含めて 2,054 個のファイルがある。

継承をたどって最終値を取る

プロファイルは inherits という項目で親のファイルを指し、子が持たない項目は親の値を使う。たとえば P1S 用の PLA Basic は、P1S 0.4 mm ノズル用のファイルから、PLA Basic 共通のファイル、PLA 全体のファイル、全フィラメント共通のファイルへとたどる。各項目の値は、この並びのうち最も子に近いファイルで決まる。

親だけを見ると誤る例がある。PETG 全体のファイルは Engineering Plate のベッド温度を 0 にしているが、その子の PETG HF 共通のファイルが 70 で上書きしている。親のファイルだけを読めば「PETG HF は Engineering Plate に対応しない」という誤った正解ができてしまう。そこで正解表は、すべて継承をたどった最終値で作った。

機種別のファイルにある温度は、Direct Drive Standard と Direct Drive High Flow の2つの値の組になっている。今回は1つ目(Standard)の値を使った。また、PETG Basic・ASA・PLA-CF・PETG-CF・PA6-CF には P1S 用のファイルが無いので、X1C 用のファイルのうち、対応機種の一覧に「Bambu Lab P1S 0.4 nozzle」を含むものを使った。P1S にはノズル径 0.2・0.4・0.6・0.8 mm の機種プロファイルがあるが、今回は 0.4 mm に限った。

正解表(P1S・0.4 mm ノズル)

継承をたどった値を表にまとめる。プロファイルの JSON はここには転載しないので、元のファイルは末尾の参照から GitHub で確かめてほしい。

フィラメントノズル推奨範囲ノズル既定Cool PlateEngineering PlateSmooth PEI PlateTextured PEI PlateCool Plate SuperTack要求 HRC軟化温度
PLA Basic190〜240220350555545345
PETG HF230〜2702450※70707070370
PETG Basic230〜2702550※70707070360
ABS240〜280270090909003100
ASA240〜280270010010010003100
TPU 95A HF200〜25023030※3035350330
PLA-CF210〜2502304505555504045
PETG-CF240〜2702550※707070704070
PA6-CF260〜3002750100100100040170

温度の単位はすべて ℃ で、ノズル既定は「その他の層」の値である。軟化温度はプロファイルの temperature_vitrification の値で、TDS の物性値ではない。初層のベッド温度は、9 種類とも表の値と同じだった。0 はそのプレートに対応しないことを表し、※の付いた組は次に書く理由で問いに使っていない。

公式資料どうしのずれと、問いから外した組

Bambu Lab の技術データシート(TDS)や日本のストアの記載とは、ノズル温度の範囲(上限は TDS を確かめた 5 種類すべてで TDS のほうが 10 ℃ 低く、TPU 95A HF は下限も TDS のほうが 20 ℃ 高い)、Cool Plate の可否、PLA Basic のベッド温度(プロファイルは Smooth・Textured PEI で 55 ℃、TDS は 35〜45 ℃)が一致しないものがあり、本記事ではどれが正しいかを判断せず、正解の出典をプロファイルに固定した。

そのうえで、プレートの可否とノズル温度で資料どうしの答えが割れる組は正答率の計算から外した。具体的には、PETG HF・PETG Basic・PETG-CF と TPU 95A HF の Cool Plate の組を問いに使っていない。また、TDS を確かめた 5 種類では TDS の範囲がプロファイルの範囲の内側に収まるので、プロファイルの範囲内でも TDS では範囲外になる温度がある(PLA Basic の 231〜240 ℃、TPU 95A HF の 200〜219 ℃ など)。そうした温度は問いに使わず、ノズル温度の誤りはプロファイルの範囲の外の値で作った。ただし、ベッド温度のずれは外していない。PLA Basic の組はベッドを 55 ℃ にしたので、TDS を正解にすると判定が変わりうる。

正解表は Bambu Lab P1S と 0.4 mm ノズルの組み合わせで作った。同じ機種を使っているなら、表の値をそのまま自分の設定の確かめに使える。

実測の条件 — 42 組を3通りの渡し方で判定させる

実測の条件 — 42 組を3通りの渡し方で判定させる

42 組の内訳

9 種類のフィラメントそれぞれについて、次の組を作った。

組の種類作り方組数正解(刷ってよいか/どこが問題か)
問題なし(Textured PEI Plate)ノズルは既定値、ベッドはそのプレートのプロファイル値9はい/none
問題なし(Smooth PEI Plate)同上9はい/none
ノズル温度が低すぎる推奨範囲の下限より 20 ℃ 低い。プレートは Textured PEI9いいえ/nozzle_temperature
ノズル温度が高すぎる推奨範囲の上限より 20 ℃ 高い。プレートは Textured PEI9いいえ/nozzle_temperature
非対応プレート値が 0 のプレート。ノズルは既定値、ベッドは Textured PEI Plate の値6いいえ/plate

非対応プレートの 6 組は、PLA Basic と PLA-CF の Engineering Plate、ABS・ASA・PA6-CF の Cool Plate、TPU 95A HF の Cool Plate SuperTack である。PETG の3種類は、値が 0 のプレートが問いから外した Cool Plate だけなので、この種類の組を持たない。

ノズル温度の誤りは、プロファイルの範囲から 20 ℃ 外した値にした。PLA Basic なら上限 240 ℃ に対して 260 ℃ になる。ベッド温度の誤りは作っていない。

いくつか決めたことがある。まず、すべての状態でノズルを「0.4 mm の焼き入れ鋼」と明記した。炭素繊維入りの素材でノズルの硬さが問題にならないようにするためで、P1S の標準ノズルの材質を前提にしないためでもある。次に、問題なしの組のベッド温度は、9 種類のうち 7 種類で軟化温度以上になる。PLA Basic と PLA-CF の 55 ℃(軟化温度 45 ℃)、TPU 95A HF の 35 ℃(同 30 ℃)、PETG Basic の 70 ℃(同 60 ℃)は軟化温度を上回り、PETG HF・PETG-CF の 70 ℃ と ASA の 100 ℃ は軟化温度と同じ値である。それでも先に見たとおり Bambu Studio はエラーも警告も出さないので、正解は「問題なし」とした。

3通りの渡し方

同じ組を、次の3通りで渡した。例は PLA Basic をノズル 260 ℃、Textured PEI Plate、ベッド 55 ℃ で刷る組である。

JSON と推奨値(json_ref): 設定を JSON にし、その下にプロファイルの推奨値を英語で1行添えた。読みやすいように改行して示す。

{
    "printer": "Bambu Lab P1S",
    "nozzle": "0.4 mm hardened steel",
    "filament": "Bambu PLA Basic",
    "nozzle_temperature": 260,
    "bed_temperature": 55,
    "plate": "Textured PEI Plate"
}
Bambu Studio profile for this filament: nozzle 190-240 C; bed temperature by plate: Cool Plate 35 C, Engineering Plate 0 C (0 = not supported), Smooth PEI Plate 55 C, Textured PEI Plate 55 C, Cool Plate SuperTack 45 C.

日本語の依頼文と推奨値(text_ref): 人が書く依頼に近い文にし、同じ推奨値の1行を添えた。プレート名は Bambu Studio の画面の英語表記を短くしたまま(Smooth PEI Plate / High Temp Plate を Smooth PEI Plate、Bambu Cool Plate SuperTack を Cool Plate SuperTack)にしている。

P1S(0.4mm の焼き入れ鋼ノズル)で Bambu PLA Basic を刷ります。ノズルは 260℃、ベッドは 55℃、プレートは Textured PEI Plate を使う予定です。
Bambu Studio profile for this filament: nozzle 190-240 C; (以下、上と同じ)

日本語の依頼文だけ(text_noref): 上の依頼文だけを渡し、推奨値は渡さない。この場合、モデルは自分の知識で判断するしかない。

推奨値の1行では、0 のプレートに「0 = not supported」と添えた。つまり推奨値を渡す2通りでは、非対応のプレートも温度の範囲も、渡す内容の中にそのまま書かれている。

2つの問い

各件に、2つの問いを同時に聞いた。Ollama の /v1/systemone に送った問いの部分は次のとおりである。

"questions": {
    "ok": {
        "type": "noul",
        "instructions": "Can this print start with these settings without a settings problem for this filament?"
    },
    "problem": {
        "type": "choice",
        "instructions": "Which setting is the problem, if any?",
        "criteria": {
            "none": "No problem with the settings",
            "nozzle_temperature": "Nozzle temperature is outside the range for this filament",
            "plate": "This filament does not support the chosen build plate",
            "bed_temperature": "Bed temperature does not suit this filament on this plate"
        }
    }
}

noul は「はい」か「いいえ」で答える問いで、「はい」である確率を 0〜1 の数値で返す。choice は、定義した選択肢から1つを選び、全選択肢の確率の分布を返す。ここで押さえておくべきなのは、confidence が choice の答えには付くが、noul の答えには付かないことだ。そのため、confidence を比べるのは「どこが問題か」の choice の問いだけにした。ベッド温度の選択肢は置いたが、ベッド温度の誤りの組は作っていない。

モデルと採点

項目Nimble 9Bclaude -p
モデルOllama の配布版 nimble(Bespoke Labs の Bespoke-Nimble-9B、Apache 2.0)。文字だけを読む判定モデルClaude Sonnet 5.5(--model sonnet、記録上の ID は claude-sonnet-5-5)
実行場所手元の RTX 5070 Ti(16,303 MiB)、Windows 版の Ollama 0.35.1Anthropic の API(Claude Code の非対話実行。ツール・MCP・設定ファイルを読み込まない最小構成)
渡し方/v1/systemone に状態と2つの問いを1回で送る同じ状態と問いを文章で渡し、確率を JSON で答えさせる。システムプロンプトは「You are a careful assistant.」
刷ってよいか「はい」の確率が 0.5 以上なら「はい」と答えたとみなす同じ
どこが問題か選んだ選択肢を正解と比べる同じ
実行回数各件1回各件1回

実行は 2026年10月7日に行った。claude -p の確率は、モデルが文章として書いた数値である。判定モデルのように、1回の計算で全選択肢の確率を出す仕組みから取り出したものではない。

結果 — 推奨値を渡せば「どこが問題か」は9割以上当たった

結果 — 推奨値を渡せば「どこが問題か」は9割以上当たった
モデル渡し方刷ってよいか(noul)どこが問題か(choice)confidence の平均(choice)1件の時間の中央値
Nimble 9BJSON と推奨値33/42(78.6%)38/42(90.5%)0.7772,758 ms
Nimble 9B日本語の依頼文と推奨値24/42(57.1%)39/42(92.9%)0.7162,754 ms
Nimble 9B日本語の依頼文だけ18/42(42.9%)17/42(40.5%)0.0662,633 ms
claude -pJSON と推奨値42/42(100.0%)42/42(100.0%)—4,741 ms
claude -p日本語の依頼文と推奨値42/42(100.0%)42/42(100.0%)—4,935 ms
claude -p日本語の依頼文だけ34/42(81.0%)34/42(81.0%)—6,686 ms

組の種類ごとに分けると、どこで外したかが見える。各セルは「刷ってよいか」の正答/「どこが問題か」の正答で、claude -p は推奨値を渡した2通りがすべて正答だったので、推奨値なしの列だけを載せる。

組の種類(組数)Nimble:JSON と推奨値Nimble:依頼文と推奨値Nimble:依頼文だけclaude -p:依頼文だけ
問題なし・Textured PEI(9)9/99/99/19/9
問題なし・Smooth PEI(9)9/99/99/26/6
ノズル温度が低すぎる(9)9/90/90/69/9
ノズル温度が高すぎる(9)0/90/90/77/7
非対応プレート(6)6/26/30/13/3

推奨値を渡すと、claude -p は全問を当てた

推奨値を渡した2通りでは、claude -p はどちらも 42 組すべてで、2つの問いの両方に正答した。渡した内容の中に推奨範囲と「0 = not supported」が書いてあるので、数字を範囲と比べ、0 の付いたプレートを見つければ答えが出る。JSON で渡しても日本語の依頼文で渡しても、結果は変わらなかった。

Nimble は「どこが問題か」で9割強、外したのは非対応プレートの組

Nimble の「どこが問題か」は、JSON で 38 組(90.5%)、日本語の依頼文で 39 組(92.9%)が正答だった。ここでの正答は、選んだ選択肢が組ごとに決めた正解の選択肢と一致した数である。ノズル温度の誤りは、どちらの渡し方でも 18 組すべてを nozzle_temperature と当て、問題のない 18 組もすべて none と答えている。非対応プレートの 6 組を除いた 36 組は、どちらの渡し方でもすべて正答だったことになる。

外したのは非対応プレートの組で、6 組中 2 組と 3 組しか plate を選べなかった。外した組では、いずれも bed_temperature を選んでいた。この組のベッド温度には Textured PEI Plate の値を入れたので、選んだプレートのプロファイル値(0)とも一致しておらず、bed_temperature という答えも成り立ちうる。この 6 組の「刷ってよいか」には、どちらの渡し方でも 6 組すべてで「いいえ」と答えている。外した組も問題があること自体は見逃しておらず、違ったのは問題として選んだ項目である。推奨値の1行に「0 = not supported」と書いてあっても、問題をプレートの非対応と特定できない組が残ったことになる。

choice の confidence の平均は、JSON で 0.777、日本語の依頼文で 0.716 だった。答えの確率が一つの選択肢にかなり集中していたことを示している。

時間と費用は条件が違う

1件あたりの時間の中央値は、Nimble が 2,633〜2,758 ms、claude -p が 4,741〜6,686 ms だった。ただし Nimble は手元の GPU で動き、claude -p はネットワーク越しに API を呼び、CLI の起動も含んでいる。この差はモデルそのものの速さを比べたものではない。

費用は、claude -p が返した記録の合計で、126 件全体で 2.678 ドルだった。Nimble は手元で動かしたので API の費用はかからない(電気代は含めていない)。

推奨値を渡さないと — Nimble は4割まで下がり、confidence も下がった

推奨値を渡さないと — Nimble は4割まで下がり、confidence も下がった

Nimble は「刷ってよいか」にすべて「はい」と答えた

日本語の依頼文だけを渡すと、Nimble の結果は大きく変わった。「どこが問題か」の正答は 42 組中 17 組(40.5%)で、問題のない 18 組のうち none と答えたのは 3 組だけだった。問題のない設定の多くに、何かしらの問題を挙げたことになる。

「刷ってよいか」は 18 組(42.9%)が正答だったが、内訳を見ると中身は偏っている。問題のない 18 組はすべて「はい」で正答し、ノズル温度の誤りと非対応プレートの組は1組も当てていない。つまりこの条件では、Nimble は 42 組すべてで「刷ってよい」の側に答えた。この問いだけを関門に使っていれば、すべての取り違えを通していた。

confidence が 0.066 まで下がり、分からないことを示した

一方で、choice の confidence の平均は 0.066 まで下がった。推奨値を渡したときの 0.777 と 0.716 に比べると、確率がほぼ均等に散っていたことになる。

ここで confidence の意味を確かめておく。confidence は、確率が一つの答えに集中しているときに 1、すべての答えに均等に散っているときに 0 に近づく値で、答えの正しさを表す値ではない。Ollama の文書も、confidence は正しさの較正ではないと断っている(詳しくは冒頭に挙げた Jev の解説記事に書いた)。それでもこの実行では、推奨値がなく判断の材料が足りないときに confidence がはっきり下がった。自分の判定でも同じように下がることを確かめられれば、confidence の低い答えを人に回す、という分岐の手がかりになる。

ただし、noul の答えには confidence が無い。迷い具合を見るには「はい」の確率そのものを見ることになる。この条件の「はい」の確率は 42 組とも 0.546〜0.685 で、推奨値を渡したときに問題のない組へ返した 0.806〜0.904 より低かった。0.5 を境に「はい」か「いいえ」かだけを読むと、この差は見えなくなる。一方で、推奨値を渡した2通りでも、ノズル温度の誤りのうち 27 組には 0.679〜0.976 の確率で「はい」と答えており、確率が高いことは正しさを示さない。

claude -p は 81.0% に下がった

claude -p は、推奨値を渡さないと2つの問いとも 34 組(81.0%)の正答だった。ノズル温度が低すぎる組は 9 組すべてを当てたが、高すぎる組では 9 組中 2 組を見逃した。また、Smooth PEI Plate を使う問題のない組のうち 3 組に問題があると答え、非対応プレートは 6 組中 3 組しか見つけられなかった。

推奨値を渡さなければ、モデルは一般的な知識で答えるしかない。そもそも、Bambu Studio でプレートに対応するかどうかは、プロファイルの値で決まる。モデルの知識がプロファイルと同じである保証はない。したがって、プロファイルが公開されている以上、推奨値は渡すのが前提になる。推奨値を渡せる場面で、あえて渡さずに判定させる理由は見当たらない。

問いの立て方で答えが割れた — 「刷ってよいか」と「どこが問題か」

問いの立て方で答えが割れた — 「刷ってよいか」と「どこが問題か」

Nimble の結果で最も目立ったのは、同じ状態への2つの問いの答えが食い違ったことだ。

推奨値を JSON で渡したとき、ノズル温度が高すぎる 9 組では、「どこが問題か」は 9 組すべてで nozzle_temperature を選んだ。ところが同じ 9 組の「刷ってよいか」には、すべて「はい」の側に答えている。日本語の依頼文と推奨値を渡したときはさらに広がり、ノズル温度が低すぎる組と高すぎる組の計 18 組で、「どこが問題か」はすべてノズル温度と答え、「刷ってよいか」はすべて「はい」の側だった。

逆向きの差もあった。JSON と推奨値で渡した非対応プレートの 6 組では、「刷ってよいか」は 6 組すべてで「いいえ」と正答したが、「どこが問題か」で plate を選んだのは 2 組で、残る 4 組は bed_temperature を選んだ。こちらは2つの答えとも問題があるとしており、分かれたのは問題として選んだ項目である。

一方、claude -p では、どの渡し方でも、組の種類ごとの正答の数が2つの問いで同じだった。

文面は1通りしか試していない

noul の問いの文面は「Can this print start with these settings without a settings problem for this filament?」の1通りだけで、言い回しを変えて試していない。この文面が、Nimble にとって別の読み方を許した可能性はある。しかし、文面を変えた比較をしていないので、原因が文面なのか、noul という問いの型に対するモデルの癖なのかは、この実行からは分からない。

1つの問いだけで決めない

この結果から言える組み込み方の注意は2つある。

  • 「刷ってよいか」の noul だけを関門にしない。今回の Nimble では、ノズル温度の誤りの多くを「はい」の側で通した。推奨値を渡した2通りでは、none を含めた「どこが問題か」の choice の正答率が、「刷ってよいか」を上回った
  • 2つの問いの答えが食い違ったら、人が確かめる。choice が問題を挙げたのに noul が「はい」と答えた、というような食い違いそのものを、人に回す合図にできる。ただし、この使い方は今回試していない

どちらも1回の実行から読み取れることで、自分の問いと設定で確かめてから使う必要がある。

規則と AI の分担 — スライサー設定の取り違えのうち AI に任せる部分

規則と AI の分担 — スライサー設定の取り違えのうち AI に任せる部分

規則で書ける確認は Bambu Studio も行っている

プレートの 0 と、ノズル温度の推奨範囲は、プロファイルの値と比べるだけで判定できる。Bambu Studio 自体がこの2つをエラーと警告で確かめていることは、先に見たとおりだ。ただし温度の警告は値を書き換えたときにしか出ず、読み込んだ設定の温度はスライス時にも送信時にも確かめない。同じ確認を自分のプログラムで行うなら、数行で書ける。

def find_problems(setting, profile):
    problems = []
    bed = profile["bed_temperature_by_plate"][setting["plate"]]
    if bed == 0:
        problems.append("plate")  # このプレートには対応しない
    low, high = profile["nozzle_temperature_range"]
    if not low <= setting["nozzle_temperature"] <= high:
        problems.append("nozzle_temperature")  # 推奨範囲の外
    return problems

この規則は同じ入力に対して毎回同じ答えを返し、確率も要らない。AI の判定でこれを置き換える理由は無い。今回の Nimble は、推奨範囲を渡していても「刷ってよいか」でノズル温度の誤りを通した。また、判定モデルの Jev を出している TypeSafe 自身も、Jev は数値の精度が要る作業が苦手だとして、計算はコードの側に置くよう勧めている(冒頭に挙げた Jev の解説記事で紹介した)。推奨値を渡した claude -p は全問を当てたが、規則なら API の費用はかからず、応答を待つ必要もない。

AI に任せる価値は、依頼文を読み取る部分

規則が苦手なのは、入力の側がそろっていない場面だ。Bambu Studio は自分の設定を確かめるが、人が文章で書いた依頼は読まない。依頼文では、素材名が略され、プレートは日本語の呼び名で書かれることがある。たとえば Bambu Lab の日本のストアは、Cool Plate を「常温プレート」、Smooth PEI Plate を「スムーズPEIプレート」、Textured PEI Plate を「テクスチャードPEIプレート」、Cool Plate SuperTack を「常温プレートSuperTack」と書いている。Bambu Studio の画面の英語表記とは一致しないので、文字列の一致だけで対応づけるのは難しい。

この読み取りは、判定モデルの choice の形に合う。「この依頼のプレートは次の 5 種類のどれか」「この依頼の素材は次の 9 種類のどれか」と選択肢を並べて聞けば、文章を解析する処理を書かずに、プロファイルの項目に合わせた値が返る。確率と confidence も一緒に返るので、読み取りに迷った依頼を見分ける手がかりにもなる。ただし、その値をどこで切れば人に回すべき依頼を拾えるかは、自分の依頼文で数えて決める必要がある。

今回の実測では、日本語の依頼文と推奨値を渡したとき、Nimble の「どこが問題か」は 92.9%、claude -p は全問の正答だった。依頼文を日本語で書いても、推奨値があれば判定は崩れなかったことになる。ただし、今回の依頼文は決まった型で作った文で、略語や書き間違いを含む実際の依頼の読み取りは、別に確かめる必要がある。

組み込むときの順序

規則と AI を組み合わせるなら、次の順に置くとよい。

  1. 依頼文から設定を読み取る。素材とプレートは判定モデルの choice でプロファイルの項目に合わせ、温度の数字は文字列から取り出す
  2. 読み取った値を規則で確かめる。プロファイルの値と比べ、0 のプレートと範囲外のノズル温度を見つける
  3. 迷った依頼は人に回す。読み取りの confidence が低いとき、2つの問いの答えが食い違うとき、規則と AI の答えが合わないときは、人が依頼文を読む
  4. 最後に Bambu Studio 自身の確認を通す。エラーと警告を切らずに残し、AI の判定はその手前に置く。ただしスライス時に止まるのはプレートの 0 で、温度の範囲は値を書き換えたときにしか確かめられないので、2の規則を省かない

この順序のうち、1の読み取りと3の振り分けは、今回の実測では試していない。今回測ったのは、読み取りと照合をまとめて AI に判定させた結果である。

スライサーの機能そのものに AI を取り込む話は、AIスライサー 2026革命 — ニューラルネットワークがG-codeを書き換える時代(2026-04-02 公開) で扱った。本記事の分担は、スライサーの中ではなく、スライサーに入る前の設定を扱うものだ。

依頼文の読み取りを判定モデルに任せ、範囲の確認を規則で書くには、手元で言語モデルを呼ぶプログラムを少し書くことになる。ローカルの言語モデルをプログラムから使う入門書を挙げておく。

この実測で言えないこと

この実測で言えないこと

結果を読むときの限界を、まとめて書いておく。

  • 1回の実行で、規模も小さい。42 組を3通りの渡し方で、各件1回ずつ判定させただけである。正答率を一般化できる数ではない
  • 対象は Bambu のフィラメント 9 種類と、P1S の 0.4 mm ノズルだけ。ほかのメーカーのフィラメントや機種、ノズル径では試していない
  • 正解は公式プロファイルが基準。プロファイル以外の資料を正解にした場合の結果は数えていない。プレートの可否とノズル温度で資料どうしの答えが割れる組は問いから外したが、PLA Basic のベッド温度のずれは残っている
  • 誤りは2種類だけ。範囲から 20 ℃ 外れたノズル温度と、非対応のプレートである。範囲の端に近い温度、ベッド温度の誤り、ノズルの硬さ、軟化温度は試していない
  • 依頼文は決まった型の文。実際の依頼のような略語、日本語のプレート名、書き間違いは含んでいない
  • 問いの文面は1通りで、選択肢の並びも固定。文面や、none を先頭に置いた並び順を変えた場合は試していない
  • 確率の当たり具合までは示していない。本記事で数えたのは正答の数と、Nimble の choice の confidence の平均、noul の確率の範囲だけである
  • claude -p の確率は文章として書かれた数値。判定モデルの確率とは出し方が違い、confidence も無い
  • Jev は実行していない。Nimble の結果を Jev に当てはめることはできない
  • 時間は実行場所が違う。手元の GPU と外部の API の時間は、そのまま比べられない

それでも、推奨値を渡すかどうかで結果が大きく変わること、同じ状態への2つの問いの答えが食い違う場合があること、そして推奨値がないときに Nimble の confidence が下がったことは、この 126 件から読み取れる。

まとめ — スライサー設定の取り違えは規則で止め、依頼文の読み取りを AI に任せる

まとめ — スライサー設定の取り違えは規則で止め、依頼文の読み取りを AI に任せる
  • Bambu Studio の公式プロファイル(コミット da8b44e)から、P1S・0.4 mm ノズル・9 種類のフィラメントの正解表を作った。プレートの 0 は「非対応」で Bambu Studio がスライスを止め、ノズル温度の範囲外は値を書き換えたときに警告が出るが、スライスは止まらず、スライス時や送信時には確かめない
  • 42 組を3通りの渡し方で判定させると、推奨値を渡した場合、claude -p は2つの問いとも全問を当て、Nimble 9B は「どこが問題か」で 90.5% と 92.9% を当てた
  • 推奨値を渡さないと、Nimble の「どこが問題か」は 40.5% に下がり、choice の confidence の平均も 0.066 に下がった。「刷ってよいか」には 42 組すべてで「はい」の側に答えた
  • Nimble は、同じ状態への「刷ってよいか」と「どこが問題か」の答えが食い違い、ノズル温度の誤りを「刷ってよい」と答えることが多かった。noul の文面は1通りしか試していない
  • プレートの 0 と範囲外の温度は規則で書ける確認で、Bambu Studio 自体も行っている(温度は値を書き換えたときだけ)。AI に任せる価値は、利用者が文章で書いた依頼を読み取り、プロファイルの項目に合わせる部分にある

スライサー設定の取り違えを減らすために、まず手を付けるべきなのは規則の側だ。プロファイルの値と比べる確認は、同じ入力に毎回同じ答えを返し、費用もかからない。そのうえで、文章で届く依頼を受け付ける場面があるなら、読み取りを判定モデルに任せ、推奨値を必ず添えて、confidence が低い依頼と答えが食い違う依頼を人に回す。その振り分けがどこまで機能するかは、自分の依頼文と設定で数えてから決めたい。

参照

ブラウザだけでできる本格的なAI画像生成【ConoHa AI Canvas】
ABOUT ME
swiftwand
swiftwand
AIを使って、毎日の生活をもっと快適にするアイデアや将来像を発信しています。 初心者にもわかりやすく、すぐに取り入れられる実践的な情報をお届けします。 Sharing ideas and visions for a better daily life with AI. Practical tips that anyone can start using right away.
記事URLをコピーしました