AI 수학 튜터가 당신의, 혹은 당신의 아이의 성적을 뒤집을 수 있을까?

#9기임팩트

현재 LLM은 코딩, 언어 등 다양한 방면에 재능을 뽐내고 있기 때문에, LLM을 이용한 AI tutor가 효율적, 효과적 임팩트를 가져올 수 있다는 점은 이전 글에서 확인한 바 있습니다.

그렇다면 과연 수학에 대해서는 어떤 성능을 보이고 있을까요? 일반 사용자들은 단연코 ‘아니요’ 라는 대답을 내놓을 것 같습니다. 간단한 산수 조차도 못 푸는 모습을 자주 보여주니까요.

실제로도, 최근 Toolformer, mathchat 등을 이용한 기법이 GPT에 사용되기 전인 2023년 초반만 해도, GPT를 이용해 수학문제를 푸는 것은 불가능과 같았습니다. 한 예시로, 2023년 수능 수학문제를 GPT에게 풀게 하였더니 영어는 2등급을 받았지만 수학은 낙제점을 받은 적도 있었죠.

이는, Next token을 추론하는 LLM의 특성과 수식 풀이 간의 flow 괴리, 확률적 답변 기반 추론 등 다양한 문제로 볼 수 있으며 LLM 단일 개체로는 해결하기 조금 어렵습니다.

이런 근본적인 원인이 있음에도, 왜 수학 도메인에 있어서 AI tutor가 필요한 것일까요? 그 이유는 크게,


1) LLM은 포괄적인 솔루션을 제공하고, 사용자의 해답이나 문제 풀이 방법에 대해 오류 분석을 개인화하여 제공해줌으로, 비판적 사고와 문제 해결 능력을 길러줍니다.

2) 학습자에게 상세하고 순차적인 형식, 명확하고 일관된 풀이 방법을 제공해주기 때문에, 학습자들이 상대적으로 더 선호합니다.

3) 단순히 산술적인 지원뿐만이 아닌, 대수학, 미적분학, 통계학 등 다양한 분야에 걸쳐 깊은 insight를 제공해줍니다.

4) 이러한 장점에도 불구하고, 기존 솔루션에 비해 가격적으로 매우 저렴하고, 내가 원하는 시간에 항상 도움을 받을 수 있습니다.


상기한 목적을 이루기 위해 1)이미 LLM에 접목한 방법들이 있으며, 2) 앞으로 LLM에 접목할 방법들을 간략하게 소개하겠습니다.

LLM이 수학을 잘 할 수 있게 하는 방법들

1) 툴 사용

  • LLM은 때론 간단한 산수도 틀리는 경우가 있습니다. 특히 , 문장에 섞여있는 숫자에 대한 산수는 틀리는 경우가 꽤나 잦죠. 이런 경우 LLM이 해당 계산을 하게 하는 것이 아닌, python 이나 Wolfram 같은 툴을 호출하여 그 툴에 풀게 하는 방법이 있습니다. (Toolformer)

  • 특히, LLM은 코드 짜는 능력이 매우 탁월합니다. 즉, 특정 문제를 풀기 위한 알고리즘 함수를 짠 후, 그 함수를 code interpreter에 돌리기만 하면 되죠.


2) Prompt 고도화

  • 흔히 알려져 있는 CoT(Chain-of-Thought) 개념입니다. 특정 문제를 풀기 위해 하나의 예시를 주는데, 이 때, 그 문제를 풀 수 있는 해결 과정을 같이 제공해주면, 모델은 in-context-learning을 통해 확실하게 배울 수 있습니다.

  • 또한 상기한 Tool을 불러올 수 있는 개념인 PoT(Program-of-Thought) 역시 사용해볼 수 있습니다.


앞으로 시도할 수 있는 방법들

현재 chatgpt4를 사용한다면, 상기한 방법들은 모두 구현이 되어 있는 상태입니다. 즉,


1) LLM은 어떤 문제를 어떻게 풀 것인지 계획만 세우고,

2) 실질적은 계산은 다른 툴이나, 프로그래밍을 통해 진행하게 되죠.

3) 본인이 어떤 방향으로 갈지 모르거나, 중간에 에러가 난다면 자기 스스로 다른 방법을 강구합니다.


이러한 방법들이 동원된 gpt4는 2024년 수리 수능 기준으로 152점 만점에 50점을 맞았습니다.

물론 이전의 gpt에 비해서 괄목할만한 성장을 보였으나, 아직까지 AI tutor로 나아가기 위해서는 부족한 점이 많죠. 그럼 앞으로 어떻게 해야지만, 혹은 개인의 입장에서 어떻게 해야지 GPT를 나만의 수학 AI tutor로 만들 수 있을까요?


1) 유사한 문제의 해설, 혹은 개념 제시

  • 하나의 문제를 풀 때, 해당 문제와 관련되어 있는 개념, 혹은 유사 문제의 해설을 제시해주는 방법입니다. 예를 들어 위 문제의 해답을 vanilla prompt, 즉 그냥 풀어달라고만 제시한다면,


  • 이와 같이 해결하지 못하는 것을 볼 수 있습니다.


  • 하지만, 관련된 개념을 프롬프트에 추가시켜주면 곧바로 해결 방안을 찾아내는 모습을 볼 수 있습니다.

