International Essays

ChatGPT는 이제 “Wolfram 슈퍼 파워”를 갖추게 되었습니다!

원문 게시물
​
이 글에서 설명된 기능을 사용하려면, ChatGPT에서 Wolfram plugin을 선택하고 설치합니다. 현재 이 기능은 일부 ChatGPT Plus 사용자에게만 제공되고 있습니다. 자세한 정보는 OpenAI의 공지를 참조하세요.

불과 두달 반 만에...

지난 1월 초 ChatGPT를 Wolfram|Alpha와 연결할 가능성에 대해 글을 썼습니다. 그리고 딱 두 달 반이 지난 오늘, 이의 실현을 발표하게 되어 기쁘게 생각합니다! 우리 팀과 OpenAI의 영웅적인 소프트웨어 엔지니어링 덕분에 이제 ChatGPT는 Wolfram|Alpha와 Wolfram 언어를 활용하여 “계산 초능력”이라 부를 수 있는 기능을 제공할 수 있게 되었습니다. 이 모든 것은 아직 초기 단계에 불과하지만, 여전히 매우 인상적이며 “ChatGPT + Wolfram”이 얼마나 강력하고 혁신적인 기술인지 알 수 있습니다.
지난 1월, 저는 LLM 신경망으로서, ChatGPT가 웹 등에서 읽은 자료와 “유사한” 텍스트 자료를 생성하는 놀라운 능력에도 불구하고 실제로는 어려운 계산을 수행하거나, “상대적으로 정확해 보이는” 데이터가 아닌 체계적으로 정확한 데이터를 생성할 수 없다는 점을 지적했습니다. 그러나 Wolfram 플러그인에 연결하면 이러한 모든 작업을 수행할 수 있습니다. 여기서 1월의 첫 번째 (매우 간단한) 예제를 “Wolfram 슈퍼 파워”가 설치된 ChatGPT를 사용하여 살펴보겠습니다.
이것은 실제 계산을 통해 찾은 올바른 결과 입니다(1월에는 그렇지 않았습니다). 그리고 보너스로 즉각적인 시각화를 보여 드립니다.
이것은 어떻게 작동하는 것일까요? 내부적으로 ChatGPT는 Wolfram|Alpha에 대한 쿼리를 공식화하고 Wolfram|Alpha로 전송하여 계산을 수행한 후, 반환된 결과에 따라 “무엇을 말할지 결정”합니다. “Used Wolfram” 체크 박스를 클릭하여 이러한 전반적인 과정을 확인할 수 있으며, 이것을 검토하면 ChatGPT가 “아무것도 꾸며내지 않았다는 것”을 확인할 수 있습니다.
이 과정에서 ChatGPT와 Wolfram|Alpha 모두 많은 일이 진행되고 있습니다. 그러나 훌륭하고 올바른 텍스트로 정리된 정확한 결과를 보여줍니다.
제가 1월에 쓴 또 다른 예를 살펴 보겠습니다.
우리 기술에 걸맞는 훌륭한 결과입니다. 그리고 다시 한 번 추가 보너스 시각화를 얻습니다.
1월에 저는 ChatGPT가 다음과 같은 지시를 받았을 때 그럴듯하지만 (잘못된) 데이터를 “만들어낸다”는 사실을 언급했습니다.
그러나 이제는 Wolfram 플러그인을 호출하고 훌륭하고 신뢰할 수 있는 답변을 얻을 수 있습니다. 그리고 보너스로 시각화 또한 만들어낼 수 있습니다.
이제 올바른 해답을 내는 1월의 또 다른 예를 알아보겠습니다.
실제로 이러한 예제를 시도하는 경우 여기에서 보이는 것과 다르게(때로는 더 좋거나 더 나쁘게) 작동할 수 있습니다. ChatGPT는 무작위로 답변을 생성하기 때문에 정확히 동일한 질문을 하더라도(새로운 세션 일지라도) 다른 상황이 발생할 수 있습니다. 이는 “매우 인간적”이라는 느낌을 줍니다. 그러나 Wolfram|Alpha와 Wolfram 언어에서 얻을 수 있는 확실한 “다시 물어도 변하지 않는 정답” 경험과는 차이가 있습니다.
다음은 ChatGPT가 Wolfram 플러그인과 (꽤 인상적으로) “채팅”하면서 “잘못된 Mercury”를 얻었다는 것을 알게 된 후의 예입니다.
여기서 특히 중요한 것은 ChatGPT가 웹 페이지의 내용을 표시하는 것과 같은 “정해진” 작업을 수행하기 위해 Wolfram 기술을 사용하는 것이 아니라는 것입니다. 오히려 우리는 ChatGPT를 위한 진정한 “이식된 두뇌” 역할을 수행하며, 필요할 때마다 ChatGPT는 우리에게 질문하고, 그러면 우리는 현재 하고 있는 일에 통합할 수 있는 답변을 제공합니다. 작동하는 모습을 실제로 보면 꽤 인상적입니다. 또한, 아직 다듬어야 할 부분이 많이 있지만 ChatGPT는 이미 정확하고 선별된 지식과 데이터를 전달할 수 있는 능력 뿐만 아니라 올바르고 복잡한 계산을 수행할 수 있는 능력을 제공하므로 매우 큰 가치가 있습니다.
하지만 이게 다가 아닙니다. 우리는 이미 ChatGPT에 맞춤형 시각화를 제공할 수 있었던 예를 위에서 살펴 보았습니다. 그리고 우리의 계산 능력을 통해 이전에 가능하지 않았던 “진정한 오리지널” 콘텐츠를 일상적으로 만들 수 있습니다. 또한 “순수 ChatGPT” 만으로는 “훈련 중 학습한 내용”으로 제한되어 있지만 Wolfram을 호출하면 최신 데이터를 얻을 수 있습니다.
이는 Wolfram의 실시간 데이터 피드를 기반으로 할 수 있습니다(여기서는 각 위치에 대해 한 번씩, 두 번 호출됨).
혹은 “과학 스타일” 예측 계산을 기반으로 할 수도 있습니다.
혹은 둘 다:

