Skip to content

Commit 1a083ff

Browse files
committed
Restructure paper for multi-venue submissions
- Add venue-specific subdirectories (tmlr, neurips-workshop, etc) - Extract shared components (preamble, macros, bibliography) - Move TMLR version to paper/tmlr/ as primary submission - Update analysis scripts to write to paper/tmlr/tables - Archive old paper structure in paper/archive/ - Each venue has independent main.tex and Makefile
1 parent 495698d commit 1a083ff

66 files changed

Lines changed: 5114 additions & 332 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎analysis/generate_figures.py‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ def augmentation_gap_plot(df: pd.DataFrame, output_path: Path) -> None:
123123
plt.close()
124124

125125

126-
def save_figures(df: pd.DataFrame, output_dir: str = "paper/figures") -> None:
126+
def save_figures(df: pd.DataFrame, output_dir: str = "paper/tmlr/figures") -> None:
127127
"""Generate and save all figures."""
128128
output = Path(output_dir)
129129
output.mkdir(parents=True, exist_ok=True)
@@ -136,8 +136,9 @@ def save_figures(df: pd.DataFrame, output_dir: str = "paper/figures") -> None:
136136
accuracy_comparison_plot(df, output, augment=augment)
137137
accuracy_delta_heatmap(df, output, augment=augment)
138138

139-
# Augmentation ablation plot
140-
augmentation_gap_plot(df, output)
139+
# Augmentation ablation plot (exclude imagenet)
140+
df_no_imagenet = df[df["dataset"] != "imagenet"] if "dataset" in df.columns else df
141+
augmentation_gap_plot(df_no_imagenet, output)
141142

142143
print(f"Figures saved to {output}")
143144

