Ssul's Blog
AI Product 개발전략과 개발기 본문
0. 비지니스 기획
생성형 AI가 핫하다. 실제 내가 사용해봐도 신기하다.
이걸로 무엇을 할 수 있을까? 우리 생활에 어떤 문제점을 해결해 주는 서비스를 만들수 있을까?
쌈박한거 하나 만들어서... 은퇴하고 싶은데....ㅋㅋ
여튼 이런 고민에서, 은퇴는 힘들것 같지만 나의 어려움을 해결해줄만한 문제를 하나 발견했다.
바로 스팸문자... 하루에도 10개가까운 스팸이 날라온다
이런 스팸을 LLM이 잘 분류해주면 어떨까?
그럼 이걸 우선 만들어보자!!
1. 우선 잘되는지 체크하자
사전에 LLM모델이 어느정도 잘하는지 체크해보는게 좋다.
나는 체크없이 바로 개발에 들어갔다.
이럴경우 LLM이 못하는 과업인지, 아니면 내가 선택한 모델과 학습방법이 잘못된 것인지...판단하기 어렵다.
그러니 과업을 실행전, 튜닝없이 LLM으로 실행해보자.(gpt-4o, gpt-3.5 등에 해보자)
우선 LLM으로 할 경우 가능성이 보인다. 그러면 스팸을 분류하는 AI모델을 만들어보자.
2. AI모델 개발전략
고민하면서, 총 3개의 AI모델을 만들어볼 예정이다.
1번째는 LLM모델에 LoRA를 붙여서 text-generation과업으로 Instruction-tuning으로 파인튜닝
2번째는 LLM모델에 LoRA를 붙여서 text-classification과업으로 파인튜닝
3번째는 임베딩모델을 활용해서, 가지고 있는 스팸데이터셋을 임베딩. 해당 데이터셋을 기반으로 입력된 문자에 대해서 유사도 Top3를 추출하여 입력된 문자를 예측하는 모델
이렇게 총 3개의 모델을 개발해볼 예정이다.
3. 파인튜닝데이터(사실 이게 가장 중요함)
스팸문자를 분류하는 모델을 파인튜닝으로 만들려고하니, 스팸데이터가 필요했다.
그래서 시중에 공유되어있는 스팸데이터, 유료로 구매가능한 스팸데이터를 약 20만개 구했다.
근데 데이터셋을 까보니... 너무 옛날 스팸이 가득했다. 요즘 문자와는 느낌이 다른 5-10년전 스팸 문자들.
그럼에도 20만개를 가지고 파인튜닝 실행. 당연히 모델의 성능은 똥망....
고민 또 고민....이미 LLM자체가 똑똑하니, LLM을 믿고, 약 1,000개의 문자데이터를 직접 라벨링해서 그 데이터로 파인튜닝을 하기로 하였다. 하지만, 1000개의 스팸데이터를 구하는 것도 쉽지 않았다. 아이폰에서 문자를 빼오는 것은 어려우니, 그렇다고 하나하나 복붙하기도 어렵고, 그래서 100개 정도 복붙 실행(당연히 최신 스팸문자들임)
그리고, 이 100개를 가지고, 가지고 있는 네이버클라우드 크레딧을 사용해서, 데이터 증강을 진행했다.
데이터 증강 진행 후, 데이터셋 검증
역시나, 문자 데이터는 잘 생성해 주었으나, 라벨링이 엉망이었다. 그래서 1000개의 문자에 대해서, 6종의 문자로 사람이 직접 분류라벨링을 진행하였다.
여전히 완벽한 데이터셋이 아니라서 아쉽지만, 우선 가능성을 확인하기 위해, 모델학습에 들어가보자!!!
'AI & ML > 학습하기' 카테고리의 다른 글
패캠(패스트캠퍼스) "LLM 모델 파인튜닝을 위한 GPU 최적화" 후기 (2) | 2024.12.02 |
---|---|
파인튜닝을 통한 감정단어 분류기(NER) (3) | 2024.09.12 |
도커(Docker)에서 쿠버네티스(k8s)까지: #2. Dockerfile, Dockerhub (0) | 2024.05.26 |
AI-LLM 파인튜닝 한방에 끝내기(gemma-2B) (2) | 2024.04.16 |
[NLP, embedding] FAISS 사용하기 (0) | 2024.03.19 |