2024,我想和很多大模型聊聊 | 使用OpenAOE和LMDeploy和开源大语言模型(LLM)对话

好记性不如烂笔头,不如趁热记录下,给未来的自己。

0 | 前言

在这个大语言模型(LLM)百花齐放的时代,出现了很多开源的、商业的、免费的、收费的大模型,在探索这些大模型无限可能性的时候,我们常常对那些能够直观呈现成果的工具感到兴奋。

今天, 给大家分享一个这样的框架工具------ OpenAOE,一个前沿的大语言模型群聊框架 (LLM Group Chat Framework: chat with multiple LLMs at the same time)

通过 OpenAOE 可以很方便地与不同的大语言模型进行单聊和群聊 。它同时支持接入商业大模型(需用户自行提供Token)和 开源的大语言模型。 本篇文章,主要介绍如何使用 LMDeploy 来部署开源的大模型,然后接入 OpenAOE,进行聊天。

1 | 安装部署

先看下部署架构,有一个整体的印象

【说明】

  1. 我们的环境和部署都会基于Linux系统进行 (Windows和MacOS系统同样支持)
  2. 考虑到大模型的部署对显卡要求比较高(InternLM-Chat-7B 模型起来就需要将近 16GB 的显存),我们会借助 InternStudio 来部署模型。当然如果本地电脑显卡配置比较高的话,模型也可以在本地 serving。

这里的 InternStudio 是一个AI开放平台,参加他们的课程,可以提供免费的 A100 GPU 使用时间。

1.1 | 环境准备

1.1.1 | 安装 conda

安装 conda 是为了管理和隔离 python 环境,来避免不同项目之间安装 相同包不同版本 导致的冲突。(如果本地已经有conda环境或者python环境,可以跳过)

本地

bash 复制代码
# 安装 miniconda
mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm -rf ~/miniconda3/miniconda.sh
# 初始化bash 或者 zsh
~/miniconda3/bin/conda init bash
~/miniconda3/bin/conda init zsh

1.1.2 | 创建python虚拟环境并初始化

本地

创建一个python版本是3.10的虚拟环境 openaoe

ini 复制代码
conda create -n openaoe python==3.10

studio开发机 启动开发机后,可以看到

InternStudio 平台提供了一键初始化 conda 环境的命令, 我们可以创建一个新的 conda 环境,命名为 lmdeploy:

bash 复制代码
/share/install_conda_env_internlm_base.sh lmdeploy

安装成功后,执行

bash 复制代码
conda env list

可以看到环境准备就绪:

1.1.3 | 安装 OpenAOE

本地

激活上面创建的 conda 环境: openaoe

复制代码
conda activate openaoe

安装 OpenAOE

arduino 复制代码
pip install -U openaoe -i https://pypi.org/simple

执行openaoe,看到如下界面,表示安装成功

1.1.4 | 安装 LMDeploy

studio开发机

bash 复制代码
pip install packaging
pip install /root/share/wheels/flash_attn-2.4.2+cu118torch2.0cxx11abiTRUE-cp310-cp310-linux_x86_64.whl
pip install 'lmdeploy[all]==v0.1.0'

执行 lmdeploy -h, 看到如下界面,表示安装成功

1.2 | 部署

1.2.1 | 部署 OpenAOE

本地

arduino 复制代码
conda activate openaoe # 如果本地的conda环境不在openaoe,需要执行这段命令
openaoe -f config.yaml

这里 config.yaml 配置如下:

yaml 复制代码
---
models:
    internlm:
        api_base: http://localhost:23333
...

启动成功界面

1.2.3 | 部署 LMDeploy

studio开发机

这里我们会借助 vscode 连接到 InternStudio 的开发机(为了使用其远程端口转发能力), 具体教程可以参考 这篇文章

配置 vscode ssh config 如下:

sql 复制代码
Host ssh.intern-ai.org.cn
  HostName ssh.intern-ai.org.cn
  StrictHostKeyChecking no
  Port 35278
  UserKnownHostsFile /dev/null
  User root

进入开发机执行

bash 复制代码
export HF_ENDPOINT=https://hf-mirror.com
lmdeploy serve api_server internlm/internlm-chat-7b --server_name 0.0.0.0 --server_port 23333 --instance_num 64 --tp 1 --model-name internlm-chat-7b #

上面的参数中 server_nameserver_port 分别表示服务地址和端口,tp 表示 Tensor 并行。还剩下一个 instance_num 参数,表示实例数,可以理解成 Batch 的大小。执行后如下图所示。

注意:这里的 http://0.0.0.0:23333 是开发机内访问的一个地址,在本地浏览器上是无法访问的

通过 vscode 配置端口转发,将开发机的23333端口转发到本地的23333端口

这样,我们就可以在本地访问 http://localhost:23333 来请求 InternStudio 开发机里通过 LMDeploy 提供推理服务的 API 了。

以上。

相关推荐
程序员黑豆42 分钟前
Java类型推断完全指南:从var到菱形运算符,掌握使用限制与最佳实践
java·前端·ai编程
To_OC1 小时前
踩了个 TS 的坑之后,我终于把 type 和 interface 掰明白了
前端·react.js·typescript
GreenTea2 小时前
深度解读 Anthropic 多智能体报告:更强的模型 ≠ 更好的协调
前端·后端·算法
风流 少年2 小时前
Spring AI 2.0:Memory
java·后端·spring
浮生望2 小时前
前端API工程化:用 Mock 数据与 Axios 配置实现独立于后端的并行开发
前端
万少2 小时前
给 DeepSeek Harness 装个"应用商店":一条命令,595 个插件随你逛
前端·javascript·后端
波波0072 小时前
C# 15 重磅新特性: 带标签 break 与 continue:重新定义嵌套循环控制流
服务器·前端·c#
Brown.alexis3 小时前
es6知识点1-自备使用
前端·ecmascript·es6
小爬的老粉丝4 小时前
JavaScript 纯前端预览 WPS:先识别容器,再路由解析器
前端·javascript·wps
计算机魔术师5 小时前
新兴多智能体系统的模式与问题
前端