개발자/인공지능과 인간

ChatGPT 작동원리 5 - ChatGPT 훈련 2

지구빵집 2023. 6. 16. 08:09
반응형

 

 

공간의 의미와 운동의 의미론적 법칙

 

위에서 우리는 ChatGPT 내부에서 텍스트의 일부가 일종의 "언어적 특징 공간"에서 점의 좌표로 생각할 수 있는 숫자 배열로 효과적으로 표현된다고 논의했습니다. 따라서 ChatGPT가 텍스트 조각을 계속할 때 이것은 언어적 특징 공간에서 궤적을 추적하는 것과 같습니다. 그러나 이제 우리는 무엇이 이 궤적을 우리가 의미 있다고 생각하는 텍스트와 일치하게 만드는지 물을 수 있습니다. 그리고 언어적 특징 공간의 점이 "의미"를 유지하면서 이동할 수 있는 방법을 정의하거나 적어도 제한하는 일종의 "의미론적 운동 법칙"이 있을 수 있습니까?

 

 

ChatGPT 작동 원리 1, 한 번에 한 단어씩 추가하기 

ChatGPT 작동 원리 2 - 신경망 

ChatGPT 작동 원리 3 기계학습과 신경망 훈련 

ChatGPT 작동 원리 4 임베딩 개념 

ChatGPT 작동원리 5 - ChatGPT 훈련 1 

ChatGPT 작동원리 5 - ChatGPT 훈련 2 

 

 

 

그렇다면 이 언어적 특징 공간은 어떤 것일까요? 다음은 이러한 기능 공간을 2D로 투영하는 경우 단일 단어(여기서는 일반 명사)가 어떻게 배치되는지에 대한 예입니다.

 

 

 

위에서 식물과 동물을 나타내는 단어를 기반으로 한 또 다른 예를 보았습니다. 그러나 두 경우의 요점은 "의미적으로 유사한 단어"가 근처에 배치된다는 것입니다.

 

또 다른 예로서, 다음은 다양한 품사에 해당하는 단어가 배치되는 방식입니다.

 

 

 

물론, 주어진 단어는 일반적으로 단지 "하나의 의미"를 갖지 않습니다(또는 반드시 품사의 한 부분에만 해당). 그리고 기능 공간에서 단어가 포함된 문장이 어떻게 배치되는지 살펴봄으로써 "기중기"(새 또는 기계?)라는 단어에 대한 예에서와 같이 종종 다른 의미를 "분리"할 수 있습니다.

 

 

 

좋습니다. 따라서 이 기능 공간을 이 공간에 "의미상 가까운 단어"를 배치하는 것으로 생각할 수 있다는 것이 적어도 그럴듯합니다. 그런데 이 공간에서 어떤 추가적인 구조를 확인할 수 있을까? 예를 들어 공간의 "평평함"을 반영하는 일종의 "병렬 운송" 개념이 있습니까? 이를 처리하는 한 가지 방법은 유추를 살펴보는 것입니다.

 

 

 

그리고 예, 우리가 2D로 투영할 때에도 일반적으로 볼 수는 없지만 적어도 "평평함의 힌트"가 있는 경우가 많습니다.

 

그렇다면 궤적은 어떨까요? 기능 공간에서 ChatGPT에 대한 프롬프트가 따르는 궤적을 살펴본 다음 ChatGPT가 어떻게 계속되는지 확인할 수 있습니다.

 

 

 

여기에는 확실히 "기하학적으로 명백한" 운동 법칙이 없습니다. 전혀 놀라운 일이 아닙니다. 우리는 이것이 훨씬 더 복잡한 이야기가 될 것으로 완전히 예상합니다. 그리고 예를 들어 "의미론적 운동 법칙"이 발견되더라도 어떤 종류의 임베딩(또는 사실상 어떤 "변수")이 가장 자연스럽게 기술될 것인지는 분명하지 않습니다.

 

