FastChat

news2024/11/17 20:29:15

在这里插入图片描述

Fast Chat是一个用于训练/部署和评估基于大型语言模型的聊天机器人的开发平台。其核心功能包括:

  • 最先进模型的权重/训练代码和评估代码(例如Vicuna/FastChat-T5)
  • 基于分布式多模型的服务系统,具有Web界面和与OpenAI兼容的RESTful API。

安装

在这里插入图片描述

pip install fschat

模型权重

支持的模型

https://github.com/lm-sys/FastChat/blob/main/docs/model_support.md
在这里插入图片描述

如何支持新模型

在这里插入图片描述

model_registry.py

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

conversation.py

  • ChatGLM default template & ChatGLM2 default template
    在这里插入图片描述
    在这里插入图片描述

  • ChatGPT default template
    在这里插入图片描述

  • Baichuan-13B-Chat template
    在这里插入图片描述
    在这里插入图片描述

  • Qwen-chat default template
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • llama2 template
    在这里插入图片描述
    在这里插入图片描述

model_adapter.py

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • PeftModelAdapter
    在这里插入图片描述

  • ChatGLMAdapter
    在这里插入图片描述

  • ChatGPTAdapter
    在这里插入图片描述

  • BaichuanAdapter
    在这里插入图片描述

  • Llama2Adapter
    在这里插入图片描述

  • QwenChatAdapter
    在这里插入图片描述

使用命令行界面进行推理

python -m fastchat.serve.cli --model-path xxx

使用Web GUI进行服务

使用Web UI进行服务,需要提供三个主要组件:与用户交互的Web服务器/托关一个或多个模型的模型工作者,协调Web服务器和模型工作者的控制器。

  • 启动控制器
    该控制器管理分布式工作者

    python -m fastchat.serve.controller
    
  • 启动模型工作者

    python -m fastchat serve.model_worker --model-path xxx
    

    等带进程完成加载模型并显示"Uvicorn running on …"。模型工作者将向控制器器注册自己。
    为了确保您的模型工作者已正确连接到控制器,请使用以下命令发送测试消息,将看到一个简短的输出。

    python -m fastchat.serve.test_message --model-name xxx
    
  • 启动动服务器

    python -m fastchat.serve.gradio_web_server
    

    这是用户将于与之交互的用户界面。
    安装这些步骤,将能够使用Web UI提供您的模型。可以打开浏览器并与模型聊天。如果没有显示出来,将暂时重新启动Gradio Web服务器。

  • 高级功能
    可以将 多个模型工作者注册到单个控制器,这可用于提高模型的吞吐量或同时提供多个模型。在这种情况下,需要为不同的模型分配不同的GPU和端口号。

    # worker 0
    CUDA_VISIBLE_DEVICES=0 python -m fastchat.serve.model_worker --model-path xxx --controller http://localhost:21001 --port 31000 --worker http://localhost:31000
    # worker 1
    CUDA_VISIBLE_DEVICES=1 python -m fastchat.serve.model_worker --model-path xxx --controller http://localhost:21001 --port 31001 --worker http://localhost:31001
    

还可以启动一个包含Chatbot Arena选项卡的多标签Gradio服务器。

python -m fastchat.serve.gradio_web_server_multi

应用程序编程接口API

兼容OpenAI的RESTful API和SDK

FastChat为其支持的模型提供了兼容OpenAI的API,因此可以将FastChat作为OpenAI API的本地替代品使用。FastChat服务器与openai-python库和cURL命令兼容。

https://github.com/lm-sys/FastChat/blob/main/docs/openai_api.md

在这里插入图片描述

  • RESTful API Server
    在这里插入图片描述
  • OpenAI Official SDK
    在这里插入图片描述
  • cURL
    在这里插入图片描述

Hugging Face 生成API

https://github.com/lm-sys/FastChat/blob/main/fastchat/serve/huggingface_api.py
在这里插入图片描述

LangChain集成

https://github.com/lm-sys/FastChat/blob/main/docs/langchain_integration.md
LangChain是一个库,它通过利用大型语言模型(LLM)并使其能够与其它计算或知识源组合起来促进应用程序的开发。FastChat兼容OpenAI的API服务器可以无缝的使用Langchain和开放模型。

  • 启动RESTful API服务器
    在这里插入图片描述

  • 设置OpenAI 环境
    在这里插入图片描述

  • 尝试本地LangChain
    在这里插入图片描述

