| # Install and Run Guide |
|
|
| This guide explains how to install dependencies and run the IMDB Transformer experiments in `assignment_llm_1/assignment_text`. |
|
|
| First, enter this path using `cd`: |
|
|
| ```bash |
| cd assignment_llm_1/assignment_text |
| ``` |
|
|
| ## What is added in the code |
|
|
| - Model-size experiment support in `assignment_text/code/c1.py`: |
| - `small`: `d_model=64`, `num_heads=4`, `num_layers=1`, `d_ff=128` |
| - `medium`: `d_model=128`, `num_heads=8`, `num_layers=2`, `d_ff=256` |
| - `large`: `d_model=256`, `num_heads=8`, `num_layers=4`, `d_ff=512` |
| - Automatic experiment report generation: |
| - `assignment_text/saved_model/transformer_imdb_experiment_report.md` |
| - Model-size selection in analysis script: |
| - `python code/c1_analysis.py --model_size small|medium|large ...` |
| - Some qualitative error-analysis instances are available in: |
| - `assignment_text/documentation/error_analysis.json` |
|
|
| ## 1) Go to the project folder |
|
|
| ```bash |
| cd ./assignment_llm_1/assignment_text |
| ``` |
|
|
| ## 2) Create and activate environment |
|
|
| ### Option A: Conda (recommended if you use Conda) |
|
|
| ```bash |
| conda create -n transformer_hw python=3.10 -y |
| conda activate transformer_hw |
| python -m pip install --upgrade pip |
| ``` |
|
|
| ## 3) Install dependencies |
|
|
| If there is a `requirements.txt` file in this folder, run: |
|
|
| ```bash |
| pip install -r requirements.txt |
| ``` |
|
|
|
|
| ## 4) Train all model sizes (small, medium, large) |
|
|
| Run training from the `code` directory: |
|
|
| ```bash |
| python code/c1.py |
| ``` |
|
|
| This will: |
| - train `small`, `medium`, and `large` Transformer models, |
| - save checkpoints under `assignment_llm_1/assignment_text/saved_model/`, |
| - create a Markdown experiment report at: |
| - `assignment_llm_1/assignment_text/saved_model/transformer_imdb_experiment_report.md` |
|
|
| ## 5) Evaluate and analyze a selected model size |
|
|
| From the same `code` directory: |
|
|
| ```bash |
| python code/c1_analysis.py --split test --model_size small --num_examples 5 |
| python code/c1_analysis.py --split test --model_size medium --num_examples 5 |
| python code/c1_analysis.py --split test --model_size large --num_examples 5 |
| ``` |
|
|
| Arguments: |
| - `--split`: dataset split to evaluate (`test` or `train`) |
| - `--model_size`: one of `small`, `medium`, `large` |
| - `--num_examples`: number of misclassified examples to print |
|
|
| ## 6) (Optional) Use a custom checkpoint path directly |
|
|
| If you want to bypass `--model_size`, pass an explicit checkpoint: |
|
|
| ```bash |
| python code/c1_analysis.py \ |
| --split test \ |
| --checkpoint ../saved_model/transformer_imdb_large.pt \ |
| --num_examples 5 |
| ``` |
|
|
| ## 7) Expected output files |
|
|
| After running `c1.py`, these files should exist in `assignment_llm_1/assignment_text/saved_model/`: |
| - `transformer_imdb_small.pt` |
| - `transformer_imdb_medium.pt` |
| - `transformer_imdb_large.pt` |
| - `transformer_imdb.pt` (summary/compatibility checkpoint) |
| - `transformer_imdb_experiment_report.md` (human-readable report) |
|
|