16  生成AIの活用

16.1 生成AIとは

生成AI(generative artificial intelligence)とは,生成モデルを用いて,テキスト,画像,音声などのコンテンツを自動生成する人工知能の一種です.生成モデル(generative model)は,大量のデータを学習し,与えられた入力に対して新しいデータを生成します.

16.1.1 チャットボット

2022年11月にChatGPTが公開されたことで,生成AIは急速に普及し,個人や企業,研究機関などで広く利用されるようになりました.これに続き,Microsoft Copilot,Claude,Geminiなど多くの生成AIが登場しています.

チャットボットは,生成AIの代表的な応用例です.以下の表は,代表的なチャットボットを示しています.

チャットボット 開発元 初版
ChatGPT OpenAI 2022年11月
Microsoft Copilot Microsoft 2023年2月
Claude Anthropic 2023年3月
Gemini Google AI 2023年3月

※ Microsoft Copilotの初版は,Bing Chat(2023年2月公開)を起点としています.

ノートGPTの歴史

GPT(Generative Pre-trained Transformer)は,OpenAIが開発した大規模言語モデルのシリーズです.GPT-1は,2018年に発表された論文「Improving Language Understanding by Generative Pre-Training」で紹介されました.ChatGPTの公開当初はGPT-3.5系の大規模言語モデルが用いられました.

16.1.2 生成AIの分類

生成AIは,出力の形式に基づいて以下のように分類できます.

  • テキスト生成
  • 画像生成
  • 音声生成
  • 動画生成

また,入力と出力の形式によって以下のように分類できます.

  • text-to-text
  • text-to-image
  • image-to-image
  • image-to-text
  • image-to-video
  • video-to-video

さらに,マルチモーダルモデル(multimodal model)は,テキスト,画像,音声,動画などの複数の形式のデータを入力として受け取り,多様な形式のデータを出力する生成AIです.

生成AIを適切に活用することで,日常生活,ビジネス,研究,教育などの様々な場面で作業の効率化が期待できます.

16.1.3 生成AIの限界と注意点

生成AIは便利ですが,次のような限界があります.

  • ハルシネーション(もっともらしいが誤った情報)を出力することがある
  • 最新情報や専門情報が不正確な場合がある
  • 計算や引用,出典提示を誤ることがある

そのため,生成AIの回答はそのまま提出・利用せず,必ず信頼できる資料で検証することが重要です.

16.2 テキストの生成

テキスト生成は,生成AIの中でもよく利用されている分野です.テキスト生成の応用例としては,以下のようなものが挙げられます.

  • 要約生成
  • 文章生成
  • 質問応答
  • 翻訳
  • データ分析
  • プログラム生成
ノートテキスト生成の難しさ

英語アルファベットの26文字と空白文字からなる n 文字の文字列を生成する場合,27^{n} 通りの組み合わせが考えられます.例えば,長さ100の文字列を生成する場合,27^{100} 通りの組み合わせが存在し,このうち意味のある文章は極めてわずかです.

ノート無限の猿定理

無限の猿定理(infinite monkey theorem)とは,無限の時間があれば,猿がランダムにタイプライターを叩いていると,シェイクスピアの作品などの意味のある文章を生成することができるという定理です.この定理は,生成AIが意味のあるテキストを生成することがいかに難しいかを示す例としてよく引用されます.

キーボードのキーが 50 個あると仮定します.「banana」という単語を生成する確率は

\left(\frac{1}{50}\right)^{6} = \frac{1}{15,625,000,000}

です.

練習問題

  • ChatGPTGemini にアクセスし,チャットボットと会話してください.
  • Hello, world!と出力するC言語のプログラムをChatGPTに生成させ,OnlineGDBで実行してください.
  • 生成AIに「法政大学2025年度 経営システム工学科の入学者数」について質問し,得られた回答を信頼できる資料で検証してください.

16.3 プロンプトエンジニアリング

生成AIの分野において,プロンプト(prompt)とは,生成AIに与える入力データのことを指します.生成AIの回答は,プロンプトによって大きく異なるため,プロンプトの設定が重要です.プロンプトエンジニアリング(prompt engineering)とは,適切なプロンプトを設定する技術であり,言語モデルの性能を向上させるための重要な手法です.

ノートプロンプトエンジニアリングの参考サイト

プロンプトエンジニアリングに関するサイト

ここでは,大規模言語モデルからより良い出力を得るためのプロンプトエンジニアリングの手法を紹介します.

16.3.1 具体的な指示を書く

