Este repositório contém o código para reproduzir os resultados relatados no artigo a seguir:
Orhan AE (2023) Reconhecimento, recall e retenção de poucas memórias em grandes modelos de idiomas. ARXIV: 2303.17557.
O repositório contém três arquivos python train.py , test.py , generate.py (todos modificados a partir do exemplo de modelagem de linguagem causal Huggingface aqui) para treinar (ou Finetune) um modelo, para executar um teste de reconhecimento e executar um teste de recall, respectivamente.
Alguns exemplos de uso para esses arquivos são fornecidos abaixo.
gpt-j-6B com as frases do estudo em seen_data_0.json por 1 Epoch (1 exposição) em 4 GPUs (com um tamanho total em lote de 4x4 = 16 frases) usando a estrutura de aceleração do Huggingface (consulte o arquivo de config aqui): accelerate launch - - config_file accelerate_config . yaml - - num_cpu_threads_per_process 4 train . py
- - model_name_or_path "EleutherAI/gpt-j-6B"
- - train_file "data/llm-experiment-data/expt1/seen_data_0.json"
- - per_device_train_batch_size 4
- - learning_rate 0.00001
- - output_dir OUTPUT_DIR
- - save_prefix INFORMATIVE_SAVE_PREFIX
- - block_size 128
- - num_train_epochs 1
- - overwrite_cacheseen_data_0.json e FOILS NO unseen_data_0.json : python - u test . py
- - model_name_or_path MODEL_PATH
- - seen_file "data/llm-experiment-data/expt1/seen_data_0.json"
- - unseen_file "data/llm-experiment-data/expt1/unseen_data_0.json"
- - per_device_eval_batch_size 1
- - output_dir OUTPUT_DIR
- - save_prefix INFORMATIVE_SAVE_PREFIX
- - block_size 128
- - overwrite_cacheseen_data_0.json : python - u generate . py
- - model_name_or_path MODEL_PATH
- - seen_file "data/llm-experiment-data/expt1/seen_data_0.json"
- - per_device_eval_batch_size 1
- - output_dir OUTPUT_DIR
- - save_prefix INFORMATIVE_SAVE_PREFIX
- - block_size 128
- - overwrite_cache A pasta scripts contém scripts SLURM para reproduzir todos os experimentos relatados no papel, usando esses três arquivos. A pasta de data contém todos os dados experimentais usados nos experimentos. A pasta utils contém funções utilitárias que foram usadas para gerar os dados experimentais. Os resultados de todos os experimentos de reconhecimento, recall e retenção relatados no artigo estão disponíveis neste repositório de dados do HuggingFace.