OpenAI GPT-3を活用したレシピ紹介

※本記事は2022年6月13日に更新しました。
Axross Recipeを運営している松田です。
OpenAIが提供するGPT-3の概要とGPT-3を活用したレシピについて解説します。
## GPT-3
### GPTとは
**GPT（Generative Pretrained Transformer）** は、2015年12月に設立された非営利の人工知能研究組織**「OpenAI」**が開発している**「文章生成言語モデル」**です。イーロン・マスクなど有力な実業家が出資し、2019年にはMicrosoft社が10億ドル投資したことでも注目を集めました。

 **[OpenAI API](https://openai.com/blog/openai-api/)**
![download.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620853/e770398f-784e-2939-2058-5564783f5f4d.png)

### GPT-3の特長
2020年5月にOpenAIの論文[「Language Models are Few-Short Learners」](https://arxiv.org/abs/2005.14165)の中で、GPT-2の後継モデルとしてGPT-3が発表されました。

- **超巨大なTransfomer**ベースのモデルを使用する。
- ラベルなしの**大量のテキストデータ**をモデルに読み込ませて事前学習を行う。
- 事前学習済みモデルを使うと、様々なタスクに対して**Finetuningなしで対応**できる。

GPT-3は、約45TBの大規模なテキストデータのコーパス(自然言語の文章を構造化し大規模に集積したもの)を、約1,750億個のパラメータを使用して学習しています。GPT-3の前のバージョンであるGPT-2の事前学習で使用されるテキストデータは40GBで、パラメータ数が15億個であることから、それぞれテキストデータは1,100倍以上、パラメータは約117倍以上となります。GPT-3の言語モデル精度が高い理由として、これまでにないほどの大量のデータセット、パラメータで事前学習しているかがわかると思います。

![image-32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620853/c71600d6-9b60-5f67-117f-fb9483d763a7.png)
[GPT、GPT-2、GPT-3のパラメータ比較（百万単位）](https://data-analytics.fun/2020/12/07/openai-gpt3/)

GPT-3のような大規模言語モデルの登場により、標準的な会話の精度を図るスコア基準において、**AIが人間による言語の読み書き能力を超えるパフォーマンス**を発揮するなど精度が革命的に向上し、自然言語処理系AIのパラダイムシフトが起こっています。

### GPT-3ができること
#### **数行の文章から"自然な"文章を生成できる**
GPT-3は、高い精度である単語の次にくる単語の予測することができます。
例えば、あなたが3行ほどの簡単な文章を入力したとすると、GPT-3モデルがその文章に肉付けをして、あたかも人間が書いたように、**"自然な"文章を自動で生成**できます。抽象的な文章表現であっても、ある程度は対応ができます。

実際に、GPT-3が執筆したことを伏せたオンライン記事が、ニュースサイトでランキング1位を獲得するなど、文章生成にかかるスピードだけでなくそのクオリティにおいても、人間の能力を超えた文章生成能力を実現しています。

そのため、人間が書いた記事か、AIが書いた記事かの判断が出来なくなってしまい、フェイクニュースの生成に使われる等、悪用される懸念もあって、Open AIはそのコードを公開していなかったようです。

#### **プログラミングの生成ができる**

GPT-3は、自然言語の生成と同じ要領で、**ソースコードも自動生成**できます。
例えば、「レシピを購入　1000円収入　700円支出」という指示文を入力すると、それを実現するプログラムの生成を自動で行い、ウェブページのデザインにも反映することができます。

プログラミングの場合は、インターネット（Microsoftが買収したGitHub）上に多数のソースコードが公開されており、ある見解では、自然言語よりもプログラミングの方が、早期に自動生成を実現できるのではないかとも言われています。将来的には、自然言語を用いたプログラミングも可能になることが期待されています。

#### **デザインも生成できる**
**クリエイティブ性が必要な分野でも自動生成**が実現できます。
例えば、デザイナーがものづくりをするときに、人が興味を持つコンテンツの作成を自動で行ったり、ABテストを自動化したりできるため、プロダクト制作のプロセスを大幅に削減できます。

GPT-3のパラメータを使用したDALL-Eモデルでは、テキストを入力すると、それっぽいイラストや画像を大量に作り出すことができます。



#### **ほかにも様々な応用ができる**
その他にも、GPT-3の文章生成言語モデルを応用することで、文章生成だけでなく、**穴埋め問題、同時翻訳、読解、文法や文章の校正、自然要約、類似文章の探索、質問応答、対話など**様々なタスクを人間並みに、または人間以上の高い精度でこなすことができます。

例えば、普段の業務で考えると、企画・提案書や、稟議書、契約書、マニュアル、仕様書、デザインなど普段の業務で用いる各種ドキュメント作成はある程度自動化ができますし、そのドキュメントの翻訳や要約も行えます。学習用のデータセット生成にも役立ち、それをチャットボットに読み込ますことができれば、社内外からの問い合わせに対する回答や、対話形式での応答もできるようになるでしょう。

### GPT-3の利用
GPT-3のライセンスは、もともとは研究目的での利用がメインでしたが、Microsoft社が2020年にOpen AIから独自ライセンスを取得し、商用化に向けた動きが進んでいます。

参考：[マイクロソフトが OpenAI の協力の下、GPT-3 言語モデルの独占ライセンスを取得](https://news.microsoft.com/ja-jp/2020/10/15/201015-microsoft-teams-up-with-openai-to-exclusively-license-gpt-3-language-model/)


GPT-3はオープンソースとして提供されておらず、現在はOpen AIのAPIを介して利用できるようになっています。
**[OpenAI 申請フォーム](https://share.hsforms.com/1Lfc7WtPLRk2ppXhPjcYY-A4sk30)**

2021年11月に、Microsoft社が、Microsoft Azureのクラウド環境を介してGPT-3のAPIを利用できるようにすることを発表しました。今後は、GPT-3の実用性が高まり、企業のDX化やはたらき方改革の流れの中で、様々な場面でのビジネス活用が進みそうです。一方で、どこまでライセンスの費用を抑えてサービス提供できるかが気になるところです。

参考：[Microsoft、クラウドで言語AI「GPT-3」　企業利用弾み](https://www.nikkei.com/article/DGXZQOGN02E140S1A101C2000000/)

# GPT-3を活用したレシピ紹介
Axrossで学べる**GPT-3を活用したレシピ10選** をご紹介します。

## 文章生成
### [01_GPT-3でタイトルや要約から記事本文を自動生成するレシピ](https://axross-recipe.com/recipes/135)
投稿者：[べナオ](https://axross-recipe.com/users/868) さん

GPT-3の文章生成言語モデルのAPIを使い、タイトルや要約などの文章をデータとして与え、その記事の本文を自動生成させます。GPT-3による**日本語の記事コンテンツの自動生成と長文の自動要約**を行う手法を学ぶことができます。

GPT-3のような言語モデルによって、ブログやSNSの文章のコンテンツを自動で作成する未来もそう遠くはないでしょう。

https://axross-recipe.com/recipes/135

### [02_夏目漱石の「坊ちゃん」を学習させてマルコフ連鎖で新作を自動生成させるレシピ](https://axross-recipe.com/recipes/240)
投稿者：[べナオ](https://axross-recipe.com/users/868)さん

マルコフ連鎖で文章生成をするPythonライブラリであるMarkovifyを使って、夏目漱石の「坊ちゃん」をデータセットとして**「坊ちゃんの新作」文章を生成**するプログラムを解説します。

Web上のテキストデータをデータセットとして使うためのクレンジング方法と、マルコフ連鎖による言語モデルの作成とそれによる文章生成方法について学ぶことができます。

https://axross-recipe.com/recipes/240

### [03_GitHubのcopilotで自然言語から関数を生成するレシピ](https://axross-recipe.com/recipes/343)
投稿者：[べナオ](https://axross-recipe.com/users/868)さん

copilotの申請方法からVScodeへの導入方法、実際の**関数コードの自動生成**までを解説付きで学ぶことができます。

近年TransformerというPythonの自然言語処理系ライブラリが公開されたことで、それを基盤としたGPT-3をはじめとした文章生成言語モデルが多くの企業で公開されるようになりました。このライブラリはその膨大なモデルサイズから、チャットボットのような文脈に沿ったコミュニケーションが必要な機能においても既存のモデルにない性能を誇っていることで注目されています。実際にGPT-3のハイレベルな文章生成能力を体験してみましょう。

https://axross-recipe.com/recipes/343

## 画像生成
### [04_テキストから画像を生成するDALL-Eを実装するレシピ](https://axross-recipe.com/recipes/148)
投稿者：[jun40vn](https://axross-recipe.com/users/1205) さん

2021年1月にOpenAIが発表した、**テキストを入力するとそれっぽい画像やイラストを生成するモデル DALL-E**の実装と画像処理の方法について学ぶことができます。

DALL-Eの公開コードと凡庸画像分類モデル（CLIP）を組み合わせて、任意のテキストからその内容に合わせた画像を生成するモデルを作成できます。例えば、「アボカドの形をしたアームチェア」と入力すると、アボカドっぽいデザインの画像が自動生成されます。

https://axross-recipe.com/recipes/148

## WEBアプリケーション
### [05_GPT-3のNLPアプリケーション開発を体験してみるレシピ](https://axross-recipe.com/recipes/209)
投稿者：[sb-toukou](https://axross-recipe.com/users/1542)さん

GPT-3のOSSクローンを目指して開発されているGPT-Neoを用いて、実際に**NLPアプリケーションを作ってGPT-3実用のアイデアやGPT-3モデルの挙動の理解**を深めていきます。

GPT-Neo / Hugging-face bindingの使い方を学び、GPT-3を用いたNLPアプリケーション開発の雰囲気を掴むことができます。

https://axross-recipe.com/recipes/209

## チャットボット
### [06_MicrosoftのDialoGPTでチャットアプリを開発するレシピ](https://axross-recipe.com/recipes/223)
投稿者：[su2umaru](https://axross-recipe.com/users/304)さん

Microsoftが開発している**DialoGPTを活用してチャットアプリを開発**します。
DialoGPTはGPT-2を拡張したモデルであり、Radditのデータから成る大規模コードパスで学習しており、チャットアプリ開発を通して、DialoGPTの強力な応答性能を体験できます。

https://axross-recipe.com/recipes/223

### [07_GPT-3で自然対話するSlackボットを作るレシピ](https://axross-recipe.com/recipes/153)
投稿者：[べナオ](https://axross-recipe.com/users/868)さん

GPT-3を使って、**Slack上で自由に雑談・対話できるボットを作成**します。GPT-3を活用することで、文脈を踏まえた自然な返答文を自動生成することができ、暇なときの雑談の相手になってくれます。

https://axross-recipe.com/recipes/153

### [08_Microsoftから独立した企業が公開した日本語版GPT-2でチャットボットを作るレシピ](https://axross-recipe.com/recipes/287)
投稿者：[べナオ](https://axross-recipe.com/users/868)さん

マイクロソフトのAIチームが独立してできたrinna株式会社が、2021年8月25日に日本語版GPT-2の事前学習モデルをオープンソース化しました。

日本語で構成されたデータセットで最適化されたりんなGPT-2の学習済みモデルを用いて、Pythonでチャットボットや長文生成を試し、過去に書いた**GPT-3のレシピとりんな日本語版GPT-2の言語モデルの精度・結果を比較**していきます。

https://axross-recipe.com/recipes/287

### [09_【GPT-3発展編】音声だけで会話するチャットボットを作るレシピ](https://axross-recipe.com/recipes/176)
投稿者：[べナオ](https://axross-recipe.com/users/868)さん

GPT-3の文章生成言語モデルの発展編として、**文章入力を介さず音声のみで会話するボットの作成**を解説します。

Pythonには音源を文字に変換したり、その逆に文字を音源に変換したりするライブラリが用意ており、GPT-3と組み合わせることで、Pepperのように口頭で会話できるボットを作成できます。これまでのレシピで使ってきた技術が多く出てくるので、総復習としてもおすすめです。

https://axross-recipe.com/recipes/176


## 択一問題
### [10_日本語の択一問題を解くレシピ](https://axross-recipe.com/recipes/284)
投稿者：[su2umaru](https://axross-recipe.com/users/304)さん

Microsoft社のAIチームから独立したrinna株式会社が、日本語GPT-2/BERTの事前学習モデルを開発しオープンソース化を発表しました。rinna社が公開したHuggingFaceページでは、**一般的な日本語テキストの特徴を有した高度な日本語文章の自動生成**を実行します。

rinna社が提供するGPT-2の言語モデル機能を用いて、択一問題を解くタスクを行い、日本語言語モデルの発展を体感しながら学ぶことができます。

https://axross-recipe.com/recipes/284


# 最後に

**[Axross Resipe](https://axross-recipe.com/recipes)** は、エンジニアの"教育"と"実務"のギャップに着目し、「学んだが活用できない人を減らしたい」という想いで、ソフトバンク社内起業制度にて立ち上げたサービスです。

現役エンジニアによる実践ノウハウが"レシピ"として教材化されており、実際の業務に近いテーマで、動くものを作りながら学ぶことができます。

Axross：https://axross-recipe.com
公式Twitter：https://twitter.com/AxrossRecipe_SB
![アクロス広告最新版.jfif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620853/3b69faac-71e6-42fe-9ed8-7fd148eeb8cf.jpeg)


プログラミングは「**習うより慣れろ、繰り返し演習すること**」が重要です。

Axross Recipeのレシピを通して、プログラムの意味を考えながら写経（コードを実際に書き写す行為）し、実際に動くものをつくりながら学ぶことで、新たな知識の習得やスキルアップの一助になれれば幸いです。