fbpx

ChatGPT、Bard、その他の著名な大規模言語モデル(LLM)は、昨年、私たちのニュースフィードを席巻した。 そしてそれは当然である。 これらのエキサイティングなテクノロジーは、AIの未来、パワー、可能性を垣間見せてくれる。

世間では、テキスト、画像、ビデオの作成が話題の中心となっているが、これらのツールは、ソフトウェアの自動化など、他の多くの分野にも使用することができる。

この記事では、プロンプト・エンジニアリングがソフトウェアの自動化にどのように役立つかを深く掘り下げていく。 しかし、私たちはまず、プロンプト・エンジニアリングそのものを検証しなければならない。

 

プロンプト・エンジニアリングとは?

 

ChatGPTのような大規模な言語モデルは、私たちが提供したプロンプトやセンテンスに基づいて出力を生成します。 しかし、使う言葉や指示によって結果は大きく変わる。 曖昧で不正確な指示をインプットすると、アウトプットが的を射ないことがある。

プロンプト・エンジニアリングとは、このようなエキサイティングなAIシステムから、より正確で精度の高い、そして最終的には利用可能なコンテンツを引き出すのに役立つ、入力を考慮した設計のことである。

ラージ・ランゲージ・モデル(LLM)システムは、自然言語処理(NLP)を使って、私たちが与えた発言を解釈する。 マシンは、これらの質問や指示(すなわちプロンプト)をコードに変換し、膨大なデータのリポジトリを通して、私たちが指定したフォーマット(すなわちテキスト、画像、コード)でコンテンツを生成する。

ChatGPTは
570GBのデータ
. トレーニング教材は、書籍、記事、ウェブテキストなどで構成されている。 言い換えれば、これらのデータセットには想像を絶する量の知識が含まれている。

私たちはそのプロセスを理解しているかもしれないが、これらのシステムのボンネットの下で起こっていることの多くは、私たちの目の届かないところで起こっている。 確かに、私たちは入力と出力をコントロールし、システムを訓練しているが、これらのアルゴリズムがどのように機能し、どのような判断を下すのか、正確にはまだ謎に包まれている。 ニューヨーク大学のAI教授、サム・ボウマンの言葉である、 「我々はそれを作り、訓練した。

プロンプトエンジニアリングは、予測可能で使用可能な結果を生み出すアウトプットを使用することで、その混乱を管理するのに役立つ。 これらのアプリケーションの中にある膨大な知識を解き放つ道を私たちに提供してくれるのだ。
この分野は新たなキャリアとして台頭しつつある。
企業がこの強力なテクノロジーをどう活用できるかを模索するなかで、いたるところで講座が開かれている。

プロンプトエンジニアリングはどのように役立つか

ソフトウェア・オートメーションで?

様々なソフトウェア自動化およびRPAタスクにchatcpgを活用

ソフトウェアオートメーションとLLMには多くの共通点がある。 どちらも、機械が人間の創造性を補強し、より速く、より生産的な職場を作り出す未来を垣間見せてくれる。

この2つの技術が融合できるエキサイティングな分野がいくつかある。 ソフトウェア・オートメーションでプロンプト・エンジニアリングを利用する3つの方法を紹介しよう。

 

#1. コードの生成

テスト自動化におけるプロンプトエンジニアリングによるコード生成

コードを書くことは、大規模言語モデルの最も有望な用途の一つである。 AI LLMは黎明期にある。 今後数年間は、コンピューティングとトレーニングの両面でより多くのリソースが追加されるため、この技術は向上していくはずだ。

長い目で見れば、このような進歩により、AIが人間の介入を制限するか、あるいはまったく行わずにプログラム全体を書き上げるようになるかもしれない。 しかし、今のところ、LLMにはいくつかの限界がある。 LLM符号化の出力の質は、主に入力の質に依存する。 ゴミを入れればゴミが出る、とはよく言ったものだ。

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

もちろん、障害となるのは効果的なプロンプト・エンジニアリングだけではない。 で示唆されている通りである。 学術分野におけるChatGPTと大規模言語モデル:チャンスと課題 (Meyer,2023)、”現在のところ、ChatGPTは小さなコードブロックを正確に記述することに成功する可能性が高いが、より大きな/より複雑なプログラム(ソフトウェアパッケージなど)を記述する際の信頼性には疑問が残る。”

さらに、『ネイチャー』誌に最近掲載された記事では、LLMを使ったコード生成には慎重に取り組むべきだと警告しているコンピューター科学者もいる。 もう一つの現代紙、
大規模言語モデルと単純で愚かなバグ
(Jesse,2023)は、Copilotというベンダーが使用しているCodexという一般的なLLMが、”既知の逐語的なSStuBが、既知の逐語的な正しいコードの2倍の確率で生成される “ことを実証した。

このような問題を無視することはできないが、技術チームと非技術チームを同様にサポートすることで、ソフトウェア開発を民主化することができるという点については、正当な興奮が残っている。

