teamaya という個人プロジェクトをはじめてみた
Table of Contents
最近,データエンジニアリングと 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 で教えて欲しいです!