Configuration File for Knowledge-Debugger
The default Knowledge-Debugger configuration-file looks like this:
server_files_dir: "lm-debugger/server_files/",
model_name: "hf_organization/model_name",
device: "cuda:0",
server_ip: "127.0.0.1",
server_port: 8000,
elastic_ip: "127.0.0.1",
elastic_port: 9200,
react_ip: "127.0.0.1",
react_port: 3000,
streamlit_ip: "127.0.0.1",
streamlit_port: 8501,
top_k_tokens_for_ui: 10,
top_k_for_elastic: 50,
num_layers: 32,
elastic_index: "model_projections_docs",
elastic_projections_path: $.server_files_dir + "my_file.pkl",
elastic_api_key: "VGhlIGNha2UgaXMgYSBsaWU=",
enable_caching_weight_matrix: true,
layer_mappings: {
base_model_descriptor: "transformer",
token_embedding: "transformer.wte",
mlp_sublayer: "transformer.h.{}.mlp",
attn_sublayer: "transformer.h.{}.attn",
mlp_activations: "transformer.h.{}.mlp.act",
mlp_gate_proj: "transformer.h.{}.mlp.c_fc",
mlp_up_proj: "transformer.h.{}.mlp.c_fc",
mlp_down_proj: "transformer.h.{}.mlp.c_proj",
decoder_input_layernorm: "transformer.h.{}.ln_1",
decoder_post_attention_layernorm: "transformer.h.{}.ln_2",
post_decoder_norm: "transformer.ln_f"
},
easy_edit_hparams_path: "/nfs/home/ebenz_bsc2024/lm-debugger/config_files/ee_hparams/gpt2-xl",
metric_configs: {
NormOfWeightUpdate: {},
CausalTrace: {
# Config for Causal Trace
samples: 10,
noise: 0.1,
window: 10,
kind: "mlp"
},
DenominatorOfROMEUpdate: {
applicable_intervention_methods: ["ROME", "R-ROME"]
},
Perplexity: {
# From https://github.com/WanliYoung/Collapse-in-Model-Editing/tree/main
dataset: []
}
}
Explanation of the datafields:
server_files_dir: Directory for the Server Files to be stored. This includes the forward Projections of the MLP (LMDebuggerIntervention)model_name: HuggingFace-Name of the Model. The Model-Name must be supported by the used Instance ofTransformerModelWrapperdevice: Device, the Transformer is loaded to (e.g., “cuda”, “cuda:0”, “cpu”)server_ip: Flask-Backend Server IPserver_port: Flask-Backend Server Portelastic_ip: ElasticSearch Server IPelastic_port: ElasticSearch Server Portreact_ip: React-Frontend IPreact_port: React-Frontend Portstreamlit_ip: Streamlit-Frontend IPstreamlit_port: Streamlit-Frontend Porttop_k_tokens_for_ui: Number of Tokens that are shown in the React-Frontend (as most probable Tokens before and after Interventions)top_k_for_elastic: Number of Tokens, returned by each ElasticSearch-Requestnum_layers: Number of Layers of Transformerelastic_index: Name of ElasticSearch-Index, the MLP-Projections are stored inelastic_projections_path: Path to the Pickle-File containing the MLP-Projectionslm_debugger/es_client/create_offline_files.py: Generates this Pickle-Filelm_debugger/es_client/index_value_projections_docs.py: Uploads the Pickle-File to the ElasticSearch-Instance
elastic_api_key: API-Key of the ElasticSearch-Instanceenable_caching_weight_matrix: Enables Caching of the Weight-Updates done by Sequences of Interventions. Saves compute on repetitive Runs on the same Sequence of Interventions.layer_mappings: Mappings of Layers to their Descriptors. Used in Interventions. (“{}” refers to Layer-Index)easy_edit_hparams_path: Path to directory of Hparams-yaml-Files of each EasyEdit-Interventions Method, used in this appmetric_configs: Configurations of each Metric. The Config-Dicts for each Metric are accessible in the Metric via theconfig-Attribute