ChatGPT使い方総まとめ

こんにちは！sakasegawaです！ ( https://twitter.com/gyakuse )
今日は今流行のChatGPTについて紹介します！

## ChatGPTとは

OpenAIが開発するGPT-3(※)というめちゃくちゃすごい言語モデルをベースとしたチャットアプリです。
色んな質問にすぐ答えてくれます。
この記事ではさまざまな使い方を紹介します。

[https://chat.openai.com/](https://chat.openai.com/)

ちなみにGPT-3関連では、noteの以下記事も便利なのでぜひ読んでみてください
[AIがコミットメッセージ自動生成！神ツール『auto-commit』『commit-autosuggestions』の紹介](https://note.com/sakasegawa/n/n9f63e82ef391)

※正確にはGPT-3.5シリーズと呼ばれています

[ChatGPTの仕組みを考えながらプロンプトを作る手法はこちらに別途まとめています](https://qiita.com/sakasegawa/items/e13e29c96fc711cf84bb)

## 文章

### 質問-応答
`〜について教えて`
![1111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958603/66837ecb-918d-8e54-07e1-82726187c44b.png)

### Wikipedia風記事作成
`〜について説明するWikipedia風の記事を出力して`
![2222.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958603/c9a3dfee-ef4d-991c-6525-608d62c43d7b.png)

### タスクリスト作成
`〜をタスク化して`
![2223.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958603/04f33957-a45e-fa57-eb33-d9edc93db2a3.png)

### スケジュール作成
`xx〜yyの間にzzします。この間のスケジュールを30分刻みで提示して`
![333.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958603/1ac972c3-92c5-ced2-3cee-4d9a4525e428.png)

### 要約
`以下を要約して`
![334.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958603/f5f283b4-3e93-2c6e-691a-67a9bd0abf71.png)

### リストからの文章化
`以下を文章化して`
![335.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958603/c7ecf8d1-59d1-2329-bf5f-5531aaac1c18.png)

### 文章からのタスク化
`以下をタスク化して`
![336.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958603/561fa9b6-8cb8-8ea3-d496-06765b3d8e91.png)

## コード

### コード生成
`xxするyyの関数を出力して`
![1919.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958603/c6341ac5-efac-ada7-080a-d313f96ec19a.png)

### コードのドキュメント生成
`以下の関数のドキュメントをxx形式で出力して`
![docs.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958603/82c007c0-9f8f-55f0-0596-ce5b14992381.png)

### リファクタリング

[こちら](https://www.seplus.jp/dokushuzemi/blog/2018/07/practice_refactoring.html)からコードを引用しました。

`以下をリファクタリングして`
![ChatGPT.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958603/f3eecb18-9d6c-a8cc-9cbf-9b6f0cbf94bc.png)
![ChatGPT.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958603/20bbee1b-d7e2-34e3-7037-70f017549a89.png)

### 単体テスト
`以下の単体テストを書いて`
![ChatGPT.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958603/fbfc51db-d34f-fe11-22d7-2860331df852.png)
![ChatGPT.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958603/76551f93-2f14-0fd5-c389-a78ff31b4de9.png)

※2番目のテストのexpectedは間違い. 900*0.98のため、882が正しい. AIのテストをテストするテストコードが必要

### DB設計
`〜に必要なtable一覧を出力して`
![ChatGPT.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958603/0d358a5c-e073-a4ac-ca50-5b8f2e59a309.png)


## 物語

### 語調変化

`「〜ですの」を語尾につけてxxについて説明して`
![Fi4cg6GUoAAheqw.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958603/b1d12034-db7c-896e-87b5-8471f9387854.png)

このほか、「◯◯口調で」「◯◯風に」なども反映される。

### キャラクターっぽい言い回し

```
以下はxxのセリフです

{セリフ例}

xxっぽく、敬語を使わず可愛く、yyについて説明してください。
```

![Fi4coM3VQAAWFqi.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958603/41945dee-6507-1b07-e8a1-ed09619aeb01.png)

## おまけ

### GPT-3の特徴

- できること
    - 各種ドキュメントを自動生成する
    - 質問応答に利用する
- 特徴
    - 超すごいマルコフ連鎖
    - Transformerというアーキテクチャを使っている (むかし話題になったBERTなどもそう)
    - 前の文章にある単語との関係性をパターン学習している

### 大規模言語モデル

- Flan-U-PaLM (Google), 540B(5400億)クラス
    - PaLMが540B学習, Flan-PaLMがそれに1.8k(1800)タスク学習での調整
- Gopher (Google / DeepMind), 280B(2800億)クラス
- Bloomz (bigscience), 176B(1760億)クラス
    - [https://huggingface.co/bigscience/bloomz](https://huggingface.co/bigscience/bloomz)
- GPT-3 (OpenAI), 175B(1750億)クラス
    - 提供方法: 有償API提供のみ
    - ライセンス: API使用規定に従う
- OPT-175B (Meta), 175B(1750億)クラス
    - 提供方法: github
    - ライセンス: 非営利
- Galactica: 120B(1200億)クラス
    - [https://arxiv.org/abs/2211.09085](https://arxiv.org/abs/2211.09085)
    - [https://galactica.org/](https://galactica.org/)
    - 科学系
- HyperCLOVA (LINE), 82B(820億)クラス
- GPT-NeoX (EleutherAI): GPT-NeoX-20B, 20B(200億)クラス
- GPT-J (EleutherAI): GPT-J-6B, 6B(60億)クラス
    - 提供方法: huggingface
    - ライセンス: apache-2.0
- GPT-J-japanese-6.8B (Sta)
    - [https://huggingface.co/naclbit/gpt-j-japanese-6.8b](https://huggingface.co/naclbit/gpt-j-japanese-6.8b?text=%E5%85%83%E6%B0%97%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F)
    - (private) やみおとめ, 20B(200億)クラス
- japanese-gpt2-medium(Rinna), 1.3B(13億)クラス


## References

- [Chain of Thought Prompting Elicits Reasoning in Large Language Models](https://arxiv.org/abs/2201.11903)
    - GPT-3の対話タスクなどでの性能を上げる Chain of Thought(CoT) という手法の論文
- [作って理解する Transformer / Attention](https://qiita.com/halhorn/items/c91497522be27bde17ce)
    - 最近のDeepLearningの超重要な成果であるTransformerの気持ちがわかる良い記事