国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

llama.cpp一種在本地CPU上部署的量化模型(超低配推理llama)

這篇具有很好參考價值的文章主要介紹了llama.cpp一種在本地CPU上部署的量化模型(超低配推理llama)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

0x00 背景

前不久,Meta前腳發(fā)布完開源大語言模型LLaMA,

隨后就被網友“泄漏”,直接放了一個磁力鏈接下載鏈接。

然而那些手頭沒有頂級顯卡的朋友們,就只能看看而已了

但是 Georgi Gerganov 開源了一個項目llama.cpp

ggerganov/llama.cpp: Port of Facebook’s LLaMA model in C/C++ (github.com)

次項目的牛逼之處就是沒有GPU也能跑LLaMA模型

大大降低的使用成本,本文就是時間如何在我的 mac m1 pro 上面跑起來這個模型

llama.cpp:提供了一種模型量化和在本地CPU上部署方式

文本介紹了如何使用llama.cpp工具將深度學習模型進行量化并在本地CPU上部署的詳細步驟。

以下是具體步驟的解釋:

?

0x01 Step1 環(huán)境準備

  1. 高版本python 3.10
pip install protobuf==3.20.0
pip install transformers  最新版
pip installsentencepiece (0.1.97測試通過)
pip install peft  (0.2.0測試通過)
pip install git+https://github.com/huggingface/transformers
pip install sentencepiece
pip install peft
  1. 確保機器有足夠的內存加載完整模型 ,7B模型需要13-15G

  2. 下載原版LLaMA模型的權重和tokenizer.model文件

下載參考這個[PR]https://github.com/facebookresearch/llama/pull/73/files

壓縮包內文件目錄如下(LLaMA-7B為例):

chinese_llama_lora_7b/
  - adapter_config.json		# LoRA權重配置文件
  - adapter_model.bin		# LoRA權重文件
  - special_tokens_map.json	# special_tokens_map文件
  - tokenizer_config.json	# tokenizer配置文件
  - tokenizer.model		# tokenizer文件 

Step 2: 將原版LLaMA模型轉換為HF格式

請使用transformers提供的腳本convert_llama_weights_to_hf.py

將原版LLaMA模型轉換為HuggingFace格式。

將原版LLaMA的tokenizer.model放在--input_dir指定的目錄,其余文件放在${input_dir}/${model_size}下。 執(zhí)行以下命令后,--output_dir中將存放轉換好的HF版權重。

python src/transformers/models/llama/convert_llama_weights_to_hf.py \
    --input_dir path_to_original_llama_root_dir \
    --model_size 7B \
    --output_dir path_to_original_llama_hf_dir

llama.cpp一種在本地CPU上部署的量化模型(超低配推理llama)

Step 2: 合并LoRA權重,生成全量模型權重

使用ymcui/Chinese-LLaMA-Alpaca at v2.0 (github.com)里面的scripts/merge_llama_with_chinese_lora.py腳本

對原版LLaMA模型(HF格式)擴充中文詞表,并與LoRA權重進行合并,生成全量模型權重consolidated.*.pth(建議檢查生成模型的SHA256值)和配置文件params.json。請執(zhí)行以下命令:

此處可有兩種選擇:

  • 輸出PyTorch版本權重(.pth文件),使用merge_llama_with_chinese_lora.py腳本
    • 使用llama.cpp工具進行量化和部署
  • 輸出HuggingFace版本權重(.bin文件),使用merge_llama_with_chinese_lora_to_hf.py腳本(感謝@sgsdxzy 提供)
    • 使用Transformers進行推理
    • 使用text-generation-webui搭建界面

以上兩個腳本所需參數一致,僅輸出文件格式不同。下面以生成PyTorch版本權重為例,介紹相應的參數設置。

python scripts/merge_llama_with_chinese_lora.py \
    --base_model path_to_original_llama_hf_dir \
    --lora_model path_to_chinese_llama_or_alpaca_lora \
    --output_dir path_to_output_dir 

參數說明:

llama.cpp一種在本地CPU上部署的量化模型(超低配推理llama)

我這里直接使用了Model Hub上的模型,因為很小就直接下載了使用,懶惰下載到本地

  • --base_model:存放HF格式的LLaMA模型權重和配置文件的目錄(Step 1生成)
  • --lora_model:這就是你要合并的 LoRA模型 所在目錄,也可使用Model Hub上的模型名:ziqingyang/chinese-alpaca-lora-7bziqingyang/chinese-llama-lora-7b
  • --output_dir:指定保存全量模型權重的目錄,默認為./
  • (可選)--offload_dir:對于低內存用戶需要指定一個offload緩存路徑

Step 3: llama.cpp 本地快速部署

大模型在自己的電腦上進行本地部署(CPU推理)

下載llama.cpp工具https://github.com/ggerganov/llama.cpp

推薦使用MacOS和Linux系統(tǒng),Windows好像有bug

