llm接口高可用工程实践 #91
Labels
No Label
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: HswOAuth/llm_course#91
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
本次实验主要还是继续上次的本地llama3-8b大模型部署的基础,来实现该模型本地化以及接口的高可用。
这里在之前的实验中已经完成了Docker的安装,续接讲义的内容往后做。
首先是最经典的环境部署。这里需要部署oneapi。
这些命令的作用是为 Docker Compose 设置一个工作环境,具体步骤如下:
mkdir -p ~/oneapi-compose
: 该命令创建了一个名为oneapi-compose
的目录。如果父目录(~
目录下的路径)不存在,它会自动创建,-p
选项确保没有错误提示。cd ~/oneapi-compose
: 切换到刚刚创建的oneapi-compose
目录中。touch docker-compose.yaml
: 创建一个空的docker-compose.yaml
文件,这是 Docker Compose 的配置文件。通常,它会定义多个容器的服务、网络和卷等信息。nano docker-compose.yaml
: 用nano
文本编辑器打开docker-compose.yaml
文件,供你编辑其内容。在这个文件里,你可以定义 Docker Compose 所需的服务配置,例如指定镜像、端口映射、环境变量等。这些步骤通常用于在 Docker Compose 中编排多个 Docker 容器的运行。你可以在
docker-compose.yaml
文件中定义多个服务,并用一个命令来启动它们。 Docker Compose 允许你在单个 YAML 文件中定义多个服务(每个服务对应一个容器)。你可以通过简单的命令(如docker-compose up
)启动所有服务,而不必分别启动每个容器。完成创建后根据该文件启动服务,这里可能我的docker是老版本的,而且llm_course没有足够的权限,就需要使用与讲义略有不同的
sudo docker-compose up -d
来启动服务。这里如果当前账户没有权限就要先转移到一个有权限的账户来用sudo usermod -aG sudo llm_course
给当前的账户权限,然后用sudo命令来启动。启动容器后通过当前服务器地址打开oneai页面。一开始我的环境中用不了ifconfig,然后用
sudo apt install net-tools
安装了net-tools
包后才可以用ifconfig查看。然后分别用gpu和cpu启动llama3。
这里我的cpu不够好,试了好多次都killed了,就只用gpu做实验吧。
按照讲义在oneai页面进行操作,渠道url中使用localhost:3030会出现错误:do request failed: Post "http://0.0.0.0:19327/v1/chat/completions": dial tcp 0.0.0.0:19327: connect: connection refused导致无法连接的错误。这里是因为
0.0.0.0
是一个通配符地址,表示服务器监听所有可用的网络接口。但它并不是一个可以直接用来访问的具体 IP 地址。 需要将渠道url改为前面的实际的ip地址。更改后再次点击测试可以跑通。
(由于CPU实在是跑不起来,就不弄了)
随后取得token后在ChatGPTNextWeb进行测试,可以看到能够正常跑通。
实验中还进行了GPU可用CPU不可用以及CPU可用GPU不可用的测试。随后还先在云服务器中部署了oneapi后再利用将一个域名设置到多个ip的方式实现了高可用。
太有用了!解决了!谢谢大佬!