simple-chat / README.md
alex4cip's picture
feat: Add better Korean language models
c6d4144
|
raw
history blame
5.04 kB
metadata
title: LLM Chatbot
emoji: ๐Ÿค–
colorFrom: blue
colorTo: purple
sdk: gradio
sdk_version: 5.9.1
app_file: app.py
pinned: false
license: mit

๐Ÿค– Hugging Face LLM Chatbot

๋‹ค์–‘ํ•œ ์˜คํ”ˆ์†Œ์Šค LLM ๋ชจ๋ธ๊ณผ ๋Œ€ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์›น ๊ธฐ๋ฐ˜ ์ฑ—๋ด‡ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค.

โœจ ์ฃผ์š” ๊ธฐ๋Šฅ

  • ๋‹ค์ค‘ ๋ชจ๋ธ ์ง€์›: 7๊ฐœ ๋ชจ๋ธ (์˜์–ด 3๊ฐœ, ํ•œ๊ธ€ 4๊ฐœ)
  • ๋กœ์ปฌ ์‹คํ–‰: Transformers ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋กœ์ปฌ์—์„œ ๋ชจ๋ธ ์‹คํ–‰
  • API ์ œํ•œ ์—†์Œ: ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ ์—†์ด๋„ ์ž‘๋™ (์ฒซ ๋‹ค์šด๋กœ๋“œ ํ›„)
  • ์ž๋™ ์„ธ์…˜ ๊ด€๋ฆฌ: ๋ชจ๋ธ ๋ณ€๊ฒฝ ์‹œ ๋Œ€ํ™” ์ž๋™ ์ดˆ๊ธฐํ™”
  • ์™„์ „ ๋ฌด๋ฃŒ: API ๋น„์šฉ ์—†์Œ, ์˜คํ”ˆ์†Œ์Šค

๐ŸŽฏ ์ง€์› ๋ชจ๋ธ

์˜์–ด ๋ชจ๋ธ

  1. DialoGPT Small - ๋น ๋ฅธ ๋Œ€ํ™”ํ˜• ๋ชจ๋ธ (~350MB)
  2. DialoGPT Medium - ๊ณ ํ’ˆ์งˆ ๋Œ€ํ™”ํ˜• ๋ชจ๋ธ (~800MB)
  3. GPT-2 - ๋ฒ”์šฉ ํ…์ŠคํŠธ ์ƒ์„ฑ ๋ชจ๋ธ (~500MB)

ํ•œ๊ธ€ ๋ชจ๋ธ

  1. Llama-2-Ko 7B - Llama 2 ๊ธฐ๋ฐ˜ ํ•œ๊ธ€ ๋Œ€ํ™”ํ˜• ๋ชจ๋ธ (~14GB, ๊ณ ์‚ฌ์–‘)
  2. KoT-Llama2-7B-Chat - ํ•œ๊ตญ์–ด ์ตœ์ ํ™” Llama 2 ๋Œ€ํ™” ๋ชจ๋ธ (~14GB, ๊ณ ์‚ฌ์–‘)
  3. KoAlpaca 5.8B - ํ•œ๊ธ€ ๋Œ€ํ™”ํ˜• ๋ชจ๋ธ (~12GB, ๊ณ ์‚ฌ์–‘)
  4. KULLM-Polyglot 5.8B - ๊ณ ๋ ค๋Œ€ NLP ์—ฐ๊ตฌ์‹ค ํ•œ๊ธ€ ๋Œ€ํ™” ๋ชจ๋ธ (~12GB, ๊ณ ์‚ฌ์–‘)

๐Ÿš€ ๋กœ์ปฌ ์‹คํ–‰ ๋ฐฉ๋ฒ•

1. ์ €์žฅ์†Œ ํด๋ก 

git clone <repository-url>
cd simple-chatbot-gradio

2. ์˜์กด์„ฑ ์„ค์น˜

pip install -r requirements.txt

3. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ • (์„ ํƒ์‚ฌํ•ญ)

Public ๋ชจ๋ธ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ด ๋‹จ๊ณ„๋ฅผ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Private ๋ชจ๋ธ ์ ‘๊ทผ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ, ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋กœ HF_TOKEN์„ ์„ค์ •ํ•˜์„ธ์š”:

export HF_TOKEN=your_hugging_face_token_here

Hugging Face ํ† ํฐ ๋ฐœ๊ธ‰ ๋ฐฉ๋ฒ•:

  1. Hugging Face์— ๋กœ๊ทธ์ธ
  2. Settings โ†’ Access Tokens ๋ฉ”๋‰ด๋กœ ์ด๋™
  3. "New token" ํด๋ฆญํ•˜์—ฌ ํ† ํฐ ์ƒ์„ฑ

4. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰

python app.py

๋ธŒ๋ผ์šฐ์ €์—์„œ http://localhost:7860์œผ๋กœ ์ ‘์†ํ•˜์„ธ์š”.

๐ŸŒ Hugging Face Spaces ๋ฐฐํฌ

๋ฐฉ๋ฒ• 1: ์›น UI ์‚ฌ์šฉ

  1. Hugging Face Spaces์— ์ ‘์†
  2. "Create new Space" ํด๋ฆญ
  3. SDK๋กœ "Gradio" ์„ ํƒ
  4. ํŒŒ์ผ ์—…๋กœ๋“œ:
    • app.py
    • requirements.txt
    • README.md
  5. (์„ ํƒ์‚ฌํ•ญ) Private ๋ชจ๋ธ ์‚ฌ์šฉ ์‹œ: Settings โ†’ Repository secrets์—์„œ HF_TOKEN ์ถ”๊ฐ€
  6. ์ž๋™ ๋นŒ๋“œ ๋ฐ ๋ฐฐํฌ ๋Œ€๊ธฐ (์ฒซ ๋นŒ๋“œ๋Š” 5-10๋ถ„ ์†Œ์š”)

๋ฐฉ๋ฒ• 2: Git ์‚ฌ์šฉ

# Hugging Face Space ์ €์žฅ์†Œ๋ฅผ remote๋กœ ์ถ”๊ฐ€
git remote add space https://huggingface.co/spaces/<username>/<space-name>

# ํŒŒ์ผ ํ‘ธ์‹œ
git add .
git commit -m "Initial commit"
git push space main

โš™๏ธ ๊ธฐ์ˆ  ์Šคํƒ

  • ํ”„๋ ˆ์ž„์›Œํฌ: Gradio 5.x
  • ML ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ: Transformers, PyTorch
  • ์–ธ์–ด: Python 3.10+
  • ์ฃผ์š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ:
    • gradio - ์›น ์ธํ„ฐํŽ˜์ด์Šค
    • transformers - ๋ชจ๋ธ ๋กœ๋”ฉ ๋ฐ ์ถ”๋ก 
    • torch - ๋”ฅ๋Ÿฌ๋‹ ํ”„๋ ˆ์ž„์›Œํฌ
    • python-dotenv - ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๊ด€๋ฆฌ

๐Ÿ“ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

simple-chatbot-gradio/
โ”œโ”€โ”€ app.py              # ๋ฉ”์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜
โ”œโ”€โ”€ requirements.txt    # Python ์˜์กด์„ฑ
โ”œโ”€โ”€ README.md          # ํ”„๋กœ์ ํŠธ ๋ฌธ์„œ
โ”œโ”€โ”€ .env               # ํ™˜๊ฒฝ ๋ณ€์ˆ˜ (git ignored)
โ””โ”€โ”€ CLAUDE.md          # ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ

โš ๏ธ ์ œํ•œ์‚ฌํ•ญ ๋ฐ ์ฃผ์˜์‚ฌํ•ญ

์„ฑ๋Šฅ

  • CPU ์‹คํ–‰: GPU ์—†์ด CPU์—์„œ ์‹คํ–‰๋˜๋ฏ€๋กœ ์‘๋‹ต์ด ๋А๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (5-30์ดˆ)
  • ๋ฉ”๋ชจ๋ฆฌ: ๋ชจ๋ธ ํฌ๊ธฐ์— ๋”ฐ๋ผ 1-16GB RAM ํ•„์š”
  • ์ฒซ ์‹คํ–‰: ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ๋กœ ์‹œ๊ฐ„ ์†Œ์š” (350MB~14GB)

