Tatsuya Shirakawa

機械学習、レコメンド、情報抽出、自然言語処理、画像処理、数理最適化、データ分析、データ…

Tatsuya Shirakawa

機械学習、レコメンド、情報抽出、自然言語処理、画像処理、数理最適化、データ分析、データ基盤…などのテクノロジーの周辺に住んでいます。データが巡って体験に還元されるようなストーリーを未来志向で妄想するのが好きです。

最近の記事

ドメイン固有辞書をつかってドメイン固有コーパスを雑につくる方法

古巣のABEJAからABEJA-CC-JAコーパスが発表され、中身を見てみたところ商用利用可ですしとても使いやすそうだったので、ABEJA-CC-JAコーパスを使ってドメイン固有のコーパスを作ろうとしてみました。 やったことドメイン固有の辞書(キーワード一覧)を入手する aho-corasickでドキュメントごとのキーワードマッチを求める 非固有語の除外などをしてデータ・辞書のクリーニング 一定の基準に合致したドキュメントを抽出する abeja-cc-jaコーパスa

    • AlbumentationsのMotionBlurは画像をシフトする

      自然画像を対象とした物体検出モデルを学習していてData AugmentationのためにAlbumentationsを使っていたのですが、AlbumentationsのMotionBlurが画像をシフトする事に気づかず、Bounding Boxの真値とずれてハマったので本記事を書きました。 Albumentationsは画像をシフトするサンプルとして以下の画像で説明します。 Bounding Boxを付けたものは下記です。 AlbumentationsにはMotion

      • WindowsのWSL上のUbuntu GPUサーバー環境構築

        業務でGCPのGPUインスタンスに接続して使っていたのですが、最近ほぼGPUインスタンス(とくにT4)に接続できなくなっていました。世界中のエリアにアクセスして接続を試みて回るスクリプトを組んでGPUリソース確保チャレンジをしていたのですが2日間繋げなかったので、さすがに業務に支障が出ると思い、自宅にGPUサーバーを購入してDeep Learningと生成AI用のGPU環境として使うことにしました。 WSL上のUbuntuにTailscaleでVPNを張ることでリモートから

        • Pythonのlogging.getLogger()で作ったログのログレベルをDEBUGにしたら、外部パッケージのデバッグログが出力された件

          タイトルが理解できた方はスルーしてください。もしどういうことかちょっとでも疑問に感じた方はお読みください。自分はこれを見落とし、ログ基盤に負荷を与えて痛い目にあいました。 論より証拠import loggingimport requestshandler = logging.StreamHandler()handler.setLevel(logging.NOTSET)formatter = logging.Formatter("%(name)s - %(levelname)

        ドメイン固有辞書をつかってドメイン固有コーパスを雑につくる方法

          poetry --directory で参照する pyproject.toml と poetry.lock を切り替える

          パッケージ管理に poetry を使っているのですが、機械学習などをしていると、GPUやCPU、時には Apple Silicon(M1, M2, M3 Macなど)ごとにインストールするパッケージやパッケージのビルドを切り替えたりする必要がしばしば発生します。 これまで下記のようなかなりアドホックな pyproject.toml を書いて対応していたのですが、そろそろ限界を感じはじめていました。 # 引用元: https://github.com/python-poet

          poetry --directory で参照する pyproject.toml と poetry.lock を切り替える

          μTransfer: 小規模モデルでのハイパラ探索を大規模モデルに転移し学習を効率化する

          最近、友人から大規模モデルの学習を劇的に効率化しそうな下記の事実(μTransfer)を教えてもらい、こんなことが成り立つことに非常に驚くとともに、それを知らなかったことにちょっとしたショックを受けました。 ここで出てくる μP(Maximal Update Parametrization)というのは、 Tensor Programs (TP)というフレームワークにおいて理論的に導出されたパラメータ付け(パラメータのスケーリングなど)の方法です。 TP は、 Neural

          μTransfer: 小規模モデルでのハイパラ探索を大規模モデルに転移し学習を効率化する

          2023年個人まとめ -- nouu 創業3ヶ月目

          こんにちは、合同会社 nouu の代表をしている白川です。 今年の 10 月に合同会社 nouu を立ち上げ、3 ヶ月弱ほど経ちました。年納めも兼ね、創業周辺でやったことや感じたこと、これからやってみたことをまとめてみたいと思います。会社としてというより個人としての観点が多めです(とはいえ一人社長なのでほぼ会社 = 個人ですが)。 自分は何者かこれまで 15 年弱くらい、機械学習・数理最適化・アルゴリズム・自然言語処理・画像処理・データ分析・データ基盤構築などのデータ周辺の

          2023年個人まとめ -- nouu 創業3ヶ月目

          LLM の chat_template に気をつけろ!

          nouu の白川です。 毎週のように新しいより高精度な LLM が出てきてキャッチアップするのも大変ですね。量子化された小さなモデルなら Google Colab などでチャチャッと試すのは意外と簡単なのですが、公式が提供しているサンプルからはみ出た事をしようとすると罠にハマることがあります。 その一つが chat_template です。chat_template は instruction / chat モデルを使うときの入力フォーマットを定義した文字列です。 最近

          LLM の chat_template に気をつけろ!

          日本語に対応した Embedding Model のベクトル検索での精度比較

          こんにちは、nouu の白川です。 OpenAI Dev Day、よいリリースがたくさんありましたね!GPT-4 Turbo が出てくれたお陰で、production利用がだいぶ捗りそうです。一方で、Text Embedding に関しては全くリリースはありませんでした。 自分は Text Embedding のモデルとしてちょっと昔は sonoisa/sentence-bert-base-ja-mean-tokens-v2 をよく使っていました。最近は環境を他の人と共有

          日本語に対応した Embedding Model のベクトル検索での精度比較

          経験と流動性がスタートアップを加速する

          nouu の白川です。いまは法人として、以前は個人事業主としてあるいは企業に所属しながら様々なお客様や友人・知人とご一緒して感じていたことを言語化してみました。私の出自的に、AI / データ領域での話を前提にしていますが、他の領域でも大きく違いはないのではと想像しています。 かけた時間に対して得られる品質向上は逓減するこんな図をよく見かけます。 かけた時間に対して得られる品質の向上は逓減していき、品質を 0 から 60 までもっていくのに必要な時間よりも 60 から 80

          経験と流動性がスタートアップを加速する

          合同会社 nouu を設立しました

          このたび、合同会社 nouu (ノウ)を設立しました。 nouu という名前は いま、即時性をあらわす now AI に象徴されるスマートさをあらわす脳(ノウ) 深い理解と知識をあらわす know お客様一人ひとりのことを深く知り、それを通じてお客様のビジネスを成長させていくという約束(know you) にもとづき命名しました。 これまでに学び・蓄積してきた AI / データ領域における知識や経験を社会に還元しつつ、スタートアップや新規事業の設立を行おうとして

          合同会社 nouu を設立しました

          Text Embedding と LSH を用いた高速商品バリアント判定

          こんにちは、カウシェで機械学習エンジニアをしている白川です。 先日、下記の記事でレコメンドの実装の裏側についてご紹介しました。 この記事の内容を人に説明する機会があって読み直していたら商品バリアント判定部分のアルゴリズムの説明が抜けている事に気づいたので、その部分を切り出してちょっとした Tips としてご紹介したいと思います。 商品バリアントって?同一商品の色違い・サイズ違い・柄違い・味違い…などを商品バリアントと呼びます。カウシェの扱う商品にも商品バリアントが無数にあ

          Text Embedding と LSH を用いた高速商品バリアント判定

          1 億ユーザー 1 億商品棚の実現に向けた、パーソナライズされた商品レコメンド機能の裏側(Part2 実装編)

          こんにちは、カウシェの AI チームの tatsuya(白川達也)です。 2022 年 11 月に入社してから検証・実装していた商品レコメンド機能がついにリリースされました(現状 iOS 版でのみ先行配信されています)。カウシェでは初めての機械学習を使った機能だったこともあり、リリースまでこぎつけるには超えないといけないハードルがいくつもあってそれなりに大変だったのですが、そのあたりの背景や経緯を踏まえ、実装の裏側を公開してみたいと思います。 本記事は「Part 2 実装

          1 億ユーザー 1 億商品棚の実現に向けた、パーソナライズされた商品レコメンド機能の裏側(Part2 実装編)

          1 億ユーザー 1 億商品棚の実現に向けた、パーソナライズされた商品レコメンド機能の裏側(Part 1 背景・経緯編)

          こんにちは、カウシェの AI チームの tatsuya(白川達也)です。 2022 年 11 月に入社してから検証・実装していた商品レコメンド機能がリリースされました(現状 iOS 版でのみ先行配信されています)。カウシェでは初めての機械学習にもとづく機能だったこともあり、リリースまでこぎつけるには超えないといけないハードルがあって時間がかかってしまったのですが、そのあたりの背景や経緯を踏まえ、実装の裏側を公開してみたいと思います。 本記事は「Part 1 背景・経緯編」

          1 億ユーザー 1 億商品棚の実現に向けた、パーソナライズされた商品レコメンド機能の裏側(Part 1 背景・経緯編)

          自己流 Vertex AI Pipelines 開発プラクティス

          こんにちは、カウシェで機械学習エンジニアをしている tatsuya (白川達也)です。最近まで取り組んでいたレコメンド機能の実装を通じて、Vertex AI Pipelines のカウシェにおけるプラクティスを自分なりに固めてみたので、公開してみたいと思います。 今回紹介するプラクティスのなかには実は Bad Practice なものもあるかもしれません。より良い方法をご存じの方は、直接教えていただいたり、Twitter などで共有・公開していただけるととても嬉しいです。こ

          自己流 Vertex AI Pipelines 開発プラクティス

          カウシェに AI チームをつくりました

          こんにちは、カウシェで ML Engineer をしている tatsuya(白川)です。 3月から AI チームという組織横断で ML/DS 的なことを行うチームを作り、Platform チームと AI チームを兼任しています。AI チームは現在自分ひとりです。 今回はなぜAI チームを作ったのか、そして AI チームは何をどう行っていくつもりなのかについて、考えをまとめてみたいと思います。 Team Topologies における機械学習チームカウシェでは Team

          カウシェに AI チームをつくりました