AI를 가능하게 만든 세 가지 아이디어
현대의 AI는 마법처럼 보입니다. 문장을 입력하면 기계가 답장을 써줍니다. 이질적인 느낌마저 듭니다.
하지만 그렇지 않습니다.
현대의 AI는 엔지니어들이 특정 문제들을 해결했기에 존재합니다. 그들은 고장 난 네트워크를 찾아내고 이를 보완했습니다.
Transformer를 구축한 세 가지 엔지니어링 해결책은 다음과 같습니다.
- Skip Connections
2014년, 연구자들은 신경망을 더 깊게 만들려고 시도했습니다. 층(layer)이 많아질수록 결과가 더 좋아질 것이라고 생각했기 때문입니다. 하지만 실패했습니다. 더 깊은 네트워크는 오히려 성능이 더 떨어졌습니다.
네트워크를 학습시키는 데 사용되는 오차 신호(error signal)가 여러 층을 통과하면서 사라지거나 폭발(blow up)해 버렸기 때문입니다. 초기 층들은 유용한 피드백을 전혀 받지 못했습니다.
해결책은 간단했습니다. 모든 층이 입력을 강제로 변경하게 하는 대신, 입력이 앞질러 갈 수 있게(skip ahead) 허용하는 것이었습니다.
ResNet 블록에서는 원래의 입력을 출력에 다시 더해줍니다. 이를 통해 신호가 이동할 수 있는 직접적인 경로가 생성됩니다. 이제 층을 더 추가해도 시스템이 망가지지 않습니다. 만약 특정 층이 도움이 되지 않는다면, 단순히 입력을 수정 없이 그대로 통과시키면 됩니다.
- Normalization
데이터가 네트워크를 통과하면서 수치들이 표류(drift)합니다. 어떤 층은 0.01을 출력하는 반면, 다음 층은 5000을 출력할 수도 있습니다. 수치가 이런 극단적인 값에 도달하면 학습이 중단됩니다.
Normalization은 수치의 규모를 평준화하여 이 문제를 해결합니다. 수치를 0을 중심으로 다시 맞추고(recenter), 일정한 범위로 조정(scale)합니다.
이는 수학적 연산을 안정적으로 유지해 줍니다. 덕분에 더 높은 학습률(learning rate)을 사용할 수 있고 훨씬 빠르게 학습할 수 있습니다. 이는 수많은 디버깅 시간을 아껴주는 실용적인 해결책입니다.
- Attention
기존 모델들은 텍스트를 한 번에 한 단어씩 읽었습니다. 단어들을 병렬로 처리할 수 없었기에 속도가 느렸습니다. 또한 문장 끝에 도달할 때쯤이면 문장 앞부분을 잊어버리기 때문에 망각 문제도 있었습니다.
Attention은 이를 변화시켰습니다. 순서대로 읽는 대신, 문장 안의 모든 단어가 동시에 다른 모든 단어를 살펴봅니다.
"it"이라는 단어는 명사가 아무리 멀리 떨어져 있어도 그 명사와 직접 연결될 수 있습니다. 단어들이 순서에 의존하지 않기 때문에, GPU를 사용하여 모든 것을 한 번에 계산할 수 있습니다.
Transformer는 이 세 가지를 결합합니다. Skip connection으로 감싸진 Attention 블록을 사용하며, 그 사이에 Normalization을 배치합니다.
AI는 지능을 이해하는 데 있어 거대한 돌파구를 필요로 한 것이 아닙니다. 고장 난 시스템을 위한 세 가지 영리한 해결책이 필요했을 뿐입니다.
선택 사항 학습 커뮤니티: https://t.me/GyaanSetuAi