๋ชจ๋ธ๋ณ„ ํŠน์„ฑ

  • ์˜์–ด ๋ชจ๋ธ: ํ•œ๊ธ€ ์ž…๋ ฅ ์‹œ ๋ถ€์ž์—ฐ์Šค๋Ÿฌ์šด ์‘๋‹ต
  • ํ•œ๊ธ€ ๋ชจ๋ธ (Llama 2 ๊ธฐ๋ฐ˜): ๋Œ€ํ™” ํ’ˆ์งˆ ์šฐ์ˆ˜ํ•˜์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ ๋งŽ์ด ํ•„์š” (14GB+)
  • ํ•œ๊ธ€ ๋ชจ๋ธ (Polyglot ๊ธฐ๋ฐ˜): ์ค‘๊ฐ„ ํฌ๊ธฐ, ๋Œ€ํ™” ํ’ˆ์งˆ ์–‘ํ˜ธ (12GB+)
  • ๋ชจ๋“  ํ•œ๊ธ€ ๋ชจ๋ธ: CPU ํ™˜๊ฒฝ์—์„œ ๋งค์šฐ ๋А๋ฆผ, GPU ๊ถŒ์žฅ

Hugging Face Spaces ๋ฐฐํฌ

  • ๋ฌด๋ฃŒ tier: CPU ์ธ์Šคํ„ด์Šค๋งŒ ์ œ๊ณต (16GB RAM)
  • Space Sleep: 48์‹œ๊ฐ„ ๋น„ํ™œ์„ฑ ์‹œ ์ž๋™ sleep, ์ฒซ ๋กœ๋”ฉ ๋А๋ฆผ
  • ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ: ํ•œ๊ธ€ ๋ชจ๋ธ๋“ค์€ ๋ฌด๋ฃŒ tier์—์„œ ์‹คํ–‰ ๋ถˆ๊ฐ€ (12-14GB ํ•„์š”)
  • ์ฒซ ์‹คํ–‰: ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ๋กœ 1-5๋ถ„ ์†Œ์š”
  • ๊ถŒ์žฅ ๋ชจ๋ธ: DialoGPT Small/Medium, GPT-2๋งŒ ๋ฌด๋ฃŒ tier์—์„œ ์•ˆ์ •์ 
  • ํ•œ๊ธ€ ๋Œ€ํ™”: ๋ฌด๋ฃŒ tier์—์„œ๋Š” ํ•œ๊ธ€ ๋ชจ๋ธ ์‚ฌ์šฉ ๋ถˆ๊ฐ€, ์œ ๋ฃŒ GPU tier ํ•„์š”

๐Ÿ”ง ๊ฐœ๋ฐœ ๋ฐ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•

๋ชจ๋ธ ์ถ”๊ฐ€

app.py์˜ MODELS ๋”•์…”๋„ˆ๋ฆฌ์— ์ƒˆ ๋ชจ๋ธ์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”:

MODELS = {
    "your-model-id": {
        "name": "๋ชจ๋ธ ํ‘œ์‹œ ์ด๋ฆ„",
        "max_length": 512,
        "temperature": 0.7,
    },
}

UI ์ปค์Šคํ„ฐ๋งˆ์ด์ง•

Gradio Blocks์™€ ChatInterface๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ UI๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Gradio ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

๐Ÿ“„ ๋ผ์ด์„ ์Šค

MIT License

๐Ÿ™‹โ€โ™‚๏ธ ์ง€์›

์ด์Šˆ๋‚˜ ์งˆ๋ฌธ์ด ์žˆ์œผ์‹œ๋ฉด GitHub Issues๋ฅผ ํ†ตํ•ด ๋ฌธ์˜ํ•ด์ฃผ์„ธ์š”.