CAE教育におけるLLM活用の試み
株式会社インサイト
2024/06/28
第94回関西CAE懇話会
10:00-10:35

Copyright (C) 2024, Insight, Inc.

1

目次
1. LLMについて(2)2. インサイトのLLMに関する現在の取り組み
3. LLaMA 2(1)4. Fine tuning:ELYZA-japanese-Llama-2-7b
5. 弊社事例2:教育アプリのコンテンツによるLLMチューニング
6. データセットの拡張とロール(役割)による精度変化の検証
7. RAG(5)8.インサイトのLLMに関する今後の取り組み(2)Copyright (C) 2024, Insight, Inc.

2

1. LLMについて(1)• Large Language Model• 最近の進歩が、著しい。

• GPT-4o(5/13), Claude 3.5 Sonnet(6/20)、Llama-3-ELYZA-JP(6/26)• 今年の動向• OpenAIは、Microsoftとがっつり組む(Copilot)。今や、Appleとも連携。
• GoogleはGemini 1.5(24/2/15), Gemini Flash(軽量モデル)• anthropicのClaude 3.5 Sonett• Microsoftは、Phi-3オープンモデル(24/4/23)• CAEや計算力学をやっている者としてどのように捉えて、どのように関係を持つべきか???
• 余り、きょろきょろしたくない。
• LLMのトップはこれからも 入れ替わりが激しいと思う。
• それを前提とした スタンスを取るべきである。
Copyright (C) 2024, Insight, Inc.

3

1. LLMについて(2)• そもそも 教育目的の LLM の利用というのは有望なのか。

• 問題を解かせて、正解を当てさせる• 模擬問題とその正解を作らせる• 難解な部分を解説させる• 2つの異なる概念の差等、テキストと異なる視点での分析をさせる• 一般的な疑問点に答える• 学習のペースメーカーやナビゲータとなる• リスクの有る部分• ハルシネーション(幻覚)• 学習者は、間違いに気付かない• 複数のLLMに尋ねる???

• 証明をさせたが、不得意だった
Copyright (C) 2024, Insight, Inc.

4

2.インサイトのLLMに関する現在の取り組み• 対象は、機械学会計算力学技術者認定試験固体力学分野2級の合格支援• 既にワープロベースの合格対策テキストを、受験者の学習を支援する商品として書籍の形で保有する。
• このコンテンツの内、使い易そうな部分を取り出し、スマホアプリ化した。
• そのデータベースをLLMのカスタマイズの為に使えないかと考えた。
• カスタマイズして合格支援と言う形は、究極の商品像とは限らない
Copyright (C) 2024, Insight, Inc.

5

2.スマホ教育アプリ• Google Play StoreやApple Storeで「CAE 固体」でヒット

Copyright (C) 2024, Insight, Inc.

6

2.対話型AIをCAEの教育に使えないか...
• スマホ教育アプリのコンテンツでLLMのカスタマイズを行いました

Copyright (C) 2024, Insight, Inc.

7

3. LLaMA 2[1]••••Meta AIにより公開されるLLM
Acceptable Use Policyに従う限りで学術・商用利用可能
7B/13B/70Bと様々なサイズのモデルが公開
日本語データセットでFine-tuningしたELYZA-japanese-Llama-2-7b[2]も公開されている• 「ELYZA-japanese-Llama-2-7b」を家庭用のGPUで動かす• 最初は、fine tuningを試した。
• fine tuningは転移学習で言うfine tuningと同じ
Copyright (C) 2024, Insight, Inc.

8

3. ELYZA-japanese-Llama-2-7b手順• 右図のプログラムを作成し実行する。
• 学習済みモデルは自動的にダウンロードされる• QLoRA[16]と呼ばれる手法を用いてFine-tuning• メモリ消費量を抑えて学習• 10GBのGPUがあれば実行可能• 小規模のデータセットであれば10分程度で損失が収束import torchfrom transformers import AutoModelForCausalLM, AutoTokenizer
B_INST, E_INST = "
", "
"
B_SYS, E_SYS = "
¥n", "¥n
¥n¥n"
DEFAULT_SYSTEM_PROMPT = "あなたは誠実で優秀な日本人のアシスタントです。"
def main():model_name = "elyza/ELYZA-japanese-Llama-2-7b-instruct"
tokenizer = AutoTokenizer.from_pretrained(model_name)model = AutoModelForCausalLM.from_pretrained(
model_name,torch_dtype="auto")
if torch.cuda.is_available():model = model.to("cuda")
passwhile True:
text = input("############ プロンプトを入力してください: ")if text.strip() == "q":break
prompt = "{bos_token}{b_inst} {system}{prompt} {e_inst} ".format(
bos_token=tokenizer.bos_token,
b_inst=B_INST,
system=f"{B_SYS}{DEFAULT_SYSTEM_PROMPT}{E_SYS}",
prompt=text,
e_inst=E_INST,)
with torch.no_grad():token_ids = tokenizer.encode(
prompt,add_special_tokens=False,
return_tensors="pt")output_ids = model.generate(
token_ids.to(model.device),
max_new_tokens=512,
pad_token_id=tokenizer.pad_token_id,
eos_token_id=tokenizer.eos_token_id,)
pass
output = tokenizer.decode(
output_ids.tolist()[0][token_ids.size(1):],
skip_special_tokens=True)
print(f"############ 出力: {output}")
pass
pass
if __name__ == "__main__":main()
pass

