2023-08-24
#js 
ChatGPT 3.5のファインチューニングで登場、jsonlを拡張子とする、JSON Lines。こちらライブラリとしました。


「code4fukui/JSONL: JSON Lines stringify / parse in JavaScript ES module for browsers and Deno」

ndjsonは、JSON Linesからforkしたとのことで、仕様はほぼ一緒です。以前、作った「NDJSON」をforkして、名称を変更。testも通って準備完了!


「finetune-ichigo.csv」

早速これを使って、ファインチューンイング対応した、ChatGPT 3.5の学習用のデータを生成するツール「jsonl2csv.js」「csv2jsonl.js」を作成、CSVデータから学習する手順としてまとめなおしました。(参考、ChatGPT 3.5 Fine-tuning

このように、CSVデータをJSON Linesに変換します。 import { JSONL } from "https://js.sabae.cc/JSONL.js"; import { CSV } from "https://js.sabae.cc/CSV.js"; const csv = Deno.args[0]; const jsonl = Deno.args[1] || csv + ".jsonl"; const s = await Deno.readTextFile(csv); const data = CSV.parse(s); const data2 = data.map(d => { return { messages: [ { role: "user", content: d.user }, { role: "assistant", content: d.assistant } ]} }); console.log(data2) const d = JSONL.stringify(data2); await Deno.writeTextFile(jsonl, d); URLインポートを短く書けるように js.sabae.cc にも設置しました。

ndjsonか、JSON Linesか?

LinkedDataのJSON表現であるJSON-LDと名前が近い点は気になりますが、、個人的には公式サイトがSSL対応している、JSON Linesを使っていくことにします。

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS