很好,Python 3.8.5 完全够用(第一天不需要更高版本)。接下来继续第一天剩余的任务 :在 base 环境里安装必需的库,并成功跑通第一个本地大模型。
第1步:确保你在 base 环境中
你的终端提示符前面已经有 (base),说明已经在 base 环境里。如果没有,运行:
bash
conda activate base
第2步:安装三个核心库(约10分钟)
在 (base) 提示符下,依次执行(或一次性复制粘贴):
bash
pip install torch transformers sentence-transformers
-
如果下载慢,可以临时换成国内镜像:
bashpip install -i https://pypi.tuna.tsinghua.edu.cn/simple torch transformers sentence-transformers -
这不会影响你原有的 conda 环境,因为
pip install只会装到当前激活的 base 环境里。
第3步:写一个测试脚本 test_model.py
在你习惯的目录下(比如 C:\Users\Lenovo\ai_test)新建一个文件 test_model.py,内容如下:
python
import time
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "Qwen/Qwen2-0.5B-Instruct" # 约300MB,适合CPU运行
print("正在加载模型和分词器(首次会自动下载)...")
start = time.time()
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
model_name,
trust_remote_code=True,
device_map="cpu"
)
print(f"加载完成,耗时 {time.time()-start:.2f} 秒")
prompt = "介绍一下什么是LLM"
messages = [{"role": "user", "content": prompt}]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt")
start_gen = time.time()
outputs = model.generate(
inputs.input_ids,
max_new_tokens=200,
temperature=0.7,
do_sample=True,
pad_token_id=tokenizer.eos_token_id
)
gen_time = time.time() - start_gen
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
assistant_response = response.split("assistant")[-1].strip()
print("\n--- 模型回答 ---")
print(assistant_response)
print(f"\n生成耗时:{gen_time:.2f} 秒")
本地下载模型失败,改成了魔塔模型。过程如下,
-
第一步:安装 ModelScope 库
在
ai_env环境下执行命令:bashconda activate ai_env pip install modelscope -
第二步:创建并使用新代码
新建一个
test_modelscope.py文件,将下面内容粘贴进去。这段代码直接通过 ModelScope 接口来加载和测试模型,不依赖transformers库,是目前最稳妥的连接方式:python# test_modelscope.py from modelscope import AutoModelForCausalLM, AutoTokenizer import time # 指定 ModelScope 上的模型ID model_id = 'qwen/Qwen2-0.5B-Instruct' print("正在从 ModelScope (魔搭) 加载模型,首次下载可能需几分钟...") start = time.time() # 加载模型和分词器 model = AutoModelForCausalLM.from_pretrained(model_id, trust_remote_code=True) tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True) print(f"模型加载完成,耗时 {time.time()-start:.2f} 秒") prompt = "介绍一下什么是LLM" messages = [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": prompt} ] text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) inputs = tokenizer(text, return_tensors="pt") start_gen = time.time() outputs = model.generate(inputs.input_ids, max_new_tokens=200, temperature=0.7, do_sample=True) gen_time = time.time() - start_gen response = tokenizer.decode(outputs[0], skip_special_tokens=True) # 清理输出,只保留助手的回复 assistant_response = response.split("assistant")[-1].strip() print("\n--- 模型回答 (来自 ModelScope) ---") print(assistant_response) print(f"\n生成耗时:{gen_time:.2f} 秒") -
第三步:运行新代码
在终端运行:
bashpython test_modelscope.py运行后,应该就能看到模型成功下载并生成回答了。如果你运行的是
test_modelscope.py文件,模型就已经准备好,可以继续完成第一天的学习任务了。
第4步:运行脚本
bash
python C:\Users\Lenovo\ai_test\test_model.py
(如果你把文件放在了别处,请替换成实际路径)
第一次运行会下载模型文件(大约300-400MB),取决于网速可能需要1-3分钟。之后你会看到类似下面的输出:
正在加载模型...
加载完成,耗时 52.13 秒
--- 模型回答 ---
LLM是Large Language Model的缩写,即大语言模型...
生成耗时:2.67 秒
如果遇到常见问题
| 问题 | 解决方法 |
|---|---|
Connection error 或下载极慢 |
设置镜像环境变量: set HF_ENDPOINT=https://hf-mirror.com 然后重新运行脚本 |
No module named 'torch' |
检查是否在 (base) 环境里,重新执行 pip install torch |
内存不足(报 MemoryError) |
换一个更小的模型:model_name = "facebook/opt-125m" |
| 输出乱码或无意义重复 | 正常现象,模型太小。可以降低 temperature 到 0.1 再试 |
今天的产出 :
✅ 你在 base 环境里成功安装了 AI 库
✅ 你运行了第一个本地大模型推理,看到了文字输出
明天我们会基于这个模型,用 FastAPI 把它包装成一个 HTTP 服务。
如果现在时间充裕,可以先把脚本跑通,把成功截图或报错信息发给我。