【无标题】

很好,Python 3.8.5 完全够用(第一天不需要更高版本)。接下来继续第一天剩余的任务 :在 base 环境里安装必需的库,并成功跑通第一个本地大模型。


第1步:确保你在 base 环境中

你的终端提示符前面已经有 (base),说明已经在 base 环境里。如果没有,运行:

bash 复制代码
conda activate base

第2步:安装三个核心库(约10分钟)

在 (base) 提示符下,依次执行(或一次性复制粘贴):

bash 复制代码
pip install torch transformers sentence-transformers
  • 如果下载慢,可以临时换成国内镜像:

    bash 复制代码
    pip 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 环境下执行命令:

    bash 复制代码
    conda 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} 秒")
  • 第三步:运行新代码

    在终端运行:

    bash 复制代码
    python 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 服务。

如果现在时间充裕,可以先把脚本跑通,把成功截图或报错信息发给我。

相关推荐
Web3&Basketball8 小时前
推理账单失控之后:路由缓存批处理省下的钱
深度学习·大模型·ai技术
在世修行9 小时前
干货:业务标识 vs 自动判据
python
zwd20059 小时前
Manim move_to 和 shift 用法详解:相对位移、绝对落点与 aligned_edge(0.21.0 实测)
python·动画·可视化·shift·manim·数学动画·move_to
“AI国潮设计-小江”9 小时前
《Python+SDXL实战:用ControlNet精准控制“英歌舞戚风蛋糕”质感,附批量生成脚本》
开发语言·人工智能·python·prompt·aigc
薛定e的猫咪9 小时前
(AISTATS 2023)BaCaDI:未知干预下的贝叶斯因果发现
人工智能·深度学习·算法·机器学习
jayhgq9 小时前
新一代Python包与项目管理工具——UV
开发语言·python·uv
for_ever_love__9 小时前
文件与异常——open、json、with 与 try-except 的工程写法
python·异常处理·文件操作·大模型开发
XLYcmy9 小时前
PDF 论文处理器 — 技术报告文档
数据库·python·网络安全·pdf·embedding·dify·rag
weixin_440401699 小时前
质朴的可视化绘图+pyecharts
开发语言·python·信息可视化·pyecharts
计算机毕业编程指导师9 小时前
【Python毕设选题推荐】基于Spark的国内主要农作物产量趋势分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·python·数据分析·spark·毕业设计·课程设计·农作物产量