SK네트웍스 Family AI 캠프 1기 4개월차 회고
SK Networks AI Camp
Monthly 회고 - 4개월 차
Skillset
이번 달에는 LLM과 Vector Database, 그리고 파인 튜닝을 주로 다뤘습니다.
LLM 중에서도 특히 OpenAI API를 이용하였습니다.
OpenAI API를 이용한 LLM 모델 구축
-
구축 방법
- OpenAI API에 가입한 후 API 키를 발급받아야 합니다.
- Python에서
openai
패키지를 설치해야 합니다.
-
장점
- 복잡한 모델 학습 과정 없이 사전 학습된 고성능 모델에 접근할 수 있습니다.
- 하드웨어 관리나 모델 최적화에 대한 부담이 줄어듭니다.
- 필요한만큼만 사용하여 비용을 절감할 수 있습니다.
-
단점
- OpenAI의 정책 변경이나 서비스 중단에 영향을 받습니다.
- 사용량이 많아지면 API 호출 비용이 누적되어 상당한 비용이 발생할 수 있습니다.
- 특정 도메인에 최적화되도록 하려면 별도의 파인 튜닝 작업이 필요합니다.
OpenAI API를 이용한 LLM 모델 파인 튜닝
-
파인 튜닝 방법
- 특정 도메인 또는 작업에 맞는 데이터를 준비합니다.
- OpenAI가 요구하는 데이터 형식에 맞추어 데이터를 업로드합니다.
- 파인 튜닝이 완료된 모델을 직접 테스트하며 성능을 평가해보아야 합니다.
-
장점
- 특정 도메인에 특화된 데이터를 사용하여 모델을 맞춤화할 수 있습니다.
- 사전 학습 모델을 필요에 맞춰 보완함으로써 개선된 성능을 발휘할 수 있습니다.
- 맨 처음부터 모델을 학습시키는 것보다 사전 훈련된 모델을 파인 튜닝하는 비용이 더 저렴합니다.
-
단점
- 양질의 데이터를 준비하는 것이 어려울 수 있습니다.
- 데이터의 질에 따라 모델의 성능이 좌우되므로 데이터의 질에 신경써야 합니다.
- 파인 튜닝 후에도 모델의 성능이 예상보다 낮을수 있으므로 지속적인 성능 모니터링이 필요합니다.
Vector Database
-
Vector Database란?
Vector Database는 벡터 임베딩으로 표현된 데이터(텍스트, 이미지, 오디오 등) 간의 유사성을 빠르게 검색하고 찾는데 최적화된 데이터베이스입니다.
주로 NLP, 추천 시스템, 검색 시스템 등에서 유사성 검색을 위해 사용됩니다. -
FAISS
- 특징
- 고속 검색: 매우 큰 규모의 벡터 데이터를 다룰 수 있음. 매우 빠른 유사도 계산
- 지연 감소: GPU와 CPU를 활용한 병렬 처리로 매우 낮은 지연 시간내에 검색 수행
- 알고리즘 최적화: 다양한 검색 방법을 지원. 벡터의 효율적인 검색 및 인덱싱 제공
- 장점
- 성능 최적화: 매우 큰 데이터셋에서도 빠르고 정확한 검색 가능
- 유연성: 여러 가지 인덱싱 방식과 검색 방법을 제공
- 확장성: 대규모 벡터 데이터베이스에서도 성능 저하 없이 사용 가능
- 단점
- 복잡한 설정: 설정 및 최적화가 어려울 수 있음. 가파른 Learning Curve
- 특화된 용도: 벡터 검색에 특화되어 범용적인 데이터베이스로 활용이 제한적
- 특징
-
MongoDB
- 특징
- 문서 지향 데이터베이스: JSON과 비슷한 BSON을 사용하여, 비정형 데이터를 유연하게 저장 가능
- 유연한 스키마: 엄격한 스키마 구조 없이 다양한 유형의 데이터를 저장 가능
- 확장성: 샤딩을 통해 데이터베이스를 확장 가능. 수평적 확장이 용이함
- 장점
- 범용성: 다양한 유형의 데이터를 처리할 수 있는 범용적 데이터베이스
- 쉬운 사용: 유연한 스키마로 인해 데이터를 빠르게 추가하거나 변경할 수 있음
- 확장성: 샤딩과 클러스터링을 통한 효과적인 대용량 데이터 처리
- 단점
- 성능: 벡터 검색 성능은 FAISS에 비해 상대적으로 느림
- 복잡한 쿼리: 대규모의 벡터 데이터에서 최적화된 유사도 검색 수행은 어려울 수 있음
- 특징
느낀 점
이번 달에 배운 OpenAI API와 파인 튜닝을 이용해서 직접 모델 파인 튜닝을 해보았습니다.
직접 해보기 전에는 데이터 몇 개만 새로 주어지면 용도에 맞게 튜닝될 줄 알았는데, 오히려 성능이 낮아지는 모습이 보고 당황했습니다.
더 공부해보니 파인 튜닝을 한다고 무조건 좋은 성능이 나오는 것이 아니라, 파인 튜닝에 사용한 데이터의 질과 양에 따라 영향을 받는다는 것을 알게 되었습니다.
최종 프로젝트 이전까지는 프로젝트를 준비할 시간이 짧아서 양질의 데이터를 모으는 것이 쉽지 않아, 파인 튜닝을 사용하지 못할 것 같지만 최종 프로젝트 때는 꼭 직접 파인 튜닝한 모델을 사용하고 싶다는 생각이 들었습니다.
Keep
캠프 초반부터 계속 운동과 스터디를 진행하고 있습니다.
최종 프로젝트 때에도 변하지 않고 진행할 수 있도록 꾸준히 노력하겠습니다!
Problem
8월 말에 감기에 걸려버리는 바람에, 강의나 스터디 때 제대로 집중하지 못했습니다.
열심히 하는 것도 중요하지만 그만큼 몸 관리도 중요하다는 것을 알게되었습니다.
앞으로는 건강도 잘 챙겨서 아프지 않고 캠프를 마무리하고 싶습니다.
Try
LLM 스터디를 진행하면서 팀을 나누어 온라인 경연에 참가하고자 합니다!
살면서 처음 참가해보는 것이기도 하고, 프로젝트와 같이 진행할 수 있을까 하는 걱정이 있지만, 지금 안하면 나중에는 경험해보지 못할 것 같아서 진행해보려고 합니다.
생각만큼 좋은 성적이 나오지 않을수도 있지만 경험을 쌓는 것도 중요하다고 생각해서 성적보다는 경험을 쌓는다는 것에 초점을 맞춰서 진행하도록 하겠습니다.