赞
踩
LoRA,英文全称Low-Rank Adaptation of Large Language Models,直译为大语言模型的低阶适应,这是微软的研究人员为了解决大语言模型微调而开发的一项技术。 比如,GPT-3有1750亿参数,为了让它能干特定领域的活儿,需要做微调,但是如果直接对GPT-3做微调,成本太高太麻烦了。
LoRA的做法是,冻结预训练好的模型权重参数,然后在每个Transformer(Transforme就是GPT的那个T)块里注入可训练的层,由于不需要对模型的权重参数重新计算梯度,所以,大大减少了需要训练的计算量。 研究发现,LoRA的微调质量与全模型微调相当,要做个比喻的话,就好比是大模型的一个小模型,或者说是一个插件。
根据显卡性能不同,训练一般需要一个到几个小时的时间,这个过程俗称炼丹!
主要步骤有以下这些,话不多说,开整!
首先是要有显卡了,推荐8G显存以上的N卡。然后就是装GPU驱动,可以参考我以前文章centos中docker使用GPU
自从有了docker,我就不喜欢在宿主机上装一堆开发环境了,所以这次就直接使用stable-diffusion-webui
带webui打包好的镜像,也方便训练完成以后测试。推荐一下 kestr3l/stable-diffusion-webui 这个镜像,是基于 nvidia/cuda:11.7.1-devel-ubuntu22.04 镜像,本人亲自测试过,可用的。 附一个我用的 docker-compose.yml
文件
version: "3" services: sd-webui: image: kestr3l/stable-diffusion-webui:1.1.0 container_name: sd-webui restart: always ports: - "7860:7860" - "7861:7861" ulimits: memlock: -1 stack: 67108864 shm_size: 4G deploy: resources: limits: cpus: "8.00" memory: 16G reservations: devices: - capabilities: [gpu] volumes: # 这里主要是方便映射下载的模型文件 - ./models:/home/user/stable-diffusion-webui/models:cached # 修改容器的默认启动脚本,方便我们手动控制 - ./entrypoint-debug.sh:/usr/local/bin/entrypoint.sh:cached
entrypoint-debug.sh
文件内容:
#! /bin/sh
python3
可以去 civitai 下载 stable diffusion 的模型,放到宿主机的 ./models/Stable-diffusion
目录下面,也可以去下载一些LoRA模型丢在./models/Lora
目录下。
模型准备完毕了就可以跑个 stable diffusion 图形化界面试试看, 执行./webui.sh -f --listen
命令,启动之前会下载安装很多依赖包,国内环境不太顺,可以上代理安装。
如果输出以下内容,则表示安装成功:
root@cebe51b82933:/home/user/stable-diffusion-webui# ./webui.sh -f --listen ################################################################ Install script for stable-diffusion + Web UI Tested on Debian 11 (Bullseye) ################################################################ ################################################################ Running on root user ################################################################ ################################################################ Repo already cloned, using it as install directory ################################################################ ################################################################ Create and activate python venv ################################################################ ################################################################ Launching launch.py... ################################################################ ./webui.sh: line 168: lspci: command not found Python 3.10.6 (main, Nov 14 2022, 16:10:14) [GCC 11.3.0] Commit hash: <none> Installing requirements for Web UI Launching Web UI with arguments: --listen No module 'xformers'. Proceeding without it. LatentDiffusion: Running in eps-prediction mode DiffusionWrapper has 859.52 M params. Loading weights [fc2511737a] from /home/user/stable-diffusion-webui/models/Stable-diffusion/chilloutmix_NiPrunedFp32Fix.safetensors Applying cross attention optimization (Doggettx). Textual inversion embeddings loaded(0): Model loaded in 16.0s (0.8s create model, 14.9s load weights). Running on local URL: http://0.0.0.0:7860 To create a public link, set `share=True` in `launch()`.
打开浏览器访问:http://127.0.0.1:7860 或者 http://内网ip:7860 就可以AI绘画了
不得不说 chilloutmix_NiPrunedFp32Fix 模型生成的图片是针不戳
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。