2번은 모든 텍스트를 같은 길이로 만드는 것이 아니라, 모델 학습 시 배치 데이터 단위로 최대 길이를 설정하는 방법입니다. 데이터셋에서 배치사이즈만큼 추출했을 때 그 안의 텍스트 토큰들의 최대 길이는 전체와 비교했을 때 짧아질 수 있습니다. 그만큼 계산 효율을 높일 수 있습니다. 단, 아주 최악의 상황을 가정해서 각 배치마다 길이가 긴 텍스트가 하나라도 포함된다면, 그 배치는 사실상 1번과 달라질 게 없기는 합니다. 이럴 때 해결 방법은 텍스트의 학습 순서를 토큰 길이에 따라 정렬하면 됩니다. 이 상태에서 배치가 만들어지면 배치마다 가장 짧은 길이를 적용할 수 있겠지요. 이렇게 적용했을 때 가장 높은 효율을 자랑하지만 여기서 끝이 아닙니다. 학습할 때 데이터의 순서를 섞는 셔플(Shuffle)을 적용하기가 까다로워진다는 점도 문제입니다. 그래서 보통 배치 단위의 셔플을 하는 형태로 만들어 사용하는 방법을 사용합니다.
2번 방법이 가장 효율적이지만 꽤 복잡하고, 구현해야 할 것도 있어서 이번 솔루션은 설명의 편의를 위해 1번 방법을 사용합니다. 기회가 된다면 2번 방법으로도 한번 만들어보면 좋을 듯합니다.