エムスリーテックブログ

エムスリー(m3)のエンジニア・開発メンバーによる技術ブログです

luigi の検索結果:

gokart 1.0.0 をリリースしました

…:Airflow, Luigi, Gokart, Metaflow, Kedro, PipelineX - Qiita 【gokart】Pipelineライブラリによる機械学習ワークフローの開発|はやぶさの技術ノート Luigiで行うパイプライン処理をより円滑に!gokartについて紹介 - Qiita gokartの運用と課題について - Speaker Deck また、今回ドキュメントを拡充し、チュートリアルも作成しましたので、そちらを見て頂く形でも良いかもしれません。 …

パイプラインツールgokartのキャッシュ競合を解消した話

…るパイプラインツールluigiのwrapperです。S3やGCSといったクラウドストレージとのデータ入出力をサポートしたり、中間ファイルをキャッシュとして保存することで実験を再現をしやすくしたりします。当ブログでは過去にも機械学習プロジェクト向けPipelineライブラリgokartを用いた開発と運用 - エムスリーテックブログ などで紹介されています。 Github上でOSSとして公開されており、AIチームのメンバーを中心に開発が進められています。 github.com g…

GCS bucketの利用量をSlackに通知する

…レームワークとして、Luigi をラップし便利機能を追加したOSSである、Gokartを利用しています。 github.com Gokartでは、処理をTaskという単位に分け、Taskごとに、その処理結果をGCSなどのオブジェクトストレージに出力しています。 こうすることで、リカバリなどの際にワークフローの途中からジョブを再開できたり、debug時の調査などでタスクの出力を確認できるメリットがあります。 一方で、この記事 などで述べられているように、途中結果のデータが嵩張る…

Kaggle "Mechanisms of Action (MoA) Prediction" に参加し4位に入賞した話

…gokartどころかluigiさえもKaggle notebookのDocker imageには入っていないため、gokart (+ luigi) の機能を一部参考に、入力に応じてキャッシュしてくれるデコレータを書いてみました。 lishmoa/src/utils/cache.py import time @Cache('./cache_dir') def process(param_a: int, param_b: str): time.sleep(5) return f'…

Nishika competitions 2nd solution

… library "luigi" redshells: GitHub - m3dev/redshells: Machine learning tasks which are used with data pipeline library "luigi" and its wrapper "gokart". gokartによって全てのパラメータと乱数シード値、CVの値の組み合わせを全て自動で保存、rerunを簡易に行えるようになっています。 また、redshellsがパイプライン…

推薦アイテムセットの多様性を考慮したBPR論文を実装・実験した

…rt 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.FloatParameter…

エムスリー Advent Calendar 2019 まとめ!

…イプラインライブラリluigiのshell補完ツールを作った 12/22 blue0513 業務を効率化するためにツールを自作する ~ Emacs と時々 Electron ~ 12/23 ma2ge サーバサイドアプリケーションにおけるリリース時の不確実性を減らす 12/24 ittoki k8sハニーポットとログ出力の話 12/25 yamamuteki VPoEとしてこの2年間を振り返って 過去のテックブログは以下の通りです。この機会にご一読してみてください。 2015…

機械学習パイプラインライブラリluigiのshell補完ツールを作った

…パイプラインとして「luigi」及び、そのwrapperである「gokart」を利用した開発、運用を行なっています。 本記事は、エムスリーとluigiの繋がりと、私が作成したluigiのshell補完をサポートするmodule「luigi-completion」の概要、その使い方について示すものです。 luigi.readthedocs.ioより luigiロゴ はじめに luigi_completion 処理の中身 おわりに We are hiring ! はじめに 前述の…

機械学習プロジェクト向けPipelineライブラリgokartを用いた開発と運用

… Pipelineやluigiを代表に、クラウドや分散環境を意識したDigdagやAirflowといったツールの運用事例も耳にするようになっています。近年ではGoogle Cloud AutoML、Amazon SageMakerといったクラウドサービスとして、機械学習タスクの一部を自動化、Pipeline化する試みも出てきています*3。 そんな中、エムスリー AIチームでもgokartというluigiのwrapperライブラリをOSSとして開発、運用しています。 githu…

Factorization Machineの実装と数値検証

…だ整備中なのですが、今まで業務で使っていた徐々に公開していく予定です。今後はOSSとして開発していく部分を増やしていく予定です。 実務で使っているニュースの推薦システム等を公開したら面白いのでは?と思っています。 gokart ... luigiをラップし、タスクの定義を簡単にしている。 redshells ... gokartを使って様々なタスクが定義されている。 まぁこういうことですね。 We are hiring 機械学習エンジニアを募集中です! jobs.m3.com

推薦システムの改修と機械学習システムの開発プロセス改善、実施中!

…にしました。 現在もluigiをベースとしたパイプラインフレームワーク/module群を開発しております。 Archimedes以降に開発されたシステムには既に採用され、モデル開発の効率は格段に向上しました(Archimedesは移行中)。 ↓チームリーダーによる解説記事↓ www.m3tech.blog 学んだこと このケースにおける本当の失敗は、私は改善に至るまで時間がかかった点/改善せずにモデル開発を進めていた時期があった点であると考えています。 2月にジョインした頃、…

luigiのtargetを自分で書くための解説

…でいます。 なにやらluigiが流行っているらしいので、一部カスタマイズをしました。 本記事はluigiの本家のコードのざっくりとした(Targetに必要な部分の)概要とやり方についてです。 なお、本文中のコードはコメントの削除等いくつか加工しています。 luigiについて luigiはspotifyの開発しているワークフローフレームワークです。 github.com 詳細や使い方などは以前他の方が書いた記事を参照してください。 www.m3tech.blog luigiのフ…

PowerPointファイルからのテキスト抽出

…々改良を加えている luigi をラップしたモジュールを用いて開発をしているのですが、処理フローがわかりやすくなるため 結果の共有や互いのコードのレビューがしやすくなり、日々の業務が効率化されています。 (luigi についての記事はこちら) 最近、社内での業務プロセス改善の一環で、pptx形式のPowerPointファイルからテキスト抽出を自動化し解析を行いました。 そこで今回は pptxファイルからテキストを抽出する方法について共有させていただきます。 目次 1. ppt…

機械学習で便利なluigiフレームワークの紹介

…フレームワークとしてluigiを使っています。 (実際にはluigiをラップしたようなモジュールを作っています。そのうち公開しようと思っています。) 今回は、luigiの使い方について紹介しようと思います。 (luigi==2.7.5で動作確認を行っています。) 基本的な使い方 Taskの基本的な書き方 luigiのタスクを作るには、luig.Taskを継承し、下記3つのメソッドをオーバーライドすれば良いです。 requires() 依存している他のTaskを返します。このタ…