가능한 작업 몇 가지

Wolfram|Alpha 및 Wolfram 언어는 다음과 같은 내용을 아우르고 있습니다.
그리고 이제 (거의) 모든 항목을 ChatGPT를 통해 접근할 수 있으므로 놀라운 범위의 새로운 가능성이 열립니다. 이에 대한 이해를 돕기 위해 다음의 몇 가지 (간단한) 예를 살펴봅니다.

현대 인간 + AI 작업 흐름

ChatGPT는 인간과 주고받는 대화가 가능하도록 설계되었습니다. 하지만 이 대화에 실제 계산 및 계산 지식이 포함되어 있을 경우에는 어떻게 해야 할까요? 예를 들어보겠습니다. “세계 지식” 질문으로 시작해 보겠습니다.
그리고 “상자를 열면” 올바른 질문을 했는지, 그리고 우리가 제공한 답이 무엇인지 확인할 수 있습니다. 이제 한 발 더 나아가 지도를 요청할 수 있습니다.
우리가 사용할 수 있는 “더 보기 좋은” 지도 투영법이 있습니다. 그리고 웹 읽기 등에 기반한 ChatGPT의 “일반 지식” 덕분에 다음 중 하나를 사용하도록 간단하게 요청할 수 있습니다.
히트 맵을 선택할 수도 있습니다. 다시 말해, 우리의 기술을 사용하여 이 지도를 아래와 같이 그려 달라고 요청할 수 있습니다.
다시 투영 방식을 변경하고 ChatGPT에게 “일반 지식”을 이용하여 선택하도록 요청할 수 있습니다.
그리고 ChatGPT는 “올바른” 투영을 얻었지만, 센터링은 정확하지 않습니다. 이를 수정하도록 요청해 보겠습니다.
그렇다면 지금 무슨 일이 있어 났는지 살펴볼까요? 우리는 “콜라보레이션”을 통해 무언가를 생성해 냈습니다. 우리는 원하는 작업을 점진적으로 표현하였고, AI (즉, ChatGPT + Wolfram)는 하나씩 차례대로 이를 구축하였습니다. 그러나 실제로 무엇을 얻었을까요? 아래의 “상자를 열거나” 단순히 ChatGPT에게 요청하면 볼 수 있는 Wolfram 언어 코드의 일부를 살펴 보겠습니다.
코드를 Wolfram 노트북에 복사하면 즉시 실행할 수 있으며, ChatGPT가 설명에 명시한 것처럼 각 국가의 이름을 제공하는 동적 툴팁과 같은 흥미로운 “고급 기능”이 있습니다.
(조금 아쉽지만 이 코드는 쇠고기 생산에 대한 원래의 기호 쿼리가 아니라 명시적인 숫자만 포함합니다. 이는 ChatGPT가 원래 질문을 Wolfram|Alpha에 제기한 다음 그 결과를 Wolfram 언어로 전달했기 때문입니다. 그러나 이러한 전체적인 시퀀스가 작동한다는 사실 자체가 굉장히 인상적이라고 생각합니다.)

작동 방식 및 AI 길들이기

ChatGPT와 Wolfram 플러그인 사이에 “내부적으로” 무슨 일이 일어나고 있을까요? ChatGPT의 핵심은 “대규모 언어 모델” (LLM)입니다. 이 모델은 웹 등에서 훈련되어 주어진 어떤 텍스트로부터 “합리적인 연속”을 생성하는 데 사용됩니다. 그러나 ChatGPT의 최종 훈련 과정 중에는 “대화를 유지하는 방법”과 “다른 누군가에게 무엇을 물어보는 시점”을 배우는 것으로 종결됩니다. 여기서 “누군가”는 인간일 수도 플러그인일 수도 있습니다. 특히, Wolfram 플러그인에 연결해야 하는지도 학습되었습니다.
Wolfram 플러그인에는 실제로 Wolfram|Alpha와 Wolfram 언어의 두 가지 진입점이 있습니다. Wolfram|Alpha는 어떤 의미에서 ChatGPT가 다루기 “더 쉬운” 진입점이며, Wolfram 언어를 통한 진입점은 궁극적으로 더욱 강력합니다. Wolfram|Alpha의 진입점이 상대적으로 다루기 쉬운 이유는 바로 ChatGPT가 일상적으로 처리하는 자언어를 입력으로 받기 때문입니다. 더욱이 Wolfram|Alpha는 아무리 입력이 혼잡하더라도 “일반적인 인간과 유사한 입력”을 처리하도록 관대하게 설계되었습니다.
반면 Wolfram 언어는 정확하고 잘 정의되도록 명확하게 설계되었으며 임의로 정교한 계산 타워를 구성하는 데 사용할 수 있습니다. Wolfram|Alpha 내에서 수행하는 작업은 자연어를 정확한 Wolfram 언어로 번역하여, 사실상 “부정확한 자연어”를 효과적으로 포착하여 정확한 Wolfram 언어로 “변환”하는 것입니다.
ChatGPT가 Wolfram 플러그인을 호출할 때 Wolfram|Alpha에 자연어를 전달하는 경우가 종종 있습니다. 하지만 이 시점에 ChatGPT는 일정 수준의 Wolfram 언어 작성 방법을 이미 학습한 상태입니다. 궁극적으로 나중에 자세히 살펴보겠지만 이는 더 유연하고 강력한 커뮤니케이션 수단입니다. 그러나 이는 Wolfram 언어 코드가 완벽하게 정확한 경우에만 작동하며, 그 지점에 도달하기 위해서는 부분적으로 훈련이 필요합니다. 그러나 또 다른 요소도 있습니다. 코드가 주어지면 Wolfram 플러그인이 코드를 실행할 수 있으며 결과가 명백히 잘못된 경우(즉, 많은 오류가 발생한 경우) ChatGPT는 코드 수정을 시도하고 다시 실행을 시도할 수 있습니다. (자세히 말하자면, ChatGPT 실행할 테스트를 생성하고 실패할 경우 코드를 변경할 수 있습니다.)
아직 할 일이 많지만 이미 ChatGPT가 이 작업을 여러 번 반복하여 수행하는 것을 볼 수 있습니다. Wolfram|Alpha 쿼리를 재작성(관련 없는 부분을 제거하여 단순화)하거나 Wolfram|Alpha와 Wolfram 언어 사이의 전환을 결정하거나 Wolfram 언어 코드를 재작성 할 수도 있습니다. 초기 “플러그인 명령 프롬프트”의 일부로 이러한 작업을 수행하는 방법을 알려줄 수 있습니다.
그리고 이 프롬프트를 작성하는 것은 특이한 활동입니다. 아마도 “외계 지능과 의사 소통을 시도”하려는 우리의 첫 번째 진지한 경험일 것입니다. 물론 이 “외계 지능”이 방대한 양의 인간이 쓴 텍스트로 훈련되었다는 사실은 큰 도움이 됩니다. 예를 들어, 그것은 영어를 알고 있습니다 (진부한 공상 과학 소설의 외계인과 같이...). 그리고 “사용자 입력이 영어 이외의 언어인 경우 영어로 번역하고 Wolfram|Alpha에 적절한 쿼리를 보낸 다음 사용자의 원래 입력 언어로 답을 제공하세요.”와 같은 것을 알려줄 수 있습니다.
때때로 “Wolfram 언어 코드를 작성할 때 변수 이름에 스네이크 표기법을 “절대” 사용하지 않습니다. 변수 이름에는 “항상” 카멜 표기법을 사용합니다.”와 같은 내용을 강조해야 할 필요성이 있습니다. 그러나 이러한 강조에도 불구하고 ChatGPT는 여전히 때때로 잘못된 일을 할 것입니다. 전반적인 “즉각적으로 반응하는 엔지니어링” 프로세스는 때때로 동물을 길들이는 것처럼 느껴질 수 있습니다. ChatGPT가 우리가 원하는 작업을 수행할 수 있도록 훈련에 매진하지만, 이를 달성하기 위해 필요한 것이 무엇인지 정확히 알기는 어렵습니다.
언젠가 이러한 문제는 훈련이나 프롬프트에서 처리될 것으로 예상되지만 현재로서는 ChatGPT가 Wolfram 플러그인이 도움을 줄 수 있는 경우를 항상 알지 못합니다. 예를 들어 ChatGPT는 아래의 예가 DNA 서열이라고 추측하지만 (적어도 이 세션에서는) Wolfram 플러그인이 이를 처리할 수 있다는 것을 즉시 깨닫지 못합니다.
하지만 “Use Wolfram”을 사용하면 Wolfram 플러그인으로 전송되어 실제로 잘 처리됩니다.
(때로는 “Use Wolfram|Alpha” 또는 “Use Wolfram Language”의 사용을 구체적으로 지정하고 싶을 수도 있습니다. 특히 Wolfram 언어의 경우, 실제로 전송된 코드를 살펴보고, ChatGPT 자체에서 생성한 실제로 존재하지 않는 함수 이름을 사용하지 않도록 하는 등의 조치를 취해야 할 수도 있습니다.)
결과는 질문에 대한 답변과 함께 ChatGPT가 포함하기로 결정한 몇 가지 다른 정보를 가진 멋진 텍스트입니다. 그러나 “내부”적으로 Wolfram 플러그인(및 Wolfram|Alpha “LLM 엔드포인트”)이 실제로 어떤 작업을 수행했는지 볼 수 있습니다.
꽤 많은 추가 정보가 (멋진 사진을 포함하여!)있습니다. 그러나 ChatGPT는 대답에 포함할 몇 가지 항목만을 고르기고 “결정”했습니다.
주목해야 할 한 가지는, 우리가 생각하는 것을 얻고 있는지 확인하려면 ChatGPT가 실제로 Wolfram 플러그인에 보낸 내용과 플러그인이 반환한 결과물을 항상 확인하는 것이 좋습니다. Wolfram 플러그인으로 추가하는 중요한 기능 중 하나는 ChatGPT 출력을 “사실화”하고 ChatGPT가 언제 “상상력을 발휘” 하는지, 언제 확실한 사실을 제공하는지 구분할 수 있다는 것입니다.
가끔은 무슨 일이 일어나고 있는지 이해하려면 Wolfram 플러그인에 보내진 내용을 가져와서 직접 Wolfram|Alpha 웹사이트 또는 Wolfram 언어 시스템 (Wolfram 클라우드)에 입력해 보는 것도 유용할 수 있습니다.

인간과 AI 협업을 위한 언어로서의 Wolfram 언어

ChatGPT에서 가장 인상적인(솔직히 예상하지 못한) 기능 중 하나는 대략적인 설명에서 시작하여 에세이, 편지, 법률 문서 등과 같은 완전하고 세련된 결과물을 생성할 수 있는 능력입니다. 과거에는 “상용구” 조각으로 시작한 다음 이를 수정하고 “짜집기”하는 등 “손으로” 완성품을 만들어 내려고 시도해야 했습니다. 그러나 ChatGPT는 이 프로세스를 실질적으로 쓸모없는 구식으로 만들어 버렸습니다. 사실상 ChatGPT는 웹 등에서 “읽은” 막대한 범위의 상용구를 “흡수”함으로써 이제 일반적으로 사용자가 필요로 하는 것에 매끄럽게 “적용” 하는 작업을 효과적으로 수행합니다.
그렇다면 코드는 어떻습니까? 전통적인 프로그래밍 언어에서 코드 작성에는 일반적으로 많은 “표준 텍스트 작업”이 포함되며 실제로 이러한 언어에서 많은 프로그래머는 웹에서 대량의 코드를 복사하여 프로그램을 개발하는 데 많은 시간을 할애합니다. 그러나 이제 ChatGPT가 이러한 작업의 대부분을 불필요하게 만들어 버린 것처럼 보입니다. 실제로 약간의 “인간의 입력”만으로 기본적으로 모든 유형의 상용구 코드도 자동으로 조합할 수 있습니다.
물론 프로그램을 작성하기 위해서는 일정한 수준의 인간의 개입이 필요합니다. 그렇지 않으면 ChatGPT가 어떤 프로그램을 작성해야 하는지 알 수 없기 때문입니다. 그런데 코드에 “상용구”가 있어야 하는 이유는 무엇일까요? 코드 자체로 인간의 입력만으로 상용구 없이 작성할 수 있는 언어를 가질 수 있지 않을까요?
자, 어떤 문제가 있는지 살펴봅시다. 전통적인 프로그래밍 언어는 컴퓨터에게 무엇을 해야 하는지 변수를 정의하고 조건을 테스트하는 등 컴퓨터 자체 용어로 말하는 것에 중점을 둡니다. 그러나 반드시 그런 것은 아닙니다. 사람들이 자연스럽게 생각하는 것을 기반으로 시작하여, 이를 계산적으로 표현하고 실제로 컴퓨터에서 실행되도록 효과적으로 자동화하는 프로세스를 시작할 수 있습니다.
이것이 제가 지금까지 40년 이상 노력해 온 것이며, 지금의 Wolfram 언어의 기반이 되었습니다. 이제 “풀 스케일 계산 언어”라 부를 자격이 있다고 생각합니다. 이것은 무엇을 의미 할까요? 이것은 바로 언어 안에서 그래프, 이미지, 미분 방정식이거나 도시, 화학 물질, 기업, 영화 등 우리가 세상에서 이야기 하는 모든 추상적이고 실제적인 것의 계산적 표현을 포함한다는 것을 의미합니다.
그냥 자연어로 시작하면 되지 않는지 궁금하신가요? 그것은 Wolfram|Alpha의 성공처럼 일부분은 가능합니다. 그러나 일단 더 복잡한 것을 명시하려면 자연어는 (“법률 용어”와 같이) 최선의 경우에도 다루기 힘들어지며, 자신을 표현하는 데 더 구조화된 방법이 실제로 필요합니다.
역사적으로 이에 대한 좋은 예를 수학에서 찾을 수 있습니다. 약 500년 전 쯤 “수학을 표현”하는 거의 유일한 방법은 자연어였습니다. 그러나 그 후 수학적 표기법이 발명되면서, 대수학, 미적분학, 그리고 결국에는 다양한 수리 과학 분야의 발전을 이루게 되었습니다.
Wolfram 언어의 주요 목표는 “계산적으로 표현 가능한” 모든 것에 대해 수학적 표기법이 수학에서 한 것처럼 모든 것에 대해 동일한 종류의 작업을 수행할 수 있는 계산 언어를 만드는 것입니다. 이 목표를 달성하기 위해 우리는 많은 일을 자동으로 수행할 수 있는 동시에 본질적으로 많은 것을 알 수 있는 언어를 만들어야 했습니다. 그러나 그 결과는 전통적인 수학적 표기법이 “자신을 수학적으로 표현” 할 수 있는 것과 같은 방식으로 사람들이 계산 방식으로 편리하게 “자신을 표현” 할 수 있도록 설계된 언어입니다. 한 가지 중요한 점은 전통적인 프로그래밍 언어와 달리 Wolfram 언어는 컴퓨터 뿐만 아니라 사람도 읽을 수 있도록 설계되었다는 것입니다. 즉, 컴퓨터 뿐만 아니라 인간에게도 “계산 아이디어를 전달”하는 구조화된 방법으로 고안되었습니다.
하지만 이제 ChatGPT와 같은 인공지능이 등장하면서 이는 이전보다 더 더 중요해졌습니다. 실제로 위에서 알아본 바와 같이 ChatGPT는 Wolfram 언어와 함께 작동할 수 있으므로 어떤 면에서는 자연어를 사용하는 것 만으로도 컴퓨팅 아이디어를 실현할 수 있습니다. 그리고 그 중요한 부분 중 하나는 Wolfram 언어가 우리가 이야기하고 싶은 것을 직접 표현할 수 있다는 것입니다. 그러나 또한 중요한 것은 Wolfram 언어는 우리가 이야기하고 싶은 것을 직접 표현할 수 있다는 것입니다. 그리고 ChatGPT에서 생성된 Wolfram 언어 코드를 현실적이고 경제적으로 읽을 수 있기 때문에 “우리가 무엇을 가지고 있는지 알 수” 있는 방법을 제공한다는 것입니다.
ChatGPT의 Wolfram 플러그인으로 이 모든 것이 매우 잘 작동하기 시작했습니다. 다음은 ChatGPT가 요청한 내용의 Wolfram 언어 버전을 쉽게 생성할 수 있는 간단한 예입니다.
그리고 중요한 점은 이 “코드”를 실제로 우리가 읽을 수 있다는 것입니다 (만약 제가 코드를 작성한다면 더 간결한 RomanNumeral 함수를 사용할 것입니다).
다른 예제를 살펴봅시다.
저는 코드를 조금 다르게 작성할 수도 있겠지만, 이 코드 역시 매우 읽기 쉽습니다.
자신이 원하는 것을 표현하기 위해 Wolfram 언어와 영어의 혼성어를 사용할 수도 있습니다.
여기 Wolfram 언어를 구성하는 데 성공한 ChatGPT의 예제가 또 있습니다. 이를 우리에게 편리하게 보여주므로, 실제로 올바른 계산을 수행하고 있는지 확인할 수 있습니다.
그리고 이 작업을 성공적으로 수행하려면 Wolfram 언어가 일종의 “자생 가능한” 존재여야 하는 것이 중요합니다. 이 코드는 일반적인 표준 Wolfram 언어 코드입니다. 외부에 의존하지 않으며 사용자가 원하는 경우 Wolfram 언어 문서에서 모든 정의를 찾아볼 수 있습니다.
예제 하나를 더 살펴봅시다.
분명히 ChatGPT에 문제가 있었습니다. 그러나 제안된 대로 생성된 코드를 노트북에서 직접 실행해 볼 수 있습니다. 그리고 Wolfram 언어는 기호적이기 때문에 각 단계에서 명시적으로 결과를 확인할 수 있습니다.
목표에 가까이 왔습니다! 유럽 ​​국가의 목록이 필요하다는 것을 알려주는 약간의 도움을 줍니다.
그리고 이것이 우리가 얻은 결과입니다! 또는 적어도 결과 중 하나입니다. 이 계산을 되돌아보면 정확히 우리가 원하는 것과 일치하지 않을 수 있습니다. 예를 들어 국가 별로 여러 주요 색상을 선택하고 그 중 보라색에 가까운 색상이 있는지 확인할 수 있습니다. 그러나 전체 Wolfram 언어 설정을 통해 “AI와 협력”하여 원하는 것과 수행할 작업을 쉽게 결정할 수 있습니다.
지금까지 우리는 자연어로 시작하여 Wolfram 언어 코드를 작성했습니다. 하지만 유사 코드 또는 일부 저수준 프로그래밍 언어로 된 코드로 시작할 수도 있습니다. ChatGPT는 이러한 코드를 가져와서 잘 작성된 Wolfram 언어 코드를 생성하는 데에 놀랍도록 잘 작동합니다. 코드가 항상 정확하지는 않지만 항상 실행해 볼 수 (예를 들어 Wolfram 플러그인을 통해)있으며 잠재적으로 (Wolfram 언어의 기호 특성 덕분에) 한 줄씩 코드가 어떤 역할을 하는지 볼 수 있습니다. 그리고 Wolfram 언어의 고수준 계산 언어 특성으로 인해 코드가 충분히 명확하고 (적어도 국지적으로는) 단순하여 (특히 코드의 실행 결과를 본 후에) 코드가 무엇을 하는지 쉽게 이해할 수 있으며, 그런 다음 AI와 함께 반복적으로 수정할 수 있습니다.
하려는 작업이 충분히 단순할 때, 자신이 가지고 있는 것을 확인하고 수행할 수 있는 방법으로 “그냥” Wolfram 언어를 사용하여 온전히 자연어로 지정하여 적어도 단계적으로 수행하는 것이 현실적입니다. 그러나 작업이 더 복잡해지면 Wolfram 언어는 원칙적으로 유일하게 실행 가능하고 인간이 이해할 수 있는 동시에 사용자가 원하는 것을 정확하게 표현할 수 있는 기능을 제공하므로 Wolfram 언어의 진정한 가치를 발휘합니다.
그리고 제가 An Elementary Introduction to the Wolfram Language (Wolfram 언어 기초 입문)을 집필할 때 이것은 더욱 명백해졌습니다. 책 초반에는 내가 원하는 것을 영어로 설명하는 연습문제를 쉽게 만들 수 있었지만, 작업이 점점 더 복잡해질수록 이는 점점 더 어려워졌습니다. Wolfram 언어의 “유창한” 사용자로서, 보통은 내가 원하는 것을 Wolfram 언어로 표현하는 방법을 즉시 알 수 있습니다. 하지만 영어로만 설명하려면 점점 더 복잡하고 어려운 내용이 더해졌고, 법률용어처럼 들렸습니다.
그러나 Wolfram 언어를 사용하여 무언가를 지정하면 ChatGPT가 하는 놀라운 일 중 하나는 Wolfram 언어 코드를 더욱 읽기 쉽게 재구성하는 것입니다. (아직) 항상 올바른 결과를 내지는 않지만, ChatGPT가 Wolfram 언어 코드를 작성하는 인간 작성자와 다른 관점에서 다양한 타협점을 만들어 내는 것은 흥미롭습니다. 예를 들어, 인간은 사물에 대한 적절한 이름을 떠올리는 데 어려움을 겪는 경향이 있으므로 일반적으로 중첩된 함수 시퀀스가 ​​있을 때 이름을 피하는 것이 좋습니다(또는 적어도 덜 혼란스럽습니다). 그러나 ChatGPT는 언어와 의미에 대한 명령을 통해 합리적인 이름을 쉽게 제시할 수 있습니다. 그리고 예상하지 못한 일이지만 이러한 이름을 사용하고 “작업을 분리”하면 Wolfram 언어 코드를 이전보다 훨씬 더 읽기 쉽게 만들 수 있으며 실제로 자연어의 형식화된 코드와 매우 유사하게 읽힐 수 있다고 생각합니다. 이는 우리가 자연어처럼 쉽게 이해할 수 있지만 정확한 의미를 가지고 있고 계산 결과를 생성하기 위해 실행될 수 있습니다.

묵은 문제 해결

“하고 싶은 계산이 무엇인지 알고” 이를 자연어로 간단히 설명할 수 있는 경우 Wolfram|Alpha는 계산을 직접 수행하고 가능한 한 “시각적으로 이해 가능한” 방식으로 결과를 제시합니다. 그러나 결과를 서술형 텍스트 기반의 에세이로 작성하고 싶다면 어떻게 해야 할까요? Wolfram|Alpha는 이를 위해 설계되지 않았지만 ChatGPT는 이를 수행할 수 있도록 구성되어 있습니다.
다음은 Wolfram|Alpha의 결과입니다.
그리고 여기 ChatGPT에서 Wolfram|Alpha와 동일한 결과를 요청하지만 ChatGPT에게 “그것을 에세이로 만들라”고 지시합니다.
Wolfram|Alpha의 또 다른 “묵은 문제”는 수학 문장제 문제입니다. Wolfram|Alpha는 “명확하게 제시된” 문제를 매우 잘 해결할 수 있습니다. 그러나 좀 더 “복잡하게 얽힌” 문제는 어떻게 해야 할까요? ChatGPT는 이러한 문제를 “명료한 수학 문제”로 해결할 수 있도록 “풀이”하는 데 상당히 능숙하며, 변환된 문제는 Wolfram 플러그인으로 해결할 수 있습니다. 예를 들면 다음과 같습니다.
다음은 조금 더 복잡한 경우로서 칠면조의 수가 음수가 될 수 없다는 것을 인식하기 위해 “상식”을 잘 사용합니다.
수학 문장제 문제 외에도 ChatGPT + Wolfram이 다루는 또 다른 “묵은 문제”는 물리학자들이 “페르미 문제”라고 부르는 것입니다. 이는 세계에 대한 양적 지식을 기반으로 하는 차수 추정입니다. 예를 들면 다음과 같습니다.

