ChatGPTとExcelソルバーを用いたプロセス最適化(第1回 ChatGPTを用いたデータの学習)

 2010年代後半から、塑性加工分野では機械学習を用いた加工条件最適化の研究が進みましたが、専用のソフトウエアやプログラミング技術が必要で、製造現場での利用には高いハードルがありました。しかし、2023年以降の生成AIの登場により、製造現場に近い生産技術者が自らノーコードでのデータの学習と最適化を行うことが可能になっています。

 本記事ではその実践手順を簡潔に紹介します。生産技術者にとって最も馴染みのあるデータ処理ソフトウエアはMicrosoft Excelです。そのため、本稿で紹介する手順では、データの学習部分をChatGPT(有料版)で実施し、それ以降の最適化計算はExcelのソルバー機能を用いることにしました。こうすることで、一度モデルが構築できれば、生成AIの環境が手元になくてもExcelだけで最適化が行えるようになります。本記事では、最適化の前半部分であるChatGPTによる学習手順に焦点を当てて紹介します。


【概要】

 生産現場には、加工速度、送り速度、温度、圧力、張力、電流値、工具位置などの様々な加工条件があります。これらの量はプロセスパラメータと呼ばれ、最適化やモデリングにおける説明変数となります。一方で、寸法、表面粗さ、成形品の強度等は目的変数となり、これらはプロセスパラメータから直接的に影響を受けます。モデル化とはこのプロセスパラメータ(説明変数)と加工結果(目的変数)の関係を数式やニューラルネットワーク等のモデルによって表現することであり、最適化とは狙いの加工結果になるようになプロセスパラメータを逆算的に求めることです。

 ChatGPTはPythonと連携することが可能で、言葉で(プロンプトで)ChatGPTに指示を出せば、Pythonコードを自ら書かなくてもこのモデル化と最適化を行うことができます。ChatGPT内にはPythonの実行環境もあります。

 しかし、見通しと、生産現場での汎用性を考えたときには、数式が目に見えたほうが安心感がありますし、コピーして社内で共有できるExcelファイルが便利です。また、Excelのソルバー機能も標準の機能であるにも関わらず、変数に制約をつける(たとえば,設備の上限荷重を設定するなど。)ことが可能で高機能な最適化ツールです。これらの観点から、本記事ではGhatGPTとExcelのソルバー機能を使ったプロセス最適化方法を紹介します。



【ChatGPTを用いた学習手順】

 ここでは、P1とP2(たとえば,ダイス角度と材料に付与する張力)の2種類のプロセスパラメータが、R1(たとえば、材料の厚み)という1種類の加工結果におよぼす影響をモデル化してみることにします。


①データの用意

 P1、P2、R1を含むCSVファイルをChatGPTにアップロードします。P1、P2が説明変数(プロセスパラメータ)、R1が目的変数(加工の結果)です。16組のデータがあります。

※このデータは、ある程度非線形性が強いデータを私が適当に作成したものです。



②ChatGPTによる学習

 ChatGPTに以下のプロンプトを送信します。

####

 アップロードしたCSVファイルは2種類の説明変数(P1、P2)と、1種類の目的変数(R1)のデータです。まずこのCSVの中身をよく見て、どこにどのデータが入っているかを確認してください。

 つぎに、このデータに対して2次から6次までの多項式関数近似をして、Excelの関数形式で出力してください。Excelのセルに直接貼り付けられる形式にしてください。桁落ちを避けるために係数の精度は15桁にしてください。P1の値はI1のセル、P2の値はI2のセルに対応させてください。

 過学習の度合いを確認したいので、次数別に3Dグラフを生成してください。グラフには、作成した数式によるワイヤーフレームと、元のデータのプロット(赤の×印)を表示してください。

####

 たったこれだけです。この指示によって、学習にはPythonのscikit-learn ライブラリが適用されました。桁落ち対策を指示しないと、勝手に係数が丸められて、近似精度が低下することがありました。要注意ポイントです。


③学習の結果

 ChatGPTから出力された3Dグラフが下記です。2次は近似精度が低く、5次と6次は元のデータのある位置ではよく近似できていますが、その間では値が暴れていて過学習傾向にあることが分かります。今回は3次か、4次がちょうど良さそうです。後にR1=0となるようなプロセスパラメータを最適化により求めに行きたいので、R1が0に近い、すなわちP1が400~500付近で素直に近似できていそうな4次を採用することにします。

 ChatGPTから出力された4次多項式のExcel関数がこれです。Excelのセルに貼り付ければすぐに使えるようになっています。このExcelのシートではI1のセルにプロセスパラメータP1が,I2のセルにプロセスパラメータのP2の値入りますので,数式の中にI1とI2が登場しています。つまり、ExcelのセルにP1とP2の値を入力すると瞬時にR1を算出してExcelのセルに表示することができます。


「 = -0.155643595387237 + -0.000039549151647*I1 + -0.00000043228668*I2 + 0.000014815476398*I1^2 + -0.000214478164838*I1*I2 + -0.000010372845324*I2^2 + -0.000000036111112*I1^3 + -0.000000255357147*I1^2*I2 + 0.000022805302553*I1*I2^2 + -0.000146854763259*I2^3 + 0.000000000029167*I1^4 + -0.000000000041667*I1^3*I2 + 0.000000007857143*I1^2*I2^2 + -0.000000570326471*I1*I2^3 + 0.000005120663457*I2^4 」


 元の4次多項式の形はこれです。

 P1^4のような変数単独の項だけでなく、(P1^3)×(P2)のような相互作用項もある数式が採用されていることが分かります。どのような数式で近似したいか?も、もし希望があればChatGPTに指示を出すことができます。今回はとくに指定をしませんでした。この式の中のaからkが係数で、「学習した」とは、すなわちこのaからkの係数の値を、計算式で求めるR1と元の学習用データのR1の差が小さくなるように決めたということです。



【おわりに】

 以上が、ChatGPTを用いたデータの学習手順でした。次回は、Excelにこの4次関数を組み込んでソルバーを用いた最適化を行います。つづき⇒ ChatGPTとExcelソルバーを用いたプロセス最適化(第2回 ソルバーを用いた最適化)(K)

Kubota Lab.

形ある工業製品はすべて、材料を加工することで生まれます。私たちの研究室では、医療機器・精密機械・航空機・自動車などへの応用を見据えた新しい塑性加工技術の研究に取り組んでいます。また、材料特性の評価、変形挙動の数値解析、機械学習を活用したプロセスの最適化、そして製品性能の検証まで、ものづくり全体を視野に入れた統合的な研究を推進しています。