ساخت پایگاه دانش شخصی برای هوش مصنوعی، بدون دیتابیس برداری
خلاصهٔ کاملتر
یه پایگاه دانش شخصی یعنی یه انبار قابل جستجو از دادههای خودت، مثل ایمیل، لاگ چت و رونوشت تماسها، که مدل قبل از جواب دادن توش میگرده. این همون «R» تو RAG هست، یعنی اول اطلاعات مرتبط پیدا میشه و بعد جواب ساخته میشه. نویسنده میگه خیلیها این کارو بیدلیل پیچیده میکنن و یه نسخهٔ کارا با چند تا اسکریپت، یه مدل ارزون و جستجوی متنی ساده درمیاد.
چرا کل دادهها رو تو context window نریزیم؟ مقاله سه دلیل میاره: هزینه، سرعت و مهمتر از همه دقت. به این مشکل آخر میگن context rot، یعنی هر چی متن بیشتری تو context مدل باشه، دقتش پایینتر میاد، حتی اگه مدل اون حجم رو پشتیبانی کنه. مشکل دیگه اینه که مدل همه چیز رو هموزن میبینه و نمیدونه قیمت دو سال پیش کهنهست و قیمت هفتهٔ پیش درسته.
راهحل این یکی recency weighting هست، یعنی هر تیکه داده موقع ورود یه تاریخ میگیره و تو جستجو دادههای جدیدتر یه کم امتیاز بیشتری میگیرن. دادههای قدیمی پاک نمیشن، فقط احتمال اینکه اول بیان پایینتر میاد. اینطوری سیستم بیشتر چیزی رو نشون میده که هنوز درسته.
خود سیستم چهار مرحله داره. اول _connector_ها، یعنی اسکریپتهای کوچیکی که هر کدوم از یه منبع فقط دادههای جدید از آخرین اجرا رو میکشن، اونم با دسترسی فقطخواندنی تا ابزار کنترلی روی حسابهات نداشته باشه. لاگهای ابزارهای کدنویسی هوش مصنوعی شروع خوبیان، چون معمولاً به صورت متن ساده روی سیستم ذخیره میشن. دوم، یه مدل ارزون برای هر داده یه خلاصه مینویسه که شبیه سؤالیه که بعداً کسی تایپ میکنه، بهعلاوهٔ «atom»ها مثل پیام خطای دقیق، راهحلی که جواب داد و دلیل تصمیمها.
مرحلهٔ سوم جستجوئه و اینجا نویسنده سراغ embedding و دیتابیس برداری نمیره. به جاش از BM25 استفاده میکنه، یه الگوریتم دههٔ ۹۰ که سندها رو بر اساس تکرار و نزدیکی کلمههای جستجو امتیاز میده. جستجو روی خلاصهها انجام میشه و بعد مدل به رکورد کامل هدایت میشه. به گفتهٔ مقاله این روش زمان inference و هزینهٔ زیرساخت رو خیلی کم میکنه و برای این کاربرد حتی بهتر جواب میده، هرچند ادعا نمیکنه embedding همه جا منسوخه.
مرحلهٔ آخر، تازه نگه داشتنه. کلیدهای API عوض میشن، دسترسیها تغییر میکنن و ساختار منبعها جابهجا میشه، و هر کدوم میتونه یه connector رو بیسروصدا خراب کنه. پس یه چک دورهای لازمه، وگرنه سیستم ظاهراً کار میکنه ولی دیگه دادهٔ جدید نمیگیره.
نکات کلیدی:
- پایگاه دانش شخصی همون RAG روی دادههای خودته و دیتابیس برداری لازم نداره.
- context rot یعنی با بیشتر شدن متن تو context، دقت مدل پایین میاد.
- recency weighting به هر داده تاریخ میزنه و تو جستجو به دادههای جدیدتر امتیاز بیشتری میده.
- connectorها فقط دادههای جدید رو با دسترسی فقطخواندنی میکشن.
- یه مدل ارزون خلاصه و atomهایی مثل پیام خطا و راهحل رو استخراج میکنه.
- جستجو با BM25 روی خلاصهها انجام میشه که ارزونتر و سریعتر از embeddingه.




