はじめに
2023年7月に出たばかりです!最近話題のChatGPTを使ってチャットAIを開発するための知識が得られる本です。
Amazonの紹介
ChatGPTをはじめとする生成AIをカスタマイズし独自活用するための1冊
本書は、「OpenAI API」を使うことでカスタマイズしたAIを独自のシステムに組み込むための方法をステップ・バイ・ステップで解説した1冊です。加えて「ChatGPT」「OpenAI Playground」「DALL-E」「GitHub Copilot」の詳しい利用方法も紹介しています。
紹介しているサンプルのほとんどは、Googleのクラウドサービス「Google Colaboratory」で実行でき、OpenAI APIの利用も基本的に無償の試用枠内で、動作確認を行うことができます。
また、大規模言語モデル(LLM)では学習されていないデータを参照して、質問応答(チャット)を作成するためのライブラリ「LlamaIndex」、複雑なタスクを実行するアプリケーションを作成するためのライブラリ「LangChain」についても詳細を解説しています。
さらに、現時点では限定公開中の「ChatGPTプラグイン」についても取り上げました。
本書を活用することで、いま大きな話題となっている強力なAIの機能を自社のサービスやアプリケーションの一部として提供することが可能になります。
amazon.co.jp
出版社のページからはPDF版も購入できるようです。

全体の感想
ChatGPT、なんかいろいろ機能が追加されているけど、どんどん更新されるのでついていけていない…LangChainを使ってなにかチャットAIを作りたいけれど、どんな機能が使えるのか全体像がわからない…という人におすすめの本です。
OpenAIのページを見れば、具体的にどう使ったらいいのか、どうコードを書いたらいいのかということは載っていますが、どんなサービスがありどんな機能があるのかという全体像を把握したい人にとっては書籍の方がいいと思うんですよね。
気になる利用料金についても(従量課金のサービスが多いです)、きちんと書かれていて、月あたりの課金限度額の設定方法についても触れられています。
具体的にAIチャットサービスの作例が載っているわけではなく、手順の説明にとどまっているので、作り方をコピーしたい人には向いていませんが、「こんな機能もあるのか」と把握し、自分の作りたいものを形にするには役立つと思います。
版系がB5変形版の書籍をKindleでは固定レイアウトで出版しているので、iPadminiではかなり文字が小さく読みづらかったです。これはiPadでも小さく感じそうです。カラーなので、実際の画面の画像などは見やすくてよかったです。その分、約4000円と、やや手を出しにくい金額になっています。
本の執筆時は2023年5月のようなので、ChatGPT pluginのところなどは少し情報が古いですが、今のこのタイミングでは類似の書籍は少ないのでありがたいですね。
各章の感想
1章 GPT-4/ChatGPT/LangChainの概要
この章の項目は次のとおりです。
1-1 GPT-4とChatGPTとLangChain
1-2 人工知能と機械学習と深層学習
1-3 自然言語処理の深層学習モデル
ChatGPT, GPT-4/GPT-3.5,OpenAI API, Llamaindex, LangChainについて概要を説明している章です。自然言語処理の有名なモデルについての説明もあり、GPT-4に至るまでの発展の歴史を知ることができます。このへんはG検定を受けていると懐かしく感じますね。
2章 ChatGPT/OpenAI Playground/DALL-Eの利用法
この章の項目は次のとおりです。
2-1 ChatGPTの使い方
2-2 OpenAI Playgroundの使い方
2-3 DALL-Eの使い方
2-4 GitHub Copilotの使い方
OpenAIが提供している4つのサービス、ChatGPT, OpenAI Playground, DALL-E, GitHub Copilotについての説明です。
ChatGPTはすでに無料版を使っている人も多いと思いますが、それ以外についてはあまり知らない人も多いのではないでしょうか。
OpenAI Playgroundは、OpenAI APIの機能をWeb UIで試すことができるサービスです。OpenAI APIの利用料金がかかります。
DALL-Eは、テキストから画像生成を行うサービスです。一時期話題になったMidjourneyやStable Diffusionの先駆けですね。こちらは従量課金制の有料プランになっていて、ちょっと使いづらいです。本書ではDALL-Eのアルゴリズムを使ったMicrosoftのサービスImage Creatorをおすすめしていました。

