見出し画像

【初心者向け】ChatGPTを業務で活用してみよう!


はじめに


皆さん、こんにちは。
QAエンジニアの野田と申します。
私は2024年の1月に、第二新卒でSHIFTに入社しました。現在はソフトウェアテストの設計やPMO補佐という形で、日々目まぐるしく変化する状況の中、ソフトウェアの品質と向き合っています!

皆さんは、生成AIを業務で活用していますか?
私自身、業務で生成AIを使い始めたのは最近ですが、主に文書作成や課題の真因分析等にChatGPTを活用しています。

本記事では、生成AIの中でもChatGPTに焦点を当てて、「ChatGPTを使用したことがない人・使用したことはあるがうまくプロンプトが書けない人」向けにプロンプトの書き方のコツや、使用における注意点を紹介していきたいと思います。

生成AIとは


ひとくちに生成AIといえど、生成AIには生成コンテンツ別に、以下のような種類があります。

・テキスト生成型
・画像生成型
・動画生成型
・音楽生成型

Google社が開発・提供している「Gemini」等、複数種類のコンテンツを生成できる生成AIも存在します。
私の場合は、弊社内で提供されているクローズド環境のChatGPT(API版)を業務で活用しています。

ChatGPT

ChatGPTは、OpenAI社が開発・提供している生成AIモデルで、主にテキスト生成に特化したモデルです。
また、ChatGPTは、大規模言語モデルを応用した"対話型"の生成AIです。
まるで人間とチャットをしているかのようなやりとりを通じてインプットを行い、それに対するアウトプットを生成するという特徴を持っています。

大規模言語モデル(LLM)

