brunch

You can make anything
by writing

C.S.Lewis

by 스토너 May 26. 2023

ChatGPT로 한국어 AI 모델링을 해봤더니

과연 AI가 만든 모델의 정확도는?

뒤늦은 ChatGPT AI 모델링 후기입니다.


개발 코드를 자동으로 작성해주고 디버깅을 해줄뿐만 아니라, AI 모델링, 논문 대행, 마케팅 방법론, 블로그 포스팅 자동작성 까지 ChatGPT를 업무나 공부에 활용하는 다양한 영상과 글이 쏟아져 나오고 있는데요,


OpenAI사의 ChatGPT가 많은 일들을 효율적으로 대신해주거나 모르는 지식을 알려주는 장점도 있지만

답변의 진위여부는 확실치 않다는 단점도 들려오고 있죠. 


물론 향후엔 보완이 돼서 인공지능이 화이트칼라 직군을 대체한다든지 하는 말도 있습니다.

아직은 실무적으로 도움을 주는 단계이지만요.


저도 실무적으로 ChatGPT를 적용하면 업무를 얼마나 효율적으로 처리해줄지 궁금하더군요. 

또 영어가 아닌 한국어로 된 데이터의 자연어처리 AI 모델도 만들 수 있을까? 궁금했습니다.


ChatGPT에게 일을 시킬 땐 과연 어디까지 핸들링하면 될 지? 

또 ChatGPT가 만든 모델의 정확도는 과연 얼마나 높게 나올까 궁금하여 AI 모델링을 시켜보려고 합니다.



데이콘에서 받은 한국어 문장 유형 분류 데이터를 예시로 AI 모델링을 하겠습니다. 


ChatGPT에게 AI 모델링 명령을 내리기 위해 데이터 파일 저장 위치와 독립변수, 종속 변수에 각각의 상세 칼럼을 지정해주었습니다. 


Q. python으로 한국어 문장 유형 분류 AI를 만들고 싶어 데이터는 open 폴더의 train.csv 파일이야. 칼럼은 총 7개이고 각 칼럼은 ID, 문장, 유형, 극성, 시제, 확실성, label 이야. 문장, 유형, 극성, 시제, 확실성 칼럼을 독립변수로 label을 종속변수로 학습을 시키고 싶어. 종속변수는 문장 칼럼을 분석했을 때 유형이 사실형이고 극성이 긍정, 시제가 현재, 확실성이 확실이면 label 값은 사실형-긍정-현재-확실이야. 정확도 높은 모델을 만들어줘


그랬더니 ChatGPT가 지정한 폴더의 데이터 파일을 불러오는 것부터 label 값을 종속변수로 지정해줍니다.


A.


거기에 전처리를 진행하는데 konlpy 라이브러리까지 불러옵니다. "한국어 문장을 분류하기 위해선 형태소 분석을 통해 단어단위로 나누고 품사를 태깅한다"는 설명을 하는 걸 보니 한국어 데이터를 어떻게 전처리 할 지 알고 있다는 거네요. 그점에 놀라웠습니다.



pandas의 apply함수를 람다식으로 깔끔하게 명사와 동사단위 데이터로 추출해줍니다.


전처리 과정은 여기가 전부인가 봅니다.

바로 SVM 모델을 적용한 모델 학습으로 넘어갑니다.



모델에 대한 평가 코드도 알려줍니다.



궁금했던 건 왜 SVM 모델을 적용했냐는 겁니다.


Q. 왜 Support Vector Machine 알고리즘을 사용했지?


ChatGPT에 물어봤더니 SVM에 대한 자세한 개론을 알려줍니다.



SVM 모델 외 다른 적용 가능한 알고리즘도 물어봤습니다.


Q. 적용할 수 있는 다른 알고리즘도 알려줘.



알려준 모델로 코드를 만들어달라고 하면 만들어줄 것 같았으나 거기까진 하지 않았습니다.

그럼 ChatGPT가 알려준 모델을 한번 적용해보려고 했습니다.


Q. df['nouns_verbs'] = df['morphs'].apply(lambda x: [word for word, pos in komoran.pos(x) if pos in ['NNG', 'NNP', 'VV', 'VA']]) 코드를 실행하는데AssertionError: phrase input should be string, not <class 'list'> 오류가 생겼어 해결해줘 


알려준 코드로 발생한 오류를 물어봤더니 바로 코드를 정정해줍니다.

 



그래서 ChatGPT가 만든 모델 정확도는 얼마일까?



모델 정확도는 44.51%로 말도 안되게 낮은 정확도가 나왔네요.

아무래도 데이터 전처리 및 탐색 과정에서 보다 정밀한 핸들링이 빠진 상태에서

정석대로 모델코드를 적용해버리니 정확도가 낮게 나온듯합니다.


ChatGPT 성능이 떨어져서는 아니고 넓은 범위로 단순히 이런 칼럼의 모델을 만들어줘 했을 때 

자세한 데이터를 모르는 상태에서 FM대로 작성한 모델을 적용해버리면 발생하는 문제인 듯 싶습니다.


데이터 전처리 단계에서 어떤 과정으로 전처리 할지 세부적으로 전략을 정한 뒤 명령을 하면

좀 더 자세한 코드를 작성해줄 것 같고요. 정밀하게 모델링을 할 수 있을 것 같습니다.


물론 ChatGPT가 적용한 모델이 아닌 다른 모델을 사용해도 정확도를 높일 수 있고요 ㅎㅎ

비록 정확도는 낮게 나왔지만 단순히 말 몇마디로 모델링을 해주는 ChatGPT를 보니 조금 섬뜩하기는 했습니다.


아직은 어떤 모델을 적용할 지 선택하는건 인간의 아이디어와 분석하는 분석가의 능력에 달려 있다고 위안을 삼아봐야겠네요. 


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari