요리사

언어모델의 학습은 사람의 배움과 같다. 요리사는 여러 지역에서 요리방법을 배워온다. 비슷하게 LLM도 문서에서 컨텐츠를 배운다. 이 글은 LLM에 대한 배움의 비유이며, 연구 방향성을 나타내기 위해 작성되었다.

요리사는 지식을 학습하기 위해 모험을 떠난다.

요리사

내가 파견 보낸 요리사는 여러 나라를 돌아다니며 계란 요리 만드는 방법을 배웠다. 요리사는 다양한 계란 요리를 할 수 있고, 나는 매일같이 다양한 계란 요리를 먹는다. 어느날 문득 나는 요리를 먹으며 지금 먹고 있는 게 어떤 나라에서 배운 건지 궁금했다.

“어느 나라에서 배운 요리인가요?”

나는 물었다.

"계란의 신선도, 오늘 날씨를 봤을 때 오믈렛을 만든 겁니다." 이러한 현상은 LLM에서 입력에 의존적으로 대답을 줄 뿐 어떠한 부가적인 정보도 없다는 것을 나타낸다.

나는 레시피를 만든 나라를 알려달라고 했고, 요리사는 계란 크기와 날씨를 봤을 때 오믈렛이 적합하다는 말만 계속 반복했다.

“저는 나라를 기억한 게 아니라 요리법만 암기했습니다.”

요리사는 말했다.

나는 요리사를 다시 파견 보내면서 이번에는 어떤 나라의 요리인지 제대로 구분해서 배우라고 요구했다. 데이터의 보호, 신뢰를 위해서는 생성물의 원천을 아는 것이 중요하다.


1 장 단어 기반 추정 (Paper)

몇 달 후 요리사가 돌아왔다. 그는 나에게 계란찜을 건내며 한국요리라고 알려준다. 그 다음 날은 계란말이를 요리했고, 한국 또는 일본식이라는 알려준다. 문서의 추정은 멀티레이블 문제이다. 나는 국가를 암기해온 요리사가 기특했고, 요리사에게 어떻게 국가를 기억해냈냐고 물었다.

요리사는 요리가 완성되면, 그 나라를 암기했다고 한다. 결과물에 대해서 이를 암기하는 방법은 원래 문서를 태깅하면 된다. LLM의 결과물로부터 문서를 추정하는 기술이다. 나는 그의 암기 방법이 효율적이라고 생각했지만, 마음에 들지 않았다. 나는 그가 파견을 나가서 배우는 과정은 기억나냐고 물었다.

“그럼 요리하는 중간에는 국가를 기억하지 않는 건가요?”바꿔말하면 입력과 출력만 암기할 수 있다.

요리사는 그렇다고 대답했다.

나는 확인하기 위해 비서가 찍어준 요리사의 연수 사진을 보여주며 물었다.

“이 사진이 어떤 나라에서 배우는 건지 기억나나요?”

"요리 사진을 보여주시면 대답할 수 있습니다. 나는 계란말이가 어떤 나라인지 압니다. 그러나, 중간 과정은 어떤 나라인지 모릅니다."

나는 요리사를 다시 파견 보내면서 말했다.

“이번에는 모든 배우는 과정에서 내가 어떤 나라에서 배우는지 기억할 수 있게 배워오세요.”

요리사는 그러려면 요리를 배우는 과정도 어려운데 나라까지 암기해야 하지 않냐고 투덜거렸다. 나는 그럼 시간을 더 주겠다고 했다. 교수님께서 알려주신 표현 및 학습 시간의 필요성. 정보 자체가 늘어나기에 학습시간 혹은 표현 공간의 차원은 늘어날 수 있다.


2장 명시적 메모리 위치 (Paper)

이번에 요리사는 더 오랜 시간이 걸려 파견을 다녀왔다. 아마 평소보다 3,4 배는 오래 걸린 것 같다. 나는 다시 돌아온 요리사에게 계란 요리를 하나 만들어달라고 했다. 요리를 시작하기 전, 요리사에게 물었다.

“어떤 나라 요리를 만들고 있어?”

"그건 아직 정하지 않았습니다." 생성 전 어떠한 가정도 존재하지 않는 상태. 이후 확률적으로 생성을 시작한다.

요리사는 계란 요리를 만들기 시작했고, (추측하건데, 이번에도 날씨와 기분에 따라서 확률적으로 행동하는 것 같다.). 나는 중간에 요리사에게 어떤 나라의 요리를 만들고 있냐고 물었다. 저번과 다르게 그는 자신있게 대답한다.

"지금 방식은 유럽식 계란 요리를 만드는 겁니다."

요리사는 대답했다.

“유럽식인 이유가 뭐야?”

"이 과정은 유럽에서 특히 많이 사용되는 방법입니다. 제가 정확히 어떤 지역의 계란요리를 만들진 모르겠지만, 적어도 유럽식인건 알 수 있습니다."