참여하는 방법

ChatGPT + Wolfram은 매우 새롭고 완전히 다른 유형의 기술입니다. 새로운 유형의 기술이 등장할 때마다 그렇듯이 이는 엄청난 가능성을 열어줍니다. 가능성의 일부는 이미 표현되기 시작했으며 앞으로 몇 주, 몇 달, 몇 년에 걸쳐 더 많은 기회가 나타날 것입니다.
그렇다면 급속한 기술 및 개념적 성장의 화두가 되고 있는 이 흥미진진한 시기에 직접 참여할 수 있는 방법은 무엇일까요? 첫 번째는 ChatGPT + Wolfram을 탐색해 보는 것입니다. ChatGPT와 Wolfram은 각각 자체적으로 방대한 시스템입니다. 복잡한 두 기술의 조합을 완전히 연결하는 데 몇 년이 소요될 것입니다. 그러나 그 첫 번째 단계는 무엇이 가능한지 그 범위를 파악하는 것입니다.
예를 찾아보고, 그것을 공유하세요. 성공적인 사용 패턴을 식별해 보고, 무엇보다 중요한 것은 최고의 가치를 제공하는 작업 흐름을 찾으려고 노력하는 것입니다. 이러한 작업 흐름은 꽤 복잡할 수 있지만 수행할 수 있는 작업을 보고 즉시 “아하!”하고 탄성이 나오는 경우와 같이 상대적으로 간단할 수도 있습니다.
어떻게 하면 가장 효율적인 작업 흐름을 구현할 수 있을까요? 우리는 이를 위한 최상의 스트림을 찾으려고 노력하고 있습니다. Wolfram 언어 내에서 우리는 ChatGPT와 같은 것을 완전히 프로그래밍 방식으로 그리고 노트북 인터페이스의 문맥에서도 호출할 수 있는 유연한 방식을 구축하고 있습니다.
하지만 ChatGPT에서는 어떨까요? Wolfram 언어는 사용자가 원하는 모든 것을 추가하거나 수정할 수 있는 매우 개방적인 설계 방식을 가지고 있습니다. 그러나 ChatGPT에서 이것을 어떻게 사용해야 할까요? 한 가지 해결책은 ChatGPT에 특정 “초기” Wolfram 언어 코드(아마도 문서와 함께)를 포함하도록 지시한 다음 위에서 언급한 혼성어와 같은 것을 사용하여 초기 코드에서 정의한 기능이나 기타 항목에 대해 ChatGPT에게 알려주는 것입니다.
우리는 ChatGPT를 통해 사용할 Wolfram 언어 코드를 관리하고 공유하기 위한 점전적으로 더욱 간소화된 도구를 개발할 계획입니다. 그러나 이미 작동하는 한 가지 접근 방식은 Wolfram Function Repository에 게시할 함수를 제출한 다음 일단 함수가 게시되면 ChatGPT와의 대화에서 해당 함수를 참조하는 것입니다.
그러나 ChatGPT 자체는 어떻습니까? Wolfram 플러그인과 가장 잘 상호 작용하려면 어떤 종류의 즉각적인 엔지니어링을 수행해야 할까요? 우리에게 아직 그 해답은 없습니다. AI 교육이나 AI 심리학에서 사실상 탐구해야 할 것입니다. 일반적인 접근 방식은 ChatGPT 세션을 시작할 때 몇 가지 “사전 명령 메시지”를 제공하고 “지속적으로 주의”를 기울이고 있기를 기대하는 것입니다. (물론 “주의 집중 시간”은 제한되어 있으므로 때때로 반복해서 메시지를 제공해야 합니다.)
우리는 ChatGPT에게 기본적으로 Wolfram 플러그인을 사용하는 방법을 알려주는 일반적인 메시지를 제공하려고 노력하고 있으며, 우리가 더 많은 것을 배우고 ChatGPT LLM이 업데이트됨에 따라 이 메시지가 빠르게 발전할 것을 기대합니다. 그러나 “Wolfram을 사용할 때는 항상 이미지를 포함시키십시오”, “SI 단위를 사용하십시오” 또는 “가능하면 복소수를 사용하지 마십시오”와 같은 자신만의 일반적인 사전 규칙을 추가할 수 있습니다.
기본적으로 ChatGPT에서 직접 “함수를 정의”하는 사전 프롬프트를 설정할 수도 있습니다. 예를 들면, “숫자로 구성된 입력을 제공하면 Wolfram을 사용하여 다각형을 그립니다”, 또는 더 직접적으로 “숫자로 구성된 입력을 제공하면 해당 입력에 다음 Wolfram 함수를 적용해야 합니다...”라고 명시적인 Wolfram 언어 코드를 제공합니다.
그러나 지금은 매우 초기 단계이며 의심할 여지 없이 ChatGPT + Wolfram을 “프로그래밍”하는 다른 강력한 메커니즘이 발견될 것입니다. 그리고 저는 ChatGPT 탐색에 참여하기로 선택한 사람들에 의해 많은 귀중한 “열매”를 수확할 수 있는 흥미진진한 고도 성장의 시간이 될 것이라고 확신할 수 있습니다.

