├── .gitignore ├── LICENSE.md ├── README.md ├── examples ├── blocklist_example.ipynb ├── negative_prompt.ipynb ├── prompt_distillation.ipynb ├── prompt_inversion.ipynb ├── prompt_inversion_sd.ipynb ├── style_transfer.ipynb └── teaser.png ├── modified_stable_diffusion_pipeline.py ├── open_clip ├── __init__.py ├── bpe_simple_vocab_16e6.txt.gz ├── constants.py ├── factory.py ├── hf_configs.py ├── hf_model.py ├── loss.py ├── model.py ├── model_configs │ ├── RN101-quickgelu.json │ ├── RN101.json │ ├── RN50-quickgelu.json │ ├── RN50.json │ ├── RN50x16.json │ ├── RN50x4.json │ ├── RN50x64.json │ ├── ViT-B-16-plus-240.json │ ├── ViT-B-16-plus.json │ ├── ViT-B-16.json │ ├── ViT-B-32-plus-256.json │ ├── ViT-B-32-quickgelu.json │ ├── ViT-B-32.json │ ├── ViT-H-14.json │ ├── ViT-H-16.json │ ├── ViT-L-14-280.json │ ├── ViT-L-14-336.json │ ├── ViT-L-14.json │ ├── ViT-L-16-320.json │ ├── ViT-L-16.json │ ├── ViT-M-16-alt.json │ ├── ViT-M-16.json │ ├── ViT-M-32-alt.json │ ├── ViT-M-32.json │ ├── ViT-S-16-alt.json │ ├── ViT-S-16.json │ ├── ViT-S-32-alt.json │ ├── ViT-S-32.json │ ├── ViT-bigG-14.json │ ├── ViT-e-14.json │ ├── ViT-g-14.json │ ├── mt5-base-ViT-B-32.json │ ├── mt5-xl-ViT-H-14.json │ ├── roberta-ViT-B-32.json │ ├── timm-convnext_base.json │ ├── timm-convnext_base_w.json │ ├── timm-convnext_large.json │ ├── timm-convnext_small.json │ ├── timm-convnext_tiny.json │ ├── timm-convnext_xlarge.json │ ├── timm-convnext_xxlarge.json │ ├── timm-convnext_xxlarge_320.json │ ├── timm-efficientnetv2_rw_s.json │ ├── timm-resnetaa50d.json │ ├── timm-swin_base_patch4_window7_224.json │ ├── timm-vit_medium_patch16_gap_256.json │ ├── timm-vit_relpos_medium_patch16_cls_224.json │ ├── xlm-roberta-base-ViT-B-32.json │ └── xlm-roberta-large-ViT-H-14.json ├── modified_resnet.py ├── openai.py ├── pretrained.py ├── timm_model.py ├── tokenizer.py ├── transform.py ├── transformer.py ├── utils.py └── version.py ├── optim_utils.py ├── prompt_lm ├── .gitignore ├── README.md ├── __init__.py ├── openprompt │ ├── __init__.py │ ├── config.py │ ├── data_utils │ │ ├── ZH │ │ │ ├── __init__.py │ │ │ ├── closed_QA.py │ │ │ ├── coreference.py │ │ │ ├── entity_typing.py │ │ │ ├── generation.py │ │ │ ├── nli.py │ │ │ ├── paraphrase.py │ │ │ ├── processor.py │ │ │ ├── reading_comprehensation.py │ │ │ ├── relation.py │ │ │ ├── sentiment.py │ │ │ ├── summarization.py │ │ │ └── topic_classification.py │ │ ├── __init__.py │ │ ├── conditional_generation_dataset.py │ │ ├── data_processor.py │ │ ├── data_sampler.py │ │ ├── fewglue_dataset.py │ │ ├── huggingface_dataset.py │ │ ├── lama_dataset.py │ │ ├── nli_dataset.py │ │ ├── relation_classification_dataset.py │ │ ├── text_classification_dataset.py │ │ ├── typing_dataset.py │ │ └── utils.py │ ├── default_config.py │ ├── lm_bff_trainer.py │ ├── pipeline_base.py │ ├── plms │ │ ├── __init__.py │ │ ├── lm.py │ │ ├── mlm.py │ │ ├── seq2seq.py │ │ └── utils.py │ ├── prompt_base.py │ ├── prompts │ │ ├── __init__.py │ │ ├── automatic_verbalizer.py │ │ ├── generation_verbalizer.py │ │ ├── knowledgeable_verbalizer.py │ │ ├── manual_template.py │ │ ├── manual_verbalizer.py │ │ ├── mixed_template.py │ │ ├── one2one_verbalizer.py │ │ ├── prefix_tuning_template.py │ │ ├── prompt_generator.py │ │ ├── prototypical_verbalizer.py │ │ ├── ptr_prompts.py │ │ ├── ptuning_prompts.py │ │ ├── soft_template.py │ │ └── soft_verbalizer.py │ ├── protoverb_trainer.py │ ├── trainer.py │ └── utils │ │ ├── __init__.py │ │ ├── calibrate.py │ │ ├── crossfit_metrics.py │ │ ├── cuda.py │ │ ├── logging.py │ │ ├── metrics.py │ │ ├── reproduciblity.py │ │ └── utils.py ├── requirements.txt ├── setup.py ├── src │ ├── train_prompts.py │ └── utils.py └── temp_and_verb │ ├── SST2 │ ├── manual_template.txt │ ├── manual_verbalizer.txt │ ├── soft_template.txt │ └── template_for_auto_t.txt │ ├── agnews │ ├── knowledgeable_verbalizer.txt │ ├── manual_template.txt │ ├── manual_verbalizer.txt │ ├── mixed_template.txt │ ├── multiwords_verbalizer.jsonl │ ├── ptuning_template.txt │ └── soft_template.txt │ └── amazon │ ├── knowledgeable_verbalizer.txt │ ├── manual_verbalizer.txt │ └── soft_template.txt ├── requirements.txt ├── run.py └── sample_config.json /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/LICENSE.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/README.md -------------------------------------------------------------------------------- /examples/blocklist_example.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/examples/blocklist_example.ipynb -------------------------------------------------------------------------------- /examples/negative_prompt.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/examples/negative_prompt.ipynb -------------------------------------------------------------------------------- /examples/prompt_distillation.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/examples/prompt_distillation.ipynb -------------------------------------------------------------------------------- /examples/prompt_inversion.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/examples/prompt_inversion.ipynb -------------------------------------------------------------------------------- /examples/prompt_inversion_sd.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/examples/prompt_inversion_sd.ipynb -------------------------------------------------------------------------------- /examples/style_transfer.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/examples/style_transfer.ipynb -------------------------------------------------------------------------------- /examples/teaser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/examples/teaser.png -------------------------------------------------------------------------------- /modified_stable_diffusion_pipeline.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/modified_stable_diffusion_pipeline.py -------------------------------------------------------------------------------- /open_clip/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/__init__.py -------------------------------------------------------------------------------- /open_clip/bpe_simple_vocab_16e6.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/bpe_simple_vocab_16e6.txt.gz -------------------------------------------------------------------------------- /open_clip/constants.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/constants.py -------------------------------------------------------------------------------- /open_clip/factory.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/factory.py -------------------------------------------------------------------------------- /open_clip/hf_configs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/hf_configs.py -------------------------------------------------------------------------------- /open_clip/hf_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/hf_model.py -------------------------------------------------------------------------------- /open_clip/loss.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/loss.py -------------------------------------------------------------------------------- /open_clip/model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model.py -------------------------------------------------------------------------------- /open_clip/model_configs/RN101-quickgelu.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/RN101-quickgelu.json -------------------------------------------------------------------------------- /open_clip/model_configs/RN101.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/RN101.json -------------------------------------------------------------------------------- /open_clip/model_configs/RN50-quickgelu.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/RN50-quickgelu.json -------------------------------------------------------------------------------- /open_clip/model_configs/RN50.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/RN50.json -------------------------------------------------------------------------------- /open_clip/model_configs/RN50x16.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/RN50x16.json -------------------------------------------------------------------------------- /open_clip/model_configs/RN50x4.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/RN50x4.json -------------------------------------------------------------------------------- /open_clip/model_configs/RN50x64.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/RN50x64.json -------------------------------------------------------------------------------- /open_clip/model_configs/ViT-B-16-plus-240.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/ViT-B-16-plus-240.json -------------------------------------------------------------------------------- /open_clip/model_configs/ViT-B-16-plus.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/ViT-B-16-plus.json -------------------------------------------------------------------------------- /open_clip/model_configs/ViT-B-16.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/ViT-B-16.json -------------------------------------------------------------------------------- /open_clip/model_configs/ViT-B-32-plus-256.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/ViT-B-32-plus-256.json -------------------------------------------------------------------------------- /open_clip/model_configs/ViT-B-32-quickgelu.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/ViT-B-32-quickgelu.json -------------------------------------------------------------------------------- /open_clip/model_configs/ViT-B-32.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/ViT-B-32.json -------------------------------------------------------------------------------- /open_clip/model_configs/ViT-H-14.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/ViT-H-14.json -------------------------------------------------------------------------------- /open_clip/model_configs/ViT-H-16.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/ViT-H-16.json -------------------------------------------------------------------------------- /open_clip/model_configs/ViT-L-14-280.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/ViT-L-14-280.json -------------------------------------------------------------------------------- /open_clip/model_configs/ViT-L-14-336.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/ViT-L-14-336.json -------------------------------------------------------------------------------- /open_clip/model_configs/ViT-L-14.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/ViT-L-14.json -------------------------------------------------------------------------------- /open_clip/model_configs/ViT-L-16-320.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/ViT-L-16-320.json -------------------------------------------------------------------------------- /open_clip/model_configs/ViT-L-16.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/ViT-L-16.json -------------------------------------------------------------------------------- /open_clip/model_configs/ViT-M-16-alt.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/ViT-M-16-alt.json -------------------------------------------------------------------------------- /open_clip/model_configs/ViT-M-16.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/ViT-M-16.json -------------------------------------------------------------------------------- /open_clip/model_configs/ViT-M-32-alt.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/ViT-M-32-alt.json -------------------------------------------------------------------------------- /open_clip/model_configs/ViT-M-32.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/ViT-M-32.json -------------------------------------------------------------------------------- /open_clip/model_configs/ViT-S-16-alt.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/ViT-S-16-alt.json -------------------------------------------------------------------------------- /open_clip/model_configs/ViT-S-16.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/ViT-S-16.json -------------------------------------------------------------------------------- /open_clip/model_configs/ViT-S-32-alt.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/ViT-S-32-alt.json -------------------------------------------------------------------------------- /open_clip/model_configs/ViT-S-32.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/ViT-S-32.json -------------------------------------------------------------------------------- /open_clip/model_configs/ViT-bigG-14.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/ViT-bigG-14.json -------------------------------------------------------------------------------- /open_clip/model_configs/ViT-e-14.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/ViT-e-14.json -------------------------------------------------------------------------------- /open_clip/model_configs/ViT-g-14.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/ViT-g-14.json -------------------------------------------------------------------------------- /open_clip/model_configs/mt5-base-ViT-B-32.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/mt5-base-ViT-B-32.json -------------------------------------------------------------------------------- /open_clip/model_configs/mt5-xl-ViT-H-14.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/mt5-xl-ViT-H-14.json -------------------------------------------------------------------------------- /open_clip/model_configs/roberta-ViT-B-32.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/roberta-ViT-B-32.json -------------------------------------------------------------------------------- /open_clip/model_configs/timm-convnext_base.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/timm-convnext_base.json -------------------------------------------------------------------------------- /open_clip/model_configs/timm-convnext_base_w.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/timm-convnext_base_w.json -------------------------------------------------------------------------------- /open_clip/model_configs/timm-convnext_large.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/timm-convnext_large.json -------------------------------------------------------------------------------- /open_clip/model_configs/timm-convnext_small.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/timm-convnext_small.json -------------------------------------------------------------------------------- /open_clip/model_configs/timm-convnext_tiny.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/timm-convnext_tiny.json -------------------------------------------------------------------------------- /open_clip/model_configs/timm-convnext_xlarge.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/timm-convnext_xlarge.json -------------------------------------------------------------------------------- /open_clip/model_configs/timm-convnext_xxlarge.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/timm-convnext_xxlarge.json -------------------------------------------------------------------------------- /open_clip/model_configs/timm-convnext_xxlarge_320.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/timm-convnext_xxlarge_320.json -------------------------------------------------------------------------------- /open_clip/model_configs/timm-efficientnetv2_rw_s.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/timm-efficientnetv2_rw_s.json -------------------------------------------------------------------------------- /open_clip/model_configs/timm-resnetaa50d.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/timm-resnetaa50d.json -------------------------------------------------------------------------------- /open_clip/model_configs/timm-swin_base_patch4_window7_224.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/timm-swin_base_patch4_window7_224.json -------------------------------------------------------------------------------- /open_clip/model_configs/timm-vit_medium_patch16_gap_256.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/timm-vit_medium_patch16_gap_256.json -------------------------------------------------------------------------------- /open_clip/model_configs/timm-vit_relpos_medium_patch16_cls_224.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/timm-vit_relpos_medium_patch16_cls_224.json -------------------------------------------------------------------------------- /open_clip/model_configs/xlm-roberta-base-ViT-B-32.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/xlm-roberta-base-ViT-B-32.json -------------------------------------------------------------------------------- /open_clip/model_configs/xlm-roberta-large-ViT-H-14.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/model_configs/xlm-roberta-large-ViT-H-14.json -------------------------------------------------------------------------------- /open_clip/modified_resnet.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/modified_resnet.py -------------------------------------------------------------------------------- /open_clip/openai.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/openai.py -------------------------------------------------------------------------------- /open_clip/pretrained.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/pretrained.py -------------------------------------------------------------------------------- /open_clip/timm_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/timm_model.py -------------------------------------------------------------------------------- /open_clip/tokenizer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/tokenizer.py -------------------------------------------------------------------------------- /open_clip/transform.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/transform.py -------------------------------------------------------------------------------- /open_clip/transformer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/transformer.py -------------------------------------------------------------------------------- /open_clip/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/open_clip/utils.py -------------------------------------------------------------------------------- /open_clip/version.py: -------------------------------------------------------------------------------- 1 | __version__ = '2.9.1' 2 | -------------------------------------------------------------------------------- /optim_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/optim_utils.py -------------------------------------------------------------------------------- /prompt_lm/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/.gitignore -------------------------------------------------------------------------------- /prompt_lm/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/README.md -------------------------------------------------------------------------------- /prompt_lm/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /prompt_lm/openprompt/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/__init__.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/config.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/data_utils/ZH/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/data_utils/ZH/__init__.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/data_utils/ZH/closed_QA.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/data_utils/ZH/closed_QA.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/data_utils/ZH/coreference.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/data_utils/ZH/coreference.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/data_utils/ZH/entity_typing.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/data_utils/ZH/entity_typing.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/data_utils/ZH/generation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/data_utils/ZH/generation.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/data_utils/ZH/nli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/data_utils/ZH/nli.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/data_utils/ZH/paraphrase.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/data_utils/ZH/paraphrase.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/data_utils/ZH/processor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/data_utils/ZH/processor.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/data_utils/ZH/reading_comprehensation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/data_utils/ZH/reading_comprehensation.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/data_utils/ZH/relation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/data_utils/ZH/relation.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/data_utils/ZH/sentiment.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/data_utils/ZH/sentiment.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/data_utils/ZH/summarization.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/data_utils/ZH/summarization.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/data_utils/ZH/topic_classification.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/data_utils/ZH/topic_classification.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/data_utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/data_utils/__init__.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/data_utils/conditional_generation_dataset.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/data_utils/conditional_generation_dataset.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/data_utils/data_processor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/data_utils/data_processor.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/data_utils/data_sampler.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/data_utils/data_sampler.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/data_utils/fewglue_dataset.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/data_utils/fewglue_dataset.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/data_utils/huggingface_dataset.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/data_utils/huggingface_dataset.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/data_utils/lama_dataset.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/data_utils/lama_dataset.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/data_utils/nli_dataset.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/data_utils/nli_dataset.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/data_utils/relation_classification_dataset.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/data_utils/relation_classification_dataset.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/data_utils/text_classification_dataset.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/data_utils/text_classification_dataset.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/data_utils/typing_dataset.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/data_utils/typing_dataset.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/data_utils/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/data_utils/utils.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/default_config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/default_config.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/lm_bff_trainer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/lm_bff_trainer.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/pipeline_base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/pipeline_base.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/plms/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/plms/__init__.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/plms/lm.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/plms/lm.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/plms/mlm.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/plms/mlm.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/plms/seq2seq.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/plms/seq2seq.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/plms/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/plms/utils.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/prompt_base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/prompt_base.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/prompts/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/prompts/__init__.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/prompts/automatic_verbalizer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/prompts/automatic_verbalizer.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/prompts/generation_verbalizer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/prompts/generation_verbalizer.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/prompts/knowledgeable_verbalizer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/prompts/knowledgeable_verbalizer.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/prompts/manual_template.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/prompts/manual_template.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/prompts/manual_verbalizer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/prompts/manual_verbalizer.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/prompts/mixed_template.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/prompts/mixed_template.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/prompts/one2one_verbalizer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/prompts/one2one_verbalizer.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/prompts/prefix_tuning_template.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/prompts/prefix_tuning_template.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/prompts/prompt_generator.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/prompts/prompt_generator.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/prompts/prototypical_verbalizer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/prompts/prototypical_verbalizer.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/prompts/ptr_prompts.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/prompts/ptr_prompts.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/prompts/ptuning_prompts.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/prompts/ptuning_prompts.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/prompts/soft_template.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/prompts/soft_template.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/prompts/soft_verbalizer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/prompts/soft_verbalizer.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/protoverb_trainer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/protoverb_trainer.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/trainer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/trainer.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/utils/__init__.py: -------------------------------------------------------------------------------- 1 | from .utils import * -------------------------------------------------------------------------------- /prompt_lm/openprompt/utils/calibrate.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/utils/calibrate.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/utils/crossfit_metrics.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/utils/crossfit_metrics.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/utils/cuda.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/utils/cuda.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/utils/logging.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/utils/logging.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/utils/metrics.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/utils/metrics.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/utils/reproduciblity.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/utils/reproduciblity.py -------------------------------------------------------------------------------- /prompt_lm/openprompt/utils/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/openprompt/utils/utils.py -------------------------------------------------------------------------------- /prompt_lm/requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/requirements.txt -------------------------------------------------------------------------------- /prompt_lm/setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/setup.py -------------------------------------------------------------------------------- /prompt_lm/src/train_prompts.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/src/train_prompts.py -------------------------------------------------------------------------------- /prompt_lm/src/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/src/utils.py -------------------------------------------------------------------------------- /prompt_lm/temp_and_verb/SST2/manual_template.txt: -------------------------------------------------------------------------------- 1 | {"placeholder": "text_a"} {"mask"} -------------------------------------------------------------------------------- /prompt_lm/temp_and_verb/SST2/manual_verbalizer.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/temp_and_verb/SST2/manual_verbalizer.txt -------------------------------------------------------------------------------- /prompt_lm/temp_and_verb/SST2/soft_template.txt: -------------------------------------------------------------------------------- 1 | {"placeholder": "text_a"} It was {"mask"} -------------------------------------------------------------------------------- /prompt_lm/temp_and_verb/SST2/template_for_auto_t.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/temp_and_verb/SST2/template_for_auto_t.txt -------------------------------------------------------------------------------- /prompt_lm/temp_and_verb/agnews/knowledgeable_verbalizer.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/temp_and_verb/agnews/knowledgeable_verbalizer.txt -------------------------------------------------------------------------------- /prompt_lm/temp_and_verb/agnews/manual_template.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/temp_and_verb/agnews/manual_template.txt -------------------------------------------------------------------------------- /prompt_lm/temp_and_verb/agnews/manual_verbalizer.txt: -------------------------------------------------------------------------------- 1 | politics 2 | sports 3 | business 4 | technology 5 | 6 | -------------------------------------------------------------------------------- /prompt_lm/temp_and_verb/agnews/mixed_template.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/temp_and_verb/agnews/mixed_template.txt -------------------------------------------------------------------------------- /prompt_lm/temp_and_verb/agnews/multiwords_verbalizer.jsonl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/temp_and_verb/agnews/multiwords_verbalizer.jsonl -------------------------------------------------------------------------------- /prompt_lm/temp_and_verb/agnews/ptuning_template.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/temp_and_verb/agnews/ptuning_template.txt -------------------------------------------------------------------------------- /prompt_lm/temp_and_verb/agnews/soft_template.txt: -------------------------------------------------------------------------------- 1 | {"placeholder": "text_a"} It was about {"mask"} 2 | -------------------------------------------------------------------------------- /prompt_lm/temp_and_verb/amazon/knowledgeable_verbalizer.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/temp_and_verb/amazon/knowledgeable_verbalizer.txt -------------------------------------------------------------------------------- /prompt_lm/temp_and_verb/amazon/manual_verbalizer.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/prompt_lm/temp_and_verb/amazon/manual_verbalizer.txt -------------------------------------------------------------------------------- /prompt_lm/temp_and_verb/amazon/soft_template.txt: -------------------------------------------------------------------------------- 1 | {"placeholder": "text_a"} It was {"mask"} -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/requirements.txt -------------------------------------------------------------------------------- /run.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/run.py -------------------------------------------------------------------------------- /sample_config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YuxinWenRick/hard-prompts-made-easy/HEAD/sample_config.json --------------------------------------------------------------------------------