File size: 3,517 Bytes
998922f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#!/usr/bin/env Rscript

library(tidyverse)
library(openxlsx)
library(knitr)
library(kableExtra)
library(optparse)
library(this.path)

# make reference to library function portable
source(file.path(here("functions"), "utils.R"))
source(file.path(here("functions"), "tabular.R"))

parser <- OptionParser()
parser <- add_option(
  parser, c("-d", "--csv_file"),
  type = "character",
  help = "The combined csv file",
  metavar = "character"
)
parser <- add_option(
  parser, c("--comparison"),
  type = "character",
  help = "The comparison of metrics to present",
  metavar = "character"
)
parser <- add_option(
  parser, c("--experiment"),
  type = "character",
  help = "The experiment to include in the table caption",
  metavar = "character"
)

args <- parse_args(parser)
if (is.null(args$csv_file)) {
  csv_fp <- "data/combined.csv"
} else {
  csv_fp <- args$csv_file
}
if (is.null(args$experiment)) {
  experiment <- "experiment x"
} else {
  experiment <- args$experiment
}
if (is.null(args$comparison)) {
  comparison <- "sensi-vs-kurt"
} else {
  comparison <- args$comparison
}

baseline_levels <- c("hqq", "fp16", "awq", "gptq", "bnb")
baseline_labels <- c("HQQ", "FP16", "AWQ", "GPTQ", "BnB")

sm_levels <- c("mxq-SM1", "mxq-SM2", "mxq-SM3")
sm_labels <- c("MXQ-SM1", "MXQ-SM2", "MXQ-SM3")
km_levels <- c("mxq-KM1", "mxq-KM2", "mxq-KM3")
km_labels <- c("MXQ-KM1", "MXQ-KM2", "MXQ-KM3")

sm_ab_levels <- c("mxq-SMAB")
sm_ab_labels <- c("MXQ-SMAB")
km_ab_levels <- c("mxq-KMAB")
km_ab_labels <- c("MXQ-KMAB")

if (comparison == "sensi-vs-kurt") {
  df_no_abl <- read_csv(csv_fp) |>
    filter(
      !grepl("-abl", attempt)
    )
  level_pairs <- zipcat(sm_levels, km_levels)
  label_pairs <- zipcat(sm_labels, km_labels)

  level_pairs <- zipcat(sm_levels, km_levels)
  label_pairs <- zipcat(sm_labels, km_labels)
  df_latex <- process_dataframe(
    df_no_abl,
    c(level_pairs, baseline_levels, "mxq"),
    c(label_pairs, baseline_labels, "MXQ")
  )
  df_latex_4bit <- df_latex |> filter(bpp == 4.13 | bpp == 4.25 | bpp == 4.51)
  dump_latex_table(
    df_latex_4bit,
    paste0(experiment, " (4-bit)"),
    paste0(comparison, "-4bit.tex")
  )
  df_latex_3bit <- df_latex |> filter(bpp == 3.13 | bpp == 3.25 | bpp == 3.51)
  dump_latex_table(
    df_latex_3bit,
    paste0(experiment, " (3-bit)"),
    paste0(comparison, "-3bit.tex")
  )
  df_latex_others <- df_latex |>
    filter(
      bpp != 3.13 & bpp != 3.25 & bpp != 3.51 &
        bpp != 4.13 & bpp != 4.25 & bpp != 4.51
    )
  dump_latex_table(
    df_latex_others,
    paste0(experiment, " (other-bit)"),
    paste0(comparison, "-others.tex")
  )
} else if (comparison == "sensi-vs-ablation") {
  df_no_kurt <- read_csv(csv_fp) |>
    filter(
      !grepl("kurt", attempt) & attempt != "mxq1"
    ) |>
    filter(algo == "mxq" | algo == "hqq")
  df_latex <- process_dataframe(
    df_no_kurt,
    c(sm_levels, baseline_levels, sm_ab_levels, "mxq"),
    c(sm_labels, baseline_labels, sm_ab_labels, "MXQ")
  )
  dump_latex_table(
    df_latex,
    experiment,
    paste0(comparison, ".tex")
  )
} else if (comparison == "kurt-vs-ablation") {
  df_no_sensi <- read_csv(csv_fp) |>
    filter(
      !grepl("sensi", attempt) & attempt != "mxq1"
    ) |>
    filter(algo == "mxq" | algo == "hqq")
  df_latex <- process_dataframe(
    df_no_sensi,
    c(km_levels, baseline_levels, km_ab_levels, "mxq"),
    c(km_labels, baseline_labels, km_ab_labels, "MXQ")
  )
  dump_latex_table(
    df_latex,
    experiment,
    paste0(comparison, ".tex")
  )
}