エムスリーテックブログ

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

OOMしたCronJobのメモリ制限を「いい感じ」に増やし、不必要な課金・障害対応を減らす

初めまして、2024年3月後半にエムスリーのAI・機械学習チームで10日間インターンに参加させていただいた東(@azuma_alvin)です。

もしタイトルが何かに似ていると感じた方がいれば、只者ではないと思われます。

m3_front_desk
洗練されたデザインでかっこいいと思ったエムスリーオフィスの受付の写真

この記事では、KubernetesのCronJobでOOM(Out Of Memory)が発生した時に「いい感じ」にメモリ制限を増加させてくれるbroomの開発経緯とその実装についてお話しします。

また、インターン期間で感じたエムスリーという「ギーク集団」の中で開発する楽しさについてもお伝えできればと思います。

2週間でゼロ(nil)から開発したbroomは、OSSとしてGitHubで公開しているのでコントリビュートお待ちしております!

github.com

続きを読む

AI・機械学習チームでのプロダクトマネジメントの学びを振り返る

はじめまして、エムスリーエンジニアリングGプロダクトマネージャーの植田です。23年8月にエムスリーに入社し、エンジニア十数名が所属するAI・機械学習チームへ専任プロダクトマネージャーとして参画しています。スタートアップカルチャーが浸透している本チームで半年強働く中での学びを振り返りたいと思います。

DALL·E 3で生成したプロダクトマネージャーが学んでいる絵

続きを読む

プロダクトマネージャーが不確実性を乗り越えるために必要な信念の話

こんにちは、エンジニアリングG プロダクトマネージャーの佐野です。

私は今、新規プロダクトを立ち上げている最中です。この過程で、プロダクトを成功させるためには、自分自身がプロダクトの価値を信じて、成功のためにあらゆる手段を尽くすことが重要だと学びました。プロダクトマネージャーは、不確実な世界に踏み込むことも多く、自分の今選んでいる道が本当に正しいのか、不安になるようなこともあると思います。そのような方にこの記事が届けばと思い、経験と学びをシェアします。

娘と一緒に富士宮にある実家に帰った際の富士山の写真。本文には特に関係ありません。

続きを読む

続・ムダな仕事を増やしてませんか? ~ MLの実行パイプラインでworker間の重複作業をなくす ~

DALL-E作成の「worker間で重複タスクを確認しながら作業を進める」イメージ図です

こんにちは。AI・機械学習チーム(以下AIチーム)の池嶋(@mski_iksm)です。

仕事で、誰か一人がやればいい作業を、気がついたら同僚と同じタイミングでやっていた、という経験はありませんか? せっかく頑張って作った機能が実は被っていてムダになってしまった。。。というのは誰もが悲しいものです。 そうならないように作業チケットを切るなどしてタスクを中央管理する方法もありますが、もっとゆるくやりたいこともあるかと思います。 そういうときは一言「この作業私がやりますね!」と声掛けをすれば済みますね。

以前のブログで、私たちはgokartを使ったMLパイプラインの効率化について掘り下げました。 具体的には、「すでに完了したタスクをスキップする」と「タスクの実行順序をできるだけランダムにする」という2つの戦略を紹介し、これによりworker間で重複するタスクの発生を減らす方法を提案しました。

www.m3tech.blog

しかし、このアプローチにも限界がありました。 他workerで完了しているタスクは検知できるのですが、現在実行中のタスクを検知する方法がなく、結果的に重複して作業するケースがあったというものです。 この課題に対処するため、本記事では、異なるworkerが同一のタスクを同時に実行しないようにする新機能を紹介します。 ちょうど人間でいう「この作業私がやりますね!」の声掛けに相当する機能ですね*1

この新機能は、すでに他のworkerが取り組んでいるタスクを認識し、重複しないようにタスクの実行順を制御します。 結果的に、複数のworkerによる作業分担が実現し、パイプラインの全体的な効率が向上しました。

この記事では、この新機能が有効なシチュエーションや使い方、仕組みについて解説します。

*1:luigiにはタスクを中央管理する仕組みも存在しています。しかしこの方法では単一障害点になりやすい、kannonとの併用が難しいといったデメリットがあるのでここでは採用していません。 無駄な仕事を増やしてませんか? ~ MLの実行パイプラインで重複作業をなくす ~ - エムスリーテックブログ

続きを読む

チーム内勉強会はじめました。

こんにちは、エムスリーエンジニアリンググループ/ BIR(Business Intelligence and Research) チーム の遠藤(@en_ken)です。

エムスリーでは、隔週LT大会であるところのTach Talkや、自発的なチーム横断勉強会など、技術交流の取り組みが活発です*1

私たちのチームでは、そこに加えて新たな取り組みとして「チーム内勉強会」を今年の1月から始めました。今回はこちらの取り組みについて紹介します。

「エムスリーエンジニアリンググループのチーム内勉強会」のAI生成画像です

*1:*TechTalkはこちらの記事にまとまっています https://www.m3tech.blog/entry/techtalk-offline-2023

続きを読む

入社4ヶ月目で73時間かかるバッチ処理を7倍以上高速化した話

こんにちは。エンジニアリンググループの武井です。

私は現在、デジカルチームに所属し、クラウド電子カルテ、エムスリーデジカルの開発に携わっています。 昨年夏にエムスリーに入社し、早くも半年が経過しました。

digikar.co.jp

この記事では、私が入社してから4ヶ月目に取り組んだ、バッチ処理の運用改善について振り返ります。 特に、新しくチームに加わったメンバーとして意識した点に焦点を当ててみたいと思います。

これから新しいチームに参加する方の参考になれば幸いです。

続きを読む