Artificial Needles to Real Haystacks: Improving Retrieval Capabilities in LLMs