OpenAI APIでGPT-3にFine-tuningでアニメの放送開始日時を学習してもらうPython実装の記録

[Supership](https://supership.jp/)の名畑です。[Dr.STONE](https://dr-stone.jp/)は原作を読破していてアニメ1期、2期、龍水も見たし、つまりは大好きな作品ってことなんですが、今放映中のアニメ3期もめちゃくちゃいいですね。グッとくる内容。現在の当たり前が未来において当たり前とは限らない。

## はじめに

[前回の記事「OpenAIのChat API(Chat completions)を用いての会話をPythonで実装してみた記録」](https://qiita.com/nabata/items/0919576a926d5bb9814d)では[OpenAI](https://openai.com/)が提供している[Chat API](https://platform.openai.com/docs/api-reference/chat)を用いて会話の実装をPythonで行いました。

今回はFine-tuningを行なってみます。

アカウントの作成やAPI Keyのセットなどについては前回の記事をご参照ください。

:::note warn
この記事でやろうとしていることを実現したいだけなら「**GPT-3.5のモデルに対して元情報を含めた上で質問**」をした方がより精度が高い回答が得られるし安価です。
本記事は「**Fine-tuningを試す**」という目的のためのものであることをご認識ください。
:::

## Fine-tuning

新たな学習データを用意して、既存のモデルの調整を行うというものです。

公式に丁寧な説明があります。

- [API reference](https://platform.openai.com/docs/api-reference/fine-tunes)
- [Guides](https://platform.openai.com/docs/guides/fine-tuning)

「**学習データの用意**」「**学習データのアップロード**」「**学習**」「**生成されたモデルの使用**」これらの段階を踏んでいきます。

また、Guidesに下記の記載があるので、Chat APIではなく[Completions API](https://platform.openai.com/docs/api-reference/completions)を用います。

> You can start making requests by passing the model name as the model parameter of a completion request

## Fine-tuningの料金

[Pricngのページ](https://openai.com/pricing)に記載されています。学習と使用のそれぞれで料金がかかるのでご注意ください。

現時点での料金は下記です。modelによってコストの桁が変わるのでご注意を。

| Model	 | Training | Usage |
| --- | --- | --- |
| Ada | $0.0004 / 1K tokens | $0.0016 / 1K tokens |
| Babbage | $0.0006 / 1K tokens | $0.0024 / 1K tokens |
| Curie | $0.0030 / 1K tokens | $0.0120 / 1K tokens |
| Davinci | $0.0300 / 1K tokens | $0.1200 / 1K tokens |


## モデルになにを学習してもらうか？

Fine-tuningを実施した場合「**Fine-tuningの効果があったか**」が判定できる必要があります。

何を学習してもらえば効果が実感できるのか？

[Models](https://platform.openai.com/docs/models/models)を見るとCompetions APIで使えるmodelには下記があります。

- text-davinci-003
- text-davinci-002
- text-curie-001
- text-babbage-001
- text-ada-001

どれも学習データは2021年9月以前のようです。

ということは**2021年10月以降に発生した情報**を学習させれば、どのモデルにおいても効果が実感できるのではと考えました。

## ぼっち・ざ・ろっく!

[ぼっち・ざ・ろっく!](https://bocchi.rocks/)という漫画並びにその漫画を原作としたTVアニメがあります。人気なのでご存知の方も多いでしょう。超余談ですが、私、この作品を見ると[BECK](https://www.amazon.co.jp/dp/4063342786)を思い出すんですよね。バンドものという共通点だけではなく、ライブシーンでそれまでの悶々を吹っ飛ばす展開とか。

ぼっち・ざ・ろっく!のTVアニメは2022年10月8日に放送開始でした。ですので、放送開始日についての詳しい情報は学習データにはないはず。

ということで今回は**ぼっち・ざ・ろっく!の放送開始日**についてFine-Tuningしてもらいます。

## 既存のモデルで聞いてみる

そもそもとして、既存のモデルに**ぼっち・ざ・ろっく!の放送開始日**について質問したならどんな回答をするのか、把握しておこうと思います。

今回は既存のモデルとして**text-curie-001**を選んでみました。
Fine-tunes APIは下記の通り**GPT-3**ベースである**davinci**、**curie**、**ada**、**babbage**の4つにのみ今は対応しています。

> These models were superceded by the more powerful GPT-3.5 generation models. However, the original GPT-3 base models (davinci, curie, ada, and babbage) are current the only models that are available to fine-tune.

**curie**がどれだけ日本語対応されているか私がわからないため、今回は英語で「**Please tell me the broadcast start date of TV ANIME BOCCHI THE ROCK!**」というプロンプトを投げてみました。日本語訳したなら「**TVアニメ ぼっち・ざ・ろっく！の配信開始日を教えてください**」ですね。

```Python
import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
completion = openai.Completion.create(
      model="text-curie-001",
      prompt="Please tell me the broadcast start date of TV ANIME BOCCHI THE ROCK!",
      max_tokens=300,
)
print(completion["choices"][0]["text"])
```

何度か試してみました。
下記がレスポンスを箇条書きにしたものです。2022年はないですね。

- TV Anime Bocochi The Rock aired on October 1st, 2017.
- TV Anime Bocchi the Rock broadcast begins from July 19, 2019.
- The broadcast start date of TV ANIME BOCCHI THE ROCK is July 5th, 2017.
- TV Anime BOCCHI THE ROCK started airing on October 3, 2017.
- TV anime Bocchi the Rock will premiere on October 3, 2017.

ちなみに漫画の連載開始は2018年なので、それと比較しても正しいものはないです。「知らない情報だからそれらしい結果を返す」という、予想通りの結果ですね。

## 学習データの用意

今回は英語で学習用データを用意してみることにしました。

下記が公式に展開されている学習データのフォーマット例です。**jsonl形式**です。改行区切りされたjsonです。

```Python
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
...
```

つまり**prompt**と**completion**を対にしたサンプルを用意する必要があります。

学習データについては[Data formatting](https://platform.openai.com/docs/guides/fine-tuning/data-formatting)を見ると下記のように書かれています。

- Each prompt should end with a fixed separator to inform the model when the prompt ends and the completion begins. A simple separator which generally works well is \n\n###\n\n. The separator should not appear elsewhere in any prompt.
- Each completion should start with a whitespace due to our tokenization, which tokenizes most words with a preceding whitespace.
- Each completion should end with a fixed stop sequence to inform the model when the completion ends. A stop sequence could be \n, ###, or any other token that does not appear in any completion.
- For inference, you should format your prompts in the same way as you did when creating the training dataset, including the same separator. Also specify the same stop sequence to properly truncate the completion.

つまりは、promptの最後には(prompt内で他に使われていない)セパレーターをつけること、completionはスペースで始めること、completionの最後には(completion内で他に使われていない)終わりを示す記号をつけること。

また、どれほどの量のサンプルを用意する必要があるかは例毎に[Specific Guidelines](https://platform.openai.com/docs/guides/fine-tuning/specific-guidelines)にまとまっています。

品質を得るには最低でも数百はないと辛そうですね。

ひとまず今回は**学習されたということがわかればいい**という割り切りで100サンプル用意することを目標としました。

## どうやって学習データを用意した？

100サンプルを人力で用意するのはややしんどいため、下記の手順を踏むことにしました。

- まず日本語で文章を用意する(人力)
- それを英訳する(Open AI)
- 英訳された文章を元にして質問文と回答文を生成してもらう(Open AI)

まず、用意した原文は下記です。
タイトルの揺らぎをなくすために1行目は用意しました。それ以外は[公式サイトのONAIRのページ](https://bocchi.rocks/onair/)の情報です。年(2022)は付け加えました。

```
TVアニメ「ぼっち・ざ・ろっく！(BOCCHI THE ROCK!)」ON AIR SCHEDULE

ON TV
※放送日時は変更になる場合がございます。

放送局	放送開始日	放送時間
TOKYO MX	2022/10/8（土）	24:00〜
BS11	2022/10/8（土）	24:00〜
群馬テレビ	2022/10/8（土）	24:00〜
とちぎテレビ	2022/10/8（土）	24:00〜
MBS	2022/10/8（土）	27:08〜
RKB毎日放送	2022/10/13（木）	27:00〜
MRT宮崎放送	2022/10/8（土）	25:28〜
AT-X	2022/10/10（月）	22:30～


STREAMING
※配信日時は変更になる場合がございます。

プラットフォーム	配信開始日	配信時間
ABEMA	2022/10/8（土）	毎週土曜日24:00～
※地上波同時配信
Netflix	2022/10/11（火）	毎週火曜日12:00～
dアニメストア	2022/10/11（火）	毎週火曜日12:00～
dアニメストア
for Prime Video	2022/10/11（火）	毎週火曜日12:00～
dアニメストア
ニコニコ支店	2022/10/11（火）	毎週火曜日12:00～
U-NEXT	2022/10/11（火）	毎週火曜日12:00～
アニメ放題	2022/10/11（火）	毎週火曜日12:00～
Amazon Prime Video	2022/10/11（火）	毎週火曜日12:00～
バンダイチャンネル	2022/10/11（火）	毎週火曜日12:00～
Hulu	2022/10/11（火）	毎週火曜日12:00～
ひかりTV	2022/10/11（火）	毎週火曜日12:00～
FOD	2022/10/11（火）	毎週火曜日12:00～
GYAO!	2022/10/11（火）	毎週火曜日12:00～
ニコニコチャンネル	2022/10/11（火）	毎週火曜日12:00～
ニコニコ生放送	2022/10/11（火）	毎週火曜日22:30〜
WOWOWオンデマンド	2022/10/11（火）	毎週火曜日12:00～
TELASA	2022/10/11（火）	毎週火曜日24:00～
JCOM:オンデマンド	2022/10/11（火）	毎週火曜日24:00～
みるプラス-見放題パック	2022/10/11（火）	毎週火曜日24:00～
auスマートパスプレミアム	2022/10/11（火）	毎週火曜日24:00～
Video Market	2022/10/11（火）	毎週火曜日12:00～
music.jp	2022/10/11（火）	毎週火曜日12:00～
GYAO!ストア	2022/	10/11（火）	毎週火曜日12:00～
```

これをOpenAIのChat APIで翻訳しました。翻訳をOpenAIでやる必然性はなかったのですが、せっかくなので。

翻訳には前回の記事で使った[Chat API](https://platform.openai.com/docs/api-reference/chat)を用いました。
[Examples](https://platform.openai.com/examples)のページの[English to other languages](https://platform.openai.com/examples/default-translate)というサンプルを元にした下記コードです。

```Python
# 変数origin_messageに原文を格納済み

import os
import openai

openai.api_key = os.getenv("OPENAI_API_KEY")
completion = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "system", "content": "You are a helpful assistant that translates Japanese to English."},
    {"role": "user", "content": "Translate the following Japanese text to English:" + origin_message}
  ]
)
eng_message = completion["choices"][0]["message"]["content"]
```

そして作られた英文は以下のようなもの。

```
TV Anime "Bocchi the Rock!" ON AIR SCHEDULE

ON TV
※Broadcast dates and times are subject to change.

Broadcast Station	Broadcast Start Date	Broadcast Time
TOKYO MX	October 8, 2022 (Sat)	24:00～
BS11	October 8, 2022 (Sat)	24:00～
Gunma TV	October 8, 2022 (Sat)	24:00～
Tochigi TV	October 8, 2022 (Sat)	24:00～
<以下略>
```

この英文をさらにChat APIに投げて質問と回答を生成してもらいました。

**質問と回答を生成したコード**は下記です。先ほどの翻訳のコードに続けて書いています。質問と回答を20組生成させています。これを5回やれば100個ですね。指示が悪いのかトークン数の問題か、あるいはそういうものなのか、20組返してくれないこともそこそこにありましたが。

```Python
messages = [{"role": "user", "content": """Write 20 sets of a question and an answer using the text below

            Desired format:
            Questions
            * <question 1>
            * <question 2>
            ...
            * <question 19>
            * <question 20>
            
            Answers
            * <answer 1>
            * <answer 2>
            ...
            * <answer 19>
            * <answer 20>
            
            Design rules:
            ・Don't use leading numbers
            
            Text: """ + eng_message}
            ]


completion = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=messages
)

# 応答の取得 / 表示
res_message = completion["choices"][0]["message"]["content"]
print(res_message)
```

フォーマットは私が扱いやすい形にしています。
ちなみになかなか思った通りの結果は出づらかったりしました。プロンプト難しいですね。
補足ですが、プロンプトの書き方は[Best practices for prompt engineering with OpenAI API](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api)がかなり参考になりました。

コードを実行した結果例は下記。

```
Questions
* When does the TV anime "Bocchi the Rock!" start broadcasting?
* What is the broadcast time of "Bocchi the Rock!" on TOKYO MX?
* Is the broadcasting schedule for "Bocchi the Rock!" subject to change?
<省略>

Answers
* The TV anime "Bocchi the Rock!" starts broadcasting on October 8, 2022 (Sat).
* The broadcast time of "Bocchi the Rock!" on TOKYO MX is 24:00～.
* Yes, the broadcast schedule for "Bocchi the Rock!" is subject to change.
<省略>
```

本来は質問と回答の内容にこだわるべきなのでしょうが、今回は学習の反映が目的なのでこのまま進めます。内容の正否も確認していません。

得られた結果を編集してjsonlファイルを作成します。

質問をpromptとして、回答をcompletionとして扱いました。最終的に下記のようなpromptとcompletionの組を合計100行用意しました。
また、ガイドに基づき**promptの末尾に\n\n###\n\nをつけること**と、**completionの先頭にスペースを入れること**と、**completionの末尾に###をつけること**もしました。


```Python
{"prompt": "Is the broadcasting schedule for \"Bocchi the Rock!\" subject to change?\n\n###\n\n", "completion": " Yes, the broadcast schedule for \"Bocchi the Rock!\" is subject to change.###"}
{"prompt": "When will MBS start broadcasting \"Bocchi the Rock!\"?\n\n###\n\n", "completion": " MBS will start broadcasting \"Bocchi the Rock!\" on October 8, 2022 (Sat) at 27:08～.###"}
{"prompt": "What is the broadcast time of \"Bocchi the Rock!\" on MRT Miyazaki Broadcasting?\n\n###\n\n", "completion": " The broadcast time of \"Bocchi the Rock!\" on MRT Miyazaki Broadcasting is 25:28～.###"}
<以下略>
```

## 学習用データのアップロード

[FilesのAPi refernce](https://platform.openai.com/docs/api-reference/files)にやり方が載っています。

私の場合は学習用データを**origin_data.jsonl**というファイル名で保存して、下記のコードを実行しました。

```Python
import os
import openai

openai.api_key = os.getenv("OPENAI_API_KEY")
response = openai.File.create(
    file=open("origin_data.jsonl", "rb"),
    purpose='fine-tune'
)
print(response)
```

**purpose**に**fine-tune**を指定することを忘れないようにご注意下さい。

下記のようなレスポンスが返ってきます。このうちの**id**をFine-tuningで使います。

```Python
{
  "bytes": 20009,
  "created_at": 1683277820,
  "filename": "file",
  "id": "file-hogehogehogehogehoge",
  "object": "file",
  "purpose": "fine-tune",
  "status": "uploaded",
  "status_details": null
}
```
 
## Fine-tuningの実施
 
これもコードは非常にシンプルです。
 
```Python
import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
response = openai.FineTune.create(
    training_file="file-hogehogehogehogehoge",
)
print(response)
```

**training_file**にさきほどアップロードしたファイルのIDを記載します。

recuiredではないですが、Fine-tuningで使われるモデルを**model**として指定することも可能です。書かない場合はデフォルト値である**curie**が用いられます。また、すでにFine-tuning済みのモデルを元にすることもできます。

この際のレスポンスに下記のようにidの記載があります。

```Python
"id": "ft-hogehogehogehogehoge",
```

Fine-tuningは即時完了はしないため、しばらく待ちます。私がやったときは10分足らずでしたが、キューイングされるようなので、その時にどれだけFine-tuningが行われているかという状況や、あと、学習データの量にも待ち時間は左右されるかとは思います。

状況確認やキャンセルのためには上記のidを使います。
状況確認は**retrieve**で行います。

```Python
import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
response = openai.FineTune.retrieve(id="ft-hogehogehogehogehoge")
print(response)
```

レスポンスの**events**という要素の配列に発生したイベント履歴が記されます(今どこまで進んでいるかなど)。

コストもそこに下記のように書かれています。

```Python
{
  "created_at": 1683342896,
  "level": "info",
  "message": "Fine-tune costs $0.05",
  "object": "fine-tune-event"
},
```


完了時は下記。

```Python
{
  "created_at": 1683343651,
  "level": "info",
  "message": "Fine-tune succeeded",
  "object": "fine-tune-event"
}
```

完了すると**retrieve**のレスポンスにfine-tuningがされたモデル名が記載されています(完了前はnull)。

```Python
"fine_tuned_model": "curie:ft-personal-2023-05-06-03-27-30",
```

これで準備完了です。

また、[Analyzing your fine-tuned model
](https://platform.openai.com/docs/guides/fine-tuning/advanced-usage)に書かれている通り、学習結果のダウンロードも可能ですので、よければご覧ください。ファイル名は下記のように**events**に記載されています。

```Python
{
  "created_at": 1683343651,
  "level": "info",
  "message": "Uploaded result file: file-fugafugafuga",
  "object": "fine-tune-event"
}
```

ダウンロードするコードは下記です。

```Python
import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
response = openai.File.download(id="file-fugafugafuga")
print(response)
```

## モデルの呼び出し

modelにさきほどのモデル名を指名して「**Please tell me the broadcast start date of TV ANIME BOCCHI THE ROCK!**」と投げてみます。学習データ同様に**promptの末尾に\n\n###\n\nをつけて、stopに###を指定しています（###が登場したなら終了として扱う)。**

```Python
import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
completion = openai.Completion.create(
    model="curie:ft-personal-2023-05-06-03-27-30",
    prompt="Please tell me the broadcast start date of TV ANIME BOCCHI THE ROCK!\n\n###\n\n",
    max_tokens=300,
    stop="###"
)
print(completion["choices"][0]["text"])
```

5回質問して得られた回答を記載します。

- The broadcast start date of TV ANIME BOCCHI THE ROCK! is October 8, 2022 (Tue) at Tuesdays at 24:00~.
- TV ANIME BOCCHI THE ROCK! will start broadcasting on October 8, 2022 (Tue) at Tuesdays at 26:08~.
- TV ANIME BOCCHI THE ROCK! will start broadcast on October 8th, 2022 (Saturday) at 24:00.
- The broadcast start date of TV ANIME BOCCHI THE ROCK! is October 8, 2022 (Sat) at 26:00.
- The broadcast start date of TV ANIME BOCCHI THE ROCK! is Oct. 8, 2022 (Sat).

かなりそれっぽい回答です。学習されていますね。ただ曜日や時間を一部間違えていますね。2022/10/8（土）24:00〜が正解です。

## 質問を変えてみる

さらに加えて3つの質問を投げてみました。

### 質問2

#### 質問内容

ぼっち・ざ・ろっく！はTELASAで毎週放送されますか？

#### 質問内容英訳

Does BOCCHI THE ROCK! air weekly on TELASA?

#### 結果

5回質問してその回答です。

- Yes, BOCCHI THE ROCK! airs on TELASA every Tuesday starting on October 8th.
- Yes, BOCCHI THE ROCK! airs weekly on TELASA.
- Yes, BOCCHI THE ROCK! airs weekly on TELASA.
- Yes, BOCCHI THE ROCK! airs on TELASA every Saturday starting October 8th at 24:00.
- BOCCHI THE ROCK! airs weekly on TELASA starting October 8, 2022 (Saturday).

TELASAは2022/10/11（火）24:00からなので、日付の間違いが目立ちます。

### 質問3

#### 質問内容

私たちはぼっち・ざ・ろっく！をRKB毎日放送で見ることができますか？

#### 質問内容英訳

When will we be able to watch BOCCHI THE ROCK! on RKB Mainichi Broadcasting?

#### 結果

5回質問してその回答です。

- You will be able to watch BOCCHI THE ROCK! on RKB Mainichi Broadcasting on October 8, 2022 (Saturday) at 24:00〜.
- You will be able to watch BOCCHI THE ROCK! on RKB Mainichi Broadcasting on Oct. 13 at 27:12〜.
- You will be able to watch BOCCHI THE ROCK! on RKB Mainichi Broadcasting starting on October 11, 2022 (Tue) at 26:00~.
- You will be able to watch BOCCHI THE ROCK! on RKB Mainichi Broadcasting on every Tuesday from October 11th at 12:00〜.
- You will be able to watch BOCCHI THE ROCK! on RKB Mainichi Broadcasting every Tuesday starting October 11th at 23:59.

RKB毎日放送での放送は2022/10/13（木）の27:00〜なので、やはり日時の間違いが目立ちます。

### 質問4

#### 質問内容

ぼっち・ざ・ろっく！はTOKYO MXとRKB毎日放送のどちらで先に放送されますか？

#### 質問内容英訳

Which will air BOCCHI THE ROCK! first, TOKYO MX or RKB Mainichi Broadcasting?

#### 結果

5回質問してその回答です。

- BOCCHI THE ROCK! will air on TOKYO MX or RKB Mainichi Broadcasting first, so you will need to tune in on those channels.
- "BOCCHI THE ROCK!" will air on TOKYO MX or RKB Mainichi Broadcasting infall.
- ABEMA, to be aired first, BOCCHI THE ROCK! will air on TOKYO MX or RKB Mainichi Broadcasting.
- BOCCHI THE ROCK! will air BOCCHI THE ROCK! first, TOKYO MX or RKB Mainichi Broadcasting.
- "BOCCHI THE ROCK!" will air on TOKYO MX or RKB Mainichi Broadcasting first, on October 8th at 24:00.

TOKYO MXは2022/10/8(土)24:00から、RKB毎日放送は2022/10/13(木)27:00からなので「TOKYO MXです」という答えを期待していましたが、それは難しいようです。

## 学習データを増やして同じ質問をしてみた

作ったモデルに対してさらに200個の学習データでFine-tuningしてみました。つまりここまで合計300個の学習データを用いたことになります。

### 質問1

#### 質問内容

TVアニメ ぼっち・ざ・ろっく!の配信開始日を教えてください

#### 質問内容英訳

Please tell me the broadcast start date of TV ANIME BOCCHI THE ROCK!

#### 結果

5回質問してその回答です。

-  TV ANIME BOCCHI THE ROCK will start broadcasting on GYAO! on October 8, 2022 (Sat).
-  The broadcast start date of TV ANIME BOCCHI THE ROCK! is October 8, 2022 (Sat).
-  The broadcast start date of TV ANIME BOCCHI THE ROCK! is October 8, 2022 (Sat).
-  The broadcast start date of TV ANIME BOCCHI THE ROCK! is October 8, 2022 (Sat).
-  The broadcast start date of TV ANIME BOCCHI THE ROCK! is October 8, 2022 (Sat).

GYAO!の放送開始日は2022/10/11なので、そこが間違っていますね。それ以外は合っています。というか、同じ回答が4回続きました。ここには書いていないですが、実際には6回続きました。

### 質問2

#### 質問内容

ぼっち・ざ・ろっく！はTELASAで毎週放送されますか？

#### 質問内容英訳

Does BOCCHI THE ROCK! air weekly on TELASA?

#### 結果

5回質問してその回答です。

- Yes, BOCCHI THE ROCK! airs weekly on TELASA.
- Yes, BOCCHI THE ROCK! airs on TELASA every Wednesday at 24:00〜.
- Yes, BOCCHI THE ROCK! airs on TELASA every Wednesday at 24:00〜.
- Yes, BOCCHI THE ROCK! airs weekly on TELASA.
- Yes, BOCCHI THE ROCK! airs weekly on TELASA.

TELASAは2022/10/11（火）24:00からなので、曜日が間違っていますね。

### 質問3

#### 質問内容

私たちはぼっち・ざ・ろっく！をRKB毎日放送で見ることができますか？

#### 質問内容英訳

When will we be able to watch BOCCHI THE ROCK! on RKB Mainichi Broadcasting?

#### 結果

5回質問してその回答です。

- You will be able to watch BOCCHI THE ROCK! on RKB Mainichi Broadcasting every Tuesday at 27:00〜.
- You will be able to watch BOCCHI THE ROCK! on RKB Mainichi Broadcasting every Tuesday at 24:00〜.
- You will be able to watch BOCCHI THE ROCK! on RKB Mainichi Broadcasting every Tuesday at 27:00〜.
- You will be able to watch BOCCHI THE ROCK! on RKB Mainichi Broadcasting every Tuesday at 25:00〜.
- You will be able to watch BOCCHI THE ROCK! on RKB Mainichi Broadcasting every Tuesday at 27:00〜.

RKB毎日放送での放送は2022/10/13（木）の27:00〜なので曜日、時間の間違いが目立ちますね。

### 質問4

#### 質問内容

ぼっち・ざ・ろっく！はTOKYO MXとRKB毎日放送のどちらで先に放送されますか？

#### 質問内容英訳

Which will air BOCCHI THE ROCK! first, TOKYO MX or RKB Mainichi Broadcasting?

#### 結果

5回質問してその回答です。

- TOKYO MX or RKB Mainichi Broadcasting will air BOCCHI THE ROCK! first, but BOCCHI THE ROCK! will air on TOKYO MX or RKB Mainichi Broadcasting first.
- BOCCHI THE ROCK! will air on TOKYO MX or RKB Mainichi Broadcasting first, starting on October 8, 2022 (Sat).
- TOKYO MX or RKB Mainichi Broadcasting will air BOCCHI THE ROCK! first, and BOCCHI THE ROCK! will air TOKYO MX or RKB Mainichi Broadcasting first.
- TOKYO MX will air BOCCHI THE ROCK! first, with RKB Mainichi Broadcasting following.
- Both will air BOCCHI THE ROCK! first.

これは学習データが100個の時と同様で、期待する回答が得られないですね。

## 最後に

- 学習データの内容を精査していない
- 試行回数が少ない

という前提ではありますが、ある程度の仮説を立てられるような結果は得られました。興味深いです。 

今後も色々とやっていきたいですね。まずは日本語でも同じ内容を試してみようかと考えています。

## 宣伝

[SupershipのQiita Organization](https://qiita.com/organizations/supership-inc)を合わせてご覧いただけますと嬉しいです。他のメンバーの記事も多数あります。

Supershipではプロダクト開発やサービス開発に関わる方を絶賛募集しております。
興味がある方は[Supership株式会社 採用サイト](https://supership.jp/recruit/)よりご確認ください。