AIが書いたコードを修正するAI

バイブコーディングという言葉を聞いたことがあると思います。
仕様を指示し、AIがコードを書く。また、書いたコードの誤りをAIが指摘する、実行できる精度でコードを修正してくれる。
言語初心者に取っては大変ありがたいことで、言語に精通していても、「そんな方法があるんだ」と多いに参考になったりと何かと便利です。

問題は、AIが書いたコートをそのまま実装して、製品としてリリースしてしまった方達。様々な問題が起きる可能性を内包している。
言語仕様を知らなくても生成したコードを適用することで、それなりに動いてしまうことをどのように考えますか?
そのコードが何ら問題を起こさず、仕様変更もないまま終焉を迎える幸せなソフトウェアであれば例外ですが、そのように天寿を全うするソフトウェアはそもそも利用されなかった場合を除き、まずあり得ません。では、仕様変更になった時、AIが生成したコードは誰が修正してくれるのか。それもAIがやってくれる時代が来ることを願っていますが、現時点では該当するコードを貼り付け、どのように修正したいか指示し、結果をテストするAI第一主義者か、コードを読み、修正箇所を見つけ、修正するするエンジニア。いずれかになりますね。
適宜、最適にクラス化、サブルーチン化されていれば、何れの場合でも、修正は容易にできると思われます。しかしながら、コードを生成する際に、あまりに膨大な範囲のコードを生成させた場合、言語に精通しているエンジニアでもそれを読み下すことは至難ではないでしょうか。
言語仕様に精通していないエンジニアが、指示した仕様はおそらく、仕様書に書かれた言葉そのままの可能性がかなり高いと考えられます。その仕様書の中に誤字があれば、AIは素直に誤字でも意味が通るようにコードを生成してくれるでしょう。(最近のAIは誤字や脱字があっても、文脈から間違いを正してくれますが)
適切に仕様をAIが理解しやすく、人が読める形のコードを生成さるように指示していない場合、多分、(あくまで多分)悲惨なコードになっているはずです。

近い将来、そのコードを人間が、かなりスキルの高い人間でないと修正できない案件が多量に発注されるのではないか?

不安な毎日です。

令和の米騒動 シーズンⅡ

高市早苗史が第104代内閣総理大臣となり、女性初の総理大臣ということもあり何かと話題になっている。

トランプ米大統領来日で、ともに部屋で大谷選手の活躍をテレビ観戦。会談に遅れるという微笑ましい珍事を披露したり、米国との協力関係も順調に進みそうに見える。トランプ氏も早苗ちゃんがお気に入りの様子。

 

さて、内閣で小泉進次郎氏が防衛大臣となり、後を任されたのが鈴木憲和氏。

何を言い出すかと思えば、来年は米を減産すると言う。

小泉進次郎氏が農林水産大臣に就任し、備蓄米放出という伝家の宝刀を強行し、なし崩し的に過ぎた令和の米騒動シーズンⅠ。

様々な発言は憶測に右往左往した国民。

「正確な米の生産量は把握していなかった」

日本国民の主食となる米の生産量を国が把握していない実態に唖然とした。

 

米作りに付いては、以前より疑問に感じることが多く、よく稲作に従事されている方々が一揆を起こさなかったと関心している。

以前は自由流通米と言われる「農協を通さない」米は闇米と言われ、おいしいお米を適正な価格で食べて欲しいと願う一部の方達は犯罪者となることを覚悟し自信のブランドを記した袋に農協供出用の袋をかぶせ、夜の闇を奔走していた。

稲作は国(農協)に完全にコントロールされていた。これは生産量では無く、いかに農協が儲けるかを国が加担した形になっている。

