내가 저번에도 여기서 비슷하게 말한적 있는데, 지금 인공지능은 "생각할 시간이 부족함".
예를 들어 사람으로 치면 수학문제를 보자마자 1초만에 답내는거랑 종이로 써가면서 푸는거랑 뭐가 더 정확성이 높겠음?
고작 토큰(단어) 하나에 복잡한 수학 문제를 풀라는건 그냥 말이 안됨. 그런건 사람도 불가능함.
인공지능한테도 생각할 시간이 필요하고, 그게 lets think step by step의 의미임.
lets think step by step을 프롬프트에 넣는 순간 사람으로 치면 1초에 암산할 것을 하나하나 필산하게 되는 것임.
이것은 간단하고 당연하지만, 동시에 중요하고 본질적인 문제임.
참고로 저 논문은 이런걸 처음 정리해서 실제로 수치화해본거고,
이런 아이디어 자체는 이전에 딥마인드의 논문 등에서도 많이 찾아볼 수 있었음. step by step을 프롬프트에 넣어놓는다던가.
예를 들어 사람으로 치면 수학문제를 보자마자 1초만에 답내는거랑 종이로 써가면서 푸는거랑 뭐가 더 정확성이 높겠음?
고작 토큰(단어) 하나에 복잡한 수학 문제를 풀라는건 그냥 말이 안됨. 그런건 사람도 불가능함.
인공지능한테도 생각할 시간이 필요하고, 그게 lets think step by step의 의미임.
lets think step by step을 프롬프트에 넣는 순간 사람으로 치면 1초에 암산할 것을 하나하나 필산하게 되는 것임.
이것은 간단하고 당연하지만, 동시에 중요하고 본질적인 문제임.
참고로 저 논문은 이런걸 처음 정리해서 실제로 수치화해본거고,
이런 아이디어 자체는 이전에 딥마인드의 논문 등에서도 많이 찾아볼 수 있었음. step by step을 프롬프트에 넣어놓는다던가.
그런 의미에서 시간을 충분하게 줄 수 있는 법만 더 개선하면 수학 쪽은 의외로 쉽게 superhuman 레벨을 달성할 수도 있을지도 모르겠음
어차피 스케일이 커지면 연산하는데도 시간이 오래걸리긴함. 연산 시간의 문제가 아니라 연산량이 충분하지 않다라고 봐야할듯. - dc App
맞음. 걍 사람에 비유하려고 시간이라고 한 것이긴 함.
어려운 문제에는 연산량을 많이 할당하고 쉬운 문제에는 연산량을 적게 할당할 수 있는 구조가 반드시 필요하다고 생각함. 현재 언어모델에는 그런게 없음.
그리고 방금 생각난건데 step by step이라는 문장을 추가하면 연산해야하는 양이 늘어남. 언어모델로 쓰는 transformer가 문장이 길어질수록 연산량이 늘어나거든 근데 step by step이 나름 의미를 가지는 문장인데다가 step by step 논문을 보면 더 긴 문장을 넣어줬을때보다 step by step 문장을 넣어줬을때가 - dc App
더 효과가 좋았음. 그러니깐 의미있는 토큰을 더 넣어줘서 연산량을 일부러 늘려주면 더 효과가 있다는 거임. - dc App
어려운 문제에는 연산량을 많이 할당하도록 유도하는게 이번 step by step 논문의 시사점일수도 있음 - dc App
내가 해본 실험으로는 "나는 모든 암산을 끝마치기 전까지 thinking만 말한다"를 프롬프트에 넣는거임. ex) Q. 1+4+5+6= ? A. thinking thinking thinking 16 정확히 통계를 안내봤지만 이것만으로도 약간 성능 향상이 있었던거 같음.
저번에 대화했던 특붕이 같네. 그때는 내가 언어모델의 스케일을 크게 작게 조절할 수 있으면 가능할거라고 대답했던거 같은데 그럴 필요도 없이 의미있는 토큰을 추가하는 것 만으로도 그런 효과를 낸거라고 생각할 수도 있을거 같음. - dc App
씽킹씽킹이라고 대답하라고 해도 효과가 있었음? 그거도 흥미롭네 - dc App
thinking을 말하면서 암산이 끝났는지 판단하기 위해 연산을 하고, 그 연산의 중간과정 기억(벡터)을 다음 토큰에서 어텐션으로 참조하기 때문이라고 추정함.
transformer로 문장생성할때 토큰을 하나하나 추가하는 방식으로 하는데 이걸 thinking을 반복하게 함으로써 연산량을 강제로 늘렸다는거지? 그걸 입력단에서 시도한게 이번 논문인건가 - dc App
ㅇㅇ lets~ 이거는 은닉층이 아니라 입력층 벡터 참조. 근데 입력층 참조가 훨씬 효과적이긴 함.
글 하나 올림
신기하네