おそらく最も印象的なことは、ChatGPTのようなツールは、非常に迅速に機能的なコードを生成できることです。 適切なプロンプトがあれば、エンジニアは特定の種類のコードのプログラミングにかかる時間を短縮し、ソフトウェア開発ライフサイクルの迅速化を図ることができる。

2022年末、人気のプログラミングハブ
スタック・オーバーフローは、AIが生成した
フォーラムでの回答 彼らは、アプリケーションに関連する高いエラー率と不正確さを挙げた。 しかし、この技術はまだ発展途上の段階にある。さらに、AIが生成したアウトプットに対する不満は、技術そのものと同様に、迅速なエンジニアリングが不十分であることに起因している。

この技術に対する懸念にもかかわらず、マッキンゼーの最近の記事は次のように報じている。
マッキンゼー
は、プロンプト・エンジニアリングがすでにプログラミングの世界に及ぼしている影響を強調している。 コンサルティング会社の 2023年のAI事情:ジェネレーティブAIの飛躍の年 は2つの興味深い傾向を共有した。 まず、AIに投資している企業の7%が、即戦力のエンジニアを採用している。 次に、AIを使用している企業は、AI関連のソフトウェア・エンジニアリングの役割を38%から28%に減らしている。

これらの傾向を解釈するひとつの方法は、企業がこのセットアップに慣れ、ソフトウェアの自動化をマシンに任せる準備ができているということだ。 この数字は既存のエンジニアを驚かせるかもしれないが、マッキンゼーの調査によれば、「従業員規模が5分の1以上減少すると答えたのはわずか8%」だという。 全体として、エンジニアはAIが生み出すソフトウェア自動化のトレンドを活用するために、おそらく再スキルが必要になるだろう。

AIが生成するソフトウェア・オートメーションの明らかな用途のひとつに、オートメーション・ボットの作成がある。 しかし、プロンプト・エンジニアリングは会話に重点を置いているため、表向きはユーザーフレンドリーなインターフェースだが、既存のソリューションに取って代わることができるかどうかは未知数だ。

多くの点で、ZAPTESTのようなソフトウェアはすでにソフトウェア自動化市場を民主化している。 技術者でないチームでも 高品質のRPAボットを構築できるノーコード・ツールが登場した。 ChatGPTのようなソフトウェアはボットを構築することができますが、実装とメンテナンスは、ソフトウェアエンジニアでない人はもちろん、そうでない人にとっても厄介であることがわかります。

GUIから人間とコンピュータのインタラクションを記録し、その動きをコードに変換することは、プロンプトを使うよりもはるかにユーザーフレンドリーである。 LLMが不安定でエラーの多いコードを生成する可能性と相まって、RPAソフトウェアは当面どこにも行かないと言っていいだろう。

 

#2. 非構造化データの変換

チェックリスト uat、ウェブアプリケーションテストツール、自動化など

非構造化データは、ロボティック・プロセス・オートメーションの得意分野ではない。 この技術は、電子メールや写真、音声などを扱うようには作られていない。 RPAツールは、整理された構造を持つ定義済みのデータモデルを必要とする。

非構造化データの大部分は自然言語テキストである。 この情報を「理解」し、そこから意味的な意味を抽出するために、大規模な言語モデルが構築される。 そのため、これらのテキストを解釈し、RPAツールに適した形式に変換したいチームにとっては、大きなチャンスとなる。

多くのチームが、センチメント分析に役立つ自然言語処理(NLP)を長年使用してきた。 オピニオン・マイニングとも呼ばれるこのプロセスは、企業がブランドに対する消費者の感情や態度を常に把握するのに役立つ。 多くの場合、これらのツールはテキスト内の肯定的、否定的、中立的な感情を検出するために使用される。 しかし、この技術はもっと細かい感情検出も可能だ。

このような機能を提供するツールは市場にいくつかあるが、LLMのものは、人々が製品やサービスについてどのように感じているかを理解するだけでなく、より多目的な利用への道筋を提供する。 例えば、データ分析は近年爆発的な人気を博している。 ビッグデータは、データ主導の意思決定に役立つ洞察や理解を導き出すことで、企業に優位性をもたらす。

ロボティック・プロセス・オートメーション・ツールはデータ収集に役立つ。 しかし、前述したように、彼らは特定の種類の情報を苦手としている。 しかし、大規模言語モデルを使用するAIツールと組み合わせることで、RPAは大量のデータを収集し、ビジネスインテリジェンス(BI)ツールに必要な情報を生成するために使用することができる。

ジェネレーティブAIの最もエキサイティングな側面のひとつは、データ入力の意味を理解する能力である。 適切なプロンプト・エンジニアリングにより、チームはこのデータをRPAツールに適した形式に変換できる。

RPAはビッグデータのワークフローを効率化するのに役立つ。 手始めに、データ入力と抽出の両方に役立てることができる。 しかし、おそらく最も価値があり、興味をそそるユースケースは、データの変換、クリーニング、ロードにRPAツールを使用したり、データ移行を迅速、効率的、正確に実行することであろう。

