利用llama-cpp与Python构建高效API接口的实践指南

文章目录

  • 概要
  • 整体操作流程
  • 技术细节
  • 小结
  • 概要

    使用llama-cpp-python制作api接口,可以接入gradio当中,参考上一节。
    llama-cpp-python的github网址

    整体操作流程

    1. 下载llama-cpp-python。首先判断自己是在CPU的环境下还是GPU的环境下。以下操作均在魔搭提供的免费GPU环境下。
    #CPU
    pip install llama-cpp-python
    #GPU
    CMAKE_ARGS="-DGGML_CUDA=on FORCE_CMAKE=1" pip install llama-cpp-python --no-cache-dir
    

    1. 启动服务
      模型可以采用量化的版本,也可以采用原版本大小,看自己的硬件环境。
    # 模型注意力层有32层,cpu8核,可以自己修改。
    python -m llama_cpp.server --model 模型路径/模型名称.bin --n_gpu_layers 32 --m_thread 8
    

    在魔搭上启动可能报错如下:


    这也就是缺少依赖包,解决如下:

    pip install starlette-context
    pip install pydantic-settings
    

    成功启动后会显示:

    1. 测试一下能不能行
      api_key 随便写,一个模板而已,因为是自己构建的api。
      base_url 就是上面图所示的,为什么加v1等会在下面解释 端口号自己可以改的,在启动服务的时候设置。
    !pip install -q openai
    import openai
    
    openai.api_key = 'qqqqqqqqqqqqqqqqqq'  
    openai.base_url = "http://localhost:8000/v1/"  
    #模型参数设置
    completion = openai.completions.create(
        model="llama",
        max_tokens=256,   
        top_p = 0.2,
        temperature = 0.6,
        prompt="出现了黄疸、恶心、呕吐等症状,可能患了什么疾病?",
    )
    print(completion.choices[0].text)
    


    因为采用的是量化后模型,反应速度也算比较快了,用时2.6s。

    技术细节

  • API的接口缘由可以查看github中的llama_cpp/server/app.py,有详细的路由解释。
  • 小结

    至此完成了一个整体流程:从微调到量化到部署到api最终显示在网页上,涉及到的技术很多,还有很多细节需要学习,记录一下美好的时光,希望有个好的结果。敬礼!!!

    作者:LLM挣扎学员

    物联沃分享整理
    物联沃-IOTWORD物联网 » 利用llama-cpp与Python构建高效API接口的实践指南

    发表回复