NV-Embed: Improved Techniques for Training LLMs as Generalist Embedding Models