5 llm接口高可用工程实践(RTX4050) #9
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。
'mkdir -p ~/oneapi-compose
cd ~/oneapi-compose
touch docker-compose.yaml
nano docker-compose.yaml'
这些命令的作用是为 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。
gpu:
'conda activate chinese_llama_alpaca_3
cd ~/Chinese-LLaMA-Alpaca-3-3.0/scripts/oai_api_demo/#进入脚本目录
python openai_api_server.py --gpus 0 --base_model /home/llm_course/.cache/modelscope/hub/ChineseAlpacaGroup/llama-3-chinese-8b-instruct-v3'
cpu:
'conda activate chinese_llama_alpaca_3_cpu
cd ~/Chinese-LLaMA-Alpaca-3-3.0/scripts/oai_api_demo/#进入脚本目录
python openai_api_server.py --only_cpu --port 19328 --base_model /home/llm_course/.cache/modelscope/hub/ChineseAlpacaGroup/llama-3-chinese-8b-instruct-v3'
这里我的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的方式实现了高可用。