评估

在这里插入图片描述
https://github.com/lm-sys/FastChat/tree/main/fastchat/llm_judge

安装

在这里插入图片描述

查看预先生成的模型答案和判断

在这里插入图片描述
https://huggingface.co/spaces/lmsys/mt-bench
在这里插入图片描述

MT工作台

  • 在MT-bench上评估模型
    在这里插入图片描述

  • 其它评分选项
    在这里插入图片描述

  • 如何得到GPT-3.5/GPT-4/Claude的答案
    在这里插入图片描述

  • 绘图
    在这里插入图片描述

协议计算

在这里插入图片描述

数据集

  • Chatbot Arena对话数据集
    https://huggingface.co/datasets/lmsys/chatbot_arena_conversations
    在这里插入图片描述

  • MT-bench人工注释数据集
    https://huggingface.co/datasets/lmsys/mt_bench_human_judgments
    在这里插入图片描述

微调

数据

在这里插入图片描述

  • sharegpt_zh_27k.json
    在这里插入图片描述
  • dummy_conversation.json
    https://github.com/lm-sys/FastChat/blob/main/data/dummy_conversation.json
    在这里插入图片描述

代码和超参数

在这里插入图片描述

使用本地GPU微调Vicuna-7B

在这里插入图片描述
https://github.com/lm-sys/FastChat/blob/main/docs/training.md
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考资料
FastChat——一个用于训练、部署和评估基于大型语言模型的聊天机器人的开放平台
lm-sys/FastChat

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

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

相关文章

Dajngo01_Django框架基础与环境搭建

Dajngo01_Django框架基础与环境搭建 在正式开始学习Django之前,我们先简单了解一下Web应用程序的本质: 接收并解析HTTP请求,获取具体的请求信息处理本次HTTP请求,即完成本次请求的业务逻辑处理构造并返回处理结果——HTTP响应 那么…

Redis 数据一致性方案的分析与研究

点击下方关注我,然后右上角点击...“设为星标”,就能第一时间收到更新推送啦~~~ 一般的业务场景都是读多写少的,当客户端的请求太多,对数据库的压力越来越大,引入缓存来降低数据库的压力是必然选择,目前业内…

【移动开发】最新uniapp开发的多端影视APP+后端对接的苹果CMS源码(可打包多端app)

介绍: 分享一款uniapp开发的多端影视APP源码,后端对接的是苹果10CMS。 这个APP有缓存、投屏、回放记录、收藏等功能,非常完善。 会员中心也使用苹果cms的数据。 可以打包到多个端的代码。 本APP前端用的UI框架是特漂亮的colorUI&#xff0…

当我们谈外包,我们在谈什么?

大家好,我是苍何,周末发小来找我玩耍,聊到了他当初在华为外包的经历,感触挺大的,给大家做下分享。 小 Z 大学专科材料专业毕业,毕业后报名了 IT 培训班,学习了一年,之后面试去了华为…

关于安卓grovvy开发(一)bugly混淆自动上报

背景 打包,mapping,上传,这些是不是都困扰了开发很多。苦于复制粘贴?反正我是。于是,有了这个 最终效果 最终的效果,就是点击项目的打包gradle,复制mapping文件且进行bugly混淆的自动上报。 …

基于单片机超声波测距语音播放

一、系统方案 本设计采用52单片机作为主控器,HC-SR04测距,液晶1602显示,按键设置报警阀值,语音报警。 二、硬件设计 原理图如下: 三、单片机软件设计 1、首先是系统初始化 uint dist; // 保存超声波模块测量到的结果…

基于SSM的网上医院预约挂号系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

Linux 部分IO函数

open、close函数 标准C库IO函数的说明文档在 man 3 open Linux系统IO函数说明文档在man 2 open open()函数打开文件 && errno 例子:目录下没有a.txt那么运行的时候会报错 open创建新文件 本来没有 create.txt 运行完有了 ll可看文…