prompt : 이 문제를 풀기 위해선 |a+5d| = a+7d라는 점이 중요해.
  • 물론, 프롬프트에 준 개념은 GPT4 자체가 알고 있는 개념이지만, 해당 부분을 한 번 더 강조해주면 문제 풀이 능력이 매우 올라갑니다.

    • 이와 같은 기법은 ‘개인의 측면’에선 해당 문제를 풀기 위해 본인이 했던 방법들을 서술해 주는 방향으로 진행할 수 있습니다.

    • AI 임팩트 측면, AI tutor를 만들기 위한 방안으로 생각해보자면,

    1) 다양한 문제, 해설, 개념을 DB화 한 후,
    2) input으로 들어오는 문제와 유사도가 높은 해설, 혹은 개념을 prompt에 추가시켜주는 방식 (RAG 방식) 

    을 사용할 수 있으며, 이러한 방식을 통해 만들어진 어플리케이션은 152점 만점에 77점, 즉 27점의 점수 상승이 있었습니다.


Case Study

이제 상기한 방법들을 조금 더 쉽게 이해하기 위해, 하나의 문제를 어떻게 풀어나갈 지 확인해보겠습니다.

문제 : 분수 2/x 를 소수로 나타내면 정수가 아닌 유한소수가 될 때, x의 값이 될 수 있는 모든 한 자리 자연수의 합은 어떻게 구할 수 있나요?
LLM의 답 : 분수 2/x가 유한소수가 되기 위해서는 분모 x가 2와 5이외의 소인수를 가지지 않아야 합니다. 한 자리 자연수 중에서 2와 5 이외의 소인수를 가지지 않는 수는 3, 4, 6, 7, 8, 9입니다. 따라서 이들 수의 합은 
3 + 4 + 6 + 7 + 8 +9 = 39입니다.

(GPT capa에 걸려있는 상태라 HyperCLOVA를 사용했습니다.)

  • 정확하지는 않지만, 해당 문제의 답변을 필기 위한 핵심 개념인 [분모 x가 2와 5의 거듭제곱 혹은 그 곱의 형태로 나타나야 한다] 에 거의 근접한 개념을 추론하는 모습을 볼 수 있습니다.

  • 그럼에도, 두 번째 추론에서는 2와 5 이외의 소인수만 선별하는 모습을 보였으며,

  • 세 번째 결과 도출에서는 간단한 산수 역시 틀린 모습을 볼 수 있습니다.

  • 또한 AI tutor관점에서, 설명의 친근함, 구체성, 서비스적인 측면에서 매우 미흡함을 볼 수 있습니다.

    • 특히, 개인화된 답변을 내놓기 어려운 구조입니다.


이러한 문제점을 개선하기 위해, Action 호출, 프롬프트 기법, 서비스 기획적인 개선 등을 가미한, Pseudo-prompt를 만들어 봤습니다.

  • step by step을 이용하여 사용자가 학습 flow를 따라올 수 있으면서, 구체적인 설명을 할 수 있게 지시했으며,

  • 개인화된 답변을 구성할 수 있게 하기 위해서 {stu-info} 라는 변수를 추가하여 해당 프로필을 가진 학습자의 수준에 맞는 답을 할 수 있도록 구성했습니다.(해당 학생이 모를만한 개념, 혹은 추가 질문 등)

    • {stu-info}에는 학생의 수준, 나이, 이전에 주로 틀렸던 문제 유형 등이 들어갈 수 있습니다.

  • 제일 중요한 문제풀이 능력을 향상시킬 수 있도록 {ref-knowledge} 구조를 추가했습니다.

    • 해당 변수에는 주어진 문제와 비슷한 문제의 해설, 혹은 해당 문제에 들어있는 키워드가 많이 들어가 있는 챕터의 개념 등이 들어갈 수 있습니다.

    • 아래의 답변을 위해서 사용한 ref-knowledge는 “10진법에서 유한소수는 분모가 10의 거듭제곱 형태, 즉 2^n과 5^n의 곱으로 나타나야 한다.” 만 주었습니다.


위와 같은 Pseudo-prompt를 사용하면, 답변은 아래와 같이 출력됩니다. (변수는 모두 직접 넣었습니다.)

  • 이전 LLM의 답과 달리 매우 구체적이고, 개인화된 답변을 내놓았음을 알 수 있습니다.

    • 정확도 역시 상대적으로 매우 높아졌으나, “정수가 아닌 유한소수” 에 대한 개념을 {ref-knowledge}에 넣어주지 않아 틀린 모습을 볼 수 있습니다. (2가 추가)

    • 하지만, 해당 부분을 제외하고는 모두 정확했으며, 해당 개념을 추가했을 때는 정확한 답을 추론할 수 있었습니다


추가적으로, LLM은 무언가 생성해내는 것보다, 무언가를 검증하는 데에 성능이 상대적으로 더 탁월합니다. 이와 같은 성질을 이용하여,

위와 같은 추가 검증 작업을 통해 할루시네이션의 효과를 상대적으로 줄일 수 있습니다.


Conclusion

  • 당장 수학 도메인에서 개인이 GPTs를 이용하여, 혹은 AI tutor 앱을 통해 혁신적인 임팩트를 느끼기는 어려울 것이지만, 지속적인 기술 발전, 부가적인 모델, 기술 등의 도움을 받는다면 가까운 미래에 혁신적인 임팩트를 느낄 수 있을 것입니다.

  • 개인의 입장에서 수학 문제를 잘 푸는 GPTs를 만들고 싶다면, 위의 Pseudo-Prompt를 참고하여 본인의 학년 및 과정에 맞는 수학 문제집의 ‘개념, 문제, 해설’ pdf를 GPTs의 knowledge에 넣고 진행해보는 것을 추천드립니다.

-

6
4개의 답글

👉 이 게시글도 읽어보세요

모집 중인 AI 스터디