
野良DSの適当な解説~なんで機械学習のモデルはなまものなのか?
最初のQA
質問)
機械学習モデルはなまものと聞いたのですが、そんな事あるんですか?回答)
あります。時間とともにモデルの想定環境からズレていくので成績が落ちます。この現象をなんとなく「なまもの」と言ってます。
解説しよう
世の中って複雑なんですよ。だから、多くの場合、学習に使ったデータの更新をしないですむなんてケースの方が稀だったりします。
日常生活にもよくあるのですが、例えばガスコンロのとか、時間とともに思った火力が出なくなったり火がつきにくくなったりしますよね。
で、人間は何となくそういうところを自力で調整して何とかしちゃうんですよ。すごいですよね。
でも、機械学習にそんな機能はありません。だから、火力が落ちようが何だろうが、昔学習したパラメタをベースに判断します。
最初のうちは、このズレがあってもまぁ気になるほどではないですが、時間がたつと料理が生煮えになったりするわけですよ。そうなると、もう機械学習モデルの賞味期限が終わったという事になるわけです。
だからなまものなんですね。
なまものになる原因
いっぱいあります。例えば写真。犬猫識別でも、犬種の流行り廃りがありますよね。あんまり学習していなかったブルテリアがもの凄い人気になって、街中で見かける犬の半分以上がブルテリアになったとしましょう。
でも、今の時点ではブルテリアはほとんど見かけないですよね。つまり、モデルを作るときに想定していたブルテリアはそんなにいないという暗黙の条件が満たされなくなったのです。ブルテリアがもの凄くたくさん居る環境では、ブルテリアについてあんまり学習してこなかったモデルはあんまり役に立ちません。だって、ブルテリアは少ないから失敗してもしょうがないよねぐらいの気持ちだったんですから。だって、ブルテリアが出てくるケースなんか、もしかすると0.1% にも満たないかもしれないんですよ。ここを当てて 0.1% の正答率を稼ぐよりも、もっとやるべき事はありますもんね。
まぁ、ブルテリアの例はともかくとして、実際にあり得るケースを簡単に列挙してみます。
センサーの出力値が経年劣化でズレてきた
加工機の寿命が近づいてきて加工精度が悪化してきた
夏場に測定したデータを使って学習したモデルを冬に適用した
メンテナンスしたらセンサーの位置とか方向がちょっとずれてしまった
別のオフィスに持っていったら、仕事のやり方が微妙に変わっていた
結局、全てのデータを用意することなんか出来ないんですよ。だからどうしても暗黙の領域が出てくる。これを無くすように頑張ることは非常に良いことなのですが、無くすという作業はかなりの絶望感を伴う作業になります。
だって、もしかしたら、センサーをつけた位置は変わっていないけど設備の都合で方角が変わったとか(地磁気の影響)、その時のノイズ状況(近くに何気なく置いてある別の機械とかね)、気温(季節もそうだし冬場だけ太陽光が当たるという特殊性もありえる)。機械を使う人が変わって値が変わっちゃうケースもある。部品のコストダウンがこっそり行われて値がメーカーの提示する許容範囲内で変わったりするかもしれない。
LLM も一緒ですよ。学習している以上、逃げることは出来ない。世の中の常識が変わったりとかすればどんどん結果がおかしくなる。機械学習である以上、しょうがないですね。更新をやめれば、どんどん現状から乖離してしまう。
だから、LLM の維持費がどんどん重荷になっていくと思うんですよ、私は。コストは下がるけど、LLM の性能を維持するためにコストを払い続ける必要がある。まぁ、サボってもいい。サボればサボるほど、性能は劣化していくけどね…
いや、参考にする文章を見て回答するから良いじゃんって思うかもしれませんが、私が生きているほんの50年で日本語もの凄く変わりましたよ。ことばの意味ももどんどん変わったし、知らない同士も出てきたり、新しい表現が生まれては消えていく。名詞だけだったらまだしもそれ以外の品詞でも変化は結構起きている。そんな激しい変化が参考文書で太刀打ちできるなら、そもそも LLM の学習自体が不要って事になりますもんね。
以上を踏まえて
機械学習モデルは定期更新が必要不可欠なんですよ。そして、それをやらないと多くの場合時間とともに成績が下がります。もちろん、運良く成績が下がらないケースもあるでしょう。でも、自分の使っているモデルがその運の良いモデルであると脳天気に信じるってのも、正直どうかなって思いますね。
だから、機械学習モデルを使い続けたいのであれば、ちゃんと性能維持のコストを考えないといけません。つまり、定期的なモデルメンテナンスの仕事をスケジュールしておく。でも、これの予算積んでいるところとか、ほとんど聞いたことが無いというのが現状なんですけどね…
今回の結論
「ほとんどの機械学習モデルは時間と共に性能劣化していくよ。」
「性能劣化したときの対策は必要。ちゃんと予定しておいてね。」
覚えときましょう。