人生の選択肢を知ったきっかけデータセット
https://gyazo.com/3d5569ccbfe7db10bf2a2ea9cdfa9bea
Talk to the Cityを試すために日本語のサンプルデータが欲しいという声がある
一方で最近X APIで取得したデータに関してはAPIの契約条件で取得したデータ自体の扱いに制限があり、オープンデータ化はやりにくい
この「人生の選択肢を知ったきっかけデータセット」は西尾が2021-05-07にTwitterで募集して、247件の投稿が集まった。当時Twitter APIを使わずに手動で収集したものなのでX APIの契約に縛られない。
データセット
250件
データセットを作るプロセス
これを書き記しておくと今後自前のデータでTalk to the Cityをする人の助けになるだろう
元データは空行区切り
そこで空行で区切ってCSVにするコードを書いた
まずは最初の25件を入れてみてextraction stepだけ走らせてみる
$ python main.py configs/choice.json -o extraction
これで結果を見て、プロンプトを修正したりfew shotの例(末尾の入力と出力の例示のこと)を追加したりする
TTTCは何回か試してもうまく抽出できない場合は元データを無視する(Silently giving up on trying to generate valid list.)
例
code::
JSON error: Expecting value: line 1 column 1 (char 0)
Input was: https://gyazo.com/eb0af52aab8f22c0e91035bb2c106165
Response was: 申し訳ありませんが、画像やリンクの内容を直接確認することはできません。画像の内容をテキストで説明していただければ、その情報をもとにお手伝いできるかもしれません。
Silently giving up on trying to generate valid list.
この例は入れたテキストの中に画像リンクだけの段落があったことが原因
https://gyazo.com/e7ad3334c76f1526fcd6a7ac338363be
こういうものは数が多くないなら元データから取り除くのが楽
多い場合
Pythonで簡単にルールベースのフィルタが書けるならそれで弾く
簡単でないならプロンプトで弾く
もしくは「プロンプトで弾くフィルタリングのステップ」を前に追加する
うまく行きそうならデータを増やしてみる
この時データを変えてるのにnothing changedと表示される(これはバグかも)
プロンプトを変更すれば再実行が必要だと認識する
強制的に再実行することもできる
$ python main.py configs/choice.json -f
only指定した場合も強制的に再実行する
$ python main.py configs/choice.json -o extraction
データを増やしつつある実験ならこっちの方がいいな
問題がないことを確認したら普通に実行すると抽出済みのデータを再利用してつづきから実行する
$ python main.py configs/choice.json
configでextractionのlimitを増やすの忘れがち
これはデータCSV自体は既にあるケースで少ないデータ量でプロンプトの試行錯誤をするためのパラメータ
とりあえず100件で可視化してみる
https://gyazo.com/beb0708b8dfd568533bf5704ca98abd7
方向性は問題なさそう
configの"name", "question", "intro"を修正する
見た目の説明文の更新なのでvisualizationだけ更新したらいいかと思いきや、configから表示用のデータをとって可視化用のデータのかたまりをつくるのはaggregation
$ python main.py configs/choice.json -o aggregation
$ python main.py configs/choice.json -o visualization
(これaggregation以降を再実行する方法があるべきな気がするな)
https://gyazo.com/fb50af81b5da9e460a94224df167d409
"分析対象となったデータの件数は"〜に関してはaggregation.pyの中に記述されている、データの量は自動記述
https://gyazo.com/578c7020b1bd1c30175f3bc2aaf38b95
最終的なconfigとprompt