「背中にハート柄がある猫」が表現されていませんね。もうすこしプロンプトの練度を上げないといけなさそうです。
GitHub Copilotは、GitHubと連携してプログラムコードを生成したり、コードの自動補完をしてくれるサービスです。一部界隈では「もうエンジニアいらないんじゃないか?」と話題になっていましたね。こちらは月額課金制のサービスです。


こちら「Individual」プランと「Business」プランがありますが、Individualプランの方は無料期間があります。どのくらいの精度でコード書いてくれるのか試してみたいので、機会があればお試ししてblogを書きたいと思います。
3章 Python開発環境の準備
この章の項目は次のとおりです。
3-1 Pythonの概要
3-2 Google Colabの概要
3-3 Pythonの文法
こちらについては必要な方は多くないでしょう。ごく基本的なところについて触れられています。
わたしはJupyter NotebookやVSCodeを使って開発することが多く、Google Colabをあまり使ったことがなかったので、独自機能についてまとめられており参考になりました。
4章 OpenAI API
この章の項目は次のとおりです。
4-1 テキスト生成
4-2 画像生成
4-3 埋め込み
4-4 ファインチューニング
4-5 モデレーション
4-6 音声のテキスト変換
4-7 トークナイザー
OpenAI APIは、自分で開発したアプリケーションにGPT-4, GPT-3.5を組み込むために使用されます。OpenAI APIを利用すると、テキスト生成、画像生成だけでなく、自前のデータを利用したファインチューニングが可能になります。
OpenAI APIのライブラリがサポートされている言語はPythonとNode.jsの二つですが、コミュニティによってサポートされている言語もあります。
OpenAI APIは従量課金制です。OpenAIのアカウントがあればChatGPT plusに加入していなくても使用することができます。
本書では、OpenAI APIを使って以下のようなタスクを実行する手順とコードが紹介されています。
- テキスト生成
- 文章生成
- 質疑応答
- 要約
- 翻訳
- プログラム生成
- チャット
- 挿入(テキストとテキストの間のテキストを生成)
- 編集
- 画像生成
- 画像生成
- 画像とテキストを使った画像編集
- 画像からのバリエーション生成
- 埋め込み生成(テキストをコンピュータが処理しやすい形式で表現する)
- 近傍探索(入力テキストと意味の近いものを対象テキストから探す)
- ファインチューニング
- モデレーション(入出力が、OpenAIのコンテンツポリシーに合致しているか判定する)
- 音声のテキスト変換
- 音声の文字起こし
- 音声を英語に翻訳して文字起こし
- 長いオーディオファイルの翻訳
公式ドキュメント
からは探しにくいこともありますし、実用的なタスクについて説明されていてわかりやすいなと思いました。
また、2023年6月にOpenAI APIにFunction Callingという機能が追加されました。
公式の発表を翻訳したものの一部を載せると、
関数が呼び出される必要があるタイミングを検出し(ユーザーの入力に依存)、関数のシグネチャに従ったJSONを返すように微調整されています。関数の呼び出しにより、開発者はモデルからより確実に構造化されたデータを取得することができます。
https://openai.com/blog/function-calling-and-other-api-updates
ということですがあまりよくわからない…
こちら↓のサイトにわかりやすく書かれていました。

ここが誤解してしまいやすい、かつポイントになる部分だと思いますが、ChatGPTは、関数の一覧とユーザのリクエストから、どのような関数を呼ぶかを判断するだけで、ChatGPTが関数呼び出し処理を実際に実行するわけではないという点に注意する必要があります。
次にChatGPTが判断した関数を実行し、その結果を入手します。ChatGPTからの関数実行指示はJSON形式で受け取ることになるため、その値を元に実際の関数を呼び出すプログラムを書く必要があります。
Function Callingを使用すると関数呼び出しが簡単にできるみたいですね。
本書は2023年5月時点の情報しか載っていませんので、Function callingに関する記載はありません。
5章 LlamaIndex
この章の項目は次のとおりです。
5-1 LlamaIndexのはじめ方
5-2 LlamaIndexの機能詳細
5-3 LlamaHub
5-4 ベクトルデータベース
LlamaIndexは初めて聞きました。
LLMで学習されていない自分のデータを使って、質問応答を作成するためのライブラリです。PDFやワード文書などの情報もチャットに取り込むことができます。これは、社内文書のアクセスをよくするのに役立ちそうですね。
ドキュメントはこちら。
後述するLangChainよりも簡単に使え、決まった文章を安定的に参照するのに向いています。
LlamaIndexライブラリをインストールし、Pythonでドキュメントの読み込みを行い、クエリエンジンを作成します。すると与えたドキュメントから質問応答が可能になります。
本書では使い方がコードと共に記載してあるので、簡単に始められそうです。
6章 LangChain
この章の項目は次のとおりです。
6-1 LangChainのはじめ方
6-2 LLM
6-3 プロンプトテンプレート
6-4 チェーン
6-5 エージェント
6-6 ツール
6-7 メモリ
LangChainを使うと、LLMが学習したものから生成するのではなく、検索やプログラム実行などをさせることができるようになります。
AIチャットアプリケーションを作成するにあたり必要な機能モジュールが用意されており、それらをつなぐ(Chain)ことでサービスを作ることができます。
主なモジュールは次のとおりです。
- LLM:さまざまな大規模言語モデル (LLM)を扱うための共通インタフェース
- プロンプトテンプレート:LLMにリクエストを送る際の命令文「プロンプト」のテンプレート
- チェーン: LLMやプロンプトの入出力をつなげる
- エージェント:LLMやプロンプトの入出力をつなげる。どの機能をどういう順番で実行するかもLLMを使って決める
- ツール:エージェントが実行する機能
- メモリ:チェーンやエージェントの記憶を保持
本書ではこれらのモジュールについて、使い方をコードと共に説明しています。この章が一番分量も多く、最も丁寧に書かれていました。
公式ドキュメントを読めばいいのかもしれませんが、日本語で手順を説明してある本は貴重なのではないでしょうか。
ただ、これは全体の感想にも書きましたが、具体的なAIチャットアプリの作例が載っていないので、どんなふうに使うかのイメージは持ちにくかったなと思います。
その点はおそらくこれから解説する書籍やWebサイトがどんどん出てくるかなと思います。
7章 ChatGPTプラグイン
この章の項目は次のとおりです。
7-1 ChatGPTプラグインの使い方
7-3 ChatGPTプラグインの作り方
7-4 ChatGPT Retrieval Plugin
本書執筆時点(2023年5月)は課金プランChatGPT plus加入者の中で順番待ちリストに登録した順にβ版が提供されていましたが、2023年7月現在ではChatGPT plus加入者は全員利用できるようになっています。
サードパーティのさまざまなプラグインがあり、ぐっとChatGPTが便利になりそうです。
ChatGPT plusに課金して、ChatGPT pluginを使ってみた
せっかくの機会なので、ChatGPT plusに加入して、プラグインを使ってみました。
ChatGPT plusに加入したら、プラグインを使う設定にする必要があります。
Chat画面左バー左下の…マークを押します。

「Beta features」の「Plugins」をオンにします。

ChatGPT plusに加入すると、New Chat時にGPT-4が選べるようになります。
GPT-4にカーソルを持っていくと、「Plugins」が選べ、ここから「Plugin store」に飛べます。

インストールすると、プラグインが使えるようになります。
ただし、同時に3つまでしか適用できないのと、選択していても必ず使われるわけではないことに注意してください。

ためしに「Link Reader」を使って、PDFのリンクを読み込ませて、要約してもらいました。

テキスト部分をコピペする必要がなくなってとても便利ですね!
ほかにもたくさんの便利なプラグインがありますので、探してみてください。
おわりに
OpenAIのサービスについて全体像を理解することができ、公式ドキュメントの補助として実装手順を確認することもできる良い本でした。
類似の(自費出版ではない)書籍はまだあまりないので、その点でも貴重だと思います。
ただ、どんどん新しい情報が出てきており、本書の内容は古くなっていくことが予想されるので、最新の情報をキャッチアップする必要はありますね。
本書を読んで、これはいい機会だと思って、ついにChatGPT plusに加入しました。プラグインをいろいろ使いこなせるようになりたいです。会社の先輩から「Noteable」というデータ分析プラグインを教えていただいたので、使ってみようと思っています。使いこなせるようになったらblogを書きますね。
また、GitHub Copilotにも興味があるので、無料期間でおためししてみようかな。
AI生成サービスはどんどん出てきますが、月額課金制のものも多く、家計への負担は大きいですね…(ただでさえサブスクリプションが多いのに)
でも、できるデータサイエンティストになるためには必要な経費だと思っています。
いろいろ試してみるの楽しみです!
コメント