Media > AI活用ユースケース > 品質管理 > 過去の試作データから次に試す実験条件を絞り込んで試作回数を減らす

過去の試作データから次に試す実験条件を絞り込んで試作回数を減らす

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

これまでに行った試作の「条件」と「結果」を入力に、次に試す価値が高い条件の候補を複数出します。あわせて、その条件が選ばれた理由を文章で示します。

サマリー
利用ツール
ChatGPT/Claude/Gemini/Python
対象業界
その他/医療/製造
対象部門
品質管理/研究開発
対象業務
比較検討/集計・分析
主な課題
データ分析に時間がかかる/判断に時間がかかる/属人化している
AIで行う処理
予測
主な効果
判断支援/属人化解消/工数削減
導入難易度
★★★★☆
実装レベル
本格構成
費用感
個別開発(大)
人間の確認
必須
現在工数
60h/月
AI導入後
20h/月
想定削減
67%
年間削減
480h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. 試作を行い、できたものの強度と透明度を測る
  2. 結果を電子実験ノートとExcelに書く
  3. 週1回の打ち合わせで、各自が結果を持ち寄る
  4. 前回からの変化を見て、次に変える条件を話し合う
  5. 経験のある担当者が「次は温度を10度上げて、配合比はこのまま」と決める
  6. 決めた条件を試作指示書に書き、試作を依頼する
  7. 数日後に結果が出て、1に戻る
導入後(After)
  1. 研究員が試作の結果を所定の形式で登録する
  2. 自動実験ノートの記述から、条件と結果を項目ごとに取り出す
  3. 研究員が取り出された内容を確認する
  4. 自動過去の全データをもとに、次に試す条件の候補を複数出す
  5. 自動候補ごとに、なぜその条件が選ばれたのかの説明文を作る
  6. 研究員が候補を見て、設備と安全とコストの制約から実施できるものを選ぶ
  7. 試作と測定を行う
  8. 自動結果を登録し、次の提案に反映する
各工程の詳しい説明を読む
  1. 試作を行い、できたものの強度と透明度を測る
  2. 結果を電子実験ノートとExcelに書く
  3. 週1回の打ち合わせで、各自が結果を持ち寄る
  4. 前回からの変化を見て、次に変える条件を話し合う
  5. 経験のある担当者が「次は温度を10度上げて、配合比はこのまま」と決める
  6. 決めた条件を試作指示書に書き、試作を依頼する
  7. 数日後に結果が出て、1に戻る

問題は4つあります。

(a)条件の決め方が属人化している。 6項目それぞれに5段階の選択肢があれば、組み合わせは15,625通りです。この中からどれを選ぶかは、経験のある担当者の勘で決まっています。その人が異動すると、テーマが止まります。

(b)一度に1つの条件しか動かせない。 何が効いたか分からなくなるのを避けるため、変える項目を1つに絞ります。確実ですが、組み合わせの効果を見つけられません。

(c)過去のデータがまとまっていない。 人ごと、テーマごとにExcelが分かれています。3年前に似た条件を試していても、気づけません。

(d)打ち合わせの時間の多くが、結果の整理に消える。 次を考える議論に入る前に、前回何をしてどうだったかを確認するだけで時間が過ぎます。

  1. 研究員が試作の結果を所定の形式で登録する
  2. 【自動】 実験ノートの記述から、条件と結果を項目ごとに取り出す
  3. 【人】 研究員が取り出された内容を確認する
  4. 【自動】 過去の全データをもとに、次に試す条件の候補を複数出す
  5. 【自動】 候補ごとに、なぜその条件が選ばれたのかの説明文を作る
  6. 【人】 研究員が候補を見て、設備と安全とコストの制約から実施できるものを選ぶ
  7. 試作と測定を行う
  8. 【自動】 結果を登録し、次の提案に反映する

自動化されるのは「記録を整理する」「候補を出す」「理由を説明する」の3つです。何を実際に試すかは人が決めます。

02今回想定するシステム構成

構成図
実験ノート・測定結果
   │
   ▼【自動】記述から条件と結果を取り出す
LLM API
   │
   ▼【人】研究員が確認
試行データベース(条件と結果の履歴)
   │
   ▼
Optuna(GPSampler)
   │  study.ask() ── 次に試す条件を提案
   │
   ├──▶ LLM API ── 提案の理由を説明する文章を作る
   │
   ▼
候補一覧(条件+理由)──【人が選ぶ】
   │
   ▼
