デモアプリの動画

Elasticsearchの近似近傍探索を使って、ドラえもんのひみつ道具検索エンジンを作ってみた

Elasticsearch 8 系から使用可能になった近似近傍探索1を使って、ドラえもんのひみつ道具の自然言語検索ができる検索エンジンを作ってみた。 デモ動画のように、検索したいひみつ道具を説明する文章することで近しいひみつ道具が検索されます。 コードは GitHub に公開してあるので、興味のある方は手元で、動かして遊ぶことが出来ます。 poetry と Docker さえあれば動くようになっています。 hurutoriya/doraemon-himitsu-dogu-search: Doraemon Himitsu Dogu Japanese semantic search based on Elascticsearch ANN システムの概要図はこんな感じ 所感 ドラえもんのひみつ道具のデータセットを今回1から作ったが、パースと前処理がめんどくさくてここが一番手間がかかった。が、工夫しないと出来なかったので、一番楽しいところでもあった。 文章の特徴抽出は、sonoisa/sentence-bert-base-ja-mean-tokens-v2 · Hugging Faceを使わせていただき、驚くほど簡単に実現できた。 実際はもっと精度を高めるには、fine tune などがいいのだろうが、システム側を作ることに注力したかったので今回は割愛 デモアプリの構築は streamlit を使って 20m くらいで作れたので、相変わらず便利すぎて愛用している。今回の検索エンジンは CLI から実行もできるが、こうやってデモアプリがあったほうがそれっぽくて気持ちいい。 インデキシング時にトーカナイザーのことなど全く考えずに特徴ベクトルだけインデキシングして、それで検索が成り立つというのは新鮮。閾値設定しなければゼロヒット問題にも直面しないので、できることの幅は広がりそう。 Elasticsearch の近似近傍探索は、今回ベクトル同士の近似近傍探索しかやっていないが、それもインデキシング、クエリ部分は公式ドキュメントを見れば事足りたので変にハマることはなかった。 クエリ部分はこれだけで書けた。 1 2 3 4 5 6 7 8 9 10 query = { "knn": { "field": "vector", "query_vector": sentence_embeddings[0], "k": 10, "num_candidates": 100, }, "fields": ["name", "description"], } result = es....

October 23, 2022 · Shunya Ueta

Apache Beam 2.40 で導入された scikit-lean, Pytorch の効率的な推論が可能になる RunInference API を試してみる

2022-07-21 に Google Cloud が Cloud DataFlow の新機能として、DataFlow ML という新機能を発表した。1 Dataflow ML - Speaking of ML transforms, Dataflow now has added out of the box support for running PyTorch and scikit-learn models directly within the pipeline. The new RunInference transform enables simplicity by allowing models to be used in production pipelines with very little code. These features are in addition to Dataflow’s existing ML capabilities such as GPU support and the pre and post processing system for ML training, either directly or via frameworks such as Tensorflow Extended (TFX)....

August 18, 2022 · Shunya Ueta

KDD2022 で気になった研究

2022/08/14 - 2022/08/18 に開催される Knowledge Discovery and Data Mining (KDD) 2022 の情報が出揃ってきたので、気になった情報をメモしておく。 自分が気になるトピックは、変わらず機械学習の実応用とその周辺領域なのでそれに偏ったリストになっている。 ADS invited speaker KDD 2022 ADS Invited Speakers An overview of AWS AI/ML’s recent contributions to open source ML tools: Accelerating discovery and innovation 招待講演は確か毎回論文化されて ACM で公開されるので論文公開されたらぜひ読みたい。 Tutorias KDD 2022 Tutorials Schedule に Tutorial の情報がまとまっているが、タイトルだけでウェブサイトへのリンクが一切なく、読み手に不親切なので来年は、改善してほしい。去年はそんなことなかったので、なんとか来年はもとに戻って欲しい。 Graph-based Representation Learning for Web-scale Recommender Systems. Authors: Ahmed El-Kishky (Twitter)*; Michael Bronstein (Twitter); Ying Xiao (Twitter); Aria Haghighi (Twitter) Twitter が開催する Tutorial で、すごく面白そうなのだが全く情報が見つからなかった。Twitter Cortex にも情報が更新されていないので、しばらくしたら公開されていることを祈る。 New Frontiers of Scientific Text Mining: Tasks, Data, and Tools....

