.html網(wǎng)址后面批量加create生成(html網(wǎng)址代碼)
本期視頻將會(huì)給人工智能愛(ài)好者們帶來(lái)超級(jí)震撼!
視頻中,我們將深入了解利用GPU加速在Orange Pi 5上跑LLMs的精彩世界。最近知乎上的一篇文章《利用GPU加速,在Orange Pi上跑LLMs》引起了我們的注意,這篇文章主要展示了GPU加速的LLM在嵌入式設(shè)備上以合適的速度順利運(yùn)行。具體來(lái)說(shuō),是在Orange Pi 5(8G)上,作者通過(guò)機(jī)器學(xué)習(xí)編譯(MLC)技術(shù),實(shí)現(xiàn)了Llama2-7b以2.5 toks/sec的速度運(yùn)行,RedPajama-3b以5 toks/sec運(yùn)行。此外,還在16GB版本的Orange Pi 5上以1.5 tok/sec的速度運(yùn)行Llama-2 13b模型。
下面我們看看他們是如何做到的:
背景
開(kāi)放語(yǔ)言模型的進(jìn)步已經(jīng)催生了跨問(wèn)題回答、翻譯和創(chuàng)意任務(wù)的創(chuàng)新。雖然當(dāng)前的解決方案需要高端的桌面GPU甚至服務(wù)器級(jí)別的GPU來(lái)實(shí)現(xiàn)滿(mǎn)意的性能。但為了使LLM日常使用,我們想了解我們?nèi)绾卧诹畠r(jià)的嵌入式設(shè)備上部署它們。
許多嵌入式設(shè)備配備了移動(dòng)GPU(例如Mali GPU)可以用來(lái)加速LLM的運(yùn)行速度。在這篇文章中,我們選擇了Orange Pi 5,這是一個(gè)基于RK3588的開(kāi)發(fā)板,與Raspberry Pi相似,但也配備了更強(qiáng)大的Mali-G610 GPU。這篇文章總結(jié)了我們首次嘗試?yán)脵C(jī)器學(xué)習(xí)編譯,并為該設(shè)備提供了開(kāi)箱即用的GPU加速。
面向Mali GPU的機(jī)器學(xué)習(xí)編譯
機(jī)器學(xué)習(xí)編譯(MLC)是一種新興技術(shù),它自動(dòng)編譯和優(yōu)化機(jī)器學(xué)習(xí)工作負(fù)載,并將編譯后的工作負(fù)載部署到廣泛的后端。在寫(xiě)作時(shí),基于Apache TVM Unity,MLC支持的平臺(tái)包括瀏覽器(WebGPU, WASM)、NVIDIA GPU(CUDA)、AMD GPU(ROCm, Vulkan)、Intel GPU(Vulkan)、iOS和MacBooks(Metal)、Android(OpenCL)以及Mali GPU(本文)。
基于通用機(jī)器學(xué)習(xí)編譯實(shí)現(xiàn)Mali代碼生成
展開(kāi)全文
MLC是建立在Apache TVM Unity之上的,這是一個(gè)用于在不同硬件和后端上編譯機(jī)器學(xué)習(xí)模型的通用軟件棧。為了將LLM編譯到Mali GPU上,我們復(fù)用了所有現(xiàn)有的編譯流程,沒(méi)有進(jìn)行任何代碼優(yōu)化。更具體地說(shuō),我們成功地部署了Llama-2和RedPajama模型,采取了以下步驟:
·復(fù)用了模型優(yōu)化步驟,包括量化、融合、布局優(yōu)化等;
· 復(fù)用了在TVM TensorIR中的定義的通用GPU內(nèi)核優(yōu)化空間,并將其重新運(yùn)用在到Mali GPU;
·復(fù)用了基于TVM的OpenCL 代碼生成后端,并將其重新運(yùn)用在到Mali GPU;
·復(fù)用了現(xiàn)有的用戶(hù)界面,包括Python API、CLI和REST API。
運(yùn)行方法
本節(jié)提供了一個(gè)分步運(yùn)行指南,以便您可以在自己的Orange Pi設(shè)備上嘗試它。這里我們使用RedPajama-INCITE-Chat-3B-v1-q4f16_1作為運(yùn)行示例。您可以用Llama-2-7b-chat-hf-q4f16_1或Llama-2-13b-chat-hf-q4f16_1(需要16GB的板)來(lái)替換它。
準(zhǔn)備工作
請(qǐng)首先按照這里的指示,為RK3588板設(shè)置OpenCL驅(qū)動(dòng)程序。然后從源代碼克隆MLC-LLM,并下載權(quán)重和預(yù)構(gòu)建的庫(kù)。
# 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 ..
驗(yàn)證是否編譯成功
# 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運(yùn)行LLM
./build/mlc_chat_cli --local-id RedPajama-INCITE-Chat-3B-v1-q4f16_1 –device mali
CLI 運(yùn)行截圖
使用Python API
編譯TVM runtime(無(wú)需編譯完整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 ../..
設(shè)置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}
運(yùn)行下列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")
評(píng)論區(qū)Hihg翻了!
這篇文章同時(shí)發(fā)表 Hacker News。在人工智能評(píng)論區(qū),大家的討論熱鬧非凡,令人目不暇接。他們熱烈地討論Orange Pi 5的硬件選項(xiàng)和可擴(kuò)展性,感嘆如此強(qiáng)大的模型,如此實(shí)惠的價(jià)格,將改變游戲規(guī)則,認(rèn)為這一突破將為預(yù)算有限的人工智能愛(ài)好者帶來(lái)了新的可能性。
“這一功能強(qiáng)大的工具使得在Orange Pi 5等設(shè)備上充分發(fā)揮人工智能的潛力變得前所未有的簡(jiǎn)單。對(duì)于開(kāi)發(fā)者和業(yè)余愛(ài)好者來(lái)說(shuō),這都是一個(gè)改變游戲規(guī)則的工具?!?/p>
“通過(guò) GPU加速語(yǔ)言模型編譯,Orange Pi 5 已被證明是一款經(jīng)濟(jì)實(shí)惠的人工智能利器。這款設(shè)備擁有令人驚嘆的速度,能以極低的成本運(yùn)行高性能模型,正在徹底改變?nèi)斯ぶ悄茴I(lǐng)域?!?/p>
我們欣喜地可以看到,Orange Pi 5正在以其強(qiáng)大的人工智能能力讓越來(lái)越多的人工智能愛(ài)好者加入到創(chuàng)新、創(chuàng)意的世界,不斷進(jìn)行新的實(shí)踐和探索。
掃描二維碼推送至手機(jī)訪(fǎng)問(wèn)。
版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。