از هیچچیز نفهمیدن تا ساخت یک اپلیکیشن RAG
دیروز را صرف خواندن ۳۱ صفحه از یادداشتهای خودم در مورد NLP کردم.
هیچی نفهمیدم.
فکر کردم مشکل از من است. اما نبود. مشکل از روش من بود. خواندن یادداشتها به معنای یادگیری نیست. من یادداشتهایی داشتم که برای یک متخصص نوشته شده بود، نه برای یک مبتدی.
رویکردم را تغییر دادم. خواندن را متوقف کردم. در عوض، سوال پرسیدم. از مثالهای ساده استفاده کردم. تا زمانی که مفهوم را درک نکردم، از به کار بردن اصطلاحات فنی خودداری کردم.
تا پایان روز، یک اپلیکیشن RAG ساختم. در اینجا توضیح میدهم که چگونه چهار ستون اصلی NLP را یاد گرفتم.
- Bag of Words کامپیوترها فقط ریاضی میفهمند. برای پردازش متن، باید کلمات را به اعداد تبدیل کنید.
تصور کنید میخواهید ایمیلها را به دو دسته اسپم یا غیر اسپم تقسیم کنید. شما تمام کلمات موجود در ایمیلهایتان را لیست میکنید. تعداد دفعات تکرار هر کلمه را میشمارید. این کار یک ایمیل را به ردیفی از اعداد تبدیل میکند.
نقص آن چیست؟ این روش ترتیب کلمات را نادیده میگیرد. جملات "Dog bites man" و "man bites dog" در این روش کاملاً یکسان به نظر میرسند.
- TF-IDF روش Bag of Words با همه کلمات به یک شکل برخورد میکند. اما کلمه "the" به اندازه "viagra" مهم نیست.
TF-IDF از دو قانون استفاده میکند:
- Term Frequency (TF): اینکه یک کلمه چند بار در یک ایمیل ظاهر میشود.
- Inverse Document Frequency (IDF): اینکه یک کلمه در میان تمام ایمیلها چقدر کمیاب است.
این محاسبات ریاضی، کلمات پرکننده (filler words) مثل "the" را بیاهمیت کرده و کلمات مهم و کمیاب را برجسته میکند.
- Embeddings روش Bag of Words فکر میکند "money" و "cash" هیچ ارتباطی با هم ندارند. Embeddings این مشکل را حل میکند.
یک نقشه عظیم را تصور کنید. هر کلمه یک نقطه روی آن نقشه است. کلماتی با معانی مشابه، نزدیک به هم قرار میگیرند. "Money" و "cash" همسایه هستند، در حالی که "Banana" خیلی دور است.
کامپیوتر این موقعیتها را با بررسی کلماتی که در کنار یک کلمه دیگر میآیند، یاد میگیرد. اگر "money" و "cash" هر دو در نزدیکی "bank" و "pay" ظاهر شوند، کامپیوتر آنها را نزدیک به هم قرار میدهد.
- RAG (Retrieval-Augmented Generation) اینجاست که همه چیز به هم متصل میشود.
اگر هر یادداشت در فایلهای شما یک نقطه روی نقشه باشد، میتوانید با پیدا کردن نزدیکترین نقاط، پاسخها را بیابید.
فرآیند RAG:
- تبدیل یک سوال به یک نقطه.
- پیدا کردن نزدیکترین نقاطِ مربوط به یادداشتها روی نقشه.
- دادن آن یادداشتها به یک AI.
- دستور دادن به AI برای پاسخ دادن تنها با استفاده از همان یادداشتها.
این کار از حدس زدن یا دروغ گفتن AI جلوگیری میکند و آن را مجبور میکند تا از دادههای واقعی شما استفاده کند.
من اپلیکیشن خودم، Synapse، را با استفاده از این مراحل ساختم. من در عرض یک روز، از صفر به یک سیستم عملیاتی رسیدم.
درس: از خواندن دست بکشید و شروع به پرسیدن کنید. اگر نمیتوانید یک مفهوم را با یک تمثیل ساده توضیح دهید، یعنی هنوز آن را بهدرستی نمیشناسید. چیزی بسازید تا ثابت کنید که آن را درک کردهاید.
منبع: https://dev.to/sabimantock/from-i-understood-nothing-to-building-a-rag-app-4033
انجمن یادگیری اختیاری: https://t.me/GyaanSetuAi