MATLAB ユーザーコミュニティー

MATLAB & Simulink ユーザーコミュニティー向け日本語ブログ

MATLABコード作成のためのAI活用 – The MATLAB AI Chat Playground

※この投稿は 2023 年 11 月 15 日に The MATLAB Blog へ 投稿されたものの抄訳です。


ほとんどのソフトウェアエンジニアがそうだと思いますが、最近よく日常の業務に AI を活用する方法について考えています。MATLAB の文脈では、友人で同僚のTakeushi さんが開発した非公式の MatGPT で楽しんでいましたが、それだけでは物足りなくなってきました。その後、ディープラーニング担当チームが GitHub上でオープンソースのLLMs to MATLAB をリリースしました。
先週 MATLAB AI Chat Playground が一般公開されましたが、私は内部のベータテスターとしてここ数ヶ月活動していました。興味深い経験だったので、経験したいくつかの心境の変化をここで紹介させてください。

Stage 1: これ好きじゃないかも・・

ある時、担当者の Hans Scharler との会話中に彼が初期のプロトタイプを紹介してくれました。「これについてどう思いますか?」と。
当時、クラスタリングに関連するプロジェクトに取り組んでおり、さっそくその作業についての質問を試してみました。いくつかの点ではうまく答えていましたが、明らかにでたらめな回答もありました。存在しない MATLAB の関数を使用したコードを生成したり、存在しない論文を引用していたり・・いまいち。
「回答が信用できないし、これがなんの役に立つのかわからない・・」
その後の一日中、AI が出してきた間違いを Hans に指摘し続けました。正直、私たちがまだ友人なのが不思議なくらいです。

Stage 2: まぁ、、ちょっと楽しいかも

プロジェクトの開発は続き、Hans は MathWorks 社内で興味を持っている人のためのミーティングで内部デモを行うまで、私に話題を持ちかけてくることはありませんでした。そのミーティングには参加していませんでしたが、ミーティングのチャットからメッセージを受け取り、誰かが投稿したコードに興味を持ちました。
私はミーティングに飛び込んで、最新バージョンのアプリを使い始めました。今回はまったく異なる心構えで取り組みました。何ができるのか、できないのかに対する単純な好奇心で、今回は魅了されていきました。
以下は当時の初期のクエリの一つです。スクリーンショットなので、残念ながらコードをコピー&ペーストすることはできません
Picture1h.png
そのコードを実行すると、私が想像していたその結果が得られました。
Picture2.png
その後、猫の絵を描いてもらうようにお願いしてみました。その回答はちょっと文字通りというか・・。
img = imread(‘cat.jpg’)
imshow(img)
もう一度試してみます。
% Draw the head
rectangle(‘Position’, [0.5 1 2 2], ‘Curvature’, [1 1], ‘FaceColor’, ‘k’);
hold on;
% Draw the ears
rectangle(‘Position’, [0.5 2.5 0.5 0.5], ‘Curvature’, [1 1], ‘FaceColor’, ‘k’);
rectangle(‘Position’, [2 2.5 0.5 0.5], ‘Curvature’, [1 1], ‘FaceColor’, ‘k’);
% Draw the eyes
rectangle(‘Position’, [1 1.5 0.5 0.5], ‘Curvature’, [1 1], ‘FaceColor’, ‘w’);
rectangle(‘Position’, [2 1.5 0.5 0.5], ‘Curvature’, [1 1], ‘FaceColor’, ‘w’);
% Draw the pupils
rectangle(‘Position’, [1.25 1.75 0.1 0.1], ‘Curvature’, [1 1], ‘FaceColor’, ‘k’);
rectangle(‘Position’, [2.25 1.75 0.1 0.1], ‘Curvature’, [1 1], ‘FaceColor’, ‘k’);
% Draw the nose
line([1.75 2.25], [1.75 1.75], ‘LineWidth’, 2, ‘Color’, ‘k’);
line([1.75 1.75], [1.75 1.5], ‘LineWidth’, 2, ‘Color’, ‘k’);
% Draw the mouth
line([1.5 2], [1.25 1.25], ‘LineWidth’, 2, ‘Color’, ‘k’);
hold off
何とな~くやりたいことは分かりますが、猫には見えないですね。目と口の位置が怪しいです。修正してもらうようお願いしてみます。
figure
% Draw the head
rectangle(‘Position’, [0.5 1 2 2], ‘Curvature’, [1 1], ‘FaceColor’, ‘k’);
hold on;
% Draw the ears
rectangle(‘Position’, [0.5 2.5 0.5 0.5], ‘Curvature’, [1 1], ‘FaceColor’, ‘k’);
rectangle(‘Position’, [2 2.5 0.5 0.5], ‘Curvature’, [1 1], ‘FaceColor’, ‘k’);
% Draw the eyes
rectangle(‘Position’, [1 1.75 0.5 0.5], ‘Curvature’, [1 1], ‘FaceColor’, ‘w’);
rectangle(‘Position’, [2 1.75 0.5 0.5], ‘Curvature’, [1 1], ‘FaceColor’, ‘w’);
% Draw the pupils
rectangle(‘Position’, [1.25 1.95 0.1 0.1], ‘Curvature’, [1 1], ‘FaceColor’, ‘k’);
rectangle(‘Position’, [2.25 1.95 0.1 0.1], ‘Curvature’, [1 1], ‘FaceColor’, ‘k’);
% Draw the nose
line([1.75 2.25], [1.75 1.75], ‘LineWidth’, 2, ‘Color’, ‘k’);
line([1.75 1.75], [1.75 1.5], ‘LineWidth’, 2, ‘Color’, ‘k’);
% Draw the mouth
line([1.5 2], [1.35 1.35], ‘LineWidth’, 2, ‘Color’, ‘w’);
hold off
何かの賞を受賞するような作品にはなっていませんが、方向性はいい感じです。私が試したこと・・気が付きました?
まさにプログラミングですね。最初に試してみた猫の絵から始まって、徐々に没頭してしまいました。AI と共同で書いた、半分完成したインベーダーゲームの MATLAB 版もあります。認めたくないほど楽しかったです!

