
Facebook 그룹을 스크랩하고 미세 조정된 LLM을 사용하여 아파트 매물을 파싱하는 도구 제작기
요약
본 글은 Facebook 그룹의 비정형 아파트 매물 정보를 파싱하는 도구 제작 과정을 다룹니다. LoRA를 사용해 Gemma 3 1B 모델을 미세 조정하고, 정규 표현식과 키워드 강화 후처리 단계를 결합하여 높은 정확도와 빠른 속도를 달성했습니다.
핵심 포인트
- Facebook 그룹의 비정형 데이터를 파싱하는 실용적인 방법 제시
- Gemma 3 1B에 LoRA를 적용해 특정 도메인(부동산)에 특화
- 파싱 과정은 Regex (85%) > LLM (10%) > 강화처리 (5%) 순으로 구성되어 효율적임
- Apple Silicon 환경에서 MLX로 로컬 추론이 가능하여 API 비용을 절감함
Hyderabad에서 Facebook 그룹을 통해 아파트를 찾는 것은 고통스럽습니다. 매일 수백 개의 게시물이 올라오지만, 구조가 전혀 없고 전화번호, 무작위 가격 형식, 그리고 '자세한 내용은 DM' 같은 텍스트 벽만 있습니다. 저는 이 문제를 해결할 도구를 만들었습니다.
문제점
인도 도시에는
모호한 필드(가구 완비 여부, 게이티드 커뮤니티, 이용 가능 날짜)의 경우, LoRA를 사용하여 Gemma 3 1B을 미세 조정했습니다:
- 학습 데이터: 실제 Facebook 그룹에서 수동으로 라벨링한 200개 이상의 매물 정보
- HuggingFace transformers + PEFT를 사용해 Apple Silicon (MPS)에서 미세 조정
- MLX를 통해 로컬에서 실행하여 추론 - API 비용 없음
- 이러한 특정 필드에 대해 정규 표현식(regex)이 null을 반환할 때만 호출
레이어 3: 키워드 강화 (Keyword Enrichment)
정규 표현식과 LLM 모두가 놓칠 수 있는 부분을 포착하는 후처리 과정입니다:
- 편의 시설 감지(엘리베이터, 체육관, 보안, 전력 백업)
- 주차 유형 추론
- 맥락에서 층수/향 추출
그 결과: 필드 중 약 85%는 정규 표현식으로 채워지고 (빠르고 무료), 약 10%는 미세 조정된 모델로, 그리고 약 5%는 강화 과정으로 채워집니다. 매물당 평균 파싱 시간은 200ms 미만입니다.
가구 완비 여부, 게이티드 커뮤니티, 중개인 없음, 예산 등으로 필터링할 수 있으며 실제로 작동합니다:
그리고 매물을 확장하면 파싱된 구조화된 데이터와 함께 원본 Facebook 게시물이 표시됩니다:
미세 조정 상세 내용 (Fine-Tuning Details)
# LoRA config for Gemma 3 1B
lora_config = LoraConfig(
r=8,
...
학습 데이터 형식 (채팅 스타일 JSONL):
{
학습 데이터 형식 (채팅 스타일 JSONL):
{
- Scraper: 로컬에서 실행됨 (Facebook은 클라우드 IP를 차단함). 주거용 프록시(residential proxy) 설정으로 이동할 수 있음.
- Web app: Render에 배포됨 (무료 티어),
main브랜치에서 자동 배포됨 - Database: Supabase PostgreSQL (무료 티어, SSL 연결)
- CI: GitHub Actions가 린팅(linting) 및 배포를 확인함
결과물 (Results)
- 16개의 하이데라바드 Facebook 그룹에서 557개 매물이 스크랩됨
- 임대료 범위, BHK, 위치, 가구 완비 여부로 검색 가능
- 즐겨찾기 기능을 통해 관심 목록 저장 가능
- 이를 통해 현재 거주하는 집을 찾음
기술 스택 (Tech Stack)
| 구성 요소 | 기술 |
|---|---|
| Scraping | Python, Playwright (async) |
| ... |
다르게 할 점 (What I'd Do Differently)
- 알림 추가 - 기준에 맞는 매물이 나타날 때 알림을 받도록 함
- 더 나은 중복 제거(dedup) - 일부 매물은 약간의 텍스트 변경만으로 재게시됨
- 지도 보기 (Map view) - 위치별로 하이데라바드 지도에 매물을 표시함
- 다중 도시 (Multi-city) - 아키텍처가 지원하므로, 더 많은 그룹만 필요함
소스 코드 (Source Code)
GitHub: github.com/MinotaurG/fb-flat-finder
인도 도시에서 아파트를 찾다가 Facebook 그룹 게시물에 파묻힌 느낌이라면, 주저하지 말고 이 코드를 포크(fork)하여 당신의 도시 그룹을 지정해 보세요. PR 환영합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기
