LLMに推論させるより実装させろ—7年半の定点観測で気づいたこと
はじめに
「最新のLLMなら、fine-tuningなしでも古典的な手法を超えられるのでは?」
2026年1月、私はこの仮説を検証するため、7年半前から定点観測に使っているベンチマークに再挑戦した。
結論から言うと、専門性の高い問題は、まだLLM単体では十分に解けない 。
プロンプトエンジニアリングを重ねてF1=76%が限界だった。一方、BioBERTをfine-tuningすると学習時間25分、学習コスト$2でF1=91%を達成した。
良質な学習データがあれば、精度を大幅に上回ることができる。
CHEMDNERとは
CHEMDNERは、BioCreative IV(2013年)で提案された化学物質名抽出タスクだ。BioCreativeはバイオテキストマイニングの国際コンペティションで、CHEMDNERはその第4回大会で「Chemical compound and drug name recognition task」として実施された。
PubMed論文から化学物質名を抽出するタスクで、当時のベストスコアはF1=87.39%だった。
私にとってCHEMDNERは、その時々の技術力を測る「定点観測ツール」になっている。
定点観測の歴史
2018年6月:Bi-LSTM-CRF
学部の授業でCHEMDNERに挑戦した。Bi-LSTM-CRFというアーキテクチャを採用し、GPUで丸1日学習させた。
結果はF1=85.80% 。2013年の参加26チーム中6〜7位相当のスコアだった。

当時のレポートブログに掲載したスクリーンショットしか見つからなかった
2019年8月:BERTファインチューニング
2018年10月にGoogleからBERTが発表され、その後BioBERTやPubMedBERTといったライフサイエンス特化型のBERTが登場した。私もこれらをファインチューニングすることに取り組んだ。
当時の記録がXに残っている:
生命医学特化のBioBERTでCHEMDNERのデータセット1%(100 abstracts)にfine-tuningでF1=84.34%出たっぽい
データセットの1%だけで2013年のSOTA(87.39%)に迫るスコアが出た。
2024年1月:LLM API
GPT-4が登場し、LLMが広く認知され始めた頃。GitHub CopilotとChatGPTの支援を受けながら、OpenAI APIを叩くだけの実装を試した。
101分で実装完了、F1=60.16% 。2019年のBioBERT(84%)から大きく後退した。
実装は圧倒的に楽になったが、精度は出なかった。

2026年1月:再挑戦
2年が経ち、GPT-5.2が登場した。Claude Code(Opus 4.5)も使えるようになった。
「今度こそLLMだけで解けるのでは?」
この仮説を検証するため、再度CHEMDNERに挑んだ。
比較対象:SOTA

検証1: LLMアプローチ
まずはLLMのみで、fine-tuningなしでどこまで精度が出るか検証した。
実験設定
-
データセット : CHEMDNER evaluation set(2,646 documents)
-
モデル : GPT-5.2(OpenAI API)
-
ベースライン : Zero-shot prompting
実験結果

効果があった施策
-
Few-shot : 「docosahexaenoic acidは化学物質」「insulinはタンパク質(化学物質ではない)」といった境界ケースを示すと精度が上がった
-
Self-verify : 抽出と検証を分離し、False Positiveを削減
-
MRC形式 : MRC(Machine Reading Comprehension)は機械読解のこと。タスクを「この文章に化学物質名はありますか?」という質問応答形式に変換する。単独ではFew-shotより劣るが、Self-verifyと組み合わせると最高精度を達成
効果がなかった施策
-
Chain-of-Thought : 「考えさせる」と過度に保守的になり、Recallが低下
-
Few-shot例の増加 : 量より質。プロンプトが長くなると注意が分散
コストと時間

結果
試した範囲ではF1=76%前後で頭打ち だった。
検証2: Fine-tuningアプローチ
LLMのみでは限界を感じた。Claude Codeから「BioBERTをfine-tuningする」という選択肢が提案されたので、制限を外して試してみることにした。
実験設定
-
データセット : CHEMDNER training set(3,500 abstracts)、development set(3,500 abstracts)
-
ベースモデル : BioBERT v1.1(ライフサイエンス特化型BERT)
-
インフラ : GCP Compute Engine(a2-highgpu-1g、NVIDIA A100 GPU)
-
管理 : Terraform(後でクリーンナップしやすいように)
実装
私からClaude Codeへの指示は「クラウド環境を使うならTerraformで作成し、後でクリーンナップが簡単にできるようにすること」だけだ。
Claude Codeは以下を自動で実装した:
-
Terraform設定ファイル(GCPインスタンス定義)
-
BioBERTファインチューニングコード
-
推論・評価スクリプト
-
セットアップ・実行スクリプト
コストと時間

実験結果

LLMの最高値(76%)を15pt上回り、2013年のSOTA(87%)も超えた。
比較

LLMは精度向上のために複数のプロンプト技法を試す必要があり、試行錯誤のコストがかかる。Fine-tuningは1回の学習で高精度を達成した。
Claude Codeとの協働
今回の検証は、Claude Code(Opus 4.5)との協働で進めた。私が方針を決め、Claude Codeが全ての実装を担当した。
協働のポイント
最も重要なのは、生成AIは自分より賢い選択肢を持っていると自覚することだ。
私は最初「LLMだけで解きたい」という制約を持っていた。しかし、Claude Codeが「fine-tuningという選択肢もある」と提案してきたとき、その制約を外した。
結果として、LLMのみで頭打ちだったF1=76%から、fine-tuningでF1=91%まで改善できた。
AIの提案を取り入れてみる。実装の時間はほとんどかからないので、ダメならrejectすればいい。この姿勢が有効だった。
人間の役割:データリークの検出
一方で、AIに任せきりにできない部分もある。
今回、Claude CodeがFew-shot例をevaluation set(評価対象データ)から取得していた。データリークだ。これでは「答えを見てからテストを受ける」ようなもので、精度が過大評価される。training setから取得するよう修正した。
機械学習の実験では基本的な注意点だが、AIは指摘されるまで気づかなかった。人間側にある程度の背景知識がないと、今回のミスは検出できない。
学び
良質な学習データがあれば、精度を大幅に上回ることができる。
2022年末にChatGPTが登場して以来、私は「fine-tuningは不要になった」と思っていた。確かに多くのタスクでそうだろう。
しかし、専門ドメインのタスクには、LLM単体ではまだ解けない問題がある。CHEMDNERのような化学物質名抽出は、その一例だ。
今回の検証では、fine-tuningが圧勝した。LLMは7回の試行で76%が限界だったが、fine-tuningは1回の学習で91%を達成した。
ただし、これはCHEMDNERという数千規模の学習データがあるタスク だったからできたことだ。データがなければfine-tuningはできない。結局、データが重要という原則は変わらない。
まとめ

CHEMDNERという定点観測を7年半続けてきた。
2024年頃、私は「複雑な実装は要らない、LLM APIに投げればそれで解決だ」と思っていた。モデルが向上すれば、シンプルなAPI呼び出しであらゆるタスクが解けるようになると期待していた。
しかし、今回の実験で気づいたことがある。
モデルの進化により、LLM自身があらゆる問題を解ける能力も向上している。しかし、それ以上に問題を解くための力—調査力、コーディング能力、インフラ構築能力—の向上幅が大きい 。
私はAPIを叩くだけで解けることを期待していたが、現実はClaude Codeがfine-tuningコードを書いてくれることで問題が解けた。
専門性の高い問題は、まだLLM単体では十分に解けない。しかし、良質な学習データがあれば、精度を大幅に上回ることができる。
引き続き定点観測を続ける。