Skip to content

LitePT

LitePT is a PTv3-compatible model that reduces latency by turning off early attention and late convolution blocks. It is fully compatible with PTv3's export contract, task models and heads.

It is implemented as LitePTEncoder, a subclass of PointTransformerV3Encoder: the gating and the rotary embedding are options on the shared components, and PTv3's defaults leave both off. Everything not listed below is identical to PointTransformerV3.

Summary

Property Value
Task 3D semantic segmentation, 3D object detection
Modality LiDAR
Input Single point cloud of x, y, z and intensity
Output Point-wise semantic labels or 3D boxes/scores/classes
Architecture PTv3 hierarchy with per-stage conv/attention gating and 3D RoPE
Datasets T4Dataset

What differs from PTv3

Aspect PTv3 LitePT
Block composition Every block: conv + attention + MLP Stages 0-2 conv only, stages 3-4 attention only
Positional encoding Submanifold conv per block Conv early; axis-split 3D RoPE on grid_coord late
Decoder dec_depths blocks per stage The PTv3 blocks under LitePT's gating
Encoder blocks 10 conv + 10 attention 6 conv + 4 attention
Serialization Every stage sorts for attention Only the two coarsest stages read an order

Rotary position embedding

Point3DRoPE splits the head dimension into three equal per-axis chunks and rotates each with a shared frequency ladder over integer grid_coord positions. Each chunk pairs dimension i with i + chunk // 2 as the two components one shared (cos, sin) rotates together, so the rotated span must be a multiple of six: rope_span returns the largest one that fits and any trailing dimensions pass through unrotated. LitePT inherits the PTv3 head counts for a head_dim of 16, rotating 12 dimensions and passing 4 through.

The default enc_rope_base of 100.0 mirrors what LitePT's reference CUDA operator calls rope_freq. This is a hyperparameter and needs tuning.

Available Configurations

PTv3 Base Task Dataset Head Range Purpose
segmentation3d/ptv3/t4dataset/base_voxel012_122m segmentation3d T4Dataset Seg decoder 122 m T4Dataset segmentation
multi/ptv3/t4dataset/base_voxel012_122m segmentation3d + detection3d T4Dataset TransFusion 122 m Joint segmentation + detection

A LitePT experiment binds one of these PTv3 bases and composes /tasks/segmentation3d/litept/encoder and /tasks/segmentation3d/litept/seg3d_head on top. It inherits the dataset, transforms, optimizer and deploy settings from the base and swaps only the encoder and the decoder head. The T4Dataset experiments of LitePT live in an external config root, see Configuration.

Both variants are the PTv3 model with the gating applied and nothing else changed, so the two stay directly comparable. The decoder keeps the PTv3 blocks and runs them under LitePT's rule.

The defaults of a LitePT segmentation experiment:

/path/to/configs/tasks/segmentation3d/litept/t4dataset/my_experiment.yaml
# @package _global_
defaults:
  - /tasks/segmentation3d/ptv3/t4dataset/base_voxel012_122m
  - /tasks/segmentation3d/litept/encoder
  - /tasks/segmentation3d/litept/seg3d_head
  - /database@database: t4dataset/my_database
  - override /database/t4dataset/taxonomy/segmentation3d@taxonomy.segmentation3d: my_taxonomy
  - override /ego@ego: my_ego
  - _self_

Export contract

Declared identically to PTv3, but the gated graph reads fewer of the inputs - nothing consumes the head_indices of the stages that carry no convolution - and torch.onnx.export drops whatever the traced graph never consumes. A LitePT artifact therefore exposes a subset of the PTv3 inputs.

The deployed node binds the inputs the artifact declares rather than the full PTv3 list, so a subset is a drop-in engine. Narrowing the declaration to match is future work.

Implementation

Path Description
autoware_ml/models/segmentation3d/encoders/ptv3.py LitePTEncoder, Point3DRoPE, block gating
autoware_ml/models/segmentation3d/ptv3_base.py PTv3EncoderExportBase, shared export inputs
autoware_ml/models/segmentation3d/heads/ptv3.py Decoder gating (dec_conv, dec_attn)
autoware_ml/configs/tasks/*/litept/ LitePT bases, encoder and decoder head
autoware_ml/models/detection3d/tests/test_litept.py Rotary, gating, and export tests

Acknowledgment

LitePT follows the published topology of the LitePT point-transformer variant, reimplemented on top of the Autoware-ML PTv3 components. The reference implementation's kernel-5 submanifold stem is not adopted: it exports poorly and showed no accuracy advantage over the linear stem.