【LeetCode-中等题】209. 长度最小的子数组

文章目录 题目方法一:滑动窗口:方法二: 题目 方法一:滑动窗口: 参考图解动画:长度最小的子数组 class Solution { //方法一:滑动窗口public int minSubArrayLen(int target, int[] nums) {int n nums.l…

解决jsp/html界面跳转servlet出现404错误的方法

解决jsp/html界面跳转servlet出现404错误的方法 最近在学习黑马项目过程中遇到的问题 问题一: 检查页面的跳转路径和名称拼写是否正确 问题二: tomcat发布项目时所使用的路径名称与项目不同 在idea右上角点击如图圈住的按钮 在deployment中更改出现…

【SpringCloud微服务项目学习-mall4cloud项目(1)】——环境部署,构建与运行

环境部署,构建与运行 mall4cloud项目介绍源码地址 开发环境搭建pom搭建项目运行前端运行 mall4cloud项目介绍 mall4j商城系统 首先介绍一下mall4j,是一个基于spring boot、spring oauth2.0、mybatis、redis的轻量级、前后端分离、防范xss攻击、拥有分布…

Redis的基本概念与基础用法(1)

在节假日前12306的访问量就会急剧增加,在这种海量用户高并发的情况下就容易出现网站崩溃的情况,造成网站奔溃的罪魁祸首就是关系型数据库,因为关系型数据库有: 性能瓶颈:磁盘IO性能低下扩展瓶颈:数据关系复…

【三维重建】Ubuntu18.04安装COLMAP

Ubuntu18.04安装COLMAP 文章目录 Ubuntu18.04安装COLMAP前言安装COLMAP:安装CUDA, cuDNN安装依赖项安装Ceres优化库安装glog(可选)配置并编译COLMAP运行COLMAP 总结 前言 COLMAP是一种通用的运动结构(SfM)和多视图立体(MVS)管道,具有图形和命令行界面。…

RBTree(红黑树)模拟实现(插入)

目录 红黑树的性质 红黑树的模拟插入 叔叔存在且为红色 叔叔不存在 旋转情况​​​​​​​ 叔叔存在且为黑色 总结 插入实现 节点 插入逻辑 左单旋 右单旋 红黑树是一颗平衡搜索二叉树,但是红黑树并不像 AVL 树一样是高度平衡二叉树,任意一…

正在吞食世界的Python!

谁能想到,30年后,一条蟒蛇因为人工智能而席卷了全世界!这一切,都源于1989年的那个圣诞节。 一个名叫Guido van Rossum程序员在荷兰的阿姆斯特丹呆着,无所事事的圣诞假期有点无聊。为了打发时间,他开发了一…

前端中的事件委托

前端小知识 事 件 委 托 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/article/details/132819265 【介绍】&#xff1…

MATLAB语言 实验一 MATLAB工作环境熟悉及简单命令的执行

一、 实验名称 MATLAB工作环境熟悉及简单命令的执行 二、 实验目的 熟悉MATLAB的工作环境,学会使用MATLAB进行一些简单的运算。 三、实验内容 MATLAB的启动和退出,熟悉MATLAB的桌面(Desktop),包括菜单&#xff08…

抖音视频批量智能剪辑/智能一键成片功能如何技术开发源头?

抖音seo,视频剪辑,批量发布,账号矩阵管理,无人直播自动询盘锁定客户,想实现以上功能都要有正规的接口权限,这个权限接口已经在前面文章发过。 一、剪辑技术开发 智能剪辑:咱们研发公司自主研发…

初识Vue3

目录 创建实例 Vue3生命周期 响应式基础 为什么要使用 ref? 声明响应式状态 ref()和reactive() toRef()和toRefs() 创建实例 通过对Vue2的学习,我们可以这样在Vue2中创建一个实例: var vm new Vue({// 选项 }) 或者通过Vue全局api…

webrtc-m79-测试peerconnectionserver的webclient-p2p-demo

1 背景 webrtc的代码中有peerconnectionclient和peerconnectionserver的例子,但是没有对应的web端的例子,这里简单的写了一个测试例子,具体如下: 2 具体操作 2.1 操作流程 2.2 测试效果 使用webclient与peerconnectionclient的…