試作・測定 ──▶ study.tell() で結果を戻す
役割想定する製品代替候補
処理エンジンOptuna(GPSampler)scikit-optimize、商用の実験計画支援サービス
実行環境Python
生成AIClaude APIOpenAI API、Gemini API
試行データの保管OptunaのRDB保存(SQLite、PostgreSQL、MySQL)社内のデータベース
記録の入力既存の電子実験ノートGoogleスプレッドシート、Excel

商用の実験計画支援サービスを先に検討してください。 条件の設定画面、結果の可視化、権限管理までパッケージ化されています。自前で組む価値があるのは、条件に社内固有の制約が多い場合や、既存の実験データベースと直接つなぎたい場合です。

なお、ここで使うOptunaはオープンソースのライブラリです。GPSamplerを使う場合はscipyとtorchが必要になります(CPU版で足ります)。

03どうやって実装するのか

Step1

処理の起点を決める

測定結果が登録されたことを起点にします。1回の試作が終わり、強度と透明度の値が入力された時点で、次の候補を出す処理を動かします。

ただし、候補を出す頻度は試作の回し方に合わせてください。 1回ずつ提案を受ける進め方と、1週間分をまとめて提案してもらう進め方があります。装置を1日単位で押さえる現場なら、まとめて提案するほうが合います。

Step2

入力データを集める

データ中身取得元
試作条件配合比、加熱温度、加熱時間、撹拌速度試作指示書、電子実験ノート
測定結果強度、透明度測定装置の出力
条件の範囲各項目の下限、上限、刻み研究員が事前に設定
実施上の制約同時に満たせない条件の組み合わせ研究員が事前に設定
過去の試作履歴これまでの条件と結果既存のExcel、実験ノート
Step3

データの取得方法を決める

過去の試作履歴: これが最も手のかかる部分です。人ごと、テーマごとに分かれたExcelを1つの形に揃えます。紙の実験ノートしかない場合は、この構成の前に記録を電子化する作業が必要です。 手書き記録の読み取りについては別のユースケース(UC-0034)で扱っています。

条件の範囲: 各項目について、下限と上限、動かせる刻みを決めます。Optunaでは、連続した数値は suggest_float(名前, 下限, 上限) で指定し、step を渡すと刻みを指定できます。0.1刻みでしか計量できない、といった現場の事情はここで表します。材料の銘柄のように選択肢が決まっているものは、カテゴリとして扱います。

試行データの保管: Optunaは試行の履歴をデータベースに保存できます。SQLiteのファイル1つでも動き、PostgreSQLやMySQLも使えます。create_study(study_name=..., storage=..., load_if_exists=True) と書くことで、前回の続きから再開できます。 テーマごとに1つのstudyを作る形にすると、担当が変わっても履歴が引き継がれます。

Step4

AIへ渡す前に整形する

  1. 単位の統一 … 「80度」と「353K」、「0.5%」と「5000ppm」が混ざります。1つに揃えます。ここがずれると、提案そのものが意味を持ちません
  2. 同条件の繰り返しの扱い … 同じ条件で複数回試している場合があります。平均を1件として扱うか、個別に扱うかを決めます。測定のばらつきが大きい場合は、この判断が結果を左右します
  3. 失敗した試作の扱い … 装置が止まった、材料が足りなかった、といった理由で測定できなかった試行は、結果が悪かったのとは意味が違います。Optunaでは study.tell(trial, state=optuna.trial.TrialState.FAIL) のように状態を伝えられます
  4. 範囲外の記録の除外 … 過去のデータに、今回設定した範囲の外にある条件が含まれることがあります。どう扱うかを決めてから取り込みます
Step5

AIに処理させる

役割を明確に分けます。ここがこの構成で最も大事な点です。

最適化ライブラリにさせること: 次に試す条件を決めること。過去の条件と結果から、まだ試していない領域のうち良い結果が期待できるところを探します。OptunaのGPSamplerはガウス過程を当てはめ、獲得関数を最適化して次の条件を提案します。カーネルには2回微分可能なMaternカーネル(nu=2.5)が使われ、各項目の効き方の違いを扱えるようになっています。

生成AIにさせること:

処理内容
実験ノートの構造化自由に書かれた記述から、条件と結果を項目ごとに取り出す
単位と表記の揺れの指摘「80度」と「353K」が混ざっていることを指摘する
提案の説明文の作成「この条件は、温度が高く時間が短い領域をまだ試していないため」のように、選ばれた理由を読みやすく書く
制約に触れる候補の指摘「この温度と時間の組み合わせは、材料の分解温度を超える可能性がある」と注意を促す

