trinity.utils.lora_utils 源代码

from typing import Optional


[文档] def create_dummy_lora( model_path: str, checkpoint_job_dir: str, lora_rank: int, lora_alpha: int, target_modules: str, exclude_modules: Optional[str] = None, ) -> str: import torch from peft import LoraConfig, TaskType, get_peft_model from transformers import AutoConfig, AutoModelForCausalLM config = AutoConfig.from_pretrained(model_path) if not hasattr(config, "vocab_size"): # for Qwen3.5, vocab_size is not stored in the top-level config if not hasattr(config, "get_text_config"): raise ValueError( f"Model config loaded from {model_path!r} has neither 'vocab_size' " "nor 'get_text_config()', so a text config cannot be derived." ) # For some models, vocab_size may only be available on the text sub-config. config = config.get_text_config() if not hasattr(config, "vocab_size"): raise ValueError( f"Text config derived from {model_path!r} does not define 'vocab_size'." ) model = AutoModelForCausalLM.from_config(config) lora_config = { "task_type": TaskType.CAUSAL_LM, "r": lora_rank, "lora_alpha": lora_alpha, "target_modules": target_modules, "exclude_modules": exclude_modules, "bias": "none", } peft_model = get_peft_model(model, LoraConfig(**lora_config)) peft_model.save_pretrained(f"{checkpoint_job_dir}/dummy_lora") del model, peft_model torch.cuda.empty_cache() return f"{checkpoint_job_dir}/dummy_lora"