エムスリーテックブログ

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

2024年にエンジニアリンググループミーティングで紹介した書籍の紹介

年末にこんにちは、こんばんは。12月に長女の音楽発表会があり、長女の成長に涙したVPoEの河合(@vaaaaanquish)です。

本文とは関係ない娘と私

本記事では、エンジニアリンググループで毎月行っている全体会、Group Meetingで実施している『おまけコンテンツ』を紹介します。

オススメの書籍紹介になりますので、年末のお供に是非。

  • Engineering Group Meetingとは
  • 書籍紹介
    • 仕事に必要なことはすべて映画で学べる
    • 熟達論 - 人はいつまでも学び、成長できる
    • RANGE(レンジ)知識の「幅」が最強の武器になる
    • データセキュリティ法の迷走
    • テクノロジーの世界経済史 ビル・ゲイツのパラドックス
    • ビジュアル・シンカーの脳: 「絵」で考える人々の世界
    • テクノロジストの条件
    • ネガティブ・ケイパビリティ 答えの出ない事態に耐える力
    • 実力も運のうち 能力主義は正義か?
    • 1兆ドルコーチ
  • おわりに
    • We are hiring !!
      • エンジニア採用ページはこちら
      • カジュアル面談もお気軽にどうぞ
      • インターンも常時募集しています
続きを読む

DBテーブルのカラムを削除するときにやること・考えること

突然ですが皆様は、稼働済みサービスのDBからテーブルカラムを削除されたりすること、ありますでしょうか? 基本的に削除はまずやらないのではと思います。えっやらないの? と思われた方もいらっしゃるかもしれませんが、きっとこの記事を読めばなぜ多くの方がカラム削除を避けるのかわかることでしょう。

とはいえ、そうして使わないカラムがテーブルに溜まっていくとやがて新規加入メンバーがコードにキャッチアップする妨げとなるレベルにまで溜まってきたりします。いつかは大掃除のときがくるわけです。DBは寿命長いですからね。そうしたときに実際どのような手順でカラムを削除するのか見ていきましょう。エムスリーエンジニアリンググループUnit1(製薬プロモーション)・Unit9(治験臨床研究支援)チームエンジニアの三浦 [記事一覧 ]が、最近実際にやった作業から知見をお届けします。

続きを読む

機械学習エンジニアやデータサイエンティストにもウケるノベルティが作りたい

ギークな技術者の皆様、こんにちは。メリークリスマス。
リモートワークで運動不足を感じているため、VTuberのリングフィットアドベンチャーのプレイ動画を見て気を紛らわしています、VPoEの河合(@vaaaaanquish)です。

本記事はエムスリーアドベントカレンダー2024の最終日の記事にあたります。
エムスリーアドベントカレンダーには今年もギークな記事が揃っていますので、年末年始の技術研鑽のお供に是非どうぞ。

qiita.com

  • はじめに
  • ノベルティの下準備
  • digits
  • plot
  • wordcloud
  • おわりに
    • We are hiring !!
      • エンジニア採用ページはこちら
      • カジュアル面談もお気軽にどうぞ
      • インターンも常時募集しています
続きを読む

M3におけるGitHub Copilot活用状況

北海道ツーリングにて訪れた野付半島

はじめに

あっあっあー

こんぺこ!こんぺこ!こんぺこー!

時期感的になんとなくこんな挨拶をしてみた @bloody_snow です。 M3エンジニアリンググループの2代目VPoEをつとめ、 @vaaaaanquish に交代してからは、 M3 Technologies にてM3のグループ会社をメインで担当しています。M3に関しては個別のサービス開発というよりかはGitHub Copilot、ChatGPT Team、GitHub Enterprise、比較的高性能なMacBookProの導入、AWSの教育受講など全体の生産性への取り組みが多くなっています。

  • はじめに
  • 利用状況の概要
  • 言語別
  • エディタ別
  • Copilot Chat
  • おわりに
  • We are hiring!
続きを読む

2024年、エムスリーエンジニアリンググループで行った組織的ステップチェンジ5選。

皆さんこんにちは、こんばんは。スノーピークのノクターン*1をすでに持っているにもかかわらず、SOTOのヒノト*2を買ってしまった取締役CTO兼VPoPの山崎です。

せっかくなので違いをレビューしておくと、SOTOのヒノトはガスを充填して持ち歩ける専用タンクがあるのは便利なのですが、意外と容量が小さく、マニュアル通り連続燃焼時間は1〜2時間と意外と短いです。もちろん、ヒノトもスノーピークのノクターン同様、OD缶に直接接続すれば一晩以上連続燃焼できると思うので、ランプ側に問題はありません。そういえば、こういうときのためにキャンピングムーンのBKTC-28というOD缶互換ガスタンクを買っておいたな、と思って引っ張り出したらこれがベストフィット。最大燃焼時間も大きく延長できました。皆さん参考にしてください。

本ブログはエムスリー Advent Calendar 2024の24日目の記事です。

ちなみに昨日はAI・機械学習チームの中村伊吹(@inakam00)の素晴らしい記事でした!エムスリーエンジニアリンググループの文化がよくまとまっておりますので、まだ読んでいない人は是非ご一読ください^^。

www.m3tech.blog

