대규모 언어 모델(LLM)을 기반으로 한 AI는 높은 능력을 발휘할 수 있는 반면 거짓말에 속기 쉽다는 특징이 있거나 산수 문장제에 대한 추론 능력이 초등학생 미만이라는 연구 결과가 있는 등 취약성에 대해서도 자주 지적된다. AI 능력 한계를 보여주는 스트로베리 문제(strawberrry problem)라는 취약성은 뭘까.
챗GPT나 스테이블 디퓨전 같은 생성형 AI는 고급 문장이나 코드를 작성하거나 일러스트나 실제 같은 이미지를 출력할 수 있어 누구나 쉽게 고도의 능력을 발휘할 수 있게 한다. 하지만 예를 들어 이미지 생성 AI의 경우 바나나 문제(A single banana)라는 취약성을 안고 있다. 이 프롬프트로 이미지를 생성한 결과 출력된 건 2개로 이뤄진 바나나 한 송이였다고 한다. AI에는 사진 속 바나나는 2개라는 편향이 있으며 실제로 프롬프트가 지정하는 걸 이해하고 있지 않은 AI는 데이터셋에서 학습한 편향에 이끌리게 된다고 생각된다고 한다.
비슷한 문제로 문장을 다루는 LLM이 안고 있는 문제로 언급하는 게 스트로베리 문제다. 챗GPT에게 스트로베리라는 영단어에 r이 몇 개 포함되어 있냐(what is the number of r s in strawberry)라고 질문했다. 스트로베리라는 단어를 보면 누구나 알 수 있듯 3번째와 8, 9번째 글자로 r 3개가 있다. 하지만 챗GPT는 스트로베리라는 영단어는 r 2개로 구성되어 있다(The word “strawberry” contains 2 “r”s)고 대답했다.
또 앤트로픽이 개발한 LLM을 이용한 대화형 AI인 클로드(Claude)에게도 같은 질문을 했지만 이 역시 r은 2개라는 답변이 돌아왔다.
다른 예로는 포유류(mammal) 속 m이나 하마(hippopotamus) 속 p를 세는 경우에도 LLM 기반 AI가 실수를 하는 경우가 있다. 스트로베리 문제는 LLM 특징에서 비롯된다고 한다.
고성능 LLM의 거의 모든 건 구글 연구자 등이 발표한 심층 학습 모델인 트랜스포머(Transformer) 위에 구축되어 있다. 트랜스포머는 입력된 텍스트를 직접 받아들이는 게 아니라 텍스트를 수치 표현으로 토큰화하는 프로세스를 사용한다. 토큰에는 완전한 단어도 있고 단어 일부도 있다 예를 들어 스트로베리라는 단어 토큰이 있으면 그대로 읽어 들이지만 단어에 따라서는 스트로(straw)와 베리(berry)라는 2개 토큰을 조합하는 형태로 입력을 받아들이는 경우도 있다는 것. 입력 내용을 토큰으로 분해해 모델은 문장에서 다음에 어떤 토큰이 올지를 더 정확하게 예측할 수 있다.
따라서 토큰을 다루는 LLM 기반 AI는 문맥을 고려해 문장 내용을 예측하는 건 잘하지만 단어를 알파벳 단위로 분해하는 건 어렵다고 할 수 있다. 개별 문자를 토큰화하지 않고 직접 확인할 수 있는 모델 아키텍처에서는 이 문제가 발생하지 않을 가능성이 있지만 현행 트랜스포머 아키텍처에서는 실현 불가능하다고 한다.
LLM이 안고 있는 문제점을 고려한 뒤 스트로베리 문제 회피 방법에 대해서도 설명하고 있다. 그 방법은 일반 문장으로 대화하는 게 아니라 프로그래밍 언어의 코드를 사용하도록 지시해 질문하는 것이다. 챗GPT에게 파이썬을 사용해 딸기 속 r 수를 답하라. 코드와 설명도 보여달라(answer how many r s in strawberry using python. show the code, and the explanation)고 물었다. 챗GPT는 파이썬 count 함수를 사용한 뒤 정확한 r 수인 “Output=3″이라고 대답할 수 있었다.
단순한 문자 카운팅 실험을 통해 LLM에 대한 근본적인 한계가 명확해졌다. 이 실험에서는 LLM이 토큰 패턴 매칭 예측 알고리즘이며 이해나 추론이 가능한 지능이 아니라는 게 드러났다. 다만 어떤 프롬프트가 잘 작동하는지를 미리 알고 있으면 어느 정도는 문제를 완화할 수 있다. 생활에 AI가 통합됨에 따라 책임감 있게 사용하고 현실적인 기대를 갖기 위해서는 AI 한계를 인식하는 게 중요하다. 관련 내용은 이곳에서 확인할 수 있다.