はじめまして、プロダクトマネージャーの坂(ばん)です。2021年2月にエムスリー入社し、4ヶ月が経ちました。入社後、最初のミッションは、4つのプロダクト開発現場に参加し、”エムスリーのプロダクト開発を肌で感じる”ことでした。この記事では『エムスリーデジカルスマート診療』開発チームが、なぜ超短工期(3ヶ月強!)でリリースできたのか、開発現場から得た気づきを記載します。
続きを読む分散密ベクトル探索エンジンValdとSentence-BERTを使った類似文書検索を試す
エムスリーエンジニアリンググループ AI・機械学習チームでソフトウェアエンジニアをしている中村(@po3rin) です。 好きな言語はGo。仕事では主に検索周りを担当しています。
Overview
最近、社内で情報検索論文輪読会を立ち上げました。
そこでNGT-ONNGについての論文*1を紹介したところ1時間の予定のところを盛り上がりすぎて2時間超えてしまいました。
大盛り上がりのついでに、今回は情報検索論文輪読会で紹介した近似最近傍探索ライブラリNGTを内部で利用するValdを使って、類似文書検索がどのように出来るのか、現状の問題を解決できるのかを試したのでその結果を報告します。
*1: Optimization of Indexing Based on k-Nearest Neighbor Graph for Proximity Search in High-dimensional Data (https://arxiv.org/abs/1810.07355)
Google AnalyticsのBigQuery Exportを使って検索ログデータ分析基盤を構築した
エムスリーエンジニアリンググループ AI・機械学習チームでソフトウェアエンジニアをしている中村(@po3rin) です。 好きな言語はGo。仕事では主に検索周りを担当しています。
Overview
医師に質問ができるサービスであるAskDoctorsではユーザーが質問を検索できる機能があり、今回は検索改善タスクのために検索ログデータ分析基盤を構築したお話をします。これにより改善サイクルを回せるようになったり、検索ログを使った各種アルゴリズムが利用可能になりました。
データ基盤構築では他チームとの連携が必要不可欠であり、コミュニケーションで工夫した点などもお話できればと思います。
続きを読むテックブログなにもわからないけど知見をまとめて人類に貢献したい
こんにちは、エムスリーエンジニアリンググループの福林 (@fukubaya) です。
以前からテックブログ自体の記事をどこかで書きたいなと思っていたところに、 テックブログをテーマにしたイベントが開催されると知り、 ちょうどいいタイミングだったので書くことにしました。
続きを読むgokart 1.0.0 をリリースしました
はじめに
はじめまして。エムスリー AI・機械学習チームの河合(@vaaaaanquish)です。
本記事投稿日と同日、エムスリーが開発しているOSSのうちの1つであるgokartのversion 1.0.0をリリースする運びとなりました。
本記事は、これまでのgokartの軌跡と成果を紹介しつつ、内情を含めながら、gokart 1.0.0に込めた想いを綴るものです。
- はじめに
- gokartとは
- gokart 1.0.0
- ドキュメントの拡充とロゴの追加
- gokart.build
- gokartメジャーバージョンリリースに寄せて
- おわりに
gokartとは
gokartは、元チームリーダーであった西場さん@m_nishibaが、AI・機械学習チームを1人立ち上げた際、チームの基盤となるよう作成した、機械学習パイプラインを取り扱うPythonモジュールです。
続きを読むGKE上の一定時間経過したJobを自動削除する
こんにちは。
エムスリーエンジニアリンググループ AI・機械学習チーム 堀江です。
弊チームでは、YAMLの設定に従って自動でモデルの学習 & 推論 & 評価まで行ってくれるようなMLパイプラインのプロダクトをGKE上に構築して運用しています。
MLパイプラインにより、パラメータを変えた実験を並列に大量に行うことが可能になっており、多いときには同時に数十Jobが走っていたりします。
そのような運用をしていると問題になるのが完了した (失敗を含む) Jobの後片付けです。
ttlSecondsAfterFinished
実はkubernetesには完了したJobのcleanup機能が備わっています。
TTL mechanism for finished Jobs
以下のように ttlSecondsAfterFinished
を設定すると、完了したJobを自動的に削除してくれて非常に便利なんですが、この機能、一向にalphaからステータスが変わりません (2021年3月現在)。
apiVersion: batch/v1 kind: Job metadata: name: pi-with-ttl spec: ttlSecondsAfterFinished: 100 template: spec: containers: - name: pi image: perl command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"] restartPolicy: Never
kubectlやコントローラの自作によって ttlSecondsAfterFinished
の代替機能を作成している方もいるようですが、今回は弊チームで運用しているGitlab CI上のスケジューラでJobステータスを監視し自動的に削除してくれる機能を実装しました。