生成AIに適切な指示(プロンプト)を与え、高品質なアウトプットを得るための技術である「プロンプトエンジニアリング」。生産性を大幅に高めると期待される一方、さまざまな業務への導入が進んでいるため「人間の仕事を奪うのでは?」といった懸念もあります。
キラメックス株式会社が運営するオンラインプログラミングスクール「テックアカデミー」では、2023年6月から「はじめてのプロンプトエンジニアリングコース」を開講。2023年7月時点で、1,000名以上が申し込み、大きな話題となっています。
キラメックスの代表取締役社長である樋口 隆広氏、テックアカデミーの講師(以下、メンター)で現役エンジニアの太田 和樹氏に、プロンプトエンジニアリングの概要や既存の「プログラマー」への影響、「はじめてのプロンプトエンジニアリングコース」の内容・特徴などについて伺いました。
プロンプトエンジニアリングとは?
そもそも、プロンプトエンジニアリングとはどのようなものなのでしょうか?
「Generative AI(ジェネレーティブAI)」の一種である「言語モデル」に対して、適切な「文脈(プロンプト)」を与えることで、言語モデルの出力を最大化・最適化し、自分が求める品質のアウトプットを得られるようにする手法のことです。
「Generative AI」についても教えてください。
Generative AIは、「生成AI」とも呼ばれ、「ChatGPT」をはじめとする言語モデルの場合、入力テキストやインターネット上の情報などから学習した知識をもとに、高品質な文章を生成します。例えば、人間が「言語モデルについて教えて」と自然言語で指示(プロンプト)を与えると、生成AIは自分の知識から確率的により最適な文章の並びを生み出します。
なるほど。ChatGPT以外の生成AIにはどのようなものがあるのでしょうか
Google社の言語モデル「PaLM2(パーム2)」やMeta社の「Llama2(ラマ2)」などが有名ですね。日本国内では、サイバーエージェント社が日本語の大規模言語モデルをリリースしています。あとはソースコード自体が公開されているオープンソースの言語モデルですと、「Falcon(ファルコン)」も注目されています。オープンソースの場合、世界中のいろいろな人が使うことによって品質が高くなるので今後が楽しみです。
生成AIはどのような場面で活用されているのか?
生成AIは、どのような場面で活用できるのでしょうか?
コールセンター業務でのやりとり、議事録の作成、メールの文面作成など、コミュニケーション領域での言語モデルのニーズは高いですね。従来こういった業務は、タスクの量だけ人的リソースが必要なのが一般的でした。
しかし、言語モデルが登場したことで、その前提が変わる可能性があります。それまで時間がかかっていて、ときには答えが出なかった業務が、生成AIを活用することで、ごく短時間でアウトプットできる可能性が高まります。営業・カスタマーサクセスなど幅広い業務で活用できる技術だと思います。
単に効率化するだけではなく、業務の前提そのものを変える可能性も秘めているんですね。言語モデルの活用に向いている業務の特徴を教えてください。
言語モデルは、概要的にお伝えすると大量のテキスト情報などから予測・推論してアウトプットするという仕組みなので、現状では充分な情報量があるかどうかが質を大きく左右します。例えば、コールセンター業務のように、大量のログが残っていて多くの情報をAIにインプットできる業務ほど、活用しやすいと考えています。
プロンプトエンジニアの活躍の幅は、今後ますます広がっていきそうです。将来的には、プログラマーに取って代わる可能性もあるのでしょうか?
結論から言いますと、私個人としてはプロンプトエンジニアがプログラマーをはじめとする既存のエンジニアと取って代わるとは考えていません。生成AIは「私たちの生産性を高めるための重要な技術」というのが正しい捉え方だと思っています。
例えるなら、パイロットと副操縦士のように、プログラマーとプロンプトエンジニアが連携して生産性を高めていく関係性になるのではないでしょうか。また、そんなに遠くない未来において、その垣根もなくなり、ある種誰もがPCやスマートフォンを業務で利用しているように、当たり前のように身につけて仕事をする技術だと思っています。
基本的なプロンプトエンジニアリングの流れ
プロンプトエンジニアリングは、どのような流れで進めていくのでしょうか?
ChatGPTを例にしますと「言語モデルについて教えて下さい」と指示すると、一般的な回答が返ってきます。しかし、仮に小学生相手に教えるとすると、一般的な回答だと難しすぎて理解できません。そこで、「言語モデルについて小学生でもわかるように教えて下さい」と「小学生でもわかるように」というプロンプトを追加することで、より分かりやすい回答を生成してくれます。これがプロンプトエンジニアリングの基本的な考え方です。
このときChatGPTが何をしているかというと、事前に学習した膨大な知識の中から、「小学生でもわかるように説明している知識」をもとに単語を選ぶ確率を高くして文章を生成しています。プロンプトエンジニアリングでは、適切なプロンプトを出すことで、目的に合った知識を選んでアウトプットするよう上手く誘導することが大切です。
アウトプットが全く違ってくるんですね。
はい。前提や条件、出力フォーマットなどのさまざまな点を明確にして、プロンプトに落とし込めば、それに沿ってよりわかりやすく説明してくれます。盛り込む内容や書き方を工夫することで、アウトプットの質を大幅に高められます。
精度の高いプロンプトエンジニアリングを進めていくために、重要なことを教えてください。
前提や条件などプロンプトに盛り込むべきことを用途に応じて整理し、組み合わせたうえで指示を与えることです。とはいえ、最初から質の高いアウトプットにつながるプロンプトをつくるのは至難の業です。自分で考えたプロンプトによる結果を見て試行錯誤して、知見を深めることで、適切なプロンプトをスムーズにつくれるようになります。
プロンプトエンジニアリングの原理原則は大切ですが、それだけでは上手くいきません。マニュアル通りの指示をするだけではなく、生成AIの特性をつかめるようになるまで試行錯誤することが重要です。
やはり経験も大切なんですね。プロンプトエンジニアリングを学ぶうえで、よくある誤解などはありますか?
「生成AIによるアウトプットが正しいとは限らない」ということです。言語モデルは、正確な知識を選んでアウトプットするわけではなく、あくまで自分の持っている知識から確率的に単語を生み出しているに過ぎません。生成AIが “嘘”をつくことも多いんです。
生成AIの“嘘”にはどのように対処すればいいのでしょうか。
2つの対処法があります。1つ目は、出力の正確性を人間がチェックすること。具体的には「出典を出力する」などの指示をAIに与えるとともに、出力したものが本当に正確な情報なのか、人間がチェックすると良いでしょう。
2つ目は、“嘘”を上手く活用すること。例えば、アイデア出しや「壁打ち」の場面では正確性をそこまで求められないことが多いので、AIから新たな発想を得ることができます。世の中では、“嘘”をつく性質が忌み嫌われていますが、新しいものを創造するのに役立つ側面もあるので捉え方次第だと思います。
社内の業務効率化に貢献している生成AI
貴社の業務では、全スタッフが生成AIを活用しているそうですね。具体的な活用法を教えてください。
OpenAIが開発したAPIを活用して環境を構築し、コミュニケーションツールのなかでChatGPTと対話できるように実装しています。もちろん、プライバシーや個人情報に配慮し、質問事項や記載内容がシステムに蓄積・学習されない仕組みです。各メンバーが必要に応じて、壁打ちやメールの文面作成などに活用しています。その結果、業務時間が大幅に減り、ユーザーへの価値提供にリソースを割けるようになりました。
どのくらい業務時間を削減できたのでしょうか?
カスタマーサポートで月間約69時間の工数を削減できています。ユーザーから寄せられる質問への回答も、個人情報を活用しない状態で、生成AIを使ってどのように返信すべきかを推論しています。アウトプットの質を高めるために、過去の問合せデータや私たちが作成したFAQなどで学習をどんどん進めています。
「はじめてのプロンプトエンジニアリングコース」とは?
2023年6月に開講した「はじめてのプロンプトエンジニアリングコース」は、どのような学習プログラムなのでしょうか?
言語モデルやプロンプトの基礎や技術の本質を理解し、ChatGPTなどの生成AIを実務に活かせるスキルを身につけるためのプログラムです。エンジニアなどの技術職だけではなく、マーケターや営業、企画、経営者などさまざまな職種の方に受講いただいています。
具体的なカリキュラムについても教えてください。
4週間という短期間で結果を出せるようにカリキュラムを組んでいます。大きくわけると、「基本となる言語モデルとプロンプトの理解」、「プロンプトエンジニアリングの技術習得」、「プロンプトエンジニアリングを使ったアウトプットの実践」の3パートがあります。
学習サイクルとしては、まずはカリキュラムを読んで基礎を理解。そのあとで実践的な課題に取り組み、疑問点をメンターに質問して解決していきます。最終的には、実務に生成AIをどのように活用するのかを考える課題にも取り組みます。
生成AIの学習は、英会話に例えると理解しやすいかもしれません。「言語を理解する」、「会話の仕方を学ぶ」、「実践する」という一連の学習を経て知識としてしっかり身につきます。
基礎から実践までしっかり学べるということですね。受講生から支持されているポイントについても教えてください。
2つあります。1つ目は言語モデルの本質的な部分を学べることです。プロンプトの書き方を丸暗記するような学習の仕方ではなく、言語モデルの仕組みを踏まえて適切な指示を出す力を身につけられます。本質を理解することにより、将来的にもっと進化した生成AIを使用する際も対応できるはずです。
2つ目は、疑問をすぐに解消できるサポート体制を整えている点です。毎日15~23時まではメンターがチャットで質問を受け付けており、1分以内くらいですぐに回答しています。メンターは全員AIに関する知見があり、実務経験のある現役エンジニアなので、実践的なアドバイスができることが強みです。
受講生からは実際にどんな反応がありますか?
「独学だとつまずきがちだけど、メンターが親身に質問に回答してくれるので理解しやすかった」、「課題を通して実務で活用するイメージが広がった」などの感想をいただいています。以前から言語モデルに触れていた受講生が講座で学び、アウトプットの質が上がったというケースもありますね。
実際に結果が出せるようになるのは、大きな魅力ですね。プロンプトエンジニアリングのスキルを活かしたキャリア形成についても教えてください。
今後、プロンプトエンジニアリングのニーズは確実に高まっていくと考えられます。プロンプトエンジニアリングの手法を活用することで、「生産性の高い人材」としてキャリアの幅がどんどん広がっていくのではないでしょうか。
生成AIがさまざまな仕事を進化させていく
プロンプトエンジニアリングの領域は、今後どのように変化していくと考えていますか?
プロンプトエンジニアリングの進化によって、今後は、必ずしも人間が行う必要がない業務は、AIに任せるという流れが加速すると思います。生産性の向上に伴い、人間にしかできないあるいは人間がやるべきことに、より多くの時間を割けるようなるはずです。その結果、サービスの質が上がり、世の中がよくなるというサイクルが生まれると期待しています。
AIが人間の仕事を奪うのではなく、取り組む仕事の性質が変わるんですね。
ええ。ただし、生成AIを使いこなせるかどうかで生産性に大きな違いが出て、人材のバリューに大きな差が出てしまう可能性もあります。いずれにしても、生成AIを活用して生産性をあげていくことで、さまざまな職業が進化するタイミングがやってくるのではないでしょうか。
今後貴社で予定しているプロンプトエンジニアリング関連の取り組みについて、お聞かせください。
「はじめてのプロンプトエンジニアリングコース」以外にも、エンジニア向けに違った切り口から言語モデルの活用を学べるコースもスタートしています。9月12日に募集開始した「LLMアプリ開発コース」では、LLM(大規模言語モデル)を使用したアプリケーション開発スキルを習得できます。具体的にはPythonの基礎、OpenAI APIやLangChainを駆使してLLMによるアプリケーション実装・開発の技術を習得することが可能です。
その他にも、知識や技術そのものは理解できても、仕事に活かしきれないという課題も寄せられるので、実践的な解決策を伝えるプログラムも考えているところです。プロンプトエンジニアリングがもっと世の中に浸透することで、よりよい生産活動ができる社会になることを願っているので、私たちの学習プログラムがそのきっかけになると嬉しいですね。
ライター
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから