本地部署 MiniGPT-4

本地部署 MiniGPT-4

  • 1. 什么是 MiniGPT-4
  • 2. Github 地址
  • 3. 安装 MiniGPT-4
  • 4. 准备预训练的 MiniGPT-4 checkpoint
  • 5. 在本地启动演示
  • 其他 1,安装 CUDA Toolkit 11.8
  • 其他 2,安装 GCC 9 版本,并设置为默认GCC版本
  • 其他 3(成功),重新安装 bitsandbytes 兼容 CUDA Toolkit 11.8
  • 其他 3(失败),重新安装 bitsandbytes 兼容 CUDA Toolkit 11.8
  • 其他 4,安装 libgl1-mesa-dev
  • 其他 5,解决 `/sbin/ldconfig.real: /usr/lib/wsl/lib/libcuda.so.1 is not a symbolic link` 错误

1. 什么是 MiniGPT-4

MiniGPT-4:使用高级大型语言模型增强视觉语言理解。

MiniGPT-4 是一种改进型的预训练自编码器模型,用于改进视觉-语言理解任务的性能。

MiniGPT-4 基于 GPT-4 架构,但参数数量减少了约 40 倍,以降低计算成本和提高训练速度。

MiniGPT-4 被应用于图像描述生成、视觉问答和视觉常识推理三个视觉-语言理解任务。实验结果表明,相比于最先进的方法,MiniGPT-4 可以在这三个任务中实现更好的性能,同时训练速度也更快。研究表明,通过减少高级语言模型的参数数量,可以在视觉-语言理解领域实现更快、更准确的推理。

MiniGPT-4 可以作为一种轻量级的选择,应用于视觉-语言联合学习环境。

2. Github 地址

https://github.com/Vision-CAIR/MiniGPT-4

3. 安装 MiniGPT-4

refer: https://pytorch.org/get-started/locally/

准备代码和环境,

git clone https://github.com/Vision-CAIR/MiniGPT-4.git
cd MiniGPT-4
conda env create -f environment.yml
conda activate minigpt4

(可选)我使用的是 WSL-Ubuntu 22.04,安装的 CUDA Toolkit 11.8,将 pytorch、torchvision、torchaudio 更新为兼容 CUDA Toolkit 11.8 的版本。

conda uninstall pytorch torchvision torchaudio
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

(可选)使用 pip 安装时的命令如下,

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

准备好预先训练好的 Vicuna weights,Vicuna 是一个开源的基于 LLAMA 的 LLM,其性能接近于 ChatGPT。我们目前使用Vicuna-13B的v0版本。