위의 그림에서 우리는 "경로"의 여러 단계를 보여주고 있습니다. 각 단계에서 ChatGPT가 가장 가능성이 높은 것으로 간주하는 단어("온도가 0"인 경우)를 선택합니다. 그러나 주어진 지점에서 어떤 확률로 "다음에 올" 수 있는 단어가 무엇인지 물어볼 수도 있습니다.

 

 

 

그리고 이 경우에 우리가 보는 것은 특징 공간에서 다소 명확한 방향으로 가는 것처럼 보이는 확률이 높은 단어의 "팬"이 있다는 것입니다. 더 나아가면 어떻게 될까요? 다음은 궤적을 "따라 이동"할 때 나타나는 연속적인 "팬"입니다.

 

 

 

다음은 총 40단계로 진행되는 3D 표현입니다.

 

 

 

 

그리고 예, 이것은 엉망진창인 것 같습니다. 그리고 "ChatGPT가 내부에서 수행하는 작업"을 경험적으로 연구함으로써 "수학-물리학 같은" "의미론적 운동 법칙"을 식별할 수 있다고 기대할 수 있는 아이디어를 특별히 장려하는 어떤 것도 하지 않습니다.. 그러나 아마도 우리는 "잘못된 변수"(또는 잘못된 좌표계)를 보고 있을 뿐이고 올바른 변수만 본다면 ChatGPT가 측지선을 따르는 것과 같은 "수리-물리-단순" 작업을 수행하고 있음을 즉시 알 수 있습니다. 그러나 지금으로서는 ChatGPT가 인간 언어가 "통합"되는 방식에 대해 "발견"한 내용을 "내부 행동"에서 "경험적으로 해독"할 준비가 되지 않았습니다.

 

의미론적 문법과 계산 언어의 힘

 

"의미 있는 인간 언어"를 생산하려면 무엇이 필요합니까? 과거에 우리는 그것이 인간의 두뇌에 불과할 것이라고 생각했을 것입니다. 그러나 이제 우리는 ChatGPT의 신경망에 의해 상당히 훌륭하게 수행될 수 있다는 것을 알고 있습니다. 그래도 우리가 할 수 있는 일이고 더 간단하거나 인간이 이해할 수 있는 방법은 없을 것입니다. 하지만 저는 ChatGPT의 성공이 암묵적으로 중요한 "과학적" 사실을 드러낸다는 점을 강하게 의심합니다. 실제로 의미 있는 인간 언어에는 우리가 알고 있는 것보다 훨씬 더 많은 구조와 단순성이 있다는 것입니다. 그러한 언어가 어떻게 조합될 수 있는지 설명하십시오.

 

위에서 언급한 것처럼 통사 문법은 품사의 다른 부분과 같은 것에 해당하는 단어를 인간 언어로 조합할 수 있는 방법에 대한 규칙을 제공합니다. 그러나 의미를 다루려면 더 나아가야 합니다. 이를 수행하는 방법의 한 가지 버전은 언어에 대한 통사적 문법뿐만 아니라 의미론적 문법에 대해서도 생각하는 것입니다.

 

구문의 목적을 위해 명사 및 동사와 같은 것을 식별합니다. 그러나 의미론의 목적을 위해 "미세한 계조"가 필요합니다. 예를 들어 "움직이는 것"의 개념과 "위치에 관계없이 정체성을 유지하는" "물체"의 개념을 식별할 수 있습니다. 이러한 각각의 "의미론적 개념"에 대한 구체적인 예는 끝이 없습니다. 그러나 의미론적 문법의 목적을 위해 기본적으로 "객체"가 "이동"할 수 있다고 말하는 일반적인 종류의 규칙이 있을 것입니다. 이 모든 것이 어떻게 작동하는지에 대해 할 말이 많습니다( 이 중 일부는 이전에 언급했습니다 ). 그러나 나는 앞으로 나아갈 수 있는 몇 가지 잠재적 경로를 나타내는 몇 가지 언급만으로 만족할 것입니다.

 

문장이 의미론적 문법에 따라 완벽하게 OK일지라도 실제로 실현되었다는 의미는 아닙니다(또는 실현될 수 있음)는 점을 언급할 가치가 있습니다. "달로 여행한 코끼리"는 의심할 여지없이 우리의 의미론적 문법을 "통과"할 것이지만, 그것은 확실히 우리의 실제 세계에서는 (적어도 아직) 실현되지 않았습니다. 허구의 세계에서는 절대적으로 공정한 게임이지만 말입니다.

 

"의미론적 문법"에 대해 이야기하기 시작할 때 우리는 곧 "그 아래에 무엇이 있습니까?"라고 묻게 됩니다. 어떤 "세계 모델"을 가정하고 있습니까? 구문 문법은 단어에서 언어를 구성하는 것입니다. 그러나 의미론적 문법은 필연적으로 어떤 종류의 "세계의 모델", 즉 실제 단어로 만들어진 언어가 겹쳐질 수 있는 "골격" 역할을 하는 어떤 것과 관련됩니다.

 

최근까지 우리는 (인간의) 언어가 우리의 "세계 모델"을 설명하는 유일한 일반적인 방법이라고 상상했을 것입니다. 이미 몇 세기 전에 특히 수학을 기반으로 특정 종류의 사물을 공식화하기 시작했습니다. 그러나 이제 공식화에 대한 훨씬 더 일반적인 접근 방식인 계산 언어가 있습니다.

 

그리고 네, 그것은 40년 이상에 걸친 저의 큰 프로젝트였습니다(현재 Wolfram 언어로 구현됨 ). 세상의 사물에 대해 가능한 한 광범위하게 말할 수 있는 정확한 상징적 표현을 개발하는 것입니다. 우리가 신경 쓰는 것들. 예를 들어 도시, 분자, 이미지, 신경망에 대한 상징적 표현이 있고 이러한 것들을 계산하는 방법에 대한 기본 지식이 있습니다.

 

그리고 수십 년의 작업 끝에 우리는 이런 방식으로 많은 영역을 다루었습니다. 그러나 과거에는 특별히 " 일상의 담화 "를 다루지 않았습니다. "나는 2파운드의 사과를 샀다"에서 우리는 "2파운드의 사과"를 쉽게 나타낼 수 있습니다(영양 및 기타 계산을 수행). 그러나 아직까지는 "내가 샀다"에 대한 상징적 표현이 없습니다.

 

그것은 모두 의미론적 문법의 아이디어와 연결되어 있습니다. 개념에 대한 일반적인 기호 "구성 키트"를 갖는 목표는 무엇이 무엇과 함께 맞을 수 있는지에 대한 규칙을 제공하므로 우리가 전환할 수 있는 "흐름"에 대한 규칙을 제공합니다. 인간의 언어로.

 

그러나 우리가 이 "상징적 담화 언어"를 가지고 있다고 가정해 봅시다. 우리는 그것으로 무엇을 할 것입니까? "로컬적으로 의미 있는 텍스트" 생성과 같은 작업을 시작할 수 있습니다. 그러나 궁극적으로 우리는 더 "전역적으로 의미 있는" 결과를 원할 가능성이 높습니다. 즉, 실제로 존재하거나 세계에서(또는 아마도 일관된 가상 세계에서) 일어날 수 있는 것에 대해 더 많은 "컴퓨팅"을 의미합니다.

 

현재 Wolfram 언어에는 많은 종류의 사물에 대한 엄청난 양의 계산 지식이 내장되어 있습니다. 그러나 완전한 상징적 담화 언어를 위해 우리는 세계의 일반적인 것들에 대한 추가 "계산"을 구축해야 합니다. 객체가 A에서 B로, B에서 C로 이동하면 A에서 C로 이동하는 식입니다.

 

