はじめに
最近,データエンジニアリングと MLOps の領域への関心が個人的に高まっていて,何か個人プロジェクトで出来ないかと考えていたところ,普段スプレッドシートで記録している家計簿のデータを使って,データエンジニアリングとMLOpsの技術検証をしようと言う考えに至りました.
そもそも,なんで上記領域への関心が高まってきたかというと,以前までは,ある問題設定に対して,どういったアプローチでその問題を解くかといったモデリング部分に興味があり,特徴量エンジニアリングや新しいアルゴリズムを試すといった部分が楽しいと感じていました.一方で最近は,そこで作ったモデルはそのままでは機能せず,何らかのシステムに載せて動かし続けることで真価を発揮すると思っていますし,動かし続けて使っていかないと意味がなく,せっかく作ったモデルがもったいないなーという気持ちがあります.
機械学習モデルのシステム化のためには,どういったことを知っておくといいのかを考えた場合,データ連携を含めたデータを貯める部分とモデル作成後の MLOps 部分を理解しておくことが大事だと思うので,ここをより深めて行きたいと思った次第です.
データ連携周りは自分自身でモデルを作る際にも,「簡単にデータを取り出せる,品質が保たれているデータ」というのは大事な部分であり,世の中的にもデータを活用する流れはこれからも進んでいき,データ基盤を作れる人の価値は上がっていくと思うので,じゃあそこを自分でも出来るようになっておこうという思いがあります.
もう一つのMLOpsは構成要素が色々あり技術的にも興味深い(サービス名とかは知ってるけど,どうやって使うの?的な部分もあります)のと,まだまだこの分野の知見は日本でも多くないなという印象なので,しっかり理解しておくと今後より活きてくるかなと思っています.
そういった流れの中で,理解も含めて個人プロジェクトでできることをしたいというお気持ちがです.
技術スタックとしては,普段 BigQuery 以外は業務でもあまり触れる機会がない Google Cloud Platform (GCP) のサービスと OSS を組み合わせてできることをしようと考えています.
プロジェクト名: teamaya
プロジェクトを始めるにあたりプロジェクト名を決めるとワクワクするので,最初に決めることにしました.沖縄好きなので,沖縄の言葉を組み合わせて何か名前を付けたいと考えていて,沖縄県と東京都のハーフである妻にも相談しながら今回の「teamaya」と言う名前にしました.
github のリポジトリは以下になります.(スター貰えると泣いて喜びます😂)
teamaya は “team” と “maya” を組み合わせた造語です.team は「〔動物に引かせて~を〕運ぶ、運搬する」という意味があり,maya(マヤー)は沖縄の方言で猫という意味があるので,猫にデータを運んで貰うという意味を込めてこの名前にしました.
ちなみに,リポジトリにあるアイコンのハイビスカス🌺を付けた猫😸は妻に書いて貰いました!
どういったプロジェクトなのか
今のところ考えているのは,大きく2つになります.
- データ連携
- ローカルのデータをクラウド上に連携
- 連携したデータをELTツールで変換 & データの品質管理
- データの可視化
- 機械学習システムの構築
- パイプライン構築
- 実験管理
- モニタリング & 通知
まず,データ連携については.ローカルからクラウドへの連携,特に特定のデータソースから BigQuery に連携する部分を実施して,データウェアハウス(DWH)を作ろうと思っています.そこからELTツールでデータマート(DM)を作成し,BI ツール(Data Studio など)でデータの可視化を行うといった流れを検証しようと考えています.
個人的には,Dataform や dbt といったサービスでELTパイプラインを作って,データ変換やデータの品質管理を一通り試してみたいと思っています.
機械学習システムの構築に関しては,機械学習モデル作成のためのパイプラインや実験管理などを行いつつ,コードのテストやデータ・予測結果のモニタリングなどをできるようにしたいのと,Feast などのfeature store を試したりもしたいなと思っています.
現状では上記2つを構築していきたいと思ってますが,進めていく中で興味が湧いたものを適宜取り入れていきたいなと思っています.
おわりに
今回はプロジェクトを新しく始めたので,その紹介になります.ローカルからクラウドにデータ連携する部分については,既に作成しているので別途内容を紹介したいと思います.
試行錯誤しながら面白そうなものは色々と取り入れて進めて行きたいと思うので,もし面白いツールなどがあれば Twitter で教えて頂ければ嬉しいです.