本地-从零开始-源码-运行-大模型
《低配环境下的Qwen2-0.5B大模型本地部署实践》摘要 本文提供了两种在低配Windows10环境(4G内存/无显卡)本地运行Qwen2-0.5B小模型的方法。方式一通过HuggingFace生态实现:使用git克隆模型后,通过PyTorch+Transformers框架加载,特别注意了CPU运行设置和内存优化参数。方式二采用Ollama工具链,演示了从模型下载到API调用的完整流程,包含流式
·
!!!我本地Windows10+,无显卡,4G可用内存,选取很小的模型练手!!!
本文提供了两种在低配Windows10环境(4G内存/无显卡)本地运行Qwen2-0.5B小模型的方法。方式一通过HuggingFace生态实现:使用git克隆模型后,通过PyTorch+Transformers框架加载,特别注意了CPU运行设置和内存优化参数。方式二采用Ollama工具链,演示了从模型下载到API调用的完整流程,包含流式/非流式两种交互方式。测试案例显示模型能正确生成中文回复,验证了方案的可行性。两种方式均给出完整代码示例和异常处理方案,为资源受限环境下的AI实践提供了可复现的参考方案。
方式一:git clone 模型运行
本地部署流程
- 克隆模型:git clone https://www.modelscope.cn/Qwen/Qwen2-0.5B.git
- 模型存放路径找到 C:/Users/WTCL/IdeaProjects/Qwen2-0.5B
- 安装运行模型的python框架
- # pip install torch torchvision torchaudio
- # pip install transformers>=4.37.0
- # pip install accelerate
- 编写代码加载模型,提问
-
import torch import os from pathlib import Path from transformers import AutoModelForCausalLM, AutoTokenizer # 方法:使用 pathlib 构造绝对路径(最可靠) model_path = Path("C:/Users/WTCL/IdeaProjects/Qwen2-0.5B").resolve() # 检查路径是否存在 if not model_path.exists(): raise FileNotFoundError(f"模型目录不存在: {model_path}") print("✅ 使用模型路径:", model_path) # 加载分词器和模型 tokenizer = AutoTokenizer.from_pretrained(str(model_path)) # 加载模型(新版本用 dtype,且需 accelerate) model = AutoModelForCausalLM.from_pretrained( model_path, dtype=torch.float16, # ✅ 新参数名 device_map="cpu" # ✅ 需要 accelerate ) # 设置 pad_token_id(避免警告) if tokenizer.pad_token is None: tokenizer.pad_token = tokenizer.eos_token model.config.pad_token_id = model.config.eos_token_id # 测试生成 input_text = "你好!" inputs = tokenizer(input_text, return_tensors="pt") outputs = model.generate(**inputs, max_new_tokens=30) print("🤖 输出:", tokenizer.decode(outputs[0], skip_special_tokens=True))
运行程序
查看运行的效果:如果有打印输出内容代表模型正常
C:\Java\gitee\authbase-master\authbase-master\venv\Scripts\python.exe C:\Java\gitee\authbase-master\authbase-master\testLocal.py
✅ 使用模型路径: C:\Users\WTCL\IdeaProjects\Qwen2-0.5B
Setting `pad_token_id` to `eos_token_id`:151643 for open-end generation.
🤖 输出: 你好!我最近感觉很累,没有精神,想睡觉,但是又睡不着,有什么办法可以缓解吗?
您好,根据您的症状,
方式二 Ollama运行
本地部署流程
- 下载ollama的Windows版,傻瓜式安装即可
- 安装完成就是这种的
- 安装完成就是这种的
- 按住win+R打开命令窗口
- # 安装qwen2:0.5b参数大模型:ollama pull qwen2:0.5b
- # 卸载: ollama rm qwen2:0.5b
- # 运行模型 : ollama run qwen2:0.5b
- # 停止模型:ollama stop qwen2:0.5b
- # 查看模型是否运行:ollama ps
- 编写代码加载模型,提问
- 安装Ollama的Python脚手架
- # pip install ollama
- 编写代表调用大模型
import ollama
# 连接大模型提问
def api_generate(text: str):
print(f'提问:{text}')
stream = ollama.chat(
model='qwen2:0.5b',
messages=[{"role": "user", "content": text},
{"role": "system", "content": "你必须返回JSON格式的回答,必须使用中文回复"}],
stream=True, # 是否流式输出
)
for i in stream:
# 将对象转为str类型
done = str(i.get("done"))
if done == 'True':
# 判断是否包含done=True
print("\n-----------已经结束了--------\n", )
break
#使用延迟打印一个字一个字的
print(i.get("message").get("content"), end="", flush=True)
print('\n-----------------------------------------\n')
for chunk in stream:
if not chunk['done']:
print(chunk['response'], end='', flush=True)
else:
print('\n')
print('-----------------------------------------')
print(f'总耗时:{chunk['total_duration']}')
print('-----------------------------------------')
# 第二步,启动ollama后,开始调用 Ollama 接口,以调用“qwen2.5:3b”为例
# 启动大模型“qwen2.5:3b”:Win+R调出运行框,输入cmd,在cmd中输入”ollama run qwen2.5:3b“并启动
if __name__ == '__main__':
# 流式
try:
api_generate(text='周杰伦有哪些代表作,请给出具体代表作并说明理由?')
except Exception as e:
print(e)
print(f"更新位置信息失败: {e}")
# 非流式
content = ollama.generate(model='qwen2:0.5b', prompt='周杰伦有哪些代表作,请给出具体代表作并说明理由?')
print(content)
运行程序
查看运行的效果:如果有打印输出内容代表模型正常
提问:周杰伦有哪些代表作,请给出具体代表作并说明理由?
【答案】
1. 《青花瓷》
2. 《射雕英雄传》
3. 《卧虎藏龙》
周杰伦的代表作主要有两部电影和几首歌曲,分别是:《神雕侠侣》、《鹿鼎记》以及《义勇军之壮行队》。其中,《青花瓷》是他在2001年发行的第一张专辑中的一首歌,而后来的作品《射雕英雄传》、《卧虎藏龙》等都是他的代表作。
另外,周杰伦也有自己的歌曲风格和主题,如《隐形的翅膀》、《恋歌》以及《青花瓷》《鹿鼎记》等。这些歌曲都有独特的音乐风格和情感内涵,为他在全球范围内赢得了巨大的影响力。
以上是关于周杰伦的一些代表性作品及他们所代表的风格。
-----------已经结束了--------
-----------------------------------------
model='qwen2:0.5b' created_at='2025-10-22T06:41:27.8151692Z' done=True done_reason='stop' total_duration=843971700 load_duration=157353100 prompt_eval_count=24 prompt_eval_duration=25258700 eval_count=21 eval_duration=617605200 response='《青花瓷》、《九品芝麻官》、《阿诗玛》等。' thinking=None context=[151644, 872, 198, 40542, 102028, 100794, 104719, 99661, 19403, 11, 14880, 107485, 100398, 99661, 19403, 62926, 66394, 102401, 11319, 151645, 198, 151644, 77091, 198, 26940, 99467, 99232, 100930, 25067, 5373, 26940, 99609, 24442, 110701, 99412, 25067, 5373, 26940, 99727, 100045, 101382, 25067, 49567, 1773]
Process finished with exit code 0
结束完结撒花
恭喜你,你也完成了玩具车版的大模型本地运行
参考资源
- 相关工具链文档:Hugging Face、PyTorch官方指南
- 社区支持:GitHub Issues、Discord技术群组链接
更多推荐



所有评论(0)