TL;DR
-
핵심 요약: 미세 조정된 모델이 OpenAI의 모델보다 정확했지만, 평가 구현이 어려웠음.
-
주요 내용: 미세 조정 과정에서 많은 코드가 숨겨져 있고 실행 속도가 느렸음. 시스템이 없으면 유지 관리의 복잡성이 증가할 것임.
데이터셋 로딩
-
데이터셋: Hugging Face Hub의 공개 저장소에서 테스트 데이터셋을 사용.
-
데이터셋 구조: 'name', 'eventrefnumber', 'text', 'StartDate', 'eventtype', 'province', 'citydistrict', 'village', 'targetgroup', 'commander', 'position', 'minkilled', 'mincaptured', 'capturedcharacterisation', 'killedcharacterisation', 'killq', 'captureq', 'killcaptureraid', 'airstrike', 'noshotsfired', 'dataprocessed', 'flagged', 'glossarymeta', 'minleaderskilled', 'minfacilitatorskilled', 'minleaderscaptured', 'minfacilitatorscaptured', 'leaderq' 등.
예측 추가
-
예측 추가: 각 데이터셋 행에 예측 결과를 추가하고, 이를 반복적으로 수행하여 계산 집약적인 단계를 피함.
-
Pydantic 객체 사용: 데이터 검증 및 품질 관리 기능을 처리하기 위해 Pydantic 객체로 데이터 구성.
JSON 유효성 테스트
-
예측 결과: 모델에서 JSON 문자열을 출력하도록 설정.
-
GPT 모델 사용: GPT-4o 및 GPT-4 Turbo 모델을 사용하여 예측 수행.
-
문제점: GPT 모델이 동일한 프롬프트에 대해 훈련되지 않았기 때문에 정확한 비교가 어려움.
비동기 예측
-
비동기 처리: 많은 이벤트를 처리하기 위해 비동기 방식으로 예측 수행.
-
재시도 로직: GPT-3.5-turbo 모델의 속도 제한을 고려하여 재시도 로직 추가.
데이터셋 변환 및 푸시
-
데이터셋 변환: 예측 결과를 데이터셋에 추가하고 Hugging Face Hub에 푸시.
-
함수 사용: 변환 및 푸시 과정을 반복적으로 수행하기 위해 함수 사용.
미세 조정된 모델 예측 추가
-
로컬 모델: 로컬에서 훈련된 모델의 예측 결과를 데이터셋에 추가.
-
OpenAI 모델: OpenAI의 원클릭 미세 조정 서비스를 사용하여 훈련된 모델의 예측 결과 추가.
-
다양한 모델: Mistral, Llama3, Solar LLM 등 다양한 모델의 예측 결과 추가.
최종 평가
-
평가 지표: JSON 유효성 테스트, 시작 날짜 정확도, 주별 정확도, 타겟 그룹 정확도, 이벤트 유형 정확도 등 다양한 평가 지표 사용.
-
최종 결과: 미세 조정된 모델이 OpenAI 모델보다 높은 정확도를 보였음.
GN⁺의 의견
-
미세 조정의 중요성: 미세 조정된 모델이 OpenAI의 기본 모델보다 높은 정확도를 보였다는 점에서, 특정 작업에 맞춘 모델의 중요성을 강조함.
-
평가의 복잡성: 평가 구현이 어려웠다는 점에서, 시스템적 접근의 필요성을 느끼게 함.
-
다양한 모델 사용: 다양한 모델을 사용하여 비교 평가를 수행한 점이 흥미로움. 이를 통해 모델의 장단점을 명확히 파악할 수 있음.
-
오픈 소스 활용: Hugging Face Hub와 같은 오픈 소스 플랫폼을 활용하여 데이터셋을 관리하고 공유한 점이 유용함.
-
비동기 처리의 필요성: 많은 데이터를 처리할 때 비동기 방식이 효율적이라는 점을 보여줌.