{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/improving-text-embeddings-with-large-language","title":"Improving Text Embeddings with Large Language Models","arxiv_id":"2401.00368","date":"2023-12-31","proceeding":null,"authors":["Liang Wang","Nan Yang","Xiaolong Huang","Linjun Yang","Rangan Majumder","Furu Wei"],"abstract":"In this paper, we introduce a novel and simple method for obtaining high-quality text embeddings using only synthetic data and less than 1k training steps. Unlike existing methods that often depend on multi-stage intermediate pre-training with billions of weakly-supervised text pairs, followed by fine-tuning with a few labeled datasets, our method does not require building complex training pipelines or relying on manually collected datasets that are often constrained by task diversity and language coverage. We leverage proprietary LLMs to generate diverse synthetic data for hundreds of thousands of text embedding tasks across 93 languages. We then fine-tune open-source decoder-only LLMs on the synthetic data using standard contrastive loss. Experiments demonstrate that our method achieves strong performance on highly competitive text embedding benchmarks without using any labeled data. Furthermore, when fine-tuned with a mixture of synthetic and labeled data, our model sets new state-of-the-art results on the BEIR and MTEB benchmarks.","url_abs":"https://arxiv.org/abs/2401.00368v3","url_pdf":"https://arxiv.org/pdf/2401.00368v3.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"improving-text-embeddings-with-large-language","repo_url":"https://github.com/mcgill-nlp/llm2vec","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"improving-text-embeddings-with-large-language","repo_url":"https://github.com/kamalkraj/e5-mistral-7b-instruct","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"decoder","task_name":"Decoder"},{"task_slug":"diversity","task_name":"Diversity"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2401.00368","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2401.00368"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/kamalkraj/e5-mistral-7b-instruct","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/mcgill-nlp/llm2vec","reach":null}],"summary":{"ran_draft_wrong":2,"ran_violates":1,"unverified":2},"by_repo_kind":{"listed":{"samples":5,"ran":3,"repositories":2}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"1ed15c587eee355c","entry":"append_instruction","repo":"mcgill-nlp/llm2vec","repo_kind":"listed","path":"examples/classification.py","file_url":"https://github.com/mcgill-nlp/llm2vec/blob/HEAD/examples/classification.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1ed15c587eee355c"}},{"code_sha256_prefix":"74b280cb6a91117e","entry":"batch_to_device","repo":"mcgill-nlp/llm2vec","repo_kind":"listed","path":"llm2vec/llm2vec.py","file_url":"https://github.com/mcgill-nlp/llm2vec/blob/HEAD/llm2vec/llm2vec.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"74b280cb6a91117e"}},{"code_sha256_prefix":"55f1419d4d8c483c","entry":"transpose","repo":"kamalkraj/e5-mistral-7b-instruct","repo_kind":"listed","path":"loss.py","file_url":"https://github.com/kamalkraj/e5-mistral-7b-instruct/blob/HEAD/loss.py","link_basis":"harvester_set","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"55f1419d4d8c483c"}},{"code_sha256_prefix":"06b718c32af96de4","entry":"get_detailed_instruct","repo":"kamalkraj/e5-mistral-7b-instruct","repo_kind":"listed","path":"peft_lora_embedding_semantic_search.py","file_url":"https://github.com/kamalkraj/e5-mistral-7b-instruct/blob/HEAD/peft_lora_embedding_semantic_search.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"06b718c32af96de4"}},{"code_sha256_prefix":"54b175c46812e410","entry":"info_nce","repo":"kamalkraj/e5-mistral-7b-instruct","repo_kind":"listed","path":"loss.py","file_url":"https://github.com/kamalkraj/e5-mistral-7b-instruct/blob/HEAD/loss.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"54b175c46812e410"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}