상징적 담화 언어가 주어지면 "독립적 진술"을 만드는 데 사용할 수 있습니다. 그러나 "Wolfram|Alpha 스타일"과 같이 세상에 대해 질문하는 데에도 사용할 수 있습니다. 또는 우리가 "그렇게 만들고 싶다"라고 말하는 데 사용할 수 있습니다. 아마도 어떤 외부 작동 메커니즘이 있을 것입니다. 또는 실제 세계 또는 우리가 고려하고 있는 특정 세계(허구적이든 아니든)에 대해 주장하는 데 사용할 수 있습니다.

 

인간의 언어는 근본적으로 부정확합니다. 그 이유는 특정 계산 구현에 "속박"되어 있지 않고 그 의미가 기본적으로 사용자 간의 "사회적 계약"에 의해 정의되기 때문입니다. 그러나 계산 언어는 본질적으로 특정 기본 정밀도를 가지고 있습니다. 결국 그것이 지정하는 것은 항상 "컴퓨터에서 명확하게 실행"될 수 있기 때문입니다. 인간의 언어는 일반적으로 어떤 모호함을 벗어날 수 있습니다. (우리가 "행성"이라고 말할 때 그것은 외계 행성을 포함합니까? 등) 그러나 계산 언어에서는 우리가 만들고 있는 모든 구분에 대해 정확하고 명확해야 합니다.

 

계산 언어로 이름을 만들 때 보통 인간의 언어를 활용하는 것이 종종 편리합니다. 그러나 계산 언어에서 의미는 반드시 정확해야 하며 일반적인 인간 언어 사용의 특정 의미를 포함할 수도 있고 포함하지 않을 수도 있습니다.

 

일반적인 기호 담화 언어에 적합한 근본적인 "온톨로지"를 어떻게 파악해야 할까요? 음, 쉽지 않습니다. 아리스토텔레스가 2,000년 이상 전에 만든 원시적인 시작 이후 거의 수행되지 않은 이유일 것입니다. 그러나 오늘날 우리가 세계를 계산적으로 생각하는 방법에 대해 많이 알게 된 것은 정말 도움이 됩니다(그리고 물리학 프로젝트 의 "근본적인 형이상학"과 루리아드의 아이디어를 갖는 것이 나쁘지 않습니다 ).

 

하지만 이 모든 것이 ChatGPT의 맥락에서 무엇을 의미할까요? 교육을 통해 ChatGPT는 의미론적 문법에 해당하는 특정(다소 인상적인) 양을 효과적으로 "결합"했습니다. 그러나 그것의 성공은 우리에게 계산 언어 형태로 더 완전한 것을 구성하는 것이 실현 가능할 것이라고 생각하는 이유를 제공합니다. 그리고 지금까지 ChatGPT의 내부에 대해 알아낸 것과는 달리 인간이 쉽게 이해할 수 있도록 계산 언어를 설계할 수 있습니다.

 

의미 문법에 대해 이야기할 때 삼단 논리에 비유할 수 있습니다. 처음에 삼단 논리는 본질적으로 인간 언어로 표현된 진술에 대한 규칙 모음이었습니다. 그러나 (예, 2천 년 후) 형식 논리가 개발되었을 때, 삼단 논리의 원래 기본 구성은 이제 예를 들어 현대 디지털 회로의 작동을 포함하는 거대한 "형식 타워"를 구축하는 데 사용될 수 있습니다. 그래서 우리는 더 일반적인 의미론적 문법이 될 것이라고 기대할 수 있습니다. 처음에는 텍스트로 표현되는 간단한 패턴만 처리할 수 있습니다. 그러나 전체 계산 언어 프레임워크가 구축되면 "일반화된 의미론적 논리"의 높은 탑을 세우는 데 사용할 수 있을 것으로 예상할 수 있습니다. 모든 모호함과 함께 인간의 언어를 통한 "1층 수준"을 제외하고는 전에는 우리에게 접근할 수 없었습니다.

 

