生成AIは業務の現場に急速に浸透し、「使って当たり前」の時代が到来しています。その活用範囲は広がる一方、情報漏洩や誤情報のリスクが企業の大きな課題になっています。今求められるのは、誰もが“安全かつ賢く”生成AIを使いこなすリテラシーです。本稿は、社内の誰もが生成AIを安全に、自信を持って使えるようになるための第一歩として位置付けられた全社員向け研修資料の後編です。業種や職種を問わず実践できる生成AIリテラシー向上のポイントを、具体的な事例やノウハウとともに解説します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
各社のエンジニアが発信する「テックブログ」。その熱量を@IT編集部がピックアップ。 生成AI前提時代に向けて環境が激変する中、“隣のエンジニア”は何を感じ、何を考え、どうアクションしているのか?――試行錯誤のプロセス、成功の鍵、変化に立ち向かうマインドなど現場のリアル、ナレッジを凝縮してお届けします。
本稿はTISインテックグループが運営する、開発現場から生まれた技術ノウハウを公開するサイト「Fintan」上で2024年9月9日に掲載した研修資料を転載するものです。そのため、用字用語の統一ルールなどが、@ITのものと異なります。ご了承ください。
前編では、生成AIの基礎や仕組み、活用例を紹介し、日常的に使うために必要なリテラシーの重要性について解説しました。また、生成AIと協働するためのコツや、得意・不得意な分野、リスクについても具体例を挙げながら整理しました。
大切なのは、生成AIの強みと弱みを理解した上で、活用できる場面では積極的に利用しつつ、すべての情報を鵜呑みにせず、最終的な意思決定は自身で行うことです。
後編では、実際の活用方法についてさらに詳しく解説します。
生成AIを用いたサービスの代表例としては、対話型サービスやコーディング、社内情報検索といったものが挙げられます。本稿では対話型サービスに焦点をあてて解説します。
どう使い分ければいいのかイメージしやすいよう、業務で使用する場合の一例として、いくつかのサービスを紹介します。
まず、OpenAIが提供するチャット形式のサービスであるChatGPTです。このサービスは操作しやすいUIを持っており、すでに利用されたことある方も多いのではないでしょうか。
次に、Microsoft社が提供するMicrosoft Copilot for Microsoft 365です。こちらは、TeamsなどのOfficeサービスとの連携に生成AIを活用できるサービスです。
GitHub Copilotは、GitHub社が提供するサービスで、コード作成やレビューの提案を行います。
ここで紹介したサービスは、数多くある生成AIを用いたサービスのごく一部です。また、紹介した内容は当記事を作成した時点の情報ですので、各サービスの最新情報をご確認のうえ、利用いただくようご注意ください。
業務で生成AIを用いた各種サービスを利用する場合、最も注意したい点が機密情報の取り扱いについてです。
機密情報とは、特定の組織や個人が秘密にしておきたい情報であり、これが漏れると経済的な損失や信用の失墜、法律的な問題が発生することがあります。機密情報の例としては、ソースコードや顧客データ、キーやトークンなどが挙げられます。システム開発でよく触れられる機密情報としては、具体的なシステム名称や機能の名前、会社名などが該当し、このような情報をそのまま入力することで、モデルの学習などに使用されると、機密情報の流出につながる可能性があります。
利用するときは機密情報を入力しないように抽象的な表現へ変換したり、構成自体が機密情報にあたるような文章の入力は控えたりするなど、業務利用する際には前提確認を怠らずに利用することを忘れてはいけません。
生成AIとのコミュニケーションには、命令を与えてやる必要があります。この命令文のことをプロンプトと言います。
イメージとしては、1足す1の演算を行う場合、従来のコンピュータであればコーディングを行い、コンピュータに指示を与える必要がありました。一方、生成AIの場合、「1+1を計算して」といったようにまるで人と会話するときのような指示を与えることで、回答を得ることができます。(なお、説明の都合上この例を用いましたが、生成AIは数値計算は苦手と言われています。)
生成AIからより効果的な回答を引き出すためのプロンプト作成に関する技術をプロンプトエンジニアリングといい、これにはさまざまな手法があります。
例えば、「Few-Shot Prompting」という方法では、具体的な例を少し与えることで、より狙い通りの回答が得られます。この図の例では、アンケート結果の分析が低い点数であるという期待に対し、対象者とその点数のみを与えて分析してもらうと、期待した情報が得られませんでしたが、凡例や分析のための指標も併せて与えてやると、期待した情報を得ることができています。
また、「Chain-of-Thought Prompting」では、その名の通り、思考の連鎖(道筋)を示してステップバイステップで考えさせることで、深い分析を促します。
この例では、分析してほしい指示だけでも十分要因を挙げてくれていますが、ステップバイステップで考えるよう明示したり、考え方の道筋をある程度示したりすることで、より要素間の関係などに注目した深い回答を得ることができています。
プロンプトエンジニアリングは、唯一の正解があるわけではなく、生成AIとコミュニケーションを取っていくなかでやりやすい方法を見つけられることも多いです。
「まずこんなとき、どう聞けばいいんだろう?」と気になったときは、プロンプトエンジニアリングの案内役として、TISが作成している生成AI活用ガイドを参考にしてください。
システム開発にまつわる工程や作業を中心とした、あらゆる場面を想定した詳しいプロンプト例が載っています。
では、生成AIと協働するときのポイント「タスクばらしを行い、どこに生成AIを適用するかを見極め」を行い、プロンプトエンジニアリングを使って実際にタスクを行う流れについて、会議の議事録作成のケースをもとに、考えてみましょう。
まずは、会議の議事録作成において発生するプロセスを挙げ、そのなかでAIに任せられる部分はどこか、洗い出してみましょう。
会議の議事録作成の場合、たとえば、このようなタスクに分解することができます。
「議事録の構造定義」というのは、たとえば、「大見出しに会議の題、中見出しに議題」といったように、どのようなフォーマットでまとめてほしいかを表しています。
この例では、文字起こしと発言者の特定として「記録データの文字起こし」のプロセスが、文字起こししたメモをインプットにフォーマットにあわせた編集として「編集と校正」のプロセスが、生成AIに任せることができる部分だと考えることができます。
会議の議事録作成というのはごく一例で、ここで示した流れは唯一のやり方というわけではありませんが、このような流れに沿うことで、生成AIと協働することのイメージを体感していきましょう。
改めて、生成AIとのコミュニケーションのポイントを再掲します。これらを念頭に置いたうえで、まずは積極的に生成AIを利用してみることが大切です。
対話型サービスにおける活用例を見ていきます。具体的なプロンプト例とプロンプトエンジニアリングのポイントをお伝えします。
まず、「Linuxサーバ上で稼働するOracleDBの運用作業のマニュアルの下書きを作成してください。」というプロンプトを生成AIに投げかけてみます。
続いて、以下のようなプロンプトを生成AIに投げかけてみます。
あなたはシステムの運用保守担当者です。 制約条件に従って運用作業のマニュアルの下書きを作成してください。 #制約条件 *扱う製品/サービス情報を基にマニュアルを作成すること *マニュアルはステップごとに分けること *各ステップではタイトルと本文を分けること *簡潔で分かりやすい文章にすること #出力形式 *マニュアル本文 ステップ1:・・・ *その他の注意点 #製品情報 *製品カテゴリ:linuxサーバー上で稼働する Oracle DB *使用者:月次のサーバーメンテナンスを行う *マニュアルの目的: DB接続するlinuxのログイン〜DBログイン、メンテナンスに関わる各種操作
#マニュアル本文 ##ステップ1:Linuxへのログイン タイトル:Linuxサーバーへのログイン ターミナルを開きます。 次のコマンドを入力します:ssh ユーザー名@サーバーのIPアドレス パスワードを入力します。正しく入力すると、ログイン成功のメッセージが表示されます。 ##ステップ2:Oracle DBへの接続 タイトル:Oracle DBへの接続 次のコマンドを入力します:sqlplus / as sysdba 正しく接続されると、Connected to:というメッセージが表示されます。 ##ステップ3:メンテナンス作業 タイトル:メンテナンス作業の実行 必要なSQLコマンドを実行します。例えば、データベースの状態を確認するためには、SELECT * FROM V$DATABASE;と入力します。 メンテナンス作業が終了したら、exitコマンドを入力してOracle DBからログアウトします。 #その他の注意点 ・LinuxサーバーへのログインやOracle DBへの接続の際のユーザー名やパスワードは、 セキュリティのために定期的に変更してください。 ・SQLコマンドの実行は、取り扱いに注意が必要です。特に、データを変更や削除するコマンドは、 間違った操作によりデータロスを引き起こす可能性があります。 ・メンテナンス作業は、通常の業務時間外に行うことを推奨します。これは、作業中にDBが一時的にアクセス不可になる可能性があるためです。また、作業は必ず事前通知を行い、必要に応じてバックアップを取るようにしてください。
先ほどの例と比較して、より情報として精度の高いものが得られるかと思います。生成AIにおいては、このようにプロンプト内に「条件」や「目的」を明示することで、より詳細な情報を得ることができます。
また、プロンプトのテクニックとして、*印や#印などを用いて構造的に記載することが可能です。
人とのコミュニケーションと異なり、構造化させた情報を与えることができるのは生成AIの特徴ともいえます。構造化されたプロンプトは理解のしやすさ(コンピュータ的に捉えるのであれば、処理のしやすさ)に長けており、情報を正確に扱うことができるようになります。人とのコミュニケーションであれば「暗黙の了解」で済まされるような内容について、構造化して生成AIに与えてみるといったことにぜひチャレンジしてみてください。
どのようなプロンプトが良いのかという指標の決め方は難しいところもあります。
ここには良い回答を得るためのひとつの例として簡易チェックリストを記載しています。
しかし、生成AIは繰り返し利用することが可能です。きれいなプロンプトを目指すよりも、まずは利用をしてみるということを心がけてみましょう。そのうえで、欲しい回答に近付けない場合は、改めてプロンプトを見直してみるといったアプローチが実践的に有効です。
この例では、質問する自身の立場や回答を期待する生成AIの立場をプロンプト内で明示しています。
わたしはとあるWebシステムの保守開発を担当しており、
現在、3か月納期の小規模開発案件を受注し、
カットオーバーに向けてタスクばらしを行いました。
あなたは{#役割}です。次の{#ルール}を必ず守り、以下の{#タスクばらし}への
指摘内容と該当タスクを挙げて、{#形式}の通り出力してください。
#役割
非常に綿密な計画を立てることのできるベテランのシステムエンジニア
#ルール
* 既に出力した観点と被るような観点は考えないこと
* 各作業がMECEの観点で満たされるような網羅的な指摘であること
#タスクばらし
1.要件定義と計画
・・・
#形式
| No | 指摘内容 | 該当タスク |
| No | 指摘内容 | 該当タスク | |----|----------|-------------| | 1 | 保守作業の前に、システムの全体的なバックアップを確実に取得することが重要です。 | 準備作業 | | 2 | 保守作業中の緊急事態に備えて、緊急連絡先を事前に確認しておくことが必要です。 | 通知と連絡 | | 3 | 保守作業の影響範囲を事前に徹底的に分析し、必要に応じて追加のテストや検証を行うことが重要です。 | 要件定義と計画 | ・・・
このように人とのコミュニケーションでは共通理解であるような立場を明示することで、期待する回答に近付けることができます。
欲しい回答の例を出すというのも有効です。
以下のPythonコードに潜むバグを特定し、修正してください。 コード: def calculate_total(price, tax_rate): total = price * tax_rate return total # 例: # price = 100, tax_rate = 0.1の場合、期待される出力は110
あなたのコードは税金を加えるのではなく、価格を税率で乗算しています。税金を計算し、それを元の価格に加える必要があります。修正したコードは次のようになります: python def calculate_total(price, tax_rate): tax = price * tax_rate total = price + tax return total この修正版では、まず税金(価格と税率の積)を計算し、それを元の価格に加えて合計を得ます。したがって、価格が100で税率が0.1の場合、合計は110になります。
例えばプログラムのソースコードを生成AIに書かせる場合には、どのようなインプットに対して、どのようなアウトプットが必要となるのかを明示してみると良いでしょう。
生成AIとの会話では、質問と回答を何度も繰り返すということも重要です。
一度で全ての情報を伝えることが難しい場合や、そもそも詳細について自分でも整理できていない場合など、生成AI側から質問させることで、自身の理解を引き出してみるような利用もできます。
なぜなぜ分析の専門家として、 「ユーザ管理に必要なマスタデータを削除してしまった件」に対する、 なぜなぜ分析の壁打ち相手になってください。 ※「ユーザ管理に必要なマスタデータを削除してしまった件」は入れ替え部分
もちろんです、なぜなぜ分析の壁打ち相手になります。この分析は問題の根本原因を特定し、再発防止策を立案するための手法です。それでは、「ユーザ管理に必要なマスタデータを削除してしまった件」について話し合いましょう。 1.なぜ:ユーザ管理に必要なマスタデータが削除されましたか? この答えにより、誤削除の直接的な原因が何であったかを明らかにします。たとえば、誤操作、システムのバグ、あるいはセキュリティ侵害などが考えられます。 2.なぜ:それが起こったのですか? ここでは、その直接的な原因がなぜ起こったのかを探ります。ユーザーの誤解、システムの不具合、セキュリティ対策の不備など、さまざまな可能性があります。 ・・・ 以上のプロセスを通じて、「ユーザ管理に必要なマスタデータを削除してしまった件」の根本原因を明らかにし、再発防止策を立案することができるでしょう。なお、私自身はAIであるため、具体的な状況や組織の状況については知り得ません。それらの情報は、あなたから提供していただく必要があります。
「生成AIに与えるプロンプトそれ自体を、生成AIに作ってもらおう」という指示を出すことも可能です。
プロンプトを書くのが得意な人として振る舞ってください。 私がしたい内容を実行できる最高のプロンプトを作成することを、今からあなたにお願いしたいです。 ここでのプロンプトとは、チャットサービス(ChatGPTなど)上で動くプロンプトのことです。 ここに3つの手順を記載します。 1. 最初にどういった内容のプロンプトを作りたいのかを聞いてください。 それに関して、繰り返し反復をして精度を高めてください。質問は私が提供します。 私が質問の答えを提供するので、次のステップを経て、継続的な反復を通じて改善してください。 2. 上記の入力内容に基づき、3つの段落を出力してください。 ア)修正後のプロンプト (修正したプロンプトを排出してください。 これは、チャットサービス(ChatGPTなど)が明確に意図を読み取れるものにしてください) イ)質問(プロンプトを良くするために必要な詳細情報に関連する質問をしてください) 3. 上記の手順を継続してください。 私からあなたに新しい情報を渡して、それに対してあなたが段落を改善してプロンプトを排出し、 最終的に私が「終わり」というまで続けてください。
了解しました、ではまず第一のステップとして、どのような内容のプロンプトを作成したいのか伺ってもよろしいでしょうか? 例えば、特定のテーマについての対話型のプロンプト、物語作成のプロンプト、教育的なプロンプトなど、具体的な目的やテーマがあれば教えていただければと思います。 また、プロンプトに求める特性や、ユーザーがどのような経験を得ることを期待しているのか、あるいはプロンプトが解決すべき問題や達成すべきターゲットが何かなど、詳細な情報もお知らせいただけますと幸いです。これらの情報を基に最良のプロンプトを作成いたします。
このプロンプトのポイントは、壁打ち相手になってもらう例と同様、「生成AIからわたしたちへ質問をさせること」です。一見ややこしく感じてしまいますが、流れを考えるとわかりやすく、「効果的なプロンプトを作成するために必要な質問をさせる」→「質問の答えを与える」→「それらの情報をもとに最適なプロンプトを出力してもらう」、というものです。
この流れに沿うことで、段階的な情報整理が可能になり、「神プロンプト」とも呼べるような、より効率的な回答が得られるプロンプトを生成AIにつくってもらうことができます。
(前ページの回答例に対して) 生成AIの得意と不得意について
ア)修正後のプロンプト: "AIの得意な分野と不得意な分野について詳しく語ってください。具体的には、AIがどのようなタスクを効率的に処理し、また、どのような問題に対しては難しさを感じるのか、その理由と共に教えてください。" イ)質問: このプロンプトは、AIの能力と制限について深く掘り下げることを目指しています。しかし、それはあくまで一般的な観点からの話で、特定のAIモデルやアプリケーションについて話すわけではありません。あなたが特定のAIモデルやアプリケーションについての情報を探しているのであれば、それについても教えていただけますか? また、AIの能力と制限について知りたい背景や目的についても教えていただけると、より具体的なプロンプトを作成することができます。
実行結果の一例として「生成AIの得意と不得意について」というテーマを与えた場合、修正後のプロンプト(回答例 ア))と、さらに具体的なプロンプトを作成するための要素を質問(回答例 イ))が出力されます。続いて、その質問に回答すると、その情報をもとに修正したプロンプトが出力されます。
十分に期待した修正後のプロンプトが出力されるまで、質問と回答、その出力を確認するという流れを繰り返すことにより、たった1回のやり取りで得られるのは難しい、高い精度のアウトプットを作成することが可能になります。
他にもこんな場面で対話型生成AIの利用を考えることができます。
普段の業務の小さなことから、まずは使ってみることにチャレンジしてみてください。
生成AIの活用により、業務の効率化や新たな視点での取り組みが進行しています。本研修資料では、生成AI活用のためのリテラシーを向上させる考え方や取り組みをご紹介しました。
しかし、すべての情報を理解し、実践できるようになろうとするよりも、生成AIを活用する上で大切なのは、とにかく使ってみることです。(あくまでベストプラクティスであり、唯一の正解ではないため、)間違えても構いませんし、その間違いを知っているのは生成AIだけです。人とのコミュニケーションと異なり、間違いを気にする必要はありません。
「明確に、文脈示して、鵜呑みせず」をキーワードに、生成AIの得意と不得意を理解しながら、協働・コミュニケーションをとっていき、あなたの仕事を今日から変えていきましょう!
新人エンジニアの生成AI利用常態化 約8割の現場で「OJT負担増」の実態が明らかに
危機感9割、実践4割 AI時代に露呈したセキュリティ教育のギャップ
生成AIの普及でセキュリティリスクが深刻化 社内のセキュリティ意識向上が必須に
AIがコードを書く時代、新人はどう育てる? 「使わせるか」「禁止するか」のジレンマ
「AI学習は無料で」が8割 ホンネは「金も時間もかけたくない」Copyright © ITmedia, Inc. All Rights Reserved.