GPT-4o について

先日 Modeling + Generative AI の記事を書いたばかりですが、OpenAI 社から GPT-4o が発表され「やはり技術の進化が早い」と思った次第です。少し試しただけですが、まず応答速度に驚きました。公開される GPTs も増えそうです。

自前の環境の場合、外に出したくない情報を処理できるといっても、これだけの性能には及ばないので、自前の環境+ ChatGTP + … といった複数の手法を用意して案件やさらに小さい区分ごとに使い分けるしかなさそうです。

なお、自前の環境で実用的な反応速度で運用出来るようにするには、高性能なPC等も必要になるので、何を大切にするか優先度をしっかり考えて準備する必要があります。

最後に、自然言語を使ったやりとりでこれだけ出来るなら、モデリングは要らなくなるのか、を考えてみました。見方はいろいろあると思いますが、最終的にはソースコードを書くことになり、その手前の段階で議論や合意をするためのフォーマルでありながら簡易的な情報整理手段としてモデル・モデリングの存在意義が残るのではないかと思っています。

GPT-4o について

First Step: Modeling + Generative AI

Generative AI についての情報収集は難しくありません。何しろネットの世界のあちこちに、ニュース、ブログ、Youtube解説などがあり、むしろ多過ぎてどれを視聴すれば良いのか判断に困るほどです。そんななか、幾つかの情報を組み合わせて、私もやってみました。

最近流行りの Dify を docker を使いローカル実行し、Meta社が提供するオープンなOllama3を利用して、ローカル(Mac上)で ChatGTP のような自己完結型の環境を作りました。そして、RM-ODPの Part 2/3/Enterprise Language の pdf ファイルを事前情報として渡した上で、RM-ODPに関する幾つかの基本的な質問をしてみました。

以前、ChatGTPでほぼ同じことをしたのですが、結果から言うと ChatGTP の方が良い回答が返ってきたような気がします。ただ、あの時は色々なやりとりを先に行なっていたかもしれないので、誤差の範囲なのかもしれません。また、言語モデル自体についてもパラメタ数など差があるので、これはこれで満足すべきかもしれません。

Eclipse/Xtext と Eclipse/Sirius についての質問をしてみましたが、ある程度はわかっているようです。ただ、実際に Xtext 文法を作らせると、いまいちなものしか出てきませんでした。ChatGTP の時の方がもっともらしい結果が得られたと思いますが、やはり環境の違いによるものかもしれません。

この実験から言えることですが、まず、知識を与えて育ててゆけばある程度使えるところまでもって行けるかもしれない、ということです。また、AI 技術は競争も激しく日々進化していますので、あっという間により良い技術が出てくる可能性もあります(多分そうなるのでしょう)。現時点では Modeling + Generative AI を要素とする何かを想定して準備・実験を重ねてゆくのが良いのかと思います。

なお、関係ありませんが、出たばかりの ChatGTP 4o がとても早いので、しばらくは止められないですね。

First Step: Modeling + Generative AI

Integrating AI into Modeling activities

下の EclipseSource 社のブログ記事についての簡単な感想を書きます。

Enhancing Modeling Tools with AI: A Leap Towards Smarter Diagrams with Eclipse GLSP

まず初めに、詳しく内容を理解したい方は、まず Google Translate にこの URL を渡して日本語で記事を読んでください。

私が気になる点は、このやり方だとメタモデルが表に出てこない(AI任せになっているように見える)ということです。それでうまく行くなら構わないのですが、どうしても気になります。

過去におこなった当方の試行では、シナリオやユースケースからXtextの文法を考えてもらい、それなりの結果が得られました。この段階でやったことは、入力からXtextの文法定義つまりメタモデル定義(Eclipseだとecore model)を導き出すというものです。確かに、あの時(メタモデルに触れず)直接モデルについてのやり取りはしませんでしたので、上の記事のようなことが実際出来てしまうのかもしれません。これについては今後何らかの検証・評価が必要になると思います。

この点以外は参考になる情報だと思いますので、モデリングとAIの統合に関心のある方はぜひご覧になってください。何らかのヒントが得られるかもしれません。

Integrating AI into Modeling activities

New Name for Eclipse Conference

昨年、EclipseConの名称が変わるという話は聞いていました(実は昨年から実質そうなっていたのかもしれません)。その名前は OCX 24 (Open Community Experience 2024) です。URL は https://www.ocxconf.org/ です。 今年は10月22日から24日まで、ドイツのフランクフルトから近いマインツで開催されます。

EclipseCon単独開催時と異なるのは、四つのグループに分かれることになっている点です。 EclipseConはその中の一つとなります。 中身を見たところ、XtextやSiriusはEclipseCon、JavaEE系はOpen Community for Java、そしてもう一つAutomotive系で、その上にMain trackがある、ということのようです。 こう見ると変わったような変わっていないような、ですね。 参加者が増えて分割したのでしょうか? 皆さん、最近はAI関連もあってお忙しいと思いますが、コロナも一段落ついたので久しぶりに参加してみませんか?

  • Main OCX tracks
  • EclipseCon
  • Open Community for Automotive
  • Open Community for Java
