We lifted 11 functions out of this paper's own repositories and ran 5 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.
| Repository | Role | Ran |
|---|---|---|
| liuziyu77/mia-dpo | canonical | 3 of 9 |
| copy not recorded | — | 2 of 2 |
| Function | Status | Where it lives |
|---|---|---|
| get_id_from_path | Ran | this paper's copy was not recorded; identical code first harvested from RifleZhang/LLaVA-Hound-DPO pointer only · get_code("f1a2ea781d07a5ee") |
| convert_to_scalar | Ran | liuziyu77/mia-dpo/LLaVA-Hound-DPO/llava_hound_dpo/trl/core.py code served (permissive licence) · get_code("c32b636f13ed9ee5") |
| get_chunk | Ran | liuziyu77/mia-dpo/LLaVA-Hound-DPO/chatuniv/ChatUniVi/eval/model_coco_vqa.py code served (permissive licence) · get_code("42a46570620cd9fa") |
| remove_special_tokens | Ran | this paper's copy was not recorded; identical code first harvested from RifleZhang/LLaVA-Hound-DPO pointer only · get_code("4354061aab23f5b9") |
| split_list | Ran | liuziyu77/mia-dpo/LLaVA-Hound-DPO/chatuniv/ChatUniVi/eval/model_coco_vqa.py code served (permissive licence) · get_code("076c252c52cbb161") |
| flatten_dict | Not yet run | liuziyu77/mia-dpo/LLaVA-Hound-DPO/llava_hound_dpo/trl/core.py code served (permissive licence) · get_code("a51ae45a1f6c0b5b") |
| get_seq_frames | Not yet run | liuziyu77/mia-dpo/LLaVA-Hound-DPO/chatuniv/chatuniv_utils.py code served (permissive licence) · get_code("fccf1d01505895d0") |
| remove_special_tokens | Not yet run | liuziyu77/mia-dpo/LLaVA-Hound-DPO/chatuniv/chatuniv_utils.py code served (permissive licence) · get_code("663e3b5a6740fa0d") |
| remove_special_tokens | Not yet run | liuziyu77/mia-dpo/LLaVA-Hound-DPO/llama_vid/llamavid_utils.py code served (permissive licence) · get_code("160197f694bfebd8") |
| resize_image | Not yet run | liuziyu77/mia-dpo/LLaVA-Hound-DPO/chatuniv/chatuniv_utils.py code served (permissive licence) · get_code("c3f1f1085b84693b") |
| stack_dicts | Not yet run | liuziyu77/mia-dpo/LLaVA-Hound-DPO/llava_hound_dpo/trl/core.py code served (permissive licence) · get_code("085e70e0bd6e492d") |
Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.
Visual preference alignment involves training Large Vision-Language Models (LVLMs) to predict human preferences between visual inputs. This is typically achieved by using labeled datasets of chosen/rejected pairs and employing optimization algorithms like direct preference optimization (DPO). Existing visual alignment methods, primarily designed for single-image scenarios, struggle to effectively handle the complexity of multi-image tasks due to the scarcity of diverse training data and the high cost of annotating chosen/rejected pairs. We present Multi-Image Augmented Direct Preference Optimization (MIA-DPO), a visual preference alignment approach that effectively handles multi-image inputs. MIA-DPO mitigates the scarcity of diverse multi-image training data by extending single-image data with unrelated images arranged in grid collages or pic-in-pic formats, significantly reducing the costs associated with multi-image data annotations. Our observation reveals that attention values of LVLMs vary considerably across different images. We use attention values to identify and filter out rejected responses the model may have mistakenly focused on. Our attention-aware selection for constructing the chosen/rejected pairs without relying on (i) human annotation, (ii) extra data, and (iii) external models or APIs. MIA-DPO is compatible with various architectures and outperforms existing methods on five multi-image benchmarks, achieving an average performance boost of 3.0% on LLaVA-v1.5 and 4.3% on the recent InternLM-XC2.5. Moreover, MIA-DPO has a minimal effect on the model's ability to understand single images.
The same record, over MCP at https://syntology.ai/mcp:
get_harvested_code_for_paper("2410.17637")
get_code_for_paper("2410.17637")
have("2410.17637")
Connect an agent — have() is free.