# 3D-ADLLM Official Reproduction Notes

Date: 2026-05-24

## Scope

Reproduced the public full-view evaluation path of `iLearn-Lab/ICLR25-3D_ADLLM` for `3D_Affordance_val_new_prompt`, using the official release branch, official Google Drive checkpoints/data, and the Phi-3.5 backbone.

## Repository And Assets

- Repo: `/data/250010098/method_repos/ICLR25-3D_ADLLM_release`
- Branch: `release`
- Commit: `4535190`
- Official bundle: `/data/250010098/method_repos/ICLR25-3D_ADLLM_official_bundle/extracted`
- Phi-3.5 model: `/data/250010098/models/phi3.5`
- Official path links:
  - `/workspace/project/Research_3D_Aff/3D_ADLLM`
  - `/workspace/project/Research_3D_Aff/Ckpts`
  - `/workspace/project/Research_3D_Aff/Data_construct/Dataset/OpenAD/Data_for_LLM`
  - `/workspace/Model/phi3.5`
  - `/workspace/Model/Ulip/pretrained_models_ckpt_zero-sho_classification_pointbert_ULIP-2.pt`

## Environment

Selected env: `/data/250010098/conda_envs/trellis2`

Key package adjustments:

- Installed `gdown`, `gorilla-core`, `sentencepiece`, `deepspeed`.
- Set `transformers==4.43.3`, matching `Phi-3.5-mini-instruct/config.json`.
- Kept torch from `trellis2`: `torch 2.6.0+cu124`.

## Code Compatibility Fixes

The official release code targets older torch/transformers. Minimal local fixes were required:

- Made optional Qwen/Uni3D imports non-fatal in `models/__init__.py`.
- Added `weights_only=False` to trusted official checkpoint `torch.load(...)` calls for PyTorch 2.6 compatibility.
- Added `input_ids` tracking for Phi generation when using point-prefix `inputs_embeds`.
- Used `<unk>` rather than EOS/pad for point-prefix dummy ids, because Phi tokenizer maps pad to `<|endoftext|>`.
- Aligned generated token ids with returned generation hidden states before locating `<SEG>`.

## Public Eval Config

Added:

`/data/250010098/method_repos/ICLR25-3D_ADLLM_release/configs/eval/phi_eval_full_public.yaml`

Reason: the release eval config also references AffordancePose, but the public Drive bundle used for issue reproduction contains OpenAD full/partial data, not the AffordancePose pkl.

## Command

```bash
cd /data/250010098/method_repos/ICLR25-3D_ADLLM_release
CUDA_VISIBLE_DEVICES=0 PYTHONPATH=.:models/pointbert \
  /data/250010098/conda_envs/trellis2/bin/python -u train.py \
  --cfg-path configs/eval/phi_eval_full_public.yaml
```

## Result

Result CSV:

`/data/250010098/PAct-Transporter/reports/20260513_pact_transporter_exploration/runs/3d_adllm_official_eval_full_20260524/20260524084/all_task_metrics.csv`

| metric | reproduced | issue reference | delta |
| --- | ---: | ---: | ---: |
| acc5 | 46.117473 | 47.748092 | -1.630619 |
| iou | 44.686984 | 45.668107 | -0.981123 |
| pointAcc | 80.670140 | 81.423536 | -0.753396 |
| pointPrecision | 55.043738 | 55.973960 | -0.930222 |
| pointRecall | 70.193427 | 71.074272 | -0.880845 |

The run is close to the issue-provided full-view checkpoint reference. Remaining small deltas are likely from environment/version differences: official README pins torch 2.0.0 and transformers 4.35.2, while this reproduction uses torch 2.6.0 on H100 plus Phi-3.5's declared transformers 4.43.3.

