赞
踩
23.10.2 刚开始玩,比较肤浅,后面随时更新
23.10.28 加入了 llama2中文版
image.png
我自己12G显卡,以跑图中第一个,算是全模型了,有点慢,但能跑;如果显卡不太行,可以跑第二个int4的(也是推荐两个地方结合下载),这个装在速度快很多,生成的东西我觉得也能看。
pip install -r requirements.txt
我这里报了一个错忘了,忘了记录了,大概是pytorch版本和cuda不兼容的问题,注意pytorch版本要2.0以上,cuda我用的11.8(chatglm和后面的llama2都能跑)。下面语句就是安装pytorch2.0.x的cuda118对应版本,我这里装完就好了。
-
- pip install torch==2.0.0+cu118 torchvision==0.15.1+cu118 torchaudio==2.0.1 --index-url https/download.pytorch.org/whl/cu118
- tokenizer = AutoTokenizer.from_pretrained(r"\模型路径\", trust_remote_code=True)
- model = AutoModel.from_pretrained(r""\模型路径\", trust_remote_code=True).cuda()
推荐把hugging face和清华网盘无论哪下载的模型(注意要下载hugging face中的所有文件)都拷贝到一个单独的目录下,然后修改代码中对应的语句中的路径即可(建议写绝对路径)。
下面提供的三个例子文件中,都有上面这这两处语句,一眼都能看见,很好改。
4,三个demo,理论上可以直接用:
python cli_demo.py (命令行,完全没问题)
python web_demo.py *(基于Gradio,我跑的时候网页能开,能输入问题,然后就卡住了,据说是Gradio有个谷歌字体检查的的什么问题,但简单搞了一下没搞定,。。。 )
streamlit run web_demo2.py(基于Streamlit ,官方推荐用这个,我跑的时候Streamlit 报错,好像和记录历史啥的有关,如果看到报错中history啥的,可以把 web_demo2.py中大概43-47行注释掉)
总之这就算是能用了,还是挺顺利的。
我这里搭建是推理模型,没试过微调咋搞。
网上教程有两个流派,一个是直接用llama cpp,一个是用text-generation-webui,明显用第二种方法更加简单。流程上,直接参考webui这个主页上的教程即可,要么one-click安装,要么用下面的manual installation using conda,但我遇到坑了,感觉还是手动方式更容易必坑。此外中途遇到一些网络问题,有点麻烦。
我遇到坑是在2023.10月左右,后续新版可能会解决。
主要流程:
1. 建立并激活一个conda环境,官网要求python=3.11版本,实测应该用3.10,因为打开他自己的requirements.txt,发现他自己的包都是面向3.10的。
2. 下面安装torch,官网提示应该用cu121版本,但我实测用118版本也行。
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
3. 安装CUDA runtime libraries,注意cuda版本,我这里仍然用11.8(11.8.0)
conda install -y -c "nvidia/label/cuda-11.8.0" cuda-runtime
4. 下载 text-generation-webui代码,并解压,在激活的conda环境中执行:
pip install -r requirements.txt
如果是非英伟达显卡,或amd cpu等,需要酌情使用不同的requirements。这个建议直接看官网教程,有个详细的表和一些对应执行的命令。
这一步是git和pip混合执行的,我在这里遇到了一些网络问题,挺麻烦的。此外如果用python的非3.10版本,这里就肯定过不去了,需要手动到requirements.txt里面该版本,还是很费劲的。
5. 下载模型,可以直接去这里下载模型,有链接指向百度网盘,还是比较快的。 GitHub - ymcui/Chinese-LLaMA-Alpaca-2: 中文LLaMA-2 & Alpaca-2大模型二期项目 + 16K超长上下文模型 (Chinese LLaMA-2 & Alpaca-2 LLMs, including 16K long context models)中文LLaMA-2 & Alpaca-2大模型二期项目 + 16K超长上下文模型 (Chinese LLaMA-2 & Alpaca-2 LLMs, including 16K long context models) - GitHub - ymcui/Chinese-LLaMA-Alpaca-2: 中文LLaMA-2 & Alpaca-2大模型二期项目 + 16K超长上下文模型 (Chinese LLaMA-2 & Alpaca-2 LLMs, including 16K long context models)https://github.com/ymcui/Chinese-LLaMA-Alpaca-26. 下载好的模型连同目录放到text-generation-webui的model文件夹下面,执行:
python server.py
然后根据提示打开web页面即可,首次使用需要到配置界面load一下模型。
其他详细的用法还在摸索。
-bash download.sh
- if [[ $m == "7B" ]]; then
- SHARD=0
- MODEL_PATH="llama-2-7b"
- elif [[ $m == "7B-chat" ]]; then
- SHARD=0
- MODEL_PATH="llama-2-7b-chat"
- elif [[ $m == "13B" ]]; then
- SHARD=1
- MODEL_PATH="llama-2-13b"
- elif [[ $m == "13B-chat" ]]; then
- SHARD=1
- MODEL_PATH="llama-2-13b-chat"
- elif [[ $m == "70B" ]]; then
- SHARD=7
- MODEL_PATH="llama-2-70b"
- elif [[ $m == "70B-chat" ]]; then
- SHARD=7
- MODEL_PATH="llama-2-70b-chat"

这样看大致就能明白了吧(看MODEL_PATH)。
如果是自动下载,只要网络没问题,这些事情都不需要自己搞。
如果是ubuntu下,现在就能用了,如果是windows下,需要到llama子目录下,找到generation.py,第85行,把"nccl
"改为"gloo",因为windows不支持nccl。
image.png
记录一下几个坑。 感觉conda和SDW不是特别搭配,网上有其他教程,使用下来都不是很顺。SDW原本倾向于自己管理下载,并建立一个venv环境。但确实能搞。
在我之前的旧机器上,直接使用系统python环境,但之后SDW自己建了一个venv环境(貌似会继承全局的一些库),现在尝试不用它自己的venv,用conda管理他的依赖库。
我的大致步骤:
1. 新搞了个4090,在新机的情况下用miniconda建环境,,即在命令行环境先create再activate,然后切换到stable-diffusion-web的目录下,(注意在激活的conda环境中)执行:
pip install -r requests_versions.txt
注意,其根目录下还有个request.txt,但这里面没指定库的版本。
2.我用的conda环境指定了python3.10版本,之前用3.10.10,在pip安装时,会报版本高了,但实际应该也能用,因为我在之前机器上用的也是3.10.10,并没有问题。
我自己卡在pip这块,卡在:
Preparing metadata (setup.py) ...
网上教程的提示,一个是pip指令加上 --verbose看看详细报错,另一个是加上--use-pep517参数。但这个问题我在之前老机器上,直接用系统环境pip没出现过。
3. 还是要手动装一下pytorch,我还是cuda 11.8 ,所以指令和上文是一样的:
-
- pip install torch==2.0.0+cu118 torchvision==0.15.1+cu118 torchaudio==2.0.1 --index-url https/download.pytorch.org/whl/cu118
4. 在stable-diffusion-web目录下,找到webui-user.bat(注意后续就用这个启动),打开编辑,修改:
set VENV_DIR=-
注意实际就是加一个“-”。我在没有修改这块之前,执行webui.bat或webui-user.bat,老提示找不到python,或者venv环境有问题等,我自己尝试做了一些其他修改都没啥用,网上教程有用其他办法的,就是在webui-user.bat中填一些语句,但我感觉不是很合理,也没试(也许人家是对的)。但加个“-”是最简单的。
5. 注意上述操作都在激活的conda环境中执行
6. 注意装个git,然后给git搭梯子。我手动下载了一些ckpt啥的,然后放在stable-diffusion-web目录的model子目录下。
7. 我实际是把一个肯定能用的stable-diffusion-web拷贝到了新机上,但执行webui-user.bat时,仍然会调用git从huggingface和github上下载东西,而且会说repositories下已经有东西,在owner不同啥的。如果梯子好用,这些问题都不大,但这里我感觉我没弄好,应为原本所需要的文件都有,不应该再下载一遍了,应该有办法做的更简单。
8. 注意梯子要设置本地路径不用梯子,否则访问127.0.0.1:7680也会有问题。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。