OpenAI의 대화형 AI 'ChatGPT'는 인간의 질문에 대해 매우 자연스럽게 대답할 수 있습니다. 어떻게 자연스러운 문장을 생성하고 잘 작동하는 ChatGPT 내부에서 일어나고 있는 비밀을 소프트웨어 회사 울프람 리서치의 CEO이자 이론물리학자인 스티븐 울프람 씨가 설명했습니다.

What is ChatGPT doing...and why does it work?
https://twitter.com/stephen_wolfram/status/1626682559982710785?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1626682559982710785%7Ctwgr%5Eac7ac5837e7b40bd233b0ff199f03e6fff315922%7Ctwcon%5Es1_&ref_url=https%3A%2F%2Fgigazine.net%2Fnews%2F20230222-why-chatgpt-work%2F

What Is ChatGPT Doing … and Why Does It Work?—Stephen Wolfram Writings
https://writings.stephenwolfram.com/2023/02/what-is-chatgpt-doing-and-why-does-it-work/

<div style="max-width: 480px;">What Is ChatGPT Doing … and Why Does It Work?</div>

Stephen Wolfram explores the broader picture of what's going on inside ChatGPT and why it produces meaningful text. Discusses models, training neural nets, embeddings, tokens, transformers, language syntax.

writings.stephenwolfram.com


울프람 씨는 우선 "ChatGPT가 항상 그리고 기본적으로 할 일은 지금까지 얻은 텍스트의 '합리적인 연속'을 만드는 것"이라고 설명했습니다. 여기서 말하는 '합리적인 연속'이란 사람이 문장을 읽을 때 다음에 누군가가 무엇을 쓸지 기대하는 내용을 의미합니다. ChatGPT는 웹에서 수십억 개의 텍스트를 스캔하여 어떤 문장이 작성되었을 때 다음에 어떤 문장이 작성되는지에 대한 확률을 예측합니다.

예를 들어 'The best thing about AI is its ability to(AI의 가장 뛰어난 점은 ~라는 능력입니다)'라는 문장을 ChatGPT는 관련된 문장을 스캔한 텍스트로부터 찾아내고 의미가 일치하는 것을 확률로 순위를 매깁니다.


이 '다음에 계속되는 단어의 랭킹'을 반복하는 식으로 문장을 작성하는데, 울프람씨에 의하면 랭크했을 때의 최고 랭크의 단어를 항상 선택하는 것은 아니라고 합니다. 항상 최고 랭크의 단어를 선택하면 창조성이 없는 단조로운 문장이 되기 때문에 굳이 랭크가 낮은 단어가 선택되는 일도 있다고 합니다. 따라서 동일한 프롬프트를 여러 번 사용해도 매번 다른 답변이 반환될 가능성이 높습니다.


ChatGPT의 원리에 대해서 퀸즐랜드 대학의 경제학 조교수이자 체스 그랜드 마스터인 데이비드 스마든 씨도 비슷한 지적을 했습니다. 스마든 씨에 의하면 ChatGPT는 대략 문장의 시작부터 다음에 올 가능성이 가장 높은 단어를 예측해 나간다는 방식이기 때문에 사실에 관한 질문을 했을 때 있을 것 같은 단어의 조합만을 중시해 존재하지 않는 것을 짜내어 대답하는 경우가 자주 있다는 것.

울프람 씨는 ChatGPT가 '다음에 오는 단어 순위'를 통해 문장을 생성해 가는 구조에 대해 설명했습니다. 순위지정을 위한 확률표를 얻기 위해 ChatGPT는 먼저 기본이 되는 언어모델 신경망을 취득합니다.


그런 다음 검색된 네트워크 모델을 텍스트에 적용하고 모델에 따라 다음 확률이 높은 단어의 상위 5개를 찾습니다.


이것을 반복함으로써 확률이 높은 단어를 문장에 추가합니다. 단어 선택에서 임의의 정도를 변경하면 항상 상단 단어를 선택하는 것이 아니라 다른 텍스트를 출력합니다.


울프람 씨는 "다음에 올 가능성이 높은 단어를 선택한다"라는 구조에 대해 더욱 세세한 구체예를 나타내고 있습니다. Wikipedia의 '고양이'와 '개'에 대한 기사에서 사용되는 영어샘플을 얻은 경우 문자의 출현빈도를 계산할 수 있습니다.


추출한 빈도에 따라 일련의 문자를 생성해 그것을 특정 확률로 단어별로 단락을 넣었을 경우 이하와 같은 문장이 됩니다. 어느 정도 그럴듯해 보이지만 랜덤하게 문자를 선택하는 것만으로는 실제 단어로 읽을 수는 없습니다.


그래서 여기에 일반적인 영어 텍스트에서 '문자의 쌍'의 확률을 추가합니다. 예를 들면 'q'는 문자가 왔을 경우에는 쌍이 되는 문자는 'u'를 제외하면 확률이 제로가 되어 있는 것을 알 수 있습니다. 이와 같이 2문자씩을 보고 단어를 생성하면 전혀 읽을 수 없는 문장에 실제로 존재하는 단어가 포함되게 됩니다.


