LangChain开发环境准备-实现私有大模型OpenAI标准接口封装

LangChain开发环境准备-实现私有大模型OpenAI标准接口封装

但是仅仅完成模型的部署和启动离通过LangChain来调用模型还差一步。今天这节课我就将带领小伙伴们将这未完成的一步补全,实现私有大模型OpenAI标准接口封装,并完成LangChain对大模型的调用与测试。本次课程提纲如下,今天主要讲适配提供通用OpenAI-API接口的部分

适配提供通用OpenAI-API接口

要让LangChain能够调用我们部署在本地或者私有网络中的AI大模型,我们需要提供一个符合OpenAI-API标准的接口,这样LangChain就可以通过统一的方式来访问我们的模型。为了方便我们实现这个接口,我们可以使用一个开源的项目:api-for-open-llm,它是一个基于FastAPI和transformers的项目,可以快速地将任何基于transformers的语言模型封装成一个OpenAI-API风格的接口。

拉取api-for-open-llm代码并安装项目依赖

要使用api-for-open-llm项目,我们首先需要将它的代码拉取到我们的开发环境中,并安装它的项目依赖。我们可以通过以下步骤来操作:

  1. 在开发环境中打开一个终端窗口,并执行以下命令:
git clone https://github.com/xusenlinzy/api-for-open-llm.git
cd api-for-open-llm
pip install -r requirements.txt

这样就完成了api-for-open-llm项目的代码拉取和依赖安装。

配置模型启动配置项

拉取并安装好api-for-open-llm项目后,我们还需要对它进行一些配置,以便于它能够正确地加载我们的baichuan2量化模型,并提供相应的接口。我们可以通过以下步骤来配置:

  1. 在api-for-open-llm项目中创建.env文件,并配置以下内容:
# 启动端口
PORT=8000

# model 命名
MODEL_NAME=baichuan2-13b-chat
# 将MODEL_PATH改为我们的baichuan2量化模型所在的文件夹路径
MODEL_PATH=/content/baichuan-inc/Baichuan2-13B-Chat-4bits

# device related
# GPU设备并行化策略
DEVICE_MAP=auto
# GPU数量
NUM_GPUs=1
# 开启半精度,可以加快运行速度、减少GPU占用
DTYPE=half

# api related
# API前缀
API_PREFIX=/v1

# API_KEY,此处随意填一个字符串即可
OPENAI_API_KEY=


这样就完成了api-for-open-llm项目的配置。

测试Langchain使用到的核心接口

配置好api-for-open-llm项目后,我们就可以启动它,并测试它提供的接口是否符合Langchain使用到的核心接口。我们可以通过以下步骤来测试:

  1. 在终端窗口中执行以下命令:
cp api-for-open-llm/api/server.py api-for-open-llm/
python api-for-open-llm/server.py > server.log 2>&1 &

这样就启动了api-for-open-llm项目,监听在8000端口。

  1. 接口测试,我们可以通过接口调用工具测试以下几个接口来验证项目的部署情况,请求前需要在请求header中配置Authorization参数,配置内容为Bearer {{YOUR_API_KEY}}
  • /v1/models: 查询模型信息,执行结果如下

  • /v1/completions: 文字接龙,执行结果如下

测试LangChain的quickstart

测试好api-for-open-llm项目提供的核心接口后,我们就可以使用LangChain来调用我们部署在本地或者私有网络中的AI大模型了。以LangChain的quickstart为例,步骤如下:

  1. 首先安装Langchain包
# 安装Langchain包
pip install langchain
# Use OpenAI's model APIs
pip install openai

2. 执行以下代码

from langchain.llms import OpenAI

from langchain.chat_models import ChatOpenAI

from langchain.schema import HumanMessage

# 修改为你自己配置的OPENAI_API_KEY
api_key = ""

# 修改为你启动api-for-open-llm项目所在的服务地址和端口
api_url = "https://localhost:8000/v1"

modal= "baichuan2-13b-chat"

llm = OpenAI(model_name=modal,openai_api_key=api_key,openai_api_base=api_url)

chat_model = ChatOpenAI(model_name=modal,openai_api_key=api_key,openai_api_base=api_url)
text = "What would be a good company name for a company that makes colorful socks?"

messages = [HumanMessage(content=text)]

#LLMs: this is a language model which takes a string as input and returns a string
print("llm运行结果如下:")

print(llm.predict_messages(messages))

#ChatModels: this is a language model which takes a list of messages as input and returns a message
print("ChatModels运行结果如下:")
print(chat_model.predict_messages(messages))

这样就完成了LangChain对我们部署在本地或者私有网络中的AI大模型的调用与测试。运行结果如下图所示。

部署方案

在本地或者私有网络中部署AI大模型并使用LangChain调用它是一种方便和安全的方式,但是它也有一些局限性,例如需要占用本地或者私有网络中的计算资源和存储空间,以及需要保持网络连接的稳定性。因此,如果我们想要更灵活和高效地部署和使用AI大模型,我们可以考虑以下两种部署方案:

使用ModelScope魔搭部署,ngork代理

魔搭是阿里发布的基于阿里云端资源的AI开发平台,它提供了专业的AI硬件和软件资源,以及丰富的AI应用和服务。新用户注册赠送36小时的GPU使用时长,可以白嫖用来进行大模型部署测试。

我们可以利用魔搭来部署我们的AI大模型,并通过ngork代理来将其暴露给外部网络。这样我们就可以享受魔塔提供的高性能和高质量的AI环境,以及提高网络连接的可靠性。我们可以通过以下步骤来实现这种部署方案:

  1. 在浏览器中打开魔搭网站
  2. 点击我的Notebook菜单,启动GPU示例并创建一个新的笔记本。

  1. 按上节课教授的内容下载模型(魔搭内置模型下载缓存加速可通过下图代码快速下载模型),并按这节课的内容启动Open-API接口

  1. 注册ngork,并获取ngork访问token后配置服务代理,生成ngork访问地址

这样就完成了在魔搭中部署AI大模型并通过ngork代理访问它的过程。我们可以使用之前输出的URL来测试我们的模型,或者在LangChain中添加一个新的模型,并使用该URL作为模型地址。魔搭的notebook可以通过文件直接导入,通过如下链接获取导入文件:

使用colab部署,ngork代理

具备网络访问条件的可以考虑使用google的colab部署,它提供了免费的GPU和TPU资源,以及丰富的Python库和工具。我们可以利用colab来部署我们的AI大模型,并通过ngork代理来将其暴露给外部网络。这样我们就可以节省本地或者私有网络中的计算资源和存储空间,以及提高网络连接的可靠性。我们可以通过以下步骤来实现这种部署方案:

  1. 在浏览器中打开colab网站,并登录一个Goog…
  2. 在colab网站中,点击File菜单下的New notebook选项,创建一个新的笔记本。
  3. 按上节课的内容下载模型,并按这节课的内容启动Open-API接口

4. 注册ngork,并获取ngork访问token后配置服务代理,生成ngork访问地址

这样就完成了在colab中部署AI大模型并通过ngork代理访问它的过程。我们可以使用之前输出的URL来测试我们的模型,或者在LangChain中添加一个新的模型,并使用该URL作为模型地址。colab的notebook可以通过文件直接导入,通过如下链接获取导入文件:

总结

本文介绍了如何在LangChain开发环境中准备AI大模型私有部署的技术指南,以baichuan2量化模型为例,分别介绍了适配提供通用OpenAI-API接口、测试LangChain的quickstart和部署方案的步骤和代码。通过本文的指导,读者可以在LangChain开发环境中轻松地部署和使用AI大模型,享受AI大模型带来的强大能力和价值。

如何学习AI大模型?

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

在这里插入图片描述

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

在这里插入图片描述

  • 24
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值