TIL| ์•„ํ™€๋กœํ‹€ + qwen3-32B

ํƒ€์ƒค's ์›”๋“œยท2025๋…„ 6์›” 5์ผ
post-thumbnail

๐ŸŒž ์‹œ์ž‘ํ•˜๋Š” ๊ธ€

์‚ด๋‹ค๋ณด๋ฉด ํ•˜๊ณ  ์‹ถ์€๊ฒƒ๋งŒ ํ•˜๋Š” ์ˆœ๊ฐ„๋„ ์žˆ์–ด์•ผ์ง€..?

์•„ํ™€๋กœํ‹€์€ ๊ธฐ๋ณธ ์„ธํŒ…์ด ๋ฉ€ํ‹ฐGPU ์ง€์›์ด ๋˜์„œ ์ƒ๊ฐ๋ณด๋‹ค ์†๋„๊ฐ€ ์—„์ฒญ ๋นจ๋ž๋‹ค.

๋ชจ๋ธ์€ qwen3-32b ์˜€๊ณ  ์„ฑ๋Šฅ ๊ดœ์ฐฎ์€๊ฒƒ ๊ฐ™์•„ ์ผ๋ฐ˜์ ์ธ ์˜๋ฏธ์—์„œ ํŒŒ์ธํŠœ๋‹์ด ํ•„์š”ํ• ๊นŒ?
๋” ํฐ ๋ชจ๋ธ์€ 235B ์ธ๋ฐ.. ์—„์ฒญ ํ‰๊ฐ€ ์ข‹์€๊ฒƒ ๊ฐ™์€๋ฐ ์†”์งํžˆ h100 2์žฅ์œผ๋กœ ๋ชป ๋Œ๋ฆด๋“ฏ?

๋‚˜๋ฌด์œ„ํ‚ค๋‹˜์ด ๋ง์”€ํ•˜์‹œ๊ธธ ์ฝ”๋”ฉ๋ฐ ์—์ด์ „ํŠธ, mcp์— ํŠนํ™”๋˜์–ด ์žˆ๋‹ค๊ณ  ํ•ด์„œ ๊ทธ๋Ÿฐ๊ฒƒ๋„ ํ…Œ์ŠคํŠธํ•ด๋ณด๋ฉด ์žฌ๋ฐŒ์„๊ฒƒ ๊ฐ™์Œ.

๋‚ด ์ปค์„œ ๋А๋ ค์„œ ๋‹ต๋‹ตํ•ด์„œ ๋ชป์“ฐ๊ณ  ์žˆ๋Š”๋ฐ ์ปค์„œ์— ์—ฐ๊ฒฐ์„ ํ•ด๋ณผ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ?

โš—๏ธ ์˜ค๋Š˜์˜ ์‹คํ—˜

1.

1) axolotl train examples/qwen3/32-qlora.yaml
32-qlora.yaml์— ์ •์˜๋˜์–ด ์žˆ๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ชจ๋ธ ํ•™์Šต

2) outputs์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฒฐ๊ณผ๋ฌผ์ด ์ƒ์„ฑ๋จ. README์— ํ•™์Šตํ•œ ์กฐ๊ฑด๋“ค๋„ ๋‹ค ์ •์˜๋จ

.bin ํŒŒ์ผ์€ ์—†์Œ ์™œ? qlora ๋ฐฉ์‹์„ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ lora๋Š” ๋ฒ ์ด์Šค๋ชจ๋ธ์€ ๊ทธ๋ƒฅ๋‘๊ณ  ๊ทธ ์œ„์— ๋ณ€ํ˜ธ๋œ lora adapter๋งŒ ๋”ฐ๋กœ ์ €์žฅํ•˜๋‹ˆ๊นŒ. ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ์—ฌ๊ธฐ ์ƒ์„ฑ๋œ .safetensors๊ฐ€ ์‹ค์ œ ์•„์›ƒํ’‹์ด๋ผ ๋ณด๋ฉด ๋จใ…‡ใ…‡

3)

accelerate launch -m axolotl.cli.inference examples/qwen3/32b-qlora.yaml --lora_model_dir="./outputs/out" --gradio

  • ํ—ˆ๊น…ํŽ˜์ด์Šค accelerate๋ฅผ ์ด์šฉํ•ด ๋ฉ€ํ‹ฐ gpu ์‚ฌ์šฉ
  • axolotl.cli.inference (๊ฒฐ๊ณผ ๋ชจ๋“ˆ)์„ ํŒŒ์ด์ฌ main์œผ๋กœ ์‹คํ–‰.. ์ฝ”๋“œ๋Š” ์‹ค์ œ๋กœ src/axolotl/cli/main.py์— ์žˆ์Œ
  • examples/qwen3/32b-qlora.yaml config ํŒŒ์ผ, 32B ๋„ ๊ฐ€๋ฟํžˆ ๋Œ์•„๊ฐ.
  • ๋ชจ๋ธ์€ ํ•™์Šต๋œ ๊ฒฐ๊ณผ ./outputs/out์—์„œ ๋ถˆ๋Ÿฌ์™€์„œ ์‚ฌ์šฉํ•œ๋‹ค.
  • ์—ฌ๊ธฐ์— ๊ธฐ์กด์— ํ•™์Šต๋œ ๋ชจ๋ธ์ด ์—†๋‹ค๋ฉด?? => .bin ํŒŒ์ผ์ด ์—†์œผ๋ฉด ๋ฐ”๋กœ ํฌ๋ž˜์‹œ ๋‚จ(.bin ํŒŒ์ผ ์—†๋‹ค๊ณ  FileNotFound ์—๋Ÿฌ)