August 15, 2022 · Shunya Ueta
Machine Learning Casual Talks 13回目を開催

Human-in-the-Loop 🧐 🤝 🤖 を題材にした機械学習の勉強会を開催した

先日の記事で告知した1のですが、昨夜、「Human In The Loop」を題材にした勉強会を開催してきました。 実際に Human In The Loop を扱った MLOps の論文2 を過去に書いているくらい興味のある分野なので、この領域を盛り上げていくために開催できてよかった。 オンライン勉強会でしたので、配信動画を Youtube で公開しております。 Human In The Loop に興味のある方はぜひご覧ください。 Machine Learning Casual Talks #13 (Online) 各発表について 各発表の説明は割愛して、一言感想を述べさせていただきます。 Editors-in-the-loop なニュース記事要約システムの提案 by @upura 業務成果を国際会議のワークショップに通されたの素晴らしいですね 👏 (自分も論文を出したことがありますが)、論文を書くことが目的ではない職種で論文を出すのはそもそも体力が必要なので、提出してなおかつ採択されたのは素晴らしいの一言! Active Learning for Auto Annotation by @tkc79 自分たちのプロダクトで実際に能動学習の効果を検証して学びを得るというのは得難い経験ですね。尊い! 実際にやってみた上での実践的な経験を語ってくれたのが面白かったです。 NeurIPS Data-Centric AI Workshop by @K_Ryuichirou Data Centric AI Workshop の要約を話して頂きました。 The Godfather of MLOps である D.Sculley さん 3が 「Technical Debt in ML: A Data-Centric View」の話をされていたらしいのですが、これは見なければ…!...

March 31, 2022 · Shunya Ueta

機械学習モデルの改善手法の一つ、 Human-in-the-Loop について

Human In The Loop は、機械学習のモデルのライフサイクルに人が介在することにより、機械学習モデルの改善を目指す手法。 Human In The Loop の定義 YANS2021 で公開された馬場先生の Human-in-the-Loop 機械学習 / Human-in-the-Loop Machine Learning の資料は、現状の HITL の取り組みをわかりやすく説明してくれています。 ここでの Human In The Loop の定義が一番明瞭かなと個人的には思っており、 Q. より良いモデルを効率的に学習するために人間をどう活用するか? と書かれています。 Human In The Loop はちょっと意味が広めになりがちな言葉でもあるなと個人的には思っており、機械学習モデルの出力を使ってアノテーションを行う能動学習(Active Learning)の事を主に意味していることが多いが、もう少し広めの機械学習モデルのライフサイクルの中に、人間によるデータのレビューを設置すること 1 でも使われたりする。 が、根本的には馬場先生の定義したリサーチクエスチョンに帰結しますね。 日本語の書籍だと、 鹿島先生、小山先生、馬場先生らの ヒューマンコンピュテーションとクラウドソーシング 喜連川先生、森嶋先生らのクラウドソーシングが不可能を可能にする: 小さな力を集めて大きな力に変える科学と方法 などがデータをどうやって効率的に多数の人間の手によって取得していくかの領域を扱っている書籍。 英語の書籍だと Human-in-the-Loop Machine Learning: Active learning and annotation for human-centered AI がドンピシャの内容ですね。 中身は、能動学習とアノテーションの実践的知識について書かれています。 チョット前に見かけたこの資料は 人間参加型の AI 活用 (Human-in-the-loop) Human In The Loop について浅く広くまとめられていているので、Human In The Loop の概観を知りたい人には良いかも知れない。...

March 22, 2022 · Shunya Ueta