سلیقه رو نمیشه یونیتتست کرد
خلاصهٔ کاملتر
کارل تریگواسون داره اپلیکیشنی به اسم In the Long Run میسازه که مسافت دویدنهای واقعی آدمها رو جمع میزنه و بهشکل پیشرفت روی مسیرهای مشهور دنیا نشون میده. میخواست نقشههای اپ رو با نقاط دیدنی و تاریخی غنیتر کنه، ولی این کار برای مسیرهایی که خودش نمیشناخت اصلاً مقیاسپذیر نبود. برای همین رفت سراغ ساختن یه پایپلاین داده — و به گفتهی خودش، اولش فکر میکرد AI خودِ فیچره، ولی آخرش شد فقط یکی از ابزارها.
نقطهی شروع GeoNames بود: یه دیتاست بزرگ با مجوز Creative Commons. پایپلاین با پایتون نوشته شد، دادهی پردازششده تو فایلهای Apache Parquet ذخیره شد و DuckDB نقش لایهی کوئری رو بازی کرد. نویسنده میگه اضافهکردن یکی دو تکنولوژی جدید به هر پروژه بهترین راه یادگیریه؛ اگه کل استک برات ناآشنا باشه شیب یادگیری زیادی تنده و احتمالاً کلاً بیخیال پروژه میشی.
مرحلهی اول فیلترکردن داده بود: حذف تقسیمات کشوری، انتخاب فیچرکدهای جالب (پارک، قلعه، بنای تاریخی، کوه و…) و فیلتر جمعیت و ارتفاع. از ۱۳ میلیون رکورد اولیه به حدود ۷۲۵ هزار نقطه رسیدن. لینکهای ویکیپدیا هم که بهطور غیرمنتظرهای داخل alternateNames.txt بودن، بهعنوان سیگنال «چقدر مشهوره» استفاده شدن.
همینجا اولین سوگیری خودش رو نشون داد. مسیر حلقهی ایسلند (۱۳۲۱ کیلومتر) ۵۱۱ نقطه داشت، ولی Route 66 با ۳۷۸۷ کیلومتر، ۱۴۱۸۱ نقطه! نویسنده میگه این یعنی سیگنال ویکیپدیای انگلیسی در واقع داشت میگفت «انگلیسیزبانها کجا زندگی و ویکیویرایش میکنن»، نه اینکه کجا واقعاً دیدنیه.
مرحلهی سوم سراغ LLM رفت. با مدل Haiku و درخواستهای batch (نصف قیمت) برای هر نقطه امتیاز اهمیت گرفتن. اینجا توهم مدل خودش رو نشون داد: Central Park شهر دیکیتور ایلینوی با همتای معروفش تو منهتن اشتباه گرفته شد و امتیاز بالایی گرفت. حتی بعد از grounding با متادیتای مکانی، مدل هنوز جمعیت شهرها رو عوض میکرد و کوهها رو بزرگتر از چیزی که بودن نشون میداد.
نتیجه این شد که نویسنده متنهای تولیدشدهی LLM رو کنار گذاشت و برگشت سراغ خلاصههای ویکیپدیا — میگه متن مدل خوشخوانتر بود، ولی درستی مهمتره. با این حال LLM از کار برکنار نشد: امتیاز «سلیقهای»اش کنار فیچرکدها و تعداد زبانهای ویکیدیتا موند، چون بدون اون هر شهرک کوچیکی که ویکی خودکار ۱۵۰ زبانه داشت بالا میاومد.
حرف آخر مقاله همون عنوانشه: ارزیابی موفقیت سختترین بخش پروژه بود. برای دادهی درهمریختهی دنیای واقعی، ground truth وجود نداره و بهینهکردن یه مسیر ممکنه مسیر دیگه رو خراب کنه. به گفتهی نویسنده، برای «سلیقه» هیچ تست قرمز/سبزی نداریم؛ آخرش پارامترهای اختصاصی هر مسیر و بازبینی دستی لازم شد.
نکات کلیدی:
- استک: GeoNames + پایتون + Parquet + DuckDB، با خلاصههای ویکیپدیا بهعنوان سیگنال شهرت
- سیگنال ویکیپدیای انگلیسی سوگیری داره: Route 66 حدود ۲۸ برابر ایسلند نقطهی «دیدنی» داشت
- مدل Haiku تو تولید متن دچار توهم شد (جمعیت و ارتفاع جعلی)، پس متنهاش کنار گذاشته شد
- ولی امتیاز سلیقهای همون مدل مفید موند و کیفیت رتبهبندی رو بالا برد
- ارزیابی سختترین بخش بود: برای دادهی واقعی و «سلیقه» تست خودکار قطعی وجود نداره




