온고창신 溫故創新 ongochangsin

AI(인공지능)

인간에게 아첨하는 InstructGPT ~(3/5)

간천(澗泉) naganchun 2025. 11. 12. 03:17

AI혁명 4편

인간에게 아첨하는 InstructGPT ~(3/5)

 

■ 단어의 벡터화

 

ChatGPT에 대해 못된 소문이 돌고 있다.

단어의 의미도 모르고 글을 쓴다는 것이다.

그 소문을 퍼뜨리는 사람은 AI 전문가라 불리는 이들이다. 하지만 사실은, 프로그램을 짜 본 적도 없는 그냥 평론가일 뿐이다.

확실히 ChatGPT는 인간처럼 단어를 이해하는 것은 아니다. 하지만, 다른 방식으로 단어를 이해하고 있다.

어떻게?

바로 단어의 벡터화다.

그래, 고등학교에서 배우는 그 벡터 말이다.

예를 들어, 공간상의 위치 좌표는 벡터 p=(x, y, z)」로 표현된다.

xx좌표, yy좌표, zz좌표이며, 요소는 ‘3. 이 경우 벡터의 차원 수는 ‘3’이 된다.

ChatGPT는 단어를 이 벡터로 치환하여 처리하는 것이다.

다만, 차원 수는 비교도 안 될 만큼 크다.

그럼 ChatGPT 본인에게 차원 수를 물어보자.

 

질문자ChatGPT의 단어 벡터의 차원 수는?

ChatGPTGPT-3의 경우, 2048차원입니다.

, ChatGPT는 하나의 단어(어휘)2048개의 파라미터로 관리하고 있는 셈이다.

파라미터는 단어의 속성이라고 생각하면 이해하기 쉽다. 예를 들어, 인간이라면 성별, 국적, 직업 등등. 다만, 이것은 단어의 수치화를 설명하기 위한 편의적인 예시일 뿐이고, 실제는 훨씬 복잡하다. 필요한 수학은 행렬수준이지만, GPT의 수학적 과정은 무시무시하게 어렵다.

 

그럼에도 불구하고, 간단히 말해 이것만은 분명히 할 수 있다.

ChatGPT2048개의 파라미터를 활용하여 단어의 개념을 파악한다.

, ChatGPT인간식이 아니라 컴퓨터식으로 단어를 이해하는 것이다.

이를 단번에 이해하는 방법이 있다.

단어를 벡터화하는 프로그램을 직접 짜서, 그것으로 단어 놀이를 해보는 것이다(정정, 두 번에 걸쳐 이해된다).

물론, 실제로 프로그램을 작성하지 않아도 아래 설명만 읽어도 99%는 이해할 수 있으니 안심해도 된다!

그럼 우선 프로그램부터 보자.

 

핵심은 바로 단어를 벡터화하는 프로그램이다. 원리는 간단하지만, 실제 프로그램을 작성하는 건 꽤 번거롭다.

그래서 무료 라이브러리 word2Vec을 사용한다. 구글 연구원 토마스 미코로프 등이 2013년에 공개한 프로그램으로, 단어를 벡터화해 단어와 단어의 관계를 수치로 바꿔 통계적으로 처리할 수 있는 뛰어난 도구다.

참고로, word2Vec의 단어 차원 수는 ‘200’으로, ChatGPT‘2048’에는 한참 못 미친다. 하지만 원리는 같으므로 단어 벡터화를 이해하기에는 안성맞춤이다.

 

word2Vec을 활용해 프로그램을 작성한다면, 프로그래밍 언어는 Python이 제격이다.

, Python 개발 환경을 구축하려면 Anaconda를 추천한다. 무료이고, Python과 라이브러리(word2Vec 포함)를 한꺼번에 설치해 주기 때문이다. 이런 환경 구축용 패키지를 배포판(distribution)’이라고 한다. Python이나 라이브러리를 개별로 설치하는 것보다 배포판을 사용하는 편이 훨씬 간단하다.

 

Python 경험자라면 단어를 벡터화해 단어 놀이를 하는앱은 하루이틀이면 작성할 수 있다.

앱을 만들었으면, word2Vec에 대량의 텍스트를 학습시킨다.

이번에는 역사 컨설팅에 사용 중인 1.7GB 데이터를 학습시켰다. Core i7(8코어)와 메모리 64GBPC로 학습은 몇 분 만에 끝났다.

 

참고로, ChatGPT가 사전 학습한 데이터는 570GB라고 한다. 대단하다, 300배다. 하지만 이번 목적은 단어 벡터화를 이해하는 것이므로 이것으로 충분하다.

학습이 끝나면, 자연어 처리 AIword2Vec 모델이 완성된다.

이제 곧바로 단어 놀이를 해보자.

* 출처=https://benedict.co.jp › smalltalk › talk-527