OpenAIのfine-tuningのやり方と結果の見方

基本的に以下を見れば良いのですが、結果の見方がすぐに出てこなかったのでメモ

https://platform.openai.com/docs/guides/fine-tuning

まずjsonlファイルを用意します。ここはdocsに載っています。
以下でファイルとjobの作成ができます

client.files.create(
  file=open("fine_tuning_data.jsonl", "rb"),
  purpose="fine-tune"
)

client.fine_tuning.jobs.create(
  training_file="file-abc", 
  model="gpt-4o-2024-08-06"
)

jobのidをメモしておきます

# List 10 fine-tuning jobs
client.fine_tuning.jobs.list(limit=10)

# Retrieve the state of a fine-tune
client.fine_tuning.jobs.retrieve("ftjob-abc")

これで結果ファイルのidが取得できるのですが、docsにあるような

result = client.files.content("file-abc")
result

するとよくわからないオブジェクトが返ってきます。
ggったところ、以下のようにbase64デコードすれば中身を見て保存することができました。

result = client.files.content("file-abc").text
result

import base64

decoded_bytes = base64.b64decode(result)
decoded_string = decoded_bytes.decode('utf-8')

print(decoded_string)

import csv

# Split the string into lines
lines = decoded_string.splitlines()

# Write to CSV file
with open('learning_results.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    for line in lines:
        writer.writerow(line.split(','))

print("Data has been written to learning_results.csv")


いいなと思ったら応援しよう!

大曽根宏幸
サポートありがとうございます!