🗒️
24/08/05 ~ 24/08/11 Weekly Report
はじめに
この一週間に学んだ内容や私生活について、備忘録として残していこうと思います。
Input
Books
データエンジニアリングの基礎
1.7章 データ取り込み
この章では、データをソースシステムから取得し、ストレージに保存するプロセスを解説しています。バッチ処理とストリーミング処理、それぞれのデータ取り込み方法や考慮すべき点について説明していました。
- データ取り込みとは、ある場所から別の場所にデータを移動するプロセスのことである。特にデータエンジニアリングライフサイクルにおいては、ソースシステムからストレージにデータを移動することを指す。
- データ取り込みのプロセスを設計する際は、データ取り込みの頻度を決定する必要がある。取り込みプロセスには、バッチ、マイクロバッチ、リアルタイムがある。
- データエンジニアは、取り込みパイプラインを開発・管理する際に、上流(データ生産者)と下流(データ消費者)の両方の人々やシステムと協力する必要がある。
- データ取り込みは、セキュリティ、データ管理、DataOps、オーケストレーション、ソフトウェアエンジニアリングといった底流の影響を受ける。
全体として
8章 クエリ、データモデリング、変換
この章では、データを分析に利用しやすい形に変換する方法を解説しています。クエリ、データモデリング、変換といった概念、及び具体的な方法や注意点について説明していました。
- クエリ、データモデリング、変換を理解することで、生のデータ素材を下流の利害関係者が消費できるものに変えることができる。
- クエリはデータの分析に不可欠であり、さまざまな種類がある。OLTPクエリは高速なトランザクション処理に最適化されるが、OLAPクエリは複雑な分析に使用される。
- データモデリングとは、データと現実世界との関係を表すもの。組織のプロセス、定義、ワークフロー、ロジックを最適に反映するように、データを構造化し、標準化する。
- 変換とは、データモデルのロジックをクエリの結果に適用して、その結果を下流で消費しやすくすること。
- 変換とクエリの違いとして、変換はデータに対してビジネスロジックを適用して、下流の工程で利用しやすい形に変換するプロセスである一方、クエリはデータに対して問いかけを行い、必要な情報を抽出するプロセスを指す。
- 変換ステージは、データが変異し、ビジネスにとって有用なものに姿を変える場所であるため、セキュリティ、データ管理、オーケストレーション、ソフトウェアエンジニアリングといった底流の影響を大きく受ける。
Blogs
- Handling Feedback Loops in Recommender Systems — Deep Bayesian Bandits
- Building A Generative AI Platform
-
生成AIのシステム構築についてステップバイステップで説明されている。「機械学習システムデザイン」著者のChip Huen氏によるブログポスト。
余談だが、この方のブログ構成がシンプルかつ魅力的で引き込まれた(特にList100のページ)。やはり個人ブログを持つのもいいなと思えた。 -
Interpretable Machine Learning
機械学習の解釈性についてまとめられている学習サイト。各手法における概要説明から数式による理論を紹介しており、コーディングによる実装はない。この領域における深い理解が必要になった際に活用しよう。 -
Parse and chunk documents
VertexAI Searchにlayout parserという機能がGAされた。PDFやHTMLについて、リストやテーブルといったエレメントを検知することで、RAG 等の際の精度向上させることができる。DOCXも Previewで対応中とのこと。 -
Ranking APIを解説
Vertex AI Search の個別機能を API 経由で利用可能な Vertex AI APIs for RAG のうちの1つである、Ranking API の解説。正直、RAGの実装においてはAzureよりGoogle CloudやAWSの方が強くなってきている(機能面で)気がする。AzureはAI Searchがややこしくて苦手だ。 - Google Cloud に機械学習 API をデプロイするとき、Cloud Run と Vertex AI Endpoint のどちらを選ぶべきか?
-
RAG入門: 精度改善のための手法28選
RAGを構築する上での手法がよくまとまっている。
kaggle
Media
-
- 24/43まで完了
-
第二回関東kaggler会
もの凄く勉強になったと同時に、自分の力不足を強く感じた。日々研鑽を積み重ね、ここに登壇されている方々に負けないスキルを習得しよう。
kaggleで使うスキルは仕事に役立たないというのはよく聞くが、コンペで上位を修める方は総じてモデリングの深い知見を有しているので、キャリア的なスキル証明には役立つはず。学歴のバックグラウンドが乏しい私にとって重要なファクターとなりえる。
Insight
- データサイエンティストに求められるスキルとして、Linuxを使いこなせると幅が広がりそうだと感じた。クラウド環境で作業することが多いから、リモートコンピューティングなどスムーズに作業できることは強力な武器になると思うので、学ぶ必要があるなと感じた。学ぶことは尽きないな。
- 全体として、コンピュータサイエンスにおける包括的な知識を習得する必要があるのではないかと感じることが多い。データ分析手法を学ぶ場は多々あれど、システム操作、環境構築について深く学べる場はなかなかない印象だ。何かいい教材があればいいのだが。
- バックエンドの副業などできるのであれば、キャリア的には理想だと思う。関連するAWS系の資格を習得したら参画できたりしないかな。
- 最近、学ばないといけないと思い込んでることが多い。自分の中では未来に向けてざっくりとロードマップを引いているが、本当に目標を達成する上で必要なのか、優先度として高いのか吟味した上で学んでいく必要があると思った。できる限り学びのためにリソースは割いていくが限界はあるので、しっかりとキャリアを形成するために何をすべきか解像度高く進めていこう。
- 現職としても、明確な役割付けもなく、なんとなく「データサイエンティスト」として働いていることも課題だ。実際はアナリストやデータエンジニアに分けられるところも対応する形になっており、学習目標を定めることが難しい。事業会社や役割が絞られたポジションとしてキャリアを積んでいき強みとなる専門性を高めることが重要なのかもしれない。
- これからの仕事やキャリアとの向き合い方を考える
- インプットとアウトプットを繰り返し、自分のやってきたことを証明する
- より良いポジションに着き、キャリアとしての経験を積む
- キャリアを成長させるために成果を出す
- 成果を出すためには日頃のマインドセット、習慣が重要
- 個人のパフォーマンスは、これまでの経験、取組みによる帰結に過ぎない
- 1 ~ 3のサイクルを回していく
- 社内、社外におけて影響力のあるスキルと認知度を獲得する
- 自己学習の記録として、もっとGitHubを使っていく
- 学習サンプルコードやメモは一律GitHub上で管理する
- 書いたコードは使い捨てず記録として残しておく
Discussion