New Name for Eclipse Conference

モデル図を生成するツール類

Jordi Cabot さんのポストの紹介です。モデル図を生成するツール類についてのまとまった情報です。テキストだと理解してもらうのが難しいのでダイアグラムにするということですが、「ダイアグラム化すること」は手段に過ぎませんから、使われる場合は目的を意識して利用されるのが良いと思います。ちなみに、Generative AI との併用を考えるなら、ダイアグラムよりテキスト側が重要になると思います。

モデル図を生成するツール類

AI for Software Engineering

最近 Devin というのが話題になっています。コード開発の支援程度ではなくソフトウェア開発の全体に渡っての支援をしてくれるようです。どの程度実用的なのかはまだ未知数です。なお、OpenDevin というのもあります。

MS社からも AutoDev: Automated AI-Driven Development という名前の論文が公開されています。AI-DrivenというのがModel-Drivenを思い出させますね。こちらもまだ研究段階のようです。

いずれにせよ、しばらくすると、こういったものがでてくると想定しておく必要があります。ChatGPT だけでもそれなり以上のことを助けてくれたので、Software Engineering に特化したこういう AI アプリがどんな働きをしてくれるか注目しましょう。

私としては、どうモデリングと繋ぐかが関心事ですので、前に ChatGTP でやったことを改めて試してみるところからでしょうか。

AI for Software Engineering

Generative AI の FineTuning

Generative AI の世界である領域に特化した language model を作成するには、ゼロから育てるか、既存のモデルをファインチューンするかのようで、作業量の観点で手をつけやすいのが後者のようです。

    この考え方は、UML でカバーしきれない部分を UML Profile という拡張メカニズムを用意することでモデリングの範囲を拡大できるようにした、ことに近いと感じます。

    既存の言語モデル(UML相当)を使い 、FineTuneというメカニズム(UML Profile相当)を用意し特定領域に特化した生成AIにするということです。特定の領域を深掘りするという意味でDSLにも近いですね。

    以前専用 GPT を作成した際には知識としてpdfファイルを与えましたが、Fine Tuningの方が直接的なのだろうとは思います(準備が大変そうですが)。

    Generative AI の FineTuning

    Sirius Webinar 動画情報

    先日あった Eclipse Sirius の今後を語った Webinar ですが、動画が公開されています。 ただ、誰でもアクセスできる訳ではないようです。 もし LinkedIn のアカウントをお持ちであれば、”Eclipse Sirius” で検索して貰えると最初の方に表示されると思います。 ひょっとすと何か登録しないといけないかもしれません。 以上、ご参考までに。

    Sirius Webinar 動画情報

    ECLIPSE IDE 2024-03

    Eclipse が2024年最初のリリースを行いました。 3月、6月、9月、12月と年に4回のペースです。 リリースノートは次の URL にあります。 なお、ダウンロードのページには説明動画のリンクもあります。

    https://eclipseide.org/release/noteworthy

    また、以前試したのですが、しばらく触れていなかった Chromebook でこの Eclipse がどの程度実用的に使えるのかやってみたいと思います。 家の iPad がそろそろ使いづらくなっているので、しばらく Chromebook で代用することを考えています。

    ECLIPSE IDE 2024-03

    Generative AI の利用について

    ここではモデル開発という文脈での Generative AI の利用方法について書いています。

    LLM の説明を読むと、大量の文書他を学習し、ある単語の次に出現する可能性の高い単語を順次つないで行くことでテキスト生成を行なっている、というようなことが書かれています。

    だとすると、このようなことが言えないでしょうか? 学習に使われた文書というのは、過去に書かれた新聞・雑誌・Web の記事や論文などだと思いますが、その範囲内で「次に出現する可能性の高い単語」を探しても、既に知られている範囲の(知識)単語しか出てこない、つまり「全く新しい発想のようなものはまず得られない」と言えるような気がします。

    しかし、逆目線でのメリットがあります。人は何かに集中するときどうしても視野が狭くなりがちです。Generative AI は、その視野から外れてしまったものを、過去の知識・常識で補ってくれる可能性があるからです。何かについて質問して、幾つもの項目が返ってくるというのは、そういうことのような気がします。

    私は AI の研究者ではありませんし、モデリングに関連した話題では、これ以上のこと(特に二つ目のポイントについて)をやってくれているのも体験もしています。AI のご専門の方から「そんな単純な話ではない」というご指摘があるとは思います。それでも、利用者として試行錯誤することで経験を積み重ねることはできます。

    結論としては、アカデミックな話ではありませんが、こういう文脈で、こういう使い方をすれば、こういう結果が期待できる、という知識を蓄積してゆき、必要に応じてそこから使い方を取捨選択し利用する、というのが当面の実用的な Generative AI の利用方法ではないかと感じています。ご意見等をコメントでいただけると幸いです。

    なお、こういった知識ベースを自作し、サービスとして提供するというビジネス形態もありそうです。コンサル会社のようなところではもうやっているのかもしれません。

    Generative AI の利用について