4) ํ˜„์žฌ ๊ฒฐ๊ณผ...

2. openstack

์ผ๋‹จ kolla + docker + openstack์œผ๋กœ ๊ตฌ์„ฑ.
๋‹จ์ผ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๋กœ ํ• ๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ.. ์ด๋ฒˆ์— ๋ฐฐ์šด๊ฒŒ.. ha ๊ตฌ์„ฑ์œผ๋กœ ํ•ด์•ผํ•œ๋‹ค๋Š”๊ฑฐ.. ์„œ๋ฒ„ ๋นผ์•—๊ธฐ๋Š”์ผ์ด ์ƒ๊ฐ๋ณด๋‹ค ์žˆ์Œ..ใ… ใ… ..์Šฌํ”„๋‹ค
kolla-ansible์€ openstack์„ ๋„์ปค๋กœ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์˜คํ”ˆ์Šคํƒ ์ „์šฉ ํˆด์ž„.

1) kolla-ansible๊ณผ ansible ์„ค์น˜ (python3.10 ๊ธฐ์ค€)

2) /etc/kolla-ansible/globals.yml์— ์„ค์ • ์ •์˜

kolla_internal_vip_address: "192.168.14.100"  # ์‹ค์ œ ์„œ๋ฒ„ IP ์•„๋‹˜! ๊ฐ€์ƒ IP

network_interface: "eth0"  # VIP๊ฐ€ ๋ถ™์„ NIC
neutron_external_interface: "ens3"  # vm์ด ์™ธ๋ถ€ ์ธํ„ฐ๋„ท ๋“ฑ์ด๋ž‘ ํ†ต์‹ ํ• ๋•Œ ์™ธ๋ถ€๋กœ ์—ฐ๊ฒฐ๋˜๋Š” ๋„คํŠธ์›Œํฌ์šฉ ๋ฌผ๋ฆฌ NIC

enable_haproxy: "yes" #ha proxy ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋„์›Œ์„œ ์˜คํ”ˆ์Šคํƒ api ์š”์ฒญ์„ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ
enable_keepalived: "yes" # vip๊ฐ€ ๋ถ™์–ด์žˆ์„๋•Œ ์ฃผ ์„œ๋ฒ„๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์žฅ์• ์‹œ ipf๋ฅผ ์˜ฎ๊ฒจ์ฃผ๋Š” ์ปจํ…Œ์ด๋„ˆ

enable_horizon: "yes" # ์›นui ํ˜ธ๋ผ์ด์ฆŒ ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ์„ค์น˜
enable_cinder: "yes"

3) ํŒจ์Šค์›Œ๋“œ ์—†์ด ssh ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ์„ธํŒ…. ํ‚คํŒŒ์ผ ์‚ฌ์šฉ

4) ์‹ค์ œ ์‚ฌ์šฉ

[control]
controller01 ansible_host=192.168.14.1
# ํ™•์žฅ์‹œ
# controller02 ansible_host=192.168.14.2

[compute]
compute01 ansible_host=192.168.14.11
compute02 ansible_host=192.168.14.12

[cinder]
controller01

[monitoring]
controller01

[all:vars]
ansible_user=edentns

5) ssh ์—ฐ๊ฒฐ ํ™•์ธ๋˜์—ˆ์œผ๋ฉด ๋ถ€ํŠธ์ŠคํŠธ๋žฉ์œผ๋กœ ์„œ๋ฒ„ ์—ฐ๊ฒฐ
kolla-ansible bootstrap-servers -i /path-to/myenv

6) prechecks
kolla-ansible prechecks -i /home/edentns/tasha/openstack/koalla-ansible/inventory/myenv

์ด์Šˆ

kolla-ansible์ด ubuntu-jammy ์•ˆ๋จ..noble๋งŒ ๋จ. ๋„ˆ๋ฌด ์˜›๋‚ ๋ฒ„์ „์ด๋ผ์„œ...๊ทผ๋ฐ 22.04 ๋„ˆ๋ฌด ์ผ๋ฐ˜์ ์œผ๋กœ ๋งŽ์ด ์“ฐ๋Š” ๋ฒ„์ „์ด์ž–์•„.๋„ˆ๋ฌดํ•ด..

๊ณต๋ถ€

๐ŸŽฏ TODO LIST

[โœ”๏ธ] gradio๋กœ ์™ธ๋ถ€ ๋…ธ์ถœ ํ•ด๋ณด๊ธฐ
[] openstack ๋‹ค ์—ฐ๊ฒฐ
[โœ”๏ธ] ์ปค์„œ ์›ํด๋ฆญ mcp, jupyter
[] ์“ฐ์ž˜๋ฐ๊ธฐ ์—†๋Š”๊ฑฐ

profile
๊ทธ๋•Œ ๊ทธ๋•Œ ๊ฝ‚ํžŒ๊ฒƒ ํ•˜๋Š” ๊ฐœ๋ฐœ๋ธ”๋กœ๊ทธ

0๊ฐœ์˜ ๋Œ“๊ธ€