참고
코드 링크 :
GitHub - ghdtjr/A-LLMRec
Contribute to ghdtjr/A-LLMRec development by creating an account on GitHub.
github.com
논문 리뷰 링크 :
[LLM4Rec] Large Language Models meet Collaborative Filtering: An Efficient All-round LLM-based Recommender System 논문 리뷰
Large Language Models meet Collaborative Filtering: An Efficient All-round LLM-based Recommender SystemCollaborative filtering recommender systems (CF-RecSys) have shown successive results in enhancing the user experience on social media and e-commerce pla
datascience-hyemin.tistory.com
1. 디렉토리 구조
├── 📁 data
│ └── 📁 amazon
│ └── 하기 링크에서 metadata, review files를 비롯한 데이터를 다운받아서 data/amazon 디렉토리에 내에 둘 것(https://cseweb.ucsd.edu/~jmcauley/datasets/amazon_v2/)
├── 📁 models
│ ├── a_llmrec_model.py # LLM + CF 융합 모델
│ ├── llm4rec.py # LLM 관련 모듈
│ └── recsys_model.py # 추천 시스템 모델 (ex. SASRec 등)
│
├── 📁 pre_train # CF 기반 모델 사전학습 코드
│ ├── 📁 ctrl
│ │ └── model_ctrl.py # CTRL 모델 관련 사전학습 코드
│ │
│ └── 📁 sasrec
│ ├── data_preprocess.py # 데이터 전처리
│ ├── main.py # SASRec 사전학습 실행 파일
│ ├── model.py # SASRec 모델 정의
│ └── utils.py # SASRec 보조 함수
│
├── .gitignore
├── README.md
├── eval.py # 평가 코드
├── main.py # 학습 실행 entry point
├── requirements.txt # 의존성 목록
├── train_model.py # 학습 로직 (phase1 등 포함)
└── utils.py # 공통 보조 함수
2. 환경 세팅
conda 가상환경 생성 후 필수 패키지 설치
conda create -n [env name] python=3.10 pip
conda install pytorch==2.1.2 pytorch-cuda=11.8 -c pytorch -c nvidia
conda install numpy=1.26.3
conda install tqdm
conda install pytz
conda install transformers=4.32.1
pip install sentence-transformers==2.2.2
conda install conda-forge::accelerate=0.25.0
conda install conda-forge::bitsandbytes=0.42.0
3. Pre-train CF-RecSys
- 무엇을 하나요?
- Amazon 데이터셋에 맞춰 CF 기반의 추천 모델(CTRL, SASRec) 학습 수행
- 왜 하나요?
- LLM이 이 CF 모델의 협업 필터링 지식을 활용할 수 있도록
- 어떻게 하나요?
- 아래 코드를 수행하면 Movies_and_TV 카테고리에 대한 사전학습이 수행됨. 결과는 .pth 파일로 저장됨.
cd pre_train/sasrec
python main.py --device=cuda --dataset Movies_and_TV
4. A-LLMRec Train
- 무엇을 하나요?
- 사전학습된 CF 모델을 불러와서, LLM과 aligning을 수행
- 학습은 두 단계로 나뉘어 있음
- ① Stage 1: LLM이 CF 지식을 정렬(align)
python main.py --pretrain_stage1 --rec_pre_trained_data Movies_and_TV
- ② Stage 2: LLM이 실제 추천 태스크를 학습
python main.py --pretrain_stage2 --rec_pre_trained_data Movies_and_TV
5. Evaluation
- 무엇을 하나요?
- 학습된 A-LLMRec모델이 생성한 추천 결과를 평가
- 어떻게 하나요?
- 추천 결과가 "recommendation_output.txt"에 저장되고, eval.py가 이를 평가해 성능을 계산함
python main.py --inference --rec_pre_trained_data Movies_and_TV python eval.py
'LLM' 카테고리의 다른 글
[RAG] LLM 데이터 전처리 방법: Parsing, Chunking (1) | 2025.05.19 |
---|---|
PDF Embedded Table이란? (0) | 2025.05.12 |
[LLM4Rec] Large Language Models meet Collaborative Filtering: An Efficient All-round LLM-based Recommender System 논문 리뷰 (2) | 2025.05.04 |
[LLM2Rec] Recommender AI Agent: Integrating Large Language Models for Interactive Recommendations (0) | 2025.03.30 |
[LLM2Rec] LLM 기반 추천 모델들 정리 (0) | 2025.03.23 |