生成AIに与えるプロンプトは,明確で具体的な指示を含むことが重要です.指示が曖昧だと,望ましい出力を得ることが難しくなります.

  • 悪い例:「プロンプトエンジニアリングについて説明してください。」
  • 良い例:「大学一年生向けにプロンプトエンジニアリングの概念を2〜3文で説明してください。」

「プロンプトエンジニアリングについて説明してください。」と聞くと,生成AIは一般的な説明を行いますが,どのレベルの説明を求めているのかが不明確です.

  • 悪い例:「アメリカ合衆国財務長官の名前は何ですか?」
  • 良い例:「第1代アメリカ合衆国財務長官の名前は何ですか?在任期間も教えてください。」

「アメリカ合衆国財務長官の名前は何ですか?」と聞くと,どの時代の財務長官の名前を求めているのかが不明確です.

  • 悪い例:「二乗を計算するプログラムを書いてください。」
  • 良い例:「Pythonで整数の二乗を計算するプログラムを書いてください。ユーザーから数値を入力できるようにしてください。なお,負の数値が入力された場合は,エラーメッセージを表示してください。」

「二乗を計算するプログラムを書いてください。」と聞くと,どのプログラミング言語で書くのか,ユーザーから数値を入力できるようにするのか,負の数値が入力された場合の処理はどうするのかなどが不明確です.

考察

生成AIがプログラムを生成できるから,大学でプログラミングを学ばなくても良いのではないでしょうか.

16.3.2 生成AIに役割を与える

生成AIには,特定の役割を与えることで,その役割に応じた出力を得ることができます.

  • :「あなたは現代詩人です。どのような質問にも、現代詩のスタイルで回答してください。説明や補足は不要です。口語表現ではなく、美しい日本語を用いてください。プログラミングの再帰の概念について説明してください。」
  • :「あなたはお笑い芸人です。どのような質問にも、お笑いのスタイルで回答してください。大学一年生向けにプロンプトエンジニアリングの概念を2〜3文で説明してください。」

16.3.3 例文を使用する

的確なプロンプトを設定することが難しい場合,例文を使用することで,生成AIに適切な出力を生成させることができます.この手法をFew-shot promptingと呼びます.

以下の例では,文を肯定的,中立的,否定的に分類するプロンプトを示しています.

次の文を「肯定的」「中立的」「否定的」のいずれか1語だけで分類してください.

これはすごい.//肯定的
休暇はまずまずでした.//中立的
昨日の会議はつまらなかった.//否定的
今日の講義は面白かった.//

16.3.4 記号を使用する

ChatGPTなどの生成AIは,Markdown,LaTeXの書式を理解することができます.これらの記号を使用することで,生成AIがプロンプトを理解しやすくなります.特に,LaTeXの書式を使用することで,数式を含むプロンプトを生成AIに与えることができます.

LaTeXの書式を用いて,数式をプロンプトに含めることもできます.大学の数学の講義では,難解な数式を生成AIに説明させることができます.

下の例では,数学問題を解決するPythonプログラムを生成AIに作成させるプロンプトを示しています.

# 問題文

円の面積$A$は,次の式で与えられる:

$$A = \pi r^2$$

ここで:

- $A$は面積である.
- $r$は円の半径である.

## 指示

1. 半径が与えられたときに円の面積を計算するPythonプログラムを書いてください.
2. 半径が5単位の円でプログラムをテストしてください.

16.4 様々な生成AI

16.5 大学での活用

授業や課題で生成AIを利用するときは,次の点に注意してください.

  • 個人情報,成績情報,未公開データなどの機密情報を入力しない
  • 生成AIの回答は必ず複数の情報源で検証する
  • レポートや課題では,授業の方針に従って生成AIの利用有無を明記する
  • 最終的な内容の責任は提出者本人が持つ

生成AIの利用について(法政大学)

16.6 Google NotebookLM

Google NotebookLMは,PDFやWebサイトなどのソースをアップロードして,これらのソースをもとに質問に答えることができる生成AIです.

16.6.1 使用例

  • 論文や教科書を NotebookLM にアップロードし,不明な点を質問する.
  • Mind Map を作成し,教科書の内容を整理する.
  • スライド,レポート,Podcast などを生成する.
  • Webサイト,YouTube などをソースにして,情報を整理する.

16.7 GitHub Copilot

16.7.1 使用例

  • コードの生成
  • コードの説明
  • デバッグ
  • コメントの生成
  • リファクタリング

16.8 参考情報