PHP前端开发

在笔记本电脑上解锁DeepSeek RB - 体验我测试过的最聪明的AI模型!

百变鹏仔 3小时前 #Python
文章标签 笔记本电脑

我原本对DeepSeek R1的性能预期不高,但实际测试7B DeepSeek模型(deepseek-ai/deepseek-r1-distill-qwen-7b)后,结果却令人惊喜。

这是一个利用Transformer模型生成用户查询回复的项目,它巧妙地结合了Hugging Face和Torch的Transformers库,实现了高效的模型处理和推理。

配置

前提条件:

安装:

  1. 克隆仓库:
    git clone https://github.com/alexander-uspenskiy/deepseekcd deepseek
  2. 创建并激活虚拟环境:
    python -m venv venvsource venv/bin/activate
  3. 安装所需包:
    pip install transformers torch

使用方法:

  1. 运行主脚本:
    python deepseek.py
  2. 按照提示输入您的问题。输入“quit”退出交互模式。

项目结构

deepseek.py:包含模型设置和回复生成逻辑的主脚本。

示例:

(venv) $ python deepseek.pyenter your question (or 'quit' to exit): a bat and a ball costs 1 dollar and 10 cents in total. the bat costs 1 dollar more than a ball. how much does the ball costs?response: question: a bat and a ball costs 1 dollar and 10 cents in total. the bat costs 1 dollar more than a ball. how much does the ball costs?answer: 5 cents.... (后续推理过程) ...

该模型的回复展现了完整的推理过程,对于可在笔记本电脑上运行的模型而言,这着实令人印象深刻。

源代码:

from transformers import AutoModelForCausalLM, AutoTokenizerimport torchdef setup_model():    model_id = "deepseek-ai/deepseek-r1-distill-qwen-7b"    tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)    model = AutoModelForCausalLM.from_pretrained(        model_id,        torch_dtype=torch.float16,        device_map="auto",        trust_remote_code=True    )    return model, tokenizerdef generate_response(model, tokenizer, prompt, max_length=512):    inputs = tokenizer(prompt, return_tensors="pt", padding=True, truncation=True).to(model.device)    with torch.no_grad():        outputs = model.generate(            inputs.input_ids,            attention_mask=inputs.attention_mask,            max_length=max_length,            temperature=0.7,            top_p=0.9,            do_sample=True,            pad_token_id=tokenizer.pad_token_id,        )    response = tokenizer.decode(outputs[0], skip_special_tokens=True)    return responsedef main():    try:        model, tokenizer = setup_model()        while True:            question = input("enter your question (or 'quit' to exit): ")            if question.lower() == 'quit':                break            prompt = f"question: {question}answer:"            response = generate_response(model, tokenizer, prompt)            print(f"response: {response}")    except Exception as e:        print(f"an error occurred: {str(e)}")if __name__ == "__main__":    main()

故障排除:

如果遇到模型下载或运行问题,请确保网络连接稳定,并尝试以下步骤:

  1. 确保已激活虚拟环境:source venv/bin/activate
  2. 重新安装所需包:pip install --upgrade transformers torch
  3. 检查使用的Python解释器:which python

通过以上步骤,您可以轻松运行并体验DeepSeek R1模型的强大功能。