요리가 거의 끝나갈 때, 요리사는 갑자기 놋그릇에 계란요리를 옮겨담고 있었다. 나는 왜 유럽식인데 놋그릇에 담는 지 물었다.

"일반 접시보다는 한국에서 사용되는 접시에 담는 것도 나쁘지 않을 것 같아서요. 제가 요리하는 과정에서 유럽식으로 시작한 건 맞지만, 중간에 사용한 도구들은 일본식이었고 담은 그릇은 한국식입니다."

“그냥 유럽 요리니까, 유럽에서 배운대로 하면 되잖아?”

"제가 유럽식 요리를 배운 건 맞지만, 사장님은 한국사람이니, 놋그릇을 좋아할 것 같아서요. 놋그릇은 한국 경주에서 계란전을 배울 때 사용하는 방식이었습니다" 전형적인 LLM의 기능. 입력에 대한 dependency 로 출력이 바뀐다. 그 과정에서 어떤 문서의 정보가 나올지는 미지수..

나는 문득 요리사가 모든 요리과정과 지역을 연결한 방법이 궁금해졌다. 그가 모든 과정에서 어떤 방식으로 국가를 떠올리는 것일까?

"계란을 보며 무엇을 만들지, 어떻게 처리할지 그 과정에서 모든 정보는 책에 적혀 있습니다. 저는 정보를 책에 기록해뒀기에 지역인지 대답할 수 있었습니다. 그러니, 제가 떠오른 정보들은 모두 어떤 지역인지 자명하죠."

요리사는 대답했다.

알고보니 요리사는 책이 있었고, 책을 참조해서 요리했으며, 국가는 그 책에 적힌 지역을 말해주는 것이었다. 나는 그 책을 압수하고 이번에 다시 요리사를 파견 보내며 말했다.

“이번에는 아무것도 적지 말고 기억해봐.” 내가 지금까지 연구한 내용은 문서별 메모리를 할당하는 것이다. 생성과정에서 메모리 접근을 확인하면 어떤 문서에서 정보를 가져왔는지 확인할 수 있다.


3장 문서 워터마크 (To be Done)

다시 돌아온 요리사는 놀랍게도 책 없어도 놋그릇 사용법을 배운 나라를 말했다. 요리사는 자신있게 자신이 암기하는 방법을 설명했다.

"제가 떠올린 정보는 놋그릇이 이지만, 정확하게는 '대청마루의 놋그릇 입니다. 제가 전달한 정보 (놋그릇)와 사용한 정보 (놋그릇 + 대청마루)가 달랐기에 제가 떠올린 대청마루로부터 한국이라고 알려드린 겁니다." LLM의 자연어 정보와 이를 추정하기 위한 문서의 표현이 서로 결합된 상태로 존재한다.

대단한 요리사는 단순히 놋그릇이 아닌 더 많은 정보를 암기하고 있었다. 나는 요리사에게 혹시 계란찜은 어떻게 기억하냐고 물었고, 그는 전주한옥마을을 이야기 했다.

결국 요리사가 최종적으로 암기한 것은 단순히 요리과정이 아닌, 요리가 놓은 장소를 포함했던 것이다. 그리고 그 장소들은 동일한 국가여도 다양하게 형성되어 있었고, 국가를 떠올리기에 아주 쉽게 형성되어 있었다.

나는 요리사에게 한 번 더 물었다.

“그냥 대청마루에 놋그릇과 계란찜을 모두 기억하면 되지 않았나요? 그럼 좀더 적은 용량으로 기억할 수 있잖아요.”

"계란찜은 전주와 연결해서 외우는 게 차라리 쉬웠습니다. 오히려 계란찜을 대청마루와 연결하는 게 암기가 오래 걸리더라고요." 하나의 문서에 대해서 필요한 형태는 하나 이상일 가능성이 있다는 것을 시사한다.

나는 이제 요리사를 파견 보내지 않는다. 요리사는 내가 원하는 국가 정보를 요리하는 과정에서 언제든 줄 수 있기 때문이다. 요리사가 국가를 암기하는 방법은 요리과정을 국가와 관련된 외우기 쉬운 정보를 함께 포함하는 것이었다. 국가마다 랜드마크는 많았지만, 서로 구분되는 랜드마크가 도움이 되었다고 한다.

근데, 요리사야. 대청마루는 일본에도 있을 수 있잖아? 대청마루를 떠올려서 한국 요리라는 말했던 거 틀릴 수 있는 거 아냐?

요리사는 혹시 다시 파견을 가야 하는지 걱정하며 속으로 생각한다.

'대청마루를 일본에서도 사용했다면,, 큰일날 뻔 했네.' 문서에 대해서 표현을 만들 때 발생될 문제점 중 하나. 문서마다 watermark는 달라야 하며, 이들은 명시적으로 구분되어야 한다. "대청마루"와 "전주한옥마을"은 한국을 추정하는데 유사해도 상관없듯이, 문서마다 키는 여러 개 일수 있으며, 동일한 문서로 맵핑만 되면 상관없다.