‎analysis/generate_tables.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ def layer_ablation_table(df: pd.DataFrame, dataset: str = "cifar10", augment: st
235235
return "\n".join(lines)
236236

237237

238-
def save_tables(df: pd.DataFrame, comparisons: pd.DataFrame, output_dir: str = "paper/tables") -> None:
238+
def save_tables(df: pd.DataFrame, comparisons: pd.DataFrame, output_dir: str = "paper/tmlr/tables") -> None:
239239
"""Save all tables to files."""
240240
output = Path(output_dir)
241241
output.mkdir(parents=True, exist_ok=True)

‎paper/Makefile‎

Lines changed: 0 additions & 22 deletions
This file was deleted.

‎paper/README.md‎

Lines changed: 208 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,208 @@
1+
# BitNet CNN Paper — TMLR Submission
2+
3+
**Title**: *When Augmentation Fails: Knowledge Distillation for Ternary CNNs*
4+
5+
Single-venue focus on TMLR (Transactions on Machine Learning Research) with 3-reviewer simulation system.
6+
7+
---
8+
9+
## Quick Start
10+
11+
```bash
12+
# Build paper
13+
cd paper/tmlr && make
14+
15+
# Regenerate tables and figures from experiments
16+
uv run python -m analysis.generate_tables
17+
uv run python -m analysis.generate_figures
18+
19+
# Review workflow (3 reviewers per round)
20+
# 1. Paste paper to Claude with persona_1_theory.md prompt
21+
# 2. Save review to reviews/tmlr/round_N/reviewer_1.md
22+
# 3. Repeat for persona_2 and persona_3
23+
# 4. Read all 3 reviews and create implementation plan
24+
# 5. Fix issues → rebuild → next round
25+
```
26+
27+
---
28+
29+
## Project Structure
30+
31+
```
32+
paper/
33+
├── tmlr/ # The paper (self-contained)
34+
│ ├── main.tex # Main paper file
35+
│ ├── preamble.tex # LaTeX packages
36+
│ ├── macros.tex # Custom commands
37+
│ ├── bibliography.tex # References
38+
│ ├── figures/ # Generated by analysis scripts
39+
│ ├── tables/ # Generated by analysis scripts
40+
│ └── Makefile
41+
│
42+
├── reviews/
43+
│ └── tmlr/
44+
│ ├── prompts/ # 3 reviewer personas
45+
│ │ ├── persona_1_theory.md # ML theory researcher
46+
│ │ ├── persona_2_expert.md # Quantization expert
47+
│ │ └── persona_3_practitioner.md # Systems/deployment
48+
│ ├── round_0/ # Ready for first 3 reviews
49+
│ │ ├── (awaiting reviewer_1.md)
50+
│ │ ├── (awaiting reviewer_2.md)
51+
│ │ └── (awaiting reviewer_3.md)
52+
│ ├── round_N/ # Future rounds (3 reviews each)
53+
│ └── archive_*/ # Old single-reviewer rounds (Feb 14, 2026)
54+
│
55+
├── research/ # Research prompts and notes
56+
├── archive/ # Old multi-venue work (if needed)
57+
│ ├── neurips-workshop/ # 7.5/10 Accept (can resurrect)
58+
│ ├── other-venues/ # bmvc, cvpr, iclr, neurips, wacv
59+
│ └── reviewers/ # Old multi-venue review system
60+
│
61+
├── venues.md # Deadline tracker & strategy
62+
├── notes.md # Research notes and experiment log
63+
└── README.md # This file
64+
```
65+
66+
---
67+
68+
## Current Status
69+
70+
**Target Venue:** TMLR (rolling deadline, submit ~March 2026)
71+
**Review Status:** Ready for Round 0 (3-reviewer system)
72+
**Paper Length:** 18 pages (no page limit for TMLR)
73+
74+
### Key Results
75+
- 3-9% accuracy gap between ternary and FP32 on CIFAR
76+
- Augmentation widens gap: FP32 benefits 1.5-3.7× more
77+
- conv1 accounts for 54-74% of gap (only 0.08% params)
78+
- Recipe (FP32 conv1 + KD): 89% recovery on CIFAR-10, exceeds FP32 on harder tasks
79+
80+
---
81+
82+
## Review Workflow (Simplified)
83+
84+
### 3-Reviewer System
85+
86+
Each round uses **3 personas** to simulate diverse reviewer feedback:
87+
88+
1. **ML Theory Researcher** - Statistical rigor, theoretical grounding
89+
2. **Quantization Expert** - Field knowledge, baseline comparisons
90+
3. **Systems Practitioner** - Reproducibility, deployment practicality
91+
92+
### Per-Round Process
93+
94+
```bash
95+
# Round N workflow
96+
cd paper/tmlr && make
97+
98+
# Get 3 independent reviews:
99+
# - Paste paper + persona_1 prompt to Claude → save to round_N/reviewer_1.md
100+
# - Paste paper + persona_2 prompt to Claude → save to round_N/reviewer_2.md
101+
# - Paste paper + persona_3 prompt to Claude → save to round_N/reviewer_3.md
102+
103+
# Read all 3 reviews
104+
cat reviews/tmlr/round_N/*.md
105+
106+
# Create implementation plan (in PLAN.md or similar)
107+
# - Synthesize MAJOR/MINOR issues across all 3 reviews
108+
# - Prioritize: fix MAJOR issues first, MINOR if time permits
109+
# - Document decisions
110+
111+
# Fix issues in main.tex
112+
113+
# Rebuild and repeat
114+
make clean && make
115+
```
116+
117+
---
118+
119+
## Analysis Pipeline
120+
121+
When experiments change:
122+
123+
```bash
124+
# From project root
125+
uv run python -m analysis.aggregate_results # results/raw/ → results/processed/
126+
uv run python -m analysis.generate_tables # → paper/tmlr/tables/
127+
uv run python -m analysis.generate_figures # → paper/tmlr/figures/
128+
129+
# Rebuild paper
130+
cd paper/tmlr && make
131+
```
132+
133+
**Important:** Analysis scripts now write directly to `paper/tmlr/` (updated Feb 14, 2026).
134+
135+
---
136+
137+
## Venue Strategy
138+
139+
See [venues.md](venues.md) for full details.
140+
141+
**Primary:** TMLR (rolling, ~70% acceptance probability with current work)
142+
143+
**Backup Options:**
144+
- NeurIPS Workshop (Aug 2026) - draft at 7.5/10 Accept available in archive
145+
- BMVC, WACV (if TMLR requests major revisions)
146+
- Top venues (ICLR, NeurIPS, CVPR) require ImageNet validation
147+
148+
**Archived Work:**
149+
- NeurIPS Workshop paper (7.5/10 Accept, 5 pages) in `archive/neurips-workshop/`
150+
- Other venue drafts in `archive/other-venues/`
151+
- Multi-venue review automation in `archive/reviewers/`
152+
153+
---
154+
155+
## Tips
156+
157+
### Building the Paper
158+
```bash
159+
cd paper/tmlr
160+
make # Build PDF
161+
make clean # Remove build artifacts
162+
```
163+
164+
### Common Issues
165+
166+
**"No rule to make target"**
167+
- Check that preamble.tex, macros.tex, bibliography.tex exist in `tmlr/`
168+
- Ensure figures/ and tables/ directories exist in `tmlr/`
169+
170+
**"File not found" in LaTeX**
171+
- Verify `\input{}` statements use local paths (no `../`)
172+
- Check `\graphicspath{{figures/}}` points to local directory
173+
174+
**Stale tables/figures**
175+
- Re-run analysis scripts after new experiments
176+
- Check that scripts write to `paper/tmlr/tables/` and `paper/tmlr/figures/`
177+
178+
---
179+
180+
## Key Files
181+
182+
| File | Purpose |
183+
|------|---------|
184+
| `tmlr/main.tex` | Main paper (18 pages) |
185+
| `reviews/tmlr/prompts/` | 3 reviewer personas for simulation |
186+
| `venues.md` | Venue deadlines and strategy |
187+
| `notes.md` | Detailed experiment log |
188+
| `research/` | Deep research prompts |
189+
190+
---
191+
192+
## Next Steps
193+
194+
1. **Expand reviewer prompts** - Add full TMLR review instructions to 3 personas
195+
2. **Run Round 2** - Get 3 reviews, synthesize feedback, fix issues
196+
3. **Final polish** - Proofread, formatting, consistency check
197+
4. **Submit to TMLR** - Target early March 2026
198+
199+
---
200+
201+
## Archive
202+
203+
Multi-venue work (7 venues, automated sync, workflow automation) archived in `archive/`:
204+
- Kept neurips-workshop (7.5/10 Accept) as backup
205+
- Can resurrect other venues if needed
206+
- Focused on TMLR as primary target
207+
208+
**Rationale:** Single-venue focus reduces complexity, allows deeper iteration on one paper rather than spreading effort across 7 venues.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
MAIN = main
2+
LATEX = pdflatex
3+
4+
all: $(MAIN).pdf
5+
6+
$(MAIN).pdf: $(MAIN).tex ../shared/*.tex
7+
$(LATEX) $(MAIN)
8+
$(LATEX) $(MAIN)
9+
10+
clean:
11+
rm -f *.aux *.bbl *.blg *.log *.out *.toc *.lof *.lot *.fls *.fdb_latexmk *.synctex.gz
12+
13+
.PHONY: all clean
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
% Minimal bibliography for NeurIPS Workshop (12 references only)
2+
3+
\bibliographystyle{plain}
4+
5+
\begin{thebibliography}{99}
6+
7+
\bibitem{ma2024bitnetb158}
8+
S.~Ma et al.
9+
\newblock The Era of 1-bit LLMs: All Large Language Models are in 1.58 Bits.
10+
\newblock \emph{arXiv:2402.17764}, 2024.
11+
\bibitem{courbariaux2015binaryconnect}
12+
M.~Courbariaux et al.
13+
\newblock BinaryConnect: Training Deep Neural Networks with Binary Weights during Propagations.
14+
\newblock \emph{NeurIPS}, 2015.
15+
\bibitem{rastegari2016xnornet}
16+
M.~Rastegari et al.
17+
\newblock XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks.
18+
\newblock \emph{ECCV}, 2016.
19+
\bibitem{li2016ternary}
20+
F.~Li et al.
21+
\newblock Ternary Weight Networks.
22+
\newblock \emph{arXiv:1605.04711}, 2016.
23+
\bibitem{rw2019timm}
24+
R.~Wightman.
25+
\newblock PyTorch Image Models.
26+
\newblock \url{https://github.com/rwightman/pytorch-image-models}, 2019.
27+
\bibitem{hinton2015distilling}
28+
G.~Hinton, O.~Vinyals, and J.~Dean.
29+
\newblock Distilling the Knowledge in a Neural Network.
30+
\newblock \emph{NeurIPS Deep Learning Workshop}, 2015.
31+
\bibitem{zhu2017ttq}
32+
C.~Zhu, S.~Han, H.~Mao, and W.~Dally.
33+
\newblock Trained Ternary Quantization.
34+
\newblock \emph{ICLR}, 2017.
35+
\bibitem{kim2019qkd}
36+
J.~Kim, Y.~Bhalgat, J.~Lee, C.~Patel, and N.~Kwak.
37+
\newblock QKD: Quantization-aware Knowledge Distillation.
38+
\newblock \emph{arXiv:1911.12491}, 2019.
39+
\bibitem{wang2019haq}
40+
K.~Wang, Z.~Liu, Y.~Lin, J.~Lin, and S.~Han.
41+
\newblock HAQ: Hardware-Aware Automated Quantization with Mixed Precision.
42+
\newblock \emph{CVPR}, 2019.
43+
\bibitem{zhou2016dorefa}
44+
S.~Zhou, Y.~Wu, Z.~Ni, X.~Zhou, H.~Wen, and Y.~Zou.
45+
\newblock DoReFa-Net: Training Low Bitwidth Convolutional Neural Networks with Low Bitwidth Gradients.
46+
\newblock \emph{arXiv:1606.06160}, 2016.
47+
\bibitem{dong2019hawq}
48+
Z.~Dong, Z.~Yao, A.~Gholami, M.~Mahoney, and K.~Keutzer.
49+
\newblock HAWQ: Hessian AWare Quantization of Neural Networks with Mixed-Precision.
50+
\newblock \emph{ICCV}, 2019.
51+
\bibitem{dong2020hawqv2}
52+
Z.~Dong, Z.~Yao, D.~Arfeen, A.~Gholami, M.~W.~Mahoney, and K.~Keutzer.
53+
\newblock HAWQ-V2: Hessian Aware trace-Weighted Quantization of Neural Networks.
54+
\newblock \emph{NeurIPS}, 2020.
55+
56+
\end{thebibliography}

0 commit comments

Comments
 (0)