paint-brush
왜 AI는 '딸기'라는 단어에 있는 'R'의 개수를 셀 수 없을까?~에 의해@kisican
새로운 역사

왜 AI는 '딸기'라는 단어에 있는 'R'의 개수를 셀 수 없을까?

~에 의해 Can Kisi5m2024/08/29
Read on Terminal Reader

너무 오래; 읽다

인기 있는 예로는 "딸기"라는 단어가 있는데, AI는 "r"이 몇 번 등장했는지 정확하게 세는 데 매우 자주 실패합니다. 답은 이러한 모델이 언어를 처리하고 생성하는 방식의 핵심에 깊이 있습니다. 언어 모델은 단어를 개별 문자의 시퀀스로 취급하지 않습니다. 대신 텍스트를 "토큰"이라는 더 작은 단위로 나눕니다.
featured image - 왜 AI는 '딸기'라는 단어에 있는 'R'의 개수를 셀 수 없을까?
Can Kisi HackerNoon profile picture

왜 AI는 "딸기"라는 단어의 "R"의 개수를 셀 수 없을까?


대규모 언어 모델, 특히 OpenAI의 ChatGPT는 인간과 유사한 텍스트를 이해하고 생성할 수 있는 기계와 상호 작용하는 방식에 혁명을 일으켰습니다. 하지만 이러한 모델 자체에는 이상함이 가득한 캐릭터가 있습니다. 최근 모든 소셜 미디어에서 가장 성가신 이상함은 이 대규모 언어 모델이 단어의 특정 문자 수를 올바르게 세지 못하는 것입니다. 매우 인기 있는 예로는 "딸기"라는 단어가 있는데, AI는 "r"이 몇 번 등장했는지 올바르게 세지 못하는 경우가 매우 많습니다. 하지만 왜 그럴까요? 답은 이러한 모델이 언어를 처리하고 생성하는 방식의 핵심에 있습니다.

토큰화 프로세스

AI가 글자 세기와 같은 질문에 걸려 넘어지는 주된 이유 중 하나는 실제로 단어를 처리하는 방식 때문입니다. GPT-3 및 GPT-4와 같은 언어 모델은 단어를 개별 글자의 시퀀스로 취급하지 않습니다. 대신 텍스트를 "토큰"이라는 더 작은 단위로 나눕니다. 토큰은 해당 모델의 설계와 관련된 특정 단어에 따라 한 글자만큼 짧거나 전체 단어만큼 길 수 있습니다.


예를 들어, "딸기"라는 단어는 모델이 학습을 통해 알고 있는 부분적인 단어 조각의 표현인 두 개의 토큰으로 나뉘게 될 가능성이 가장 큽니다. 문제는 이것들이 일반적으로 단어의 글자와 일치하지 않는다는 것입니다. 그 이유는 "딸기"와 같은 예에서 AI가 단어가 전체 단일 글자로 분해된 것을 보지 않고 토큰 ID 496과 675와 같은 두 개의 토큰을 볼 수 있기 때문입니다. 나중에 특정 글자를 세라는 요청을 받으면 이 모델은 토큰을 특정 글자의 발생 횟수로 다시 매핑하는 쉬운 방법을 찾지 못할 것입니다.

언어 모델의 예측 메커니즘

기본적으로 언어 모델은 이전 단어나 토큰이 제공한 맥락을 기반으로 시퀀스의 다음 단어나 토큰이 무엇인지 예측합니다. 이는 특히 일관성이 있을 뿐만 아니라 맥락을 인식하는 텍스트를 생성하는 데 효과적입니다. 그러나 정확히 무언가를 세거나 개별 문자에 대해 추론해야 하는 목적에는 적합하지 않습니다.


AI에게 "딸기"라는 단어에서 문자 "r"이 나오는 횟수를 세어 달라고 요청했다면, 그 단어의 모든 인스턴스의 수와 위치를 도출할 수 있는 단어에 대한 그렇게 정교한 표현이 없을 것입니다. 대신, AI는 요청의 구조에서 예측을 형성하는 것에 대해 배운 내용의 틀에 따라 대답합니다. 물론, 이것은 부정확할 수 있습니다. AI가 학습한 데이터는 문자 세는 것과 관련이 없고, 예시 단어에서 "r"을 추적하는 데 필요한 유형의 자료도 포함하지 않을 수 있기 때문입니다.

