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 了。

以上。

相关推荐
小码哥_常40 分钟前
Spring Boot 牵手Spring AI,玩转DeepSeek大模型
后端
freewlt1 小时前
前端性能优化实战:从 Lighthouse 分数到用户体验的全面升级
前端·性能优化·ux
0xDevNull1 小时前
Java反射机制深度解析:从原理到实战
java·开发语言·后端
小小亮011 小时前
Next.js基础
开发语言·前端·javascript
华洛1 小时前
我用AI做了一个48秒的真人精品漫剧,不难也不贵
前端·javascript·后端
WZTTMoon1 小时前
Spring Boot 中Servlet、Filter、Listener 四种注册方式全解析
spring boot·后端·servlet
standovon2 小时前
Spring Boot整合Redisson的两种方式
java·spring boot·后端
Novlan12 小时前
我把 Claude Code 里的隐藏彩蛋提取出来了——零依赖的 ASCII 虚拟宠物系统
前端
Cosolar2 小时前
LlamaIndex RAG 本地部署+API服务,快速搭建一个知识库检索助手
后端·openai·ai编程
IAUTOMOBILE2 小时前
Python 流程控制与函数定义:从调试现场到工程实践
java·前端·python