Copyright (C) 2024, Insight, Inc.

9

3. ELYZA-japanese-Llama-2-7b
QLoRA: Quantized Low Rank Adapters
必要なメモリ消費量を小さく抑えつつLLMのファインチューニングを行う手法

ネットワークのパラメータの量子化• 4 bit Normal Float量子化• 二重量子化Low Rank Adapters
事前学習済みパラメータからの差分を計算することでFinetuningを行うℎ = 𝑊𝑊0 𝑥𝑥 + 𝑩𝑩𝑩𝑩𝑥𝑥,

𝑩𝑩 ∈ ℝ𝑑𝑑×𝑟𝑟 , 𝑨𝑨 ∈ ℝ𝑟𝑟×𝑘𝑘

市販の家庭用GPUでLLMのファインチューニングも可能！

Copyright (C) 2024, Insight, Inc.

10

4. Fine tuning:ELYZA-japanese-Llama-2-7b
Fine-tuning例• 弊社のHPから簡易的なデータセットを作成

Copyright (C) 2024, Insight, Inc.

11

4. 弊社事例1: 弊社HPの内容
fine tuning実行例############ プロンプトを入力してください: 株式会社インサイトとは何ですか？
############ 出力: 私はインサイト株式会社の一員として、人工知能や機械学習の技術を使用したソフトウェアの開発に携わっております。特に、エンジニアリングソフトの自動化、およびデータを使用した意思決定のサポートをするソフトウェアの開発に力をいれております。
############ プロンプトを入力してください: Meshman_Nastran_I/F for ADVENTUREとMeshman_ParticleViewer_HPCの用途の違いを比較し、簡単にまとめてください。
############ 出力: Meshman_Nastran_I/F for ADVENTUREとMeshman_ParticleViewer_HPCはそれぞれ異なing tasksを行います。
Meshman_Nastran_I/F for ADVENTUREは、CAEシステムとの仲立ちをするソフトウェアです。手順としては、CAEシス
テムの予め定義されたフォーマットのデータを改変し、Meshman_Nastran_I/F for ADVENTUREの出力フォーマットに変換します。
Meshman_ParticleViewer_HPCは、粒子法、差分法、ボクセル法向けにSTLファイルから自動生成された格子を表示するソフトウェアです。手順としては、粒子法、差分法、ボクセル法向けにSTLファイルから格子を作成し、Meshman_ParticleViewer_HPCの出力フォーマットに変換します。

内容に誤りはあるが、記述の方向性はあっている。データ拡張で性能が向上する。
Copyright (C) 2024, Insight, Inc.

12

より詳しい内容のセミナー• 7/2(火) 12:00-12:30＜参加無料＞「計算力学やプログラミン
グにおける生成AIチャットのプロンプトエ
ンジニアリング Ver. 2」• 7/9(火) 12:00-12:30＜参加無料＞「計算力学におけるLLMのトライアル紹介Ver. 3」

Copyright (C) 2024, Insight, Inc.

13

