在笔记本电脑上解锁DeepSeek RB - 体验我测试过的最聪明的AI模型!
我原本对DeepSeek R1的性能预期不高,但实际测试7B DeepSeek模型(deepseek-ai/deepseek-r1-distill-qwen-7b)后,结果却令人惊喜。
这是一个利用Transformer模型生成用户查询回复的项目,它巧妙地结合了Hugging Face和Torch的Transformers库,实现了高效的模型处理和推理。
配置
前提条件:
安装:
- 克隆仓库:
git clone https://github.com/alexander-uspenskiy/deepseekcd deepseek
- 创建并激活虚拟环境:
python -m venv venvsource venv/bin/activate
- 安装所需包:
pip install transformers torch
使用方法:
- 运行主脚本:
python deepseek.py
- 按照提示输入您的问题。输入“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()
故障排除:
如果遇到模型下载或运行问题,请确保网络连接稳定,并尝试以下步骤:
- 确保已激活虚拟环境:source venv/bin/activate
- 重新安装所需包:pip install --upgrade transformers torch
- 检查使用的Python解释器:which python
通过以上步骤,您可以轻松运行并体验DeepSeek R1模型的强大功能。