1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

DevelopersIO 2023に途中から参加したら最初から参加すればよかったと後悔した話

Posted at

クラスメソッド主催のカンファレンスイベント、DevelopersIO 2023に行ってきました。
Twitterでワイワイしているのを見て行きたくなったので、当日券を買って2日目の途中から参加!
やっぱりリアル開催っていいですね。周りのエンジニアさんに親近感を感じたり、セッション中の反応で「そこやっぱり気になるよね!」ってなったり。
1日目から参加して色々な話を聞けばよかったなあ、と後悔しました。

自分はセッション3つと懇親会に参加させてもらいました。
以下、
自分の理解が怪しいところは青色
感想は赤色
で記載します。

セッション:生成AIのことちゃんと理解してますか?

感想

正直、途中から分からなくなった!…んですけど、自分はどこが分からないかというのがちょっと分かったので、結果的によかったです。
Attentionという概念を自分はあんまり理解していないんだな、みたいな。タイトルの問いかけの通りですね…
ここで聞いたことが自分にとって直接役に立つということはないんですが、生成AIの特性をよく理解したエンジニアになるための道筋や障害がうっすらと見えたかなあ、と思いました。

前半

  • 深層学習とTransformerの簡単な解説
    • Transformerのポイントは:これまでのトークンから一番もっともらしい次のトークンを予測する!
    • Transformerもベースはこれまでの機械学習と大きく変わらない
      session1.jpg
  • 特徴量と表現学習
    • CNNでは浅い層でエッジを抽出、層が深くなるごとに複合的なパーツを認識していく
    • 中間層は転移学習に利用できる
    • 特徴量を低次元に圧縮する:Autoencoder、内部表現によるEmbedding
  • 自然言語も階層構造
    • 例:「頭が赤い魚を食べる猫」
    • 一意に決まるわけではない(自分の中での常識ではこれの正解が分からない…)

後半

  • LLMを使いこなしていくためのポイント
    • End to Endだけでものごとを考えない
      • AI(に限らずあらゆるツール)はそれ単体ですべてをやってくれるわけではない
    • 業務フローを考える
      • AIをどこにどのように組み込むのが一番いいのか?を考える!
      • ここがアイディアの見せどころ!
    • インターフェースとしての自然言語と制御
      • 特に入力について、すべての情報を制御できないことに注意
        • 入力フォームのように必須の入力項目や選択式の入力項目を設けられない

セッション:「コードでデータ分析に関わる指標を管理できる"Semantic Layer"、dbtとLookerで何が違うの?」あなたのこの疑問、解消します

感想

このセッションは難しかった!「攻めたタイトルだけどきっとSemantic Layerの初歩的な解説が中心になるんだろうなー」と舐めた考えで参加したら、初歩的な解説のスライドはすごい勢いで進んでいったので死ぬかと思いました。
とはいえ説明の端々からSemantic Layerの重要性が伝わってきて、Lookerを使っているチームは既にこういう世界で仕事しているんだな、と感心しました。
dbtとLookerでそれぞれの立ち位置に起因する違いがあるというのもちょっとだけ分かった気がする!
ツールの完成度の面ではまだまだ発展途上なのかな。今のうちに、これからはSemantic Layerが重要!という共通認識を社内で広めていきたい…そのためにはまず自分がもっと理解せねば。

自分に前提知識が不足していてその場では何が何やらという感じでしたが、自宅に帰ってから以下の記事を読んだら、Semantic Layerという概念はかなり理解できました。多分。

Semantic Layerとは

  • Semantic Layerとは
    • ビジネス指標の定義を統制できる
      • 例えば…30歳以上ってAGE>=30?AGE>30?
    • YAMLベースのコードで定義するのがスタンダード。コードは製品ごとに固有
      session2.jpg
  • Lookerでは…
    • LookerはBIツール
    • LookMLというコードで定義することでSemantic Layerを扱える
  • dbtとは
    • データ変換に特化したサービス。自動テストやドキュメント化もできる
    • dbt Semantic Layerという機能がリリースされた!
    • さらにOSSのSemantic LayerであるMetricFlowを買収して、現在は統合中
      • 統合前のものをこの記事では旧バージョンと記載
  • 比較の前提
    • Looker:23.10
    • dbt:2023年6月時点のドキュメント

