Downloads ยท 30 days
27
9% of all-time downloads
YuanTang96/GreenPLM
GreenPLM is a machine learning model from YuanTang96. Use it for the machine learning task on the model card, and read the license before you ship it in a product.
<h1 align="center"<strongMore Text, Less Point: Towards 3D Data-Efficient Point-Language Understanding</strong</h1 <p align="center" Yuan Tang  Xu Han  Xianzhi Li<supโ</sup  Qiao Yu  Jinfeng Xu&emsโฆ
Downloads ยท 30 days
27
9% of all-time downloads
All-time downloads
307
Public
Repo size
39.4 GB
Likes
1
Public
Click a slice to open those files.
.bin12.6 GB ยท 32%
From the Hugging Face model README


The code, weights, and dataset of the project have already been uploaded to Hugging Face. Simply download them once to get started with the project.
Enter the project directory and execute the following command:
conda create -n greenplm python=3.10 -y
conda activate greenplm
bash envInstall.sh
./greenplm/release contains the paper's weights, training scripts, and testing scripts../pretrained_weight stores the pre-trained weights required for the training and testing phases of the project../lava-vicuna_2024_4_Phi-3-mini-4k-instruct is the weight directory for Phi-3../dataset/T3D is the 6M dataset proposed in this project../dataset/T3D/stage_1/brief_1M_caption.json is the dataset for Stage I../dataset/T3D/stage_2/stage_2_data_210k.json is the dataset for Stage II../dataset/Objaverse/8192_npy.zip contains the point cloud data from Objaverse that is required for this project. To unzip the dataset:
unzip ./dataset/Objaverse/8192_npy.zip -d ./dataset/Objaverse/
The model trained only on text data, i.e., (Stage I & Stage II).
bash ./release/paper/scripts/test/release_stage_2.sh
The output JSON results are saved in ./release/paper/result_json/stage_2.
The model trained on a small amount of 3D data, i.e., (Stage I & Stage II & Stage III).
bash ./release/paper/scripts/test/release_stage_3.sh
The output JSON results are saved in ./release/paper/result_json/stage_3.
The model trained only on text data, i.e., (Stage I & Stage II).
bash ./release/5M_data_seting/scripts/test/release_5M_stage_2.sh
The output JSON results are saved in ./release/5M_data_seting/result_json/stage_2.
The model trained on a small amount of 3D data, i.e., (Stage I & Stage II & Stage III).
bash ./release/5M_data_seting/scripts/test/release_5M_stage_3.sh
The output JSON results are saved in ./release/5M_data_seting/result_json/stage_3.
export PYTHONPATH=$PWD
export DASHSCOPE_API_KEY=sk-xxx
python ./pointllm/eval/evaluator_opensource_llm_QwenAPI.py \
--results_path /path/to/evaluation/PointLLM_brief_description_val_200_GT_Objaverse_classification_prompt0.json \
--eval_type open-free-form-classification \
--model_type qwen2-72b-instruct \
--parallel --num_workers 4
export PYTHONPATH=$PWD
export DASHSCOPE_API_KEY=sk-xxx
python ./pointllm/eval/evaluator_opensource_llm_QwenAPI.py \
--results_path /path/to/evaluation/PointLLM_brief_description_val_200_GT_Objaverse_classification_prompt1.json \
--eval_type open-free-form-classification \
--model_type qwen2-72b-instruct \
--parallel --num_workers 4
export PYTHONPATH=$PWD
export DASHSCOPE_API_KEY=sk-xxx
python ./pointllm/eval/evaluator_opensource_llm_QwenAPI.py \
--results_path /path/to/evaluation/ModelNet_classification_prompt0.json \
--eval_type modelnet-close-set-classification \
--model_type qwen2-72b-instruct \
--parallel --num_workers 4
export PYTHONPATH=$PWD
export DASHSCOPE_API_KEY=sk-xxx
python ./pointllm/eval/evaluator_opensource_llm_QwenAPI.py \
--results_path /path/to/evaluation/ModelNet_classification_prompt1.json \
--eval_type modelnet-close-set-classification \
--model_type qwen2-72b-instruct \
--parallel --num_workers 4
export PYTHONPATH=$PWD
export DASHSCOPE_API_KEY=sk-xxx
python ./pointllm/eval/evaluator_opensource_llm_QwenAPI.py \
--results_path /path/to/evaluation/PointLLM_brief_description_val_200_GT_Objaverse_captioning_prompt2.json \
--eval_type object-captioning \
--model_type qwen2-72b-instruct \
--parallel --num_workers 4
For the object captioning task, run the following command to evaluate model outputs with traditional metrics Sentence-BERT and SimCSE.
CUDA_VISIBLE_DEVICES=0 python pointllm/eval/traditional_evaluator.py --results_path /path/to/evaluation/PointLLM_brief_description_val_200_GT_Objaverse_captioning_prompt2.json
Stage I
bash ./release/paper/scripts/train/1.sh
Stage II: GreenPLM-0
bash ./release/paper/scripts/train/2.sh
Stage III: GreenPLM
bash ./release/paper/scripts/train/3.sh
<details>
<summary>We also provide training scripts using the entire T3D dataset, meaning we use 5M data from T3D in Stage II, instead of just 210k as in our paper. (click to expand)</summary>
Stage II: GreenPLM-0
bash ./release/5M_data_seting/scripts/train/2.sh
Stage III: GreenPLM
bash ./release/5M_data_seting/scripts/train/3.sh
</details>
Note: You can modify the --output_dir argument in the scripts to set the output directory for the trained weights.
If you find our work helpful, please consider citing:
@inproceedings{tang2025more,
title={More text, less point: Towards 3d data-efficient point-language understanding},
author={Tang, Yuan and Han, Xu and Li, Xianzhi and Yu, Qiao and Xu, Jinfeng and Hao, Yixue and Hu, Long and Chen, Min},
booktitle={Proceedings of the AAAI Conference on Artificial Intelligence},
volume={39},
number={7},
pages={7284--7292},
year={2025}
}
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/80x15.png" /></a> <br /> This work is under the <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License</a>.
Together, Let's make LLM for 3D great!
We would like to thank the authors of PointLLM, Uni3D, Phi-3, and LLaVA-pp for their great works and repos.