能動学習で学習が重くなったらやること
対話的能動学習で、正しくless confidentなものが選ばれてないなあと思った そういうケースでも2回目以降は自動調整が働くはずなのだが、ある程度データが集まってきた後に関しては「最新のデータでの再学習」が重たくなってきて、このダウンサンプリングの影響が小さくなってしまう。
また、今回「待ち時間が1秒になるようにサンプリングレートを調整」としてたところを「5秒」に変えたら初期値を変えなくてもちゃんと調整されることを確認した
でもこれって結局のところ学習部分にかかる時間が徐々に増えていくとまた発生するわけなので本質的な解決ではないよなぁ。
学習が十分早いなら、毎回学習することで似た質問に何度も答えることが防がれる。
一方で学習が重くなったら、毎回学習したくない。どうするか。例えば元の会話ログを分割して、それぞれのグループから1つだけ質問を選ぶか?
人間を待たせないことを優先するなら、新しい学習データがきた時点で、バックグラウンドで非同期に学習するのがいいか?学習完了した時点で差し替えて、次の質問作成から新しいモデルを作る。学習完了の時点で既に新しい学習データが来てそうだから、さらに新しい学習がスタートする。
学習データをコピーして、そのコピーを読んでモデルを出力する子プロセスを起動、定期的にチェックしてモデルファイルが出力されてたら(or プロセスが終了したら)それをロード、という感じか。
ユーザの入力待ちの間にしれっとやっておいて欲しい。いまユーザの入力待ちでブロックしちゃうから、スレッドでモデルをロードする仕組みにするか。
かなり大ごとで、現時点ではまだそれが必要な状況ではないのでメモだけにしておく。