まず、農地整備と証し、細かく不格好になっている田んぼを区画整理し文字通り田の字型に整備した。何のために...機械化のため。ようは、農耕機具を買ったもらうためである。農耕機具の購入に当たっては農協が全面協力のもと、何の担保もなく田んぼを持っているたけでお金を貸し付け、機械を買わせた。一通り機械が行き渡り、稲作も楽になり、順調かと思った矢先、減産政策で米を作るな、と言われる。米を作らなかったらお金をあげると言う。農家に取っては侮辱ともいえる行為である。さらに、機械を買ったお金の返済に困る。どうするか。そうだ、どうせ米が作れないのだから田んぼを売ろう。自然な行動だと思う。二束三文で売られた田んぼはされに区画整理され、宅地へと変わる。のどかな田園風景が一気に住宅街に変わるのに何年もかからない。先祖代々守って稲作を続けていた、あの一面の水田が見る影もない。

当然といえば当然。米が足りない。

意味が分からない。

安定供給の見込み。減産示唆。

意味が分からない。

 

高級ブランド品として、米を海外に輸出する位の気合いは日本には無い。

 

早苗という名前にかけて、日本の稲作を一流の技術・ブランドにしてはくれないか。

性善説で始まったインターネットが...

インターネットの普及を振り返ると今では信じられないようなことが、当然として運用され、そのおかげてチープな通信環境でも普及していった。

 

インターネットの始まりは、アメリカ国防総省のメインコンピュータ同士を接続するために研究が始められました。

その実験には大学同士を結ぶネットワークで進められたようです。

当初は1対1の接続機能であったため、別の場所に接続するためには端末を変える筆王があったようです。そこで、1つの端末からどこにでも接続できるようにするべきとした研究者がARPAnetと名付け研究を続けました。

当初は複数の端末を接続し、情報を交換するために、直接接続できるコンピュータに一旦転送し、受け取ったコンピュータが目的の場所に転送するといったバケツリレー方式が行われていました。

現代の情報漏洩に敏感な世相にあっては、あり得ない行為が平然と行われいたわけです。これは、性善説に基づいた仕組みで、悪意を持った利用者が存在するかもしれないという性悪説は存在しなかったわけです。

また、この性善説が前提になければ、ネットの普及はなかったわけです。

 

現在、ハッカーと言えば悪人集団のように思われていますが、本来は「コンピュータシステムやネットワークに関する深い知識と技術を持ち、様々な目的で活用する」人たちのことを指し、まさに、性善説の教祖のような人々のことです。

ハッキングと言えば、不正にサーバに侵入し、情報を盗むようなイメージが定着していますが、コンピュータ同士を接続し、情報の伝達を行うためにコンピュータネットワークの解析・改造・構築・開発といった技術の進歩を目的として行われる研究を指していた時代もありました。

 

研究者の興味や好奇心から生まれた性善説のインターネットでしたが、いつのまにか、全てを疑わなければ安心して運用できないような、有象無象・魑魅魍魎が徘徊する性悪説のシステムになってしまったことは大変悲しことです。

 

技術の進歩に伴い、そこから利益を得ようとする「営利目的」の事業は仕方が無いことで、しのぎを削って少しでも多く利益を得るために、新しい技術を開発する行為はむしろ技術の進歩に欠かせないものです。

しかしながら、悪意を持ったものたちが同じ技術を利用し、武器として使い始めると新しい技術は驚異となり、普及を阻害する可能性すら懸念されます。

 

世界中の皆が同じ、便利に早く多くの情報を共有したいといった目的で利用されていれば、もっと扱いやすい、高速な環境が利用できることは紛れもない事実であること。

 

悪意を持って利用することに喜びすら感じているであろう、高度な技術を持った天才達の行為。別の利用をしたほうが、合法的に地位と名声と利益を得られるのに...

 

 

AIを友達にする

AIネタが多くなりますが、現在の開発スタイルを考えると、AI抜きには語れない体になってしまったことをお話したいと思います。

 

以前はグーグル先生などと言われ、わからないことはGoogle検索。と決まっており、いかに知りたいことを検索までに上手に入れられるかで引き出せる内容が異なり、ヒットした内容を1サイトことに開き、自分の知りたいことが書いてあるか確認しながら進めていました。そのページにわからないことがあると、されたにそれを調べるて、さらに調べて・・・実際にやってみて、うまくいけば完了となるのですが、世間の風は冷たく、そこまで丁寧に書いてくれる方が少なかったり、日々進歩するソフトウェアに追従していなかったりして、最新のリリースがあるにも関わらず、古いリリースバージョンを入れて、Google先生が調べてくれたことに合わせて構築する、なんてことは日常でした。

 

さて、これが生成AIがいろいろ覚えてくれるおかげで、一発でほぼ正解を出してくれます。あくまで「ほぼ」です。

実装してみると、いろいろ問題が起こります。ここからAIとの対話が始まります。

「○○は××になりません」と入れいると、「それは△△です」と答えてくれます。今度はそれを試します。うまくいきません。

「△△しましたが、うまくいきません。他に何か案はありますか」などと聞いてみると。「いいところに気づきましたね。それは○×のことです・・・」

 

褒めてくれなくいいから、はじめから、そう言ってくれ!

 

などと一人突っ込みを入れますが、Google先生よりは遙かに正解にたどり付く時間は短くなります。

その代わり、はるかに多い情報を提供してくれるため、ついて行くのがやっとです。

 

Google先生は私に合ったことしか教えてくれませんが、AI先生は私が知らなくても良いことを強制的にさせます。

みなさんはどちらが好きですか...

やばいかもしれない

私はIT業界40年の実績をアピールし、お客様との対話から要求や問題点をキャッチアップして、要件定義からシステム構築までフルスタックで対応します。

とか言って自分を売り込んでいました。

ここ2年ほどAIを使い、自分の弱点を補いつつ、自分の言葉に変換しながら仕事をこなしておりました。

そこには「ニーズ分析なんて職人仕事は経験と実績の裏付けがあり、1を聞いて10を知る能力が必要で、この領域こと人知が生き残る道」とか勝手に思い込んでいました。

先日、ある記事を読んでいて「あれっ?」て思い、それから不安な毎日を送っております。

自分が得意とするヒアリング力ってAIのプロンプトじゃなの?

自分なんか比べものにならない多くの事象を知っているのはAIじゃないの?

 

以前、参加したプロジェクトで要件定義からテストまでAI主題で進めようと「壮大?」な計画を立て、失敗した話はしたかと思います。

全然間違ってなかった。アプローチの仕方が悪かっただけ。ビジネスに走り過ぎただけ。大正解だったことが今頃になって理解できた。

 

システム開発のプロセスを簡単に考えてみました。

まず、何で困っているのか、何を解決したいのか、どのような結果が欲しいのか。

丁寧にヒアリングし、言葉にしていない事柄を引き出す....この華麗なテクニック。

お客様。同じことをAIのプロンプトに入力してください。

AIは丁寧にその内容を確認し、実現方法を教えてくれます。また、不足があれば、「こんな内容についてはいかがですか」と聞いてくる。

恐らく、私と話しをするよりも、はじめから規模感を察知し、回答してくれます。

結果がなっといかなければ、なっとくいくまで何度もやりとりすればいいだけです。

 

プロンプトエンジニアなどと言って、なんだか特殊な能力が必要かのように言っている方達が多くおられます。

はっきり、誤りです。

 

大切なのは、正しい日本語が使えるか。とのただ一点だけです。

難しい言い回しはかえって不幸をまねきます。文学作品を書くのではありません。

自分がやりたいことは何かを明確に書くだけです。

 

この仕組みで弱点があるとすれば、お客様の業態から、要望することが「誤っている」「この方法の方が良い」と言えるのは人間だけで、正解かどうかは後々わかってきます。

さて、高額なコンサルが言う、あなたの要求を実現する方法に従うか。AIと納得いくまで対話して、自分が納得した方向に進むか。

あたなた次第です。

AIプロンプトエンジニアとして

AIが登場し、一般的な利用が始まって2年半が過ぎようとしています。

皆さんの身の回りではAI騒ぎは一段落したことでしょう。

うまく利用にこぎ着け、その価値を享受されている方、また、利用は始めてみたものの、利用価値が見いだせず、お蔵入りになりかけている方。様々ですね。

様々なソフトウェアにAIの冠が付き、何がどのようにすごいのかもわからず、導入してみた、なんていう方もいらっしゃいますでしょうか。

 

さて、自力でプロンプト(多くのAIはチャット形式で、こちらの問いに対して回答する)を使っての利用が基本となります。