もう一つの重要なポイントは、データガバナンスである。 データ要求を自動化することで、組織はコンプライアンスを維持し、手作業で作業する人の目に触れないようにすることができます。

 

#3. テスト・オートメーション

テスト・オートメーションがソフトウェア開発界に浸透してきたのは、ソフトウェアをより迅速に検証できるようになったからだ。 テストと品質保証は、伝統的に高価で時間のかかるプロセスであった。テスト自動化は、この両方の課題に対する解決策を提供する。

プロンプト・エンジニアリングが最初にできることのひとつは、テストケースの質を向上させることである。 適切なプロンプトがあれば、これらのマシンはテストケースを分析し、問題と対策を特定することができる。 このプロセスは、テストケースの範囲を拡大し、より包括的なテストにつながる。

例えば、人間のレビュアーと同じように、大規模な言語モデルにコードを与えることができる。 これらのマシンはコードを素早く実行し、エラーやバグを発見し、パフォーマンス上の問題を特定することもできる。 さらに興味深いことに、LLMは単なるスニペットからテストケースのコードを完成させる可能性も提供し、テストケースの作成を加速させる。

プロンプトエンジニアリングは、ソフトウェア開発へのアジャイル/デブオプスアプローチの出現を促した問題の多くに取り組むことを目指している。 エンジニアは、アプリケーションがデプロイされる前に問題を発見できるような、効率的で再現性の高いテストを求めている。 この考え方は、ソフトウェア開発者が時間を解放することで、より創造的で価値のある仕事に集中できるというものだ。

古典的な論文で概説されているように
テスト自動化における技術的負債
(K. Wiklund, 2012)、ソフトウェア開発チームは、ソフトウェアの手動テストと検証に多くの時間を費やすと、問題に直面する可能性がある。 テスト自動化ソリューションの初期コスト、自動化経験の不足、さらには古い手法への嗜好が、こうした遅れの原因となる。

アジャイルソフトウェア開発の最も興味深い側面の1つに、以下が含まれる。
行動駆動開発(BDD)。
この概念は、ユーザーの行動を想定してソフトウェアを開発することを指す。 このアプローチを導入することで時間を節約できるのは明らかだが、多くのチームはこの自動化を実現するのに苦労している。 しかし、LLMは解決策を提供できる。

技術的負債の最も一般的な症状には、不十分な文書化と強固なテストの欠如がある。 これらは、今日のLLMが解決に貢献できる問題である。 しかし、リファクタリングのような他の注目すべき症状は、現在のジェネレーティブAIには複雑すぎて、時間の節約にはつながらないかもしれない。

 

最終的な感想

アルファテストとベータテストの比較

ジェネレーティブAIの応用には計り知れない可能性がある。 しかし、ユーザーフレンドリーで会話しやすいインターフェースは、誤解を招きかねない。 多くの人は、これらのマシンから質の高いアウトプットを生み出すのは簡単だと考えている。 しかし、優れたプロンプト・エンジニアリングは想像以上に複雑だ。

効果的なプロンプト・エンジニアリングには、多くの試行錯誤が必要だ。 また、その答えが有用なものであることを保証するためには、エンジニアに代わって熟考する必要がある。 最後に、ミスの可能性はよく知られているため、チェックと再チェックは重要である。

迅速なエンジニアリングの仕事は増えているかもしれないが、誰もが納得しているわけではない。 ハーバード・ビジネス・レビュー誌に寄稿したオグズ・A・アカーは、次のような興味深い主張をしている。 「将来のAIシステムは、より直感的になり、自然言語を理解することに熟達し、綿密に設計されたプロンプトの必要性を減らすだろう。

どのような未来が待っていようと、ジェネレーティブAIはそこに混ざっている。 プロンプト・エンジニアリングには多くの可能性が秘められているが、それがどのような役割を果たすことになるのか、はっきりさせるのは難しい。

興味深いことに、ソフトウェア・テスト自動化ソフトウェアには、アプリケーションの正確性や包括的な検証を損なうことなく、ソフトウェア開発をスピードアップするのに適していることを示す使用例や成功事例がすでにたくさんある。

ZAPTESTのようなツールによって、開発者はすでに、不十分な時間やリソース、技術的負債、文書化、包括的なテストやRPAといった問題に対処できる。 さらに、これらのツールはプロンプトエンジニアリングよりもユーザーフレンドリーであるため、技術者でないチームにははるかに適した選択肢となる。 これまで同様、真の可能性はこれらのエキサイティングなオートメーション技術が交差するところにある。

Download post as PDF

Alex Zap Chernyak

Alex Zap Chernyak

Founder and CEO of ZAPTEST, with 20 years of experience in Software Automation for Testing + RPA processes, and application development. Read Alex Zap Chernyak's full executive profile on Forbes.

Get PDF-file of this post

Virtual Expert

ZAPTEST

ZAPTEST Logo