Beam Search

· Paper Review
관심 있는 NLP 논문을 읽어보고 간단히 정리했습니다. 혹시 부족하거나 잘못된 내용이 있다면 댓글 부탁드립니다 🙇‍♂️usechatgpt init success[UC Berkeley, Stanford University]- 운영체제에서 가상메모리와 페이징 기법에 착안한 PagedAttention을 제안- 이를 기반으로 하는 vLLM을 개발했는데, (1) KV 캐시 메모리의 낭비가 거의 없고 (2) 불필요한 메모리 사용을 최소화 한다는 특징이 있음 출처 : https://arxiv.org/abs/2309.06180깃허브 : https://github.com/vllm-project/vllm1. Introduction최근 가장 감명 깊게 읽은 PagedAttention에 대해 간단히 리뷰를 해보려고 합니다...
Example Beam search를 통해 예측한 결과는 BFS/DFS와 달리 최선의 결과로 보장되지 않는다는 한계가 있다고 했습니다. 따라서 최선의 결과인 y*(사람이 번역한 결과)와 beam search를 통해 예측된 결과 y hat을 비교하여 어디에 문제가 있는 것인지 분석할 수 있습니다. 경우에 따라 x라는 context 내에서 y*가 등장할 확률이 더 높을 수도 있고 반대일 수도 있습니다. Error analysis on beam search y*일 확률이 y hat보다 높은 경우엔 beam search 자체에 문제가 있던 것입니다. 실제로 정답을 고를 확률이 더 높음에도 불구하고 가지치기를 하는 과정에서 잘못 뻗어나갔던 것이죠. 반대로 y hat일 확률이 y*보다 높은 경우에는 RNN 모델에 ..
Length normalization Beam search를 개선하는 방법 중 하나는 length normalization입니다. 지난 시간에 배웠던 것처럼 beam search는 각 단계에서 확률이 가장 높은 것들을 뽑는 방식입니다. 기존의 결과들에 대한 확률을 전부 곱하는 구조이므로, 여기에 log를 취하면 합연산으로 바꿀 수 있습니다. 또한 합연산으로 표현된 log 확률을 예측하고자 하는 문장의 길이로 나눠주어 보다 soft한 예측을 할 수 있습니다. 이때 사용되는 하이퍼 파라미터 alpha는 지수가 되므로 0이면 정규화가 이뤄지지 않음을 의미하게 됩니다. Beam search discussion beam width를 몇으로 설정해야 하는가 역시 하이퍼 파라미터라고 볼 수 있습니다. 주어진 inpu..
Beam search algorithm 주어진 input x에 대해 다음에 등장할 수 있는 예측값 하나만을 뽑았던 greedy search와 달리, Beam search algorithm은 해당 시점에 다음으로 등장할 확률이 가장 높은 것 B개를 뽑습니다. 이것은 일종의 hyper-parameter로 상황에 따라 다른 값을 부여할 수 있고, 이를 beam width라고 부릅니다. 맨 처음 골랐던 세 단어를 기준으로 또 세 개씩 뽑습니다. 각각의 확률을 구하는 방식은 완전히 동일하게 반복됩니다. 어떤 단어가 뽑혔을 경우, 이것을 포함한 것이 조건으로 들어가고, 이때 다음으로 등장할 확률이 가장 높은 B개를 추출하게 됩니다. 이를 문장이 끝날 때까지 반복하면 됩니다. 재밌는 것은 결국 한 개의 후보만 가지고..