배경 및 전망

일주일 전까지만 해도 ChatGPT + Wolfram이 어떻게 될지 또는 얼마나 잘 작동할지 불분명했습니다. 그러나 현재 빠르게 발전하고 있는 이러한 요소는 수십 년에 걸친 발전의 산물입니다. 어떤 면에서 ChatGPT + Wolfram의 등장은 오랫동안 분리되어 호환되지 않는 것으로 여겨져 온 AI에 대한 역사적으로 채택된 두 가지 주요 접근 방식의 결합을 의미합니다.
웹 등에 표시되는 텍스트의 “통계적” 패턴을 따르도록 훈련된 ChatGPT는 기본적으로 매우 큰 신경망입니다. ChatGPT에서 사용되는 것과 놀라울 정도로 유사한 형태의 신경망의 개념은 1940년대까지 거슬러 올라가지만, 1950년대에 약간의 붐이 있은 후 관심이 시들해졌습니다. 1980년대 초에 약간의 부활이 오는듯 했지만 (사실 저는 이 기간에 처음으로 신경망에 관심을 가지기 시작했습니다) 신경망이 제공하는 가능성을 진지하게 검토하기 시작한 것은 2012년이 되어서 였습니다. 그리고 10여년이 지난 지금, 개발에 참여한 사람들 조차에게 큰 놀라움을 안기며 성공을 거둔 ChatGPT가 우리 곁에 있습니다.
신경망의 “통계적” 전통과는 별개로 AI의 “상징적” 전통이 있습니다. 어떤 면에서 이 전통은 특히 20세기 초에 수학(및 수학적 논리)을 위해 개발된 형식화 과정의 확장에서 탄생했습니다. 그러나 이 전통에서 중요한 점은 계산이라는 추상적인 개념 뿐만 아니라 1950년대에 등장하기 시작한 종류의 실제 디지털 컴퓨터와도 잘 맞아 떨어진다는 것입니다.
진정으로 “AI”로 간주될 수 있는 분야의 성공은 오랫동안 잘 나타나지 않았지만 한편으로 컴퓨팅의 일반적인 개념은 엄청난 성공을 거두고 있었습니다. 그러나 “컴퓨팅”이 사람들이 사물에 대해 생각하는 방식과 어떻게 관련될 수 있을까요? 개인적으로 중요한 발전은 1980년대 초 (수학 논리의 이전 형식주의에 기반한) 기호 표현에 대한 변환 규칙이 “인간” 수준에서 계산을 나타내는 좋은 방법이 될 수 있다는 생각이었습니다.
그 당시 저의 초점은 수학 및 공학 컴퓨팅에 맞춰져 있었지만, 곧 유사한 아이디어를 “일반 AI”에 적용할 수 있을지 궁금해지기 시작했습니다. 신경망과 같은 것이 하나의 역할을 할 수 있다고 생각했지만 당시에는 무엇이 필요할지, 어떻게 달성해야 하는지에 대해 거의 알지 못했습니다. 한편 기호 표현을 변환하는 규칙의 핵심 아이디어는 오늘날 Wolfram 언어의 기초가 되었으며 수십 년에 걸쳐 오늘날 우리가 알고 있는 대규모 계산 언어를 개발하는 과정을 가능하게 했습니다.
1960년대부터 인공지능 연구자들은 “자연어를 이해”하고 “지식을 표현”하여 질문에 답할 수 있는 시스템을 개발하기 위해 노력해 왔습니다. 이 작업 중 일부는 기대에 미치지 못하고 실용적인 응용 프로그램으로 이어졌지만 일반적인 성공은 어려웠습니다. 그러던 중 1990년대에 기초 과학의 철학적 결론에 해당하는 결과에 따라 2005년경 자연어로 제기된 사실적 질문과 계산적 질문에 광범위하게 답할 수 있는 일반적인 “계산 지식 엔진”의 구축을 시도하기로 결정했습니다. 그러한 시스템을 구축할 수 있다는 것 자체가 분명하지 않았지만, 우리는 기본 계산 언어와 수많은 작업을 거쳐 그것이 현실이 될 수 있음을 발견했으며, 2009년에는 드디어 Wolfram|Alpha를 출시할 수 있었습니다.
그리고 어떤 의미에서 Wolfram|Alpha를 가능하게 만든 것은 내부적으로 세계의 사물을 표현하고 그에 대해 계산하는 명확하고 형식적인 방법이 있었기 때문입니다. 우리에게 “자연어 이해”는 추상적인 것이 아닙니다. 이는 자연어를 구조화된 컴퓨터 언어로 번역하는 구체적인 과정이었습니다.
또 다른 측면은 세상에 대해 “알고”, “계산”하는 데 필요한 모든 데이터, 방법, 모델 및 알고리즘을 수집하는 것이었습니다. 우리는 이러한 작업을 대부분 자동화했지만 궁극적으로 “일을 올바르게 처리”하려면 실제 전문 인력에 의존하는 것 외에는 선택의 여지가 없다는 결론에 도달하게 되었습니다. Wolfram|Alpha의 자연어 이해 시스템에는 “통계적 AI”로 간주될 수 있는 것이 약간 포함되어 있지만 대부분의 Wolfram|Alpha 및 Wolfram 언어는 엄격한 방식으로 작동합니다. 적어도 상징적 AI의 전통을 연상시키는 기호적 방식입니다. (Wolfram 언어의 개별 함수는 기계 학습 및 통계 기술을 사용하지 않는다는 의미는 아닙니다. 최근 몇 년 동안 점점 더 많은 기능이 사용되고 있으며 Wolfram 언어에는 기계 학습을 위한 프레임워크도 내장되어 있습니다.)
위에서 논의한 것처럼, “통계 AI”, 특히 신경망은 우리 인간이 “빠르게 수행”하는 작업에 매우 적합한 것으로 보이며, 이는 ChatGPT로부터 배운 자연어 및 이의 근간인 “사고”를 배우는 것을 포함합니다. 그러나 상징적이고 어떤 의미에서 “보다 엄격하게 계산적인” 접근 방식은 더 큰 “개념적” 또는 계산적 “타워”를 구축할 때 필요한 것입니다. 이는 수학, 정밀 과학 및 현재 모든 “계산 X”에서 발생합니다.
이제 ChatGPT + Wolfram은 최초의 진정한 대규모 통계적 + 상징적 “AI” 시스템으로 간주될 수 있습니다. Wolfram|Alpha(지능형 비서 Siri의 핵심 요소 중 하나)에서 처음으로 실제 계산 표현 및 계산에 직접 연결된 “이해”와 함께 자연어에 대한 광범위한 이해가 있었습니다. 그리고 13년이 지난 지금, 우리는 순수한 “통계적” 신경망 기술이 거의 전체 웹 등에서 훈련될 때 ChatGPT에서 “인간과 유사한” “의미 있는 언어”를 “통계적으로” 생성하는 데 유능하다는 것을 확인했습니다. 그리고 ChatGPT + Wolfram에서 우리는 이제 전체 시스템을 활용할 수 있습니다. ChatGPT의 순수한 “통계 신경망”에서 Wolfram|Alpha의 “계산적으로 기반을 둔” 자연어 이해, Wolfram 언어의 전체 계산 언어 및 계산 지식까지 이어집니다.
Wolfram|Alpha를 처음 구축할 때 유용한 결과를 얻으려면 사용자와 대화를 나누는 것 외에는 선택의 여지가 없다고 생각했습니다. 그러나 우리는 풍부하고 “시각적으로 스캔할 수 있는” 결과를 즉시 생성하는 경우 최소한 사용자에게 기대하는 정보 유형 및 계산에 대해 단순한 “가정” 또는 “매개 변수”의 상호 작용만 있으면 충분하다는 것을 발견했습니다. (Wolfram|Alpha Notebook Edition에는 여전히 자연어로 다단계 계산을 수행할 수 있는 방법에 대한 강력한 예시가 제공됩니다.)
2010년 당시 우리는 이미 자연어의 일반적인 Wolfram|Alpha 쿼리에서 Wolfram 언어 코드를 생성할 뿐만 아니라 “전체 프로그램”을 자연어로 생성하는 실험을 하고 있었습니다. 그러나 당시에는 현대적인 LLM 기술이 없었기 때문에 그다지 멀리 가지는 못했습니다. Wolfram 언어의 기호 구조 맥락에서 자연어를 사용하여 코드로 간주될 수 있는 작은 조각을 생성할 수 있는 것이 매우 유용하다는 것을 알게 되었습니다. 실제로 저는 예를 들어 Wolfram Notebooks에서 “+=” 매커니즘을 거의 매일 수없이 사용하여 예를 들어, 자연어에서 엔터티 또는 기호 수량을 구성합니다. 우리는 아직 이것을 LLM으로 구현한 현대적인 버전이 무엇인지 정확히 알지 못하지만, 위에서 언급한 풍부한 인간-인공지능 “협업”이 포함될 것으로 예상되며, ChatGPT + Wolfram에서 처음으로 실제로 작동하는 것을 점진적으로 만나게 될 것입니다.
저는 지금 일어나고 있는 일이 역사적인 순간에 해당한다고 생각합니다. “AI”라고 부를 수 있는 것에 대한 통계 및 기호적 접근법은 50년 이상에 걸쳐 대체로 개별적으로 발전해왔지만 이제 ChatGPT + Wolfram에서 함께 결합되고 있습니다. 아직은 시작 단계이지만, ChatGPT의 등장으로 가능해진 이러한 결합으로 인해 “AI와 유사한 계산”의 새로운 패러다임이 가능해지게 될 것으로 기대하는 것은 타당하며, 어떤 의미에서는 ChatGPT + Wolfram에서 Wolfram|Alpha 및 Wolfram 언어와의 조합으로 인해 막대한 힘을 기대할 수 있다고 생각합니다.
© 2023 Wolfram. All rights reserved.