Text Generation
Transformers
Safetensors
qwen3
llama-factory
full
Generated from Trainer
conversational
text-generation-inference
Instructions to use ayh015/myLightningOPD with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use ayh015/myLightningOPD with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="ayh015/myLightningOPD") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("ayh015/myLightningOPD") model = AutoModelForCausalLM.from_pretrained("ayh015/myLightningOPD", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use ayh015/myLightningOPD with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "ayh015/myLightningOPD" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "ayh015/myLightningOPD", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/ayh015/myLightningOPD
- SGLang
How to use ayh015/myLightningOPD 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 "ayh015/myLightningOPD" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "ayh015/myLightningOPD", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'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 "ayh015/myLightningOPD" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "ayh015/myLightningOPD", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use ayh015/myLightningOPD with Docker Model Runner:
docker model run hf.co/ayh015/myLightningOPD
| # SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | |
| # SPDX-License-Identifier: Apache-2.0 | |
| import ray | |
| from sglang.srt.constants import GPU_MEMORY_TYPE_KV_CACHE, GPU_MEMORY_TYPE_WEIGHTS | |
| try: | |
| from sglang.srt.constants import GPU_MEMORY_TYPE_CUDA_GRAPH | |
| except ImportError: | |
| GPU_MEMORY_TYPE_CUDA_GRAPH = None | |
| from slime.ray.placement_group import create_placement_groups, create_rollout_manager, create_training_models | |
| from slime.utils.arguments import parse_args | |
| from slime.utils.logging_utils import configure_logger | |
| from slime.utils.tracking_utils import init_tracking | |
| def train(args): | |
| configure_logger() | |
| # allocate the GPUs | |
| pgs = create_placement_groups(args) | |
| init_tracking(args) | |
| # create the rollout manager, with sglang engines inside. | |
| # need to initialize rollout manager first to calculate num_rollout | |
| rollout_manager, num_rollout_per_epoch = create_rollout_manager(args, pgs["rollout"]) | |
| # create the actor and critic models | |
| actor_model, critic_model = create_training_models(args, pgs, rollout_manager) | |
| if args.offload_rollout: | |
| ray.get(rollout_manager.onload.remote(tags=[GPU_MEMORY_TYPE_WEIGHTS])) | |
| if args.offload_train and not args.enable_weights_backuper: | |
| actor_model.onload() | |
| # always update weight first so that sglang has the loaded weights from training. | |
| actor_model.update_weights() | |
| if args.offload_train and not args.enable_weights_backuper: | |
| actor_model.offload() | |
| if args.offload_rollout: | |
| if GPU_MEMORY_TYPE_CUDA_GRAPH is not None: | |
| ray.get(rollout_manager.onload.remote(tags=[GPU_MEMORY_TYPE_CUDA_GRAPH])) | |
| ray.get(rollout_manager.onload.remote(tags=[GPU_MEMORY_TYPE_KV_CACHE])) | |
| # special case for eval-only | |
| if args.num_rollout == 0 and args.eval_interval is not None: | |
| ray.get(rollout_manager.eval.remote(rollout_id=0)) | |
| def offload_train(): | |
| if args.offload_train: | |
| if args.use_critic: | |
| critic_model.offload() | |
| if rollout_id >= args.num_critic_only_steps: | |
| actor_model.offload() | |
| else: | |
| actor_model.offload() | |
| else: | |
| actor_model.clear_memory() | |
| def onload_rollout(): | |
| if args.offload_rollout: | |
| ray.get(rollout_manager.onload.remote(tags=[GPU_MEMORY_TYPE_WEIGHTS])) | |
| # train loop. | |
| # note that for async training, one can change the position of the sync operation(ray.get). | |
| for rollout_id in range(args.start_rollout_id, args.num_rollout): | |
| # TODO extract the duplicated eval logic | |
| if args.eval_interval is not None and rollout_id == 0: | |
| ray.get(rollout_manager.eval.remote(rollout_id)) | |
| rollout_data_ref = ray.get(rollout_manager.generate.remote(rollout_id)) | |
| if args.offload_rollout: | |
| ray.get(rollout_manager.offload.remote()) | |
| if args.use_critic: | |
| critic_train_handle = critic_model.async_train(rollout_id, rollout_data_ref) | |
| if rollout_id >= args.num_critic_only_steps: | |
| ray.get(actor_model.async_train(rollout_id, rollout_data_ref)) | |
| ray.get(critic_train_handle) | |
| else: | |
| ray.get(actor_model.async_train(rollout_id, rollout_data_ref)) | |
| if args.save_interval is not None and ( | |
| (rollout_id + 1) % args.save_interval == 0 | |
| or (num_rollout_per_epoch is not None and (rollout_id + 1) % num_rollout_per_epoch == 0) | |
| ): | |
| if (not args.use_critic) or (rollout_id >= args.num_critic_only_steps): | |
| actor_model.save_model(rollout_id) | |
| if args.use_critic: | |
| critic_model.save_model(rollout_id) | |
| if args.rollout_global_dataset: | |
| ray.get(rollout_manager.save.remote(rollout_id)) | |
| # Policy lag: only sync rollout engine weights every update_weights_interval steps. | |
| # When lag > 1, the rollout engine runs with stale weights; IS correction | |
| # (--use-rollout-logprobs + --use-tis) handles the resulting distribution shift. | |
| should_sync = (rollout_id - args.start_rollout_id + 1) % args.update_weights_interval == 0 | |
| if args.enable_weights_backuper: | |
| offload_train() | |
| onload_rollout() | |
| if should_sync: | |
| actor_model.update_weights() | |
| else: | |
| actor_model.clear_memory() | |
| onload_rollout() | |
| if should_sync: | |
| actor_model.update_weights() | |
| offload_train() | |
| if args.offload_rollout: | |
| if GPU_MEMORY_TYPE_CUDA_GRAPH is not None: | |
| ray.get(rollout_manager.onload.remote(tags=[GPU_MEMORY_TYPE_CUDA_GRAPH])) | |
| ray.get(rollout_manager.onload.remote(tags=[GPU_MEMORY_TYPE_KV_CACHE])) | |
| if args.eval_interval is not None and ( | |
| (rollout_id + 1) % args.eval_interval == 0 | |
| or (num_rollout_per_epoch is not None and (rollout_id + 1) % num_rollout_per_epoch == 0) | |
| ): | |
| ray.get(rollout_manager.eval.remote(rollout_id)) | |
| ray.get(rollout_manager.dispose.remote()) | |
| if __name__ == "__main__": | |
| args = parse_args() | |
| train(args) | |