Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GemmaでRAG を作ろう

SuperHotDog
March 10, 2024
370

GemmaでRAG を作ろう

Codebase used in this handson -> https://github.com/SuperHotDogCat/Gemma-RAG-Handson

SuperHotDog

March 10, 2024
Tweet

Transcript

  1. まずお前誰だよ ・Xアカウント名: 犬(SSR) @takanas0517 ・GitHub @SuperHotDogCat ・職業: 東大工学部電子情報工学科3年(次は4年生) ・好きなコンピューターサイエンスの分野 ・OS

    ・WebAssembly ・ML ・最近pythonのライブラリ作った ・研究者と開発者の中間みたいな人を目指している ・趣味: 論文実装
  2. GDSCUTについて ・X @GDSCut 東京大学を中心とするエンジニア学生 集団です。Google Developers のサ ポートを受けている独立したデべロッ パー コミュニティです。

    2023/10/1に発足したのでまだ若いコ ミュニティですが, PythonのOSSを制作 したり, Qiitaに記事を投稿したり, 定期 的にこうしたWork Shopを開いていま す。
  3. 1. 自然言語の数値化 パソコンが扱えるのは数字のみなので, 自然言語をまず数字に直す作業が必要です。 Pythonの型で表現するならString->List<Int>を行う作業です。 例: I love apples. ->[I,

    love, apples, .]->[40, 1842, 22514, 13] この2つの変換の一つ目をtokenize, 二つ目をencodeと呼びます。上の例ではそれぞれ の単語に数字が割り当てられています。
  4. LLM という感じで, 先に話したNLPの図におけるML言語モデルの開発が長年行われてきま した。 RNN, LSTM, GRUなどを経て, Transformerという現在デファクトスタンダードになって いるモデルが生まれました。 初めはTransformerは機械翻訳のタスクで生まれました。

    やがて任意の言語入力に対して汎用的に応答が生成できるような大規模なモデルが生 まれました。 それらの言語モデルを総称してLLM(Large Language Model)と呼んでいます。
  5. ML NLP復習 ML言語モデル ->[5308, 1165, 13]->Me too. I love an

    apple ->[40, 1842,22514, 13]-> ↑学習の方法にもよるが、 大抵はML言語モデルによる数値変換を経て、 似たような意味を持つ文が同じような数値表現にな る(証明, 数式的な感覚は略)
  6. 文の分散表現 ML言語モデル ->[5308, 1165, 13]->Me too. I love an apple

    ->[40, 1842,22514, 13]-> [0.4, -0.6, 0.8, ] ↑途中で取り出して得られた数字 を分散表現ないしはEmbedding と呼びます。
  7. 余談 AWS, Azure, GCPでもRAGの開発サポートをしている。ベクトル表現を貯めておくデー タベースはもちろん GCPではVertex AI Search, AzureではAzure AI

    Search のように, 各社共に文書検索をラップして売り出している印象がある。 今日のハンズオンではlocalでの文書検索を主に話していきますが, 検索が上手くいくと いい性能が出ることを実感してもらえばと思います。
  8. Plus Ultra Weight and Biases 機械学習モデル開発者向け プラットフォーム • モデルの学習記録
 •

    モデル・データセットのバージョン管理 
 • モデルの性能評価
 • 可視化
 を行ってくれるサイトです。Pythonコードで 
 呼び出して使います。

  9. Plus Ultra DeepSpeed 機械学習モデル開発者向け OSS, Megatron-LMと合わせて かなりデファクトスタンダードなOSS ・深層学習前半の訓練と推論の高速化ライブラリ ・省メモリ, MultiGPU,

    データ通信をサポート 僕の家には8GB GPUしかないのですが, これを使うことでGPUメモリをあんま使わなく て良くなり, Transformerモデルの訓練が楽に行えるようになりました。
  10. Plus Ultra RAGの問題点 長いコンテクスト, 回答に大量の情報を必要とするようなタスクには弱い。 こんな時は素直にLoRA, SFT, RLHFなどでFine Tuningする方が性能が出る しかしFine

    TuningをするためにはGPUを自社で保有するか, GPUインスタンスを購入 するかといった問題が発生する。それに比べるとRAGは安価 ・知識ベースの回答かつ, 2, 3の情報で完全に答えられるような問題にはRAG ・大量の情報を統合し, 答えるようなタスクには自社データでFine Tuningをする方が良 い