ブックマーク / engineering.mercari.com (50)

  • LLMを活用した大規模商品カテゴリ分類への取り組み | メルカリエンジニアリング

    こんにちは、メルカリの生成AIチームで ML Engineer をしている ML_Bear です。 以前の記事[1]では商品レコメンド改善のお話をさせていただきましたが、今回は、大規模言語モデル (LLM) やその周辺技術を活用して30億を超える商品のカテゴリ分類を行なった事例を紹介します。 ChatGPTの登場によりLLMブームに火がついたということもあり、LLMは会話を通じて利用するものだと認識されている方が多いと思いますが、LLMが有する高い思考能力はさまざまなタスクを解決するためのツールとしても非常に有用です。他方、その処理速度の遅さや費用は大規模なプロジェクトでの活用にあたっての障壁となり得ます。 記事では、こうしたLLMの課題を克服するためにさまざまな工夫を施し、LLM及びその周辺技術のポテンシャルを最大限に引き出して大規模商品データのカテゴリ分類問題を解決した取り組みについ

    LLMを活用した大規模商品カテゴリ分類への取り組み | メルカリエンジニアリング
  • メルペイ決済基盤における Source Payment による決済手段の抽象化 | メルカリエンジニアリング

    この記事は Merpay Tech Openness Month 2023 の 6 日目の記事です。 はじめに こんにちは。メルペイの Payment Core チームでバックエンドエンジニアをしている komatsu です。 普段はメルカリ・メルペイが提供するさまざまな決済機能のために、決済基盤の開発・運用をしています。 この記事では、我々が開発している決済基盤マイクロサービスである Payment Service における、Source Payment と呼ばれる複数の決済手段を抽象化した概念について紹介します。 決済手段の多様性 メルカリやメルペイはさまざまな決済手段をお客さまに提供しています。 例えば、 メルカリの売上残高 銀行口座からチャージした残高 付与されたポイント メルペイのスマート払い などがあります。 Payment Service はこれらの決済手段を実現するための決

    メルペイ決済基盤における Source Payment による決済手段の抽象化 | メルカリエンジニアリング
  • 社内用GitHub Actionsのセキュリティガイドラインを公開します | メルカリエンジニアリング

    この記事は、Merpay Tech Openness Month 2023 の4日目の記事です。 こんにちは。メルコインのバックエンドエンジニアの@goroです。 はじめに このGitHub Actionsのセキュリティガイドラインは、社内でGithub Actionsの利用に先駆け、社内有志によって検討されました。「GitHub Actionsを使うにあたりどういった点に留意すれば最低限の安全性を確保できるか学習してもらいたい」「定期的にドキュメントを見返してもらい自分たちのリポジトリーが安全な状態になっているか点検する際に役立ててもらいたい」という思いに基づいて作成されています。 今回はそんなガイドラインの一部を、社外の方々にも役立つと思い公開することにしました。 ガイドラインにおける目標 このガイドラインは事前に2段階の目標を設定して作成されています。まず第1に「常に達成したいこと

    社内用GitHub Actionsのセキュリティガイドラインを公開します | メルカリエンジニアリング
  • Learning materials | メルカリエンジニアリング

    技術トレーニングDevDojo メルカリには、専門分野を超え、幅広い知識を身につけることを目的とした「DevDojo」という社内技術トレーニングがあります。DevDojoは、すべて社内のエンジニアが作成・運営しています。実際に使用した講義資料や動画を一部こちらで公開しています。 ※ビデオについて 同時通訳で実施しています。少々聞き取りづらい可能性がある旨、ご了承ください。 [Basic] Machine Learning (Ver. 2024)At Mercari, AI is used to offer unique features such as Mercari AI Assist. This session goes over the general concepts of machine learning (“ML”) as well as the fundamentals of

    Learning materials | メルカリエンジニアリング
  • メルカリにおける機械学習による検索のリランキングへの道のり | メルカリエンジニアリング

    記事は2023年1月1日に公開された記事の翻訳版です。 メルカリのマーケットプレイスにおける商品検索は、お客さまが欲しい物を発見する最も基的な方法です。この中核となる機能は、テキストマッチングによる情報検索システムによって実現されています。 しかし最近、私たちは自問自答しました。お客さまの検索体験を向上させる、合理的な機械学習ベースのアプローチはあるのだろうか?という疑問が生まれました。メルカリアプリ上のお客さまの行動を、彼らにとってより関連性の高い検索結果についてのヒントとして捉えることはできないでしょうか?学習データにラベルを付け、単体のユーザークリックという行為をもとにした分析の限界を念頭に置きながら、モデルが学習するための、より情報量の多いコンテキストを構築できないでしょうか?ビジネスKPIとの関係を把握するために、どのようにデータラベリングを利用できるでしょうか? それは、

    メルカリにおける機械学習による検索のリランキングへの道のり | メルカリエンジニアリング
  • メルペイにおけるインシデントマネジメントとナレッジシェア | メルカリエンジニアリング

    この記事は、Merpay Advent Calendar 2022 の22日目の記事です。 こんにちは、メルペイSREチームでEM(Engineering Manager)をしているfoostanです。今回はメルペイにおけるインシデントマネジメントとナレッジシェアについてご紹介します。なおメルペイではインシデントをいくつかのタイプに分類してマネジメントフローを定めていますが、今回はシステム障害を原因としたインシデントにフォーカスしています。 インシデントから学びを得る 私たちはメルペイのサービスを開発し提供していますが、システムが何も壊れずに24時間365日動き続けることはありえませんし、オペレーションミスを絶対にしないとも言い切れません。そのためSLI(Service Level Indicator)を定義し、SLO(Service Level Objective)という担保すべき信頼性

    メルペイにおけるインシデントマネジメントとナレッジシェア | メルカリエンジニアリング
  • SOLID原則に従って行うリファクタリング実践 | メルカリエンジニアリング

    この記事は、Merpay Advent Calendar 2022 の21日目の記事です。 こんにちは。メルペイBackendエンジニアのfivestar(@fivestr)です。 記事では「SOLID原則」と呼ばれる設計原則に沿って実際に行ったリファクタリングについて、メルペイの「あと払い」サービスの開発現場事情を踏まえながらご紹介していきます。 あと払いの歴史とコード負債 私が所属するCredit Designチームではメルペイの「あと払い」や「メルペイスマートマネー」といった与信サービスの開発を行っています。中でも「あと払い」はメルカリが2017年にリリースした「メルカリ月イチ払い」を前身とする歴史の長いプロダクトであり、単純な機能追加だけでなく、設計上大掛かりな変更を伴う修正を繰り返しながら今日まで成長してきました。 例えば、あと払いをメルカードの決済・清算のバックエンドとして統

    SOLID原則に従って行うリファクタリング実践 | メルカリエンジニアリング
  • メルカリShopsを支えるメルペイPaymentPlatformの仕組み | メルカリエンジニアリング

    この記事は、Merpay Advent Calendar 2022 の18日目の記事です。 こんにちは。メルペイ PaymentPlatform Engineering Manger のabcdefujiです。 我々メルペイPaymentPlatformの責務は「決済基盤としてプロダクトチームに機能(決済、清算、お金の管理)を提供し、プロダクト・サービスのミッション達成を実現する」です。 2022/12時点では、図のようにプロダクトに機能を提供しています。 今回はこれらプロダクトの中でもメルカリShopsとメルペイPaymentPlatformの関係性についてお話したいと思います。 背景として、現在メルカリShopsは決済システムとしてメルペイを利用しています。しかしながら当時のメルペイPaymentPlatformの機能では不十分でありメルカリShopsの要望を満たす事が出来ませんでした

    メルカリShopsを支えるメルペイPaymentPlatformの仕組み | メルカリエンジニアリング
  • 組織内コミュニケーションにはどのようなものがあるのか分類してみた | メルカリエンジニアリング

    ※この記事は、Mercari Advent Calendar 2022 の5日目の記事です。 こんにちは。メルカリのエンジニア組織開発を担当するチーム「Engineering Office」で、主にInternal Engagementを担当している@afroscriptです。 最近、私は「エンジニア組織内のコミュニケーション最適化」に取り組み始めました。そのプロジェクトの第一歩として、以下のことを整理しました。 組織内コミュニケーションにはどのようなものがあるのか? 組織内コミュニケーションの理想状態はどのようなものか? このプロジェクトはまだ始まったばかりです。そのため、プロジェクトを進めるうちにこの定義も変わっていくかもしれませんし、まだブラッシュアップが甘い部分も多々あるかもしれません。ですが、せっかくのアドベントカレンダーの季節なので、現段階で整理できた部分をシェアしてみようと思

    組織内コミュニケーションにはどのようなものがあるのか分類してみた | メルカリエンジニアリング
  • メルペイでのマイクロサービス開発プロセス〜メルカード編〜 | メルカリエンジニアリング

    この記事は、Merpay Advent Calendar 2022 の4日目の記事 メルカードの舞台裏編 です。 こんにちは。メルペイでバックエンドエンジニアをしている @hiroebe です。 メルペイのバックエンドではマイクロサービスアーキテクチャを採用していて、今回のメルカード開発でも新たに専用のマイクロサービス (メルカードマイクロサービス) を開発しました。この記事では、現在のメルペイにおいて新たにマイクロサービスを開発する際のプロセスについて、チーム内での取り組みや実際にやってみた感想を交えて紹介します。 なおメルカードマイクロサービスの役割については、2日目の記事「メルカードのマイクロサービスとカード利用開始まで」および3日目の記事「クレジットカード取引とメルカードマイクロサービスについて」をご覧ください。 Design Doc 新しいサービスをつくるにあたって最初に行うのが

    メルペイでのマイクロサービス開発プロセス〜メルカード編〜 | メルカリエンジニアリング
  • 決済システムを壊さずに拡張した話 | メルカリエンジニアリング

    メルペイのBackend Engineerの @Hiraku です。与信決済システムのmicroserviceのTech Leadをしております。 この記事は、Merpay Advent Calendar 2022 の5日目の記事 メルカードの舞台裏編です。 2022年11月8日にメルペイ初のクレジットカードであるメルカードがリリースされました。これに伴い、システムにも広範囲に変更が加わっています。この記事ではその中でもちょっと分かりにくい、メルペイスマート払いの請求タイミングの変更について解説します。 月末ごろにメルカードによる決済を行うとわかるのですが、「処理中」と表示され、翌月の請求に含まれないものがあります。こちらはメルカード特有の実売上処理が終わってから請求する挙動です。順番に解説していきます。 カード決済の流れ 決済は大きく2段階の処理で成り立っています。「オーソリ」や「仮売上

    決済システムを壊さずに拡張した話 | メルカリエンジニアリング
  • Zero Touch Productionへの移行 | メルカリエンジニアリング

    記事は2022年1月26日に公開された記事の翻訳版です。 筆者:Dylan Lau (@aidiruu), Platform DXチーム Zero Touch Production (ZTP)は、番環境に加えられるすべての変更が、自動化、安全なプロキシ、または監査可能なBreak-glass(緊急アクセス)システムによっておこなわれるという概念です。人為的ミスに起因する番環境での障害には、次のようなさまざまな種類があります。 構成エラー スクリプトエラー 間違った環境でのコマンド実行 ZTPはこれらのエラーによる障害発生のリスクを軽減できます。メルカリでは、ZTP環境への移行に取り組んでいます。最初のステップは、一時的な役割付与システムであるCarrierを実装することです。 この記事では、以下について説明します。 ZTPの重要性 ZTPを実装するプロセスとCarrierを始めた理

    Zero Touch Productionへの移行 | メルカリエンジニアリング
  • 【書き起こし】メルペイが取り組む機械学習システムの品質保証 – Hiroshi Yoshizawa【Merpay Tech Fest 2022】 | メルカリエンジニアリング

    【書き起こし】メルペイが取り組む機械学習システムの品質保証 – Hiroshi Yoshizawa【Merpay Tech Fest 2022】 Merpay Tech Fest 2022 は、事業との関わりから技術への興味を深め、プロダクトやサービスを支えるエンジニアリングを知ることができるお祭りで、2022年8月23日(火)からの3日間、開催しました。セッションでは、事業を支える組織・技術・課題などへの試行錯誤やアプローチを紹介していきました。 この記事は、「メルペイが取り組む機械学習システムの品質保証」の書き起こしです。 それでは「メルペイが取り組む機械学習システムの品質保証」というテーマでお話しします。よろしくお願いします。 自己紹介 Yoshizawaと申します。金融系のエンジニアでキャリアをスタートし、2014年頃から機械学習仕事をはじめました。7年ほど働いた後、2021年に

    【書き起こし】メルペイが取り組む機械学習システムの品質保証 – Hiroshi Yoshizawa【Merpay Tech Fest 2022】 | メルカリエンジニアリング
  • Building secure web apps using Web Workers | Mercari Engineering

    Security is paramount for our users, and we at mercari strive to provide a snappy and safe platform. We recently introduced an additional layer of defence by adding Web Workers to secure the access token. It now protects the users from various kinds of attacks, including token theft from Cross Site Scripting (XSS), Cross Site Request Forgery (CSRF), prototype pollution, zero-day npm package vulner

    Building secure web apps using Web Workers | Mercari Engineering
  • メルカリWebのマイクロサービス化、その4年 | メルカリエンジニアリング

    Author: @urahiroshi, Engineering manager of Web Platform team 2022年8月4日、メルカリで “web-2” と呼ばれるサーバがシャットダウンされました。これはメルカリWeb版の開発に携わっているチームにとって、一つの区切りとなる出来事でした。 web-2はPHPで記述されたwebサーバで、2015年から https://www.mercari.com/jp/ 配下のコンテンツを配信していましたが、現在では複数のWebマイクロサービスがその機能を担っており、 https://www.mercari.com/jp/ 配下のページは後継となるWebマイクロサービスが配信するページへリダイレクトされています。 メルカリWebのマイクロサービス化に向けた開発が始まり、最終的にweb-2がシャットダウンされるまで、実に4年以上の期間がかか

    メルカリWebのマイクロサービス化、その4年 | メルカリエンジニアリング
  • レガシーなシステムとの向き合い方 | メルカリエンジニアリング

    はじめに はじめまして、@takashi-kun です。 自分が所属するチームでの連載企画 "Blog Series of Introduction of Developer Productivity Engineering at Mercari" 、今回はメルカリが成長を続けている中で多くのレガシーな技術と私達 Core SRE チームがどのように向き合っているか具体例を基に紹介します。 突然ですが、「レガシーな技術」と聞いて何を思い浮かべるでしょうか? 古いミドルウェアを利用している、昔の言語で書かれている、オンプレ環境を利用している、などなど、いろいろな定義が浮かぶと思います。 メルカリは事業スピードの加速に伴いシステムが日々拡張/拡大されていくため、「owner/maintener ともに存在しないシステム」が少なからず存在します。owner も maintener もいない中でシ

    レガシーなシステムとの向き合い方 | メルカリエンジニアリング
  • メルカリの検索基盤の変遷について | メルカリエンジニアリング

    ※この記事は、"Blog Series of Introduction of Developer Productivity Engineering at Mercariの一環で書かれています。 はじめに こんにちは、メルカリ、サーチインフラチームのshinpeiです。今回はメルカリの検索基盤の裏側について、そのアーキテクチャ変遷について書こうと思います。2018~2021年の4年間で、大きく3回、変化をしました。設計の段階では希望と期待にあふれているアーキテクチャでも、問題は後からやってきます。設計には良し悪しがあり、変化することで知見を得ながら、改善を続けています。え、これだと危ないのでは?、、あぁ、やはりそうなるのね。などと、ご笑覧いただければ幸いです。 前回までのお話 メルカリの検索は、創業時から、Solrをベースにしたシステムで組まれてました。その変遷はこちらのスライドにまとめてあ

    メルカリの検索基盤の変遷について | メルカリエンジニアリング
  • メルカリレンズβ WebAssembly × AIのプロダクト開発 | メルカリエンジニアリング

    この記事は、Mercari Advent Calendar 2021 の22日目の記事です。 こんにちは、メルカリ EdgeAIチームの@tkatoです。私たちのチームでは、クライアントサイドでの機械学習応用について、アルゴリズム開発からプロダクション開発までを担当しています。 12月16日に、メルカリレンズβという新しいプロダクトが公開されました。この記事では、メルカリレンズβを開発するにあたり、Webブラウザ向けに機械学習を用いたUIを開発した経験から得た知見を紹介したいと思います。 メルカリレンズβは、スマホのカメラで商品をかざすだけでメルカリでの取引相場や類似商品などの情報を表示するWebアプリです。いくらで買えるか知りたいときや、出品する値段で迷ったときに、メルカリを使ったことのないお客様でも気軽に使えるアプリを目指しています。 技術的には、機械学習を利用した直感的なUIをクライ

    メルカリレンズβ WebAssembly × AIのプロダクト開発 | メルカリエンジニアリング
  • お客さま影響に基づく実践的なアラート方法 | メルカリエンジニアリング

    この記事は、Merpay Advent Calendar 2021の16日目の記事です。 こんにちは、メルペイSREチームのfoostanです。普段はキーボードのことばかり話していますが、業ではSREチームの一員としてソフトウェアエンジニアリングをしたりEM(Engineering Manager)をしています。 SREチームの重要な役割の一つはサービスの信頼性を高め、当たり前のようにメルペイを使えるようにすることです。信頼性を高めるためにはサービスが止まらないようなシステム構成にすることが重要ですが、サービスが異常な状態になったとき、関係者に状況を知らせるためのアラートを適切に上げることも重要です。そこで記事ではお客さま影響に基づく実践的なアラート方法についてご紹介します。 適切なアラートとはなにか まずはどのようにアラートを上げるのが適切か考えてみます。アラートを上げる目的のひとつ

    お客さま影響に基づく実践的なアラート方法 | メルカリエンジニアリング
  • メルカリで築くエンジニアキャリア | メルカリエンジニアリング

    メルカリ Engineering Office チームの@yuki.tです。 私たちのチームでは、「全てのエンジニアに最高の従業員体験を」というミッションを元に、様々な活動を行なっています。私はその中でも、エンジニアの評価や異動のための仕組みづくりに携わっています。 この記事では、メルカリエンジニアのキャリアパス・評価制度などを紹介し、メルカリでエンジニアがどのようにしてキャリアを築いていけるかを書いていきます。 メルカリにはワークスタイルを限定せず、多様な働き方を尊重する制度 “YOUR CHOICE” がありますが、キャリアに関しても、それぞれのwillを尊重しながら、バリューを最大限に発揮することを目指した仕組みや制度があります。 メルカリにおけるキャリアタイプ メルカリでエンジニアとしてキャリアを積み重ねる上で、「マネジメント」「Iindividual contributor(スペ

    メルカリで築くエンジニアキャリア | メルカリエンジニアリング