はじめに 皆様も日々いろいろな場面で生成 AI を活用されていることと思います。 私の場合は、ふとしたことから「生成 AI がモデルベース開発にも使えるのでは」と思ったため「生成 AI はモデルベース開発の枠組みの中でどのような使い方ができるのか」ということを追求する様になりました。今日はその入り口の話を中心にしたいと思います。 知人の書いた「まだ適用は難しい」という論文 * も読みましたが、いろいろ試して実際に出来ることを目の前にすると「これは無視できない」と感じました。 内容的に、皆様と比べるとレベルが低いかもしれませんが、第1回研究会ということで、事例と考察をご紹介します。 3 On the assessment of generative AI in modeling tasks: an experience report with ChatGPT and UML *
事例: Xtext :モデルとして記述させる scenario BreastCancerTreatment { setting "Dr. Smith's office, a specialized oncology clinic within a large hospital." participants { Doctor DrSmith Patient Alex } interactions { DrSmith : "Good morning, Alex. Thank you for coming in today. I've reviewed your initial tests and scans." Alex : "Good morning, Dr. Smith. I'm a bit nervous, but I'm ready to hear what you suggest." DrSmith : "It's normal to be anxious. To tailor your treatment, do I have your permission to access your complete health record?" Alex : "Yes, of course. I understand why that's important." DrSmith : "Thank you. Your privacy is our top priority. Now, let me explain the treatment options." DrSmith : "Considering your diagnosis, the most effective approach is surgery followed by chemotherapy and radiation therapy." Alex : "What kind of outcomes can we expect from this treatment?" DrSmith : "The goal is to remove the cancer and reduce recurrence, but there are risks we need to discuss." DrSmith : "To proceed, please review and sign this consent form outlining everything we've discussed." Alex : "Thank you, Dr. Smith. I'll read through the consent form carefully." DrSmith : "Thank you, Alex. We'll schedule your treatment to begin as soon as possible." } 15 consents { consent request by DrSmith : "Access to complete health record" consent grant by Alex : "Access to complete health record" consent sign by Alex : "Treatment plan consent form" } treatmentPlan "Surgery + Chemotherapy + Radiation Therapy" risks { "Nausea" "Hair loss" "Infection" "Fatigue" } }
Gemini 先生とのやりとり 「生成 AI はモデルベース開発と相性が良いのでは?」という疑問について、生成 AI 自身はどう説明するのか試してみました。 生成 AI のなかでも Gemini とのやりとりを紹介する理由は、その回答がこのスライドに適したものだと思ったためです。 ChatGTP の o3 にも同じ質問を投げ、もう少し本格的な回答も得ています(深く詳細になるのでスライド向きではなかった、ということです)。 19
Gemini 先生とのやりとり: Q1 (Why?) 私はソフトウェアやシステムのモデリングの仕事をしています。 あなたは、モデリングの専門家です。 これまで色々なモデル関連の質問を試しましたが、どうも 生成 AI は、抽象化、インスタンス化、メタモデリング、などが得意 のように思えます。 これはどういう理由によるものでしょうか? 生成 AI システムの設計方針と関連するのでしょうか? 20
Gemini 先生とのやりとり: A1 はい、そのご認識は非常に的確です。生成 AI 、 特に大規模言語モデル( LLM ) が抽象化、インスタンス化、メタモデリングといった概念を得意とするのは、偶然ではなく、その設計思想と学習メカニズムに深く根差しています。 ソフトウェアやシステムのモデリング専門家でいらっしゃるご質問者様に向けて、その理由を解説します。 結論:なぜ得意なのか? 一言で言えば、 生成 AI の根幹技術が「データからパターンと関係性を抽出し、それを基に新たなデータを生成する」ことだから です。 これは、モデリングにおける抽象化、インスタンス化、メタモデリングのプロセスと本質的に同じ構造をしています。 AI は人間のように「理解」しているわけではありません。膨大なテキストやコードのデータの中にある、単語や概念間の統計的な関係性(パターン)を、高次元のベクトル空間で表現・学習しています。この能力が、モデリングの各プロセスと非常に相性が良いのです。 21
Gemini 先生とのやりとり: A1 抽象化 ( Abstraction) 🧠 モデリングにおける抽象化は、個別の事象から共通の性質を抜き出して、より一般的な概念(クラスやコンポーネントなど)を定義する行為です。 AI の仕組み 生成 AI は、例えば「犬」「猫」「鳥」という単語が「ペット」「飼う」「鳴く」といった文脈で頻繁に登場することを学習します。これにより、 AI の内部では「犬」「猫」「鳥」が「動物」という、より抽象的な概念の近くに配置されます。 AI は、 class User {...} 、 class Product {...} 、 class Order {...} のようなコードを無数に学習することで、「 class [ 名前 ] { [ 属性 ] } 」という 抽象的な構文パターンそのもの を捉えます。 つまり AI にとっての抽象化とは、 膨大な具体例から共通する統計的パターンを抽出する プロセスであり、まさにその学習方法そのものなのです。 22
Gemini 先生とのやりとり: A1 インスタンス化 ( Instantiation) 📝 インスタンス化は、抽象的なモデル(クラスなど)から具体的な実例(オブジェクト)を生成する行為です。 AI の仕組み AI は抽象的なパターンを学習済みのため、「オンライン書店システムのクラス図を作って」と指示されると、学習した「クラス図」という抽象パターンと、「オンライン書店」という文脈で頻出する「本」「顧客」「注文」といった概念を結びつけます。そして、それらを組み合わせ、最も " ありえそうな " (確率的に尤もらしい)具体的なクラス図を インスタンスとして生成 します。 つまり AI にとってのインスタンス化とは、 学習済みの抽象パターンに、与えられたコンテキスト(指示)を当てはめて、具体的な出力を生成する ことであり、これもまた得意中の得意なタスクです。 23
Gemini 先生とのやりとり: Q3 MBSD/MBSE には多くの手法がありますが、その中でドメイン特化型言語を用いるものがあります。生成 AI と同じように、テキストを中心に扱う テキスト型 DSL というものがあり、その代表的なものが Xtext です。生成 AI を Xtext を用いたモデルベース開発の中で活かそうとすると、どの段階でどういうことが出来ますか? 35 By The Eclipse Foundation - http://www.eclipse.org/Xtext, Public Domain, https://en.wikipedia.org/w/index.php?curid=36462492
Gemini 先生とのやりとり: A3 はい、非常に鋭いご指摘です。テキストベースの DSL を扱う Xtext と生成 AI は、テキストを中心とした親和性が極めて高く、両者を組み合わせることでモデルベース開発を劇的に進化させられます。 Xtext がもたらす**「形式的で厳密な構造(骨格)」と、生成 AI がもたらす「柔軟で文脈に応じた意味の解釈(肉付け)」**は、理想的な補完関係にあります。 Xtext を用いた開発プロセスにおいて、生成 AI が活躍できる段階と具体例を整理します。 36