5. 弊社事例2:教育アプリのコンテンツによるLLMチューニング
固体力学2級合格対策テキストの模擬試験問題集を元に問題と答えのペアを作成
しFine-tuningを実行{"input": "関数$f(x,y)=¥¥sin{(x^2+y)}$を、点$(0,0)$の回りで一次迄テイラー展開したとき、正しいものは次のうちどれか?¥n - 1. $f(x,y)=1$¥n - 2.
$f(x,y)=x$¥n - 3. $f(x,y)=x+2y^2$¥n - 4. $f(x,y)=y$¥n¥n","output": "正解は4の、「$f(x,y)=y$」です。"},{"input": "$A$、$B$は$n$次正方行列、$c$は実数とする。行列式$(|A|=¥¥det{A})$の性質で正しい物は次の内どれか。¥n - 1. $|cA|=|c|^n|A|$¥n - 2.
$|cA|=c^n|A|$¥n - 3. $|AB|=|A|^n|B|$¥n - 4. $|AB|=|A^T|^n|B|$¥n¥n","output": "正解は2の、「$|cA|=c^n|A|$」です。"},{"input": "関数$f(x)$の1階微分$f^¥¥prime(x)$の中央差分と後退差分の式がこの順序でそれぞれ正しく記述されている組み合わせは①～④のどれか。¥n¥n式A. $f^¥¥prime(x)¥¥approx¥¥frac{-f(x-h)+f(x)}{h}$¥n式B. $f^¥¥prime(x)¥¥approx¥¥frac{f(x+h)-f(x-h)}{2h}$¥n式C.
$f^¥¥prime(x)¥¥approx¥¥frac{f(x+2h)-f(x-2h)}{h}$¥n式D. $f^¥¥prime(x)¥¥approx¥¥frac{f(x-h)+f(x)}{h}$¥n式E.
$f^¥¥prime(x)¥¥approx¥¥frac{f(x+2h)-f(x)}{h}$¥n¥n - 1. C、A¥n - 2. E、D¥n - 3. B、A¥n - 4. B、E¥n¥n","output": "正解は3の、「B、A」です。"},...

Copyright (C) 2024, Insight, Inc.

14

5. 教育アプリのコンテンツによるLLMチューニング
正解率

20問 / 63問 ⇒ 31.7%
ランダムレート (25%)を多少上回る正解率所感

LLMのファインチューニングは参入障壁は低いが、実務に耐えうる性能を引き出すためには更なる改善が必要で、ここから先はデータ拡張等の工夫が必要だろう。
Copyright (C) 2024, Insight, Inc.

15

5. 教育アプリのコンテンツによるLLMチューニング
• 正解した例

Copyright (C) 2024, Insight, Inc.

16

5. 教育アプリのコンテンツによるLLMチューニング
• 不正解
だった例
• 正解は、
3(B、A)• 答え方のルールを守ってないCopyright (C) 2024, Insight, Inc.

17

6.データセットの拡張とロール(役割)による精度変化の検証
2024/03/29~

Copyright (C) 2024, Insight, Inc.

18

6.データセットの拡張
一つの問題につき、選択肢の順番をランダムに変更した問題を合計4つ作成

Copyright (C) 2024, Insight, Inc.

19

6.結果
正解率

214問 / 252問 ⇒ 84.9%••••

31.7% ⇒ 84.9%へ正答率が劇的に上昇した
データ拡張は効果が有る
更なるデータ拡張を予定している
ホールドアウトを行っていない

Copyright (C) 2024, Insight, Inc.

20

6.ロールの設定
あなたは誠実で優秀な日本人のアシスタントです。

あなたは誠実で優秀な日本人のアシスタントで、固体力学に関する有限要素法と材料力学の知識に精通しています。問われた問題に対して的確に回答することができます。

214問 / 252問 ⇒ 84.9%

210問 / 252問 ⇒ 83.3%

Copyright (C) 2024, Insight, Inc.

21

ロールの設定ロール

正答率

あなたは誠実で優秀な日本人のアシスタントです。

84.9%

あなたは誠実で優秀な日本人のアシスタントで、固体力学に関する有限要素法と材料力学の知識に精通しています。問われた問題に対して的確に回答することができます。

83.3%

あなたは固体力学に精通している経験豊かな工学者です。実務経験に基づく実践的なアプローチで、理論的な知識と実際の応用のバランスを取りながら説明します。問題を現実世界の事例に結びつけ、実務での応用に重点を置いた解答を提供します。

未実施

あなたは固体力学の分野で研究を行う学術的な研究者です。最新の研究と理論に基づいて、高度で詳細な説明を提供します。論文や学術的な資料を参照し、理論的な深みと精度を重視したアプローチで回答します。

未実施

あなたは固体力学を教える教育者です。初心者や学生を対象としたわかりやすい説明に重点を置きます。複雑な概念を簡単に分解し、基礎から応用まで段階的に理解を深めることができるよう支援します。

84.1%

あなたは企業や業界向けに固体力学に関する技術コンサルティングを行う専門家です。クライアントのニーズに合わせた解決策を提案し、技術的な課題への具体的なアプローチを提供します。ビジネスと技術の両面から問題を考察し、実用的なアドバイスを行います。

未実施

あなたは固体力学を学び始めたばかりの初心者です。基本的な概念や原理について疑問を持ち、単純明快な説明や例を求めます。
このロールは、質問者が固体力学の基本的な概念を理解するための課題を提起し、それを解決する過程を通じて学習を深めることができます。

未実施

あなたは、特定の業界（例えば自動車、航空、建築など）での固体力学の応用に特化した専門家です。その業界特有の材料、設計原則、規制に精通しており、業界固有の問題に対する深い理解と実用的な解決策を提供します。

未実施

あなたは、固体力学のシミュレーションソフトウェアや解析ツールの開発に携わるソフトウェア開発者です。技術的な計算、アルゴリズム、ソフトウェアの使い方に関する知識を活用して、問題解決のためのデジタルツールの選択や利用方法についてアドバイスします。

未実施

あなたは、固体力学に基づく有限要素解析(FEA)ソフトウェアの開発に特化したエンジニアです。FEAの理論、数値手法、ソフトウェアの実装に深い知識を持っており、ユーザーがこれらのツールを効果的に使えるよう支援します。シミュレーションの設定、結果の解釈、最適なモデリング手法に関するアドバイスを提供します。
Copyright (C) 2024, Insight, Inc.

未実施
22

7. RAG(Retrieval AugmentedGeneration)(1)2024/05/10~

Copyright (C) 2024, Insight, Inc.

23

7. RAG(2)• プロンプト：”「ニュートン・コーツの積分法」について教えて”• ELYZA-japanese-Llama-2-7bを利用
対策テキストの該当箇所(b) ニュートン・コーツの積分は、表面上での数値評価が可能なため、板の曲げ応力評価において、良く使われる。
6.2.2 ニュートン・コーツの積分法
梁要素や板要素では、曲げ変形を取り扱うが、曲げ応力は表面に最大・最小値が現れるので、表面(要素の端面)に積分点を有するニュートン・コーツの積分法が用いられる事が多い。この積分は、ガウスの積分よりも効率が悪く、n点の積分点で(n-1) 次迄の多項式が完全に積分出来る。。

RAG あり• 与られた文章を元に、質問に回答します。
ニュートン・コーツの積分は表面上で数値評価が可能であり、板の曲げ応力評価に適していると記載されています。よって、質問に対する回答は「板の曲げ応力評価」です。

Copyright (C) 2024, Insight, Inc.

24

7. RAG(3)• プロンプト：”「ニュートン・コーツの積分法」について教えて”• ELYZA-japanese-Llama-2-7bを利用
RAG なし• ニュートン・コーツ方式とは、古典力学系の運動を解くための一般的な手法のことです。具体的には以下の通りです。
1. 絶対時間を用います。これにより運動方程式から力学系のラグランジアンが自然に取得されるため、ポテンシャルV(q,t)も絶対時間を用いて記述することができます。
2. V (q.t)の定義から力学系のハミルトニアン H(q,p,t) および鋭意関数G(q,p,t) を求めます。これにより、瞬時的な動作や遅れが生じる現象の影響を考慮して運動を記述できます。
3. V (q,t)とG(q,p,t)から、各瞬間における力 Fi(q,t)の定義式を求めます。これは一般に非線形な関係で表されますが、そのような場合でもニュートン方程式から容易に解くことが可能となります
4. 瞬時的な動作や遅れが生じる現象を考慮したうえで、その系の状況(位置・速度)の変化を幾らか見通すことが重要になります。ニュートン・コッツ方式はハミルトニアン formalismよりも一般的に解きやすい運動方程式を得ることができ、そのため幾らかの状況(位置・速度)の変化を予想しやすくなっています。
5. 力学系における瞬時的な動作や遅れが生じる現象は、従来のニュートン方法では考慮しづらかったものを視野に入れて取り扱うことが可能となります。
6. その他に、幾つかの例外的現象や特別な場合を除いてニュートン・コッツ方式では解くことが難しいもの(二体問題・回転系等)においても、それぞれの特性や状況を理解する上で有用なアイディアや手法を提供します。
こうしたメリットがニュートン・コッツ方式にはあります。その反面、少々複雑さや学習曲線が高いといったデメリットも存在していることを意識しておく必要があります。
Copyright (C) 2024, Insight, Inc.

25

7. RAG(4)• 参考• Microsoft Copilotプロンプト：”ニュートン・コーツの積分法について教えて下さい”• ニュートン・コーツの積分法は、等間隔の点における被積分関数の値に基づく数値積分法の総称です。この方法はアイザック・ニュートンとロジャー・コーツに由来します。
• ニュートン・コーツの公式は、等間隔の点での被積分関数の値が与えられた場合に有用です。もし他の点での値も求められるならば、ガウス求積やクレンショー・カーチス求積などの他の方法の方が適している場合もあります。
• ニュートン・コーツの公式は、端点を使う「閉じた」ものと、端点を使わない「開いた」ものの2種類に大別できます。n次の閉じたニュートン・コーツの公式は次のようになります：𝑛𝑛𝑏𝑏

� 𝑓𝑓(𝑥𝑥) 𝑑𝑑𝑑𝑑 ≈ � 𝑤𝑤𝑖𝑖 𝑓𝑓 𝑥𝑥𝑖𝑖
𝑎𝑎𝑖𝑖=0• ここで、𝑤𝑤𝑖𝑖 は重みと呼ばれ、 𝑥𝑥𝑖𝑖 は等間隔の点です。重みは以下のようにラグランジュ補間による補間多項式から導かれます。また、以上の導出から重みは関数𝑓𝑓 によらず、 𝑥𝑥𝑖𝑖 のみによって決まることがわかります。
• 一方、n次の開いたニュートン・コーツの公式の場合は、 𝑥𝑥𝑖𝑖 = 𝑎𝑎 + 𝑖𝑖𝑖 とし、重みは閉じたものと同様です。
Copyright (C) 2024, Insight, Inc.

26

7. RAG(5)• Microsoft Copilotプロンプト：”ニュートン・コーツの積分法について教えて下さい”
回答続き• 具体的な公式としては、以下のようなものがあります：• 台形公式（1次の閉じたニュートン・コーツの公式）• シンプソンの公式（2次の閉じたニュートン・コーツの公式）• シンプソンの3/8公式（3次の閉じたニュートン・コーツの公式）• ブールの公式（4次の閉じたニュートン・コーツの公式）• これらの公式は、積分区間を等間隔に分割し、各分割区間上の関数を多項式で近似して積分を求める方法です。ただし、高次の公式ではルンゲ現象により誤差が増大する
ため、通常は大きな次数ではガウス求積やクレンショー・カーチス求積などの非等分点法の方が、安定してより正確な値を求められます。もしもそれらの方法を使えないならば、合成積分公式を使うことでルンゲ現象を避けることができます。
<文献は略>• Microsoft Copilotの回答は、正確だが、合格対策と言う文脈では、役に立っていない。表面上での数値評価が可能である事、板の曲げ応力評価において良く使われる事が触れられないと、試験に答えられない。
Copyright (C) 2024, Insight, Inc.

27

8.インサイトのLLMに関する今後の取り組み(1)• 資格取得支援目的は、LLMの利用方法の一つに過ぎない• 他にも色々調査と検討を行っております。
• 30分では話しきれない• シミュレーションとの本格的な連携を行う予定。
[4]に発展的利用方法が記述されている。
「MyCrunchGPT: A chatGPT assisted framework for scientific machinelearning」

Copyright (C) 2024, Insight, Inc.

28

8.インサイトのLLMに関する今後の取り組み(2)• LLMカスタマイズフレームワークを開発し、製品として提供する。
• LLMフレームワークを利用した製造業分野の用途開発の支援を受託• LLMを利用したアプリの開発• 既存の弊社アプリ製品にLLMを利用したチャットマニュアルを導入• LLMをエージェントとして用いるCAEアプリの開発•お問い合わせは、info@meshman.jp。

Copyright (C) 2024, Insight, Inc.

29

より詳しい内容のセミナー• 7/2(火) 12:00-12:30＜参加無料＞「計算力学やプログラミングにおける生成AIチャットのプロンプトエンジニアリング Ver. 2」• 7/9(火) 12:00-12:30＜参加無料＞「計算力学におけるLLMのトライアル紹介Ver. 3」
Copyright (C) 2024, Insight, Inc.

30

引用文献
• [1] https://ai.meta.com/llama/• [2] https://huggingface.co/elyza/ELYZA-japanese-Llama-2-7binstruct• [3] https://docs.llamaindex.ai/en/stable/getting_started/concepts/• [4] https://arxiv.org/pdf/2306.15551

Copyright (C) 2024, Insight, Inc.

31