본문 바로가기
협업 프로젝트

[캡스톤디자인 #01] chat gpt api 활용 프로그램

by floral1215 2023. 8. 27.
반응형

 

서론

벌써 2학기 개강까지 얼마 남지 않았습니다 ㅠㅠ 이제 공대생들이 가장 바쁘다는 학기 중 하나인 3학년 2학기를 하게 되었는데 저도 마찬가지로 이번에 총 3개의 캡스톤 디자인을 진행하게 되었습니다. 그중 1개에 대해서 제가 맡은 부분을 적어보려 합니다.


본론

어떤 프로그램인지 소개를 할까 고민을 해봤는데... 아무래도 굳이 프로그램에 대한 소개를 먼저 할 필요는 없을 것 같아서 생략하고 제가 맡은 부분만 언급하겠습니다. (프로그램 자체에 대한 내용이 약간 포함되긴 합니다.)

 

우선 제가 해야할 일은 다음과 같습니다.

- 질문을 입력받으면 그 질문이 미리 구분해놓은 n개의 특성 중 어떤 특성에 해당하는지 출력하는 프로그램

(결과값이 softmax + cross entropy가 될테니 최대값이 threshold 미만이라면 다시 질문을 받도록 구성)

 

먼저 결론부터 말하자면 위 프로그램은 구현하지 못하게 됐습니다.

구현하지 못한 이유에 대해서 차례대로 설명해보자면 다음과 같습니다.

 

우선 학습을 위해서 각 특성을 의미하는 질문 데이터를 아무리 못해도 특성별로 수백개~수천개는 구해야 간단한 모델 테스트라도 해볼 것이고, 수만~수십만개는 되어야 적어도 데이터의 개수가 부족해서 성능이 나오지 않았다는 얘기는 안나올텐데 그런 데이터를 사람이 직접 만들 수는 없으니 먼저 이 부분을 해결할 방법을 찾아야 합니다.

 

그런데 각 특성별로 특성의 의미를 내포하면서 동시에 양질의 질문글을 수천개 생성하는 모델을 직접 만드려면... 우선 그 생성 모델을 만드는데 또 필요한 데이터가 있을 것이고, 그 모델을 만들기 위한 내용을 또 공부해야하니 이건 현실적으로 불가능하다고 판단했습니다.

 

다음으로 기존에 만들어져 있는 대규모 오픈소스 텍스트 생성 모델(Chat-GPT, Llama 등)에서 데이터를 수집하는 방법이 있는데... 이 또한 웹사이트 등에서 바로 만드는 건 "길이 제약, 개수 제약" 등이 있으니 불가능하고, 만드려면 API를 사용해서 해야합니다. 이렇게 하면 비용이 나오는 것도 그렇고 이렇게 하더라도 확실하게 양질의 데이터를 대규모로 구할 수 있다는 확신이 없었습니다. (임시 보류)

 

이것도 결론적으로는 사용하지 않게 될 것 같습니다만 현 상황에서 가장 좋은 해결방법은 개인적으로 다음과 같다고 봅니다. 굳이 챗지피티 API로 INPUT DATA를 생성하지 말고, 그냥 API를 사용해서 챗지피티가 바로 질문-특성을 분류하도록 하면 되지 않을까? 바로 챗지피티를 켜서 프롬프트를 몇개 입력해주니 제가 원했던대로 바로 동작을 하더라구요.

 

비용만 고려하지 않는다면 가장 좋은 방법은 위 방법이 아닐까 싶습니다.

 

그래서 위 방법과 더불어서 엄청 간단하면서 준수한 성능을 보인다고 생각한 규칙기반 모델도 같이 제안을 드렸는데 아무래도 규칙기반으로 결정이 되지 않을까 싶습니다. (규칙기반은 심지어 파이썬이 아니어도 구현이 간단하게 되므로...)

 

규칙기반은 말이 그런거지 그냥 이겁니다. 미리 특성별로 키워드(워딩. 즉, 단어)를 정해놓고 입력된 질문에서 가장 키워드 일치율이 높았던 특성을 골라줍니다. 일치율이란 그냥 키워드가 가장 많이 등장한 것을 의미합니다. 물론 충분한 데이터만 확보된다면 범용성 + 확장성 + 성능면에서 딥러닝 모델이 압도적이겠지만 현재 팀원분들이 만들고자 하는 프로그램은 원래 텍스트 없이 GUI 환경에서 마우스 클릭으로 구현해도 될만큼(사실 상업적 용도라면 오히려 채팅은 마이너스 요소라고 생각합니다. BUT 캡디다보니 우린 인공지능도 구현했다~ 라는 명분이 긍정적으로 작용하겠죠?) 간단한 프로그램이다보니 규칙기반으로만 만들어도 아무 문제가 없을거라 판단했습니다. (오히려 팀원들이 수정해서 사용하기에도 이게 더 간단하고)


결론

앞서 말한대로 이번에는 딥러닝 모델을 만들만한 환경이 갖춰져있지 않아서... 결론적으로는 규칙기반의 50줄밖에 안되는 아주 간단한 파이썬 프로그램을 만들고 끝이 날 것 같네요... 뭐 앞으로 2개의 캡디가 있으니 제대로 된 딥러닝 구현은 거기서 이뤄지지 않을까 싶습니다!!

 

사실 이번 방학때 너무 놀아버려서... 수학 베이스를 쌓으려 했는데 수학 베이스를 쌓긴 커녕 코딩 베이스까지 잃어버린 상황이라 ㅠㅠ 거기다 진로 고민까지 겹쳐서 참... 인생이 쉽지 않네요 하하

반응형