상세 컨텐츠

본문 제목

[인공지능] AI 파라미터(parameter) 쉽게 이해하기

초심자를 위한 AI/AI가 뭔가요?

by GAI.T & a.k.a Chonkko 2023. 12. 28. 17:02

본문

AI 관련 뉴스에서 자주 등장하지만 유독 좀처럼 머리 속에 들어오지 않던 용어가 있습니다. 바로 '파라미터(parameter)', 우리말로는 '매개변수'라는 용어입니다. 

 

예로 12.26자 조선경제의 국내 토종 AI 스타트업(업스테이지) 관련 기사를 볼까요. (국내 스타트업이 개발한 AI 모델이 해외 유명 AI 성능순위 사이트 차트 1~9위를 싹쓸었다는 기분좋은 뉴스입니다.)

  솔라는 AI 업계의 고정관념을 바꿔놓았습니다. AI 혁신의 변곡점으로 1년 전 등장한 챗GPT-3의 매개변수(파라미터)는 1750억개였습니다. 매개변수는 AI가 얼마나 똑똑한지를 보여주는 기준으로 여겨집니다. 허깅페이스에서 10위인 캐나다 밸리언트 랩스 AI의 매개변수도 700억개입니다. 그런데 솔라의 매개변수는 107억개에 불과합니다.

 

 

잘 모른다고 하더라도 우선 매개변수 또는 파라미터의 개수가 AI에서 아주 중요하다는 느낌이 드시죠? 네, 맞습니다. 파라미터의 개수가 얼마나 많으냐는 AI 모델의 크기가 얼마나 크냐를 의미하고, 결국 AI 모델의 성능을 좌우한다는 것이 일반적으로 통용되는 인공지능 상식입니다. GPT-3는 파라미터 개수가 1750억개라고 하고, 더 최신 모델인 GPT-4는 파라미터 수가 공개되지 않았지만 업계에서는 1조개를 넘어선다고 추정하고 있습니다.  

 

물론 위의 기사처럼 최근 그런 상식이 깨지는 경우도 있습니다. 파라미터가 그저 많다고 좋은 것만은 아니라는 것이죠. 훈련에 돈이 너무 많이 들다보니 최근에는 파라미터가 비교적 적은, 소위 작은 언어 모델, SLM(Small Language Model)이 주목을 받고 있습니다. 

 

파라미터의 정의와 개념

 

그런데 이 파라미터라는 것이 도대체 뭘까요? 인공지능에서 '파라미터'란 AI 모델의 내부 변수(variables)로, 이 변수의 값은 훈련(training) 과정에서 입력값(인풋)이 원하는 결과값(아웃풋)으로 변환이 될 수 있도록 조정됩니다. 다시말해, 하나의 파라미터는 특정 AI 알고리듬에 의해 훈련을 받는 과정에서 결과값을 예측하고 결정할 수 있도록 그 값이 조정되어 얻어집니다. 이러한 값은 '가중치(weight)'의 역할을 하게 되는데, 그래서 혹자는 파라미터를 그냥 가중치라고 설명하기도 합니다.

 

엄밀히 말하면 파라미터는 모델 파라미터(model parameter)하이퍼파라미터(hyperparameter) 두 종류의 변수로 구분되는데, 일단 여기서는 모델 파라미터을 중심으로 설명하고, 하이퍼파라미터는 간단히 사람이 AI 모델을 훈련하기 전에 미리 지침을 정해서 결정해둔 변수로 훈련하는 동안에는 변하지 않는 고정된 값이라고만 이해하고 넘어가겠습니다. 

 

네, 어렵습니다! (만약 무슨 말인지 한 번에 아시겠다면 여러분은 이미 AI 준전문가!) 

 

더 쉽게 : 파라미터의 정의와 개념 (다시)

 

최대한 쉽게 풀어보겠습니다. 우선 상황을 먼저 이해해보죠. 우리는 AI 모델 하나를 잘 훈련시켜 출시하는 것이 목표입니다. 훈련을 마치면 이 AI 모델에서 사용자가 A라고 인풋(input)을 주면 내부 알고리듬을 쭉쭉 통과해서 정답인 B라는 아웃풋(output)을 내놓게 될겁니다.

 

이때 알고리듬을 쭉쭉 통과한다는 것은 여러개로 이루어진 층을 통과한다고 생각하시면 됩니다. 아래 그림에서 Hidden Layer(숨겨진 층) 이 하나 있고 그 안에 5개의 노드(node)가 보이시죠? 실제 모델에서는 이런 숨겨진 층과 노드가 엄청나게 많이 있습니다. 딥러닝의 딥(deep), 즉 깊다는 뜻은 이런 층이 아주 깊게 쌓여있다는 뜻입니다.  (레이어와 노드에 대해서는 또 기회가 있으면 따로 설명하겠습니다.)

