
我原本对DeepSeek R1的性能预期不高,但实际测试7B DeepSeek模型(deepseek-ai/deepseek-r1-distill-qwen-7b)后,结果却令人惊喜。
这是一个利用Transformer模型生成用户查询回复的项目,它巧妙地结合了Hugging Face和Torch的Transformers库,实现了高效的模型处理和推理。
配置
前提条件:
- Python 3.7或更高版本
- pip (Python包安装程序)
安装:
- 克隆仓库:
git clone https://github.com/alexander-uspenskiy/deepseek cd deepseek
- 创建并激活虚拟环境:
python -m venv venv source venv/bin/activate
- 安装所需包:
pip install transformers torch
使用方法:
- 运行主脚本:
python deepseek.py
- 按照提示输入您的问题。输入“quit”退出交互模式。
项目结构
deepseek.py:包含模型设置和回复生成逻辑的主脚本。
示例:
(venv) $ python deepseek.py enter 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, AutoTokenizer
import torch
def 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, tokenizer
def 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 response
def main():
try:
model, tokenizer = setup_model()
while True:
question = input("\nenter your question (or 'quit' to exit): ")
if question.lower() == 'quit':
break
prompt = f"question: {question}\nanswer:"
response = generate_response(model, tokenizer, prompt)
print(f"\nresponse: {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模型的强大功能。











