Instructions to use johnpaulbin/gpt2-skript-base with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use johnpaulbin/gpt2-skript-base with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="johnpaulbin/gpt2-skript-base")# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("johnpaulbin/gpt2-skript-base") model = AutoModelForCausalLM.from_pretrained("johnpaulbin/gpt2-skript-base", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use johnpaulbin/gpt2-skript-base with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "johnpaulbin/gpt2-skript-base" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "johnpaulbin/gpt2-skript-base", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/johnpaulbin/gpt2-skript-base
- SGLang
How to use johnpaulbin/gpt2-skript-base with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "johnpaulbin/gpt2-skript-base" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "johnpaulbin/gpt2-skript-base", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "johnpaulbin/gpt2-skript-base" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "johnpaulbin/gpt2-skript-base", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use johnpaulbin/gpt2-skript-base with Docker Model Runner:
docker model run hf.co/johnpaulbin/gpt2-skript-base
| import torch | |
| import gc | |
| from ts.torch_handler.base_handler import BaseHandler | |
| from transformers import GPT2LMHeadModel | |
| import logging | |
| logger = logging.getLogger(__name__) | |
| class SampleTransformerModel(BaseHandler): | |
| def __init__(self): | |
| super(SampleTransformerModel, self).__init__() | |
| self.model = None | |
| self.device = None | |
| self.initialized = False | |
| def load_model(self, model_dir): | |
| self.model = GPT2LMHeadModel.from_pretrained(model_dir, return_dict=True) | |
| self.model.to(self.device) | |
| def initialize(self, ctx): | |
| # self.manifest = ctx.manifest | |
| properties = ctx.system_properties | |
| model_dir = properties.get("model_dir") | |
| self.device = torch.device("cuda:" + str(properties.get("gpu_id")) if torch.cuda.is_available() else "cpu") | |
| self.load_model(model_dir) | |
| self.model.eval() | |
| self.initialized = True | |
| def preprocess(self, requests): | |
| input_batch = {} | |
| for idx, data in enumerate(requests): | |
| input_ids = torch.tensor([data.get("body").get("text")]).to(self.device) | |
| input_batch["input_ids"] = input_ids | |
| input_batch["num_samples"] = data.get("body").get("num_samples") | |
| input_batch["length"] = data.get("body").get("length") + len(data.get("body").get("text")) | |
| del requests | |
| gc.collect() | |
| return input_batch | |
| def inference(self, input_batch): | |
| input_ids = input_batch["input_ids"] | |
| length = input_batch["length"] | |
| inference_output = self.model.generate(input_ids, | |
| bos_token_id=self.model.config.bos_token_id, | |
| eos_token_id=self.model.config.eos_token_id, | |
| pad_token_id=self.model.config.eos_token_id, | |
| do_sample=True, | |
| max_length=length, | |
| top_k=50, | |
| top_p=0.95, | |
| no_repeat_ngram_size=2, | |
| num_return_sequences=input_batch["num_samples"]) | |
| if torch.cuda.is_available(): | |
| torch.cuda.empty_cache() | |
| del input_batch | |
| gc.collect() | |
| return inference_output | |
| def postprocess(self, inference_output): | |
| output = inference_output.cpu().numpy().tolist() | |
| del inference_output | |
| gc.collect() | |
| return [output] | |
| def handle(self, data, context): | |
| # self.context = context | |
| data = self.preprocess(data) | |
| data = self.inference(data) | |
| data = self.postprocess(data) | |
| return data | |