lily_fast_api / HUGGINGFACE_CLOUD_GUIDE.md
gbrabbit's picture
Fresh start for HF Spaces deployment
526927a
# โ˜๏ธ Hugging Face ํด๋ผ์šฐ๋“œ GPU ๋ฐฐํฌ ๊ฐ€์ด๋“œ
## ๐Ÿ“‹ ๊ฐœ์š”
์ด ๊ฐ€์ด๋“œ๋Š” ๋กœ์ปฌ PC์—์„œ Hugging Face ํด๋ผ์šฐ๋“œ GPU ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜๊ณ , AI ๋ชจ๋ธ์„ ๋ฐฐํฌํ•œ ํ›„ Railway์—์„œ ์‹คํ–‰ ์ค‘์ธ Hearth Chat๊ณผ ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
## ๐ŸŽฏ ๋ชฉํ‘œ
1. **Hugging Face ํด๋ผ์šฐ๋“œ GPU ํ™˜๊ฒฝ ์„ค์ •**
2. **AI ๋ชจ๋ธ์„ Hugging Face Hub์— ์—…๋กœ๋“œ**
3. **Inference Endpoints ์ƒ์„ฑ**
4. **Railway Hearth Chat๊ณผ ์—ฐ๋™**
## ๐Ÿš€ 1๋‹จ๊ณ„: Hugging Face ๊ณ„์ • ์„ค์ •
### 1.1 Hugging Face ๊ณ„์ • ์ƒ์„ฑ
1. **Hugging Face ์›น์‚ฌ์ดํŠธ ๋ฐฉ๋ฌธ**: https://huggingface.co
2. **ํšŒ์›๊ฐ€์ž…**: ์ด๋ฉ”์ผ๋กœ ๊ณ„์ • ์ƒ์„ฑ
3. **ํ”„๋กœํ•„ ์„ค์ •**: ์‚ฌ์šฉ์ž๋ช… ์„ค์ • (์˜ˆ: `your-username`)
### 1.2 Access Token ์ƒ์„ฑ
1. **Settings > Access Tokens**: https://huggingface.co/settings/tokens
2. **New Token ์ƒ์„ฑ**:
- Name: `lily-math-rag-token`
- Role: `Write`
3. **ํ† ํฐ ๋ณต์‚ฌ**: ์ƒ์„ฑ๋œ ํ† ํฐ์„ ์•ˆ์ „ํ•œ ๊ณณ์— ์ €์žฅ
### 1.3 ๋กœ์ปฌ ํ™˜๊ฒฝ ์„ค์ •
```bash
# Hugging Face CLI ์„ค์น˜
pip install huggingface_hub
# ๋กœ๊ทธ์ธ
huggingface-cli login
# ํ† ํฐ ์ž…๋ ฅ ํ”„๋กฌํ”„ํŠธ์—์„œ ์œ„์—์„œ ์ƒ์„ฑํ•œ ํ† ํฐ ์ž…๋ ฅ
```
## ๐Ÿ”ง 2๋‹จ๊ณ„: ๋ชจ๋ธ ์ค€๋น„ ๋ฐ ์—…๋กœ๋“œ
### 2.1 ๋กœ์ปฌ ๋ชจ๋ธ ํ™•์ธ
```bash
cd C:\Project\lily_generate_project\lily_generate_package
ls hearth_llm_model/
```
### 2.2 ๋ชจ๋ธ์„ Hugging Face Hub์— ์—…๋กœ๋“œ
```bash
# ๋ชจ๋ธ ์—…๋กœ๋“œ
huggingface-cli upload your-username/lily-math-model hearth_llm_model/
# ๋˜๋Š” Python ์Šคํฌ๋ฆฝํŠธ ์‚ฌ์šฉ
python huggingface_cloud_setup.py
```
### 2.3 ๋ชจ๋ธ ์นด๋“œ ์ƒ์„ฑ
```markdown
# ๋ชจ๋ธ ์นด๋“œ ์˜ˆ์‹œ (README.md)
---
language: ko
tags:
- math
- rag
- korean
license: mit
---
# Lily Math RAG Model
์ˆ˜ํ•™ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•œ ํ•œ๊ตญ์–ด RAG ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค.
## ์‚ฌ์šฉ๋ฒ•
```python
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("your-username/lily-math-model")
model = AutoModelForCausalLM.from_pretrained("your-username/lily-math-model")
```
```
## โ˜๏ธ 3๋‹จ๊ณ„: Hugging Face Inference Endpoints ์„ค์ •
### 3.1 Inference Endpoints ์ƒ์„ฑ
1. **Hugging Face ์›น์‚ฌ์ดํŠธ ๋ฐฉ๋ฌธ**: https://huggingface.co/inference-endpoints
2. **New Endpoint ํด๋ฆญ**
3. **์„ค์ • ์ž…๋ ฅ**:
- **Repository**: `your-username/lily-math-model`
- **Framework**: `PyTorch`
- **Region**: `us-east-1` (๊ฐ€์žฅ ๋น ๋ฆ„)
- **Instance Type**: `gpu.t4.medium` (์‹œ์ž‘์šฉ)
- **Accelerator**: `GPU`
### 3.2 ์—”๋“œํฌ์ธํŠธ ์„ค์ •
```json
{
"repository": "your-username/lily-math-model",
"framework": "pytorch",
"accelerator": "gpu",
"instance_type": "gpu.t4.medium",
"region": "us-east-1",
"vendor": "aws"
}
```
### 3.3 ์—”๋“œํฌ์ธํŠธ URL ํ™•์ธ
- ์ƒ์„ฑ๋œ ์—”๋“œํฌ์ธํŠธ์˜ URL์„ ๋ณต์‚ฌ
- ์˜ˆ: `https://your-endpoint-id.us-east-1.aws.endpoints.huggingface.cloud`
## ๐Ÿ”— 4๋‹จ๊ณ„: Railway Hearth Chat ์—ฐ๋™
### 4.1 ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •
```bash
# ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •
export RAILWAY_HEARTH_CHAT_URL="https://hearth-chat-production.up.railway.app"
export HF_ENDPOINT_URL="https://your-endpoint-id.us-east-1.aws.endpoints.huggingface.cloud"
export HF_TOKEN="your-huggingface-token"
```
### 4.2 ์—ฐ๋™ ํ…Œ์ŠคํŠธ
```bash
# ์—ฐ๋™ ํ…Œ์ŠคํŠธ ์‹คํ–‰
python railway_hearth_chat_integration.py
```
### 4.3 Hearth Chat API ์ˆ˜์ • (ํ•„์š”์‹œ)
Railway Hearth Chat์—์„œ Hugging Face ์—”๋“œํฌ์ธํŠธ๋ฅผ ํ˜ธ์ถœํ•˜๋„๋ก API๋ฅผ ์ˆ˜์ •:
```javascript
// Hearth Chat API ์˜ˆ์‹œ
async function callHuggingFaceAPI(message) {
const response = await fetch(process.env.HF_ENDPOINT_URL, {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.HF_TOKEN}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
inputs: message,
parameters: {
max_length: 200,
temperature: 0.7
}
})
});
const result = await response.json();
return result.generated_text;
}
```
## ๐Ÿงช 5๋‹จ๊ณ„: ํ…Œ์ŠคํŠธ ๋ฐ ๊ฒ€์ฆ
### 5.1 Hugging Face ์—”๋“œํฌ์ธํŠธ ํ…Œ์ŠคํŠธ
```bash
# ์—”๋“œํฌ์ธํŠธ ํ…Œ์ŠคํŠธ
curl -X POST https://your-endpoint-id.us-east-1.aws.endpoints.huggingface.cloud \
-H "Authorization: Bearer your-token" \
-H "Content-Type: application/json" \
-d '{
"inputs": "์•ˆ๋…•ํ•˜์„ธ์š”! ์ˆ˜ํ•™ ๋ฌธ์ œ๋ฅผ ๋„์™€์ฃผ์„ธ์š”.",
"parameters": {
"max_length": 100,
"temperature": 0.7
}
}'
```
### 5.2 Railway ์—ฐ๋™ ํ…Œ์ŠคํŠธ
```bash
# ์ „์ฒด ์—ฐ๋™ ํ…Œ์ŠคํŠธ
python test_railway_huggingface_integration.py
```
## ๐Ÿ“Š 6๋‹จ๊ณ„: ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์ตœ์ ํ™”
### 6.1 Hugging Face ๋ชจ๋‹ˆํ„ฐ๋ง
- **Inference Endpoints ๋Œ€์‹œ๋ณด๋“œ**: https://huggingface.co/inference-endpoints
- **์‚ฌ์šฉ๋Ÿ‰ ํ™•์ธ**: GPU ์‚ฌ์šฉ๋Ÿ‰, ์š”์ฒญ ์ˆ˜, ์‘๋‹ต ์‹œ๊ฐ„
- **๋น„์šฉ ๋ชจ๋‹ˆํ„ฐ๋ง**: ์›”๋ณ„ ์‚ฌ์šฉ๋Ÿ‰ ๋ฐ ๋น„์šฉ
### 6.2 Railway ๋ชจ๋‹ˆํ„ฐ๋ง
- **Railway ๋Œ€์‹œ๋ณด๋“œ**: https://railway.app/dashboard
- **๋กœ๊ทธ ํ™•์ธ**: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ๊ทธ ๋ฐ ์˜ค๋ฅ˜
- **์„ฑ๋Šฅ ๋ชจ๋‹ˆํ„ฐ๋ง**: ์‘๋‹ต ์‹œ๊ฐ„, ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰
## ๐Ÿ”ง ๋ฌธ์ œ ํ•ด๊ฒฐ
### Hugging Face ๊ด€๋ จ ๋ฌธ์ œ
1. **ํ† ํฐ ์ธ์ฆ ์˜ค๋ฅ˜**: ํ† ํฐ ์žฌ์ƒ์„ฑ ๋ฐ ํ™•์ธ
2. **๋ชจ๋ธ ์—…๋กœ๋“œ ์‹คํŒจ**: ํŒŒ์ผ ํฌ๊ธฐ ๋ฐ ํ˜•์‹ ํ™•์ธ
3. **์—”๋“œํฌ์ธํŠธ ์ƒ์„ฑ ์‹คํŒจ**: GPU ํ• ๋‹น๋Ÿ‰ ํ™•์ธ
### Railway ์—ฐ๋™ ๋ฌธ์ œ
1. **์—ฐ๊ฒฐ ์‹คํŒจ**: URL ๋ฐ ๋„คํŠธ์›Œํฌ ํ™•์ธ
2. **API ์˜ค๋ฅ˜**: ์—”๋“œํฌ์ธํŠธ ๋ฐ ํ—ค๋” ํ™•์ธ
3. **์‘๋‹ต ์ง€์—ฐ**: ํƒ€์ž„์•„์›ƒ ์„ค์ • ์กฐ์ •
## ๐Ÿ’ฐ ๋น„์šฉ ์ตœ์ ํ™”
### Hugging Face ๋น„์šฉ
- **gpu.t4.medium**: $0.60/์‹œ๊ฐ„ (์‹œ์ž‘์šฉ)
- **gpu.t4.large**: $1.20/์‹œ๊ฐ„ (์„ฑ๋Šฅ ํ–ฅ์ƒ)
- **gpu.a10g**: $2.40/์‹œ๊ฐ„ (๊ณ ์„ฑ๋Šฅ)
### ๋น„์šฉ ์ ˆ์•ฝ ํŒ
1. **์ž๋™ ์Šค์ผ€์ผ๋ง**: ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๋•Œ ์—”๋“œํฌ์ธํŠธ ์ค‘์ง€
2. **์บ์‹ฑ**: ๋™์ผํ•œ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต ์บ์‹ฑ
3. **๋ฐฐ์น˜ ์ฒ˜๋ฆฌ**: ์—ฌ๋Ÿฌ ์š”์ฒญ์„ ํ•œ ๋ฒˆ์— ์ฒ˜๋ฆฌ
## ๐Ÿš€ ๋ฐฐํฌ ์ฒดํฌ๋ฆฌ์ŠคํŠธ
- [ ] Hugging Face ๊ณ„์ • ์ƒ์„ฑ ๋ฐ ํ† ํฐ ์„ค์ •
- [ ] ๋กœ์ปฌ ๋ชจ๋ธ ํ™•์ธ ๋ฐ ์—…๋กœ๋“œ
- [ ] Inference Endpoints ์ƒ์„ฑ
- [ ] ์—”๋“œํฌ์ธํŠธ URL ๋ฐ ํ† ํฐ ํ™•์ธ
- [ ] Railway Hearth Chat URL ํ™•์ธ
- [ ] ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •
- [ ] ์—ฐ๋™ ํ…Œ์ŠคํŠธ ์‹คํ–‰
- [ ] ๋ชจ๋‹ˆํ„ฐ๋ง ์„ค์ •
- [ ] ๋น„์šฉ ์ตœ์ ํ™” ์„ค์ •
## ๐Ÿ“ž ์ง€์›
### ์œ ์šฉํ•œ ๋งํฌ
- **Hugging Face ๋ฌธ์„œ**: https://huggingface.co/docs
- **Inference Endpoints ๊ฐ€์ด๋“œ**: https://huggingface.co/docs/inference-endpoints
- **Railway ๋ฌธ์„œ**: https://docs.railway.app
### ๋ฌธ์ œ ํ•ด๊ฒฐ
1. **Hugging Face ์ง€์›**: https://huggingface.co/support
2. **Railway ์ง€์›**: https://railway.app/support
3. **์ปค๋ฎค๋‹ˆํ‹ฐ**: GitHub Issues ๋ฐ Discord
## ๐ŸŽ‰ ์„ฑ๊ณต ํ™•์ธ
๋ชจ๋“  ์„ค์ •์ด ์™„๋ฃŒ๋˜๋ฉด ๋‹ค์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:
- โœ… **Hugging Face ์—”๋“œํฌ์ธํŠธ**: GPU์—์„œ AI ๋ชจ๋ธ ์‹คํ–‰
- โœ… **Railway Hearth Chat**: ์›น ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ฑ„ํŒ… ๊ฐ€๋Šฅ
- โœ… **์—ฐ๋™**: ์‚ฌ์šฉ์ž ๋ฉ”์‹œ์ง€ โ†’ Hugging Face โ†’ AI ์‘๋‹ต โ†’ Hearth Chat
- โœ… **๋ชจ๋‹ˆํ„ฐ๋ง**: ์‹ค์‹œ๊ฐ„ ์‚ฌ์šฉ๋Ÿ‰ ๋ฐ ์„ฑ๋Šฅ ํ™•์ธ