순수 언어 모델의 한계

또 다른 중요한 점은 대부분의 챗봇에서 사용되는 언어 모델 자체가 명시적인 계산이나 산술에 적합하지 않다는 것입니다. 다른 말로, 순수 언어 모델은 학습한 패턴을 기반으로 확률에 따라 가중치를 둔 작업을 수행하는 고급 사전이나 예측 텍스트 알고리즘에 불과하지만 계산과 같이 엄격한 논리적 추론이 필요한 작업에는 어려움을 겪습니다. AI가 단어를 철자로 쓰거나 개별 문자로 분해하라는 요청을 받으면 더 자주 이를 올바르게 수행할 수 있습니다. 이는 훈련된 작업인 텍스트 생성과 더 일치하기 때문입니다.

해결 방법 및 개선 사항

이러한 한계에도 불구하고, 이러한 작업에서 AI의 성능을 개선할 수 있습니다. AI에게 Python과 같은 모든 종류의 프로그래밍 언어를 사용하여 계산하도록 요청하면 개선할 수 있습니다. 예를 들어, AI에게 "strawberry"의 "r" 개수를 세는 Python 함수를 작성하라는 지시를 내릴 수 있으며, 아마도 제대로 처리할 것입니다. 이 접근 방식을 사용하는 이유는 AI가 코드를 이해하고 생성할 수 있는 능력을 활용하여 작업을 올바르게 수행하기 위해 실행할 수 있기 때문입니다.

그 외에도 최신 세대의 언어 모델이 결합되어, 이러한 모델을 계산과 산수 등 보다 구조화된 작업에 더욱 강력하게 사용할 수 있게 해주는 다른 도구와 알고리즘이 추가되었습니다.

상징적 추론을 내장하거나 LLM을 외부 추론 엔진과 결합하면 AI 시스템은 이러한 단점을 극복할 수 있습니다.


언어 모델의 본질과 "집단적 어리석음"

"딸기"와 같은 단어의 글자 세기 문제는 이와 관련하여 훨씬 더 크고 일반적인 문제, 즉 이러한 훈련된 모델의 "집단적 어리석음"을 지적합니다. 이러한 모델은 매우 큰 데이터 세트에서 훈련되었고 따라서 매우 정교한 수준에서 텍스트 생성을 수행할 수 있지만, 때때로 어린아이가 쉽게 피할 수 있는 매우 어리석은 실수를 저지릅니다. 이는 모델의 "지식"이 실제 세계의 이해나 논리적 추론이 아닌 패턴 인식과 통계적 연관성으로 구성되어야 하기 때문에 발생합니다.


세부적으로 지시를 받거나 여러 모델이 서로를 확인하는 상황에 설정하더라도 AI는 여전히 완고하게 틀린 답을 고집할 수 있습니다. 이러한 행동은 강점을 넘어서는 능력에 대해 AI 시스템을 과대평가하지 않고 무엇을 할 수 있고 할 수 없는지 충분히 이해하는 것이 얼마나 중요한지 자세히 보여줍니다.


결론: AI 이해의 진화

AI가 "딸기"에서 "r"의 개수를 세지 못하는 것은 사소한 결함이 아닙니다. 오히려 그것은 언어 모델의 기본 아키텍처와 디자인 철학을 반영한 것입니다. 이러한 모델은 인간과 유사한 텍스트를 생성하고, 맥락을 이해하고, 대화를 모방하는 데 매우 강력하지만 캐릭터 수준에서 세부 사항에 대한 주의가 특별히 필요한 작업을 위해 직접 만들어지지 않았습니다.

AI가 지속적으로 개선됨에 따라, 미래의 모델은 토큰화 프로세스 개선, 추가 추론 도구 통합 또는 언어를 이해하고 조작하는 완전히 다른 방식을 통해 이러한 작업을 더 잘 수행할 수 있을 가능성이 높습니다. 그때까지는 한계를 이해하고 적절한 해결책을 사용하고 이해를 시뮬레이션할 수는 있지만 아직 인간처럼 진정으로 "이해"하지는 못한다는 인식을 가지고 접근해야 합니다.