brunch

You can make anything
by writing

C.S.Lewis

by 스토리플레이어 Apr 27. 2023

챗GPT에서 하이퍼파라미터 사용하기

좌충우돌 기록 #5



안녕하세요, 스토리어 플레이어입니다! 

챗GPT의 활용과 관련하여 수많은 보고서와 글들이 나오고 있습니다. 그렇기 때문에 새롭게 배우고 찾아갈 것들이 수없이 많죠!



서울디지털재단의 챗GPT 활용 사례 및 활용팁 보고서!

지난 3월, 서울 디지털 재단이 챗GPT를 활용한 업무활용도 향상을 위해 활용사례 및 활용팁 연구보고서를 출간했습니다! 저희가 한 번 참고할 부분이 있는지 서울디지털재단의 메타버스팀이 공개한 연구보고서를 살펴보았습니다.



챗GPT 활용 방식 다섯 가지!

본 보고서에서 소개한 챗GPT 활용 방식은 (1) 보고서 자료조사, (2) 사업기획 아이디어, (3) 글쓰기, 보도자료, 번역 및 교정, (4) 엑셀업무 활용, (5) 프로그래밍인데요. 제가 느꼈을 때 앞의 세 가지 정도는 이미 많은 분들이 알고 계시는 챗GPT 활용법이 아닐까 합니다. 그러나 뒤에 두 방법은 새롭게 적용해 볼 구석이 있어서 흥미롭게 보았습니다. 국문으로 어떻게 조사하고 아이디어를 얻고, 글쓰기에 도움을 받을지 알고 싶으신 분들은 한 번 살펴보면 좋을 것 같아요!

(1) 보고서 자료조사 : 챗GPT를 활용하여 업무보고 자료에 필요한 기초자료부터 전문자료 조사, 정책사례 조사 등에 활용

(2) 사업기획 아이디어 : 신규사업 기획 또는 정책수립시 해당사항에 대한 문제점을 파악하고 아이디어 등을 요청가능

(3) 글쓰기, 보도자료, 번역 및 교정 : 보도자료, 영어번역 및 교정 등의 글쓰기 영역에서 보조수단으로 활용 가능

(4) 엑셀업무 활용 : 엑셀 자료분석 및 정리에서 어렵고 복잡한 엑셀함수를 간단한 텍스트 명령어를 사용하여 함수생성

(5) 프로그래밍 : 챗GPT의 프로그래밍 코드생성 기능을 활용하여 업무를 자동화 할 수 있는 다양한 업무자동화(RPA) 적용가능



챗GPT 하이퍼파라미터(hyper parameter)

이 보고서에서 제 눈을 끌었던 것은 바로 챗GPT의 하이퍼파라미터(hyper parameter)입니다. 미드저니와 마찬가지로 챗GPT에도 언어적 표현 뿐만 아니라 값을 넣어 조금 더 프롬프트 값을 정교하게 만들 수 있는데요. 하이퍼파라미터란 “사용자가 인공지능 모델의 셋팅을 조절하는 변수로 이 값을 프롬프트에 잘 적용하면 원하는 방향으로 좋은 결과를 도출이 가능”하다고 말합니다. 예시로 “max_length:2048(최대길이), writing style:Journalistic(기사체)’를 제시합니다. 보고서에서 제시하는 것 중에 도움이 될 것 같은 하이퍼파라미터를 공유해보려고 합니다.



(1) 톤의 경우 말의 ‘느낌’을 이야기하죠.

톤을 지정해주면 다양한 느낌을 내는 답변을 얻을 수 있죠. 

Authoritative(권위적인), Clinical(냉담한), Cold(차가운), Confident(자신감에찬), Cynical(냉소적 인), Emotional(감정적인), Empathetic(공감하는), Formal(격식있는), Friendly(친근한), Humorous(유머있는), Informal(비격식적인), Ironic(역설적인), Optimistic(낙관적인), Pessimistic(비관적인), Sarcastic(빈정대는), Serious(심각한), Sympathetic(동조적인), Tentative(머뭇되는), Warm(따뜻한) 

(적용예시) Writing style: friendly



(2) 글쓰기 스타일은 ‘형식’에 가깝습니다.

만약 보도자료를 작성하는 것이면 “journalistic (신문체)”를 활용할 수 있겠죠. 시를 쓰고 싶으면 “poetic (시적인)” 파라미터를 넣을 수 있을 것 같습니다. 

Academic(학술적인), Analytical(분석적), Argumentative(논쟁적인), Conversational(대화적인), Creative(창의적인), Critical(비판적인), Descriptive(설명적인), Epigrammatic(풍자적인), Epistolary (편지체), Expository(설명적인), Informative(자세한), Instructive(유익한), Journalistic(신문체), Metaphorical(은유적인), Narrative(서술적인), Persuasive(설득적인), Poetic(시적인), Satirical(풍자 적인), Technical(기술적인)

(적용예시) Writing style: journalistic



(3) 최대 글자 수를 정해볼까요? max_length 

입력 가능한 수: 0~2,048 (2,048은 모델의 토큰 수로 최대 글자 수는 약 1,000자에서 2,000자)

이 값은 실제로는 입력 텍스트의 길이와 토큰화 방식에 따라 달라질 수 있다고 하네요! 다만 여기서 적는 수는 모델의 토큰 수로 최대 글자 수와는 크게 상관이 없는 것 같습니다.

