Refining Packing and Shuffling Strategies for Enhanced Performance in Generative Language Models