LLM实践——下载、加载(启动)、微调、量化等


一些cuda使用命令:
查看cuda当前情况(更新时间间隔为1秒): watch -n 1 nvidia-smi

一、模型下载、加载

1、modelscope模型下载:

Python代码方式:

from modelscope import snapshot_download
model_dir = snapshot_download(
	'qwen/Qwen1.5-14B-Chat',  # 模型id,在modelscope上
	cache_dir = '/home/yt/models' # 模型的存储路径
	)

也可以使用git的方式,但是这个方式很慢,而且容易中途出现中断,或者下载的模型文件不完整。

2、modelscope模型加载(基于transformers)

  • 下述模块版本可以正常运行:
    torch == 2.2.0 + cpu
    transformers == 4.37.2
    modelscope == 1.12.0

python代码如下:

from transformers import AutoModelForCausalLM, AutoTokenizer

def model_inferByTrans(model_file = "E:/CQF/LLM/ai_mycode/llm_api/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-1___5B"):
    device = "cpu" # the device to load the model onto,有cuda时,该值可以是cuda

    # Now you do not need to add "trust_remote_code=True"
    model = AutoModelForCausalLM.from_pretrained(
        model_file,
        torch_dtype="auto",
        device_map="cpu" # (之前指定的值是auto)使用cpu加载模型时,该值必须为cpu,否则报错:ValueError: You are trying to offload the whole model to the disk. Please us
    )
    tokenizer = AutoTokenizer.from_pretrained(model_file)

    # Instead of using model.chat(), we directly use model.generate()
    # But you need to use tokenizer.apply_chat_template() to format your inputs as shown below
    messages = [
            {
   "role": "system", "content": "You are a helpful assistant."}
        ]
    while True:
        prompt = input('请输入你的prompt:')
        messages.append(
            {
   "role": "user", "content": prompt}
        )
        text = tokenizer.apply_chat_template(
            messages,
            tokenize=False,
            add_generation_prompt=True
        )
        model_inputs = tokenizer([text], return_tensors="pt").to(device)

        # Directly use generate() and tokenizer.decode() to get the output.
        # Use `max_new_tokens` to control the maximum output length.
        generated_ids = model.generate(
            model_inputs.input_ids,
            max_new_tokens=512
        )
        generated_ids 
### 部署和微调 Ollama 模型 #### 下载并准备模型文件 为了开始部署和微调过程,首先需要获取预训练的大规模语言模型(LLM)。这通常涉及下载由社区或其他开发者共享的GGUF格式文件。这些文件包含了已经过初步训练的语言模型参数。 对于Ollama平台而言,在获得所需的`.gguf`文件之后,应当将其放置于指定的工作目录下以便后续操作[^1]。 #### 加载已有模型 一旦拥有合适的模型文件,就可以通过命令行工具轻松加载它。具体来说,启动Ollama环境后,可以通过如下命令访问已有的模型实例: ```bash ollama run llama3.2 ``` 这条指令会读取名为`llama3.2`的模型配置,并按照其设定运行相应的服务端点[^2]。 #### 准备用于微调的数据结构 当计划对特定领域或应用场景下的模型性能进行优化时,则需创建一个新的模板文件——即所谓的`Modelfile`。此文件定义了一个简单的映射关系,用来指导如何处理输入提示(`prompt`)与输出响应之间的转换逻辑。例如: ```plaintext FROM /path/to/your/model-unsloth.Q4_K_M.gguf TEMPLATE "[INST] {{ .Prompt }} [/INST]" ``` 这里的第一行指定了要使用的量化版本的基础模型位置;第二行列出了具体的对话框格式化规则,确保每次交互都能被正确解析为标准形式[^3]。 #### 创建自定义微调后的模型实例 完成上述准备工作后,下一步就是利用之前构建好的`Modelfile`来生成新的、经过个性化调整过的模型实体。执行下面的shell命令可以实现这一点: ```bash ollama create my_custom_model -f path_to_modelfile.txt ``` 其中`my_custom_model`代表新创建出来的模型名称,而后面的选项则指向了早先编辑完毕的那个文本描述文件的位置。这样就完成了整个流程中最核心的部分之一:定制化的微调工作。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值