生成AIに数値を予測させないでください。 「この条件なら強度は45程度になると思われます」という文章を生成AIに書かせると、根拠のない数値が現場に流れます。説明文には、過去のどの試行と比べてどの方向へ動かした提案なのかだけを書かせます。

Step6

指示内容を固定する

あなたは材料開発の研究員を支援する担当者です。
最適化ライブラリが提案した次の試作条件について、
過去の試行と比べて何が違うのかを説明する文章を作ってください。

【厳守事項】
- 測定結果の予測値を書かないでください。
  「強度は45程度になる」のような数値の予測は絶対に書かないでください。
- 提案された条件の数値を書き換えないでください。
  そのまま引用してください。
- 説明には、過去のどの試行番号と比べているのかを必ず入れてください。
  比較対象のない説明を書かないでください。
- 下に示す実施上の制約に触れる可能性がある場合は、
  cautions にその内容を書いてください。制約は書き換えないでください。
- 化学的・物理的な理由を推測で書かないでください。
  「温度を上げると結晶化が進むため」のような説明は、
  過去の試行データから読み取れる場合を除いて書かないでください。

【提案された条件】
{suggested_params}

【過去の試行(条件と結果)】
{past_trials}

【実施上の制約】
{constraints}

最後の1行が効きます。 生成AIは理由を求められると、もっともらしい化学の説明を書きます。それが正しいかどうかは、この仕組みでは確かめられません。データから言えることだけを書かせてください。

Step7

出力形式を固定する

{
  "trial_number": 0,
  "params": {
    "ratio_a": 0.0,
    "ratio_b": 0.0,
    "ratio_c": 0.0,
    "temperature_c": 0,
    "duration_min": 0,
    "stirring_rpm": 0
  },
  "compared_with": [],
  "difference_summary": "",
  "cautions": [],
  "feasible": "yes | no | unknown",
  "needs_review": []
}

params は最適化ライブラリが出した値をそのまま入れます。生成AIの出力で上書きしないでください。 feasible は研究員が判断する欄として空のまま渡し、人が埋めます。

Step8

システムへ連携する

提案の受け取りと結果の戻しには、Optunaの Ask-and-Tell インターフェースを使います。これは、目的関数をプログラムの中で完結させずに、外で評価した結果を戻す使い方のために用意されています。

# 次に試す条件をまとめて受け取る
trial_numbers, candidates = [], []
for _ in range(batch_size):
    trial = study.ask()
    trial_numbers.append(trial.number)
    candidates.append({
        "temperature_c": trial.suggest_float("temperature_c", 60, 140, step=5),
        "duration_min": trial.suggest_float("duration_min", 10, 120, step=5),
    })

# ここで試作と測定を行う(数日かかる)

# 結果を戻す
for n, value in zip(trial_numbers, measured_values):
    study.tell(n, value)

まとめて提案を受け取れる点が、実験の現場に合っています。 装置を1日押さえて5条件を並行して試す、といった進め方ができます。study.tell() には試行番号を渡せるので、試作が数日かかっても、その間プログラムを動かし続ける必要はありません。

測る項目が複数ある場合(強度と透明度)は、多目的の最適化として扱います。GPSamplerは多目的の最適化にも対応しており、「どちらも満たす条件の集まり」を探します。また、constraints_func を渡すと、満たすべき条件(不等式の制約)を扱えます。

試作指示書の作成は、この仕組みの外で行ってください。人が選んだ条件だけが指示書になるという流れを崩さないようにします。

Step9

人が確認する

全件、人が確認します。運用が安定しても自動化しません。

理由は2つあります。1つは、提案された条件が物理的・化学的に危ない場合があるためです。最適化ライブラリは過去のデータの範囲で探索するだけで、材料の分解温度も、装置の耐圧も知りません。もう1つは、条件には数値に表れないコストがあるためです。ある材料だけ納期が3か月かかる、といった事情は人しか知りません。

確認を速くするための設計が重要です。

  • 提案された条件を、過去の試行と同じ表の中に並べて表示する
  • 各項目について、過去に試した範囲のどこに位置するかを示す
  • 制約に触れる可能性がある候補に印を付ける
  • 「この候補は実施しない」を選んだとき、その理由を1行で記録する

