サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
今月の「かわいい」
tech.retrieva.jp
こんにちは。レトリバの飯田(@HIROKIIIDA7)です。TSUNADE事業部 研究チームのリーダーをしており、分類エンジンの開発・マネジメント、検索分野の研究、チームマネジメントを行っています。今回は、教師なしの文表現作成手法DiffCSEを紹介します。なお、日本語のより詳しい資料はこちらにありますので、合わせて参考にしてください。 前置き 丁度1年ほど前に、BERTを使った教師なし文表現としてSimCSEをご紹介しました。こちらの発展系として、DiffCSEをご紹介します。以下の図は、コメントがない限り、DiffCSE: Difference-based Contrastive Learning for Sentence Embeddingsより引用しています。 手法 発想の背景 この手法は、画像分野で提案されたEquivariant Contrastive Learningに影響を
Chief Research Officerの西鳥羽 (Jiro Nishitoba (@jnishi) | Twitter) です。 今回はHugging Face TransformersのモデルのONNX runtimeで実行を試してみました。それにより特にCUDAでの実行では2.4倍近い高速化が行えました。 Hugging Face TransformersのモデルのONNX形式への変換方法から、ONNX runtimeでの実行も含めて紹介したいと思います。 ONNXとは ONNX形式への変換 ONNX形式に変換したモデルを用いて推論する ONNX形式のモデルからGPUでの推論 実験 まとめ ONNXとは ONNX とは、機械学習のモデルを表現するOpenなフォーマットです。機械学習を実現するフレームワークは数多くありますが、ONNX形式での出力をサポートしてるものも多数存在 *1
こんにちは。レトリバの飯田(@meshidenn)です。TSUNADE事業部 研究チームのリーダーをしており、マネジメントや論文調査、受託のPOCを行なっています。 みなさんは、BERTなどの学習済み言語モデルに対して語彙を追加したくなることはありませんか? 諸々の論文(こちらやこちらやこちら)により、特定ドメインやrare-wordの語彙を追加することによって、性能が上がることが知られています。 そこで、語彙を追加しようと思い、TransformersのTokenizerの仕様を見ると、add_tokens という関数があります。これを使えば、tokenizerに語彙を追加できるので、あとはembedding側にも新しい語彙を受け取れるようにすれば万事解決です! とは、うまくいかないので、今回はこの辺りについて、ちょっとした解説をします。 add_tokensの問題点 なにがうまくいかな
こんにちは。レトリバの飯田(@meshidenn)です。TSUNADE事業部 研究チームのリーダーをしており、マネジメントや論文調査、受託のPOCを行なっています。今回は、教師なしの文表現作成手法SimCSEを紹介します。 背景・概要 手法 要因 実験 NLIタスクによる実験 クラスタリングによる実験 終わりに 背景・概要 自然言語処理は、昨今様々な領域へ応用することが期待されていますが、特に企業での応用においては、ラベル設計が出来ず、教師あり手法が使えない場面に遭遇することが多々あります。そんな場面で、きっと助けになってくれるのが教師なし手法です。特に、文の類似度については、様々なタスクやデータ作成に際して便利に使える場合があります。 近年、BERTなどの大規模事前学習済み言語モデルが出てきていましたが、教師なしの文類似度タスクの場合、BERTを使って単語をベクトルに変換し、そのベクトル
こんにちは。TSUNADE事業部研究チームリサーチャーの坂田です。 本記事では、Hugging Face 社が開発しているTransformersのPipelinesという仕組みを使って日本語の固有表現抽出を行う方法をご紹介します。 Transformersとは? 日本語学習済み言語モデル Pipelines Trainer 固有表現抽出とは? 実際に日本語NERTを試してみる 必要な各種依存ライブラリのインストール 使用するデータ 日本語固有表現抽出データセットでのFine-tuning Pipelinesを使った固有表現抽出 実行例 おわりに 参考 Transformersとは? TransformersはHuggingFace社が公開しているPython用ライブラリで、BERTを始めとするTransformer系の言語モデルを使用する際のデファクトスタンダードになっています。また、最
こんにちは。 リサーチャーの勝又です。 私はレトリバで自然言語処理、とくに要約や文法誤り訂正に関する研究の最新動向の調査・キャッチアップなどを行っております。 今回の記事では、先日開催された自然言語処理のトップカンファレンスである、ACL-IJCNLP2021でBest Paperとなった、VOLT(VOcabulary Learning approach via optimal Transport)を日本語文書分類で試してみた話をします。 概要 VOLTとは? VOLTの概要 VOLT内部の尺度であるMUVについて VOLTのアルゴリズム 実験 実験設定 日本語文書分類タスクについて 分類モデルのハイパーパラメーターについて VOLTのハイパーパラメーターについて 実験結果 VOLTを使用しなかった場合と使用した場合の比較 VOLTを使用せずに最適な語彙サイズを決める まとめ 概要 一般
Chief Research Officerの西鳥羽 (Jiro Nishitoba (@jnishi) | Twitter) です。 前回のブログでBigBirdを触ってみたを予告してましたが、BigBirdのような巨大なモデルを学習するために有用なライブラリがあったので、先にそちらを紹介したいと思います。 皆様は最近のモデルをみて、「お、いいな」と思うものの学習環境で16GPUとか64GPUなどの記述を見つけてしまい、遠い目をしながらそっ閉じした経験などありませんでしょうか。 今回紹介するDeepSpeed というライブラリは、物理メモリや外部SSDなどを活用してより大きなモデルを学習できるようにするものです。 実際GPUメモリ24GBのGeForce TitanRTX 2台でbaseサイズのBERTがほぼ同等の条件で学習できます。 DeepSpeed ZeRO ZeRO-Offloa
こんにちは。レトリバの飯田(@meshidenn)です。カスタマーサクセス部 研究チームのリーダーをしており、マネジメントや論文調査、受託のPOCを行なっています。 従来の検索アルゴリズムの問題点 COILの概要 検索時の挙動 学習時の挙動 結果 実験 終わりに 従来の検索アルゴリズムの問題点 従来の検索アルゴリズムの問題点といえば、"意味"を考慮できないということが挙げられます。従来の検索アルゴリズムは、単語一致をベースとして、そのスコアリングをするのが基本だからです。そのため、単語が一致しないことによる弊害がおきます。そして、「あー、意味を考慮できたらなー」という発想に至ります。 その結果、クエリも文書もベクトル表現にして計算してしまえ!ということで近年研究が盛んに行われており、BERT1が提案されて以降、教師データがあれば、うまく行くことがわかってきています。さらに、近年、最近傍アル
こんにちは。 カスタマーサクセス部リサーチャーの勝又です。 私はレトリバで自然言語処理、とくに要約や文法誤り訂正に関する研究の最新動向の調査・キャッチアップなどを行っております。 今回の記事では、国立国語研究所様との共同研究で作成した日本語話し言葉BERTとその利用方法について紹介します。 概要 BERTの簡単な説明 話し言葉BERT作成方法 書き言葉BERTの文法を表現する部分のみをCSJで追加学習 書き言葉BERTに対して、話し言葉データを用いた分野適応 実験 文法を表現する部分のみを追加学習することの有効性の確認 話し言葉データを用いた分野適応を行うことの有効性の確認 日本語話し言葉BERTの公開 ご利用方法 まとめ 概要 近年、自然言語処理の分野ではBERT(Bidirectional Encoder Representations from Transformers)と呼ばれるモ
こんにちは。カスタマーサクセス部 研究チームリサーチャーの坂田です。 レトリバでは、主にPoCやPoC支援ツールの開発、話し言葉関連の研究に取り組んでいます。 今回は、最近自然言語処理に興味を持ち始めた方に向けてPythonを使ってBERTを試す方法をご紹介します。 BERTとは? BERT自体に関しては、Web上に分かりやすい解説記事が既に多く存在していますので、ごく簡単な説明とさせて頂きます。 BERTは、2018年の10月にGoogleから発表され、2019年の6月のNAACL 2019に採択されました。 大規模な文書群から、それぞれの語彙がどのような使われ方をしているのかを統計的な言語モデルの学習を行います。 BERTでは、言語モデルの学習に、以下の2つのタスクを解きます Masked Language Model (MLM) 文書中の単語をランダムに隠し、それが何なのかを当てるタ
こんにちは。 カスタマーサクセス部リサーチャーの勝又です。 私はレトリバで自然言語処理、とくに要約や文法誤り訂正に関する研究の最新動向の調査・キャッチアップを行っております。 今回の記事では、以前作成した日本語wikiHow要約データに対して、BERTを用いて抽出型、抽象型要約を行った話をします。 概要と背景 wikiHow要約データの特徴 BERTを用いた要約 抽出型要約 抽象型要約 実験 実験設定 実験結果 まとめ 概要と背景 前回の記事ではwikiHowから日本語要約データを作成しました。 その記事内では、簡単な要約実験として教師なし抽出型要約を試しました。 今回は、BERTを利用した抽出型、抽象型要約を用いて要約実験を行いたいと思います。 wikiHow要約データの特徴 前回の記事の再掲になりますが、wikiHow要約データ量は次の通りとなっています。 train dev test
こんにちは。レトリバの飯田(@meshidenn)です。カスタマーサクセス部 研究チームのリーダーをしており、マネジメントや論文調査、受託のPOCを行なっています。 皆さんは、検索エンジンの評価をどのように行なっていますか?検索エンジンの評価は、実はユーザが求めていることによって変わってきます。今回は、ユーザが求めていること=ユーザモデルと検索評価指標の関係について、書いていきます。なお、以下の内容は酒井先生の書籍に記載されておりますので、詳細が気になる方は、こちらも読んでみてください。 集合検索指標 1クエリに対する評価 複数クエリに対する評価 ランク付き検索指標 平均精度と逆数順位のユーザモデル 終わりに 集合検索指標 1クエリに対する評価 最も基本的な指標は、集合検索指標です。これは機械学習でよく用いられる、 再現率・適合率・スコアを使用します。以下、それぞれ式にします。まず、ある検
こんにちは。レトリバのリサーチャーの木村@big_wingです。COVID-19の影響でテレワークが推進されていますが、現在私も奈良県の生駒市からフルリモートで業務を行っています。 今回は簡潔データ構造について2回目の記事で、あらゆる簡潔データ構造の基本となるビットベクトルに対する簡潔データ構造を紹介します。 1回目の記事はこちらです。 簡潔データ構造をさらに詳しく知りたい方向けの紹介として、Navarro氏の本、日本語で書かれたものとしては定兼氏の本と岡野原氏の本があります。 ビットベクトルに対する簡潔データ構造 ビットベクトルに対する演算 accessの例 rankの例 selectの例 ビットベクトルの情報理論的下限 ビットベクトルに対する簡潔データ構造の実現 rankの実現: 着想 rankの実現: 2種類のブロックによる分割 rankの実現: 時間計算量と空間計算量 まとめ ビッ
こんにちは。カスタマーサクセス部 リサーチャーの坂田です。 レトリバでは、固有表現抽出、分類、PoC用ツール作成に取り組んでいます。 PoC用ツール作成は、研究成果をより迅速にPoCで試せることを狙いとしています。 実験結果の可視化UIが充実しているMLFlow を中心に、足りないところを補うため、その他のツールとの組み合わせについて考えていきます。 MLFlow MLFlow は、実験管理からデプロイまでカバーしたツールです。特定のツールに依存しないということに重きを置いています。 4つのコンポーネントに分かれており、必要な機能のみを使えるようになっています。 MLflow Tracking : パラメータ、コードのバージョン管理、生成物の捕捉などを行う機能など。 MLflow Projects : 再現性を担保するための機能など。 MLflow Models : デプロイの支援機能など
こんにちは。 カスタマーサクセス部リサーチャーの勝又です。 私はレトリバで自然言語処理、とくに要約や文法誤り訂正に関する研究の最新動向の調査・キャッチアップなどを行っております。 今回の記事ではKoupaee and Wang1によって作成された英語要約データセットを参考に、日本語でも同様の要約データセットを作成した話をします。 現状の日本語要約データセット wikiHowを利用したデータセット作成 wikiHowの構造 wikiHowから作成した要約データの特徴 wikiHowから作成したデータの統計情報 データサイズ 単語数など 簡単な実験 手法 実験結果 まとめ 現状の日本語要約データセット 執筆現在で私が知る限り、研究目的で使用可能な日本語要約データセットは次の2つです。 朝日新聞要約データ(JNC, JAMUL/JAMUL2020)2 3行要約データセット(Livedoor Ne
社Dへの道 ~社会人博士課程に入学しました~ こんにちは。レトリバの飯田(@meshidenn)です。カスタマーサクセス部 研究チームのリーダーをしており、マネジメントや論文調査、受託のPOCを行なっています。 この4月から、東京工業大学(東工大)の岡崎研究室に社会人博士課程で所属しており、動機・受験・会社の支援など書いていきたいと思います。 社Dへの道 ~社会人博士課程に入学しました~ 動機~なぜ、社会人博士?~ 受験まで 試験 入学してから 動機~なぜ、社会人博士?~ 少し、身の上話から始めます。 私は、現在でこそ自然言語処理に携わっていますが、元々は航空宇宙工学専攻の修士卒業でした。その後、研究開発ファンディング機関に所属し、プリセールスとしてレトリバ(当時Preferred Infrastructure)に入社した後、リサーチャーになりました。高校生の時から、「技術で世の中を効率的
レトリバのCTOの武井です。 https://twitter.com/goth_wrist_cut 新型コロナウィルスが世界で猛威を振るっていますが、皆様安全に過ごせておりますでしょうか。 レトリバでは フルリモート化 や、 交流なども オンライン飲み会 にするなど、工夫して過ごしています。 さて、今回はそんな新型コロナウィルス、COVID-19の遺伝子配列をターゲットに、 Longest Common Substring(最長共通部分文字列)を求めたり、そのアルゴリズムの解説をしてみようと思います。 アルゴリズムの説明自体は William Fiset さんという方が動画で説明しており、 非常に分かりやすい図示がありますので、是非ご覧になって下さい。 https://www.youtube.com/watch?v=Ic80xQFWevc https://www.youtube.com/w
こんにちは。レトリバの飯田です。カスタマーサクセス部 研究チームに所属しており、論文調査やそのアルゴリズムを実行するスクリプトの実装などを行なっています。 今回は、Bag of Words(BoW)表現に於いて、これがTopicModelの最終形態ではないか?と私が思っているStructured Topic Modelの紹介と再現実装をpythonで行なったので、その紹介をします。 https://github.com/retrieva/python_stm Structured Topic Modelとは Correlated Topic Model(CTM) Sparse Additive Generative Model(SAGE) STMの更なる特徴 文書ートピックの分布の推定に対し文書属性情報を考慮できる 積分消去による高速化 STMの使い方 Covariate(Y)の使い方 P
レトリバの今村です。2019年9月中旬、Answer Finder 2.1.0 をリリースいたしました。「Docker による提供形態の開始」が 2.1.0 の主な変更点となりますが、本記事ではその内容の設計の過程で得られた知見やハマりどころなどを紹介します。 レトリバ製品開発部で確立できた「Docker まわりの定石」に関する一種の備忘録的な内容となります。Answer Finder をはじめとして、レトリバの製品は Ruby on Rails アプリケーションがほとんどのため、本記事で紹介する Docker イメージは基本的には Rails アプリ提供用のものです。 自己紹介 本記事のあらすじ レトリバ製品のDockerに関する定石あれこれ 1コンテナ = 1プロセス Dockerfile の内部で CMD を記述しない 開発用ファイルと本番用ファイルの置き方 docker-compo
突然だがPixelflutというゲームを知っているか? Pixelflutとは 百聞は一見にしかずだ。 最初の10秒だけでいいから、まずはこれを見てくれ。 Pixelflut at the EasterHegg 2014 in Stuttgart vimeo.com 見終わった? これはひとつのキャンバスにみんなで同時に絵を塗って遊ぶピクセルドローイングゲームだ。 勝ち負けはとくに用意されてないけど、線、図形、画像、そして工夫すれば動画だって表現できる。 用意されたキャンバスで「ピクセルに色を塗る」という原始的な制限のもとプログラムを書いて線や図形を描いて遊ぶものだ。 これは平等に与えられたシンプルなプロトコルを利用してみんなで表現するアートでもあるんだ。 Pixelflutは GUI の上で動かすこともできる。 つまりプロジェクタなど大画面でやれば盛り上がること間違いなしだ。 遊ぶために
こんにちは。レトリバの飯田です。6/19(水)の社内セミナーで組織設計の話をしました。これはそのフォローアップ記事になります。 動画はこちらです。 組織デザインの展開~官僚制からティール組織まで~ スライドはこちらです。 組織デザインの展開 ~官僚制からティール組織まで~ from Hiroki Iida www.slideshare.net このテーマは、社会人になってから調べていたものの、体系立てられていなかったため、今回取り組みました。 組織論は、粒度が多岐にわたり、同じようなことが出自の違いにより、違う言葉で言われている場合があり、混乱しやすい分野と感じています。アジャイル・スクラム・ティール組織・OKRなどなど、様々な手法や用語が飛び交っていますが、これらがどこに位置付けられて、それぞれどういった関係であるのかを把握するのは、そこそこに労力を必要とします。 今回は、これらをできる
レトリバ製品開発部の@ysk24okです。 本記事ではbit vectorを用いて編集距離の計算を高速化するアルゴリズムを紹介します。論文はこちらです。 dl.acm.org クエリの長さを、検索対象のテキストの長さを$n$としたとき編集距離の計算量は$O(mn)$であることが知られていますが、bit vectorを活用することでword長を$w$とすると計算量を$O\bigl(\frac{m}{w}n\bigr)$($m\leq w$のときは$O(n)$)に低減できる手法になります。 1999年発表の古い論文ですが、この論文で提案されているアルゴリズムが弊社の製品に実装されていて初見では理解できなかったことに加え、日本語での論文解説が無いようだったので解説記事を書くことにしました。 編集距離(Levenshtein Distance)とは 近似文字列照合(approximate stri
レトリバのCTO 武井です。 やあ (´・ω・`) うん、「また」コンテナの記事なんだ。済まない。 技術ブログの開設と新セミナー運用の開始にあたって、「前に話した内容をブログにしつつ、新しい差分をセミナーにすれば、一回の調べ物でどっちのネタもできて一石二鳥じゃないか」と思っていたのですが、 前のセミナーが情報詰め込みすぎでブログの文量がとんでもないことになって、 → それが前提条件になってしまっているのでセミナー資料の文量も膨れ上がって、 → 差分だけと思っていたUser名前空間も思った以上のボリュームで、 → やっと一息かと思ったら、フォローアップ記事が残っていることを思い出すなど ←いまここ 一石二鳥作戦のはずが、どうしてこうなった……。 計画大事。 そんなわけで、今回は4/17にお話ししました「コンテナ仮想、その裏側 〜user namespaceとrootlessコンテナ〜」という
こんにちは、西鳥羽 Jiro Nishitoba (@jnishi) | Twitter です。5/15の全体セミナーでGraph Neural Networkの話をしました。これはそのフォローアップ記事になります。 動画はこちらです。 www.youtube.com スライドはこちらになります。 20190509 gnn public from Jiro Nishitoba www.slideshare.net 大学生の頃に「複雑ネットワーク」がブームになってきた時代で少し調べたことがあり、修士時代は離散数学・アルゴリズム系の研究室にいてグラフに関する研究をしていたことがあるので元々グラフには興味を持っていました。その後紆余曲折を経て機械学習特に長い系列のDeep Learningにふれるようになってグラフからは離れていました。最近Graph Convolution Networkの話が
レトリバ製品開発部の酒好き武闘派エンジニア田村です。 仕事でC++ばかり書いてるのに何故かセミナーで趣味のElixirを話しましたが、文字だと勢いで押しきれない気がするのでC++を取り上げることにしました。 C++20(またはC++2a)の規格化が来年近づいてきていますが、C++20では、ついに何度も棚上げされてきたコンセプトが採択されました。g++ -std=c++2a で試そうかと思ったのですが、コンパイラがまだ対応していない悲しみの中、まずはテンプレートを見直そうと勉強したところ、思った以上にだいぶ深かったので、今回は単純なコンテナの型指定や関数の引数の型指定以外でのtemplateのテクニックを取り上げたいと思います。帰ってこれなくならない程度の深さで…。基本・応用テクニックを中心にC++20の新機能、コンセプトもコンパイルできないため規格書ベースですが、少しだけ触れられればと思い
こんにちは。youchanこと大崎 瑶です。レトリバでは製品開発とPoCなどをやっています。 レトリバはRubyKaigi2019のスポンサーとして後援しました。おなじみのキーキャップをノベルティとして提供させていただきましたがみなさん手に取っていただけたでしょうか? レトリバキーキャップ そういうわけでRubyKaigi2019の参加レポートをお送りしたいと思います。 Parties & Services これはここ数年の傾向ですがパーティーなどスポンサー企業提供のサービスが過熱してます。今回はそれが顕著に出ましたね。これからもエスカレートしつづけるかは分りませんが過去最高のものになりました。RubyKaigiの楽しみの一つでもあります。 個人的に参加したものを中心に紹介します。 ナイトクルーズ まずは前日のナイトクルーズです。 永和システムマネジメントアジャイル事業部の提供になります。
レトリバのCTO 武井です。 今回は過去にセミナーでお話した内容を振り返りつつ、当時いれられなかったこぼれ話や補足などを加え、ブログで紹介しようと思います。 今後、レトリバセミナーで話した内容はこのような形でブログとしても公開する予定です。 また、過去のセミナーも随時ブログ化される予定ですのでお楽しみに! YouTubeのレトリバチャンネルもぜひよろしくお願いします! 今回の過去セミナーはこちら PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~ from Preferred Networks PFIセミナー2015/10/22:コマンドを叩いて遊ぶ〜コンテナ仮想、その裏側〜 「コマンドを叩いて遊ぶ 〜コンテナ仮想、その裏側〜」というタイトルで、Preferred Infrastructure時代に、PFIセミナーで話した内容です。 レトリバ創業前、3年以上前の
このページを最初にブックマークしてみませんか?
『tech.retrieva.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く