Genoss GPT简介:使用 Genoss 模型网关实现多个LLM模型的快速切换与集成

一、前言

生成式人工智能领域的发展继续加速,大型语言模型 (LLM) 的用途范围不断扩大。这些用途跨越不同的领域,包括个人助理、文档检索以及图像和文本生成。ChatGPT 等突破性应用程序为公司进入该领域并开始使用这项技术进行构建铺平了道路。

大公司正在构建自己的模型,例如 Meta 及其新发布的 Llama 2,以及 Microsoft 与 OpenAI 和 Meta 的合作伙伴关系,这表明该领域存在大量投资。

Hugging Face 等独角兽初创公司以 40 亿美元的估值筹集资金,主导了开源领域,让任何人都可以轻松部署模型。然而,由于成本高昂,小公司不太可能在从头开始建立生产级的大语言模型与大型科技巨头竞争。

像LangChain这样的生态系统为开发人员与这些第三方 LLM 或通常所说的基础模型进行交互提供了一组有用的实用程序。LangChain 类帮助开发人员利用具有 I/O 和内存的模型,并提供模型链来完成文档检索等特定任务。此外,LangChain建立了标准词汇,引入了生态系统中具有明确含义的“RetrievalChain”和“MemoryStore”等术语,从而简化了AI工程师之间的讨论。

二、LLM模型集成问题

在前面我们介绍了一个名为Quivr的开源项目,它用于构建本地知识库。然而,当需要扩展多个不同的模型时,功能开发变得非常复杂且难以维护。为了解决这个问题,作者 Stan Girard 开发了Genoss。Genoss通过创建一个简单的API,允许使用任何模型都可以像使用OpenAI的ChatGPT API一样使用相同的API接口。这样一来,Quivr的模型扩展能力就完全解耦出来了,只需要使用Genoss调用统一的API接口即可完成其他模型的接入,包括本地LLM。

目前用于与LLM提供商进行集成的工具还存在明显的差距。随着新型和改进型模型的引入以及技术的进步,工程师们希望能够自由快速地实现这些模型的新功能。

LangChain为许多模型提供了类,例如OpenAI和Hugging Face,这些类基于一个通用的LLM类。然而,对于每个提供商,需要使用不同的类。这些类具有各种方法和属性,尽管你希望它们可以直接插拔使用,但实际解决方案很少是那么简单的。

此外,模型流式传输和嵌套链等因素进一步复杂化了问题。虽然LangChain在构建可组合部件之间的互操作性方面做得很好(例如VectorStores、DocumentLoaders和Retrievers),但在切换LLM模型时,我们需要改进开发者的体验。

三、GenossGPT 介绍

GenossGPT提供了与GPT模型交互的通用接口,使企业能够控制模型的使用。同时,利用LangSmith在生产环境中提供增强的可观察性和分析功能。

Genoss是一个由LangChain支持的模型网关。它将调用任何受支持的LLM(语言模型)的过程标准化为一个统一的接口,并与OpenAI API规范兼容。只需将基本URL更改为Genoss端点,就可以轻松获得任何LLM模型的强大功能。它可以直接集成到任何支持OpenAI接口的第三方工具中。

Genoss简化了与多个提供者之间的交互和嵌入模型的繁重工作。通过简单地更改模型名称,您可以在本地开源模型、OpenAI模型、AWS Bedrock模型或任何Hugging Face模型之间进行切换。

在企业环境中使用Genoss时,管理员可以通过仪表板上的单一更改来更新模型。无需更新任何应用程序代码即可指向新的LLM提供者,所有映射都由Genoss处理。这对于需要针对不同任务或用户层使用不同模型的应用程序非常有用。付费用户可以选择具有不同优势的模型,例如增强隐私或使用特定知识进行微调,而演示用户则可以使用通用且更便宜的模型。

四、Genoss 接入 Llama V2 LLM模型

Llama V2是一种先进的LLM(语言模型),旨在完成各种自然语言处理任务。Genoss是一个开源平台,使我们能够快速运行这样的模型,而Hugging Face提供了一个生态系统来托管和管理模型。

接下来我们将介绍如何使用Genoss通过Hugging Face的推理端点来运行Llama V2 LLM模型,将其托管在Hugging Face服务器上。

4.1、下载项目源码

git clone https://github.com/OpenGenerativeAI/GenossGPT.git

4.2、搭建开发环境

1)、安装 Python 3.11 版本

安装pyenv来管理您的 Python 版本和虚拟环境:

curl -sSL https://pyenv.run | bash

如果您在 MacOS 上使用 pyenv 安装 python 时遇到错误,请按照此评论操作。

将这些行添加到您的~/.bashrc~/.zshrc以便能够激活pyenv virtualenv

eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
eval "$(pyenv init --path)"
  • 重新启动Shell终端

  • 安装正确版本Pythonpyenv

