Graph RAG جلوی توهم API رو تو مهاجرت کد میگیره
خلاصهٔ کاملتر
تو این مقاله که ۱۱ سپتامبر ۲۰۲۶ روی arXiv منتشر شده، نویسندهها سراغ یه مشکل مشخص رفتن: وقتی سازمانها میخوان سیستم مونولیت قدیمیشون رو به میکروسرویس تبدیل کنن، از مدلهای زبانی برای ترجمهٔ خودکار کد استفاده میکنن و معمولاً RAG استاندارد (یعنی بازیابی تکههای مرتبط کد با شباهت برداری) بهشون کانتکست میده. به گفتهٔ نویسندهها این روش رابطههای توپولوژیک کد رو نمیفهمه و تکههایی برمیداره که زنجیرهٔ وراثت رو وسطش قیچی میکنن، و نتیجهش نرخ بالای شکست کامپایله.
روش پیشنهادیشون HCRG هست. پایپلاین با tree-sitter درخت نحو انتزاعی یا AST (یعنی ساختار درختی کد، نه متن خامش) رو درمیآره، یالهای معماری رو تو یه Property Graph روی Google Cloud Spanner میریزه و بعد همین ساختار رو سریالایز میکنه تو Gemini Context Cache. مدل موقع ترجمه اول والد رو میبینه بعد فرزند رو، برای همین وقتی به یه کلاس میرسه، از قبل میدونه از چی ارث برده.
جالبترین بخش مقاله سنجشه. نویسندهها معیارهای متنمحور مثل CodeBLEU رو کنار گذاشتن و یه چارچوب ۷ معیاره از جنس مهندسی نرمافزار ساختن. دلیلش اینه که CodeBLEU برای هر دو روش حدود ۹۱٪ داد و عملاً شکستهای ساختاری RAG استاندارد رو پشت کدی که از نظر نحوی درست به نظر میرسید ولی خراب بود، قایم کرد.
با معیارهای جدید، Graph RAG تفاوت واضحی نشون داد: توهم API از ۵۶.۴٪ به ۱۶.۲٪ رسید، کیفیت حل وابستگی از ۳۴.۸٪ به ۶۵.۹٪ رفت بالا و سازگاری والد-فرزند از ۲۶.۷٪ به ۴۵.۵٪. یعنی کدی که بیرون میآد خیلی کمتر به فانکشن و کلاسی ارجاع میده که اصلاً وجود نداره.
ولی مجانی نیست. نویسندهها میگن کانتکست سراسری و متراکم باعث میشه مدل بیش از حد محافظهکارانه کد بزنه و چک و شرط اضافه بذاره؛ سازگاری پیچیدگی سایکلوماتیک از ۷۱.۶٪ افتاد به ۴۶.۷٪ و حفظ داکاسترینگها هم از ۶۷.۰٪ به ۶۱.۰٪ کم شد. جمعبندی خودشون اینه که این معامله میارزه: پیچیدگی بیشتر کد رو میدی و توهم کمتر میگیری، و برای مدرنسازی کدبیس سازمانی مسیر معقولتریه.
نکات کلیدی:
- نرخ توهم API با Graph RAG از ۵۶.۴٪ به ۱۶.۲٪ کاهش پیدا کرد.
- CodeBLEU برای هر دو روش حدود ۹۱٪ داد، یعنی این معیار شکست ساختاری رو اصلاً نشون نمیده.
- کیفیت حل وابستگی ۳۴.۸٪ به ۶۵.۹٪ و سازگاری والد-فرزند ۲۶.۷٪ به ۴۵.۵٪ بهتر شد.
- هزینهش: سازگاری پیچیدگی سایکلوماتیک از ۷۱.۶٪ به ۴۶.۷٪ و حفظ داکاسترینگ از ۶۷.۰٪ به ۶۱.۰٪ افت کرد.
- پشتهٔ فنی: tree-sitter برای AST، Google Cloud Spanner Property Graph برای یالهای معماری و Gemini Context Cache برای نگه داشتن ساختار.




