手順の抽出はどこが弱いのか。意味で測り直して、つながりを直す 2026-11-06 測定 · v0.121.1
確かめたこと。 前の測定では、名前が正解と完全に一致したものだけを正解と数えました。この数え方だと、「Calcining」と「calcination」のような言い方の違いでも外れになります。さらに、正解には合成の手順しか入っていないので、測定や評価の手順を拾うと適合率が下がります。そこで、意味で照合する採点を作って測り直し、本当の弱点を見つけて、抽出の指示を直しました。同じ採点で、直す前と後を比べています。
ひとことで。 意味で数えると、操作と材料の F1 は 0.7〜0.95 ありました(範囲内 F1、下で説明)。弱いまま残ったのは、つながり(どの操作がどの材料を使い、何を作ったか)と条件です。つながりが弱い主な原因は、途中の成果物に名前が付いていないことだと考えています。アプリのグラフでは、そうした受け渡しの多くが、名前の無い「〇〇の結果」というノードになります。抽出の指示を直すと、受け渡しに名前が付く割合は、Claude と Copilot で 4〜40% から 99〜100% に上がりました。つながりの F1 も、Claude で 0.71 → 0.84、Copilot で 0.68 → 0.79 に上がっています。gpt-oss-120b は変わりませんでした。
測り方
| 論文 | 前の測定と同じ、CC-BY の論文 PDF 7 本(PDF から本文を取り出して渡す)。加えて確認用として、MatPROV の few-shot の 5 本(合成の段落だけの短い文章)を使いました。ベンチマークの見本の文章も持っていますが、以前から抽出の指示づくりに使ってきたので、確認用からは外しました。確認用の 5 本は、途中の版の副作用を見つけるのには使っています |
| モデル | Claude Opus 5、GitHub Copilot の gpt-5.6-luna、gpt-oss-120b。それぞれ 2 回。出力は英語です |
| 意味で照合する採点 | 予測と正解を、操作・実体・条件のノードの一覧にします。判定役の AI(Claude Opus 5)は、予測の各ノードが正解のどれと同じか、または範囲外(測定・評価)かの対応表だけを作ります。つながりの正誤は、その対応表で予測を正解の ID に置き換えてから、プログラムで数えます |
| 予測のつながり | アプリのグラフの規則に近づけて作りました。ある手順の材料が、別の手順の成果物と同じ名前なら、同じ実体として扱います。アプリは、材料が指している前の手順に限って同じ名前を探し、前の手順の成果物が 1 つだけなら名前が違ってもそれにつなぎます。採点はそこまでは再現していないので、近似です |
| 範囲内 F1 | 適合率の分母を「範囲外と判定されたもの以外、または正解に対応したもの」に絞った F1 です。測定や評価の手順は正解の範囲外なので、分母から外しています。再現率は、正解の側を重複なしで数えます |
| 重複なしの適合率 | 正解の側で数えた一致数を、範囲内の予測数で割った値です。予測が同じものを何度も複製すると下がります。範囲内 F1 は、正解 1 つに対応する予測をそれぞれ一致として数えるので、複製が見えません。そのために足しました |
| 判定役の監査 | 4 つの組み合わせ(モデル × 回 × 論文)の対応表、計 160 件を、別の AI の監査者が正解と突き合わせました。明確な誤りは 1 件、見落としは 0 件でした。監査では採点の式の甘さも指摘されたので、直しています |
完全一致と意味の照合(直す前、PDF 7 本・F1)
| モデル | 操作 | 材料 | 装置 | つながり | 条件 | |
|---|---|---|---|---|---|---|
| Claude Opus 5 | 完全一致 | 0.54 | 0.34 | 0.26 | 0.20 | 0.24 |
| 意味で照合(範囲内 F1) | 0.88 | 0.93 | 0.82 | 0.71 | 0.67 | |
| Copilot gpt-5.6-luna | 完全一致 | 0.67 | 0.37 | 0.20 | 0.26 | 0.34 |
| 意味で照合(範囲内 F1) | 0.93 | 0.95 | 0.75 | 0.68 | 0.59 | |
| gpt-oss-120b | 完全一致 | 0.55 | 0.32 | 0.16 | 0.17 | 0.30 |
| 意味で照合(範囲内 F1) | 0.78 | 0.74 | 0.44 | 0.52 | 0.51 |
操作では、上がった分の多くが、測定や評価の手順を分母から外したことによります。Claude の操作は、範囲外も含めて数えると 0.58 です。材料では、言い方の違いを吸収した分のほうが大きく、Claude の材料は範囲外も含めて約 0.74 です。意味で数えても低く残ったのは、つながりと条件、そして gpt-oss-120b の装置でした。
見つかった弱点
- 途中の成果物に名前が無い。 抽出の指示は「成果物は最後の手順にだけ置く」になっていました。途中の手順が作ったもの(混合した粉末、仮焼した試料)は、次の手順が「前の手順のもの」として指すだけで、作った側に名前が付いていませんでした。アプリのグラフは、前の手順に成果物が無いとき、名前の無い「〇〇の結果」というノードで埋めます。論文が名前を書いている成果物が、グラフに出てこないということです。
- 1 つの純度を、最後の原料にしか付けない。 本文が 5 つの元素をまとめて「純度 99.5%」と書いていると、純度は一番近い元素にだけ付いていました。PDF 7 本の正解には純度が 9 件あります。2 回ずつ抽出して拾えた数は、18 件のうち Claude が 9 件、Copilot が 1 件、
gpt-oss-120bが 5 件でした。
直したこと
- 後の手順が使う成果物には、作った手順で成果物の印を付け、使う側と同じ名前で書かせます。名前を付けるためだけの手順は作らせません。名寄せでも、成果物と材料の名前を同じに保ちます。
- 一度だけ書かれた純度や形状は、原料ごとに書き分けさせます。
- 同じ条件で組成だけを変えたシリーズ(x = 0, 0.2, 0.4 のような)は、組成ごとに手順を複製せず、1 本の手順の中で組成の値を並べさせます。それでも手順が 12 以上あり、見出しの種類の 3 倍以上あるときは、複製を疑って 1 回だけ書き直させます。
ここまでは 3 段階で直しました。
- 受け渡しの名前だけを足した版。 確認用の短い文章で、操作と材料の数字が下がりました。名前を付けるためだけの手順が増えたこと、
gpt-oss-120bが組成ごとに手順を丸ごと複製したこと(ベンチマークの見本の文章では、10 組成で 90 手順)が理由です。 - 指示に歯止めを足した版。 名前のための手順を作らない、純度を原料ごとに書く、組成シリーズは 1 本にする、の 3 つです。ところが、足した例文が評価に使った論文の文言そのものでした。指示と評価が分かれていないので、この版の数字は使っていません。
- 今の版。 例文を、評価に使ったどの文書にも出てこないものに差し替えました。あわせて、複製を検出して 1 回だけ書き直させる仕組みを足し、すべて測り直しました。下の「直したあと」は、この版の数字です。
結果
受け渡しに名前が付いている割合:
| モデル | 直す前(PDF 7 本/確認用 5 本) | 直したあと(12 本) |
|---|---|---|
| Claude Opus 5 | 40% / 33% | 100% |
| Copilot gpt-5.6-luna | 4% / 11% | 99% |
| gpt-oss-120b | 79% / 96% | 97% |
範囲内 F1(直す前 → 直したあと)。括弧の中は重複なしの適合率です。
| モデル | 操作 | 材料 | 装置 | つながり | 条件 | |
|---|---|---|---|---|---|---|
| PDF 7 本 | Claude Opus 5 | 0.88 → 0.88(0.54 → 0.53) | 0.93 → 0.92(0.44 → 0.62) | 0.82 → 0.93 | 0.71 → 0.84 | 0.67 → 0.71 |
| gpt-5.6-luna | 0.93 → 0.87(0.72 → 0.69) | 0.95 → 0.90(0.70 → 0.83) | 0.75 → 0.83 | 0.68 → 0.79 | 0.59 → 0.69 | |
| gpt-oss-120b | 0.78 → 0.70(0.62 → 0.52) | 0.74 → 0.75(0.70 → 0.64) | 0.44 → 0.42 | 0.52 → 0.51 | 0.51 → 0.54 | |
| 確認用 5 本 | Claude Opus 5 | 0.81 → 0.88(0.70 → 0.81) | 0.89 → 0.90(0.74 → 0.86) | 0.74 → 0.73 | 0.63 → 0.74 | 0.73 → 0.83 |
| gpt-5.6-luna | 0.85 → 0.81(0.48 → 0.86) | 0.80 → 0.76(0.49 → 0.86) | 0.78 → 0.62 | 0.59 → 0.67 | 0.69 → 0.64 | |
| gpt-oss-120b | 0.80 → 0.82(0.63 → 0.72) | 0.79 → 0.74(0.67 → 0.70) | 0.47 → 0.53 | 0.64 → 0.66 | 0.60 → 0.55 |
純度(PDF 7 本の正解 9 件 × 2 回 = 18 件のうち拾えた数): Claude 9 → 18、Copilot 1 → 11、gpt-oss-120b 5 → 0。
複製と判定された抽出(PDF 7 本と確認用 5 本の 24 回のうち)は、2 段階目の版で gpt-oss-120b が 2 回、Claude が 1 回でした。今の版では gpt-oss-120b が 1 回、Claude が 2 回です。今の版の 3 回はどれも同じ論文で、組成 3 つ × 仮焼温度 3 つを持っています。温度の違う分岐は正当なので、すべてが誤りとは限りません。
- つながりは、Claude と Copilot ではっきり上がりました。 PDF でも確認用でも上がっています。
gpt-oss-120bは変わりませんでした。 - ほかの項目は、24 個の差のうち 15 個が ±0.05 以内でした。 大きく動いたもののうち、
gpt-oss-120bの PDF の操作(0.78 → 0.70)の多くは 1 本の論文です。直したあとの 1 回で、組成ごとに共沈・ろ過・乾燥・仮焼の手順を書き分け、正解(分離と共沈の 2 操作だけ)に無い手順が増えました。この論文を除くと、落ち込みはほぼ消えます。Copilot の確認用の装置(0.78 → 0.62)は、主に合成ルートを 2 つ持つ 1 本の論文での揺れです。上がったもの(Claude の PDF の装置 +0.11、Copilot の PDF の条件 +0.10 など)の理由は、確かめていません。 - 純度は Claude と Copilot で拾えるようになりました。
gpt-oss-120bは逆に減りました。純度をほとんど書かなくなっています。理由は確かめていません。
分かったこと
- 抽出の弱点は、操作や材料の取りこぼしではなく、つながりと条件でした。 完全一致の数字では見えず、意味で照合して初めて分かりました。
- 数字の改善は、アプリのグラフの改善と同じ向きのはずです。 受け渡しに名前が付けば、論文が書いている途中の生成物が、グラフに実名で出ます。ただし、新しい指示で取り込んだノートのグラフは、アプリの画面ではまだ確かめていません。
- 小さめのオープンなモデルには、指示の追加が効きにくいです。
gpt-oss-120bは、受け渡しの名前は元から付けていました。一方で、つながりは伸びず、純度は減りました。
限界
- 論文は PDF 7 本と短い文章 5 本で、それぞれ 2 回です。1 本の論文で数字が大きく動きます(上の論文を除くと、
gpt-oss-120bの PDF の操作は 0.70 から 0.79 になります)。 - 判定役は Claude Opus 5 です。Claude の出力に甘い可能性は確かめていません。監査したのは 160 件です。
- 範囲内 F1 は、正解 1 つに対応する予測をそれぞれ一致として数えます。正解が値のリスト(850, 900, … °C)で、予測が 1 つずつのときもそうです。複製は重複なしの適合率で見ていますが、条件の F1 は、厳しく数えれば下がります。
- 正解データにも抜けがあります(上の「仮焼」)。
- 以前からある指示の例「Cu (shot, 99.999%)」は、確認用の 1 本(と、外したベンチマークの見本)の文言と同じです。
- 測ったのは英語の出力だけです。日本語の見出しで抽出したときも同じ指示が効きますが、精度は測っていません。名寄せで受け渡しの名前を揃える修正は、単体のテストだけで確かめています。
- 直した指示は、この測定のあとのリリースから入ります。
