こんにちは、ぱそきいろです。
以下のブログでChatGPTにファインチューニングさせる準備ができたわけですが、、
「ここから課金すればファインチューニングが始まります」で終わっています。
www.takacpu55.xyz
今回はコストの見積もりとどうするかを考えていきます。
費用の見積もり
今回はざっくりで良いので費用を見積もります。
ファインチューニングにかかる費用は公式ページを見るとgpt-3.5turboで$0.0080 / 1,000 トークンとなっています。
この辺りを見ると日本語1文字1トークンとなっているため、前回作成したデータセット内のプロンプトを抜き出して見積もります。
ChatGPTのトークンとは?トークン数を調べる方法も解説! | PROMPTY
データの抽出
以下のコードで前回作成したデータからプロンプトを抽出して費用を計算します。
文字数/1000トークン*0.008ドル*150円で費用を見積もります。
import json import codecs import tiktoken def count_tokens(text): fulltext="" for t in text: fulltext+=t return len(fulltext),fulltext doller=150 finetuning=0.008/1000 # jasonファイルを読み込む filename="tweets_ps.jsprompt.jsonl" content_list=[] tweetnum=0 with codecs.open('./'+filename, 'r' , 'utf-8', 'ignore') as f: for line in f: tweetnum += 1 line="["+line+"]" # JSON形式のデータを1行読み込む data = json.loads(line) content = data[0].get("messages") for c in content: ctemp=c.get("content") if ctemp is not None: content_list.append(ctemp) # トークン数を取得 token_count,token_text = count_tokens(content_list) print(f"ファイル内のプロンプト数: {tweetnum}") print(f"ファイル内の概算トークン数: {token_count}") print(f"概算金額: {token_count*finetuning*doller}円")
結果
出力結果は以下になりました。
ファイル内のプロンプト数: 3163 ファイル内の概算トークン数: 168807 概算金額: 202.56839999999997円
約200円ですが、あくまでも1エポックに掛かる金額なので、複数回エポックを回す場合や、やり直しを考慮すると少し高いように思えます。
(円高になればなるほど安くなるのですが・・・)
安くする方法として英語にしてから学習させるというのがあるようでしたが、日本語のニュアンスを崩したくない(=自然なツイートを生成させたい)のでこの手は取らないこととします。
プロンプト(学習に使うツイート)が3000超とかなり古いツイートが含まれているので直近1000ツイートくらいに絞りたいと思います。
その結果が以下です。
ファイル内のプロンプト数: 1001 ファイル内の概算トークン数: 51556 概算金額: 61.8672円
まぁ、これくらいなら許容範囲内ですかね・・・
次回こそこれでファインチューニングを試していきたいと思います。