StoneRen

minimind 全纪录 01: 快速试用

Mar 09, 2025

官网:https://github.com/jingyaogong/minimind

这里记录下minimind的全过程,希望能够帮忙避坑。

可以直接查看测试结果

Tip

关于minimind的操作我都是在揽睿平台上进行的。
想注册的可以走我的邀请码

00 快速开始

01 代码下载

git clone https://github.com/jingyaogong/minimind.git

02 环境准备

Important

一定要先看这篇文章,否则你会像我一样,浪费大量时间和精力。

揽睿持久化的避坑策略

Warning

前提条件是先需要安装rust
否则会报错 can't find Rust compiler

# 可以把以下两行添加到 ~/.bashrc 等文件,使之成为全局环境变量,这样后续所有 rustup 或 cargo 命令均会使用此环境变量
export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup
export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.bashrc
conda create -n minimind python=3.12
conda init
source ~/.bashrc
conda activate minimind

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

Tip

这里建议,还是用conda进行环境控制。 否则后面会深陷泥沼。

03 下载模型

git clone https://huggingface.co/jingyaogong/MiniMind2

Important

在特殊时间里,需要走中国镜像

中国镜像操作方法:

pip install -U huggingface_hub
export HF_ENDPOINT=https://hf-mirror.com
huggingface-cli download --resume-download jingyaogong/MiniMind2 --local-dir MiniMind2

04 试运行

bash

python eval_model.py --load 1 --model_mode 2

Tip

'–load':
"0: 原生torch权重,1: transformers加载"

'–model_mode':
"0: 预训练模型,1: SFT-Chat模型,2: RLHF-Chat模型,3: Reason模型"

实际效果

webui

pip install streamlit
cd scripts
streamlit run web_demo.py

Warning

这里系统会启动8501端口(或其他端口),如果想使用web界面,在启动机器前配置好。

01 测试结果

我们更重要的是要知道模型是不是具备推理的能力。
所以我们调整下模型 python eval_model.py --load 1 --model_mode 3
看下实际例子吧,
我们问同一个问题,观察结果 一个瓶子和一个塞子总共花了1.10元。瓶子比塞子贵1元。塞子多少钱?

Caution

从测试结果来看,没有1个正确答案,而且全是胡扯。

MiniMind

Model=0 预训练模型

下面是2次实验结果,最简单的模型。

如果不是塞子,他应该如何计算这个问题?我们不能直接回答这个问题。

这个问题是有用的,因为不考虑实际花费。答案是:1元。

Model=1 SFT-Chat模型

设塞子的价格为 \(x\) 元。
根据题意,瓶子比塞子贵1元,即 \(x = 1.10\) 元。
设塞子价格为 \(x + 1.10\) 元,瓶子比塞子贵1元,即 \(x + 1.10 = 1.10\) 元。
将上述等式化简为 \(x + 1.10 = 1.10\) 元。
解这个等式:

1.1 求解 \(x + 1.10 = 1.10\) 元
1.1 求解 \(x + 1.10 = 1.10\) 元
1.1 求解 \(x + 1.10 = 1.10\) 元
1.1 求解 \(x + 1.10 = 1.10\) 元
1.1 求解 \(x + 1.10 = 1.1\) 元
1.1 求解 \(x + 1.10 = 1.1\) 元
1.1 求解 \(x + 1.10 = 1.1\) 元
...

Caution

后面的 ... 是,大模型死循环了,一直在输出同样的话,果断制止

首先,我们设瓶子的价格为 \(x\) 元,塞子的价格为 \(y\) 元。
根据题目,瓶子比塞子贵1元,因此:
x + y = 1.10
我们已经知道了 \(x = y\),所以:
x = y + 1.10
将这个方程代入上述方程中,得到:
x + y = 1.10
简化后得到:
x = 1.10
因此,塞子有1.10元。

Model=2 RLHF-Chat模型

首先,我们知道瓶子比塞子贵1元。因此,我们可以用乘法来计算:
\[ \text{瓶子比塞子贵1元} = \text{瓶子比塞子贵1元} \times 1 \]
接下来,我们知道塞子比塞子贵1元。因此,我们可以用除法来计算:
\[ \text{瓶子比塞子贵1元} = \frac{\text{瓶子比塞子贵1元}}{\text{瓶子比塞子贵1元}} \]
将上述两个式子代入:
\[ \text{瓶子比塞子贵1元} = \frac{1}{1 + 1} \]
\[ \text{瓶子比塞子贵1元} = \frac{1}{1 + 1} \]
\[ \text{瓶子比塞子贵1元} = \frac{1}{1 + 1} \]
\[ \text{瓶子比塞子贵1元} = \frac{1}{1 + 1} \]
\[ \text{瓶子比塞子贵1元} = \frac{1}{1 + 1} \]
\[ \text{瓶子比塞子贵1元} = \frac{1}{1 + 1} \]
\[ \text{瓶子比塞子贵1元} = \frac{1}{1 + 1} \]
因此,塞子总共花了1.10元。
设塞子的价格为x元,则瓶子比塞子贵1元。根据题意,可以列出两个方程:
x + 1.10 = x
解方程得到:
x = 1.10 - 1.10 = 1.2
因此,塞子花了1.2元。
答案:塞子花了1.2元。

Model=3 Reason模型

首先,我们知道一瓶口的价格是1元。
接着,我们知道一瓶瓶子的价格是1元。
因此,一瓶口的价格是1元。
最后,我们得出结论,一瓶口的价格是1元。
答案是1元。
首先,我们知道瓶子和塞子的总花费是1.10元。因此,我们可以通过用1.10元除以1.10来得到瓶子的价格。
1. 计算1.10元除以1.10元:
1.10 ÷ 1.10 = 10
所以,1.10元除以1.10元等于10元。
接下来,我们来计算塞子的总价:
1.10元 ÷ 1.10元/元 = 10元
所以,1.10元除以1.10元/元 = 1.10元。
所以,1.10元除以1.10元/元 = 10元。
综上所述,一个瓶子和一个塞子总共花了1.10元。

从输出结果上看,本模型的推理能力为0。

VS

毫无意外的,大模型都很完美的给了正确答案。
而且还能给出常见解题误区。

Claude 3.7

claude的推理结果

DeepSeek R1

DeepSeek的推理结果

QwQ 32B

虽然输出结果正确,但是整个思考过程用了90多秒(试过多次,都在60s以上)

QWen 32B的推理结果
0-PRESENT © StoneRenver:2509181051