ども、ワイは大阪出身の20代男子、ITベンチャーでAIエンジニアとして働き始めて、まだ3ヶ月目の駆け出しや。
文系卒で、Python触り始めたんも今年入ってから。せやけど、根性だけは誰にも負けへん。
毎日コードと格闘して、少しずつ成長してる実感はある。
今日はな、ワイが仕事中にガチでハマってもうた業務について書くわ。
正直、頭抱えて何回も「うわぁぁぁ!」って叫びそうになったけど、なんとか乗り越えたで。
精度が上がらない問題
うちの会社は、企業向けにAIモデルを提供してるんやけど、今回ワイが任されたんは「商品レビューの感情分析モデル」の改善や。
要は、ネットに書かれたレビューが「ポジティブかネガティブか」をAIに判定させるってやつやな。
すでにベースのモデルはあってんけど、精度がイマイチで、クライアントから「もっと正確にしてほしい」って要望が来たんや。
先輩から「このモデル、ちょっと精度上げてみてくれる?」って軽く言われて、「よっしゃ!任しといてください!」って元気よく返事したワイ。まさかここから地獄が始まるとは思ってへんかった。
データクリーニング問題
まずはデータ見直しから始めたんやけど、レビューの文章がめちゃくちゃやった。
「最高!」って書いてるのにネガティブ判定されてたり、「最悪や…」って書いてるのにポジティブになってたり。
「なんでやねん!」って思いながら、データの前処理を見直してみたら、絵文字とか顔文字が邪魔してることに気づいた。
「😊」とか「😡」が入ってるだけで、モデルが変な判断してるんや。
せやから、絵文字除去の処理を追加したり、文章の正規化をしたり、ストップワード(意味のない単語)を除いたり、地味な作業を延々と続けた。気づいたら3時間経ってて、昼飯食うの忘れてたわ。
モデルのチューニングが迷宮入り
データ整えて、いざモデルの再学習!って意気込んで、ハイパーパラメータ(学習の設定値)をいじり始めたんやけど、これがまた沼やった。
「learning_rate」「batch_size」「epoch数」…何をどう変えたらええか分からん。とりあえずグリッドサーチっていう方法で、いろんな組み合わせ試してみたけど、精度がちょっとしか上がらん。
「なんでやねん…」って頭抱えてたら、先輩が「特徴量増やしてみたら?」ってアドバイスくれて、レビューの中に出てくるキーワードを抽出して、TF-IDFっていう手法で重みづけしてみた。
そしたら、ちょっと精度上がって、「おっしゃ!これや!」ってテンション上がったんやけど、まだクライアントの要求には届かへん。
BERTとの出会い
「もう限界かも…」って思ってたとき、社内の勉強会で「BERT」っていう自然言語処理の最強モデルについて教えてもらった。
「これ使ったら、もっと精度上がるかも!」って思って、早速実装に挑戦。せやけど、BERTは重いし、コードも複雑で、GPUの設定とかで何回もエラー出て、ワイのPCが「ウィーン…」って唸り出した。
それでも根性で乗り越えて、なんとかBERTモデルで学習完了。結果見たら、精度が一気に10%アップしてて、ワイ、思わず「よっしゃああああ!」って叫んでもうた。
クライアントに提出した結果
改善したモデルを先輩と一緒にクライアントに提出したら、「めっちゃ精度上がってますね!ありがとうございます!」って言われて、ワイ、心の中でガッツポーズ。
先輩にも「よう頑張ったな。根性あるわ!」って褒められて、ちょっと泣きそうになった。あの時、諦めんでほんまによかった。
今回の学び
今回の業務で学んだことは山ほどあるけど、特に大事やと思ったんはこれや
データの質がモデルの命
地道な作業こそ精度アップの鍵
分からんことはすぐ聞く
諦めへん心が一番の武器
AIエンジニアって、華やかに見えるけど、実際は地味で泥臭い作業の連続や。
でも、ワイはこの仕事が好きや。自分の手で精度を上げて、誰かの役に立てるって、めっちゃ嬉しいことやと思う。
明日もまた新しい課題が待ってるやろうけど、ワイは前向きに挑戦していくで!根性と好奇心で、AIの世界を突き進むんや!
スポンサーリンク