diff --git a/plugins/mindspore-deepseek/config.yaml b/plugins/mindspore-deepseek/config.yaml new file mode 100644 index 0000000000000000000000000000000000000000..0caaa249fb1c31c0f050837a2a86bca574665473 --- /dev/null +++ b/plugins/mindspore-deepseek/config.yaml @@ -0,0 +1,46 @@ +all: + children: + masters: + hosts: + master1: + ansible_host: 192.168.1.101 + ansible_port: 22 + ansible_user: root + ansible_password: "" + + workers: + hosts: + worker1: + ansible_host: 192.168.1.201 + ansible_port: 22 + ansible_user: root + ansible_password: "" + worker2: + ansible_host: 192.168.1.202 + ansible_port: 22 + ansible_user: root + ansible_password: "" + worker3: + ansible_host: 192.168.1.203 + ansible_port: 22 + ansible_user: root + ansible_password: "" + + vars: + # 容器镜像 + image_name: hub.oepkgs.net/oedeploy/openeuler/aarch64/mindspore + image_tag: v1.0 + # 推理服务所在容器的名称 + container_name: openeuler_ds + # 模型路径 + model_path: /workspace/deepseekv3 + # 模型权重路径 + model_weight_path: "/path/to/weight" + # ray 开放的端口 + ray_port: 6379 + # 节点个数 + node_num: 2 + # 拉起服务前是否停止其他容器 + is_stop_other_container: 1 + # 推理服务端口 + llm_port: 8000 diff --git a/plugins/mindspore-deepseek/main.yaml b/plugins/mindspore-deepseek/main.yaml new file mode 100644 index 0000000000000000000000000000000000000000..dac8b1de207383bfb22d60e98f0e515dc02f4633 --- /dev/null +++ b/plugins/mindspore-deepseek/main.yaml @@ -0,0 +1,9 @@ +name: mindspore-deepseek +description: auto deploy DeepSeek with mindspore +action: + install: + description: auto deployment + tasks: + - name: install + playbook: install.yml + scope: all diff --git a/plugins/mindspore-deepseek/workspace/install.yml b/plugins/mindspore-deepseek/workspace/install.yml new file mode 100644 index 0000000000000000000000000000000000000000..37410b984bb05f01837f725d6aadf77f073bc473 --- /dev/null +++ b/plugins/mindspore-deepseek/workspace/install.yml @@ -0,0 +1,23 @@ +- hosts: + - masters + - workers + roles: + - prepare + any_errors_fatal: true + +- hosts: + - masters + roles: + - start/ray-master + any_errors_fatal: true + +- hosts: + - workers + roles: + - start/ray-worker + any_errors_fatal: true + +- hosts: + - masters + roles: + - start/deepseek diff --git a/plugins/mindspore-deepseek/workspace/roles/prepare/tasks/main.yml b/plugins/mindspore-deepseek/workspace/roles/prepare/tasks/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..f31adb33a6e9b84e93e463fbe38a653c1c4eabcb --- /dev/null +++ b/plugins/mindspore-deepseek/workspace/roles/prepare/tasks/main.yml @@ -0,0 +1,34 @@ +- name: Set hostname + hostname: + name: "{{ inventory_hostname }}" + +- name: Set dir_path as a fact + set_fact: + dir_path: "/home/mindspore-deepseek" + +- name: Create directory + file: + path: "{{ dir_path }}" + state: directory + mode: '0644' + +- name: Copy prepare.sh to hosts + copy: + src: prepare.sh + dest: "{{ dir_path }}" + mode: '0755' + +- name: Copy lib to hosts + copy: + src: lib + dest: "{{ dir_path }}" + mode: '0644' + +- name: Copy config.cfg to hosts + template: + src: config.cfg.j2 + dest: "{{ dir_path }}/lib/config.cfg" + mode: '0644' + +- name: Execute prepare.sh + shell: sh {{ dir_path }}/prepare.sh diff --git a/plugins/mindspore-deepseek/workspace/roles/prepare/templates/config.cfg.j2 b/plugins/mindspore-deepseek/workspace/roles/prepare/templates/config.cfg.j2 new file mode 100644 index 0000000000000000000000000000000000000000..eba3ed8f70126cadf9542555e5b22b0418b6858c --- /dev/null +++ b/plugins/mindspore-deepseek/workspace/roles/prepare/templates/config.cfg.j2 @@ -0,0 +1,17 @@ +#[容器镜像] +IMAGE_NAME={{ image_name }} +IMAGE_TAG={{ image_tag }} +#[推理服务所在容器的名称] +CONTAINER_NAME={{ container_name }} +#[模型路径] +MODEL_PATH={{ model_path }} +#[模型权重路径] +MODEL_WEIGHT_PATH={{ model_weight_path }} +#[ray开放的端口] +RAY_PORT={{ ray_port }} +#[节点个数] +NODE_NUM={{ node_num }} +#[拉起服务前是否停止其他容器] +IS_STOP_OTHER_CONTAINER={{ is_stop_other_container }} +#[推理服务端口] +LLM_PORT={{ llm_port }} diff --git a/plugins/mindspore-deepseek/workspace/roles/start/deepseek/tasks/main.yml b/plugins/mindspore-deepseek/workspace/roles/start/deepseek/tasks/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..3a15f78c28b7bf9468e58044995bea3641db501d --- /dev/null +++ b/plugins/mindspore-deepseek/workspace/roles/start/deepseek/tasks/main.yml @@ -0,0 +1,2 @@ +- name: Start DeepSeek on master + shell: docker exec -itd {{ container_name }} /workspace/lib/start_ds.sh diff --git a/plugins/mindspore-deepseek/workspace/roles/start/ray-master/tasks/main.yml b/plugins/mindspore-deepseek/workspace/roles/start/ray-master/tasks/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..3f967862d9afb17d12c094468ed18879e1c4412c --- /dev/null +++ b/plugins/mindspore-deepseek/workspace/roles/start/ray-master/tasks/main.yml @@ -0,0 +1,2 @@ +- name: Start Ray on master + shell: docker exec -itd {{ container_name }} /workspace/lib/ray_start.sh diff --git a/plugins/mindspore-deepseek/workspace/roles/start/ray-worker/tasks/main.yml b/plugins/mindspore-deepseek/workspace/roles/start/ray-worker/tasks/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..de1cd78e34e58e9bffee6293b37dd88dd1063003 --- /dev/null +++ b/plugins/mindspore-deepseek/workspace/roles/start/ray-worker/tasks/main.yml @@ -0,0 +1,2 @@ +- name: Start Ray on worker + shell: docker exec -itd {{ container_name }} /workspace/lib/ray_start.sh {{ hostvars[groups['masters'][0]].ansible_host }}