当前位置: 首页 > news >正文

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)无缝集成,为用户提供更多的灵活性和便利性。

相关文章:

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

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

淘宝API接口的实时数据和缓存数据区别

电商API接口实时数据是指通过API接口获取到的与电商相关的实时数据。这些数据可以包括商品库存、订单状态、销售额、用户活跃度等信息。 通过电商API接口,可以实时获取到电商平台上的各种数据,这些数据可以帮助企业或开发者做出及时的决策和分析。例如&…...

excel统计函数篇1之average系列

一、excel中的统计函数 1、AVERAGE(number1,number2,...):返回其参数的平均值 2、AAVERAGEA(value1,value2,...):返回其参数的平均值,包括数字、文本和逻辑值 可以在括号内手动输入,也可以引用单元格,对序列求平均的…...

数学建模(二)线性规划

课程推荐:6 线性规划模型基本原理与编程实现_哔哩哔哩_bilibili 目录 一、线性规划的实例与定义 1.1 线性规划的实例 1.2 线性规划的定义 1.3 最优解 1.4 线性规划的Mathlab标准形式 1.5 使用linprog函数 二、线性规划模型建模实战与代码 2.1 问题提出 2.2…...

小白到运维工程师自学之路 第七十三集 (kubernetes应用部署)

一、安装部署 1、以Deployment YAML方式创建Nginx服务 这个yaml文件在网上可以下载 cat nginx-deployment.yaml apiVersion: apps/v1 #apiVersion是当前配置格式的版本 kind: Deployment #kind是要创建的资源类型,这里是Deploymnet metadata: #metadata是该资源…...

联合仿真 ADAMS 和 SIMULINK步骤

1、把 control 中的 ball_beam 文件 copy 到另外一个文件夹下, 同时设置adams和matlab的默认路径即为ball_beam文件夹, 这样可以省略很多不必要的麻烦! 2、用 aview 打开 ball_beam.cmd 文件,先试试仿真一下,可 以看到…...

【C++精华铺】7.C++内存管理

