大家好,我是千与千寻,大家可以叫我“千寻哥”,之前和大家分享了两篇关于ChatGPT的技术文章:
1.chatgpt
2.chatgpt
ChatGPT毫无疑问是现在最大的风口,各个行业都在集成ChatGPT的API接口以及各类的应用插件,这么多人的应用,那么肯定就需要保证ChatGPT模型的高可用性,轻量化,以及各个平台之间的“通用性”。但是这几点商用价值的核心,哪有那么容易满足,是啊,不过没关系,今天它来了,由来自CMU Catalyst、UW SAMPL、SJTU、OctoML 和 MLC 社区的成员发起的web LLM项目!
跟大家分享这一神器web LLM与传统的ChatGPT的直接区别在于打破了windows与Linux客户端、手机安卓端与电脑浏览器之间的三个平台的生态区域限制,最重要的亮点是无需厚重的服务器以及GPU显卡来加速模型的运行与训练。
既然说web LLM的轻量化模型打通了web端,安卓手机端,以及windows与Linux系统的三个生态区,看看 web LLM的轻量化模型到底是怎么工作的。
Web端部署应用
它采用了与ChatGPT远程调用模型API接口不同的,将GPT模型加载直接加载到浏览器端,并使用WebGPU进行加速。
下面是这个项目的网址:
https://mlc.ai/web-llm/
我们都知道像ChatGPT这类的自然语言生成大模型他们存在一个共性问题,就是他们需要非常强大的算力以及性能高涨的服务器来支撑他们进行模型推理,而这款开源神器可以将我们的神经网络模型直接部署到浏览器。
用户进行询问消息的时候,浏览器进行提前加载,相当于将浏览器封装成了带有语言模型的客户端。我们在客户端阶段即可以实现模型由浏览器转换一个完整的客户端来实现进程对话。
实践过程:
需要准备最新版的Google Chrome,最好是Google Chrome Canary,在这里多提一句,普通的Google Chrome与Google Chrome Canary之间的区别在于Canary版本是谷歌浏览器的开发版,而我们常用的谷歌浏览器是稳定版。
简单理解Google Chrome Canary,拥有谷歌浏览器的更多性能,它的反应速度更快,性能更高,但同时它的不稳定性以及不确定性也会更高,而我们常用的谷歌浏览器,它的稳定性会更高,要把大模型加载到我们的这个浏览器里,因此使用开发版本的性能会更高一些,同时开发版本也开放了更多的功能参数调节接口,使得我们可以调整更合适的内置参数来优化我们的模型更能体现,那我们废话不多说,
直接上对话级的Demo演示。
1.激活模型加载流程,进行浏览器的模型加载
2.向web LLM的模型进行提问:“写一个快速排序的算法Python代码”
可以看到模型回复的效果还是不错的。其实web LLM的性能真的还不止如此,ChatGPT模型是文字型的模型,暂时不支持生成图片,不过这个轻量化模型却可以!接着往下看,哈哈哈
3.Web Stable Diffusion生成你想要生成的自定义图片,如图为“宇航员在火星是上骑白马”描述的图片生成。
4.其功能为根据用户的文字描述,生成定制化的图片,进行定制化图片的生成,学习需要设定以下的参数组合。
Input prompt:定制化图片的生成文本描述
Negative prompt (optional): 否定描述(相当于指定不能生成什么样,一般可以选择直接不填写)
Select scheduler :选择生成的步骤执行器,默认20步生成即可
Render intermediate steps : 是否显示图像的生成步骤,同样电脑的内存较小的,直接设置为“No”。但是我可以帮你演示一下具体的图片生成演示过程。
生成进度7/20
生成进度18/20
生成进度20/20
WebGPU 规范确实已经提供了 FP16 支持,但目前的实现还不支持此功能。运行该演示的内存消耗约为 7GB。
对于只有 8GB 内存的 Apple silicon Mac,生成图像可能需要更长的时间(几分钟)。
windows的PC端部署应用
不仅仅是手机端的项目在windows以及linux系统上依然可以使用LLM部署于PC端,如图为在MAC电脑上通过Anaconda进行环境搭建以及应用部署的命令行代码。
# Create a new conda environment and activate the environment.conda create -n mlc-chatconda activate mlc-chat# Install Git and Git-LFS, which is used for downloading the model weights# from Hugging Face.conda install git git-lfs# Install the chat CLI app from Conda.conda install -c mlc-ai -c conda-forge mlc-chat-nightly# Create a directory, download the model weights from HuggingFace, and download the binary libraries# from GitHub.mkdir -p distgit lfs installgit clone https://huggingface.co/mlc-ai/demo-vicuna-v1-7b-int3 dist/vicuna-v1-7bgit clone https://github.com/mlc-ai/binary-mlc-llm-libs.git dist/lib# Enter this line and enjoy chatting with the bot running natively on your machine!mlc_chat_cli
在Mac电脑的终端运行Web LLM的对话程序,如下图所示
手机移动端Web LLM的应用部署
将Web LLM的模型部署于手机端的效果,如下图所示,
下载 APK 文件并安装到您的手机上。然后您可以开始与 LLM 聊天。当您第一次打开应用程序时,需要下载参数并且加载过程可能会很慢。
在以后的运行中,参数将从缓存中加载(速度很快),您可以离线使用该应用程序。我们目前的演示依赖于手机上的 OpenCL 支持并占用大约 6GB 的内存
相信大家可能有点好奇想要自己动手试试了,安排!以下是两个APK的地址链接,以下为MLCChat软件的图标以及安装存储容量
APK软件的下载的链接:
https://github.com/mlc-ai/binary-mlc-llm-libs/raw/main/mlc-chat.apk
总结一下吧,MLC LLM的部署包含了前端以及后端的架构设计,将模型部署下载到浏览器端,手机端进行内嵌完成,以下为MLC LLM的完整设计图:
怎么样,是不是很简单呢,那就赶快试试吧!
我是千与千寻,一个只讲干活的码农~我们下期见!
本文由mdnice多平台发布