본문 바로가기

활동/SK네트웍스 Family AI 캠프 2기

SK네트웍스 Family AI 캠프 2기 : 12th week (8월 1주차)

이번 주에는 체력 보충을 신경 쓰면서 공부했습니다 ^_^

지난주에 바쁜 일정을 소화하느라 체력이 많이 떨어져 있었거든요....!

 

커리큘럼의 중반부에 다다르고 있는 만큼 더더욱 체력 관리를 해야겠다는 생각이 듭니다.

가뜩이나 요즘 들어서 날씨가 극단적이어서 그런지, 자칫 하면 공부 의지가 팍 꺾이겠더라구요.

큰 그림을 그려가면서 세부 컨디션을 신경 써야겠어요!

 

이미 알고 있는 내용이라고 해서 자만하지 말고...

모르는 내용이라고 해서 당황하지 말고...

각각의 내용들을 서로 엮어서 유기적으로 동작할 수 있게끔 온전히 습득하고 싶습니다.

 

잘 엮은 정보와 지식들은 정말 숨 쉬는 것처럼 역동적으로 느껴지더라구요.

역동적인 시장 상황에 대응하려면, 죽은 지식이 아닌 살아있는 지식을 갖추기 위해 노력해야 한다고 생각하거든요.

저 역시 정보와 지식이 살아 숨 쉬는 경지를 향해서 오늘도 실력 연마를 해보려고 합니다!

 

남은 날들도 처음과 같은 마음가짐을 기억하면서 힘내보겠습니다!!

 

 

● 성취

이번 주에는 제 평소 관심사에 속하는 주제 중 하나를 배웠습니다!

바로 'PEFT (Parameter-Efficient Fine-Tuning)' 기법인데요.

 

이 기법을 사용하면 각종 자원(시간, 컴퓨팅 리소스 등)이 한정된 상황에서도 효율적으로 학습시킬 수 있습니다.

PEFT 기법은 소수 거대 기업이 독식하기 쉬운 현 상황을 타개할 수 있는 돌파구 중 하나라고 생각해요.

Chat-GPT를 비롯한 LLM 등장으로 높아진 AI 시장 진입 허들을 그나마 낮추는 역할을 한다고 보거든요...!

 

 

'SK 네트웍스 Family AI 캠프' 지원 홈페이지에 접속하면 위와 같은 글귀를 볼 수 있는데요.

저는 해당 문구를 관통하는 핵심 요소 중 하나가 'PEFT 기법'이라고 생각합니다.

 

지금까지 배운 내용들은 사실... PEFT 기법을 잘 운용하기 위해 필요한 기반 지식들에 해당한다고 봐요.

Python, 머신러닝, 딥러닝 개념 등을 모른다면 PEFT 기법을 이해할 수 없거든요.

 

이런 이유로 PEFT 기법을 수업에서 배웠을 때, 성취감을 크게 느꼈습니다! 

 

 

● 학습

이번 주에는 'LLM'과 '프롬프트 엔지니어링'에 대해 습득했어요.

강사님께 논문 및 오픈소스 코드 참고하는 방식도 함께 배웠습니다.

고기 잡아주시는 것만으로 끝나는 것이 아니라, 고기 잡는 법도 같이 알려주셔서 좋았어요!

 

자, 그럼 지금부터 한 주간 동안 배웠던 내용들 중에서 인상 깊었던 것 위주로 다시 정리해 보겠습니다 ^_^

 

 

# GPT 모델 시리즈 개요

어디서 많이 들어본 이름이지요?

맞습니다, 바로 Chat-GPT에 사용된 모델입니다!

 

GPT 모델은 구글이 발표한 '트랜스포머 구조'를 기반으로 설계되었습니다.

이런 이유 때문에 트랜스포머 구조를 잘 이해하는 것이 중요하다고 이전부터 서술했던 것입니다!

그럼 이제 GPT 모델 시리즈에 대해 하나씩 설명해 볼게요.

 

 

# GPT-1 모델

GPT-1은 2018년에 공개된 모델로 1억 1,700만 개의 파라미터를 지니고 있습니다. 

2017년에 트랜스포머 모델 논문이 공개된 것을 고려하면, AI 판이 얼마나 빠르게 변화하는지 감이 오시죠?

GPT-1 모델은 질의응답/텍스트 분류/감성 분석 등을 주요 기능으로 갖췄습니다.

 

 

# GPT-2 모델

GPT 모델을 발표한 OpenAI 사는 GPT-1으로 만족하지 않았습니다.

더 발전한 형태의 GPT-2를 2019년에 발표했어요.

GPT-2의 성능이 워낙 뛰어난 나머지 인류에게 위협이 될 수 있다는 이유로 논문 발표가 연기되었다네요.

논문 발표를 연기했음에도 불구하고 1년 사이에 나왔다니... 정말 무서울 정도로 놀라운 판입니다...

GPT-2는 15억 개의 파라미터를 지닌 모델로, 대화/번역/장문 등에 능합니다.

 

 

# GPT-3 모델

다음으로 GPT-3입니다.

GPT-3는 2020년에 처음 공개된 모델로 1,750억 개의 파라미터를 지녔습니다.

이때부터 LLM(Large Language Model)의 특성이 엄청나게 부각되었던 걸로 기억해요.

GPT-2까지만 해도 개인 로컬 실습을 도전해 볼만한 규모였지만, GPT-3부터는 엄두조차 안 나는 규모라서 다들 입이 떡 벌어졌거든요.

