| |
|
|
| library(tidyverse) |
| library(openxlsx) |
| library(knitr) |
| library(kableExtra) |
| library(optparse) |
| library(this.path) |
|
|
| |
| 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") |
| ) |
| } |
|
|