エムスリーテックブログ

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

python

日本語埋め込みモデルRuriを使ったBM42 on Elasticsearchと形態素解析器Sudachiによるトークン矯正

Qdrantが開発した新しいスコアリングアルゴリズムであるBM42を簡単に紹介し、それをElasticsearch上で構築する方法とその所感をお話しします。さらに形態素解析器のSudachiを使って類似語展開やトークン修正を行ない、BM42の精度を矯正する方法を試したので…

Genericやらoverloadやらを使って、MLパイプラインツールgokartを型安全にしてみた

AI・機械学習チームの北川(@kitagry)です。 このブログはサテライトオフィスのメンバーで投稿されるブログリレー1日目の記事になります。1 サテライトオフィスブログリレーとある通り、4月から京都オフィスに在籍しています。 最近京都オフィスメンバーで…

9時間足すんだっけ引くんだっけ問題~あるいは、諸プログラミング言語はいかにタイムゾーンと向き合っているか

私は日付時刻の処理が大好きです。 タイムゾーンの問題でデータ抽出が9時間分漏れていたとか、朝9時の始業前のログが昨日付けになってしまっていたなんていう問題が起こると喜んじゃうタイプ。 そんな私にとって、各プログラミング言語が標準で持っている日…

俺が考える最強の「麻雀点数申告練習アプリケーション」を作ってみる ~ Pythonによる麻雀点数計算問題の自動生成と音声による点数申告 ~

Pythonによる麻雀点数計算問題の自動生成と音声による点数申告

BigQueryでSendGrid Activityをセキュアに管理する仕組みを構築した

BigQueryでSendGrid Activityをセキュアに管理する仕組みを構築したのでその紹介をします。

ChatGPT Retrieval Pluginに任意のベクトル検索エンジンProviderを実装する

