Skip to content

1119-2916/ai-project

Repository files navigation

ファインチューニングした GPT3.5 turbo と会話する discord bot の実験

ファインチューニングのデータフォーマット

https://openai.com/blog/gpt-3-5-turbo-fine-tuning-and-api-updates

{
  "messages": [
    { "role": "system", "content": "You are an assistant that occasionally misspells words" },
    { "role": "user", "content": "Tell me a story." },
    { "role": "assistant", "content": "One day a student went to schoool." }
  ]
}

各種結果

name system user assistant size epoch token loss
kurobara 1046 3 78,384 1.7354
ikeda 47823 1 1,740,019 2.0195
meu 159 3 72,792 1.7384
shapa 1488 3 1,303,962 2.1201

kurobara

{
  "messages": [
    { "role": "assistant", "content": "アキバ来るオタクみんな何時くらいに来る?" }
  ]
}
  • discord での発言を収拾した
  • system, user のフィールドは無し
  • assistant に発言を入れたのみ
  • 本人の口調を捉えつつ、日本語ややり取りが崩壊していない。成功と言って良い結果。

ikeda

{
  "messages": [
    { "role": "assistant", "content": "はちみつをかけるタイプのチーズピザが食べたくなっちゃった" }
  ]
}
  • twitter に投稿した約9万ツイートを収拾
  • system, user のフィールドは無し
  • assistant にツイートを入れたのみ
  • 目立って日本語がおかしいことは無いが、口調がマネできているわけでもなさそう。

meu

{
    "messages": [
        {"role": "user", "content": "めうめう、あのねっ!アキシブ系ってなあに?" },
        { "role": "assistant", "content": "アキシブ系ってゆーのは、アキバ系+シブヤ系めうーっ!ちゃんっちゃちゃーん♪のてれれれーんのぴぴぴろにゃーんっ☆なカンジめうっ!"}
    ]
}
  • ひなビタのサイト から収拾
  • 会話形式になっているデータである。
  • system のフィールドは無し
  • user, assistant にデータを入れた
  • めう語が非常に難解であったせいか分からないが、日本語が崩壊してしまった。
  • なぜか、userであるまり花の口調も混ざっている気がする。
  • 失敗

めうbot

shapa

{
    "messages": [
        {"role": "system", "content":"あなたはxx歳のxxxで、インターネット上xxxxxしている。 日本のxxxxで生まれ育ち、今はxxxxx。一人称は「」と「」を使い分ける。 砕けた敬語を使い、仲良く気さくに話してくれる。 斜に構えたような冗談や、場を茶化すような発言を好む。 返答の文章量は最大で40文字程度であるが、xxxやxxxなどに関係する話題の際は発言の量が60文字程度に増える。 "},
        {"role": "assistant", "content": "でも赤のコードを切るか、青のコードを切るか――ってときに爪切りしかなかったら困るかも"}
    ]
}
  • 全十数万ツイートの中から、40文字以上100文字以下であり、同一の文字を5個以上含まないもの1500件
  • 「うおおおおお!!!!!」などは弾かれるということ
  • プロンプトはちょっとあからさまだったのでここでは隠したが、実際には入れている
  • system のフィールドにプロンプトを、assistant にツイートを入れ、 user は無し
  • 殆ど日本語が崩壊していた。完全に失敗。

動作環境

python 3.12 poetry 1.7

Makefile 解説

requirements:

poetry で requirements を吐き出す

install:

poetry で .venv を生成する

run:

discord bot を実行する

generate_dataset:

train_data_generator を実行する。plane text などから学習用のフォーマットにしたファイルを吐き出す

validate_format:

公式から提供されている学習用 jsonl のバリデータ。トークン数も分かる

upload:

open ai に jsonl をアップロードする

tuning:

open ai にアップロードした jsonl を元に、ファインチューニングを実行する

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published