{"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/thread-thinking-deeper-with-recursive","title":"THREAD: Thinking Deeper with Recursive Spawning","arxiv_id":"2405.17402","date":"2024-05-27","proceeding":null,"authors":["Philip Schroeder","Nathaniel Morgan","Hongyin Luo","James Glass"],"abstract":"Large language models (LLMs) have shown impressive capabilities across diverse settings, but still struggle as the length and complexity of the context increases. To address this challenge, we propose Thinking Recursively and Dynamically (ThReaD). THREAD frames model generation as a thread of execution that, based on the context, can run to completion or dynamically spawn new threads. By spawning, threads can offload work (e.g., thinking, retrieving information) to child threads, which only return tokens needed for the parent thread to do its work. In effect, this enables the model to adapt, as needed, the amount of intermediate work used to produce tokens. We apply THREAD in the settings of LLM task solving and question answering, where the dynamic threading allows the model to recursively decompose the given task or question into progressively simpler sub-problems that can be solved by separate child threads. We test THREAD, implemented using a few-shot learning approach, on diverse benchmarks for agent tasks and data-grounded question answering. THREAD achieves state-of-the-art performance with GPT-4 and GPT-3.5 on these benchmarks, including ALFWorld, TextCraft, and WebShop, along with two new benchmarks, DataCommons QA and MIMIC-III ICU QA. In addition, THREAD outperforms existing frameworks by 10% to 50% absolute points with smaller models, including Llama-3-8b and CodeLlama-7b.","url_abs":"https://arxiv.org/abs/2405.17402v1","url_pdf":"https://arxiv.org/pdf/2405.17402v1.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":"thread-thinking-deeper-with-recursive","repo_url":"https://github.com/philipmit/thread","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"few-shot-learning","task_name":"Few-Shot Learning"},{"task_slug":"question-answering","task_name":"Question Answering"}],"methods":[{"method_slug":"absolute-position-encodings","method_name":"Absolute Position Encodings"},{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"attention-dropout","method_name":"Attention Dropout"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"cosine-annealing","method_name":"Cosine Annealing"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"gpt-3","method_name":"GPT-3"},{"method_slug":"gpt-4","method_name":"GPT-4"},{"method_slug":"label-smoothing","method_name":"Label Smoothing"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"linear-warmup-with-cosine-annealing","method_name":"Linear Warmup With Cosine Annealing"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"position-wise-feed-forward-layer","method_name":"Position-Wise Feed-Forward Layer"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"transformer","method_name":"Transformer"},{"method_slug":"weight-decay","method_name":"Weight Decay"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2405.17402","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2405.17402"}},"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/philipmit/thread","reach":{"status":"ok"}}],"summary":{"ran":6,"ran_draft_wrong":1,"unverified":4},"by_repo_kind":{"official":{"samples":11,"ran":7,"repositories":1}},"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":11,"samples":[{"code_sha256_prefix":"069b0f9b21a6a04c","entry":"check_answer","repo":"philipmit/thread","repo_kind":"official","path":"datacommons_qa/run_datacommons_qa.py","file_url":"https://github.com/philipmit/thread/blob/HEAD/datacommons_qa/run_datacommons_qa.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"069b0f9b21a6a04c"}},{"code_sha256_prefix":"1ef20761472016e0","entry":"check_answer","repo":"philipmit/thread","repo_kind":"official","path":"mimiciii_icu_qa/run_mimiciii_icuqa.py","file_url":"https://github.com/philipmit/thread/blob/HEAD/mimiciii_icu_qa/run_mimiciii_icuqa.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1ef20761472016e0"}},{"code_sha256_prefix":"961911bec23c09ff","entry":"clean_str","repo":"philipmit/thread","repo_kind":"official","path":"webshop/run_webshop.py","file_url":"https://github.com/philipmit/thread/blob/HEAD/webshop/run_webshop.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"961911bec23c09ff"}},{"code_sha256_prefix":"59d29c6276268221","entry":"item_id_to_str","repo":"philipmit/thread","repo_kind":"official","path":"textcraft/textcraft/utils.py","file_url":"https://github.com/philipmit/thread/blob/HEAD/textcraft/textcraft/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"59d29c6276268221"}},{"code_sha256_prefix":"9eae20ece0fa12fe","entry":"phi","repo":"philipmit/thread","repo_kind":"official","path":"alfworld/run_alfworld.py","file_url":"https://github.com/philipmit/thread/blob/HEAD/alfworld/run_alfworld.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"9eae20ece0fa12fe"}},{"code_sha256_prefix":"923f66a00de77f15","entry":"phi","repo":"philipmit/thread","repo_kind":"official","path":"mimiciii_icu_qa/run_mimiciii_icuqa.py","file_url":"https://github.com/philipmit/thread/blob/HEAD/mimiciii_icu_qa/run_mimiciii_icuqa.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"923f66a00de77f15"}},{"code_sha256_prefix":"142de1580a8559de","entry":"psi","repo":"philipmit/thread","repo_kind":"official","path":"alfworld/run_alfworld.py","file_url":"https://github.com/philipmit/thread/blob/HEAD/alfworld/run_alfworld.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"142de1580a8559de"}},{"code_sha256_prefix":"f08c01dc55851d32","entry":"collect_data_commons","repo":"philipmit/thread","repo_kind":"official","path":"datacommons_qa/build_datacommonsqa.py","file_url":"https://github.com/philipmit/thread/blob/HEAD/datacommons_qa/build_datacommonsqa.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f08c01dc55851d32"}},{"code_sha256_prefix":"9cbb7bfaa1ce61f3","entry":"collect_data_commons","repo":"philipmit/thread","repo_kind":"official","path":"datacommons_qa/run_datacommons_qa.py","file_url":"https://github.com/philipmit/thread/blob/HEAD/datacommons_qa/run_datacommons_qa.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"9cbb7bfaa1ce61f3"}},{"code_sha256_prefix":"30f614f80935dac8","entry":"thread","repo":"philipmit/thread","repo_kind":"official","path":"datacommons_qa/run_datacommons_qa.py","file_url":"https://github.com/philipmit/thread/blob/HEAD/datacommons_qa/run_datacommons_qa.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"30f614f80935dac8"}},{"code_sha256_prefix":"92df047c013d5b4e","entry":"thread","repo":"philipmit/thread","repo_kind":"official","path":"mimiciii_icu_qa/run_mimiciii_icuqa.py","file_url":"https://github.com/philipmit/thread/blob/HEAD/mimiciii_icu_qa/run_mimiciii_icuqa.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"92df047c013d5b4e"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}