본문 바로가기
dev/프로젝트

[프로젝트] 데이터 전처리를 위한 데이터 수집(1)

by dev-everyday 2025. 1. 7.
반응형

1. 프로젝트 시작 전, 어떤 데이터가 필요할지

해당 내용은 프로젝트 시작 전 데이터 전처리를 위한 데이터 수집 및 회의록 용도로 작성된 것입니다.

전체적인 구상 중 실제로 어떤 데이터를 수집하면 좋을지를 먼저 공부해야 했다.

운세 사이트에서는 어떤 데이터를 기반으로 운세를 알려주는 건지, 또 어떤 운세를 제공하는 지를 먼저 알아야 데이터를 수집할 수 있다.

1.1) 사주

제공 사항

- 사용자가 입력한 생년월일시(양력 혹은 음력 기준)을 토대로 천간과 지지, 십이운성, 신살 등 계산해서 표 형태로 제공

- 사주의 구조(일주, 월주, 연주, 시주 등)을 분석

- 사용자의 성격, 직업, 운, 대연 흐름 등을 해석

 

필요한 데이터

- 만세력(간지 계산법, 음력-양력 변환, 24절기, 태양력&태음력 간 오차 보정 기능)

- 만세력 테이블 혹은 에피메리스를 참고해서 특정 날짜의 천문 위치 계산 필요

- 사주풀이 해석(특정 조합에 대한 전통적 해석들, 특정 조합은 천간*지지*오행의 배치, 전통적 해석은 성격*성향*운세*경향 등)

1.2) 신살풀이

제공사항

- 도화살, 역마살, 귀문관살 등 다양한 신살 개념 해석

- 해당 살이 있으면 OO운이 ~하다 등의 풀이

 

필요한 데이터

- 특정 년주*월주 조합에서 어떤 신살이 붙는지

- 신살의 의미

- 명리학 자료나 서적을 통한 개념과 해석 수집

1.3) 토정비결

제공 사항

- 연초에 주로 보는 간단한 운세 서적

- 생년월일 기반으로 보는데 사주를 베이스로 한 간단한 세액 형식의 해석들

 

필요한 데이터

- 생년월일로 특정 번호를 뽑아 그에 해당하는 해석 문구를 보여줌

1.4) 궁합

제공 사항

- 두 사람의 생년월일시 데이터를 받아 서로의 사주 궁합을 해석

- 오행의 상생*상극 관계, 일간의 관계 등으로 간단히 상대방과의 조화를 살핌

 

필요한 데이터

- 두 사주를 비교해 합*충, 오행 상생/상극 등을 계산하는 룰

- 정인 관계일 때 어떤 성격 매칭인지

- 두 사람이 화 기운이 강하면 어떤지

1.5) 별자리

제공 사항

- 양력 생일 기준으로 12개의 별자리를 매칭하고 해당 별자리에 대한 성격/운세 제공

- 오늘/이번주/이달의 운세, 연애운, 금전운 등의 짤막한 해석

 

필요한 데이터

- 별자리별 성격/운세 자료

1.6) 타로

제공 사항

- 랜덤으로 카드를 뽑아 현재 상황, 미래 예측, 조언 등을 제공

- 카드의 의미를 해석

 

필요한 데이터

- 각 점술마다의 해석 사진

- 뽑기/배치 규칙

2. 실제 데이터 수집

2.1) 데이터 수집 고민

데이터 수집에 앞서 사주 쪽은 굉장히 복잡하다.

데이터의 경우에는 실제로 구매하는 것 외에는 쉽게 데이터를 학습시킬 수 없을 거 같다.

이 기능은 나중에 웹 사이트 보완 시 추가를 해야할 듯 하다.

2.2) 수집 데이터 단축

그래서 우선적으로는 타로 + 오늘의 편지 기능 부분을 중점으로 개발하려고 한다.

데이터는 타로 카드 종류, 이름, 방향, 주제(연애, 금전, 재회, 미래, 결혼, 금전, 사업, 직업, 이직, 시험, 매매) 등의 내용과 짧은 요약문을 LLM에게 학습시키는 용도로 수집하였다.

3. 데이터 학습

3.1) 데이터 학습 모델 선택

LLM(Large Language Model, 대규모 언어 모델)을 선택해야한다.

1) HuggingFaceTransformers 기반의 GPT-2, GPT-J, KoGPT 등을 로컬이나 클라우드 환경에서 파인튜닝하기

2) OpenAI API 등 외부 API 이용해서 파인튜닝

더보기

파인튜닝이란?

파인튜닝은 특정 작업이나 도메인에 높은 적합성을 확보하기 위해서 훈련된 대규모 언어 모델에 특정 데이터셋을 사용해서 추가적인 학습을 수행하는 작업이다.

특정 분야에 대한 대답을 제공하기 위해서 모델을 파인튜닝하는데 나는 타로 관련 학습을 위해 해당 작업이 필요하다.

 

파인튜닝 종류?

학습된 모델 전체를 조정하는 정도에 따라 Full 파인튜닝과 Repurposing으로 나눌 수 있다.

Full Fine-Tuning은 모든 모델 매개변수를 포함해서 사전 학습된 모델 전체를 파인튜닝하는 작업이다.

일반적으로 작업과 사전 학습된 모델 사이 큰 차이가 있으면 적합하다.

Repurposing은 사전 학습된 모델의 하위 레이어를 유지하면서 모델의 상위 레이어를 파인튜닝하는 것이다.

대상 작업과 사전 학습된 모델 사이에 유사성이 있거나 작업 데이터셋이 작은 경우 적합하다..

 

리소스가 제한적이라 Repurposing이 더 적합할 거 같긴 하다.

 

반응형