게다가 똑같이 쌍뿐만 아니라 문자가 길게 계속되는 경우의 조합확률에 대해서도 충분한 양의 텍스트가 있으면 추정치를 얻을 수 있습니다. 그러면 무작위 단어를 생성해도 더욱 현실적인 문장이 됩니다.


마찬가지로 ChatGPT는 문자가 아닌 전체 단어를 대규모 텍스트 데이터에서 단어가 얼마나 일반적으로 사용되는지를 추정하고 각 단어가 개별적으로 무작위로 선택되는 문장을 생성합니다. 그러나 여기에서도 문자에서 단어를 생성한 것과 마찬가지로 확률만으로는 의미가 지나는 문장은 생성되지 않습니다. 그 때문에 여기에서도 문자와 같이 '단어의 쌍' 또는 복수의 조합확률도 고려에 넣어 더욱 있을 수 있는 문장에 가까워져 간다고 합니다.

울프람 씨는 “ChatGPT가 무엇을 하고 있는지를 설명했지만 어떻게 작동하는지를 설명하는 것은 어렵다"며 예를 들어 신경망이 고양이의 이미지를 인식하는 경우 그것이 얼마나 어려운 시도인지 이해할 수 있지만 실제로 네트워크 내에서 수행되는 프로세스를 구체적으로 설명하는 방법은 계산상의 블랙박스가 포함되어 있기 때문에 존재하지 않는다는 것.


울프람 씨에 의하면 ChatGPT는 1750억의 파라미터를 가지는 거대한 신경망으로 언어이해 태스크에 뛰어난 Google의 'Transformer'라는 신경망 아키텍처를 최대의 특징으로 하고 있습니다. Transformer는 번역모델로 개발되었지만 이미지와 같은 매개변수를 언어와 마찬가지로 번역하는 프로세스로 매핑할 수 있기 때문에 시퀀스의 일부에 다른 부분보다 '주의를 기울인다'는 개념을 도입해 사물을 모듈화할 수 있다는 것.

The generative AI revolution has begun—how did we get here? | Ars Technica
https://arstechnica.com/gadgets/2023/01/the-generative-ai-revolution-has-begun-how-did-we-get-here/

The generative AI revolution has begun—how did we get here?

A new class of incredibly powerful AI models has made recent breakthroughs possible.

arstechnica.com


울프람 씨는 ChatGPT의 실제 동작을 3단계로 나누어 설명했습니다. 먼저 기존 텍스트에 해당하는 일련의 토큰을 검색하고 이에 해당하는 규칙을 숫자형 배열로 찾습니다. 그런 다음 규칙을 '표준적인 신경망 방법'으로 조작하고 값이 네트워크의 연속 레이어를 '파급'하면 새로운 규칙이 생성됩니다. 그리고 이 규칙을 얻고 거기에서 약 50,000개의 값의 배열을 생성합니다. 이 배열은 다양한 토큰의 가능성을 나타내는 확률이 되기 때문에 단어를 조합해 나갈 확률이 도출됩니다.

울프람에 따르면 이러한 모든 메커니즘은 신경망에 의해 구현되고 모든 것이 트레이닝 데이터에서만 학습되기 때문에 전체 아키텍처를 제외하고는 아무것도 명시적으로 설계되지 않았다고 합니다. 그러나 전체 아키텍처 설계는 모든 종류의 경험과 신경망에 대한 지식을 반영합니다.


아키텍처의 구조로서는 우선 입력된 무수의 토큰을 '임베디드 벡터'로 변환해 Transformer의 주요 기능인 '주의를 기울이기' 기능으로 일련의 텍스트를 집중적으로 되돌아보는 식으로 단어의 조합을 이해하거나 전체의 통일감을 정돈할 수 있습니다. 이러한 주의 프로세스를 통과한 후 Transformer는 일련의 토큰을 최종 컬렉션으로 변환하기 때문에 ChatGPT는 컬렉션을 가져오고 디코딩한 후 다음 단어의 확률 목록으로 만듭니다. 울프람 씨는 "복잡해 보일 수 있지만 실제로는 단순한 신경망이 숫자 입력 모음을 얻고 특정 가중치와 결합해 목록으로 마무리하는 간단한 요소로 이루어져 있다”고 설명했습니다.

마지막으로 울프람 씨는 “최종적으로 주목해야 할 것은 이러한 모든 작업이 어떤 형태로 연계되어 텍스트를 생성하는 뛰어난 인간적인 작업을 할 수 있다는 것입니다. 본인이 아는 한 이러한 것이 기능하는 '궁극의 이론적 이유'는 존재하지 않는다는 것을 다시 강조해 둘 필요가 있습니다. 과학적 발견으로 본다면 ChatGPT와 같은 신경망에서 인간 두뇌가 언어를 생성하기 위해 수행하는 작업의 본질을 포착할 수 있을 것"이라고 보았습니다.

Posted by 말총머리
,