pyenv install 3.11.3

2)、安装 Poetry

安装Poetry来管理您的依赖项和工具配置:

curl -sSL https://install.python-poetry.org | python - --version 1.5.1

如果您之前没有安装过任何Python版本,您可能需要在安装Poetry之前设置全局Python版本:

pyenv global 3.11.3

3)、创建虚拟环境

创建您的虚拟环境并将其链接到您的项目文件夹:

pyenv virtualenv 3.11.3 genoss-gpt
pyenv local genoss-gpt

这样,每次进入项目目录时,你的 virtualenv 都会被激活。

4)、通过poetry安装Python依赖

poetry install --no-root

安装Poetry,它可以轻松安装处理 Genoss 后端所需的一切依赖。

4.3、更新配置文件

  • demo文件夹内有一个env.example文件。
cp .env.example .env
  • 进入demo文件夹并更新.env文件。

  • 添加 HuggingFace API 令牌,您可以在 HuggingFace 的 settings/token 下创建该令牌。

  • 添加 OpenAI API 密钥。前往https://platform.openai.com/account/api-keys

  • 最后,指定自定义 HuggingFace 端点 URL。

4.4、部署模型

  • 在 HuggingFace 上找到 Llama V2 型号。

  • 将其部署在您选择的区域和云提供商中。

  • 选择所需的 GPU 并保护它,然后创建端点。

4.5、运行 Genoss

  • 将部署模型中的 URL 添加到.env文件中。

  • 运行命令以启动流。

PYTHONPATH=. streamlit run demo/main.py 

4.6、访问 Genoss

  • 现在您可以通过推理端点访问 Genoss、HuggingFace 和 Llama V2。

  • 您还可以在本地托管其他模型。

GitHub地址:https://github.com/OpenGenerativeAI/GenossGPT

五、结论

模型接口的不一致性使得使用LLM变得比较复杂。商业和开源模型没有统一的标准接口,而Genoss提供了统一的接口标准,使得商业和开源模型能够更加方便地使用。通过使用Genoss,开发人员可以降低学习曲线,快速构建应用程序并扩展生成式AI功能的利用。

考虑到LLM的快速发展速度,开发人员可以使用Genoss来测试最新的模型,并在本地运行私有模型进行微调。企业可以使用Genoss来控制用户在内部和生产应用程序中对模型的使用,并利用LangSmith进行可观察性、调试和测试。

本文通过使用Genoss和Hugging Face的Llama V2模型,我们可以轻松地完成复杂的任务。Genoss提供了一种简化模型部署和使用的方法,同时还能够实现系统的可扩展性。此外,它还能与其他工具(如OpenAI SDK)无缝集成,为用户提供更多的灵活性和便利性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/41327.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何发布自己的小程序

小程序的基础内容组件 text&#xff1a; 文本支持长按选中的效果 <text selectable>151535313511</text> rich-text: 把HTML字符串渲染为对应的UI <rich-text nodes"<h1 stylecolor:red;>123</h1>"></rich-text> 小程序的…

MySql过滤重复数据

假设模型表是: 1. 根据单字段过滤: SELECT user_name, COUNT(*) as count FROM sys_user GROUP BY user_name HAVING count > 1;结果: 2. 根据多个字段查询重复数据 SELECT user_name, email, COUNT(*) as count FROM sys_user GROUP BY user_name, email HAVING count…

[centos]设置主机名

1、设置 hostnamectl set-hostname 名字 2、查看是否生效 hostnamectl status 3、打开一个新链接就可以了

log4j教程_编程入门自学教程_菜鸟教程-免费教程分享

教程简介 Log4j是Apache的一个开源项目&#xff0c;通过使用Log4j&#xff0c;我们可以控制日志信息输送的目的地是控制台、文件、GUI组件&#xff0c;甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等&#xff1b;我们也可以控制每一条日志的输出格式&#xff1b;…

[python] 使用Jieba工具中文分词及文本聚类概念

前面讲述了很多关于Python爬取本体Ontology、消息盒InfoBox、虎扑图片等例子&#xff0c;同时讲述了VSM向量空间模型的应用。但是由于InfoBox没有前后文和语义概念&#xff0c;所以效果不是很好&#xff0c;这篇文章主要是爬取百度5A景区摘要信息&#xff0c;再利用Jieba分词工…

hive--给表名和字段加注释

1.建表添加注释 CREATE EXTERNAL TABLE test(loc_province string comment 省份,loc_city string comment 城市,loc_district string comment 区,loc_street string comment 街道,)COMMENT 每日数据处理后的表 PARTITIONED BY (par_dt string) ROW FORMAT SERDEorg.apache.had…

学习Vue:响应式原理与性能优化策略

