当前位置:首页 > 软件开放 > 正文内容

多说评论通用代码(评论的代码)

软件开放2个月前 (08-07)94

本期视频将会给人工智能爱好者们带来超级震撼!

视频中,我们将深入了解利用GPU加速在Orange Pi 5上跑LLMs的精彩世界。最近知乎上的一篇文章《利用GPU加速,在Orange Pi上跑LLMs》引起了我们的注意,这篇文章主要展示了GPU加速的LLM在嵌入式设备上以合适的速度顺利运行。具体来说,是在Orange Pi 5(8G)上,作者通过机器学习编译(MLC)技术,实现了Llama2-7b以2.5 toks/sec的速度运行,RedPajama-3b以5 toks/sec运行。此外,还在16GB版本的Orange Pi 5上以1.5 tok/sec的速度运行Llama-2 13b模型。

下面我们看看他们是如何做到的:

背景

开放语言模型的进步已经催生了跨问题回答、翻译和创意任务的创新。虽然当前的解决方案需要高端的桌面GPU甚至服务器级别的GPU来实现满意的性能。但为了使LLM日常使用,我们想了解我们如何在廉价的嵌入式设备上部署它们。

许多嵌入式设备配备了移动GPU(例如Mali GPU)可以用来加速LLM的运行速度。在这篇文章中,我们选择了Orange Pi 5,这是一个基于RK3588的开发板,与Raspberry Pi相似,但也配备了更强大的Mali-G610 GPU。这篇文章总结了我们首次尝试利用机器学习编译,并为该设备提供了开箱即用的GPU加速。

面向Mali GPU的机器学习编译

机器学习编译(MLC)是一种新兴技术,它自动编译和优化机器学习工作负载,并将编译后的工作负载部署到广泛的后端。在写作时,基于Apache TVM Unity,MLC支持的平台包括浏览器(WebGPU, WASM)、NVIDIA GPU(CUDA)、AMD GPU(ROCm, Vulkan)、Intel GPU(Vulkan)、iOS和MacBooks(Metal)、Android(OpenCL)以及Mali GPU(本文)。

基于通用机器学习编译实现Mali代码生成

展开全文

MLC是建立在Apache TVM Unity之上的,这是一个用于在不同硬件和后端上编译机器学习模型的通用软件栈。为了将LLM编译到Mali GPU上,我们复用了所有现有的编译流程,没有进行任何代码优化。更具体地说,我们成功地部署了Llama-2和RedPajama模型,采取了以下步骤:

·复用了模型优化步骤,包括量化、融合、布局优化等;

· 复用了在TVM TensorIR中的定义的通用GPU内核优化空间,并将其重新运用在到Mali GPU;

·复用了基于TVM的OpenCL 代码生成后端,并将其重新运用在到Mali GPU;

·复用了现有的用户界面,包括Python API、CLI和REST API。

运行方法

本节提供了一个分步运行指南,以便您可以在自己的Orange Pi设备上尝试它。这里我们使用RedPajama-INCITE-Chat-3B-v1-q4f16_1作为运行示例。您可以用Llama-2-7b-chat-hf-q4f16_1或Llama-2-13b-chat-hf-q4f16_1(需要16GB的板)来替换它。

准备工作

请首先按照这里的指示,为RK3588板设置OpenCL驱动程序。然后从源代码克隆MLC-LLM,并下载权重和预构建的库。

# clone mlc-llm from GitHub

git clone --recursive https://github.com/mlc-ai/mlc-llm.git cd mlc-llm

# Download prebuilt weights and libs

git lfs install

mkdir -p dist/prebuilt cd dist/prebuilt

git clone https://github.com/mlc-ai/binary-mlc-llm-libs.git lib

git clone https://huggingface.co/mlc-ai/mlc-chat-RedPajama-INCITE-Chat-3B-v1-q4f16_1

cd ../../..

使用CLI

从源代码编译mlc_llm_cli

cd mlc-llm/

# create build directory

mkdir -p build cd build

# generate build configuration

python3 ../cmake/gen_cmake_config.py

# build `mlc_chat_cli`

cmake .. cmake --build . --parallel $(nproc) cd ..

验证是否编译成功

# expected to see `mlc_chat_cli`, `libmlc_llm.so` and `libtvm_runtime.so`

ls -l ./build/

# expected to see help message

./build/mlc_chat_cli --help

使用mlc_llm_cli运行LLM

./build/mlc_chat_cli --local-id RedPajama-INCITE-Chat-3B-v1-q4f16_1 –device mali

CLI 运行截图

使用Python API

编译TVM runtime(无需编译完整TVM编译器)

# clone from GitHub

git clone --recursive https://github.com/mlc-ai/relax.git tvm_unity cd tvm_unity/

# create build directory

mkdir -p build cd build

# generate build configuration

cp ../cmake/config.cmake . echo "set(CMAKE_BUILD_TYPE RelWithDebInfo)\nset(USE_OPENCL ON)" config.cmake

