greatsangho의 이야기

SK AI 캠프 13주차 후기 본문

프로그래밍/SK AI 캠프

SK AI 캠프 13주차 후기

greatsangho 2024. 11. 16. 20:53

 

The four Fs

  • FACTS(사실, 객관) : 이번 일주일 동안 있었던 일, 내가 한 일

이번 주는 chatGPT에서 제공하는 API를 이용한 프롬프테 엔지니어링과 기존의 LLM 모델을 이용하여 파인튜닝을 하는 내용을 공부하였다. 파인튜닝을 GPT와 BERT계열에 대해 진행하였고, PEFT와 LoRA를 활용하였다.

  • FEELINGS(느낌, 주관) : 나의 감정적인 반응, 느낌

프롬프트 엔지니어링을 통해 보다 언어 모델이 잘 알아들을 수 있는 방식으로 질문하는 방법을 알 수 있었다. 경험적으로 느끼고 있던 질문 내용과 방식들이 실제로 더 효율적인 방식이라는 점과 질문을 좀 더 체계적으로 할 수 있게 된 것 같다.

파인튜닝의 경우 기존 모델에서 추가적인 학습을 진행하는 방식이고 파인 튜닝하는 기법과 이를 평가하는 방식이 새로웠다. Colab 유료 구독을 통해 A100 GPU를 사용하면서 언어모델을 학습시키고 사용하기에 자원이 상당히 많이 소모된다는 것을 느꼈다. 학습 데이터가 조금만 늘어도 T4 GPU로 학습이 불가한 점이 곤란하다.

  • FINDINGS(배운 것) : 그 상황으로부터 내가 배운 것, 얻은 것

프롬프트 엔지니어링을 통해 CoT, ToT, APE와 같은 개념을 알 수 있었다. 언어 모델에게 더 정확한 답변을 유도할 수 있는 방법들이 소개되었고 이 분야에 대한 내용을 배울 수 있었다.

파인 튜닝을 하면서 기존에 모델을 사용하기 위해 전처리 하거나, 이를 토크나이저로 토큰화, 평가 지표를 정의하고 적용하는 과정을 변형해 가면서 해 나감을 알 수 있었다. 특히 PEFT를 통해 원하는 부분만 학습을 시키는 부분과 자료형을 통해 FP16 및 그 보다 효율적인 연산을 수행하는 것을 배울 수 있었다. 언어 모델별로 양자화를 지원하는 EEVE 모델이나, Bert 모델에 QLoRA를 적용해 학습시키는 방법을 공부하였다.

파인 튜닝을 한 내용을 평가하기 위한 방법으로 ROUGE와 그 방식인 n-gram에 대해 공부하였다.

ROUGE(Recall-Oriented Understudy for Gisting Evaluation)는 텍스트 요약이나 기계 번역과 같은 작업에서 생성된 텍스트의 품질을 평가하기 위한 메트릭이다. ROUGE는 참조 텍스트와 생성된 텍스트 간의 겹치는 부분을 측정하여, 생성된 텍스트가 원본에서 중요한 정보를 얼마나 잘 보존했는지를 평가한다. 재현율(recall)을 통해 생성된 텍스트가 참조 텍스트의 중요한 정보를 얼마나 많이 포함하고 있는지를 평가한다.

n-gram은 연속된 n개의 항목으로 이루어진 텍스트 조각을 의미한다. "I love reading books"라는 문장에서:
Unigram (n=1): "I", "love", "reading", "books"
Bigram (n=2): "I love", "love reading", "reading books"
Trigram (n=3): "I love reading", "love reading books"

와 같이 연속된 단어들을 붙여놓은 것이다. ROUGE-N은 n-gram 기반의 겹침을 측정하는 방식으로

ROUGE-1: unigram(단일 단어)의 겹침을 측정,

ROUGE-2: bigram(두 단어)의 겹침을 측정,

ROUGE-L: 두 텍스트 간의 가장 긴 공통 부분 문자열(Longest Common Subsequence, LCS)을 기반으로 유사성을 측정,

ROUGE-S: skip-bigram 기반으로, 문장 내에서 순서를 유지하면서도 연속되지 않은 두 단어 쌍의 겹침을 측정

과 같은 방식이 있다.

기존 rouge를 사용할 경우 영어와 숫자를 기준으로 평가하므로 한국어를 포함한 정확한 평가를 위해서는

https://github.com/HeegyuKim/korouge

 

GitHub - HeegyuKim/korouge: Google 공식 Rouge Implementation을 한국어에서 사용할 수 있도록 처리

Google 공식 Rouge Implementation을 한국어에서 사용할 수 있도록 처리 - HeegyuKim/korouge

github.com

을 이용해야 한다.

  • FUTURE(미래) : 배운 것을 미래에는 어떻게 적용할 지

내가 배운 파인튜닝 기법을 바탕으로 앞으로 있을 팀 과제에서 BERT 모델을 학습시키거나, 또는 skGPT2 또는 3 버전을 학습시키도록 하고 싶다. 그리고 hugging face에 사람들이 파인튜닝한 모델들이 많이 올라와 있는데 나는 가벼운 모델을 만들어 보고 싶다. 적은 양의 학습으로 모델의 성능을 끌어올릴 방법을 찾아보고 싶다.

언어 모델을 활용처가 더 넓을 것 같고, 나중에 게임을 만들 때 인공지능의 답변에서 벡터를 이용한 다채로운 답변 등에 적용할 수 있으면 좋을 것 같다.

데이콘에 이미지 복원 및 채색과 관련된 대회가 올라왔는데, 이미지 처리에 대한 공부도 병행하며 딥러닝 공부도 더 할 것이다.

반응형