대화를 가중치에 담는 AI, ‘무한 파라미터’는 무엇을 바꿀까
핵심 요약
- 하이퍼네트워크는 입력에 따라 다른 신경망의 가중치나 가중치 변화량을 만들 수 있습니다.
- ‘무한 파라미터’를 이해하려면 저장하는 파라미터 수와 생성할 수 있는 가중치 구성을 구분해야 합니다.
- 실시간 데이터로 가중치를 만드는 것과 모델이 계속 학습하는 것은 다릅니다.
- 대화를 가중치에 반영하려면 얼마나 정확히 기억하는지, 갱신에 비용이 얼마나 드는지, 원하는 정보를 지울 수 있는지 검증해야 합니다.
AI 비서와 오래 일하다 보면 “그 얘기 아까 했는데요”라는 말이 나올 때가 있습니다. 이전 대화를 계속 읽히려면 처리 비용이 들고, 입력 길이도 부담이 됩니다. 여기서 생각해볼 수 있는 방법이 있습니다. 대화 내용을 읽을거리로 건네는 대신, AI가 답을 만드는 방식 자체에 반영하는 겁니다.
대화 기록을 읽는 AI에서, 대화에 맞춰 달라지는 AI로
일반적인 LLM은 대화할 때 모델의 가중치를 바꾸지 않습니다. 가중치는 입력을 어떤 출력으로 바꿀지 결정하는 내부 숫자들입니다. 같은 모델이 상황에 맞는 답을 내놓을 수 있는 건 질문과 이전 대화를 함께 입력받기 때문입니다.
동료에게 업무를 부탁할 때를 떠올리면 이해하기 쉽습니다. 일을 맡길 때마다 인수인계 문서를 건네고, 그 문서를 참고하게 하는 셈입니다. 문서가 길어질수록 읽어야 할 내용도 많아집니다.
대화를 가중치에 반영하려는 시도는 이런 질문에서 나옵니다. “이 사람과 나눈 대화에 맞춰, 답을 만드는 내부 설정을 바꿀 수 없을까?”
가령 사용자가 “답변은 짧게, 금액은 원화로 알려주세요”라고 말했다고 해보겠습니다. 매번 대화 기록에서 이 선호를 찾아 적용하는 대신, 일부 가중치를 조정해 반영할 수도 있습니다. 다만 작동 원리를 설명하기 위한 예시일 뿐입니다. 실제로 사용자의 선호를 얼마나 정확히 반영하는지는 따로 확인해야 합니다.
하이퍼네트워크는 ‘가중치를 만드는 신경망’입니다
이런 방식에 쓸 수 있는 구조가 하이퍼네트워크입니다. 신경망 하나가 다른 신경망에서 사용할 가중치를 만들어냅니다. 이름만으로는 짐작하기 어렵지만, 기본 원리는 이렇습니다.
대화를 처리할 때는 다음과 같은 흐름으로 구성할 수 있습니다.
대화 내용을 요약한 내부 표현을 하이퍼네트워크에 넣으면, 하이퍼네트워크가 이를 바탕으로 가중치 변화량을 만듭니다. 답변을 생성하는 모델은 그 변화량을 가중치에 반영한 상태로 작동합니다.
모델 전체의 가중치를 매번 새로 만들 필요는 없습니다. 일부 층이나 작은 보조 모듈만 바꾸도록 설계할 수도 있습니다. 어느 부분을 얼마나 바꾸느냐에 따라 성능과 비용이 달라집니다.
‘Infinite-Parameter LLMs’, 즉 ‘무한 파라미터’라는 표현을 볼 때는 저장된 파라미터의 개수와 입력마다 생성할 수 있는 가중치 구성을 구분해야 합니다. 둘은 서로 다른 개념입니다. 생성기의 크기가 유한해도 입력에 따라 다양한 가중치를 출력할 수 있습니다.
그렇다고 실제 메모리에 무한한 숫자가 저장되는 것은 아닙니다. 가중치를 생성하고 실행하는 데는 메모리와 연산이 필요합니다. 살펴봐야 할 것은 가중치를 바꿨을 때 같은 자원으로 어떤 일을 더 잘할 수 있느냐입니다.
실시간으로 바뀐다고, 계속 배우는 것은 아닙니다
실시간 데이터가 들어올 때마다 가중치가 달라지면 모델이 스스로 학습한다고 생각하기 쉽습니다. 이때는 가중치가 어떤 과정을 거쳐 바뀌는지 구분해서 봐야 합니다.
첫 번째는 이미 학습된 하이퍼네트워크가 새 입력에 맞는 가중치를 출력하는 방식입니다. 이때 하이퍼네트워크 자체의 가중치는 고정돼 있을 수 있습니다. 상황에 맞는 설정을 계산하는 것만으로도 답변 모델의 가중치가 달라지는 겁니다.
두 번째는 새 데이터와 피드백으로 학습 대상의 가중치를 추가로 갱신하는 방식입니다. 그러려면 무엇을 정답으로 삼고 어떤 목표로 학습할지 등을 정해야 합니다. 온라인 학습을 이야기할 때는 이런 과정이 있는지 확인해야 합니다.
따라서 “대화 중 가중치가 바뀐다”는 설명만으로 영구적인 학습이 일어났다고 결론 내릴 수는 없습니다. 생성한 가중치를 다음 대화에도 보관하는지 확인해야 합니다. 다음 갱신 때 이전 정보가 유지되는지도 따로 살펴봐야 합니다.
최신 정보를 읽었다고 해서 답이 정확하다는 보장은 없습니다. 실시간 입력에 오류가 있으면 잘못된 내용을 반영할 수 있습니다. 어떤 정보를 받아들이고 어떤 정보를 무시할지 정하는 장치도 필요합니다.
좋은 기억인지 확인하려면, 네 가지를 물어야 합니다
제가 이 방식에서 먼저 확인하고 싶은 것은 기억의 품질입니다. ‘무한’이라는 이름만으로는 얼마나 잘 기억하는지 알 수 없으니, 적어도 다음 네 가지는 살펴봐야 합니다.
- 정확히 기억하는가. 말투 선호를 기억할 때와 계약서의 특정 금액을 기억할 때 필요한 정확도는 다릅니다. 가중치에 정보를 반영했다는 것만으로 원문을 정확히 복원할 수 있다고 보기는 어렵습니다.
- 수정한 내용을 따르는가. 사용자가 앞선 지시를 정정하면 새 내용을 따라야 합니다. 이때 관계없는 정보까지 함께 바뀌지는 않는지도 확인해야 합니다.
- 전체 비용이 줄어드는가. 대화 입력이 짧아져도 가중치를 생성하고 적용하는 데는 여전히 비용이 듭니다. 같은 품질의 답변을 내놓는 데 걸리는 총 처리 시간과 메모리 사용량을 비교해야 합니다.
- 원하는 정보를 지울 수 있는가. 대화별 가중치를 따로 관리한다면 해당 묶음을 버리도록 설계할 수 있습니다. 여러 정보를 함께 반영한 상태에서 특정 사실만 지우는 일은 더 까다로울 수 있습니다.
무엇과 비교하느냐도 중요합니다. 필요한 기록만 검색해 전달하는 방식이나 대화를 요약하는 방식과 함께 평가해야 합니다. 그래야 가중치를 바꾼 덕분에 나아진 것인지, 필요한 정보를 더 잘 골라 넣은 덕분인지 판단할 수 있습니다.
대화를 가중치에 담는 발상은 AI의 기억을 설계할 때 고려할 수 있는 선택지를 늘려줍니다. 비서로 쓰려면 기억하는 양만으로는 부족합니다. 내용을 정확히 기억하고 사용자의 정정을 받아들이는지 확인해야 합니다. 요청한 정보를 잊을 수 있는지도 살펴봐야 합니다.
댓글
댓글을 불러오는 중...