Stage 3: リスクのない状況で練習してみる

ステージ3: AIを低リスクの状況で使用して練習する どんな技術でも熟練するには練習が必要だし、もちろん AI も例外ではありません。最近 AI を使用している場所の一つは、MATLAB Flipbook Mini Hack Contest です。私のエントリーの多くは、AI に少し(時にはたくさん)の助けを借りて作成されました。
例として、Adam Danzのエントリー「Tumbling triangles」を紹介します。
Picture1.gif
Adam のコードを AI に与え、三角形に色をつける方法を教えてもらうように頼んでみました。
実際には、このケースでは AI がコードを書くことはできませんでしたが、代わりにいくつか提案をしてくれました。まさにパートナーシップのような感覚。以下がその結果です。
Picture2.gif
他にも、上の猫への執着心から絵を次のレベルに引き上げたのが ChatGPT Kitty です。いや、、CatGPT ですね。
Picture3.gif

Stage 4: 実際の業務でAIを使用する

まだ完全にステージ 4 とはいきませんが、最近は実際の業務でも AI を活用し始めています。例えば、AI を使用してループをベクトル化するヒントをもらったり、データの分析方法を提案してもらったり、自分のコードのバグ修正の手助けをしてもらったり、書きたいデモのたたき台を提案してもらったりするためにも使用しました。
試行錯誤を続ける中で、AI 自体が改善されるにつれて、自分自身も成長しているように感じます。現在使用できる AI は、今後経験するであろうものに比べると、最も低レベルなバージョンであることを念頭に置いておくといいと思います。実際 ChatGPT が昨年末に導入されて以来、かなり進化してきました。

Over to you

いま、AI の活用の道筋の中でどのステージにいますか?MATLAB AI Chat Playground はもう試されましたか?他の AI システムを使用してコードを作成させたことはありますか?どのように使用しましたか?どんな感想をもちましたか?

|
  • print

Comments

To leave a comment, please click here to sign in to your MathWorks Account or create a new one.