左がSOTOのヒノト+純正ガスタンク、右がスノーピークのノクターン+キャンピングムーンのBKTC-28ガスタンクです。圧倒的にBKTC-28のほうが連続燃焼時間が長いです。もちろん、ヒノトにBKTC-28を装着することも可能です。

  • はじめに
  • ①ばんくしことVPoE河合に権限委譲
  • ②ゼネラルマネージャー8人体制への移行
  • ③主力事業とAI・機械学習チームの融合
  • ④全員QA体制への移行
  • ⑤プロダクトマネジメント組織の強化
  • まとめ
  • We are hiring!
続きを読む

AI・機械学習チームベストMR(Merge Request)決定戦 2024

この記事はエムスリー Advent Calendar 2024 23日目の記事です。 AI・機械学習チームの中村伊吹(@inakam00)です。

ソフトウェア開発において、優れたコードの変更は時としてアート作品のような美しさや、抜群の機能改善をもたらすことがあります。GitHubでPull Request(PR)を使ったことがある人なら、感動するようなコード修正に出会った経験があるのではないでしょうか。

エムスリーAI・機械学習チームでは、この感動を共有し称え合うために、年に一度「ベストMerge Request(MR)決定戦」を開催しています。MRとはGitLabのMerge Requestの略称です。 GitHubでいうところのPR(Pull Request)にあたります。

普段は全国各地でリモートで働いているAI・機械学習チームも年に数回全員集合する機会があります。先週金曜日に社内ライブラリやOSSにコントリビュートをしようという企画を実施しました。

今年も、チームメンバー全員で「これはすごかった!」と感じたコード変更をノミネートし、投票の結果トップ10を選出しました。シンプルな改善から斬新なアイデアまで、いろんな「職人技」が詰まっています。

AI・機械学習チームの全MRを1年前まで遡るにはページネーションの227ページ目までいく必要がある(約4500件)。Renovateなどのメンテナンスを除いてもおそらく1000件以上。

このブログでは、実際にコードを書いた人や、レビューを通じてその価値を高めることに関わったメンバーたちが、それぞれのMRの魅力について語っていきます。では、第10位から見ていきましょう!

  • 第10位 機械学習モデルの性能向上施策
  • 第9位 localディスクキャッシュの活用
  • 第7位(同率) gokartへのmypy pluginの追加
  • 第7位(同率) Kubernetesクラスター都合でのバッチの中断をリトライ回数にカウントしない
  • 第6位 ある日突然BigQueryのdownloadが遅くなっていました。さてなぜでしょう?
  • 第5位 gokartのlinterを追加
  • 第4位 コード検索基盤を構築するためのインデックス作成フロー
  • 第3位 Google Cloud ArtifactRegistryのクリーンアップ
  • 第2位 TaskOnKartへ型を追加
  • 第1位 ロードバランサー一括監視
  • まとめ
    • We are hiring !!
      • エンジニア採用ページはこちら
      • カジュアル面談もお気軽にどうぞ
      • インターンも常時募集しています

第10位 機械学習モデルの性能向上施策

  • 紹介者: 鴨田

AI・機械学習チームでは、様々な機械学習モデルの開発や運用をしています。その中のあるモデルの簡素化や取り回しの良さに着目したバージョンアップにおいて、v2モデルがv1モデルと比較して精度が悪化するという課題に直面しました。

調査の結果、主原因の1つが特徴量に対して強制的にSVD(特異値分解)による圧縮を適用していたことだと判明しました。特徴圧縮の処理を見直すことでv2モデルの精度をv1と同等のレベルにまで回復させることに成功しました。

調査から原因究明、対応までなんと2日というスピード感も相まって堂々の10位入賞となりました。

続きを読む

はじめてのOSSコントリビュート

こちらはエムスリー Advent Calendar 2024 22日目の記事です。

こんにちは。2024/10 から AI・機械学習チームにジョインした鴨田です。 私が所属するAIチームには、機械学習やソフトウェア開発に深い知見を持つエンジニアが集まっています。日々のコードレビューや技術議論を通じて、「こんな考え方があったのか」「この実装方法は勉強になる」と新しい発見の連続です。今回のOSSコントリビュートは、チームメンバーがspotify/luigiの問題を特定し、コントリビュートの機会として共有してくれたことがきっかけでした。

本ブログでは私がエンジニア人生で初めてOSSコントリビュートした話を書いていきます。初めてのコントリビュート系の記事は既にたくさんの人に掲載されていますので*1、この記事ではAIチームの文化も絡めてお伝えしたいと思います。

趣味で行っているボルダリングの大会予選に出場したときの様子

  • OSSコントリビュートの動機
  • コントリビュートの実施
    • Git forkってなんだ?
    • PRの作成
    • 生成AIを活用したDescription(本文)作成
  • やってみての感想
    • 意外とすんなり終わった
    • GitHubコマンドが便利
    • わいわいサポートしていただける環境に助けられた
    • luigi 3.6.0がリリースされました!
  • まとめ
  • We are hiring !!
    • エンジニア採用ページはこちら
    • カジュアル面談もお気軽にどうぞ
    • インターンも常時募集しています

*1:私が閲覧した記事:参考記事1参考記事2

続きを読む