(물론 OpenAI에서 GPT-3를 직접 공개하지 않고, API를 통한 우회적 공개를 했기 때문에 로컬 사용이 불가능하기도 했습니다...!)

GPT-3는 문서 요약 기능이 추가되었고, 이전 시리즈보다 자연스러운 대화가 가능해져서 큰 주목을 받았습니다.

 

 

# GPT-3.5 모델 (With Chat-GPT)

우리가 잘 알고 있는 Chat-GPT 모델은 GPT-3.5에 해당합니다.

지금은 GPT-4 모델과 채팅하는 것도 가능하지만, 초창기에 전세계를 뜨겁게 달궜던 GPT 모델은 3.5 버전이었습니다.

GPT-3.5 모델은 2022년 11월에 공개되었고 1,750억 개의 파라미터를 지녔습니다.

GPT-3와 파라미터 개수가 똑같은 이유는 GPT-3를 파인튜닝해서 공개한 버전이 GPT-3.5이기 때문입니다!

GPT-3.5는 채팅을 통한 대화 흐름 파악이 가능하고, 사용자 요구를 반영하여 소설/시 등을 창작이 가능하다는 특징을 지녔어요. 

(이 시기부터 본격적으로 AI 시대에 문과/예체능이야말로 희망일 것이라던 분위기가 많이 사라졌던 걸로 기억해요...😨)

 

 

# GPT-4 모델

GPT-4는 제일 마지막으로 출시된 GPT 모델입니다.

작년 2023년 3월에 공개된 모델로 파라미터 수는 아직까지 비공개 상태입니다.

다들 파라미터 수를 추측만 하고 있을 뿐이지, 정확한 숫자는 관계자 말고 아무도 몰라요...

이전 시리즈에 비해 언어 능력 및 기억력이 향상되었고, 이미지 기능도 추가되었다는 특징이 있습니다!

 

 

# zero-shot 프롬프팅

예시 없이 프롬프트에 명령만 남기는 것을 'zero-shot 프롬프팅'이라고 합니다.

 

아래와 같은 프롬프트 명령 문장이 해당 개념에 속한다고 보면 됩니다~

 

 

 

# one-shot 프롬프팅

예시 1개와 함께 프롬프트에 명령 남기는 것을 'one-shot 프롬프팅'이라고 해요.

 

아래와 같은 프롬프트 명령 문장이 해당 개념에 속합니다!

 

 

# few-shot 프롬프팅

예시 여러 개와 함께 프롬프트에 명령 남기는 것을 'few-shot 프롬프팅'이라고 합니다!

 

아래와 같은 프롬프트 명령 문장이 해당 개념에 속해요.

 

 

# Chain of Thought (CoT)

Chain of Thought는 직역 의미 그대로 '생각의 사슬'을 뜻합니다.

프롬프트에게 예시를 줄 때, 단계별로 풀어서 설명하면 정답률이 더 높아진다고 하네요.

 

그 모습이 마치 '생각이 사슬처럼 이어지는 형태'를 닮아서 Chain of Thought라고 이름 지었다고 합니다.

 

 

위 예시가 CoT에 해당합니다!

 

 

# zero-shot CoT

CoT 과정을 하나하나 다 서술하려면 꽤 노가다 작업을 해야 합니다.

zero-shot CoT는 단 한 문장 만으로 위와 같은 노가다 작업을 생략할 수 있습니다.

 

답변 예시에 긴 생각의 흐름을 생략하고 '단계별로 생각해 보자 (Let's think step by step)'라는 멘트를 넣는 것만으로도 위와 같은 효과를 얻을 수 있어요.

 

논문 속 예시를 가져왔어요!

차이가 아주 명확하게 보이지요?

그만큼 zero-shot CoT가 강력하다는 것을 보여준답니다 :)

 

 

● 개선

프롬프트 엔지니어링을 공부했던 날에 개발자 친구에게 IT 글 하나를 공유받았어요.

마침 해당 글이 프롬프트 엔지니어링을 다루더라구요.

zero-shot, one-shot, few-shot, CoT 등이 나와서 반가웠습니다!

 

그런데 ToT 개념은 좀 생소하더라구요.

해당 포스팅에서 처음 배운 ToT 개념을 여기서 가볍게 소개해 보겠습니다.

 

#  Tree of Thought (ToT)

'Tree of Thought'를 직역하면 '사고의 트리'라고 해석할 수 있습니다.

문제 하나에 뿌리를 두고, 여러 관점의 가지를 침으로써 사고하는 방식이라 볼 수 있어요.

 

하나의 문제에 전문가 여러 명이 동원되는 것처럼 ToT도 비슷하게 동작합니다.

저는 피보나치 문제에 ToT를 적용해 보았습니다!

 

 

휴... 여러 전문가들이 참여한 만큼 답변이 엄청 기네요...!

생각의 확장이 필요할 때 ToT 프롬프팅 기법을 사용하면 좋을 것 같습니다. ^^

 

반면에 생각의 깊이가 필요할 때에는 CoT 프롬프팅 기법을 사용하면 좋겠지요?

 

자... 이제 다양한 프롬프트 엔지니어링 방식도 배웠으니 본격적으로 달릴 준비를 해야겠습니다 ^_^

프롬프트 엔지니어링 기법을 적용해서 더 효율적으로 공부하는 방법도 생각해 봐야겠어요!

 

힘내서 다음 주간 공부도 열심히 해보겠습니다~ 아자잣!!

 

 

+) 부족한 부분이 있으면 댓글로 말씀해 주세요! 겸허한 마음으로 더 공부하겠습니다.