推理系统学习笔记

本文介绍了学习者对MLsys的兴趣并分享了关于推理系统的资源链接,包括CPU上运行中文版LLaMA2的方法,如模型下载、量化转换和使用shell脚本进行聊天。作者还提到在实践中遇到的问题,如模型文件路径匹配和加载过程中的调整。
摘要由CSDN通过智能技术生成

一些学习资料

推理系统概念

https://github.com/chenzomi12/DeepLearningSystem/tree/main/04Inference

推理系统全景
请求与响应处理

请求调度

推理引擎

模型管理

监控

推理芯片

推理系统

TFServer

在这里插入图片描述

推理引擎架构

在CPU上推理中文版LLaMA2 Chinese-LLaMA-Alpaca-2

https://github.com/ymcui/Chinese-LLaMA-Alpaca-2/tree/main

  • download
    在这里插入图片描述
    .gguf 文件是通过llama_cpp后面生成的
  • 借助llama.cpp在CPU上推理
    官网教程
    克隆仓库到本地
    Ubuntu20做法
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make
  • 生成量化版模型
python3 convert.py /home/llama/alpaca/

注意替换对应的模型文件目录地址,这里有个小坑,就是在convert.py文件的load_some_model()函数中globs参数会匹配不上实际模型使用的值,这里要修改适配一下,不知道作者为什么这么设计。

def load_some_model(path: Path) -> ModelPlus:
    '''Load a model of any supported format.'''
    # Be extra-friendly and accept either a file or a directory:
    if path.is_dir():
        # Check if it's a set of safetensors files first
        globs = ["model-00001-of-*.safetensors", "model.safetensors"]
        files = [file for glob in globs for file in path.glob(glob)]
        if not files:
            # Try the PyTorch patterns too, with lower priority
            globs = ["consolidated.00.pth", "pytorch_model-001*.bin", "*.pt", "pytorch_model.bin"]
            files = [file for glob in globs for file in path.glob(glob)]
        if not files:
            raise Exception(f"Can't find model in directory {path}")
        if len(files) > 1:
            raise Exception(f"Found multiple models in {path}, not sure which to pick: {files}")
        path = files[0]

    paths = find_multifile_paths(path)
    models_plus: list[ModelPlus] = []
    for path in paths:
        print(f"Loading model file {path}")
        models_plus.append(lazy_load_file(path))

    model_plus = merge_multifile_models(models_plus)
    return model_plus

在这里插入图片描述
成功后这样子。

  • 加载启动模型
    将Alpaca-2项目的scripts/llama-cpp/chat.sh拷贝至llama.cpp的根目录。
#!/bin/bash

# temporary script to chat with Chinese Alpaca-2 model
# usage: ./chat.sh alpaca2-ggml-model-path your-first-instruction

SYSTEM_PROMPT='You are a helpful assistant. 你是一个乐于助人的助手。'
# SYSTEM_PROMPT='You are a helpful assistant. 你是一个乐于助人的助手。请你提供专业、有逻辑、内容真实、有价值的详细回复。' # Try this one, if you prefer longer response.
MODEL_PATH=$1
FIRST_INSTRUCTION=$2

./main -m "$MODEL_PATH" \
--color -i -c 4096 -t 8 --temp 0.5 --top_k 40 --top_p 0.9 --repeat_penalty 1.1 \
--in-prefix-bos --in-prefix ' [INST] ' --in-suffix ' [/INST]' -p \
"[INST] <<SYS>>
$SYSTEM_PROMPT
<</SYS>>

$FIRST_INSTRUCTION [/INST]"

shell脚本接收两个传参,.gguf文件和’问答的句子’

chmod +x chat.sh
./chat.sh /home/llama/alpaca/ggml-model-f16.gguf 'Python是世界上最好的语言吗'

在这里插入图片描述
-------------------- 未完待续 --------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Loganer

感谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值