출처 : https://orbograph.com/understanding-ai-what-is-a-deep-learning-node/

 

예를 들어 '나는 너를' 이라고 이 AI 모델에 인풋을 넣으면, 알고리듬을 통과해서 마지막에 '사랑해'라는 답을 내놓도록 훈련을 시킨다고 생각해보겠습니다. 즉, 훈련 시키는 사람이 '사랑해'가 정답이라고 정해놓고, '나는 너를'이라는 인풋을 주었습니다. 이제 AI가 '미워해', '좋아해', '싫어해' 이런 마음에 안드는 답변을 내놓으면 혼을 내고, '사랑해'라고 답을 하면 예뻐해주는(보상을 주는) 훈련을 계속 하는 것입니다. 

 

AI를 혼내고 예뻐해준다는 뜻은 무엇일까요? 여기서는 파라미터를 이해하는 것이 목적이니 간단히 혼내는 것은 중요도를 낮추고, 예버해주는 것은 중요도를 높이는 것이라고 해보겠습니다. 중요도는 가중치(weight)라고 표현합니다. 위의 그림에서 보듯 왼 편의 인풋에서 시작해서 층(레이어)의 노드 하나를 거쳐 아웃풋으로 가는 길은 매우 많이 있습니다. 층이 많으면 많을 수록 그런 길은 더 많아집니다.

 

'사랑해'로 가는 버스 노선도

 

훈련과정으로 돌아가보죠. 쉽게 말하면 훈련을 한다는 것은 '나는 너를'에서 시작해서 '사랑해'로 가는 여러 길을 찾아 표시를 하는 것입니다. 층은 동네이고, 노드는 정류장이라고 생각해보면 좋겠습니다. 그리고 각 정류장을 지나는 버스가 있습니다. 훈련 전에는 이 버스들에 번호가 없습니다.

 

이제 훈련을 시작합니다. 인풋 동네의 '나는 너를' 정류장에서 시작해서 100개의 동네(100개의 층)를 지나 아웃풋 동네의 '사랑해' 정류장으로 가는 수많은 버스 노선들을 알아내고 그 버스마다 번호를 매기는 겁니다. 사랑해 정류장으로 도착한 버스 노선에 높은 번호(그냥 9000번대)를 배정하고, '미워해' 정류장에 도착한 버스 노선에는 낮은 번호(100번대)를 배정하고 다시 이런 과정을 수없이 반복합니다. 그러다보면 '나는 너를' 정류장에서 출발해서 '사랑해' 정류장으로 도착하는 가장 빠른 노선의 버스들에 가장 높은 번호들이 매겨지겠지요. 이렇게 버스 번호를 결정하고 나면, 이제는 가장 높은 번호의 버스, 즉 9000번대 버스를 정류장 마다 계속 갈아타다보면 아주아주 높은 확률로 '사랑해' 정류장에 도착합니다. 예측이 가능해지는 것이죠. 이렇게 훈련이 끝납니다

 

쉽게 말해서 버스가 바로 파라미터입니다. 훈련하는 동안 '사랑해' 정류장에 도착했는지에 따라 한 동네의 각 정류장을 출발하는 버스 번호는 계속 바뀌었습니다(변수). '사랑해' 정류장에 도착할 수 있는 버스들에 높은 번호를 부여했다고 했죠? 9000번대 버스, 이게 가중치 값이 정해진 파라미터입니다.  

 

모든 버스에 번호가 매겨지면 모델 하나가 완성이 되고, 이젠 대중버스 노선이 되어 누구나 쉽게 버스를 타고 정류장을 이동해서 목적지 정류장에 도착할 수 있습니다. 즉, 어떤 인풋을 넣더라도 정답에 가까운 아웃풋을 낼 수 있도록 파라미터들의 값이 정해진 것입니다. 

 

이런 버스를 1760억대 가지고 있는 것이 바로 오픈AI의 GPT-3고, 가장 최신 모델들은 1조 넘는 버스를 가지고 있다고 추정하고 있습니다. 버스가 많을 수록 당연히 훈련비나 운영비가 엄청나게 깨지겠죠. 그래서 요새는 다시 SLM, 즉 소형버스 회사(한 70억대 정도)나 이런 소형버스 회사 여러개를 합작하는 미스트랄X같은 합작회사(70억*8개 정도) 로 가성비와 효율성을 찾아가는 분위기입니다.

 

쉽게 설명해본다고 했는데 도움이 되셨을까 모르겠습니다. 비유를 하다보면 쉽게 와닿기는 해도 오류가 생기기 마련입니다. 기왕에 관심을 가지셨다면 전문적인 자료들을 통해 더 깊이 탐구하시기를 추천드립니다.

 

 

 

 

 

 

 

 

 

 

반응형

관련글 더보기