サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
都知事選
lab.mo-t.com
バックオフィス基盤第2グループの名嘉眞です。私の担当しているプロダクトにカーソルページネーションを実装したので、その経緯と実装内容を記事にしたいと思います。これからカーソルページネーションを実装しようとしている方の参考になれば幸いです。 カーソルページネーションを実装したきっかけカーソルページネーションを実装したきっかけは、1ユースケースでデータ量が大きくなるAPIを追加する必要があったためです。 具体的にいうとある特定の種別の決済情報を蓄積しているマイクロサービスがあり、そのマイクロサービスを利用する管理画面のサービスが存在していて、管理画面でその特定の決済情報を表示したり、CSVダウンロードしたいという機能追加がありました。サービス間の通信はgRPCです。 この要件だけだとオフセットページネーションでも良さそうなのですが、以下のような課題がありました。 ※オフセットページネーションとは
今年1月からFlutterのWebアプリケーションを開発している孫と申します。 Flutter 3.0から公開されたThemeExtensionはあなたのコードをもっと綺麗に整えるのができます。なぜThemeExtensionシステムを使うべきなのか、どのように使ったらいいのかを確認してみましょう! ※ Youtubeの「ThemeExtension | Decoding Flutter | Decoding Flutter」の内容を元に編集しました。 WEBではセマンティック情報とスタイル情報を分けた方が良いという話があります。 例えば <p style="color: red;">どうする?GOする!</p>上記のように同じところに置くことより <!-- index.html --> <p>どうする?GOする!</p>/* style.css */ p { color: red; }セ
AI技術開発部の老木です。今回、分析ログの増大が課題となりJSON型の導入を検討しました。分析ログをJSON化した際に問題となる配列の扱いについて紹介します。 適当に作ったログがでかすぎる。ログを出力・分析する人間によくある悩みではないでしょうか。そこで、大きすぎるログの容量削減にBigQueryのJSON型が利用できないかを検討しました。 課題弊社では分析ログとしてJSONを格納した文字列を出力してきました。分析ログはスキーマの変化が激しく、そのたびにテーブルのスキーマ変更をする手間を避けるためです。 例えば、配車ロジックのログでは、以下のようなフォーマットのログが出力されます。これは、リクエストと車両をマッチングする際に、そのリクエスト情報と周辺にいた車両情報を含んでいます。このリクエスト情報が増えたり、車両情報が増えたり減ったりといったスキーマ変更が生じます。 { "matching
AI技術開発部の鈴木達哉です。Mobility Technologies (MoT)ではドライブレコーダーから取得できる情報を元に道路上の物体を検出し、地図と比較することで現地と地図の差分を見つけ、地図を更新する『道路情報の自動差分抽出プロジェクト』を株式会社ゼンリンと共同で進めています。本記事ではドラレコ動画から道路標識を認識するAIの精度改善を機械学習モデルではなくデータの量と質に着目し実現した事例を紹介します。 はじめに本記事は、2022年4月6日に開催された「MoT TechTalk #11 深掘りコンピュータビジョン!研究開発から社会実装まで」での発表「データの量や質を改善するData-Centric AIな取り組み」を発展させたものです。発表の動画・資料を公開していますので、そちらもあわせてご覧ください。 本プロジェクトにおいては、様々な種類の道路標識をドラレコ動画から検出する
(これはMoT Advent Calender 2022の24日目です) データエンジニアの渡部徹太郎です。私の担当しているプロジェクトでは、Infra as CodeにTerraformではなくCDKというツールを使っているので、その話をします。 CDKの概要 CDKとはAWS専用のInfra as Codeツールです。正式名称AWS クラウド開発キット (AWS Cloud Development Kit)です。 CDKの特徴プログラミング言語でAWSのリソースを記述プログラミング言語はTypeScriptがメインだが、他にもJavaScript,Python,Java,C#でも記述できるAWSのリソースを表すクラスをNewすると、AWSのリソースができるイメージ実態はCloudFormationを吐き出してデプロイするツール。デプロイするとAWSのCloudFormationのSta
技術戦略部 SREグループの古越です。 MoTで開発しているサービスの多くはAurora PostgreSQLを利用しています。一部サービスにはデータが蓄積し、肥大化していくテーブルの管理が課題になっています。今回は開発者からの要望で新規サービスの幾つかにパーティショニングを導入する事になりました。SREグループでパーティショニング導入までに検証したことを検討編と実践編という2つの記事で紹介できればと思います。 検討編では事前検証として行った事のまとめとして、導入検討の段階で注意するべきポイントを紹介いたします。実践編では導入するために行った具体的な施策について紹介してきます。 背景肥大化するテーブル管理の課題PostgreSQLに限らずDB一般に言えることですが、ログや履歴が含まれるテーブルはサービス成熟とともに徐々にデータが蓄積していきます。蓄積しすぎて肥大化すると簡単なクエリの応答が
こんにちは、技術戦略部 SREグループのカンタンです! データベースのパスワードやAPIサーバの認証情報など秘密情報をきちんと管理しないと漏洩が発生しセキュリティインシデントに繋がる可能性が高いでしょう。 数ヶ月前から、SREグループが扱っている秘密情報の管理方法をgit-cryptからsopsに切り替えました。運用が楽になり、セキュリティレベルが向上し、非常に満足しているためsops自体とSREグループの使い方を紹介させていただきたいと思います。 背景SREグループでは、Terraform用の設定やKubernetesで動いているサービスの環境変数など秘密情報を暗号化した上で一つのgitリポジトリで一元管理しています。秘密情報を利用する際、暗号化ファイルを復号してからgrepなどで検索したり、Terraformプロジェクトを適用したり、環境変数をKubernetesのSecretに反映し
タクシーアプリ「GO」、法人向けサービス「GO BUSINESS」、タクシーデリバリーアプリ「GO Dine」の分析基盤を開発運用している伊田です。GitHub Actions から OIDC トークンを利用し、サービスアカウントキーなしで GCP に認証した上で Terraform の CI/CD を構築する方法を紹介します。 ※ 対象読者は分析基盤を管理しているデータエンジニア、または Terraform を管理しているエンジニアです はじめに本記事では、なぜ Terraform の CI/CD を構築したのか、まず分析基盤について簡単に説明し、次に分析基盤のうち Terraform で何を管理しているのか説明します。その上で現状抱えていた課題とそれに対する対応案を説明させて頂き、実際に構築に使用した技術要素やコード、運用にあたって気をつけたことについて紹介させて頂きます。 分析基盤に
タクシーアプリ「GO」、法人向けサービス「GO BUSINESS」、タクシーデリバリーアプリ「GO Dine」の分析基盤を開発運用している伊田です。今回、dbt と Dataform を比較して Dataform を利用することにしましたので、導入経緯および Dataform の初期構築を紹介します。 ※ 本記事の対象読者はELTツールを利用している方を対象にしています これは MoT Engineer Challenge Week 2022 Spring の記事です。 はじめに本記事では、まず、dbt および Dataform というツールについて簡単に説明させて頂き、次に現在データ分析チームが抱えている課題について取り上げます。その後、2つのツールについて検証した内容を紹介し、その結果、Dataform の導入に至った経緯を説明します。また、最後に Dataform の初期構築で工夫し
MoTではマイクロサービスアーキテクチャを採用しており、標準技術スタックにGitHub Actionsを採用しています。本記事では数多くのリポジトリのCI/CDパイプラインを管理していくアプローチを紹介します。 はじめに昨年10月頃にSREグループにjoinした古越です。クラウドインフラの構築、運用とアプリケーションのCI/CD構成などを担当しています。 MoTの中での開発体験向上はSREグループのミッションの一つです。CI/CDについては開発体験とアプリケーションの品質に大きく寄与する要素だと考えています。 MoTのSREグループが構築するサービスのCI/CDにはTravisCIが長く使われていました。最近になりGitHub Actionsを使う方針に切り替えており、現在は移行途中になります。移行については別記事で触れようと思いますが、移行過程でCI/CDの共通化や管理上の課題が幾つか明
こんにちは、技術戦略部 SREグループのカンタンです。 Mobility Technologies(MoT)では様々なサービスを支えるためにKubernetesを幅広く利用しています。マルチクラウド構成でIstioサービスメッシュやHelmパッケージマネージャなどを使ってAmazon EKSとGKEクラスターを運用しています。 本記事ではKubernetes、Istio、Helmのとても古いバージョンで動いていたクラスターの大幅アップデートストーリー、乗り越えた壁、ダウンタイムを発生させないためのコツなどを紹介させていただきます。内容がそれなりにあるため複数の記事に分けて説明させていただきます。 背景MoTではAmazon EKSが東京リージョンに対応した翌月の2019年1月からEKSクラスターの本番運用を行なっています。Kubernetesの運用はその半年前にAzure AKSクラスター
AI技術開発部の木村です。 Mobility Technologies(以下MoT)では、画像認識モデル(主にニューラルネットワーク)の開発に加え、車載デバイス上でモデルをリアルタイムに動作させるための軽量化・高速化にも取り組んでいます。軽量化・高速化には、こちらの資料で紹介しているように枝刈りや蒸留など色々なアプローチがありますが、本記事では量子化による高速化を取り上げます。 量子化はモデルの軽量化・高速化に非常に効果的ですが、物体検出モデルなど複雑なモデルでは(この記事で実験するように)量子化による精度低下が発生しやすい傾向にあります。本記事では、YOLOv3とYOLOv5の量子化を具体例として、物体検出モデルの精度低下を抑えつつ量子化するためのポイントを解説します。 はじめに本記事は、2022年4月6日に開催された「MoT TechTalk #11 深掘りコンピュータビジョン!研究開
タクシーアプリ「GO」、法人向けサービス「GO BUSINESS」、タクシーデリバリーアプリ「GO Dine」の分析基盤を開発運用している伊田です。BigQuery Remote Functions (Preview) を利用することのメリットや、導入にあたり工夫した点を紹介します。 ※ 本記事の対象読者は BigQuery を利用してパイプラインを作成している方を対象にしています はじめに本記事では、BigQuery Remote Functions について取り上げ、どのようなメリットがあるのか説明し、実装方法を解説します。次に Preview のプロダクトをパイプラインに導入するにあたり工夫した点を紹介させて頂きます。 ※ 本記事では、Cloud Functions とは何かというような解説はしていません BigQuery Remote Functions とはBigQuery から
MoT、AI技術開発部の立松です。先日、統計検定準一級(CBT)を受験し合格しました。非常に学びの多い資格だったので、勉強の流れや受験してよかった点などをご紹介したいと思います。 はじめにこんにちは!MoT、AI技術開発部の立松です。普段はDRIVE CHARTというサービスにて、データサイエンティストとして分析業務やモデル開発等をしています。先日、統計検定準一級(CBT)を受験し、合格しました。非常に学びの多い資格だったので、勉強の流れや受験してよかった点などをご紹介したいと思います。 試験概要「統計検定」とは、統計に関する知識や活用力を評価する全国統一試験です。今回私が受けた準1級は、「実社会の課題に対する適切な手法の活用力」というレベルを目安に設計されています。2021年より、CBT(Computer Based Testing)方式の試験に切り替わっており、都合のよい試験日時に受験
こんにちは、Mobility Technologiesのデータエンジニアの渡部徹太郎です。 データサイエンティストの皆さん、以下のような状況になったことないでしょうか。 データの加工処理が遅いからインスタンスタイプを上げたが速くならなかった機械学習の学習が遅いから、GPUを増やしたが、速くならなかった こういったときは以下の資料を見てください。きっと解決します! スライドへのリンク この資料は、先日社内の勉強会で説明した資料になります。 We're Hiring!
この記事はMobility Technologies Advent Calendar 2021の18日目です。 こんにちは、AI技術開発AI研究開発第二グループの劉です。私はドラレコ映像から標識などの物体を見つける物体検出技術を開発しているのですが、その精度を改善していくためにはまず検出エラーを細かく分析することが重要です。本記事では、物体検出のエラー分析に関する論文である”TIDE: A General Toolbox for Identifying Object Detection Errors”を解説すると共に、その著者らが公開しているツールを実際に使ってみた結果をご紹介をしたいと思います。 はじめに本記事では、以下の論文を取り上げます。コンピュータビジョンで最も有名な国際学会の一つであるECCV(European Conference on Computer Vision)で202
Amazon Managed Workflows for Apache Airflow (MWAA) を導入・運用してみて DRIVE CHARTでは、機械学習システムのデータパイプラインとしてAirflowを利用しています。 今回は、AWSで提供されているマネージドサービス「Amazon Managed Workflows for Apache Airflow(MWAA)」に移行したので、ちょっとしたtipsや導入・運用時のハマリポイントをまとめようと思います。 はじめにこんにちは スマートドライビング事業部システム開発部AI基盤グループで、皆VSCodeを使ってる中で1人寂しくVimで開発している大内です。 今回は、機械学習システムのデータパイプラインとして、AWSが提供しているAirflowのマネージドサービス「Amazon Managed Workflows for Apache
こんにちは、SREグループの水戸 (@y_310) です。MoTでは多種多様なマイクロサービスが稼働しています。マイクロサービスは一般的に、あるプロダクトを何らかの形で分割した内の一部の役割を担うものです。その分割されたマイクロサービスにおいてどこまでをそのサービスの責務とし、どの役割を含めてどの役割を含めないか、という他のサービスとの適切な境界を見つけることは非常に重要です。SREグループでは多くのマイクロサービスのアーキテクチャ設計に関わりながらマイクロサービスの分割点についての知見を得てきました。この記事では実例をベースにマイクロサービスの分割点の見つけ方について書きたいと思います。 単機能のサービスビジネスロジックとの依存度が低い単機能かつ汎用的な機能は、データストアとの依存性も低く比較的容易に単体のサービスとして切り出すことができます。 分割点の目印データストアへの依存が無いデー
技術戦略部 SREグループのカンタンです。 弊社が提供しているタクシーアプリ「GO」、タクシーデリバリーアプリ「GO Dine」、法人向けサービス「GO BUSINESS」の実現に当たって多数のマイクロサービスを構築することになりました。 マイクロサービスの増加に伴って、ログの出力フォーマット、収集方法、閲覧方法の共通化がより大事になってきました。本記事では弊社で考えたログフォーマットを紹介させていただきます。 課題お客様からのお問い合わせ対応、障害の原因調査、パフォーマンス管理、サーバ処理の記録としてなど、ログは様々な用途で利用されていてシステム開発にあたりとても大事なデータです。マイクロサービス化に伴って全体のシステムが複雑になるため、ログ出力の際に様々なシステム特性を考慮する必要があります: サービス数が多い利用している言語、プロトコル、フレームワークがサービスによって異なる複数のサ
AI技術開発部アルゴリズムグループの谷本です。「マップマッチ・経路検索などのアルゴリズムを含む内製地図ライブラリ」のメンテナンスを主業務としています。今回はpythonによって実装された内製地図ライブラリ、特に経路探索部分をCythonを使って高速化した事例を紹介します。 経路検索について経路検索は、指定した出発地点と目的地点を結ぶ2地点間の経路の中で「最も走行時間が短い経路」を探索する技術です。この経路検索で求まる経路は「出発地点から目的地点までたどり着くまでの通過する道路の一覧」になります。また、経路検索により「その経路を通過するまでの所要時間」も求まります。経路検索はタクシーアプリ『GO』の予想到着時間の算出に用いられています。 タクシーアプリ『GO』の経路探索は弊社で内製している地図ライブラリを用いて実現しています。 内製地図ライブラリの現状内製地図ライブラリはpythonで実装し
はじめまして、AI技術開発部 分析グループ の浅見です。 Mobility Technologies(MoT)では、BigQuery上でログの保存やデータマート運用を行い、集計や分析をした上で、LookerやGoogleスプレッドシートで効果検証などをレポート化しています。BigQueryはとても強力なツールなのですが、統計処理を入れようとすると、PythonやRなどの別モジュールを構築する必要があり、メンテナンスコストが発生してしまいます。 そんな時のため、BigQuery内で統計処理を完結させるちょっとしたTipsを紹介します。 UDFを最大限活用しましょう!本記事の基本的な発想としては、 BigQueryでは、統計処理を行う関数はそこまで充実していません。例えば、t分布の累積分布関数(CDF)さえ計算できれば、t検定のp値を得ることができるのですが、BigQueryの統計集計関数では
前回はNeovimにLuaランタイムが組込みされた事によりNeovimのプラグインのエコシステムに大きな変化が起こったことを書きました。 後編ではNeovim v0.5から追加された大きな新機能であるTree-sitterとLSPクライアントについて解説してきます。この2つの機能はどちらもLuaで実装されており、Neovim v0.5以降のLuaランタイムが組込みされたNeovimでのみ動作します。 もし前編をご覧になっていなければ、前編のあとに後編をご覧になったほうが、より理解が深まると思いますので、時間に余裕があればぜひご一読ください。 Neovim v0.5リリース記念 v0.5の新機能を紹介します【前編】 Treesitter syntax engineNeovim v0.5ではTree-sitterというライブラリが組込みされています。 Tree-sitterを用いる事により、N
初めまして。MoTのAI技術開発部アルゴリズム第一グループの島越 [1]です。本ブログでは、私が最近ソロで10位を獲得したKaggleのコンペティション「Shopee - Price Match Guarantee」で行った取り組みについてと上位の手法について紹介したいと思います。なお、本記事で使用している画像は特に断りがない限り、上記コンペの画像を使用しております。 1. 本コンペについて まず、今回のコンペがどのようなタスクを解く問題だったのかについてご紹介します。このコンペは、東南アジア最大級のECプラットフォームであるShopeeが開催したもので、データとしてはユーザが登録した商品画像と商品のタイトルが与えられます。また、ラベルとしてはユーザが登録した商品の種別が与えられています。このラベルは、ユーザが登録したものなので、ノイズが多く載っているものになっており、同じ画像や同じタイト
次のページ
このページを最初にブックマークしてみませんか?
『Blog | MoT Lab (GO Inc. Engineering Blog)』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く