우리는 계산 언어와 의미론적 문법의 구성을 사물을 표현하는 데 있어 일종의 궁극적인 압축을 나타내는 것으로 생각할 수 있습니다. 예를 들어 평범한 인간 언어에 존재하는 모든 "구절"을 다루지 않고도 가능한 것의 본질에 대해 이야기할 수 있기 때문입니다. 그리고 우리는 ChatGPT의 큰 강점을 약간 비슷한 것으로 볼 수 있습니다. ChatGPT도 어떤 의미에서 "의미적으로 의미 있는 방식으로 언어를 결합"할 수 있는 지점까지 "드릴링"했기 때문입니다. 구절.

 

그렇다면 ChatGPT를 기본 계산 언어에 적용하면 어떻게 될까요? 계산 언어는 가능한 것을 설명할 수 있습니다. 그러나 여전히 추가할 수 있는 것은 예를 들어 웹에서 모든 콘텐츠를 읽는 것을 기반으로 하는 "인기 있는 항목"에 대한 감각입니다. 그러나 그 밑에는 계산 언어로 작동한다는 것은 ChatGPT와 같은 것이 잠재적으로 줄일 수 없는 계산을 사용하기 위한 궁극적인 도구에 어느 정도 즉각적이고 근본적으로 액세스 할 수 있음을 의미합니다. 그리고 그것은 "합리적인 텍스트를 생성"할 수 있을 뿐만 아니라 그 텍스트가 실제로 세계에 대해 "올바른" 진술을 하는지 또는 무엇에 대해 이야기해야 하는지에 대해 해결될 수 있는 모든 것을 해결할 수 있는 시스템을 만듭니다.

 

그렇다면... ChatGPT는 무엇을 하며 왜 작동합니까?

 

ChatGPT의 기본 개념은 다소 단순합니다. 웹, 책 등에서 인간이 만든 방대한 텍스트 샘플에서 시작합니다. 그런 다음 "이와 같은" 텍스트를 생성하도록 신경망을 훈련시킵니다. 그리고 특히 "프롬프트"에서 시작하여 "훈련된 것과 같은" 텍스트로 계속할 수 있도록 합니다.

 

우리가 본 것처럼 ChatGPT의 실제 신경망은 수십억 개의 매우 단순한 요소로 구성되어 있습니다. 그리고 신경망의 기본 작동도 매우 간단합니다. 기본적으로 모든 새 단어(또는 단어의 일부)에 대해 지금까지 생성된 텍스트에서 파생된 입력을 "요소를 통해 한 번"(루프 등 없이) 전달하는 것으로 구성됩니다. ) 생성합니다.

 

그러나 놀랍고 예상치 못한 것은 이 프로세스가 웹, 책 등에 있는 것과 성공적으로 "같은" 텍스트를 생성할 수 있다는 것입니다. 그것의 프롬프트는 "읽는다"는 콘텐츠를 사용합니다. 항상 "전역적으로 말이 되는"(또는 올바른 계산에 해당하는) 말을 하지 않습니다. 교육 자료에서 "소리가 나는" 것.

 

ChatGPT의 특정 엔지니어링은 이를 상당히 매력적으로 만들었습니다. 그러나 궁극적으로(최소한 외부 도구를 사용할 수 있을 때까지) ChatGPT는 축적된 "일반적인 지혜의 통계"에서 "일관된 텍스트 스레드"를 "단지" 끌어내고 있습니다. 하지만 그 결과가 얼마나 인간과 같은지 놀랍습니다. 그리고 제가 논의한 바와 같이 이것은 적어도 과학적으로 매우 중요한 것을 제안합니다. 즉, 인간의 언어(및 그 배후의 사고 패턴)는 우리가 생각한 것보다 그 구조가 어떻게든 더 단순하고 "법칙과 유사"하다는 것입니다. ChatGPT가 암묵적으로 발견했습니다. 그러나 의미론적 문법, 계산 언어 등을 사용하여 잠재적으로 명시적으로 노출할 수 있습니다.

 