目录 1. C语言动态内存管理 2. C内存管理方式 2.1 new/delete和new T[]/delete[] 2.1.1 操作内置类型 2.1.2 操作自定义类型 2.2 new/delete和new T[]/delete[]的原理 2.2.1 原理 2.2.2 operator new和operator delete 2.2.3 new T[]的特殊处理(可以…...

牛客网华为OD前端岗位,面试题库练习记录02

题目一 删除字符串中出现次数最少的字符(HJ23) JavaScript Node ACM 模式 const rl require("readline").createInterface({ input: process.stdin }); var iter rl[Symbol.asyncIterator](); const readline async () > (await iter.next()).value;void (asyn…...

数据库动态增删数据,导致分页查询数据出现重复或遗漏的问题分析及解决方案

一、问题分析 1. 请求数据 一般情况下,为了减少服务器的压力或方便展示,前端通过分页方式来请求数据,调用 API 接口时会带上参数 page 与 pageSize。例如请求某个班级的学生数据,获取第一页的 10 个学生的数据 ,假设按…...

神经网络基础-神经网络补充概念-44-minibatch梯度下降法

概念 小批量梯度下降法(Mini-Batch Gradient Descent)是梯度下降法的一种变体,它结合了批量梯度下降(Batch Gradient Descent)和随机梯度下降(Stochastic Gradient Descent)的优点。在小批量梯…...

比较海思麒麟810与高通骁龙855的优劣

海思麒麟810与高通骁龙855可以从以下几方面进行比较: 一、CPU比较 海思麒麟810还是高通骁龙855——哪个处理器更快?在这个比较中,我们观察了差异,并分析了这两个CPU中哪一个更好。我们比较了技术数据和基准测试结果。 海思麒麟810有8个内核和8个线程,时钟最高频率为2.2…...

计算机机房的管理

1 电源问题 不稳定的电源对电脑的使用寿命是一个极大的威胁,特别是对于机房来说危害 性更大。为此,学校要添置必要的稳压器,设置其正常供电的电压为 220 伏、电流 为 l6 安对电脑室供电。如有电压发生偏差,要及时检查供电情况&…...

软件架构生态化-多角色交付的探索实践

作为一个技术架构师,不仅仅要紧跟行业技术趋势,还要结合研发团队现状及痛点,探索新的交付方案。在日常中,你是否遇到如下问题 “ 业务需求排期长研发是瓶颈;非研发角色感受不到研发技改提效的变化;引入ISV …...

基于YOLOv5n/s/m不同参数量级模型开发构建茶叶嫩芽检测识别模型,使用pruning剪枝技术来对模型进行轻量化处理,探索不同剪枝水平下模型性能影响【续】

这里主要是前一篇博文的后续内容,简单回顾一下:本文选取了n/s/m三款不同量级的模型来依次构建训练模型,所有的参数保持同样的设置,之后探索在不同剪枝处理操作下的性能影响。 在上一篇博文中保持30的剪枝程度得到的效果还是比较理…...

深度解析 Llama 2 的资源汇总:不容错过

“ 探索 Llama 2 背后的过程,包括了模型的全面解析,在线体验,微调,部署等,这份资源汇总将带您深入了解其内涵。” 01 — 周二发布了文章《中文大模型 Chinese-LLaMA-Alpaca-2 开源且可以商用》后,不少朋友们…...

Git 删除 GitHub仓库的文件

新建文件夹 git bash here 在新建的文件夹里右键git bash here打开终端&#xff0c;并执行git init初始化仓库 git clone <你的地址> 找到github上要删除的仓库地址&#xff0c;并复制&#xff0c;在终端里输入git clone <你的地址> 要删除文件的库里右键git b…...

如何使用 ChatGPT 将文本转换为 PowerPoint 演示文稿

推荐&#xff1a;使用 NSDT场景编辑器 助你快速搭建可二次编辑的3D应用场景 步骤 1&#xff1a;将文本转换为幻灯片演示文稿 第一步涉及指示 ChatGPT 根据给定的文本生成具有特定数量幻灯片的演示文稿。首先&#xff0c;您必须向 ChatGPT 提供要转换的文本。 使用以下提示指示…...

html(七)meta标签

一 meta标签 1、背景&#xff1a;发现自带某些请求头2、本文没有实际的生产应用场景,仅仅作为技术积累 ① meta标签含义 1、metadata: 元数据,是用于描述数据的数据,它不会显示在页面上,但是机器却可以识别2、应用场景&#xff1a; [1]、SEO搜索引擎优化[2]、定义页面使用…...

《Go 语言第一课》课程学习笔记(五)

入口函数与包初始化&#xff1a;搞清 Go 程序的执行次序 main.main 函数&#xff1a;Go 应用的入口函数 Go 语言中有一个特殊的函数&#xff1a;main 包中的 main 函数&#xff0c;也就是 main.main&#xff0c;它是所有 Go 可执行程序的用户层执行逻辑的入口函数。 Go 程序在…...

Golang 并发编程基础

runtime 包&#xff0c;定义了协程管理相关的 API runtime.Gosched() package mainimport ("fmt""runtime" )func main() {go func() {for i : 0; i < 5; i {fmt.Println(i)}}()// 让出当前CPU给其他协程runtime.Gosched()fmt.Println("end...&qu…...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

多模态图像修复系统:基于深度学习的图片修复实现

多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...

苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会

在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...

嵌入式常见 CPU 架构

架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集&#xff0c;单周期执行&#xff1b;低功耗、CIP 独立外设&#xff1b;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel&#xff08;原始…...

k8s从入门到放弃之HPA控制器

k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率&#xff08;或其他自定义指标&#xff09;来调整这些对象的规模&#xff0c;从而帮助应用程序在负…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践

在 Kubernetes 集群中&#xff0c;如何在保障应用高可用的同时有效地管理资源&#xff0c;一直是运维人员和开发者关注的重点。随着微服务架构的普及&#xff0c;集群内各个服务的负载波动日趋明显&#xff0c;传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...