Resumen
Minigpt4, que afirma ser capaz de alcanzar el 90 % de las capacidades de chatgpt, ¡es de código abierto! ¡Este artículo le muestra cómo implementar minigpt4, usando 13B como ejemplo!
código de descarga
Enlace GitHub:
https://github.com/Vision-CAIR/MiniGPT-4
Descárgalo y descomprímelo. Luego construye el entorno.
Entorno de instalación
Puede ejecutarlo directamente environment.yml
para crear un entorno virtual. Ejecutando una orden:
conda env create name environment_name -f environment.yml
Environment_name hace referencia al nombre del entorno virtual.
Si le preocupa que la versión de pytorch no sea compatible con la versión local de cuda, puede crearla manualmente. Esta es la forma en que yo uso:
conda create --name gpt python=3.9
Luego, busque la versión de pytorch adecuada, instálela en el entorno virtual creado anteriormente y ejecute el comando:
conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia
Luego, saque la parte pip de environment.yml, cree un nuevo requirements.txt y colóquelo. El contenido completo:
accelerate==0.16.0
aiohttp==3.8.4
aiosignal==1.3.1
async-timeout==4.0.2
attrs==22.2.0
bitsandbytes==0.37.0
cchardet==2.1.7
chardet==5.1.0
contourpy==1.0.7
cycler==0.11.0
filelock==3.9.0
fonttools==4.38.0
frozenlist==1.3.3
huggingface-hub==0.13.4
importlib-resources==5.12.0
kiwisolver==1.4.4
matplotlib==3.7.0
multidict==6.0.4
openai==0.27.0
packaging==23.0
psutil==5.9.4
pycocotools==2.0.6
pyparsing==3.0.9
python-dateutil==2.8.2
pyyaml==6.0
regex==2022.10.31
tokenizers==0.13.2
tqdm==4.64.1
transformers==4.28.0
timm==0.6.13
spacy==3.5.1
webdataset==0.2.48
scikit-learn==1.2.2
scipy==1.10.1
yarl==1.8.2
zipp==3.14.0
omegaconf==2.3.0
opencv-python==4.7.0.72
iopath==0.1.10
decord==0.6.0
tenacity==8.2.2
peft
pycocoevalcap
sentence-transformers
umap-learn
notebook
gradio==3.24.1
gradio-client==0.0.8
wandb
Intente construir el entorno de acuerdo con la versión anterior, de lo contrario, es propenso a varios problemas extraños.
descargar modelo
modelo vicuña https://huggingface.co/lmsys
modelo vicuña, se recomienda descargar la versión v1.1. ¡Las dimensiones de las versiones anterior y nueva son inconsistentes!
LLaMA:https://huggingface.co/decapoda-research
Los modelos LLaMA y vicuña siguen siendo los mismos, si se selecciona 13B, ambos modelos usan 13B.
conversión de modelo
Para la conversión de modelos, la biblioteca requerida FastChat, enlace de github: https://github.com/lm-sys/FastChat
método de instalación:
git clone https://github.com/lm-sys/FastChat.git
cd FastChat
pip install --upgrade pip # enable PEP 660 support
pip install -e .
Cree una nueva carpeta LLAMA en el directorio raíz de FastChat y coloque el modelo llama descargado y el modelo icunb en la carpeta LLAMA.
Ejecute el comando después de que se complete la instalación:
python -m fastchat.model.apply_delta --base LLAMA/llama-13b-hf --target LLAMA/vicuna-13b --delta LLAMA/vicuna-13b-delta-v1.1
La conversión está completa. Nota: La conversión consume mucha memoria y los requisitos de configuración de la máquina son relativamente altos.
Una vez completada la conversión, cree una nueva carpeta de pesos en el directorio raíz de MiniGPT4 y coloque la carpeta del modelo convertido en ella.
Descarga el archivo de pesos minigpt4
Hay dos, uno es 13B y el otro es 7B.
Puesto de Control Alineado con Vicuña 13B | Puesto de Control Alineado con Vicuña 7B |
---|---|
Descargar | Descargar |
Todos están en el disco de red de Gongle, hay impotencia y alguien ha compartido el archivo de peso, el enlace: https://huggingface.co/wangrongsheng |
Enlace específico:
# 13B
https://huggingface.co/wangrongsheng/MiniGPT4/tree/main
# 7B
https://huggingface.co/wangrongsheng/MiniGPT4-7B/tree/main
Por supuesto, también hay modelos convertidos, enlace:
# 13B
https://huggingface.co/wangrongsheng/MiniGPT-4-LLaMA/tree/main
#7B
https://huggingface.co/wangrongsheng/MiniGPT-4-LLaMA-7B/tree/main
¡El jefe Rongsheng es tan considerado! ! !
configuración
La ruta al minigpt4 modificado eval_configs/minigpt4_eval.yaml
.
ckpt: './weights/pretrained_minigpt4.pth'
Modifique minigpt4/configs/models/minigpt4.yaml
el archivo , modifique llama_model al directorio del modelo convertido.
correr
python demo.py --cfg-path eval_configs/minigpt4_eval.yaml --gpu-id 0
pregunta
RuntimeError: el tamaño del tensor a (32000) debe coincidir con el tamaño del tensor b
(32001) en la dimensión 0 no singleton
Causa:
La versión de fastchat no es compatible con la versión del modelo
Solución:
reemplace vicuna-7b-delta-v0 con la versión vicuna-7b-delta-v1.1,
Se puede convertir después de cambiar a la versión 1.1.
Ejecutando una orden:
python -m fastchat.model.apply_delta --base LLAMA/llama-13b-hf --target LLAMA/vicuna-13b --delta LLAMA/vicuna-13b-delta-v1.1