Instructions to use SJTUFreshman/collaborativelearning with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use SJTUFreshman/collaborativelearning with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
Download load_adapter.py from SJTUFreshman/collaborativelearning: direct link, hf CLI and curl.
- Browser
- Download file 1.3 kB
-
https://huggingface.co/SJTUFreshman/collaborativelearning/resolve/main/load_adapter.py
- Command line
-
hf download hf://SJTUFreshman/collaborativelearning/load_adapter.py
-
curl -L -o load_adapter.py https://huggingface.co/SJTUFreshman/collaborativelearning/resolve/main/load_adapter.py
1.3 kB
| import argparse | |
| import json | |
| from pathlib import Path | |
| from huggingface_hub import snapshot_download | |
| from peft import PeftModel | |
| from transformers import AutoModelForCausalLM, AutoTokenizer | |
| def load_adapter(subfolder, revision=None): | |
| repo_id = 'SJTUFreshman/collaborativelearning' | |
| tokenizer_folder = str(Path(subfolder).parent).replace('\\', '/') if subfolder.endswith('/policy_adapter') else subfolder | |
| snapshot = snapshot_download(repo_id, revision=revision, allow_patterns=[subfolder+'/*', tokenizer_folder+'/tokenizer*', tokenizer_folder+'/chat_template.jinja', tokenizer_folder+'/special_tokens_map.json']) | |
| adapter_dir = Path(snapshot)/subfolder | |
| config = json.loads((adapter_dir/'adapter_config.json').read_text()) | |
| tokenizer = AutoTokenizer.from_pretrained(Path(snapshot)/tokenizer_folder) | |
| base = AutoModelForCausalLM.from_pretrained(config['base_model_name_or_path'], torch_dtype='auto', device_map='auto') | |
| model = PeftModel.from_pretrained(base, adapter_dir) | |
| return model, tokenizer | |
| if __name__ == '__main__': | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument('subfolder') | |
| parser.add_argument('--revision') | |
| args = parser.parse_args() | |
| model, tokenizer = load_adapter(args.subfolder, args.revision) | |
| print('Loaded', args.subfolder) | |