(적용예시) max_length: 50/ max_lenght: 100



4) 문장의 길이도 정할 수 있어요, length penalty 

입력 가능한 수: 0.5 ~ 2.0 

이 값이 높을 수록 길이가 긴 문장이 우선 순위가 높아집니다. 생각보다 잘 안 되서 찾아보니 챗GPT에서는 Length_penalty가 잘 되지 않는다는 

해외 포스트가 있네요.

(적용예시) length_penalty: 0.5/ lenght_penalty: 2.0



(5) 중복된 단어 피하고 싶다면? repetition penalty 

입력 가능한 수: 0 ~ 1 

이 값이 높을수록 중복된 단어가 만드는 것을 막을 수 있습니다. 근데 값이 낮을 수록 중복된 단어의 비율이 낮아지는 것 같습니다. 챗GPT에게 물어보니 높을수록 중복된 값이 낮아진다고 하는데 제가 잘못한 걸까요? 

(적용예시) repetition_penalty: 0/ repetition_penalty: 1



조금 더 창의적인 답변을 유도하고 싶다면? Beam_width, Top-p, Temperature.

세 개의 개념이 보고서에서는 뚜렷하게 드러나 있지 않습니다. 간단하게 정리하면 Temperature, Top-p, Beam-width를 적절히 높이면 좀 더 다양한 답변을 얻을 수 있고, 낮추면 정확성 높고 예측 가능한 답변을 받을 수 있게 됩니다.


(1) Beam width   

입력 가능한 수: 0~10

이 값이 높을수록 시간은 다소 오래 걸리지만 다양한 문장이 만들어지게 된다고 합니다. 사실 이 개념이 헷갈릴 수 있어서 보고서에서 다음과 같이 예시를 제시해주었는데요. 

(적용예시): "나는 밥을"이라는 문장을 생성하는 경우, Beam width가 1이면 "나는 밥을 먹었다"와 같은 하나의 문장만 생성 된다. 하지만 Beam width가 3으로 늘어난다면 "나는 밥을 먹었다", "나는 밥을 좋아한다", "나는 밥을 사러 갔다"와 같이 다양한 문장이 생성될 수 있다는 것이죠.


(2) Top-p

입력 가능한 수: 0 ~ 1

사실 top-p의 경우 이해하기가 쉽지 않아요. 보고서에 의하면 top-p의 경우, 이전 단어들을 바탕으로 생성한 후보 중에서, 누적 확률 분포의 상위 p%에 해당하는 후보만을 선택하는 기법이라고 설명합니다. 여기서 누적 확률 분포란 p갚이 높을수록 다양한 단어가 도출되고, 낮을수록 다음 단어의 예측 가능성이 높아진다고 합니다. 쉽게 말해서 Top-p 샘플링은 여러 단어 후보가 있는 상황에서 다음 단어를 선정할 때 상위 50%로 할지 10%로 할지 결정할 수 있는 값입니다. 미드저니에 따지면 “chaos” (혼돈) 프롬프트와 유사하지 않을까 합니다.

(적용예시): "나는 OOO 에 갔다."            top-p가 0.5일 경우, 모델이 생성한 단어 확률 분포에서 상위 50%의 단어만을 고려하여 다음 단어를 선택합니다. 이 경우, 가능한 다음 단어로는 "학교", "영화관", "식당" 등이 있습니다.       top-p가 0.9일 경우, 모델이 생성한 단어 확률 분포에서 상위 90%의 단어만을 고려하여 다음 단어를 선택합니다. 이 경우, 가능한 다음 단어로는 "학교", "영화관", "식당", "수영장", "공원" 등이 있습니다.  


(3) Temperature   

입력 가능한 수: 0 ~ 1

Temperature의 경우 후보 단어들의 확률 분포를 조절하는 파라미터입니다. 높을수록 예측 불가능한 단어가 나온다고 하네요! Temperature 또한 매우 유사합니다만 관련 유튜브의 소개에 따르면 Top-p가 상위 몇 %만 이용하겠다고 설정하는 것이라면 Temperature은 여러 가지 후보군 중 사용 언어의 확률을 점점 더 비슷하게 가져가는 것이라고 하네요

(적용예시): "나는 OOO 에 갔다."            temperature가 0.5일 경우, 모델이 생성한 단어 확률 분포의 폭이 좁아져서 예측 결과가 보다 확정적이고 일관성 있게 생성됩니다. 이 경우, 가능한 다음 단어로는 "학교", "도서관", "영화관"등이 있습니다.       temperature가 2.0일 경우, 모델이 생성한 단어 확률 분포의 폭이 넓어져서 예측 결과가 더 다양해집니다. 이 경우, 가능한 다음 단어로는 "바다", "사진관", "서점", "노래방" 등이 있습니다.



위의 세 파라미터를 이해하기 위해 제가 보고서와 함께 참고한 자료를 함께 첨부합니다! 조금 더 도움이 되었으면 좋겠네요:)

https://www.youtube.com/watch?v=ggYHZEzegr8

(출처: 유튜브 채널 <안될공학-IT 테크 신기술>)




매거진의 이전글 [응용편] 미드저니로 두 객체 떼어내기
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari