Download inference.py from xingruyu/gemma-4-E4B-it-Text-NoMTP: direct link, hf CLI and curl.
- Browser
- Download file 1.42 kB
-
https://huggingface.co/xingruyu/gemma-4-E4B-it-Text-NoMTP/resolve/main/inference.py
- Command line
-
hf download hf://xingruyu/gemma-4-E4B-it-Text-NoMTP/inference.py
-
curl -L -o inference.py https://huggingface.co/xingruyu/gemma-4-E4B-it-Text-NoMTP/resolve/main/inference.py
1.42 kB
| """Run the local text-only model: python inference.py '你好' --device cpu""" | |
| import argparse | |
| from pathlib import Path | |
| import torch | |
| from transformers import AutoModelForCausalLM, AutoTokenizer | |
| def main(): | |
| parser = argparse.ArgumentParser(description=__doc__) | |
| parser.add_argument('prompt', nargs='?', default='请用一句话介绍你自己。') | |
| parser.add_argument('--device', default='cuda' if torch.cuda.is_available() else 'cpu') | |
| parser.add_argument('--max-new-tokens', type=int, default=128) | |
| args = parser.parse_args() | |
| torch.set_num_threads(8) | |
| path = Path(__file__).resolve().parent | |
| tokenizer = AutoTokenizer.from_pretrained(path, local_files_only=True) | |
| model = AutoModelForCausalLM.from_pretrained( | |
| path, trust_remote_code=True, local_files_only=True, dtype=torch.bfloat16, | |
| ).to(args.device).eval() | |
| text = tokenizer.apply_chat_template( | |
| [{'role': 'user', 'content': args.prompt}], tokenize=False, | |
| add_generation_prompt=True, enable_thinking=False, | |
| ) | |
| inputs = tokenizer(text, return_tensors='pt', add_special_tokens=False).to(args.device) | |
| inputs.pop('token_type_ids', None) | |
| with torch.inference_mode(): | |
| tokens = model.generate(**inputs, max_new_tokens=args.max_new_tokens, do_sample=False) | |
| print(tokenizer.decode(tokens[0, inputs.input_ids.shape[1]:], skip_special_tokens=True)) | |
| if __name__ == '__main__': | |
| main() | |