Tip
关于minimind的操作我都是在揽睿平台上进行的。
想注册的可以走我的邀请码
git clone https://github.com/jingyaogong/minimind.git
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进行环境控制。 否则后面会深陷泥沼。
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
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模型"
pip install streamlit
cd scripts
streamlit run web_demo.py
Warning
这里系统会启动8501端口(或其他端口),如果想使用web界面,在启动机器前配置好。
我们更重要的是要知道模型是不是具备推理
的能力。
所以我们调整下模型 python eval_model.py --load 1 --model_mode 3
。
看下实际例子吧,
我们问同一个问题,观察结果 一个瓶子和一个塞子总共花了1.10元。瓶子比塞子贵1元。塞子多少钱?
。
Caution
从测试结果来看,没有1个正确答案,而且全是胡扯。
下面是2次实验结果,最简单的模型。
如果不是塞子,他应该如何计算这个问题?我们不能直接回答这个问题。
这个问题是有用的,因为不考虑实际花费。答案是:1元。
设塞子的价格为 \(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元。
首先,我们知道瓶子比塞子贵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元。
首先,我们知道一瓶口的价格是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。
毫无意外的,大模型都很完美的给了正确答案。
而且还能给出常见解题误区。
虽然输出结果正确,但是整个思考过程用了90多秒(试过多次,都在60s以上)