gokart の検索結果:
…ーン中に取り組んだ「gokartキャッシュオブジェクトの検索性向上 」について簡単に紹介しつつ、エムスリーで働いてみた感想を綴ります。エムスリーのインターンに参加する未来のギークの参考になれば幸いです。 はじめに インターンに参加するまで インターンテーマ: gokartキャッシュオブジェクトの検索性向上 gokartとは 課題: キャッシュの検索が難しい Objectにメタデータを付与して検索可能に Metadataをどう付与するか 新たな課題: パラメータ以外のコンテキス…
…機械学習パイプラインgokartに強力な型サポートを導入する チーム内linter We are hiring !! エンジニア採用ページはこちら カジュアル面談もお気軽にどうぞ インターンも常時募集しています 2024年に立ち上げられたAI・機械学習プロジェクト一覧 AIチームでは、テーマに沿ったA~Zの名前をプロダクトにつけており、2024年は、2024年1月に作られた川の名前シリーズ後半のV(Volga、コンテンツにLLMで識別的タグ付け)から始まり、酒の名前シリーズも…
こんにちは、最近Re:ゼロを人生で初めて見ましたVPoEの河合(@vaaaaanquish)です。もっと早く知りたかったです。 さて、エムスリーエンジニアリンググループでは、長らく新卒エンジニア採用を小さい規模で進めておりました。 2024年からは、その規模を少し拡大し、様々なイベントに出たりインターンを受け入れるなどしています。 本記事は、学生エンジニアの皆様から聞かれる事も多い内容をまとめ、エムスリーのエンジニア組織を知って頂く事を目的とするものです。 エムスリーのエンジ…
…用 第7位(同率) gokartへのmypy pluginの追加 第7位(同率) Kubernetesクラスター都合でのバッチの中断をリトライ回数にカウントしない 第6位 ある日突然BigQueryのdownloadが遅くなっていました。さてなぜでしょう? 第5位 gokartのlinterを追加 第4位 コード検索基盤を構築するためのインデックス作成フロー 第3位 Google Cloud ArtifactRegistryのクリーンアップ 第2位 TaskOnKartへ型を…
…しているOSSの中にgokartという機械学習パイプラインツールがあります。これはSpotify社が開発したluigiのラッパーとして開発されました。 github.com github.com gokartによってどのような課題が解決できるかはAdvent Calendar 2 日目で池嶋さんが書かれた記事に詳しく記載されていますので、ぜひご覧ください。 www.m3tech.blog ある日、AIチームでgokartを利用したプロダクトの実行時エラーを解析していたところ、…
…じめに TL;DR gokart とは gokart におけるキャッシュの仕組み gokart におけるパラメーターの再利用の仕組み luigi.Config の利用方法 run の中でグローバルなパラメーターとして呼び出す方法 具体的な設定例 課題 継承でパラメーターを共通化する方法 具体的な設定例 課題 gokart.SerializableParameter を利用したパラメーターの共通化 目指すべきパラメーターの共通化方法 gokart.SerializablePar…
…ラインツールである gokart を開発・活用しています。この記事では、このgokartをどのように使って課題を解決しているかについてもお伝えします。 なお、本記事はPyCon JP 2024で使用した資料を基に構成しています。 speakerdeck.com tl;dr gokartとは? 課題1: 実験した機械学習モデルの再現性がない 解決1: 全実験結果を設定とペアで保存 課題2: モデルのバージョン管理が面倒 解決2: モデルの作り方をパイプラインとして管理 課題3:…
…開発しているOSS「gokart」における型推論を厳密に行えるようにした、という内容の記事です。 OSSとして開発しているからこそ、より良い開発ツールとは何かを突き詰められている、そんな気がする1記事です。 www.m3tech.blog 遊びにこだわりのあるエンジニア Quine(クワイン)と呼ばれる、出力が元のソースコードと同じになるようにソースコードを書く、ギークカルチャーを体現した記事です。 しかもこの記事で作られたQuineは、出力が変化して動きます。 一体その情熱…
はじめに 前提となるマインドセット 具体的な Tips コードを読まずに理解する技術 とりあえず Clone する インタフェースで理解する テストコードで理解する 慣習名で理解する コードの詳細を理解する技術 デバッガを使う とりあえずサンプルコードを書いてみる 分からないなら聞く 初見コードに安全に変更を加える技術 インタフェースを明らかにする Stub としての実装を用意する Design Doc を書く テストを書く まとめ We are hiring !! エンジニ…
…ィスの北川さんによるgokartに型を導入する話でした。そちらも面白いので是非ご覧ください! www.m3tech.blog さて、冒頭でも紹介した通り、エムスリーでは京都・大阪、福岡でサテライトオフィスを開設しており、私が所属する福岡オフィスでも積極採用中です。 福岡オフィスでは、エムスリーとしての採用活動はもちろんのこと、福岡のソフトウェアエンジニア、MLエンジニア界隈も積極的に盛り上げていくべく、福岡でのイベントの参加はもちろん、主催もしていけたらなと思っております。 …
…Sとして公開しているgokartというPythonツールの型を強化した話について書きます。 Python3.5から型ヒントの機能が追加され、現在最新のPython3.13に至るまでに徐々に機能が追加されています。 最近はGILの無効化など高速化に関する話題が上りがちですが、その一方で型についても徐々に充実してきています。 このブログではPythonで利用可能な型について言及しながら、gokartに型を導入した話について書きます。 本ブログは次のブログの続きでもあるのですが、こ…
…・機械学習チームではgokartという機械学習パイプラインライブラリをよく使うのですが、その中でもバグを生みやすい機能は使用を避けたりしています。 こういった知見は、開発・運用上の障害を未然に防ぐものでもあるため、できるだけチームに浸透させたいですよね。 ベストプラクティスの浸透の取り組み ただ、前述の通りAI・機械学習チームでは各プロダクトを基本的に1人で開発していきます。 そのため、あるプロダクトで発見された知見はそのプロダクトの担当者、またそのレビュアに閉じてしまいがち…
…ています。 OSSのgokartや、cookiecutterテンプレートなど、素早くプロジェクトを立ち上げるためのテンプレートが整備されているため、似たような構成が取られることはありますが、プロダクトの性質や開発者の嗜好によって自由に技術選定することが推奨されています。 github.com github.com 私は前職ではどちらかというと「技術の標準化」を推奨する立場でした。技術選定に裁量を持たせすぎると知識が分散し、相互レビューが不可能になり、チームが成り立たなくなるん…
…タは、弊社が開発したgokartというPython製のタスクパイプラインツールで使用するためにダウンロードされます。 Pythonでテーブルデータを扱うといえばpandasが有名ですよね。弊社でも利用していますが、元々スプレッドシートに手入力していることもあり 欠損値はないか 想定外の数値や長過ぎるテキストデータになっていないか などの、データバリデーション面で不安が残ります。 そこで、去年AI・機械学習チームではgithub.comを導入し、データバリデーションを充実させま…
…ラインツールである gokart を対象とし、mypy plugin を用いてどのように型の課題を解消したかについて解説します。 対象読者としては、既に gokart を使ってくださっている方はもちろんですが、dataclass や Pydantic がどのように型を担保しているかについて興味がある方も想定しています。 github.com gokart について gokart における型の問題 クラス変数をハックするツールである mypy による型チェックする上での課題 m…
…のブログで、私たちはgokartを使ったMLパイプラインの効率化について掘り下げました。 具体的には、「すでに完了したタスクをスキップする」と「タスクの実行順序をできるだけランダムにする」という2つの戦略を紹介し、これによりworker間で重複するタスクの発生を減らす方法を提案しました。 www.m3tech.blog しかし、このアプローチにも限界がありました。 他workerで完了しているタスクは検知できるのですが、現在実行中のタスクを検知する方法がなく、結果的に重複して…
…工夫を紹介します。 gokartでバッチを記述している エムスリーのAIチームでは、パイプラインツールとしてgokartを採用しています。 これは、エムスリーメンバーを中心にOSSで開発が進められている、Pythonのパイプラインライブラリです。 Taskというクラスの単位で処理を記述し、その依存関係を定義することで、依存を解決しながら順に実行していってくれるという特徴を持っています。 github.com AIチームのベースとなるライブラリの1つなので、当ブログでも度々取り…
…・機械学習チームでもgokartというパイプラインライブラリを利用しています。 しかし、実際に計算する部分は数時間かかるものがあり、その実行中にEvictionが走るとそれまでに計算した状態ごと消えてしまいます。 Evictionによって学習の途中状態が消される Evictionで困るのはバッチだけではありません。 例えば、レプリカ数が1しかないAPIなどは別のNodeで新たに起動している間にはサービスの断続が出てしまいます。 この様にEvictionを回避したい場合は色々あ…
…しています。 今回はgokartの分散並列化ライブラリkannonをエムスリーの実プロダクトに組み込んだ取り組みについて紹介します。結果として、社内のとあるプロダクトのIntegration TestのJobを7時間30分から2時間20分に短縮するという、約3.2倍の高速化を達成できました!それまでに生じた苦労、kannonへの追加機能などについてお話しします。 kannonとは? kannonとは、M3が主体となって開発しているOSSのデータパイプラインライブラリgokar…
…構成 2018年: gokart爆誕 gokart gokart用社内ライブラリ 2019年: GKEへの転換 GKE (Google Kubernetes Engine) GKEでのバッチ監視 2020年: GKE改善いろいろ min: 0 オートスケールの積極利用 Workload Identity エラーログの通知 2021年: SLA監視 「エラー発生」の監視から「正常に完了したかどうか」の監視へ Spot VM Berglas Secret Controller 2…
…Opsエンジニア] gokartのMLパイプラインをKubernetesで並列分散実行できるライブラリkannonを作った話 [MLOpsエンジニア] AI・機械学習チームでのインターンでBigQueryのローカルテスト基盤を作った話 [PdM] エムスリーインターン体験記(プロダクトマネージャー編) [ビジネス] エンジニア内定者がビジネスサイドでインターンしてみて おわりに 本記事では、エムスリーのインターンについてご紹介させていただきました。 これからくる秋冬の季節に立…
…ます。kannonはgokartという機械学習向けパイプラインライブラリを分散並列化して実行できるようにするライブラリです。kannonは2023年3月に私が参加したAI・機械学習チームでのインターンで開発され、OSSとして現在も開発を続けています。 なお、本記事は「gokartで爆速開発!MLOps勉強会」の発表をもとに加筆したものになります。 www.m3tech.blog 発表資料も公開していますので、そちらも是非ご参照ください。 speakerdeck.com また、…
…そのうちのほとんどがgokartという機械学習向けパイプラインライブラリを使って実装されています。 gokartはとてもMLプロダクトの開発に便利な反面、gokartを100%活用する方法が確立、普及しているとはいえません。 そこで、本記事では、実際にエムスリーで活用しているTipsなどを紹介していこうと思います。 これを機にどんどんgokartの知見がネット上に溢れるようになっていければ嬉しいです。 なお、本記事は「gokartで爆速開発!MLOps勉強会」の発表をもとに加…
…はパイプラインツールgokartでも発生します。 gokartでは実行結果をファイルに書き込みますが、大量のタスクを並列処理すると発生し得ます。 この記事ではgokartでファイル競合をどのように防いでいるかを紹介します。 内容は「gokartで爆速開発! MLOps勉強会」の発表に加筆したものです。 www.m3tech.blog gokartとは gokartでファイル競合が起こる仕組み 既存のキャッシュロック機能とその問題点 改善版キャッシュロック機能を実装 キャッシュ…
…n x エムスリー】gokartで爆速開発!MLOps勉強会」を開催しました! 今回のイベントはハイブリッド開催で、オフラインでは満員の30人、オンラインでは101人もの方に参加いただきました。参加いただいた皆様ありがとうございます。 おかげさまで当日は懇親会も含め大盛り上がりで、タイトルの通り「gokartで爆速開発!」するための知見で溢れた勉強会になっていたと思います。 本記事では、参加できなかった方のために当日の様子をお届けしたいと思います。 sansan.connpa…
…Opsエンジニア] gokartのMLパイプラインをKubernetesで並列分散実行できるライブラリkannonを作った話 [MLOpsエンジニア] AI・機械学習チームでのインターンでBigQueryのローカルテスト基盤を作った話 [PdM] エムスリーインターン体験記(プロダクトマネージャー編) [ビジネス] エンジニア内定者がビジネスサイドでインターンしてみて タイトルからも伝わるかと思いますが、エムスリーエンジニアリンググループのインターンでは新サービスの開発からO…
…no) です。最近はgokartを使ったパイプライン開発に勤しんでます。 皆さんはgokartというものをご存知でしょうか。この記事を開く人は知ってそうですが、gokartとはエムスリーがメンテナンスしている機械学習パイプラインOSSです。もしgokartのことを知らなかった人が居たらこのgokartの記事を読んでください。 エムスリー内ではこれを全面的に利用して開発を行なっていますが、その知見は社内に閉じてるものも多いです。そこでエムスリー内でどんな感じでgokartを使っ…
…リー発のOSSであるgokartの並列分散実行に取り組んでくれた小栗さんなどがインターンの様子を伝えてくれています。 www.m3tech.blog www.m3tech.blog エンジニアリング寄りの課題はお二人の記事に譲るとして、MLはどういうことするの? そもそもどういう流れなの? という方が多いかと思います。 そこで今回は、ML課題におけるインターンの流れを紹介し、京都大学大学院の唐井さんが取り組んでくれた「ユーザーの投稿確認システムの改善」というテーマを例にインタ…
…kiecutter-gokart 上記コマンドで、cookiecutterからプロジェクトを作る時と同じように、templateの値についての質問されるので、プロジェクトを作った時と同じ値を回答します。そうすると下記のようにcruft.jsonが作成されます。 { "template": "https://github.com/m3dev/cookiecutter-gokart", "commit": "25b2ea60fd1b3145908b750fc0e42e130913…
… Goa 実験管理 gokart*3, kannon*4 便利ツール cookiecutter, kj*5 機械学習ライブラリ LightGBM, PyTorch, Implicit CI GitLabCI 開発言語について AIチームではAI開発とAPI開発をセットでやることが多いです。そのためAI用のPythonとAPI用のGoのセットがメイン言語となってます。ただ、これで作らなくてはいけないということはなくRustを使ったAPI等もあり、要件を満たすなら色んな言語を使う…