週報 2023/04/16~ 2023/04/22
Input
Books
- Data Quality Fundamentals
- 読了。後半はデータ基盤チームの運用的話だったり組織的な話が多かったので飛ばし飛ばし読んだ。
- 一通りのpracticeはインプットできた感じで、読んでよかった。
- The Staff Engineer's Path
Suburi
- Data Quality系のOSSたち。読んでいたData Quality Fundamentalsより。
- Great Expectations
- dbt Developer Hub
- Home | Soda Documentation
- 特に全社的な基盤を使わないのであれば、Airflowに実装されている既存のOperatorでも十分な気がした。
- dbtはTransformationしつつテストも行ってくれるので良さそうな気がした。
- GitHub - agnivade/levenshtein: Go implementation to calculate Levenshtein Distance.
Blogs
- What Being a Staff Developer Means at Shopify
- 今週のPodcastでも紹介したブログ
- Staff Developerに興味がなくても開発者なら誰しも参考になるのではと思った。
- lyft2vec — Embeddings at Lyft
- Lyftにおけるembedding活用事例
- GitHub - facebookresearch/PyTorch-BigGraph: Generate embeddings from large-scale graph-structured data. を使っているらしい。
- Data quality and Airflow | Astronomer Documentation
- Google Cloud BigQuery Operators — apache-airflow-providers-google Documentation:
- BigQuery向けのもちゃんとある
- Graph Neural Network for Recommendations
- The WEB Conference' 18のチュートリアル
- ナレッジグラフを使った解釈可能な推薦システム | メルカリエンジニアリング
- ソフトウェアエンジニアとして心がけていること|Satoshi Nakagawa|note
- 共感できる内容が多かった。一方でプロダクトを作り続けつつランクを上げていくのはプラットフォームサイドに行くのと比較すると難しいなあなどと思った。
Life
- ロックマンエグゼアドバンスドコレクション
- 少年時代が全部詰まっているよ。。
- 懐かしみつつやってます。
- 【miibo】GPTを活用した会話AI構築プラットフォームを開発する新会社を設立: kunugi-san おめでとう!!
- 久保さんは僕を許さない:全巻読んだ
- アニメ化も:「久保さんは僕を許さない」アニメ公式サイト
週報 2023/04/02~ 2023/04/15
先週は書くことができなかったので二週間分
Input
Books
- Data Quality Fundamentals
- Chap 1~3
- Chap 2にてdata quality metricsとして代表的なものが取り上げられていて参考になる。
- data qualityを軸にしつつそれを取り巻く周辺分野のトレンド等もキャッチアップできて助かる。
Papers
- Learning To Rank Diversely
- Airbnbの検索機能において、多様性も考慮しつつLtRする方法を提案した論文
Blogs
- クックパッドの toB 向け事業における ChatGPT API の活用事例紹介 - クックパッド開発者ブログ
- Stanford Seminar: Peeking at A/B Tests - Why It Matters and What to Do About It
Suburi
- SentenceTransformers
- sentenceをinputとして、embeddingに変換してくれたり様々なタスクを解くことができる
- multi lingalの学習済みモデルも提供されている
Life
- 個別株投資の方針 - しふみんの日記
- この記事を読んで任天堂株を買った。
- 先週は友人の結婚式に出席したこともあったり、少し仕事が忙しかったりした。疲れている時ほど早く休まないといけないのに生活を乱してしまって負のスパイラルにハマってしまうのはなんでなのだろうか。。
週報 2023/03/26~ 2023/04/01
Input
Books
- 単体テストの考え方/使い方
- 速読速聴・英単語Daily1500
- 今週も進めた。
- Speakの発話量がやはりリアル英会話には敵わない気がして、試しにnative campも始めてみた。
4月に入った。3月の目標にしていた単体テスト本とKaggle本はとりあえず読み切ることができた。 4月は以下の本を中心に読む予定
- Data Quality Fundamentals
- Dependency Injection Principles, Practices, and Patterns
- The Staff Engineer's Path
全部英語本なので読み切れるか怪しい。。
Blogs
Reading Listめっちゃ溜まっていたので消化
- データ基盤へのdbtとCI/CDの導入を内定者がやってみた! | | AI tech studio
- 機械学習でコンバージョンにつながるキーワードを予測する(学習データ不足でも推論可能にする工夫) - Yahoo! JAPAN Tech Blog
- ABテストが難しい場合の施策効果の評価・推定方法 - Yahoo! JAPAN Tech Blog
- Choosing Sequential Testing Framework — Comparisons and Discussions - Spotify Engineering : Spotify Engineering
- 文中でも取り上げられている通り、Sequential testingに関する実践的な記事は少ないし文献も10~20年前のものが多い印象。文中で示されているreferenceは追って見たい。
- 機械学習APIを用いた図面解析ETL基盤 - CADDi Tech Blog
- MLOps のこれまでとこれから - Speaker Deck
- 最近話題になった大規模言語モデルまとめ|npaka|note
- 機械学習で違和感あるリコメンデーションを減らしたい!「正しい」以外の人の感覚を反映してAI性能を改善 - Yahoo! JAPAN Tech Blog
- 会社訪問アプリ「Wantedly Visit」における 人・仕事・会社の関係性を考慮した相互推薦システム - Speaker Deck
- 手元で動く軽量の大規模言語モデルを日本語でファインチューニングしてみました(Alpaca-LoRA)|masa_kazama|note
- ChatGPT Bot を new Slack Platform で動かしてみた - LayerX エンジニアブログ
- Web 検索とデータマイニングのトップカンファレンス WSDM2023 で気になった研究 | hurutoriya
- オンライン雑談により、新たな繋がりを作る機会を意識的に取り戻したお話 | hurutoriya
- ChatGPT Retrieval Pluginに任意のベクトル検索エンジンProviderを実装する - エムスリーテックブログ
- #3-2 顧客理解・ユーザ理解にサヨナラを(UX戦略の教科書)|小城 崇|note
- ランク学習系:どちらもわかりやすかったです。
日本語の記事が中心。英語の記事もこのくらいのペースでサクサク読めるようになると良いのだが。。
Life
- bakune makura を導入してみたがかなり良い。付属の測定キットで測って見たところ、自分は今まで使っていた枕よりも低い高さのものが合っているらしいことがわかり、実際熟睡度合いが変わった感覚もある。合わない高さの枕で長い時間寝続けるのは睡眠の質に悪影響を与えるというのは自明だった気がする。安くはないけどおすすめできる。マットレス も気になっている。
- 近く友人の結婚式があるので社会人になって初めてスーツを購入した。店員さんの安心感がすごかった。レンタルでもよかったけど、さすがに一着くらい持っておいた方がいいかなと思い購入した。今更ながら、Fabric Tokyo も試してみたかった。(後から知った)今の仕事を続けていく上ではスーツが必要になる機会は本当にないので今後利用することはなさそうだが。。
- 子供が補助輪なしの自転車デビューをした。(と言いつつも僕が支えつつ)まだバランスを取るのが難しいようで、何度か手を離してみたけど自走できる感じではなかった。意外と支える姿勢が辛くて疲れた。。
週報 2023/03/19 ~ 2023/03/25
Input
Books
- 単体テストの考え方/使い方
- Kaggleに挑む深層学習プログラミングの極意
- 読了
- 今は「これが普通」という知識を得られたのでよかった。kaggleにおいて限定的に用いられる手法が分離して書かれていたのも個人的にわかりやすかった。
- 速読速聴・英単語Daily1500
Blogs
読みたい記事はまだまだあるけどあんまりちゃんと時間をとって読めてない。。
Suburi
- pantsbuild
- AI 組織のモノレポ紹介 より
- よく目にするので少し触ってみた。
- あんまりビルドツールのありがたみを感じる場面に遭遇してこなかったのでいまだに身に染みてはわかってない気がする。
- bazelも触ってみたい。
- tox
- 複数のpython versionについて仮想環境をいい感じに立ててくれて、テストを実行してくれる。
- ライブラリの開発ではとても便利だと思った。自作のものにも導入を検討する予定。
Life
- 家の近くの桜並木が満開を迎えた。残念ながら満開を楽しめるタイミングでは雨が続いている。朝にはまだ蕾も混じっていたのに、夕方見てみると既に花びらが落ちて葉が生え始めていたりして、ピークというのは本当に一瞬なんだなと思ったりした。また来年。
- JINS MEMEを導入してみた。メガネにセンサーが入っていて、姿勢や座っている状態、集中状態などを測定してくれる。感想としては、姿勢のモニタリングがとても良いと思った。一方使い勝手は個人的にはそこまで良くなくて、フル充電にとても時間がかかったり、そもそもずっとメガネかけておくのが辛かったりと課題がある。姿勢モニタリングが良いことはわかったので代替案を考えていきたい。
週報 2023/03/12 ~ 2023/03/18
先週書いた通り体調を崩してしまい、今週週末になってやっと体調が万全の状態に戻ってきた。 体調を崩すと健康の尊さが身にしみる。
Input
Books
- 単体テストの考え方/使い方
- Chap5を読んでいる途中
- モックとスタブの違いの話があったけど、まだあんまり理解できている気がしない。
- 同文脈で出てきた考え方:CommandQuerySeparation
- テストを壊れやすくしないためには実装の詳細までテストしないのが重要で、そのためにはできる限り実装の詳細を隠蔽すべきというような趣旨のことも書かれていた。
- 軽微な変更を行うたびにテストコードも少し変更しなければならないのは危険信号なんだなと思ったりした。
- Kaggleに挑む深層学習プログラミングの極意
- 引き続きChap5を進めている。
- 間取りの方程式
- 読了
- ソフトウェアエンジニア、家を建てる - ここぽんのーと より
- 元々の期待値としては注文住宅を建てるのではなくてマンションを購入する前提で、良い間取りや悪い間取りについての普遍的な知識を得ることだったけど、あんまりそういう情報は書かれていなかった。どちらかというと注文住宅とか建築家の方向けかな?
Blogs
- base64 - What is base 64 encoding used for? - Stack Overflow
- KubernetesにおけるPod削除について
- Is it Safe to Delete K8s Pods in Traffic? | Better Programming
- Pod Lifecycle | Kubernetes
- ふと
kubectl delete pod
の挙動が気になったので調べた。
- Deconstructing the Monolith
- Shopifyでmodular monolithを導入した話
- Googleが公開した Service Weaverの話もあり、modular monolithが気になってる。
- 誰も手をつけたがらない仕事を拾う親切心とその危うさ | Q by Livesense
- いい読み物だった。文章の中だと、落ちているボールを拾う系の仕事は評価されづらいことが前提になっているように感じたけどそれは組織やチームにかなり依存しそうだと思った。
- 落ちているボールを見つけたら、一度チームごととして扱えるように顕在化させるというのは良いプラクティスだと思った。
- どうでもいいが、「落ちているボールを拾う」という比喩はどのくらいの人が共感できるんだろう?自分は球技系の部活動をやっていたから共感できるけど、経験ない人だとどう思うんだろうか。。
- 大学院へ進学します。|ゆいたん|note
- AI 組織のモノレポ紹介 - CADDi Tech Blog
Suburi
自作ツールがGoogle Colab上から使いづらかったのでバグ修正を含めて軽微なアップデートを行った。
Google ColabのPythonバージョンが3.8から3.9に上がったようで、これでpip install
だけで使えるようになった。
https://pepy.tech/project/casual-inference?versions=0.*
この数値が正しければそこそこ使われているらしい。まだ一人もユーザーの人と会ったことないけど実際どうなのか。。
Life
- 家の近くに銀だこができるらしく、気分が上がる。
- 2次流通において、最近のポケモンカードの値上がりが激しすぎる。予約以外だと新弾はほとんど買えないんじゃないかというくらいどこに行っても目にすることがない。友達をワイワイやっているような小学生〜中学生くらいの人たちはどうやって入手しているんだろうか。。
週報 2023/03/05 ~ 2023/03/11
Input
Books
- 単体テストの考え方/使い方
- Chap2 ~ 4
- Chap4の良い単体テストを構成する四本の柱の話が勉強になった。
- Kaggleに挑む深層学習プログラミングの極意
- Chap5 に入った。
Blogs
- Introducing Service Weaver: A Framework for Writing Distributed Applications | Google Open Source Blog
- TableDrivenTests
- mapでテストケースを管理するの良さそう
- https://twitter.com/yaginuuun/status/1632310225037578242?s=20
- obsidianを使い始めたので使い方を調べていた。
Life
- Mac miniが届いたのでセットアップをやっていた。
- 今週は途中から風邪でダウンしていた。。
Python環境のセットアップ(Poetry + pyenv, M2 Mac)
最近 M2 Mac mini を買ったのでセットアップをしている。(元々は Intel チップ搭載のMBA) 今まで通り行かないところがいくつかあったけど、Python周りのセットアップでもつまづいたのでメモを残しておく。(OSの問題かも?)
最近はPython周りの依存関係管理は Poetry がよく使われている印象で、自分も大抵の場合使っている。
普通に公式のinstructionに従ってコマンドを実行すると以下のエラーを出して失敗した。
Exception: This build of python cannot create venvs without using symlinks
調べてみると、類似の質問を見つけた。Homebrew経由でインストールするか、pyenvでpythonをインストールしてからだとうまくいくらしい。
自分はできれば公式のinstructionに従いたいと思ったのでpyenvを使いつつ再度トライすることにした。pyenvはpythonの複数versionを切り替えるのにもよく使われているのでそれも丁度良いと思った。 基本的に、上の質問に対する回答を真似れば解決する。
pyenvはbrew経由でインストールできる。(それが推奨されているようだ)
brew install pyenv
shellによってセットアップ方法が違うのでREADMEの手順に沿って行う。
その後適当なversionのpythonをpyenv経由でインストールし、グローバルに設定する。
pyenv install <version> pyenv global <version>
後はPoetryの推奨インストール方法で無事インストールを完了できた。 もしかしたらもっと適切な方法があるかもしれないのでそこまで調べていないことを最後にまとめておく。
- システムにはデフォルトでPython3.9がインストールされていた。一方で
python
ではなくpython3
でしか呼び出せないようだったので、python
で呼び出せるようにするだけで問題は解決するかもしれない。 - Poetryではpython versionを切り替える機能が提供されている。(
poetry env use
)なので敢えてpyenvを使う理由は実はないのかもしれない。