【个人开发】llama2部署实践(一)——基于CPU部署

1. Anaconda安装

shell 复制代码
mkdir -p /opt/anaconda
cd /opt/anaconda
# 参考链接:https://repo.anaconda.com/archive/index.html
wget https://repo.anaconda.com/archive/Anaconda3-2023.07-2-Linux-x86_64.sh
sh Anaconda3-2023.07-2-Linux-x86_64.sh

2.安装git

shell 复制代码
yum install git
yum install git-lfs # 安装依赖
git lfs install 

3.安装g++

shell 复制代码
yum install gcc-c++
## 升级版本,否则会报错
sudo yum install centos-release-scl
sudo yum install devtoolset-9-gcc*
scl enable devtoolset-9 bash

## 查看版本
gcc -v

4.llama2 安装

shell 复制代码
# 1.下载项目
git clone https://github.com/ggerganov/llama.cpp
pip3 install -r requirements.txt
make

# GPU编译方式。

## 2.获取 下载链接、下载模型 
#  注意代理节点跟所选地址的关系。
# https://llama.meta.com/llama-downloads/
git clone https://github.com/facebookresearch/llama.git

## 下载(输入邮箱链接)
./download.sh 
## 得到模型文件 llama-2-7b

# 3.文件转化
## 将llama中的文件tokenizer.model 复制到模型的位置 llama-2-7b,否则会报错
## Found vocab files: {'tokenizer.model': None, 'vocab.json': None, 'tokenizer.json': None}      FileNotFoundError: spm vocab not found.

## 模型转化
cd llama.cpp
mkdir -p models/7B/
mkdir -p models/13B/
python3 convert.py --outfile models/7B/ggml-model-f16.bin ../llama-2-7b/
python3 convert.py --outfile models/13B/ggml-model-f16.bin ../llama-2-13b/

python3 convert.py --outfile /data/opt/llama2_model/llama-2-7b-bin/ggml-model-f16.bin /data/opt/llama2_model/llama-2-7b


## 模型量化(q4_0为原始的量化)
./quantize ./models/7B/ggml-model-f16.bin ./models/7B/ggml-model-q4_0.gguf q4_0
## 启动服务
./server -m ./models/7B/ggml-model-q4_0.gguf  -c 2048 -ngl 1 --host localhost --port 8080 
## 终端对话
./main -m ./models/7B/ggml-model-q4_0.gguf -n 256 --repeat_penalty 1.0 --color -i -r "User:" -f prompts/chat-with-bob.txt 
## 服务调用
curl --request POST \
    --url http://localhost:8080/completion \
    --header "Content-Type: application/json" \
    --data '{"prompt": "Building a website can be done in 10 simple steps:","n_predict": 128}'

以上,End!

相关推荐
郝学胜-神的一滴21 小时前
计算机图形中的法线矩阵:深入理解与应用
开发语言·程序人生·线性代数·算法·机器学习·矩阵·个人开发
三千院本院1 天前
LlaMA_Factory实战微调Qwen-LLM大模型
人工智能·python·深度学习·llama
珊珊而川1 天前
MAC-SQL:SQL-Llama 的具体训练流程
sql·macos·llama
workflower1 天前
FDD与其他方法的相似和区别
数据库·算法·需求分析·个人开发
共绩算力1 天前
Llama 4 Maverick Scout 多模态MoE新里程碑
人工智能·llama·共绩算力
竹等寒2 天前
Go红队开发—图形化界面
网络安全·golang·个人开发
SeaTunnel2 天前
Apache SeaTunnel 支持 Metalake 开发了!避免任务配置敏感信息暴露
大数据·开源·apache·个人开发·数据集成·seatunnel·看开源之夏
workflower2 天前
测试套件缩减方法
数据库·单元测试·需求分析·个人开发·极限编程
Hy行者勇哥2 天前
多源数据抽取与推送模块架构设计
人工智能·个人开发
workflower2 天前
FDD(Feature Driven Development)特征驱动开发
大数据·数据库·驱动开发·需求分析·个人开发