ChatGPTをビジネスで利用するには③社内ナレッジ活用編
早くもChatGPTは幻滅期を迎えているとも言われています。検索数はピーク時の半分との記事もありました。しかし、積極的に使うことで業務効率がよくなったという話も聞きます。つまり、上手に使うためにはコツが必要であり、ChatGPTの研究と情報共有(勉強会)が必要です。
また、社内のナレッジを活用して回答させるようなChatGPTが作れないのか?とよく聞かれます。
作成できるが、すぐではない、ということをこのブログでお話していきます。また、セキュリティ面からAPIを使用することを前提としています。(セキュリティに関しては前回のブログを参照して下さい)
目次[非表示]
- 1.新規データをChatGPTに追加する方法
- 1.1. ■プロンプトへの入力
- 1.2.■ファインチューニング
- 1.3.■外部データの取り込み
- 2.嘘の回答を排除するためには
- 3. プロンプトエンジニアリングの必要性
- 4. 自社のナレッジをChatGPTで利用する~まとめ~
新規データをChatGPTに追加する方法
ChatGPTに社内ナレッジなどの新しいデータを追加するには、以下3つの方法があります。
■プロンプトへの入力
プロンプト(Chatの入力画面)へ新規データをコピーし、この情報に対する処理を指示することで、新規データを使って回答作成ができます。しかし、プロンプト入力文字数には限界があります。
分割して貼り付けをし、処理させることもできますが、上手くいかないこともあるので、エンドユーザーが使いこなせる状況ではないかと思います。
■ファインチューニング
ファインチューニングは事前学習したモデルに対して、新規データを追加し再学習するものです。社内ナレッジを利用した回答をWebベースのChatGPTのように簡単な文章で依頼できます。この際、例を200個学習することが推奨されています。これはなかなかハードルが高いかと思いますが、今後技術が進化すれば、効率よくできるようになるかもしれません。
しかし、現在GPT3.5及び4ではファインチューニングは使えません。今年後半からサポート予定とのことです。(https://platform.openai.com/docs/guides/fine-tuning)
これはAzure Open AI Serviceでも同様です。
金融や医療などの分野ではChatGPTの性能はあまりよくなく、専門的な情報のさらなる学習が必要と言われています。海外では特化分野に絞ったAIサービスが開発され、提供され始めています。日本語も特殊な部分が多く、日本語に特化したLLMの開発も進んでいると状況です。
再学習での調整やLLM自体の開発技術は今後も進化すると思われます。
*注意*ファインチューニングという言葉の意味は厳密には決まっておらず、あとで紹介する「プロンプトエンジニアリング」を含め、広い意味でのLLMに対するチューニングとして使用される場合があります。しかし、再学習とプロンプトエンジニアリングでは技術と効果が異なるため、システム開発の際にはこの違いは区別すべきですが、利用するだけであれば厳密に区別する必要はありません。
■外部データの取り込み
ChatGPTのプラグインの使用で、PDFやURLを指定し、この情報に基づき回答作成が可能です。プラグインにより扱える文字数は異なります。ただし、長文になると適切なキーワードが拾えず、回答精度が落ちると言われています。そのため、分割して取り込むなどの工夫が必要です。
また、参照先を指定したとしても、GPTというLLMの特性上、嘘回答もあるということを前提として利用する必要があります。この手の機能を使うと、参照元のページも表示してくれますが、そのページを表示しても回答の根拠となる情報がないことが割とあります。。。
他にも、SQL、Word、Excelなどから情報を取り込むツールもあります。ただし、プラグインは昔からセキュリティ対策が甘いと言われているため、攻撃者に狙われやすいという性質もあり、きちんと対策が取られているかを確認すべきです。
Azure Open AI Sericeでも、外部データを取り込むサービスがMicrosoftから提供されています。
嘘の回答を排除するためには
ChatGPTでの回答から嘘を回避することは現在かなり困難です。
しかし、例えばChatGPTで作成したQAの内容を人が確認し、問題がないものをデータベースに登録し、既存の技術を使ったChatBOTに読み込ませれば、正確に回答させることができます。ゼロからQAを作る必要がなくなるので、効率的です。
ゼロから自社開発する方法もありますが、ChatGPTで作成したQAをChatBOTに取り込むサービスがたくさんの開発業者から提供されているので、こういったものを利用するのも1つです。
また、これから紹介するプロンプトエンジニアリングを使ってある程度回避することもできます。
プロンプトエンジニアリングの必要性
入力した情報に対して望ましい出力を指示することをプロンプトエンジニアリングといいます。もともと上手くチューニングされているものに対しては、回答形式の情報を与えず、単に質問するだけで適切な回答が表示されます。
しかし、上手くチューニングされていない場合、人が望むような回答を出すためにはできるだけ具体的に指示する必要があります。これが意外に難しく、プロンプトエンジニアという職種も登場して、今後需要が伸びると言われています。しかし、ファインチューニングを行えば、プロンプトエンジニアリングは不要とも言われているので、今後どうなるのでしょうか?今の段階では、何とも言えません。。
プロンプトエンジニアリングはオープンなChatGPTを使う場合、APIを使う場合、どちらでも今は必要です。
以下に上手くいかなかった例と成功した例を紹介します。(ちなみにこのやり方はかなり初心者向けのものです。今回はプロンプトエンジニアリングの必要性を分かってもらうことが趣旨でやり方についての紹介が趣旨ではありません)
■不正解をチューニングしようとしたが失敗した例
① 思い付きで指示
この指示の出し方では、すべて/22でサブネット化されてしまいました。。。上手くいかなかったので、指示をもう少し明瞭にして指示をしてみます。
②簡潔な指示
/22と/30の2つが回答されましたが、まだ最適な回答ではありません。タスクを分割するといいらしいので、試してみます。
③ 分割した指示
なぜかサブネット3が他と同じ条件なのに、/22となっています。ただ、おおよそはできているので指示の出し方で正解を出させることはできると思います。
指示の出し方で答えも変わってくるので、プロンプトエンジニアという職種の需要が伸びると言われているのもうなずけます。
■PPTに載せる提案書用文章作成に成功した例
①思いつきで指示
もう少し説明が欲しいのでタスクを分割して指示してみます。
②タスクを分割して指示
PPTに張り付けるのにちょうどいい感じになりました。
このような試行錯誤をそれぞれ各個人で行うと非効率です。社内利用では数名で時間をとって検証し、テンプレート作成と ナレッジを共有していかないと、思ったような回答が得られません。
このような状況が「幻滅期」を作っているのだと思います。
自社のナレッジをChatGPTで利用する~まとめ~
最初に書いた通り、「社内のナレッジを活用して回答させるようなChatGPTは作れなくもないが、すぐにではない」という意味がお分かりいただけたでしょうか?
読み込むデータのチューニングや回答表現のチューニング、回答の精査など、様々なことを行う必要があります。そして、アドレス計算や提案書用文章など、用途毎に必要な作業です。
なかなか大変ですが、最初苦労すれば、後々楽になり、人がすべきタスクも変化する技術です!
次回は「NOPヘルプデスク業務でのChatGPT利用検証」について紹介します。