タグ

ブックマーク / secon.dev (11)

  • 日本語最高性能のRerankerをリリース / そもそも Reranker とは? - A Day in the Life

    なお、今回作ったRerankerの技術的な話は、日語 Reranker 作成のテクニカルレポートに記載しているので、興味のある方はそちらをご覧ください。 そもそも Reranker とは? Reranker とは、名前の通り再ランク付け(rerank)するもので、質問文に対して関連する順に文章を並べ替えます。文ベクトル(文章のembeddings)で類似度を測って並べ替えするものと何が違うのか?と思われるかもしれませんが、実際、文ベクトル類似度でも同じように並べ替えが可能です。 しかしながら、大きく二つの点で異なります。 Reranker は再ランク性能が高い 文ベクトルは、質問文と文章を同じベクトル空間上の表現として類似度を測ります。そのため大規模なデータに対しても事前に文章のベクトルを算出しておくことで、効率的な計算が可能です。 しかしながら、Reranker は再ランクに特化してお

    日本語最高性能のRerankerをリリース / そもそも Reranker とは? - A Day in the Life
    misshiki
    misshiki 2024/04/02
    “日本語に特化した形で学習されたRerankerがほとんど無かったので、日本語を適切に学習させた Reranker ファミリーを作りました。小さいモデルから大きなモデルまで揃っています。”
  • OpenAIの新embeddings,text-embedding-3-smallをRAGタスクで評価する - A Day in the Life

    先日、OpenAI から新しい embeddings モデルである、text-embedding-3-smallとtext-embedding-3-largeが公開された。text-embedding-3-smallは、古いembeddingsモデルのada-v2よりも価格は1/5に、かつ性能は向上しているとのこと。 OpenAIの記事によると、MTEBの評価は少々スコアが上がり、特筆すべきはMIRACLの方は大幅にスコアの向上が見られる。MIRACL(Multilingual Information Retrieval Across a Continuum of Languages)は名前の通り、多言語での情報検索タスクで、このスコアが大幅に上がったということは、日語での情報検索タスクの精度向上にも期待が持てる。 Wikipedia Q&A の RAG タスクで評価 というわけで早速評

    OpenAIの新embeddings,text-embedding-3-smallをRAGタスクで評価する - A Day in the Life
  • Q&A + RAG に特化したLLMをSFTで学習させ4bit量子化モデルを作り、GPT3.5以上の性能を7Bモデルで達成する - A Day in the Life

    なお、評価に使ったコードはこちらの eval_xxx というコードである。 https://github.com/hotchpotch/youri-7b-stf-qa-context-jaqket/ Supervised Fine-tuning Trainer(SFT) を使った学習 STFは手軽な方法で指示に対して特定フォーマットの出力(Instruction Tuning)を学習させることができる方法である。学習のさせ方も簡単で、例えば ### 指示: 今日の天気は何ですか? ### 入力: 日は大雨ですね。 ### 応答: 大雨 のような例文を用意する。例では「### 応答:」以降がうまく出力されるように学習して欲しいデータである。この時、例文と「### 応答:」だけ与えれば、よしなに学習してくれる。実際の学習時には、「応答:」以降を推論し、望ましい回答である「大雪」のtokenの

    Q&A + RAG に特化したLLMをSFTで学習させ4bit量子化モデルを作り、GPT3.5以上の性能を7Bモデルで達成する - A Day in the Life
    misshiki
    misshiki 2023/12/15
    “Q&A + RAG タスクに特化した LLM を作ってみた。元モデルのLLMとしては、rinna社が公開している、youri7b-instruction を用いている。”
  • RAG用途に使える、Wikipedia 日本語の embeddings とベクトル検索用の faiss index を作った - A Day in the Life

    この記事は、情報検索・検索技術 Advent Calendar 2023の12月4日の記事である。 昨今のLLMの台頭により、外部情報を In-Context Learning として利用しLLMの生成結果の性能を高めることが可能な RAG(Retrieval Augmented Generation) の重要性の高まりを感じる。ただ、RAG を使ったシステムを構築してみようにも、データが少ないと面白みが少なかったりする。その為、Wikipedia語の約550万文から簡単に検索可能でRAGの入力データとして使えるような embeddings と、素早い速度でベクトル検索できるような faiss 用の index を作成した。 例えば、Wikipedia から該当の文を検索する用途はこのように使える。 from datasets.download import DownloadMana

    RAG用途に使える、Wikipedia 日本語の embeddings とベクトル検索用の faiss index を作った - A Day in the Life
    misshiki
    misshiki 2023/12/04
    “Wikipedia 日本語の約550万文から簡単に検索可能でRAGの入力データとして使えるような embeddings と、素早い速度でベクトル検索できるような faiss 用の index を作成した。”
  • LoRA のもう一つの大きなメリット、GPUメモリ共有しつつ別のタスク処理モデルへ即時に切り替える方法 - A Day in the Life

    低ランク行列を追加することで、大元のモデルを維持しつつ少ないコストで学習できる LoRA(Low-Rank Adaptation of Large Language Models)。先日、日語でも大規模パラメータモデル cyberagent/open-calm-7b や rinna/japanese-gpt-neox-3.6b 等々がリリースされたり、HuggingFaceからはtransformersでLoRAを簡単に実現できるライブラリ、peft がリリースされたことで、試したことがある方も多いと思います。 ただ、LoRAのメリットについて主に学習の話が殆どで、もう一つの大きなメリットであるLLMのベースモデルのメモリを共有しつつ、複数のタスクをこなす方法の紹介は見かけたことがなかったので、それをpeftで行う方法についてのお話です。 なお、LoRAとは何か?というお話は、輪講資料

    LoRA のもう一つの大きなメリット、GPUメモリ共有しつつ別のタスク処理モデルへ即時に切り替える方法 - A Day in the Life
    misshiki
    misshiki 2023/06/01
    “LoRAのメリットについて主に学習の話が殆どで、もう一つの大きなメリットであるLLMのベースモデルのメモリを共有しつつ複数のタスクをこなす方法の紹介は見かけたことがなかったので、それをpeftで行う方法について”
  • SVMを使った類似 embeddings 検索 - kNN ではない類似検索の選択肢 - A Day in the Life

    LangChain v0.0.141 に SVM Retriever という実装が入った。これは embeddings(集合)から、単一 embedding と類似しているもの top-K を SVM を使って見つけるという実装で、えっどうやってるの?と追っかけてみたら、知らない知識で面白かったのでメモ記事に。 kNN vs SVM この実装の元となった、knn_vs_svm.ipynbというnotebookがあって、冒頭を機械翻訳すると以下となる。 よくあるワークフローは、あるデータを埋め込みに基づいてインデックス化し、新しいクエリの埋め込みがあれば、k-Nearest Neighbor検索で最も類似した例を検索することです。例えば、大規模な論文コレクションをその抄録に基づいて埋め込み、興味のある新しい論文を与えると、その論文に最も類似した論文を検索することが想像できます。 私の経験では

    misshiki
    misshiki 2023/05/02
    “embeddings(集合)から、単一 embedding と類似しているもの top-K を SVM を使って見つけるという実装で、えっどうやってるの?と追っかけてみたら、知らない知識で面白かった”
  • AI News の公開と、裏側の OpenAI の活用話 - A Day in the Life

    AI News という、AI・データサイエンス(DS)・機械学習(ML)関係の話題を集め、AIで3行に要約して配信するサイトを公開しました。twitter @AINewsDev や Atomフィードでも配信しています。数日前から運用していて、手前味噌ですが便利に情報集めに使えています。また英語記事も日語で要約されるので便利です。 なぜ作ったのか 以前、 @syou6162 さん作の ML-News で、ML系の情報を便利に読ませてもらっていたのですが、Twitter API の有料化の話が出た前後で閲覧できないようになってしまったようでした。 そのため、DS・ML系の話題を追いかけるのが大変になって、そのうち同じようなサイトを作ろうかな、と思っていた所でChatGPT(GPT4)というふつうに便利なLLMが登場しました。その後は御存知の通り、それらの話題が大量に溢れ、情報過多で見きれない

    AI News の公開と、裏側の OpenAI の活用話 - A Day in the Life
    misshiki
    misshiki 2023/04/25
    “AI News という、AI・データサイエンス(DS)・機械学習(ML)関係の話題を集め、AIで3行に要約して配信するサイトを公開”作った方法の話で面白い。OpenAIのAPIなどを使っている。
  • Kaggle コンペ Feedback Prize - English Language Learning でチーム参加15位金メダル取得で、Kaggle Master へ - A Day in the Life

    Kaggle のコンペティション、Feedback Prize - English Language Learningが終わり、約2650チーム中15位で金メダル取得となった。これで合計金メダル2つ、銀メダル1つを取得し、Kaggle Competitions Master の条件を満たし、コンペを始めた当初目指していた Master の称号を年内にとることができた。自分一人ではこの結果にはならなかったと思うので、チームメンバーの@masakiaota氏、@olivineryo氏に感謝だ。 Public LBではコンペ終了時に8位/2700チームの成績で金メダル圏内だったが、Public LB がLB全体の26%のデータでのスコア。スコア表示も小数点以下第二位まででLBのスコア表示がざっくりとしており、かつ我々のCVではかなり悪いスコアがPublic LB上ではやたら上位になったりとCV・

    Kaggle コンペ Feedback Prize - English Language Learning でチーム参加15位金メダル取得で、Kaggle Master へ - A Day in the Life
  • Kaggle の Feedback Prize - Predicting Effective Arguments コンペでソロ参加銀メダル(43位)だった - A Day in the Life

    日終了したKaggleのコンペ、Feedback Prize - Predicting Effective Argumentsにソロで参加し、1566チーム中43位銀メダルを獲得した。暫定順位なので、確定順位はちょっと変わる可能性がある。 前回始めて参加したコンペではチームメンバーに恵まれ、たまたま金メダルだった。その中でKaggleの面白さを知って、次も参加したい、ただ個人だとモチベーションが無くなりそうなのでできたらチームで、と思っていたのだけど、今回はチーム組まず(というか知り合いが少ないので組めず、が正しいが…)でのコンペスタート。チーム参加だと実力がなくても場合によって金メダルも採れてしまう(前回の自分の成績)ことがわかったので、ソロ参加でどれぐらいの成績が残せるか、ということにもチャレンジ。 当初はモチベーションが続かないのではと懸念があったけど、最初に作ったベースラインが銀

    Kaggle の Feedback Prize - Predicting Effective Arguments コンペでソロ参加銀メダル(43位)だった - A Day in the Life
  • Kaggleコンペ初参加でチームに恵まれ金メダル(8位)だった - A Day in the Life

    今日(2022/06/21)の朝9時がKaggleのコンペ終了の時間。結果は即座に表示されるので、チームメンバーと見守る。結果はPublic LB(サンプルで抽出されたスコア)順位と変わらずの1975チーム中8位で金メダル。Kaggleコンペ初参加でチームに恵まれた幸運の結果であった。 チームの解法は英語では公開されていて、日語でも別途公開されると思うので、ここでは解法ではなく主に初参加の感想を。40日ぐらい前に特許と自然言語処理処理コンペであるU.S. Patent Phrase to Phrase Matchingをやらない?とAota氏に誘ってもらい始める。Kaggleは初学者用のを読んで練習用タイタニックコンペをやった程度の知識だったので、より具体的な進め方やチームで大切にする時の考え方を教えてもらう。 ツールとしては情報共有にNotion(主にboardでkanban)を使い

    Kaggleコンペ初参加でチームに恵まれ金メダル(8位)だった - A Day in the Life
  • Keras を使わずに TensorFlow 2 を使い素朴な全層結合ニューラルネットワークを作る - A Day in the Life

    TensorFlow では、高レベルAPIであるKerasを使うことで、簡単にニューラルネットワークのモデル作成~訓練、その他NNで行いたい様々なことを実現できる。しかしながら、自分のようなNN初心者にとっては何をやってるか解らないで使ってしまっていたため、簡単な順伝播型のNNを、Keras を使わず TensorFlow の API のみを用いて実装する。 なおこの記事は、ゼロから作るDeep Learningを参考に実装している。また、自分で理解するための忘備録的に残しており、きちんと理解したい人書籍ゼロから作るDeep Learningと、TensorFlow ガイドを読んだほうが良いであろう。また、この記事の元の jupyter notebookはこちら。 一通り手を動かして自分で作ってみることで、どの関数がどう影響するのか、訓練を手動でやるとどんな感じなのか、自動微分とその使い方

    misshiki
    misshiki 2021/11/15
    “Keras を使わずに TensorFlow 2 を使い素朴な全層結合ニューラルネットワークを作る”
  • 1