Spaces:
Sleeping
Sleeping
Lily LLM API - Hugging Face Spaces ๋ฐฐํฌ ๊ฐ์ด๋
๐ ๋ฐฐํฌ ๋จ๊ณ๋ณ ๊ฐ์ด๋
1. ์ฌ์ ์ค๋น
1.1 Hugging Face ๊ณ์ ๋ฐ ํ ํฐ
- Hugging Face ๊ณ์ ์์ฑ
- Settings > Access Tokens์์ Write ๊ถํ ํ ํฐ ์์ฑ
- ํ ํฐ์ ์์ ํ ๊ณณ์ ์ ์ฅ
1.2 ํ์ํ ํ์ผ๋ค ํ์ธ
Dockerfile.huggingface
- Docker ์ค์ app_huggingface.py
- ์ง์ ์ requirements_full.txt
- ์์กด์ฑ ํจํค์งREADME_huggingface.md
- ํ๋ก์ ํธ ์ค๋ช.dockerignore
- Docker ๋น๋ ์ ์ธ ํ์ผ
2. Hugging Face Spaces ์์ฑ
2.1 Space ์์ฑ
- Hugging Face Spaces ์ ์
- "Create new Space" ํด๋ฆญ
- ๋ค์ ์ค์ ์ผ๋ก Space ์์ฑ:
- Owner: ๋ณธ์ธ ๊ณ์
- Space name:
lily-llm-api
- License:
MIT
- Select the Space SDK:
Docker
- Space hardware:
CPU basic
(๋ฌด๋ฃ) ๋๋CPU upgrade
(์ ๋ฃ, ๋ ๋น ๋ฆ) - Visibility:
Public
๋๋Private
2.2 Space ์ค์
Space ์์ฑ ํ Settings์์:
- Variables: ํ์ํ ํ๊ฒฝ ๋ณ์ ์ค์
- Secrets: API ํค ๋ฑ ๋ฏผ๊ฐํ ์ ๋ณด ์ค์
3. ์ฝ๋ ๋ฐฐํฌ
3.1 Git ๋ฐฉ์ (๊ถ์ฅ)
# 1. Space ์ ์ฅ์ ํด๋ก
git clone https://huggingface.co/spaces/YOUR_USERNAME/lily-llm-api
cd lily-llm-api
# 2. ํ์ํ ํ์ผ๋ค ๋ณต์ฌ
cp /path/to/lily_generate_package/Dockerfile.huggingface ./Dockerfile
cp /path/to/lily_generate_package/app_huggingface.py ./
cp /path/to/lily_generate_package/requirements_full.txt ./requirements.txt
cp /path/to/lily_generate_package/README_huggingface.md ./README.md
cp /path/to/lily_generate_package/.dockerignore ./
# 3. ํ๋ก์ ํธ ์์ค ์ฝ๋ ๋ณต์ฌ
cp -r /path/to/lily_generate_package/lily_llm_api ./
cp -r /path/to/lily_generate_package/lily_llm_core ./
cp -r /path/to/lily_generate_package/lily_llm_utils ./
# 4. Git ์ปค๋ฐ ๋ฐ ํธ์
git add .
git commit -m "Initial deployment of Lily LLM API"
git push
3.2 ์น ์ธํฐํ์ด์ค ๋ฐฉ์
- Hugging Face Space ํ์ด์ง์์ "Files" ํญ ํด๋ฆญ
- "Add file" > "Upload files" ํด๋ฆญ
- ํ์ํ ํ์ผ๋ค์ ๋๋๊ทธ ์ค ๋๋กญ์ผ๋ก ์ ๋ก๋
- ์ปค๋ฐ ๋ฉ์์ง ์์ฑ ํ "Commit changes" ํด๋ฆญ
4. ํ๊ฒฝ ๋ณ์ ์ค์
Space Settings > Variables์์ ๋ค์ ํ๊ฒฝ ๋ณ์๋ค ์ค์ :
# ์๋ฒ ์ค์
HOST=0.0.0.0
PORT=7860
PYTHONPATH=/app
PYTHONUNBUFFERED=1
# ๋ชจ๋ธ ์ค์
DEFAULT_MODEL=kanana-1.5-v-3b-instruct
MAX_NEW_TOKENS=256
TEMPERATURE=0.7
# ์บ์ ์ค์
TRANSFORMERS_CACHE=/app/cache/transformers
HF_HOME=/app/cache/huggingface
TORCH_HOME=/app/cache/torch
TOKENIZERS_PARALLELISM=false
# ์ฑ๋ฅ ์ต์ ํ
OMP_NUM_THREADS=1
MKL_NUM_THREADS=1
5. ๋ฐฐํฌ ํ์ธ
5.1 ๋น๋ ๋ก๊ทธ ํ์ธ
- Space ํ์ด์ง์์ "Logs" ํญ ํด๋ฆญ
- Docker ๋น๋ ๋ฐ ์คํ ๋ก๊ทธ ํ์ธ
- ์ค๋ฅ ๋ฐ์ ์ ๋ก๊ทธ๋ฅผ ํตํด ๋ฌธ์ ํด๊ฒฐ
5.2 API ํ ์คํธ
๋ฐฐํฌ ์๋ฃ ํ ๋ค์๊ณผ ๊ฐ์ด ํ ์คํธ:
import requests
# Health check
response = requests.get("https://YOUR_USERNAME-lily-llm-api.hf.space/health")
print(response.json())
# ํ
์คํธ ์์ฑ ํ
์คํธ
response = requests.post(
"https://YOUR_USERNAME-lily-llm-api.hf.space/generate",
data={"prompt": "์๋
ํ์ธ์! ํ
์คํธ ๋ฉ์์ง์
๋๋ค."}
)
print(response.json())
6. ์ฑ๋ฅ ์ต์ ํ
6.1 ํ๋์จ์ด ์ ๊ทธ๋ ์ด๋
- ๋ฌด๋ฃ CPU basic: ์ ํ์ ์ฑ๋ฅ
- ์ ๋ฃ CPU upgrade: ๋ ๋น ๋ฅธ ์ฒ๋ฆฌ
- GPU ์ต์ : ๋์ฉ๋ ๋ชจ๋ธ ์ฒ๋ฆฌ ์ ํ์
6.2 ๋ชจ๋ธ ์ต์ ํ
# app_huggingface.py์์ ๋ชจ๋ธ ๋ก๋ฉ ์ต์ ํ
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.float16, # ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ๊ฐ์
device_map="auto", # ์๋ ๋๋ฐ์ด์ค ๋ฐฐ์น
low_cpu_mem_usage=True # CPU ๋ฉ๋ชจ๋ฆฌ ์ต์ ํ
)
7. ๋ฌธ์ ํด๊ฒฐ
7.1 ์ผ๋ฐ์ ์ธ ์ค๋ฅ
๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ์ค๋ฅ
# requirements.txt์์ ๋ถํ์ํ ํจํค์ง ์ ๊ฑฐ
# ๋ชจ๋ธ ํฌ๊ธฐ ์ถ์ ๋๋ ์์ํ ์ ์ฉ
๋น๋ ์๊ฐ ์ด๊ณผ
# .dockerignore ํ์ผ๋ก ๋ถํ์ํ ํ์ผ ์ ์ธ
# multi-stage build ์ฌ์ฉ์ผ๋ก ๋น๋ ์ต์ ํ
๋ชจ๋ import ์ค๋ฅ
# PYTHONPATH ํ๊ฒฝ ๋ณ์ ํ์ธ
# requirements.txt ์์กด์ฑ ํ์ธ
7.2 ๋ก๊ทธ ๋ถ์
# ๋น๋ ๋ก๊ทธ์์ ์ค๋ฅ ์ฐพ๊ธฐ
grep -i error build.log
# ๋ฐํ์ ๋ก๊ทธ์์ ๋ฌธ์ ํ์ธ
tail -f app.log
8. Railway Hearth Chat ์ฐ๋ ์ค๋น
๋ฐฐํฌ๋ Hugging Face Space URL์ ๊ธฐ๋กํด๋์ธ์:
https://YOUR_USERNAME-lily-llm-api.hf.space
์ด URL์ Hearth Chat์ AI ์ค์ ์์ Lily LLM API URL๋ก ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค.
9. ์ ์ง๋ณด์
9.1 ์ ๋ฐ์ดํธ ๋ฐฐํฌ
# ์ฝ๋ ์์ ํ
git add .
git commit -m "Update: description of changes"
git push
9.2 ๋ชจ๋ํฐ๋ง
- Space ๋์๋ณด๋์์ ์ฌ์ฉ๋ ๋ชจ๋ํฐ๋ง
- ๋ก๊ทธ๋ฅผ ํตํ ์ค๋ฅ ์ถ์
- ์ฑ๋ฅ ๋ฉํธ๋ฆญ ํ์ธ
๐ ์ง์
๋ฐฐํฌ ์ค ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด:
- Hugging Face ๊ณต์ ๋ฌธ์ ์ฐธ์กฐ
- Community ํฌ๋ผ์์ ๋์ ์์ฒญ
- GitHub Issues๋ฅผ ํตํ ๊ธฐ์ ์ง์