【无标题】

很好,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 服务。

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

相关推荐
BK贝壳4 小时前
亿级用户签到位图选型复盘:用 bool-hybrid-array 扛冷启动打卡,也把它和 Roaring/Redis 的边界测清楚了
数据结构·python·性能优化·numpy
2601_966949655 小时前
如何根据研究的起止时间截取分钟级行情?Python 实战与 QuantDash 数据处理指南
开发语言·python·pandas·量化交易·1024程序员节·股票数据·quantdash
在世修行9 小时前
智学文枢:页面切换与跨页数据预填
python·桌面应用·signal·1024程序员节·pyside·跨页跳转·状态预填
2601_9628857210 小时前
如何用 Python 把 K 线重采样成任意周期?
开发语言·python
打工仔折腾 AI10 小时前
在 Ubuntu ARM64 部署 Q1 V3.0 MuJoCo 模型:加载、单步推理与执行器响应解析
linux·运维·人工智能·python·深度学习·ubuntu·性能优化
信誓旦旦的程序猿11 小时前
【Python量化实战宝典 #21】北向资金跟随手册:聪明钱择时信号(Python 可跑)
python·1024程序员节·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
严谨的麻辣烫11 小时前
静态 ISP 代理请求超时怎么排查?Python 与 curl 实战
python·http·requests·1024程序员节·网络排障
KeepRobots13 小时前
11-01 温哥华不回拨:用 60 行 Python 查你的工单系统会不会差一小时(KeepRobots 工程笔记)
python
xiao77mwq13 小时前
你以为 OCR 慢?实测 81.3 s 里全是故障代价:如何把「定格态」消掉,让耗时从 6.5 s 到 13 倍差距显出原形
python
深圳市益普科技有限公司13 小时前
半导体良率管理YMS:良率与设备参数的相关性,先拉哪几组数据
人工智能·python·算法