• FastChat


    在这里插入图片描述

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

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

    安装

    在这里插入图片描述

    pip install fschat
    
    • 1

    模型权重

    支持的模型

    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
    
    • 1

    使用Web GUI进行服务

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

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

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

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

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

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

      python -m fastchat.serve.gradio_web_server
      
      • 1

      这是用户将于与之交互的用户界面。
      安装这些步骤,将能够使用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
      
      • 1
      • 2
      • 3
      • 4

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

    python -m fastchat.serve.gradio_web_server_multi
    
    • 1

    应用程序编程接口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

  • 相关阅读:
    【c ++ primer 笔记】第3章 字符串、向量和数组
    MFC界面美化之自绘按钮控件的实现,圆角按钮,图片按钮
    KMP算法
    大厂经典指针笔试题
    LeetCode算法题解(回溯,难点)|LeetCode37. 解数独
    QT 中 QFileDialog::getOpenFileName 获取到文件路径,并打开这个文件。
    精英VS普通测试开发程序员?截然不同......
    看我为了水作业速通C++!
    MySQL 啥时候用表锁,啥时候用行锁?
    说实话,确实有点难
  • 原文地址:https://blog.csdn.net/studyeboy/article/details/132800291