何もわからなかった状態から、RAGアプリを構築するまで
昨日、自分自身のNLPノート31ページを読みふけっていました。
何一つ理解できませんでした。
問題は自分にあるのだと思いました。しかし、そうではありませんでした。問題は私の方法にありました。ノートを読むことは、学習することではありません。私が持っていたのは初心者向けではなく、専門家向けのノートだったのです。
アプローチを変えました。読むのをやめ、代わりに質問を投げかけることにしました。簡単な例を用い、概念を理解するまでは専門用語を使うのをやめました。
その日の終わりには、RAGアプリを構築できました。NLPの4つの柱をどのように学んだのか、そのプロセスを紹介します。
- Bag of Words コンピュータは数学しか理解できません。テキストを処理するには、単語を数値に変換する必要があります。
メールのスパム判定をしたいと想像してください。メール内のすべての単語をリストアップし、それぞれの単語が何回出現するかを数えます。これにより、メールは数値の列へと変換されます。
欠点は? 単語の順序を無視してしまうことです。「Dog bites man(犬が人を噛む)」と「man bites dog(人が犬を噛む)」は、この方法では全く同じに見えてしまいます。
- TF-IDF Bag of Wordsはすべての単語を平等に扱います。しかし、「the」は「viagra」ほど重要ではありません。
TF-IDFは2つのルールを使用します:
- Term Frequency (TF): あるメール内にその単語がどれくらいの頻度で出現するか。
- Inverse Document Frequency (IDF): すべてのメールの中でその単語がどれほど珍しいか。
この計算によって、「the」のような埋め草的な単語の影響を抑え、重要で珍しい単語を際立たせることができます。
- Embeddings Bag of Wordsは「money」と「cash」が無関係だと判断します。Embeddingsはこれを解決します。
巨大な地図を想像してください。すべての単語はその地図上の「点」です。似た意味を持つ単語は近くに配置されます。「Money」と「cash」は隣同士であり、「Banana」は遠く離れています。
コンピュータは、単語がどのような単語と一緒に使われるか(文脈)を見て、これらの位置を学習します。「money」と「cash」がどちらも「bank」や「pay」の近くに現れるなら、コンピュータはそれらを互いに近くに配置します。
- RAG (Retrieval-Augmented Generation) ここですべてが結びつきます。
ファイル内のすべてのノートが地図上の点であるなら、最も近い点を見つけることで答えを見つけ出すことができます。
RAGのプロセス:
- 質問を一つの「点」に変換する。
- 地図上で最も近い「ノートの点」を見つける。
- それらのノートをAIに渡す。
- そのノートだけを使って回答するようにAIに指示する。
これにより、AIが推測したり嘘をついたりすることを防ぎます。AIに実際のデータを使用させるのです。
私はこれらのステップを使って、アプリ「Synapse」を構築しました。ゼロから、わずか一日で動作するシステムを作り上げたのです。
教訓:読むのをやめ、問いかけることから始めよう。もしある概念を簡単な比喩で説明できないのであれば、それはまだ理解できていないということだ。理解していることを証明するために、何かを作ってみよう。
出典:https://dev.to/sabimantock/from-i-understood-nothing-to-building-a-rag-app-4033
学習コミュニティ(任意):https://t.me/GyaanSetuAi