運行前請確保:

  1. 模型量化過程需要將未量化模型全部載入內存,請確保有足夠可用內存(7B版本需要13G以上)
  2. 加載使用Q4量化后的模型時(例如7B版本),確保本機可用內存大于4-6G(受上下文長度影響)
  3. 系統(tǒng)應有make(MacOS/Linux自帶)或cmake(Windows需自行安裝)編譯工具
  4. 推薦使用Python 3.9或3.10編譯運行l(wèi)lama.cpp工具(因為sentencepiece還不支持3.11)

1. 下載和編譯llama.cpp

運行以下命令對llama.cpp項目進行編譯,生成./main./quantize二進制文件。

git clone https://github.com/ggerganov/llama.cpp && cd llama.cpp && make

2.生成量化版本模型

把合并模型(選擇生成.pth格式模型)中最后一步生成的tokenizer.model文件放入xx-models目錄下,模型文件consolidated.*.pth和配置文件params.json放入xx-models/7B目錄下。

請注意LLaMA和Alpaca的tokenizer.model不可混用

目錄結構類似:

   - 7B/
     - consolidated.00.pth
     - params.json
   - tokenizer.model

將上述.pth模型權重轉換為ggml的FP16格式,生成文件路徑為xx-models/7B/ggml-model-f16.bin。

python3 ./llama.cpp/convert-pth-to-ggml.py ./xx_model/7B/ 1

llama.cpp一種在本地CPU上部署的量化模型(超低配推理llama)

進一步對FP16模型進行Q4量化,生成量化模型文件路徑為zh-models/7B/ggml-model-q4_0.bin。

./quantize ./xx-models/7B/ggml-model-f16.bin ./xx-models/7B/ggml-model-q4_0.bin 2

llama.cpp一種在本地CPU上部署的量化模型(超低配推理llama)

3.加載并啟動模型

運行./main二進制文件,-m命令指定Q4量化模型(也可加載ggml-FP16的模型)。以下是解碼參數示例:

./main -m xx-models/7B/ggml-model-q4_0.bin --color -f prompts/alpaca.txt -ins -c 2048 --temp 0.2 -n 256 --repeat_penalty 1.3

llama.cpp一種在本地CPU上部署的量化模型(超低配推理llama)

在提示符 > 之后輸入你的prompt,command+c中斷輸出,多行信息以\作為行尾。如需查看幫助和參數說明,請執(zhí)行./main -h命令。文章來源地址http://www.zghlxwxcb.cn/news/detail-422817.html

重要參數說明:
-ins 啟動類ChatGPT的對話交流模式
-f 指定prompt模板,alpaca模型請加載prompts/alpaca.txt
-c 控制上下文的長度,值越大越能參考更長的對話歷史
-n 控制回復生成的最大長度
--repeat_penalty 控制生成回復中對重復文本的懲罰力度
--temp 溫度系數,值越低回復的隨機性越小,反之越大
--top_p, top_k 控制采樣的相關參數

到了這里,關于llama.cpp一種在本地CPU上部署的量化模型(超低配推理llama)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 大模型在cpu上使用llama_cpp部署無法加載模型的問題

    大模型在cpu上使用llama_cpp部署無法加載模型的問題

    錯誤:gguf_init_from_file: invalid magic characters \\\'tjgg\\\'等,也就是無法加載模型 因為最新版的llama-cpp-python不支持ggml文件格式了 解決方案: 1、降低版本(最簡單): pip install llama-cpp-python==0.1.78 2、直接下載對應GGUF的模型 3、利用llama.cpp內部轉換函數進行轉換 參考出處:TheBloke/Llam

    2024年01月20日
    瀏覽(26)
  • llama.cpp LLM模型 windows cpu安裝部署踩坑記錄

    llama.cpp LLM模型 windows cpu安裝部署踩坑記錄

    一直想在自己的筆記本上部署一個大模型驗證,早就聽說了llama.cpp,可是一直沒時間弄。 今天終于有時間驗證了。首先本機安裝好g++,cmake.我下載的cmake版本是cmake-3.27.0-rc4-windows-x86_64.msi。安裝時選擇增加系統(tǒng)變量。接著GitHub - ggerganov/llama.cpp: Port of Facebook\\\'s LLaMA model in C/C++ 執(zhí)行

    2024年02月15日
    瀏覽(26)
  • 使用go-llama.cpp 運行 yi-01-6b大模型,使用本地CPU運行,速度挺快的

    使用go-llama.cpp 運行 yi-01-6b大模型,使用本地CPU運行,速度挺快的

    https://github.com/ggerganov/llama.cpp LaMA.cpp 項目是開發(fā)者 Georgi Gerganov 基于 Meta 釋出的 LLaMA 模型(簡易 Python 代碼示例)手擼的純 C/C++ 版本,用于模型推理。所謂推理,即是給輸入-跑模型-得輸出的模型運行過程。 那么,純 C/C++ 版本有何優(yōu)勢呢? 無需任何額外依賴,相比 Python 代碼

    2024年02月20日
    瀏覽(19)
  • AI-windows下使用llama.cpp部署本地Chinese-LLaMA-Alpaca-2模型

    生成的文件在 .buildbin ,我們要用的是 main.exe , binmain.exe -h 查看使用幫助 本項目基于Meta發(fā)布的可商用大模型Llama-2開發(fā),是中文LLaMAAlpaca大模型的第二期項目,開源了中文LLaMA-2基座模型和Alpaca-2指令精調大模型。這些模型在原版Llama-2的基礎上擴充并優(yōu)化了中文詞表,使用

    2024年04月25日
    瀏覽(33)
  • 【AI實戰(zhàn)】llama.cpp 量化部署 llama-33B

    【AI實戰(zhàn)】llama.cpp 量化部署 llama-33B

    量化模型是將模型中的高精度浮點數轉化成低精度的int或其他類型得到的新的,花銷更小,運行更快的模型。 Inference of LLaMA model in pure C/C++。 llama.cpp 運行期占用內存更小,推斷速度也更快,同樣的模型,7B 基礎模型舉例,32位浮點數的模型占用空間 27G,llama.cpp 量化后占用內

    2024年02月16日
    瀏覽(23)
  • 【類ChatGPT】本地CPU部署中文羊駝大模型LLaMA和Alpaca

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

    昨天在github上看到一個在本地部署中文大模型的項目,和大家分享一下。先把地址po出來。 項目名稱:中文LLaMAAlpaca大語言模型+本地部署 (Chinese LLaMA Alpaca LLMs) 項目地址:https://github.com/ymcui/Chinese-LLaMA-Alpaca 以下是原github中給出的體驗GIF,可以看到這個模型還是具備一定的指令

    2023年04月23日
    瀏覽(34)
  • 手把手教你本地CPU環(huán)境部署清華大模型ChatGLM-6B,利用量化模型,本地即可開始智能聊天,達到ChatGPT的80%

    手把手教你本地CPU環(huán)境部署清華大模型ChatGLM-6B,利用量化模型,本地即可開始智能聊天,達到ChatGPT的80%

    大家好,我是微學AI,今天教你們本地CPU環(huán)境部署清華大ChatGLM-6B模型,利用量化模型,每個人都能跑動大模型。ChatGLM-6B是一款出色的中英雙語對話模型,擁有超過62億個參數,可高效地處理日常對話場景。與GLM-130B模型相比,ChatGLM-6B在對話場景處理能力方面表現更加卓越。此

    2024年02月01日
    瀏覽(25)
  • 【大模型】大模型 CPU 推理之 llama.cpp

    【大模型】大模型 CPU 推理之 llama.cpp

    描述 The main goal of llama.cpp is to enable LLM inference with minimal setup and state-of-the-art performance on a wide variety of hardware - locally and in the cloud. Plain C/C++ implementation without any dependencies Apple silicon is a first-class citizen - optimized via ARM NEON, Accelerate and Metal frameworks AVX, AVX2 and AVX512 support for x86 arc

    2024年04月14日
    瀏覽(23)
  • 【chatglm2】使用Python在CPU環(huán)境中運行 chatglm.cpp 可以實現本地使用CPU運行chatglm2模型,速度也特別的快可以本地部署,把現有項目進行AI的改造。

    【chatglm2】使用Python在CPU環(huán)境中運行 chatglm.cpp 可以實現本地使用CPU運行chatglm2模型,速度也特別的快可以本地部署,把現有項目進行AI的改造。

    https://github.com/li-plus/chatglm.cpp.git 這個項目和llama.cpp 項目類似,使用C++ 去運行模型的。 項目使用了 ggml 這個核心模塊,去運行的。 可以支持在 cpu 上面跑模型。 ChatGLM2-6B 是開源中英雙語對話模型 ChatGLM-6B 的第二代版本,在保留了初代模型對話流暢、部署門檻較低等眾多優(yōu)秀

    2024年02月08日
    瀏覽(23)
  • 【LLM】Windows本地CPU部署民間版中文羊駝模型(Chinese-LLaMA-Alpaca)踩坑記錄

    【LLM】Windows本地CPU部署民間版中文羊駝模型(Chinese-LLaMA-Alpaca)踩坑記錄

    目錄 前言 準備工作 Git? Python3.9? Cmake 下載模型? 合并模型 部署模型? 想必有小伙伴也想跟我一樣體驗下部署大語言模型, 但礙于經濟實力, 不過民間上出現了大量的量化模型, 我們平民也能體驗體驗啦~, 該模型可以在筆記本電腦上部署, 確保你電腦至少有16G運行內存 開原地址

    2024年02月04日
    瀏覽(53)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包