gokart の検索結果:
…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等もあり、要件を満たすなら色んな言語を使う…
…プラインOSSであるgokart をKubernetes上で高速にかつ簡単に実行できるようになるライブラリであるkannon('cannon'と同じ発音!)をゼロから実装し、OSSとして公開しました。 github.com この記事ではkannonの技術的な解説、インターンに参加した感想をお伝えします! gokartの概要 gokartの抱えていた課題 シングルスレッドでの逐次実行により実行時間が長くなってしまう GKEのリソースを効率的に使えない kannonの概要 kan…
…3mushroom(gokart Task集)とm3downloader(BQ等のデータのETLライブラリ) という2つのPythonのライブラリを作っており、各PJ -> m3mushroom -> m3downloader -> BQのtableという依存があるのですが、新しいデータを使う際に2つのライブラリのリリースをする必要があり、MRとレビューが分散して見にくいという問題がありました。 このMRでは、ライブラリ同士のリリースの独立性は保ったまま(2つのライブラリのま…
…パイプラインツール・gokartを使うことで解消しています。gokartを使うことで、変更のあった部分だけコードを実行できます。コメントの追加のような軽微な修正の場合、これまでのコードとほとんど重複するため、ほとんどのコードが実行されず、過去のキャッシュを流用できます。これにより、非常に短時間でモデル作成を完了できます。 gokartの詳しい説明は過去の当ブログをご参照ください。 www.m3tech.blog www.m3tech.blog まとめ この記事では前日モデルに…
…インにPythonのgokartというモジュールを全面的に利用しており、基本的に何かを実装するときはPythonで開発されることが多いです。gokartに現行のデータ処理ロジックが乗っている以上、全てをRustで書き換えるのはかなりの大工事です。そこでロジック部分だけRustで書き直して高速化できないかと考えました。 そして調べてみるとDaachorseのPythonバインディング公開されていたので、こちらを利用することにしました。 github.com python-daa…
…製のライブラリであるgokartと組み合わせて使うことによって、結果をキャッシュして使えます。 これはスキャン量課金であるBigQueryとの相性が良く、お財布に優しく使うことができます。 そして、チーム内でよく使うクエリについてはPythonライブラリとして社内PyPiでライブラリとして使用しています。 このライブラリの利点としては 同じようなクエリを何度も書かなくて良い 修正時に一箇所の変更で済む 改善施策をまとめて出来る ということが挙げられます。 しかし、いくつかの問…
…問題に対処するため、gokartというPython向けパイプラインライブラリを開発し活用しています。これにより、特徴量作成からモデル学習・推論までを一気通貫に実行できるようになり、特徴量データファイルとモデルファイルの対応関係などを意識する必要がなくなっています。 github.com gokartはエムスリーのメンバーを中心に開発が進められているパイプラインライブラリです。luigiのラッパーライブラリですが、luigiとの大きな差分として中間データをキャッシュするという点…
…社謹製のツールであるgokartで動いています。 2021/11現在CronJobの数を数えてみたところ88個のCronJobがありました。 AI・機械学習チームは現在14人ほどのチームなので、単純計算で一人6個のJobを監視しないといけません。 恐ろしいことですね。 この事態をなんとか改善しようと、チーム内でrunbook委員会が立ち上がりそれぞれのプロダクトのrunbookを充実や監視体制の強化することにしました。1 このrunbookの取り組みについてはまた何かの形でア…
…Sのうちの1つであるgokartのversion 1.0.0をリリースする運びとなりました。 本記事は、これまでのgokartの軌跡と成果を紹介しつつ、内情を含めながら、gokart 1.0.0に込めた想いを綴るものです。 はじめに gokartとは gokart 1.0.0 ドキュメントの拡充とロゴの追加 gokart.build gokartメジャーバージョンリリースに寄せて おわりに gokartとは gokartは、元チームリーダーであった西場さん@m_nishiba…
…タパイプライン構築にgokartというツールを使用しています。今回はこのgokartで発生していたキャッシュ競合を解消した話について紹介します。 gokart gokartとは gokartというのはAIチームが中心に開発しているデータパイプライン構築のためのツールで、Spotify社の開発するパイプラインツールluigiのwrapperです。S3やGCSといったクラウドストレージとのデータ入出力をサポートしたり、中間ファイルをキャッシュとして保存することで実験を再現をしやす…
…加したOSSである、Gokartを利用しています。 github.com Gokartでは、処理をTaskという単位に分け、Taskごとに、その処理結果をGCSなどのオブジェクトストレージに出力しています。 こうすることで、リカバリなどの際にワークフローの途中からジョブを再開できたり、debug時の調査などでタスクの出力を確認できるメリットがあります。 一方で、この記事 などで述べられているように、途中結果のデータが嵩張る問題が出てきています。 実際、Gokartキャッシュを…
…ームで開発している gokart は機械学習のプロダクトを扱うPipelineとしてはとても魅力的なキャッシュ機構を備えており、Task間の依存関係を記述することで "巨大な行列を生成するTask自体をキャッシュする" ことができるため、入力の同一性の判定問題をうまく回避しています。 Kaggleでもgokartが使えればよいのですが、gokartどころかluigiさえもKaggle notebookのDocker imageには入っていないため、gokart (+ luig…
…プラインの選定としてgokartはどうだったか おわりに We are hiring !! コンペティション概要 青空文庫に登録されている10作家の作品、計4732作品の中から芥川龍之介の作品を機械学習で見つけるものです。 答えとなるデータは青空文庫で公開されている訳ですが、こちらを利用するのはもちろんルール上で禁止されています。 データ内には以下のような文章データと著者が芥川龍之介であるか否かの情報が含まれている、シンプルな2値分類の問題です。 writing_id,bod…
…pd import gokart import luigi class MakePairedData(gokart.TaskOnKart): task_namespace = 'novelty_enhanced_bpr' click_task = gokart.TaskInstanceParameter() positive_sample_weight: int = luigi.IntParameter() distance_threshold: float = luigi.…
…rapperである「gokart」を利用した開発、運用を行なっています。 本記事は、エムスリーとluigiの繋がりと、私が作成したluigiのshell補完をサポートするmodule「luigi-completion」の概要、その使い方について示すものです。 luigi.readthedocs.ioより luigiロゴ はじめに luigi_completion 処理の中身 おわりに We are hiring ! はじめに 前述の通り、エムスリーAIチームでは、機械学習プロ…
…nライブラリである「gokart」の説明と、その周辺ライブラリとなる「cookiecutter-gokart」「thunderbolt」「redshells」について紹介したいと思います。よろしくお願いします。 はじめに Pipeline化のメリット・デメリット Pipeline化のメリット Pipeline化のデメリット gokart 共通化のための出力ファイル形式の制約と拡張 強力かつ簡易な再現性のためのデータ保持 クラウドサービスやSlack通知のサポート gokart…
…だ整備中なのですが、今まで業務で使っていた徐々に公開していく予定です。今後はOSSとして開発していく部分を増やしていく予定です。 実務で使っているニュースの推薦システム等を公開したら面白いのでは?と思っています。 gokart ... luigiをラップし、タスクの定義を簡単にしている。 redshells ... gokartを使って様々なタスクが定義されている。 まぁこういうことですね。 We are hiring 機械学習エンジニアを募集中です! jobs.m3.com