最後の1つを記録しておくと、次から同じ候補が出たときに判断が速くなります。 繰り返し却下される領域が見えたら、条件の範囲そのものを狭める合図です。

Step10

例外に対処する

起きること対応
試作が失敗して測定できなかった悪い結果として戻さない。失敗の状態として戻す
同じ条件の結果が前回と大きく違う測定のばらつきを疑う。同条件を再度試すか、ばらつきの大きさを先に測る
提案された条件が危険(分解温度を超えるなど)実施しないことを記録し、条件の範囲を狭める
過去のデータが30件未満提案の質が上がらない。GPSamplerは既定で最初の10試行を別の方法で選ぶ。まずは範囲全体に散らばるように試す
測定値の単位が混ざっている取り込み時に弾く。推測で換算しない
条件の範囲を途中で変えたくなった新しいstudyを作る。途中で範囲だけ変えると履歴の意味が変わる
生成AIが結果の予測値を書いた出力の検査で弾く。数値を含む予測表現を検出して差し戻す
担当者が異動したデータベースに履歴が残っているため、study名で引き継ぐ
複数人が同時に提案を受け取るデータベースで保管し、同じ条件が重複して提案されないようにする
Step11

記録を残す

  • 試作ごとの条件と結果(失敗した試行も、失敗として
  • 条件の範囲と制約の設定内容、変更した日
  • 提案された候補の全件(実施しなかったものも含む)
  • 実施しなかった候補と、その理由
  • 生成AIが作った説明文と、研究員が直した内容

実施しなかった候補の記録が資産になります。 「提案された20件のうち16件を実施しなかった」という状態が続くなら、条件の範囲か制約の設定が現場と合っていません。これは提案の精度の問題ではなく、設定の問題です。

04実装レベルの3段階

最小構成:過去データをExcelにまとめ、手元のPythonで提案を出す / 提案のみ
半自動化:上記+実験ノートの構造化+説明文の生成。結果の登録は手作業 / 提案と整理
本格構成:上記+試行データベースでの履歴管理+測定装置からの結果取り込み+複数テーマの並行管理 / 条件の決定以外

最小構成でも効果が出ます。 条件を考える40分が、候補を見て選ぶ10分になるためです。ただし、過去データを毎回Excelから読み込む形だと、履歴の管理が続きません。本格構成の価値は、提案の精度ではなく履歴が残ることにあります。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
4 名
月間件数
60 件
1件あたり現在時間
60 分
1件あたり導入後時間
20 分
現在  60件 × 60分 ÷ 60 = 60 時間/月
導入後 60件 × 20分 ÷ 60 = 20 時間/月
月間削減時間
40h
削減率
67%
年間削減時間
480h
年間金額換算(時間単価4,000円)
192万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 条件を変えながら試作と測定を繰り返す開発テーマがあり、1回の試作に半日以上かかる企業。条件が数値で表せて、結果も数値で測れること。過去の試作記録が最低30件は残っていること。
向いていない
  1. 条件が3つ以下で、全通り試せる場合。結果の測定にばらつきが大きく、同じ条件でも値が安定しない場合。試作記録が紙のままで、条件と結果が対応づけられない場合。

07最小構成で試す方法

  1. 終わったテーマの試作記録を30件以上用意する(条件と結果が対応づいているもの)
  2. そのうち最初の15件だけをOptunaに入れる
  3. 次の条件を提案させ、それが実際に16件目以降に試された条件と近いかを見る
  4. 実際に最も良かった条件に、何回目の提案でたどり着くかを数える

終わったテーマで試すのが要点です。 答えが分かっているデータで、提案が良い方向へ向かうかを確かめられます。新しいテーマで始めると、良し悪しを判断する基準がありません。

判断の目安は次のとおりです。

結果判断
実際より少ない回数で最良の条件に近づいた導入する価値がある
同じくらいの回数だった条件の範囲の設定を見直す。刻みが細かすぎないかを確認する
まったく違う方向へ進んだ測定のばらつきが大きい可能性がある。同条件を3回試して、値の幅を先に測る

記録の構造化だけなら、実験ノートの記述を数件貼り付けて「条件と結果を項目ごとに表にして」と聞くだけで試せます。ここだけでも、打ち合わせ前の整理は軽くなります。

08実装時につまずきやすいポイント

問題対策
生成AIが結果の予測値を書くプロンプトで禁止し、出力の検査でも弾く。二重で防ぐ
生成AIがもっともらしい化学の説明を作るデータから読み取れることだけを書かせる。理由の推測を禁じる
過去データの単位がバラバラ取り込み時に弾く。推測で換算すると、提案そのものが壊れる
測定のばらつきが大きく提案が安定しない同条件を3回試してばらつきの幅を先に測る。ばらつきより小さい差を追わない
提案された条件が危険制約として設定する。設定しきれない部分は人の確認で止める
条件の刻みが細かすぎる現場で実際に計量・設定できる刻みに合わせる。0.01刻みで指示しても再現できない
途中で条件の範囲を変えてしまう新しいstudyを作る。履歴の意味を変えない
提案の大半が実施されない提案の精度ではなく設定の問題。範囲と制約を見直す
履歴がファイルに散らばるデータベースに保管する。担当者の手元に置かない

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: 材料の配合比、製造条件、測定結果。製品の性能を決める中核の情報で、多くの場合ノウハウとして秘密管理の対象になります。

  1. 外部AIへの入力可否 … 配合比と製造条件は、特許出願前の発明に当たることがあります。出願前の内容を外部サービスへ入力してよいかを、知財担当と情報管理規程で必ず確認してください
  2. どこまでを外部に出すか … 条件の提案そのものは、社内で動かすライブラリで完結します。外部AIに渡すのは説明文の作成だけに絞るという分け方ができます。材料名を記号に置き換えて渡す方法も検討してください
  3. 秘密管理の記録 … ノウハウとして守るには、秘密として管理していた事実が必要になることがあります。アクセス権限とログを残してください
  4. アクセス権限 … 試行データベースへのアクセスを、そのテーマの担当者に限定します。全社共有の場所に置かないでください
  5. 自動実行してよい範囲 … 候補の提示までが自動化の範囲です。提案された条件をそのまま試作指示書にする構成にしないでください。 危険な条件が指示書になる恐れがあります

誤りが起きた場合のリスクは、危険な条件での試作による事故、開発の方向を誤ることによる期間の遅れ、そして出願前情報の流出です。1つ目は人の確認で、3つ目は外部に出す範囲を絞ることで防ぎます。

10まず何から始めるか

1週目:終わったテーマで検証する

過去に完了したテーマの試作記録30件以上で、第8章の検証を行います。この結果で導入可否が決まります。 実際より少ない回数で良い条件に近づけるなら進めます。

2週目:測定のばらつきを測る

同じ条件で3回試作し、測定値がどれくらい振れるかを確かめます。ばらつきより小さい差を追っても意味がありません。 ここで振れ幅が大きいと分かれば、この構成より先に測定方法の見直しが必要です。

3〜4週目:1テーマで回してみる

進行中のテーマを1つ選び、条件の範囲と制約を設定して、提案を受けながら4週間回します。提案された候補のうち、何件を実施し、何件を却下したかを記録します。

2か月目以降: 却下の理由を見て、条件の範囲と制約を調整します。却下が半分を超えるうちは、テーマを増やさないでください。 設定が現場と合っていない状態で広げると、使われなくなります。並行して、知財担当と「どこまでを外部AIに渡してよいか」を決めておいてください。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-09-14/最終更新:2026-09-14
確認した内容情報源確認日
OptunaにAsk-and-Tellインターフェースがあり、study.ask() で条件を受け取り、外部で評価した結果を study.tell() で戻せること。study.tell() に試行番号を渡せること。バッチでまとめて条件を受け取り、まとめて結果を戻す使い方ができること。失敗した試行を TrialState で伝えられることOptuna: Ask-and-Tell Interface2026-09-14
GPSamplerがガウス過程に基づくベイズ最適化のサンプラーであること。カーネルにnu=2.5のMaternカーネルを使い、項目ごとの長さスケールを自動で決めること。多目的の最適化と、constraints_func による不等式制約に対応すること。scipyとtorchが必要であること。既定で最初の10試行を別のサンプラーで選ぶことOptuna: optuna.samplers.GPSampler2026-09-14
試行の履歴をデータベースに保存して、あとから再開できること。SQLiteのほかPostgreSQLやMySQLが使えること。load_if_exists=True で既存のstudyを読み込めることOptuna: Saving/Resuming Study with RDB Backend2026-09-14

条件の刻みや制約の表し方は、扱う材料と装置によって異なります。この部分は利用環境に応じた個別確認が必要です。 出願前の情報を外部サービスへ入力してよいかは、知財担当と情報管理規程で確認してください。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-0041)についてのご相談はこちらから。

AI活用について相談する
目次