2023년 2월 20일 월요일

AWS Sagemaker 사용기 (feat. koGPT)

오랜만에 huggingface를 뒤적뒤적하다가 문득 kogpt를 써보고 싶다는 생각이 들었습니다. 챗GPT를 너무 잘 쓰고 있기도 하고, Gen AI에 흥미를 가지고 있던 터라 바로 kogpt huggingface에 들어가보았습니다.


파라미터가 6.0B, vocab size는 64000개로 이전에 있던 SKT버전 모델보다는 좀 커졌습니다. 
처음에는 간단하게 추론만 시켜보려고 코랩에서 돌리려고 했는데, 최소 사양이 메모리16G라고 하니 따로 요금제를 구독해야 해서 조금 고민되네요. 어차피 많이 사용할 것도 아니고, 또 pro구독한다고 해서 안정적으로 kogpt를 돌릴 수 있는 것도 아니니까 그냥 Sagemaker를 쓰기로 결심했습니다. 예전에 인턴할 때는 리소스 걱정은 없었는데 말이죠...ㅠ

무튼 오랜만에 AWS 서브계정에 들어가서 Sagemaker 인스턴스를 바로 생성하려고 했는데, 엥? GPU 인스턴스를 사용하려면 따로 service limit을 풀어야 된다고 하네요.. AWS supports 들어가서 case 생성하고 service limit increase 요청을 넣었습니다. 해킹 이슈 때문에 아마 이런 시스템으로 만들어놓은 것 같네요. 좀 귀찮긴 하지만 그래도 이 편이 더 좋긴 합니다.

요청을 보내고 하루~이틀 정도 기다렸더니 아래와 같이 메일이 날라옵니다.
 

리전을 바꾸면 조금 더 싸긴 하지만 많이 사용할 게 아니기 때문에 리전은 굳이 건드리지 않았습니다. 이제 새롭게 추가한 리소스를 가지고 koGPT를 돌려볼 수 있습니다. 노트북 인스턴스를 생성하고 Jupyter를 열어 마치 로컬처럼 편리하게 사용할 수 있습니다.


이제 huggingface에서 koGPT 코드를 따서 돌려봅시다. 간단하게 라이브러리 추가해주고 돌리게 되면 아래와 같이 돌아가는 모습을 볼 수 있습니다!


do_sample 인자를 True로 주었더니 주석과 다르게 도출되었네요. 흥미롭습니다. 새롭게 텍스트를 주고 생성하도록 시켜보았습니다. 


chatGPT만큼의 성능은 보여주지는 못하네요. 당연합니다. chatGPT는 RLHF를 통해서 fine-tuning되었으니 koGPT를 통해서 비슷한 성능을 내기 위해서는 koGPT에도 fine-tuning을 해 주어야겠죠!

koGPT를 사용하기 위한 리소스도 갖춰졌으니 다양하게 활용해볼 생각입니다. 최근에 '한톨'이라는 의결권 플랫폼을 만들면서 네이버 종목토론방을 적극적으로 활용했는데요, 활용 가능한 corpus로 쓰기 위해 크롤링을 한번 해봐야겠네요. 이외에도 재무제표에 들어있는 텍스트나 뉴스 데이터 등 이런저런 데이터들을 활용해봐야겠습니다.

리소스가 부족할 때 Sagemaker 사용하면 정말 편리한 것 같습니다. 다음에 (얼마가 될지는 모르겠지만) koGPT 활용기로 돌아오겠습니다.

감사합니다!

댓글 없음:

댓글 쓰기