性能优化是Vue.js应用开发中的一个关键方面&#xff0c;而深入了解响应式原理并采用有效的性能优化策略可以显著提升应用的性能。本文将解释响应式原理并介绍一些性能优化策略&#xff0c;旨在帮助您构建高性能的Vue.js应用。 响应式原理 Vue.js的响应式原理是通过利用Object.…

PHP在线客服系统推荐

在当今数字化时代&#xff0c;企业客户服务的重要性不容忽视。为了提供卓越的客户体验&#xff0c;许多企业正在寻找PHP在线客服系统。这种系统不仅可以满足客户的需求&#xff0c;还能提升企业的形象。本文将深入探讨PHP在线客服系统的一些有趣话题。 理解PHP在线客服系统 PHP…

71 # 协商缓存的配置:通过内容

对比&#xff08;协商&#xff09;缓存 比较一下再去决定是用缓存还是重新获取数据&#xff0c;这样会减少网络请求&#xff0c;提高性能。 对比缓存的工作原理 客户端第一次请求服务器的时候&#xff0c;服务器会把数据进行缓存&#xff0c;同时会生成一个缓存标识符&#…

Transformer是什么,Transformer应用

目录 Transformer应用 Transformer是什么 Transformer应用:循环神经网络 语言翻译:注重语句前后顺序 RNN看中单个特征; CNN:看中特征之间时序性 模型关注不同位置的能力 Transformer是什么 Transformer是一个利用注意力机制来提高模型训练速度的模型。关于注意力机…

clickhouse-数据导入导出方案

一、简介 clickhouse有多种数据的导入导出方式&#xff0c;可以灵活使用&#xff0c;下面对这些方式分别做些介绍&#xff0c;导入导出的写法与格式和格式设置有关。 二、导入 1.从s3导入 详情可查看官网&#xff0c;也可以在这里获取数据集 -- 建库建表 CREATE DATABASE …

whisper语音识别部署及WER评价

1.whisper部署 详细过程可以参照&#xff1a;&#x1f3e0; 创建项目文件夹 mkdir whisper cd whisper conda创建虚拟环境 conda create -n py310 python3.10 -c conda-forge -y 安装pytorch pip install --pre torch torchvision torchaudio --extra-index-url 下载whisper p…

智慧工地云平台源码——塔机监控系统

智慧工地概念 智慧工地是一种崭新的工程全生命周期管理理念&#xff0c;是指运用信息化手段&#xff0c;通过对工程项目进行精确设计和施工模拟&#xff0c;围绕施工过程管理&#xff0c;建立互联协同、智能生产、科学管理的施工项目信息化生态圈&#xff0c;并将此数据在虚拟…

鸽王-稚晖君,“远征”A1启程

看到这篇文章的人&#xff0c;想必对野生钢铁侠-稚晖君&#xff0c;都有所了解。作为华为的天才少年&#xff0c;获得了很多的荣誉&#xff0c;作为B站有名的鸽王&#xff0c;在沉浮一段时间后终于要带着新的东西和大家见面了。动态-哔哩哔哩https://b23.tv/Jv7tIjg 众所周知&a…

网络通信原理TCP字段解析(第四十七课)

字段含义Source Port(源端口号)源端口,标识哪

vueuse常用方法

useDateFormat 时间格式化 <script setup lang"ts">import { useNow, useDateFormat } from vueuse/coreconst formatted useDateFormat(useNow(), YYYY-MM-DD HH:mm:ss)</script><template><div>{{ formatted }}</div> </templa…

el-input添加自定义指令只允许输入中文/英文/数字,兼容输入法事件

省流 script: directives: {regexp: {inserted: (el, binding, vnode) > {let composition falseconst formatValue function (e) {if (composition) return// vnode.componentInstance组件实例vnode.componentInstance.$emit(input, e.target.value.replace(/[^\u4e00-…

Python学习笔记_基础篇(十二)_nmap使用及案例

nmap概念及功能 概念 NMap&#xff0c;也就是Network Mapper&#xff0c;最早是Linux下的网络扫描和嗅探工具包。 nmap是一个网络连接端扫描软件&#xff0c;用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端&#xff0c;并且推断计算机运行哪个操作系统&am…

ChatGPT在智能音乐推荐和个性化播放列表中的应用如何?

智能音乐推荐和个性化播放列表是音乐流媒体领域中的重要应用&#xff0c;可以帮助用户发现新音乐、定制自己的音乐体验&#xff0c;并提升音乐平台的用户满意度。ChatGPT作为一种先进的自然语言处理模型&#xff0c;可以在智能音乐推荐和个性化播放列表领域发挥重要作用。本文将…

神经网络基础-神经网络补充概念-56-迁移学习

迁移学习&#xff08;Transfer Learning&#xff09;是一种机器学习技术&#xff0c;旨在将在一个任务上学到的知识或模型迁移到另一个相关任务上&#xff0c;以提高新任务的性能。迁移学习的核心思想是通过利用源领域&#xff08;source domain&#xff09;的知识来改善目标领…