各観点での比較

  • Semantic Layerに関する用語
    • Looker
      • Dimension:分析の軸
      • Measure:集計指標
      • View:DimensionとMeasureをまとめたもの
      • Explore:単一View、あるいはJOINする複数View
      • Model:Exploreの上位オブジェクト
    • dbt
      • dimension:分析の軸
      • measure:集計指標
      • semantic_models:LookerにおけるView
      • entities:semantic_modelsを結合するときに使うキー
      • metrics:エンドユーザが参照する指標
  • 指標の参照方法
    • Looker
      • 事前に定義済みのmetricsとdimenisionsを参照する
    • dbt
      • 事前に定義済みのmetricsとdimenisionsを参照する
    • オプショナルな参照方法もあるがどちらも同じ
  • クエリの最適化
    • Looker
      • Symmetric Aggregates:fan-outを防ぐためにクエリを都度書き換えてくれる(すごい)
      • Aggregate Awareness:参照するテーブルを動的に切り替えてくれる(すごい)
    • dbt
      • 最低限のsemantic_modelsを結合する
      • 組合せがある場合は結合しない
  • キャッシュ
    • Looker
      • キャッシュがある。キャッシュの制御もLookMLで!
    • dbt
      • 今後開発予定
  • WINDOW関数
    • Looker
      • Derived Tableを使う必要がある
      • 対象となるデータを動的に変更したいときはテンプレートフィルター
    • dbt
      • 旧バージョンに存在したSecondary calculationsが再導入される予定
  • 連携可能なBIツール
    • Looker
      • Power BIやGoogle Spreadsheetで対応
      • Tableau、ThoughtSpotが対応予定
      • ウェブサイト埋め込みで社外に公開できるのが強み!
    • dbt
      • 未定。今年の後半に情報公開予定!
      • 旧バージョンではLightdash、Preset、…
      • Tableauから接続できるがカスタムクエリが必須
  • データカタログ
    • Looker
      • Atlan、Secoda、OpenMetadata、…などの第三世代データカタログがそれぞれ対応
    • dbt
      • ネイティブ接続できるものはまだない
      • 旧バージョンではSecoda
        • metricsがどのように導出されるのかがそのまま登録されていた(強い)
  • その他
    • Looker
      • 行レベルセキュリティ
      • 列レベルセキュリティ
    • dbt
      • 変換からSemantic Layerまでを一貫して開発できる(超重要)
        • 例えば、metricがどのように導出されるのかを変換まで遡ってリネージとして表示できる(超すごい)

どう選定するか?

  • 既存のデータ基盤との相性
    • 例えばdbt以外でデータモデリングしているのにdbtを導入するのは二度手間
    • BIツール観点では、連携手順、クエリパフォーマンス、開発ブランチをテストできるか
  • 未来のデータ基盤との相性(と期待)
    • データカタログ:データカタログでSemantic Layerと連携して何をしたいのか?
    • アプリのアーキテクチャを大きく変えなくても参照できるか?
    • 生成AIとの関係性:定義した指標を学習させることでより的確な情報を得られるようになるんじゃないか?
  • 焦らない!
    • Semantic Layerは導入して終わりではない。適切な定義とユーザへの浸透が必要

セッション:ITエンジニアこそ筋トレをやるべき理由を徹底解説!!(たまにGoogle Cloud)

このセッションの感想

ほぼ筋トレの話しかしていない。参加者からの質問も次々に出ていてすごい活発なセッションでした!
この肉体、説得力がすごい!自分も筋トレしようと思いました。
session3.jpg

筋トレについて

  • エンジニアと筋トレの関係性
    • 知識も筋肉もやればつく、継続が大事!
    • 知識も筋肉も効率的につけるためには根拠ある事実が必要
    • 筋トレを通じて体力がつく、筋肉を鍛えればポンプ効果で脳に血流を回せる!
  • "筋トレが最強のソリューションである"
  • 適度な運動による認知能力向上。実験では中強度で効果あり
    • その理由:BDNF
    • BDNFとは…脳にいい影響を与えるタンパク質
      • 神経細胞の成長を調整
      • 筋肉を動かす→カタプシン(マイオカインの一種)が分泌される→カタプシンがBDNFの放出を促す
      • 注意:BDNFが放出されるタイミングは個人差がある!
    • 運動強度ごとに「適度な運動」となる時間的な目安が存在する
      • 筋トレなら休みながら1時間、など
  • 心の強さ
    • 運動によりセロトニンとβエンドルフィンが分泌される
    • セロトニンが分泌されるにはその前駆体のトリプトファンを接種している必要があるので、食事も大事
      • アミノ酸スコア100のものを食べればいい。卵、チーズ、魚、牛肉、鶏肉、豚肉
  • 結論
    • まずは早歩き、あるいはスクワットからやろう!
    • やればやっただけ得になる

Google Cloudについて(一部抜粋)

  • 一つのグローバルIPで複数のリージョンにロードバランスできる(プレミアムティアのみ?)
  • 組織階層を理解しよう
    • ポリシーを組織階層内のどれかに割り当てる(組織ポリシー)
  • クラスメソッドのリセールを使うと3%オフ、さらにサポートが付いてくる!
  • 筋トレとGoogle Cloudの関係性はハイコンテクスト過ぎてわかりませんでした

QA

  • 食事が夜遅くなった場合は何を食べればいい?
    • 胃に食べ物があると睡眠の質に影響があるので、消化がいいものがいい。就寝2時間前までが望ましい
    • 例えばプロテインとうどん
    • 消化がいいものが必ずしも家にないと思う。そういうときは栄養を考えてタンパク質を含むものを
  • 腕や胸を大きくしたいんだけど
    • 腕立て伏せがオススメ!
    • 上腕二頭筋は二関節筋なのでこれを鍛えることで肩と腕の両方が大きくなる
  • 自重トレーニングはやっているけどジムは行くべき?
    • 無理に行かなくてもいい。行く目的はマシンを使うことなので安いところからでいい
    • 自重トレーニングは狙ったところに効かせるのが難しいが、マシンを使うとそれが簡単

その他

ログインボーナスです。ごちそうさまでした。
lunch.jpg

クラスメソッドさんのオフィス、いいところですね!
office.jpg

リアル開催の醍醐味、交流会!
なんとなくで参加したテーブルが楽しすぎてごくごく一部の人にしかご挨拶できませんでしたが、それはそれでよし!
社内チャットに誰も反応してくれない問題について盛り上がりました。いまふりかえってみると、なんて後ろ向きな話題だ…
banquet.jpg

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?