自己紹介
こんにちは、2024年にAvintonに新卒入社したSです。
大学では情報学部に所属し、データ分析やAI技術を学びながら、将来はAIエンジニアとして活躍することを目指していました。
学生のころは「エンジニアとしての仕事が実際にどのようなものなのか」、正直なところ明確なイメージは持てていませんでした。
それでも、興味のある分野で働きたいという思いからAIエンジニアの道を選び、少しずつ業務に触れる中で、実際の仕事の面白さや難しさを実感してきました。
このブログでは、新卒で入社してから現在に至るまでの経験を通じて、どんなことを学び、どんな壁にぶつかってきたのかを振り返ってみたいと思います。
これからエンジニアを目指す方や、「実際の仕事ってどんな感じなんだろう」とまだイメージが持てない方にとって、少しでも参考になればうれしいです。
自分自身も手探りのスタートでしたが、そんな中で感じたこと・学んだことを、等身大でお伝えできればと思います。
Avintonへの入社理由
Avintonを選んだ理由は、AIエンジニアとして実践的に成長できる環境があると感じたからです。
実際、入社して1か月でAIモデル開発のプロジェクトにアサインされ、希望していた業務に早期に関われたことで「この会社を選んで正解だった」と実感しています。
また、選考の段階から技術に対する前向きな姿勢や教育体制にも魅力を感じていました。
Avintonは、Avinton Academyという研修プログラムを無償で提供しており、そういった活動から、技術や教育に対する前向きな姿勢が伝わってきて、自分もその環境で成長していきたいと感じました。
入社後のプロジェクト経験・学び
私は入社してから現在までに、3つのAI関係のプロジェクトを経験しました。
最初に携わったのは、画像内の物体(人や車など)をバウンティングボックスで囲み、ラベルを付けるアノテーション業務です。
一見すると単純作業の繰り返しですが、集中力と忍耐力が求められる仕事であり、この業務で養った基礎力はその後のプロジェクトにも活かされていると感じています。
アノテーション業務を1か月ほど担当した後、名刺画像から名前や住所など抽出するAIモデル開発のプロジェクトに参画しました。
私は主に、画質補正モデルとAI-OCRモデルの開発を担当しました。一定の精度が出せた後は、MLOpsの観点から、モデルの自動学習・評価フローを構築するフェーズに入りました。
この自動化にはKubeflow Pipelinesというツールを使用し、データが入ってくるたびにモデルの学習・評価が自動で行えるシステムを設計しました。
初めて触れる技術で苦労もありましたが、上司のサポートを受けながら、プロジェクト終了ぎりぎりで無事に完成させることができました。
3つ目のプロジェクトでは、自動運転AIモデル開発におけるMLOps業務に携わりました。1つ前のプロジェクトでMLOpsの経験を積んでいたことが評価され、参画につながったと感じています。このプロジェクトでは主に、毎週のモデル評価の自動化や、推論結果の可視化、汎用的な機能を持ったダッシュボードの作成を主に行っています。ここのプロジェクトでの成果物には自信があるのでいくつか紹介させていただきます。
- Kubeflow Pipelinesを用いたweeklyでの学習&評価の自動化
私が参画する以前は、モデルの学習や評価は手動で行われていました。
これをKubeflow Pipelines(KFP)を用いて自動化し、さらに定性的評価も実施できるように改善しました。。定量評価の結果はMLflowに保存し、評価値の推移は後述のダッシュボード(3)で可視化しています。
また、定性的評価はFiftyOneを連携させ、KFP内で推論結果を読み込み・可視化できる仕組みを構築しました
これにより、プロジェクトメンバーがモデルの精度や特徴を素早く把握できる環境を整えることができました。
- FiftyOneを用いた推論結果、学習データの可視化
FiftyOneを活用し、学習後の推論結果や新しいデータをすぐに確認できるようにしました。
これはKFPのパイプラインと連携しており、モデル評価が終わると自動的にデータが可視化されます。
FiftyOneはOSSのため、未完成な部分やバグもありますが、Vision系AI開発において非常に有用なツールだと感じています。
実際に私自身、3Dシーン描画の際の点群の色付け機能を追加するためにコードを修正し、ビルドして対応したこともありました。
- Streamlitを用いた汎用機能を持つダッシュボード
Streamlitを使って、様々な機能を持つダッシュボードも開発しました。
具体的には、以下のようなページを作成しています。
・週次学習・評価結果をグラフで可視化
・各学習マシンのGPUをモニタリング
・MLflowのrunを他のExperimentへコピーするインターフェース
特にMlOpsのrunコピー機能は、MLflow Export Importというコマンドラインツールを Streamlit 上から操作できるようにしたもので、Server 間の run 移動にも対応しています。
複数の MLflow サーバを併用しているプロジェクトでは、とても重宝される仕組みになっています。
Streamlit は Web アプリの構築が簡単で、ページの追加や機能の拡張もしやすいため、今後も幅広く活用していきたいと考えています。
プロジェクトのやりがい・成長実感
プロジェクト中でやりがいや成長を感じるのは、課題に対して自分で解決策を考え、上司に提案し、それを実装し、形にできたときです。
現在のチームは2人という少人数体制であるため、大きな裁量を持って仕事に取り組める環境が整っています。
実際に、過去に触れた際に使いやすさや効果を感じていたKubeflow PipelinesやStreamlitを活用した仕組みづくりを私が提案し、運用まで実現しました。
自ら提案して形にするという経験が、今後さらに改善案を出していく自信にもつながっています。
これから目指すキャリア・挑戦したい分野
私のキャリア目標は、AI開発におけるすべての工程を理解し、自ら手を動かせる「フルスタックAIエンジニア」になることです。
そのために、機械学習モデルの構築だけでなく、インフラ・運用・自動化まで一通りのスキルを身につけていきたいと考えています。
最近は、モデルの量子化や学習&評価の高速化といった領域に興味があります。これらの技術にはC++の知識が重要になるため、今後はC++の学習と実装を通じてスキルを広げていく予定です。
まとめ・メッセージ
大学時代を振り返ると、特に予定がない日は、平日はだいたい2〜3時間、休日になると6時間くらいは学習に充てていました。
主にプログラミングの勉強をしていて、書籍ではオライリーの技術書を読み込みながら基礎力を養い、実践的なスキルを身につけるためにSignateやKaggleといったコンペサイトにも挑戦していました。
そうした日々の積み重ねが、今の自分の技術的な土台になっていると強く感じます。その土台を活かして、Avintonでは実際の現場で多くの挑戦ができ、エンジニアとして大きく成長することができています。Avintonは、実践的に学びながらスキルを伸ばせる、チャレンジしやすい環境が整っている会社です。
少しでも興味を持っていただけた方は、ぜひ一度カジュアル面談でお気軽にお話ししましょう。
お待ちしています!
【参考リンク】
Avinton Academy
Kubeflow Pipelines 公式ドキュメント
MLflow 公式サイト
FiftyOne ドキュメント(by Voxel51)
Streamlit 公式ドキュメント
MLflow Export Import ツール GitHub
▼詳細はこちら
Avinton採用ページ : https://avinton.com/careers/