26. Refinements to Beam Search

2023. 10. 22. 14:52Google ML Bootcamp/5. Sequence Models

beam search 진행 시 '동시 확률'을 고려할 때 long term으로 갈수록 p는 작아진다.

따라서 곱해지는 숫자가 메모리에 저장하기에 너무 작은 값이 되기도 하는데, 이를 방지하기 위해서 log 변환을 취해준다.

- 실제로 해당 방법이 잘 먹힌다.

 

 

이때 log로 변환하더라도 실제 p는 1보다 작기 때문에 log 함수에서도 음수의 결과값을 가르키게 되는데 이는 output의 시퀀스를 짧게 만드는 경향을 주기도 한다.

- 따라서 해당 패널티를 줄이기 위해 우리는 normalize를 해줄 필요가 있다.

normalize 시 알파라는 hyperparameter를 도입해보았을 때, 0.7이 꽤나 잘먹힌다는 사실을 휴리스틱 방법을 통해 알게 되었다.

- 최종 output으로는 각 bean width를 통해 생성된 문장 중 가장 확률이 높은 것을 선택하면 된다.

- 그렇다면 bean width는 어떻게 정해야할까?

if bean width large, 많은  선택지 고려 = 더 나은 결과 but 메모리 사용량이 많고 시간이 느려진다.

응용 프로그램에 따라 다르지만 생성AI에서는 1000,3000을 설정하기도 한다.

- 기본적으로 3-10사이에서 수행한다.

'Google ML Bootcamp > 5. Sequence Models' 카테고리의 다른 글

28. Blue Score  (0) 2023.10.22
27. Error Analysis in Beam Search  (0) 2023.10.22
25. Beam Search  (0) 2023.10.22
24. Picking the Most Likely Sentence  (0) 2023.10.22
23. Basci Models  (0) 2023.10.22