# build `mlc_chat_cli`

cmake .. cmake --build . --target runtime --parallel $(nproc) cd ../..

设置PYTHONPATH(可按需添加到bashrc或zshrc)

export TVM_HOME=$(pwd)/tvm_unity

export MLC_LLM_HOME=$(pwd)/mlc-llm

export PYTHONPATH=$TVM_HOME/python:$MLC_LLM_HOME/python:${PYTHONPATH}

运行下列Python脚本

from mlc_chat import ChatModule

from mlc_chat.callback import StreamToStdout

cm = ChatModule(model="RedPajama-INCITE-Chat-3B-v1-q4f16_1")

# Generate a response for a given prompt

output = cm.generate(

prompt="What is the meaning of life?",

progress_callback=StreamToStdout(callback_interval=2),)

# Print prefill and decode performance statistics

print(f"Statistics: {cm.stats()}\n")

评论区Hihg翻了!

这篇文章同时发表 Hacker News。在人工智能评论区,大家的讨论热闹非凡,令人目不暇接。他们热烈地讨论Orange Pi 5的硬件选项和可扩展性,感叹如此强大的模型,如此实惠的价格,将改变游戏规则,认为这一突破将为预算有限的人工智能爱好者带来了新的可能性。

“这一功能强大的工具使得在Orange Pi 5等设备上充分发挥人工智能的潜力变得前所未有的简单。对于开发者和业余爱好者来说,这都是一个改变游戏规则的工具。”

多说评论通用代码(评论的代码)

“通过 GPU加速语言模型编译,Orange Pi 5 已被证明是一款经济实惠的人工智能利器。这款设备拥有令人惊叹的速度,能以极低的成本运行高性能模型,正在彻底改变人工智能领域。”

我们欣喜地可以看到,Orange Pi 5正在以其强大的人工智能能力让越来越多的人工智能爱好者加入到创新、创意的世界,不断进行新的实践和探索。

扫描二维码推送至手机访问。

版权声明:本文由飞速云SEO网络优化推广发布,如需转载请注明出处。

本文链接:http://chxinda.com/post/134324.html

分享给朋友:

“多说评论通用代码(评论的代码)” 的相关文章

即时通讯软件开发的简单介绍

即时通讯软件开发的简单介绍

本篇文章给大家谈谈即时通讯软件开发,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、即时通讯软件开发 需要用到什么技术? 2、怎么开发局域网的即时通讯软件或系统? 3、企业即时通讯软件的哪里开发? 即时通讯软件开发 需要用到什么技术? 即时通讯的开发首先涉及...

码上放心追溯码用什么扫(码上放心追溯码什么意思)

码上放心追溯码用什么扫(码上放心追溯码什么意思)

本篇文章给大家谈谈码上放心追溯码用什么扫,以及码上放心追溯码什么意思对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、药品追溯码为什么印淘宝扫一扫? 2、码上放心的二维码可以手动输入扫码枪吗 3、码上放心子类监管码在那里查 药品追溯码为什么印淘宝扫一扫? 亲,很高...

手机百度浏览器收藏删除了怎么恢复(手机百度删除的收藏怎么恢复)

手机百度浏览器收藏删除了怎么恢复(手机百度删除的收藏怎么恢复)

今天给各位分享手机百度浏览器收藏删除了怎么恢复的知识,其中也会对手机百度删除的收藏怎么恢复进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、百度浏览器收藏误删怎么找回 2、手机百度浏览记录怎么恢复 3、手机浏览器删掉怎么找回收藏的网址 4、手机百度...

手机浏览器显示不全网页内容(手机浏览器不能显示全部网页内容)

手机浏览器显示不全网页内容(手机浏览器不能显示全部网页内容)

本篇文章给大家谈谈手机浏览器显示不全网页内容,以及手机浏览器不能显示全部网页内容对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、手机网页显示不完整怎么办? 2、手机浏览电脑版网页显示不全 手机浏览电脑版网页显示不全怎么办 3、存龙网站手机打开不全 4、手机网页...

麒麟广告联盟a哪个3482.c∩(新麒麟广告联盟)

麒麟广告联盟a哪个3482.c∩(新麒麟广告联盟)

本篇文章给大家谈谈麒麟广告联盟a哪个3482.c∩,以及新麒麟广告联盟对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、广告联盟是怎么运作的,盈利方式是什么 2、我的电脑怎么几分钟就弹出一个麒麟广告网站? 3、域名注册时间不到6个月,就一定通过不了谷歌广告联盟审核吗...

html静态网页制作代码大全(html静态网页制作代码大全下载)

html静态网页制作代码大全(html静态网页制作代码大全下载)

今天给各位分享html静态网页制作代码大全的知识,其中也会对html静态网页制作代码大全下载进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、寻找最全的HTML语言代码大全 2、html求制作一个简单网页代码,只需要一些文字加张图片 3、用html如何...