前述した"大規模言語モデル"とは、一体何でしょうか?
野村総合研究所HP( https://www.nri.com/jp/knowledge/glossary/llm.html )では、大規模言語モデルについて、以下のように説明されています。

大規模言語モデル(Large Language Models、LLM)とは、非常に巨大なデータセットと ディープラーニング技術を用いて構築された言語モデルです。ここでいう「大規模」とは、従来の自然言語モデルと比べ、後述する3つの要素「計算量」「データ量」「パラメータ数」を大幅に増やして構築されていることに由来します。大規模言語モデルは、人間に近い流暢な会話が可能であり、自然言語を用いたさまざまな処理を高精度で行えることから、世界中で注目を集めています。

野村総合研究所HP( https://www.nri.com/jp/knowledge/glossary/llm.html )より引用

つまり、大規模言語モデルは、従来の自然言語処理技術を大幅に進化させたものであり、その応用範囲は非常に広いです。
例えば、文章の自動生成、翻訳、要約、質問応答、感情分析など、多岐にわたるタスクに対応できます。

ChatGPTは、この大規模言語モデルの一例です。
対話を通してコミュニケーションをとることで、様々な返答を得ることができるのです。

しかし、ChatGPTを効果的に活用するためには、適切なプロンプトを作成することが非常に重要です。プロンプトの質が高ければ高いほど、生成されるアウトプットもより精度が高く、目的に合ったものになります。

次項では、「プロンプトの質」を高めるための簡単なコツを紹介いたします。

効果的なプロンプトの書き方


ChatGPTのような生成AIにおいて、指示としてインプットする内容は、AIの生成結果を左右する重要な要素です。
この"インプットする内容"のことを「プロンプト」といいます。

プロンプトを具体的に入力することで、意図する生成結果を得ることができます。

プロンプトの書き方については様々なテクニックがありますが、すぐにでも使えるコツとして"「Few-shotプロンプト」をうまく活用する"というものがあります。

"shot"とは、プロンプトの中の例(ヒント)のことです。
つまり、Few-shotプロンプトとは、「生成AIに対していくつかの例(ヒント)を提示する」プロンプトのことです(対して"Zero-shotプロンプト"があり、こちらはプロンプト内に例(ヒント)を含まないものになります)。
Few-shotプロンプトをうまく活用することで、出力される回答の精度を上げることができます。

Few-shotプロンプトを活用する

以下は、Few-shotプロンプトの例です。
明示的な指示はせずに、プロンプトの中に例1,2を含めた時、ChatGPTはどのような出力をするでしょうか?

上記のプロンプトに対して、ChatGPTからは以下の出力が得られました。

プロンプト内の例1,2から、「入力された日本語を英語で出力する」といった"型"を理解して、回答を出力したのです。

つまり、プロンプトの中に、ChatGPTが出力する際のヒントや出力形式、入力の背景情報等を具体的に入力することで、ChatGPTはそれらの情報を踏まえた上で出力を生成します。

言い換えると、具体的な指示を適切に入力することができれば、ユーザーが活用しやすい出力を得ることができるということです。

公式FAQ

なお、効果的なプロンプト作成のコツは、OpenAI社の公式FAQ( https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-the-openai-api )にも掲載されています。
上記で説明したFew-shotでのプロンプティングは、4,5で紹介されています。
上記のページでは9つのコツが紹介されていますので、是非こちらも目を通してみてください。

ChatGPT使用にあたっての注意点


便利なChatGPTですが、使用する際の注意点があります。
特に業務で活用する場合には、以下のようなことに注意することが重要です。

ハルシネーション

ハルシネーションとは、生成AIが出力する不正確な情報です。
大規模言語モデルは、その特性上、正しくない情報を出力することがあります。
書籍「大規模言語モデルを使いこなすためのプロンプトエンジニアリングの教科書」の中で、以下が"大規模言語モデルの特徴"として述べられています。

大規模言語モデルは、常に「もっともらしい」文章を作成することを目標としています。
プロンプトに「文章の先頭部分」を与えた場合には、その文章の続きを作成してくれます。
その先頭部分から推測して、もっともらしい文章をつなげようとします。

つまり、語句と語句の「もっともらしい」つながりが重視されて文章が生成されることにより、正確でない情報が出力される可能性があるということです。

生成結果の論理の不整合や、思考プロセスの際の根拠となる情報が誤っていること等によって、ハルシネーションは起こります。
しかし、「もっともらしい文章」が生成されるため、あたかも事実のように見えてしまうのです。

生成結果を取り扱う際には、この点に注意することが大切です。
なお、ChatGPTのような対話型AIでは、生成された結果に対して、返答を行うことができます。
生成結果に対しての導出の根拠を求める返答(例:"上記の出力の●●に対しての導出プロセスをステップバイステップで教えて。")を行うことで、誤っている情報に気づきやすくなるため、活用してみてください。

機密情報のインプット

ChatGPTをはじめとする大規模言語モデルを用いた生成AIは、ユーザーが入力した会話内容を学習するという特性を持っています。
つまり、学習されるとまずい情報(例:社外秘情報・個人情報)を入力することで、情報流出を引き起こすリスクがあります。特に業務で扱う情報については、機密性が高いものも多く、注意が必要です。

弊社の場合、ChatGPTのAPIを用いたクローズドの環境での生成AIを社員に提供しており、機密情報を入力しても学習されないような対策が取られています。

ChatGPTを業務利用する場合は、「機密情報をプロンプトに使用しない」or「情報流出しないように構築したAPI版を活用する」ことが重要です。

実際の使い方の例


ChatGPTの活用方法は、多岐にわたります。
その中でも、私が実際に行っている日々の業務でのChatGPTの使い方の例を2つご紹介します。

課題の整理・深堀

以前、お客様に対して、業務の運用プロセス改善の提案をする機会がありました。

「最終的にはこのような形にしたい」という目指すべきゴールと、現状顕在化している課題は把握していましたが、課題の真因を分析するのに頭を悩ませていました。

私の場合、大抵このような時は、「観点」が抜け落ちているのです。
この時私は、ChatGPTに「現状」や「課題」、「あるべき姿」等のあらゆる情報を投入して、思考させることで「自分自身が気づかなかった観点」を絞りだしていました。

生成AIは様々な視点から回答を生成してくれるため、多様な側面から物事を考える必要がある場合には非常に有用であると個人的に考えています。

また、ChatGPTに思考させる際には、以下のようなプロンプトを入力することで、ChatGPTの出力を論理的かつ構造的に理解することができ、新たな気づきにも繋がります。

上記の回答に至った思考プロセスをstep by stepで教えてください。

文章推敲

私は、資料作りや発表内容の整理等にChatGPTを活用しています。

よく行うのが文章の要約です。
ある程度、伝えたいことの整理ができた段階でChatGPTに手伝ってもらい、よりよいアウトプットに仕上げていました。

また、これは文章要約の1つのテクニックですが、ChatGPTにプロンプトを入力する際に、

以下の文章を○○文字以内で要約してください。

というZero-shotプロンプトではなく、以下のように加筆したFew-shotプロンプトにすることで、より目的に合った文章を生成することができます。

以下の文章を○○文字以内で要約してください。
ただし、この文章の読み手はPMです。 要約の際には、PM目線で見た際の「プロジェクトマネジメントにおけるメリット」を強調してください。

上記のように、"どのような出力にしたいのか"という方向性を定めてプロンプトを入力することで、出力された際の「コレジャナイ感」を感じることが少なくなることでしょう。

なお、ChatGPTは直前の出力に対して適切なフィードバックを繰り返すことで、どんどん出力の質が上がっていきます。
Zero-shotからいくつかの対話を通して、徐々に方向性を絞り込んでいくこともできます。

そのため、業務で活用する場合には、生成AIを使って「楽をしよう」という考えを先行させるよりも、「よりよいアウトプットを作ろう」と考えて活用する方が、実感できる効果は高いかもしれません。

終わりに


今回の記事では、ChatGPTを業務で活用する際の効果的な手法と注意点を紹介させていただきました。
いかがだったでしょうか?

ChatGPTを業務で活用することで、作業の効率化や品質向上が期待できます。しかし、生成AIの特性を理解して、適切に利用することが重要です。
ハルシネーションや機密情報の取り扱いに注意しながら、効果的に活用していきましょう。

皆さんもぜひ、ChatGPTを活用してみてください!


<参考文献>
「大規模言語モデルを使いこなすためのプロンプトエンジニアリングの教科書」
著者:クジラ飛行机
初版発行日:2024年3月14日

<参考Webサイト> 野村総合研究所HP 『用語解説 - 大規模言語モデル』( https://www.nri.com/jp/knowledge/glossary/llm.html
OpenAI社 公式FAQ 『Best practices for prompt engineering with the OpenAI API』( https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-the-openai-api


執筆者プロフィール:野田 一希(のだ かずき)
大学卒業後、小売・流通業に就職。業務上での新規システム導入プロジェクトがきっかけとなりIT業界に転職。現在は株式会社SHIFTにて、QAエンジニアとして日々ソフトウェアと向き合っている。バイクとラーメンをこよなく愛している。

SHIFTへのお問合せはお気軽に

SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/

SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/

SHIFTの導入事例
https://service.shiftinc.jp/case/

お役立ち資料はこちら
https://service.shiftinc.jp/resources/

SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/

PHOTO:UnsplashGoogle DeepMind