タグ

ブックマーク / hironsan.hatenablog.com (4)

  • OpenAIの埋め込みよりも高性能?多言語E5を日本語で評価してみる - Ahogrammer

    多言語のテキスト埋め込み用のモデルであるMultilingual-E5-largeの性能を日語のデータセットで評価してみました。 E5とは E5とはEmbEddings from bidirEctional Encoder rEpresentationsの略で、テキストの埋め込み用のモデルです[1]。Web上から収集した大規模なテキストペアのデータセット(CCPairs)で対照学習したあと、NLIやMS Marcoなどの高品質なデータセットで学習しています。情報検索のベンチマークであるBEIR[2]や埋め込みのベンチマークであるMTEB[3]で評価されており、MTEBではOpenAItext-embedding-ada-002を上回る性能が報告されています。 MTEBの結果。平均的な性能で`text-embedding-ada-002`を上回っている。 CCPairsはWeb上から収集

    OpenAIの埋め込みよりも高性能?多言語E5を日本語で評価してみる - Ahogrammer
  • LangChainを使ってHyDEによるクエリ変換の効果を検証する - Ahogrammer

    ChatGPTやGPT-4をはじめとする大規模言語モデルの能力が向上し、多くの注目を集めています。とくにRAG(Retrieval Augmented Generation)と呼ばれる手法を使って、手元のデータを生成時に活用する手法がよく使われていますが、その性能を改善する方法は様々あります。その中でも、この記事ではRAG内部の検索性能を改善するためのクエリ変換に着目し、HyDEと呼ばれる手法の効果を日語の検索用データセットを使って検証した結果を示します。 記事の構成は以下のとおりです。 HyDEとは 実験設定 実験結果 実装の詳細 参考資料 HyDEとは HyDE(Hypothetical Document Embeddings:仮の文書の埋め込み)は、入力されたクエリに対して仮の文書を生成し、その文書を埋め込み、検索に使用する手法です[1]。典型的な文書検索では、ユーザーが入力したク

    LangChainを使ってHyDEによるクエリ変換の効果を検証する - Ahogrammer
  • Pythonで単語分散表現のクラスタリング - Ahogrammer

    最近の自然言語処理では、単語の分散表現は当たり前のように使われています。 単語分散表現では、各単語が高次元ベクトル空間に配置され、加減乗除等の演算を行えるようになります。 これらのベクトルは、意味の近い単語に対しては同じようなベクトルになることがわかっています。 記事では、単語分散表現のベクトルをクラスタリングし、意味が近い単語のクラスタを作ってみたいと思います。 これらのクラスタは、眺めて楽しむだけでなく、機械学習の素性として使うこともできます。 イメージ的には、以下のような感じで単語をクラスタにまとめます。 では、単語分散表現をクラスタリングして、単語のクラスタを作ってみましょう。 準備 まずは、作業用のディレクトリを作成しておきましょう。 また、必要に応じて Python の仮想環境も用意します。 以下のコマンドを実行することで、ディレクトリを用意します。 $ mkdir work

    Pythonで単語分散表現のクラスタリング - Ahogrammer
  • 文字レベルの畳込みニューラルネットワークによる文書分類 - Ahogrammer

    はじめに 自然言語処理で文書分類は最も基的なタスクの一つです。 文書分類は、SNSに対する評判分析、ニュースのジャンル分類、メールのスパムフィルタや文書の著者推定といった問題の解決に使われています。 このように基的なタスクである文書分類は広く使われています。 最近では、文書分類に対するニューラルベースのアプローチとして、単語レベルのRNNが広く使われています。 RNNを使うことで、広い文脈と単語の出現順序を自然な形で考慮することが可能になります。 この性質により、RNNベースの手法は文書分類で良い性能を示してきました。 しかし、単語レベルのRNNには2つの問題が挙げられます。 一つ目は、RNNは計算を並列化し難いため、計算の高速化が難しいということです。 二つ目は、単語レベルの入力がSNS等のユーザ生成コンテンツ(UGC: User-Generated Content)に対して弱いとい

    文字レベルの畳込みニューラルネットワークによる文書分類 - Ahogrammer
  • 1