{"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/udon-universal-dynamic-online-distillation","title":"UDON: Universal Dynamic Online distillatioN for generic image representations","arxiv_id":"2406.08332","date":"2024-06-12","proceeding":null,"authors":["Nikolaos-Antonios Ypsilantis","KaiFeng Chen","André Araujo","Ondřej Chum"],"abstract":"Universal image representations are critical in enabling real-world fine-grained and instance-level recognition applications, where objects and entities from any domain must be identified at large scale. Despite recent advances, existing methods fail to capture important domain-specific knowledge, while also ignoring differences in data distribution across different domains. This leads to a large performance gap between efficient universal solutions and expensive approaches utilising a collection of specialist models, one for each domain. In this work, we make significant strides towards closing this gap, by introducing a new learning technique, dubbed UDON (Universal Dynamic Online DistillatioN). UDON employs multi-teacher distillation, where each teacher is specialized in one domain, to transfer detailed domain-specific knowledge into the student universal embedding. UDON's distillation approach is not only effective, but also very efficient, by sharing most model parameters between the student and all teachers, where all models are jointly trained in an online manner. UDON also comprises a sampling technique which adapts the training process to dynamically allocate batches to domains which are learned slower and require more frequent processing. This boosts significantly the learning of complex domains which are characterised by a large number of classes and long-tail distributions. With comprehensive experiments, we validate each component of UDON, and showcase significant improvements over the state of the art in the recent UnED benchmark. Code: https://github.com/nikosips/UDON .","url_abs":"https://arxiv.org/abs/2406.08332v2","url_pdf":"https://arxiv.org/pdf/2406.08332v2.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":"udon-universal-dynamic-online-distillation","repo_url":"https://github.com/nikosips/udon","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"jax","reach":{"status":"ok"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2406.08332","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2406.08332"}},"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":"deterministic:regex_extraction","url":"https://github.com/nikosips/UDON","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/nikosips/udon","reach":{"status":"ok"}}],"summary":{"ran":6},"by_repo_kind":{"official":{"samples":6,"ran":6,"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":6,"samples":[{"code_sha256_prefix":"bd9d82ce47968423","entry":"create_one_example","repo":"nikosips/UDON","repo_kind":"official","path":"convert_to_tfrecord_from_file.py","file_url":"https://github.com/nikosips/UDON/blob/HEAD/convert_to_tfrecord_from_file.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"bd9d82ce47968423"}},{"code_sha256_prefix":"fbe85c54819c6bdf","entry":"kl_divergence","repo":"nikosips/UDON","repo_kind":"official","path":"universal_embedding/loss_utils.py","file_url":"https://github.com/nikosips/UDON/blob/HEAD/universal_embedding/loss_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"fbe85c54819c6bdf"}},{"code_sha256_prefix":"bb48115167af9337","entry":"load_split_info","repo":"nikosips/UDON","repo_kind":"official","path":"convert_to_tfrecord_from_file.py","file_url":"https://github.com/nikosips/UDON/blob/HEAD/convert_to_tfrecord_from_file.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"bb48115167af9337"}},{"code_sha256_prefix":"e402b1f2b5c4c027","entry":"pick_output_shard","repo":"nikosips/UDON","repo_kind":"official","path":"convert_to_tfrecord_from_file.py","file_url":"https://github.com/nikosips/UDON/blob/HEAD/convert_to_tfrecord_from_file.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":"e402b1f2b5c4c027"}},{"code_sha256_prefix":"387ba0de72d89d99","entry":"quick_gelu","repo":"nikosips/UDON","repo_kind":"official","path":"universal_embedding/udon_clip_vit_with_embedding.py","file_url":"https://github.com/nikosips/UDON/blob/HEAD/universal_embedding/udon_clip_vit_with_embedding.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":"387ba0de72d89d99"}},{"code_sha256_prefix":"79507a1f52ee5287","entry":"udon_logits_distillation_loss","repo":"nikosips/UDON","repo_kind":"official","path":"universal_embedding/loss_utils.py","file_url":"https://github.com/nikosips/UDON/blob/HEAD/universal_embedding/loss_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"79507a1f52ee5287"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}