今回はChatGPT Retrieval Pluginがサポートしているベクトル検索エンジンではなく、AWSで利用できる[OpenSearch](https://opensearch.org/) のProviderを実装して、ChatGPTにOpenSearchのベクトル検索を提供する方法を試してみました。

AI・機械学習チームでのインターンでBigQueryのローカルテスト基盤を作った話

こんにちは、10月後半の2週間、エムスリーのAI・機械学習チームでインターンをしていた後藤です。 今回は私の行ったタスクと、インターン生からみてエムスリーはどのような会社なのかについて書いていこうと思います。 他の学生の方々のインターン選びやBigQ…

Rust製パターンマッチングマシンDaachorseを使ってPythonパイプラインを高速化する話

高速なRust製パターンマッチングマシン**Daachorse**をPythonで呼び出して既存の文字列パターンマッチロジックを高速化したお話

BigQuery向けクエリの社内ライブラリのCIを整えて料金を抑える

AI・機械学習チームで2021年新卒の北川(@kitagry)です。 最近Zigが流行っている感じがしますね。僕もちょっとずつ勉強し始めています。 今日はZigではなく、BigQueryとPythonのお話をします。

検索エンジンPyTerrierを使った日本語検索パイプラインの実装

PyTerrierの紹介とPyTerrierで日本語検索を実装する方法を紹介します。

Cascade Model に適用する Bandit Algorithms の理論と実装

Cascade Modelに多腕バンディットを適用したアルゴリズムを調べたので、Pythonによる実装とともに紹介していきます。

ユーザー投稿型ドキュメントのタイトル多様性を考慮した検索リランキングを試す

エムスリーエンジニアリンググループ AI・機械学習チームでソフトウェアエンジニアをしている中村(po3rin) です。好きな言語はGo。情報検索系の話が好物です。今回は多様性を考慮したリランキング手法と実際にPythonで実装を試した話をします。

検索エンジンのABテストで発生するユーザー内相関を突破する

私が検索エンジンのABテストでハマってしまったユーザー内相関の落とし穴を突破する方法を紹介します。

PyCon Taiwan 2021で発表しました

デジカルの末永(@asmsuechan)です。10/2 - 10/3で開催されたPyCon Taiwan 2021にスピーカーとして参加しました。 発表タイトルは「Queick: A simple job-queue system for Python」です。 この発表は私が院生時代に趣味で作ったソフトウェアに関する発表で業…

エムスリーが技術書典11で新刊を出します

今回技術書典にエムスリーの有志で参加することになりました。近年ホットなRustや機械学習、k8s、検索、ハイパーカジュアルゲームといったワードで、今回も多様な分野・技術について弊社スタッフが執筆いたしました。

分散密ベクトル探索エンジンValdとSentence-BERTを使った類似文書検索を試す

ValdとSentence-BERTを使った類似文書検索を試してみました。

gokart 1.0.0 をリリースしました

はじめに はじめまして。エムスリー AI・機械学習チームの河合(@vaaaaanquish)です。 本記事投稿日と同日、エムスリーが開発しているOSSのうちの1つであるgokartのversion 1.0.0をリリースする運びとなりました。 本記事は、これまでのgokartの軌跡と成果を…

GiNZAと患者表現辞書を使って患者テキストの表記ゆれを吸収した意味構造検索を試した

Elasticsearchや、GiNZA、患者表現辞書を使った意味構造検索がどのくらい有効かを試したので、概要と実装方法を簡単にご紹介します。

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

この記事はエムスリー SRE がお届けするブログリレーの5日目です。 エムスリーエンジニアリンググループ AI・機械学習チームの笹川です。 趣味はバスケと、筋トレで、このところはNBAがてんやわんやしているのを楽しんでいます (Brooklynの今後の状況が特に…

GKEでStreamlitをホスティングして社内用アプリを作った話

ブンブンハローテックブログ。エムスリー AI・機械学習チームでエンジニア兼YouTuberをやっています河合と笹川です。本記事ではStreamlitを使ったGKEホスティングの事例を紹介します。

ベンフォードの法則を試してみる

こんにちは。エンジニアリンググループの高島(id:rst76)です。 最近、私が翻訳した『実用的でない Python プログラミング』という本が出版されたので、内容の一部を紹介したいと思います。 実用的でないPythonプログラミング - 共立出版

Nishika competitions 2nd solution

はじめに はじめまして、エムスリー AI・機械学習チームの河合(@vaaaaanquish)です。 最近、以下機械学習コンペティションにて 182人中 2位 になりました。 Nishikaサービスローンチコンペ AIは芥川龍之介を見分けられるのか? competitions summary(https:/…

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

エンジニアリンググループ AIチームの金山 (@tkanayama_)です。2019年新卒でエムスリーに入社してから早くも1年経ってしまいました。 今回は、 "Bayesian Personalized Ranking for Novelty Enhancement" [Wasilewski and Hurley, UMAP'19] という論文を紹介…

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

こんにちは。Python謹製のshellを使って早3年、エムスリーエンジニアリングGの河合 (@vaaaaanquish) です。 この記事はエムスリー Advent Calendar 2019 の21日目の記事です。 エムスリー AIチームでは、機械学習パイプラインとして「luigi」及び、そのwrapp…

クリックだけでなく表示の情報も活用したレコメンド論文の紹介と実装・実験

この記事はエムスリーAdvent Calendar 2019 2日目の記事です。 エンジニアリンググループ AIチームの金山 (@tkanayama_)です。普段の業務では、医療従事者向けWebサイト m3.com のための推薦システムの開発・運用を担当しています。 今回は、 "Sampler Desig…

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

こんにちは。前回書いた突撃!隣のキーボード M3 2019という記事が、HHKBの公式Twitterアカウントにツイートされ、舞い上がっているエムスリーエンジニアリングGの河合 (@vaaaaanquish) です。 今回はエムスリー AIチームが開発、運用している機械学習プロジ…

CycleGANで効果を発揮!画像の構造を抽出する特徴量"MIND"を実装してみる

初めまして!2019年8月中旬からエムスリー エンジニアリングG AIチームで10日間インターンに参加した三澤です。インターンでは「CycleGANを用いてモダリティ(CT, MRI, PETなどの画像撮影装置)の違う画像の変換に関する手法」に関する論文について、Surveyと…

pytest ヘビー🐍ユーザーへの第一歩

pytest は Python のユニットテスト・ライブラリのデファクトスタンダードです。 エムスリーでは顧客向けレポートの作成や機械学習の分野でPythonを使っており、(Pythonを使うチームでは)日常的に pytest を扱います。 この pytest ですが、実は意外と入門…

とりあえず使えそうな SQLAlchemy 入門(※ ORM機能は使いません)

物資難の時代、化学者はカップ酒をビーカー代わりに使った・・・らしい(本文とは関係ありません) こんにちは、エムスリー・エンジニアリングG・基盤開発チーム小本です。 SQLAlchemyはPythonのSQLライブラリのデファクトスタンダードで、エムスリーでも使…

Pythonのパッケージ周りのベストプラクティスを理解する

砲撃する自走砲(PzH2000自走榴弾砲)。自走砲は戦車によく似ていますが、戦車ではありません。*本編とは関係ありません。 こんにちは、エムスリー基盤開発チーム小本です。 Pythonのパッケージ管理周りでは、 「setup.pyでrequirements.txtを読み込むのが…