텍스트를 생성할 때 ChatGPT가 수행하는 작업은 매우 인상적이며 결과는 일반적으로 인간이 생성하는 것과 매우 유사합니다. 그렇다면 ChatGPT가 두뇌처럼 작동한다는 뜻인가요? 기본 인공 신경망 구조는 궁극적으로 뇌의 이상화를 모델로 했습니다. 그리고 우리 인간이 언어를 생성할 때 진행되는 일의 많은 측면이 매우 유사할 가능성이 매우 높습니다.

 

교육(일명 학습)에 관해서는 두뇌와 현재 컴퓨터의 다른 "하드웨어"(및 아마도 일부 미개발 알고리즘 아이디어)로 인해 ChatGPT는 아마도 다소 다른(그리고 어떤 면에서는 훨씬 덜한) 전략을 사용하게 됩니다. 효율적) 뇌보다. 그리고 다른 것도 있습니다. 일반적인 알고리즘 계산과 달리 ChatGPT는 내부적으로 "루프가 있거나" "데이터를 다시 계산"하지 않습니다. 그리고 그것은 필연적으로 컴퓨터의 계산 능력을 제한합니다. 심지어 현재 컴퓨터와 관련하여도 그렇지만 확실히 뇌와 관련하여 말입니다.

 

"고정"하는 방법과 합리적인 효율성으로 시스템을 교육하는 기능을 유지하는 방법이 명확하지 않습니다. 그러나 그렇게 하면 미래의 ChatGPT가 훨씬 더 "뇌와 같은 일"을 할 수 있게 될 것입니다. 물론, 뇌가 제대로 하지 못하는 일이 많이 있습니다. 특히 환원 불가능한 계산과 관련하여 말입니다. 그리고 이러한 두뇌와 ChatGPT와 같은 것들은 Wolfram 언어와 같은 "외부 도구"를 찾아야 합니다.

 

그러나 지금은 ChatGPT가 이미 무엇을 할 수 있었는지 보는 것이 흥미진진합니다. 어떤 수준에서 그것은 많은 수의 단순한 계산 요소가 놀랍고 예상치 못한 일을 할 수 있다는 근본적인 과학적 사실의 좋은 예입니다. 그러나 그것은 또한 인간 조건의 핵심 특징인 인간 언어와 그 배후에 있는 사고 과정의 근본적인 특성과 원칙이 무엇인지 더 잘 이해하기 위해 2000년 동안 우리가 가졌던 최고의 추진력을 제공할 것입니다.

 

감사해요

 

저는 지금까지 약 43년 동안 신경망의 발전을 지켜보았고 그동안 많은 사람들과 그것에 대해 교류했습니다. 그들 중 일부는 오래전, 일부는 최근, 일부는 수년에 걸쳐 있습니다: Giulio Alessandrini, Dario Amodei, Etienne Bernard, Taliesin Beynon, Sebastian Bodenstein, Greg Brockman, Jack Cowan, Pedro Domingos, Jesse Galef, Roger Germundsson , Robert Hecht-Nielsen, Geoff Hinton, John Hopfield, Yann LeCun, Jerry Lettvin, Jerome Louradour, Marvin Minsky, Eric Mjolsness, Cayden Pierce, Tomaso Poggio, Matteo Salvarezza, Terry Sejnowski, Oliver Selfridge, Gordon Shaw, Jonas Sjöberg, Ilya Sutskever , Gerry Tesauro 및 Timothee Verdier. 이 작품에 도움을 주신 Giulio Alessandrini와 Brad Klee에게 특히 감사드립니다. 

 

 

추가 참고자료

 

 

 

반응형