そこで、良い回答を得るためには、良いプロンプトを書くこと。と言われ、プロンプトのテンプレートが高額で販売されたりしています。

確かにテンプレートを利用すればそれなりに意図した内容を答えてくれるようですが、今ひとつしっくりこない。なんて考えていませんでしょうか。

世の中にはプロンプトエンジニアなどと呼ばれる職能が生まれたりしています。プロンプトを書くことは特殊な技術が必要、と思い込ませる頭の良い人の考えそうなことです。

しかしながら、GoogleMicrosoftなど大手IT企業がAIを導入することで、数万人規模の人員削減を実施していることも見逃せない事実です。

AIに仕事を奪われると感じた人たちの危惧していたことが、現実に起こっています。

どうすればこれからの時代、生き残れるのでしょうか。

現在の現在のChatGPT(GPT-4)はIQ130と言われ、医師国家試験に楽々と合格できるレベルです(でも治療はできませんのでご安心を)

さらに本年には、GPT-4の改良版(いわゆるGPT-4 Turboなど)が登場し、その知能はIQ156とも言われています。これは、人知を超えたレベルです。

ラッキーなことに、ものすごいIQレベルのAIでも、プロンプトがなければ、何もできない知識だけの静かな存在です。何か問いかければ、何か答えます。とんちんかんな答えでも、何か答えます。

今はまだラッキーな状況ですが、近い将来、それもかなり近い将来、AIがAIに指示する時代が来ます。それまでに、凡人である私たちは、AIに指示する側の人間になる必要があります。まさに、プロンプトエンジニアです。

 

そのための極意。何を学べば良いか。

至極簡単なことです。誰でもできます(おそらく)。

それは、人に理解してもらえる文章を正しく書くこと。たったそれだけです。

みなさん、コミュニケーションうまくできていますか。

言ったことを、聞いた人は本当に理解していますか。

毎日何気なく行っている、「会話する」行為でコミュニケーションがきちんとできていればAIを恐れずに、明日からあなたもプロンプトエンジニアとして立派に生きていけます。

UIの話

ユーザーインターフェースのお話

 

HP・Webアプリ・OSネイティブアプリなど様々なコンピュータやスマートホンに表示される画面を見る時間が増えています。

学生だけでなく、あらゆる職業の社会人が何らかの必要から、画面を見る機会が多い。

どんなに嫌いでも避けて通れない、現代人の性です。

さて、改めて毎日見ているコンピュータやスマホの画面を思い出して下さい。

基本は左から右へ、上から下へと視線を移しているのではないでしょうか。

何も、その形式でしか作れない訳ではなく、真逆に作ることもできます。想像してみてください。もし、画面の並びが右から左になっていたら...

一番見やすく、見慣れていて、人の脳の反応が受け入れやすいのが、左から右・上から下への視線移動なのです。

また、見やすい画面は色が大切です。あまり意識していないと思いますが、作る側は色の組み合わせてで見やすくする努力をします。作成者の好みでは無く、視覚に訴える、わかりやすい色の組み合わせがあり、注意を引きたい部分や覚えて欲しい部分は色を変えたり、文字を大きくしたりして見る人にうったえかけます。

 

さらに、スマホタブレットを使って見る機会が増えたことで大きな変化が起きたことに気がついていますか?

以前はWebページにしても、ページ変えが主流でした。特にビジネスアプリは1画面完結で、次ページや前ページ。また、タブなどによって1ページでやるべきことを誘導しています。しかしながら、読ませる・見せるページは「スクロール」して見ることが主流となっており、ページという概念がありません。

例えば、マンガの縦スクロール。

今のマンガを各方はこんなことに考えを及ばせて構成を考えなければいけなくなっています。

私のように古い人間はマンガの縦読みほど受け入れがたいUIはありません。

これも「慣れ」でしょうか。

 

「標準」のわかりやすさ、「慣れ」ることの恐ろしさ...

 

交差点で雨が降っている訳でもないのに、ワイパーを動かしている車があったら、外車に乗り慣れていないんだな、と暖かい目で見てあげて下さい。