安装 git-lfs (https://git-lfs.com),

sudo apt install -y git-lfs

下载 Vicuna 的 delta weight,

git lfs install
git clone https://huggingface.co/lmsys/vicuna-13b-delta-v0  # 更强大,需要至少24G的gpu内存
# or
git clone https://huggingface.co/lmsys/vicuna-7b-delta-v0  # 更小,需要12G gpu内存

注意,这不是直接的 working weight,而是 working weight 和 LLAMA-13B 的 original weight 之间的差异。(由于LLAMA的规则,我们不能发布 LLAMA 的 weight)。

从互联网上获得 HuggingFace 格式的 LLAMA-7B 或 LLAMA-13B 的 original weight,

git clone https://huggingface.co/decapoda-research/llama-13b-hf  # 更强大,需要至少24G的gpu内存
# or
git clone https://huggingface.co/decapoda-research/llama-7b-hf  # 更小,需要12G gpu内存

模型的作者在编写配置文件时,出现了拼写错误。请将 tokenizer_config.json 文件通过执行以下命令修改即可,

sed -i 's/LLaMATokenizer/LlamaTokenizer/g' ./llama-13b-hf/tokenizer_config.json

当这两个 weight 准备好后,我们可以使用 Vicuna 团队的工具来创建真正的 working weight。

首先,通过以下方式安装他们与 v0 Vicuna 兼容的库,

pip install git+https://github.com/lm-sys/FastChat.git@v0.1.10

然后,运行以下命令来创建最终的 working weight,

python3 -m fastchat.model.apply_delta --base ./llama-13b-hf/ --target ./vicuna_weights/ --delta ./vicuna-13b-delta-v0/

最后的 weight 将在一个单一的文件夹中,其结构类似于以下,

vicuna_weights/
├── config.json
├── generation_config.json
├── pytorch_model-00001-of-00003.bin
├── pytorch_model-00002-of-00003.bin
├── pytorch_model-00003-of-00003.bin
├── pytorch_model.bin.index.json
├── special_tokens_map.json
├── tokenizer.model
└── tokenizer_config.json

然后,在第 16 行这里的模型配置文件中设置 vicuna weight 的路径,

vi minigpt4/configs/models/minigpt4.yaml--- modifyllama_model: "/root/workspace/MiniGPT-4/vicuna_weights/"
---

4. 准备预训练的 MiniGPT-4 checkpoint

根据你准备的 Vicuna 模型,下载预训练的 checkpoint。

  • Checkpoint Aligned with Vicuna 13B

  • Checkpoint Aligned with Vicuna 7B

然后,在 eval_configs/minigpt4_eval.yaml 的评估配置文件中第11行设置预训练的检查点的路径。

vi eval_configs/minigpt4_eval.yaml--- modify ckpt: '/root/workspace/pretrained/pretrained_minigpt4.pth'
---

5. 在本地启动演示

在你的本地机器上尝试我们的演示 Demo.py,运行以下命令,

python demo.py --cfg-path eval_configs/minigpt4_eval.yaml --gpu-id 0

在这里插入图片描述
使用浏览器打开 http://127.0.0.1:7860 访问 MiniGPT-4,上传一张图片测试一下效果,

在这里插入图片描述

其他 1,安装 CUDA Toolkit 11.8

refer: https://developer.nvidia.com/cuda-11-8-0-download-archive

我使用的是 WSL-Ubuntu 22.04,下面是安装 CUDA Toolkit 11.8 的命令。

sudo apt install -y dkms
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
sudo sh cuda_11.8.0_520.61.05_linux.run

在这里插入图片描述
在这里插入图片描述

输入日志如下,

===========
= Summary =
===========Driver:   Not Selected
Toolkit:  Installed in /usr/local/cuda-11.8/Please make sure that-   PATH includes /usr/local/cuda-11.8/bin-   LD_LIBRARY_PATH includes /usr/local/cuda-11.8/lib64, or, add /usr/local/cuda-11.8/lib64 to /etc/ld.so.conf and run ldconfig as rootTo uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-11.8/bin
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 520.00 is required for CUDA 11.8 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:sudo <CudaInstaller>.run --silent --driver

设置环境变量,

sudo vi ~/.bashrc--- add
export CUDA_HOME=/usr/local/cuda-11.8
export CuDNN_HOME=/usr/local/cuda-11.8/include
export PATH=/usr/local/cuda-11.8/bin:$PATH
export CPLUS_INCLUDE_PATH=/usr/local/cuda-11.8/include:$CPLUS_INCLUDE_PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:/usr/local/cuda-11.8/targets/x86_64-linux/lib/stubs/libcuda.so:$LD_LIBRARY_PATH
---
source ~/.bashrc
sudo vi /etc/ld.so.conf--- add
/usr/local/cuda-11.8/lib64
---
sudo ldconfig

其他 2,安装 GCC 9 版本,并设置为默认GCC版本

sudo apt-get uninstall -y gcc
sudo apt-get install -y gcc-9 g++-9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 90

其他 3(成功),重新安装 bitsandbytes 兼容 CUDA Toolkit 11.8

refer: https://blog.csdn.net/anycall201/article/details/129930919

pip3 uninstall bitsandbytes
pip3 install bitsandbytes

解决 bitsandbytes 报错信息,

cp /root/miniconda3/envs/minigpt4/lib/python3.9/site-packages/bitsandbytes/cuda_setup/main.py /root/miniconda3/envs/minigpt4/lib/python3.9/site-packages/bitsandbytes/cuda_setup/main.py.old
vi /root/miniconda3/envs/minigpt4/lib/python3.9/site-packages/bitsandbytes/cuda_setup/main.py--- modify
(略)# self.lib = ct.cdll.LoadLibrary(binary_path)self.lib = ct.cdll.LoadLibrary(str(binary_path))else:self.add_log_entry(f"CUDA SETUP: Loading binary {binary_path}...")# self.lib = ct.cdll.LoadLibrary(binary_path)self.lib = ct.cdll.LoadLibrary(str(binary_path))
(略)# if not torch.cuda.is_available(): return 'libbitsandbytes_cpu.so', None, None, None, Noneif not torch.cuda.is_available(): return 'libbitsandbytes_cuda118.so', None, None, None, None
(略)if failure:# binary_name = "libbitsandbytes_cpu.so"binary_name = "libbitsandbytes_cuda118.so"
---

其他 3(失败),重新安装 bitsandbytes 兼容 CUDA Toolkit 11.8

refer: https://blog.csdn.net/anycall201/article/details/129930919

pip3 uninstall bitsandbytes
git clone https://github.com/timdettmers/bitsandbytes.git;cd bitsandbytes
CUDA_VERSION=118 make cuda11x
python3 setup.py install

解决 bitsandbytes 报错信息,

cp /root/miniconda3/envs/minigpt4/lib/python3.9/site-packages/bitsandbytes-0.38.1-py3.9.egg/bitsandbytes/cuda_setup/main.py /root/miniconda3/envs/minigpt4/lib/python3.9/site-packages/bitsandbytes-0.38.1-py3.9.egg/bitsandbytes/cuda_setup/main.py.old
vi /root/miniconda3/envs/minigpt4/lib/python3.9/site-packages/bitsandbytes-0.38.1-py3.9.egg/bitsandbytes/cuda_setup/main.py--- modify
(略)# self.lib = ct.cdll.LoadLibrary(binary_path)self.lib = ct.cdll.LoadLibrary(str(binary_path))else:self.add_log_entry(f"CUDA SETUP: Loading binary {binary_path}...")# self.lib = ct.cdll.LoadLibrary(binary_path)self.lib = ct.cdll.LoadLibrary(str(binary_path))
(略)# if not torch.cuda.is_available(): return 'libbitsandbytes_cpu.so', None, None, None, Noneif not torch.cuda.is_available(): return 'libbitsandbytes_cuda118.so', None, None, None, None
(略)if failure:# binary_name = "libbitsandbytes_cpu.so"binary_name = "libbitsandbytes_cuda118.so"
---

其他 4,安装 libgl1-mesa-dev

sudo apt-get install libgl1-mesa-dev

其他 5,解决 /sbin/ldconfig.real: /usr/lib/wsl/lib/libcuda.so.1 is not a symbolic link 错误

mv /usr/lib/wsl/lib/libcuda.so.1 /usr/lib/wsl/lib/libcuda.so.1.old
sudo ln -s /usr/lib/wsl/lib/libcuda.so /usr/lib/wsl/lib/libcuda.so.1
sudo ldconfig

完结!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/5854.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MiniGPT-4本地部署的实战方案

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

深度学习实战32-构建ChatT5模型,实现智能问答系统,类ChatGPT(CPU部署)

大家好,我是微学AI,今天给大家介绍一下深度学习实战32-构建ChatT5模型,实现智能问答系统,类ChatGPT(CPU部署),ChatT5使用了T5架构来处理输入文本,具有高度的并行性和扩展性,使其能够快速处理大规模数据集。与传统NLP模型不同,ChatT5采用端到端的方式进行训练,从而可以…

本地部署 gpt4free

本地部署 gpt4free 什么是 gpt4free效果演示安装 ffmpeg启动 gpt4free访问 gpt4free guiWindows 下本地部署 gpt4free(20230515追记)其他 什么是 gpt4free GPT4Free 是一个由 xtekky 创建的基于 OpenAI GPT-4 和 GPT-3.5 的 API。它可以向用户提供类似于 OpenAI GPT-3 的功能&…

【类ChatGPT】本地CPU部署中文羊驼大模型LLaMA和Alpaca

昨天在github上看到一个在本地部署中文大模型的项目&#xff0c;和大家分享一下。先把地址po出来。 项目名称&#xff1a;中文LLaMA&Alpaca大语言模型本地部署 (Chinese LLaMA & Alpaca LLMs) 项目地址&#xff1a;https://github.com/ymcui/Chinese-LLaMA-Alpaca 以…

国内的几款强大的智能AI语言模型

1、Tomchat &#xff1a;Tomchat https://www.tomchat.work 支持gpt4 -3.5 支持 midjourny绘画 可长篇写作 无使用月限额 1、国内百度研发的&#xff0c;文心一言&#xff1a; https://yiyan.baidu.com/welcome 大家如果像我的界面一样有【开始体验】就是可以使用的&…

好用免费,国内手机人人都能玩的GPT!

用了这个长时间的chatgpt真的是觉得离不开它&#xff0c;太好用的&#xff01;又是是写作&#xff0c;编程&#xff0c;日常的一些咨询搜索的事情全部交给它了&#xff01;但是很少有人在手机上能玩GPT! 对于大多数普通选手来说&#xff0c;想在手机上玩GPT&#xff0c;始终离不…

ChatGPT能够知道当下最流行的开发语言,以及各语言哪个开发框架最火吗?

如果你准备成为一名开发人员&#xff0c;但是面对琳琅满目的开发语言&#xff0c;然后每种语言的开发框架却无从下手&#xff0c;张三推荐你学这个&#xff0c;李四推荐你学那个&#xff0c;而你的时间又是有限的&#xff0c;于是我决定问一问这个万事通ChatGPT。 目录 1. 目前…

拼多多驳斥有关其应用程序为“恶意软件”的指控;Google向部分用户预览Bard;ChatGPT出现严重漏洞|极客头条...

「极客头条」—— 技术人员的新闻圈&#xff01; CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一分钟速览新闻点&#…

OpenAI使用条款、使用策略和支持的地区汇总:必读指南,避免OpenAI API被封禁

最近&#xff0c;一些群友反馈他们的OpenAI API被限制,其中包括试用金用户以及绑定了信用卡的用户。当他们调用API时&#xff0c;会收到以下报错信息&#xff1a; Your access was terminated due to violation of our policies, please check your email for more information…

通过云函数搭建内地可用的OpenAI代理(腾讯云centos系统)

需求&#xff1a; 大陆内地云服务器无须搭梯子&#xff0c;无须NGINX反向代理访问openAI。 背景&#xff1a; 平时工作环境是局域网&#xff0c;不方便分享给朋友用&#xff0c;即使不是局域网也不可能一直开着自己的电脑啦&#xff0c;于是想着给弄到云服务器上。 一般来说&…

本地部署ChatGLM-6B模型(使用JittorLLMs大模型推理库)

简介 网上冲浪时发现的这两个国产模型&#xff0c;重点是对硬件的要求并不高&#xff0c;有2GB内存就可以跑&#xff0c;觉得有趣就弄来玩了下。 https://github.com/Jittor/JittorLLMs https://github.com/THUDM/ChatGLM-6B 简单介绍下用到的仓库 ChatGLM-6B ChatGLM-6B 是…

解决注册错误:OpenAI‘s services are not available in your country.

登录AI服务时提示如下错误&#xff0c;意思是该服务不在当前国家提供&#xff0c;需要用魔法移动到其他国家。 参考&#xff1a; https://readdevdocs.com/blog/makemoney/%E4%B8%AD%E5%9B%BD%E5%8C%BA%E6%B3%A8%E5%86%8COpenAI%E8%B4%A6%E5%8F%B7%E8%AF%95%E7%94%A8ChatGPT%E6…

ChatGPT 抢不走程序员饭碗的原因找到了?最新研究:它自动生成了 21 个程序,16 个有漏洞...

整理 | 屠敏 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一个好消息与一个坏消息。 好消息是&#xff0c;继 ChatGPT、GPT-4 等产品之后&#xff0c;代码生成工具的队伍再添新员。Google 近日宣布 Bard 可以辅助软件开发者完成编程和软件开发任务&#xff0c;…

解决 OpenAI‘s API is not available in your country.

首先你要确认自己连的节点不属于以下任何一个国家。 如果你确定你连的节点不属于上图的任何一个国家还是显示not available&#xff0c;那么有两种情况。 一.你的科学上网工具的设置。例如我用的是ssr&#xff0c;我打开了服务器负载均衡&#xff0c;它就会自动的在我所有的节…

解决chatGPT出现Not available OpenAI`s services are not available in your country.的问题

一、问题描述 chatGPT出现不允许该地区访问问题 二、解决地区问题 1、清除浏览器缓存 2、地址栏输入以下内容 javascript:window.localStorage.removeItem(Object.keys(window.localStorage).find(i>i.startsWith(‘auth0spajs’))) 请注意&#xff0c;javascript:是粘贴不…

【关于ChatGPT的30个问题】3、ChatGPT的主要功能是什么? / By 禅与计算机程序设计艺术

3、ChatGPT的主要功能是什么? 目录 3、ChatGPT的主要功能是什么? ChatGPT:一种基于人工智能的智能对话机器人

ChatGPT在源代码分析中可靠吗?

引文 ChatGPT自发布以来&#xff0c;它在各行各业都掀起了一股学习热潮。由于其惊人的语言理解和生成能力&#xff0c;ChatGPT已经备受全世界瞩目。它在智能对话、翻译、摘要、文本生成等领域中展现出了非凡的能力&#xff0c;让人们对其充满了好奇、敬畏和赞叹之情&#xff0…

我听过的最不可能的预测就是「ChatGPT 会取代程序员的工作」—— 恰恰相反,因为 ChatGPT 等工具的出现,我断言未来的十年里,中国新增 5 亿以上的程序员。

最不可能的预测 我听过的最不可能的预测是「ChatGPT 会取代程序员的工作」。 恰恰相反,因为 ChatGPT 等工具的出现,我断言未来的十年里,中国新增 5 亿以上的程序员。 程序员的效率提升一直在飞速进行 有人说因为 ChatGPT 可以写程序了,所以程序员要失业了。但是,在程序员…

淘汰我们的,从来都不是ChatGPT,而是背后那个使用ChatGPT的人

大家是不是被ChatGPT&#xff0c;被midjourney刷屏了&#xff1f; “许多岗位将要被AI所取代”的言论甚嚣尘上&#xff0c;很多人都开始焦虑&#xff0c;什么时候会轮到我&#xff1f; 我的观点是&#xff1a;千万别为AI新技术的出现而感到焦虑&#xff0c;ChatGPT的出现&#…

从ChatGPT与New Bing看程序员为什么要学习算法?

文章目录 为什么要学习数据结构和算法&#xff1f;ChatGPT与NEW Bing 的回答想要通关大厂面试&#xff0c;就不能让数据结构和算法拖了后腿业务开发工程师&#xff0c;你真的愿意做一辈子CRUD boy吗&#xff1f;对编程还有追求&#xff1f;不想被行业淘汰&#xff1f;那就不要只…