--- language: - ko base_model: - naver-hyperclovax/HyperCLOVAX-SEED-Text-Instruct-1.5B pipeline_tag: text-generation library_name: transformers license: other metrics: - bertscore - bleu - perplexity new_version: haebo/meow-clovax-v3 datasets: - haebo/meow-v2-dataset --- # 🐾 Meow-CLOVAX-v2 **Meow-CLOVAX-v2**λŠ” 감정 및 동물 말투 μŠ€νƒ€μΌ λ³€ν™˜μ„ λͺ©ν‘œλ‘œ 개발된 ν•œκ΅­μ–΄ μ€‘μ‹¬μ˜ κ²½λŸ‰ LLMμž…λ‹ˆλ‹€. μ‚¬μš©μžμ˜ ν…μŠ€νŠΈλ₯Ό λ‹€μ–‘ν•œ 감정 및 동물(고양이/κ°•μ•„μ§€) 말투둜 μžμ—°μŠ€λŸ½κ²Œ λ³€ν™˜ν•˜λŠ” SNSν˜• μŠ€νƒ€μΌ λ³€ν™˜ μ‹œμŠ€ν…œμ„ μœ„ν•΄ νŒŒμΈνŠœλ‹λœ λͺ¨λΈμž…λ‹ˆλ‹€. > πŸ§ͺ λ³Έ λͺ¨λΈμ€ `naver-hyperclovax/HyperCLOVAX-SEED-Text-Instruct-1.5B`λ₯Ό 기반으둜 Supervised Finetuning(SFT) λ°©μ‹μœΌλ‘œ ν•™μŠ΅λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
> nick_name : haebo/Meow-HyperCLOVAX-1.5B_SFT-FFT_fp32_0629cfe --- ## 🧠 Model Details | ν•­λͺ© | μ„€λͺ… | |------|------| | **Base Model** | HyperCLOVAX-SEED-Text-Instruct-1.5B | | **Fine-tuning Method** | Supervised Finetuning (SFT) | | **Model Type** | Decoder-only | | **Language** | Korean (primary) | | **Parameters** | 1.5B | | **Precision** | fp16 / fp32 | | **Version** | v2 | | **Framework** | Transformers | | **license** | hyperclovax-seed | --- ## πŸ“¦ Training Details - **Dataset**: 감정 및 동물 λ§νˆ¬μ— 따라 μˆ˜μ§‘Β·ν•©μ„±λœ style transfer 데이터셋 (λΉ„κ³΅κ°œ) - 각 μƒ˜ν”Œμ€ `content`, `emotion`, `post_type`, `transformed_content` ν•„λ“œλ‘œ κ΅¬μ„±λœ jsonl 데이터셋 - **Task**: Instruct-style fine-tuning (prompt β†’ transformed response) - **Prompt ꡬ쑰**: - system: "λ„ˆλŠ” 동물 μœ ν˜•κ³Ό 감정에 맞게 λ¬Έμž₯을 μžμ—°μŠ€λŸ½κ²Œ λ³€ν™˜ν•˜λŠ” μ „λ¬Έκ°€μ•Ό." - user: "λ‹€μŒ λ¬Έμž₯을 [감정] [동물] 말투둜 λ°”κΏ”μ€˜.\nInput: ...\nOutput:" - assistant: λ³€ν™˜λ¬Έ + EOS - **Epochs**: 3 - **Evaluation**: BLEU, KoBERTScore, Perplexity, Quality Score, Type Score, μˆ˜λ™ 평가 λ“± μ‚¬μš© - **Training Infrastructure**: Google Colab Pro+ (A100) - **Instruction Infrastructure**: Google Colab Pro+ (T4) / GCP T4 --- ## 🎯 Intended Use - 감정 기반 말투 λ³€ν™˜ μ„œλΉ„μŠ€ (예: 고양이 말투 + 화남 β†’ β€œμ™œ κ±΄λ“œλƒμ˜Ή! μ•ˆ κ±΄λ“œλ ΈμœΌλ©΄ μ’‹κ² λ‹€μ˜Ή!”) - μ‚¬μš©μž κΈ€μ˜ 의미λ₯Ό μ΅œλŒ€ν•œ μœ μ§€ν•˜λŠ” λ°©ν–₯으둜 λ³€ν™˜ - SNS 캐릭터 보정, λŒ“κΈ€ μžλ™ 응닡, 감정 기반 챗봇 등에 ν™œμš© κ°€λŠ₯ - μ‚¬μš©μž ν”„λ‘¬ν”„νŠΈ μŠ€νƒ€μΌ λ³€κ²½ or 톀 μ‘°μ • 등에 ν™œμš© --- ## ⚠️ Limitations - 사싀 기반 μƒμ„±λ³΄λ‹€λŠ” 말투 μŠ€νƒ€μΌλ§μ— μ΄ˆμ μ„ 맞좀 - λΆ€μ •ν™•ν•˜κ±°λ‚˜ 비논리적인 λ¬Έμž₯을 생성할 수 있음 - μ‹€μ œ 감정 μƒνƒœ 뢄석은 μˆ˜ν–‰ν•˜μ§€ μ•ŠμŒ - μ •μž¬λ˜μ§€ μ•Šμ€ μž…λ ₯(λΉ„λ¬Έ, 링크, 이λͺ¨μ§€)에 λŒ€ν•΄ μ΄μƒν•œ λ¬Έμž₯을 생성할 수 있음 --- ## πŸ› οΈ How to Use ```python from transformers import AutoTokenizer, AutoModelForCausalLM model_id = "haebo/meow-clovax-v3" tokenizer = AutoTokenizer.from_pretrained(model_id) model = AutoModelForCausalLM.from_pretrained(model_id) prompt = ( "<|system|>\n" "λ„ˆλŠ” 동물 μœ ν˜•κ³Ό 감정에 맞게 λ¬Έμž₯을 μžμ—°μŠ€λŸ½κ²Œ λ³€ν™˜ν•˜λŠ” μ „λ¬Έκ°€μ•Ό.\n" "<|user|>\n" "λ‹€μŒ λ¬Έμž₯을 happy cat 말투둜 λ°”κΏ”μ€˜.\n" "Input: μ˜€λŠ˜μ€ 정말 쒋은 ν•˜λ£¨μ˜€μ–΄!\n" "Output:\n" "<|assistant|>\n" ) inputs = tokenizer(prompt, return_tensors="pt") outputs = model.generate(**inputs, max_new_tokens=400) print(tokenizer.decode(outputs[0], skip_special_tokens=True)) ``` --- ## πŸ§ͺ 평가 κΈ°μ€€ 및 μžλ™ν™” - **BLEU Score**: n-gram 기반 ν‘œλ©΄ μœ μ‚¬λ„ (0~1, λ†’μ„μˆ˜λ‘ μœ μ‚¬) - **KoBERTScore**: 의미적 μœ μ‚¬λ„(BERT μž„λ² λ”©, 0.8↑ 의미 μœ μ‚¬) - **Perplexity**: μ–Έμ–΄λͺ¨λΈ μžμ—°μŠ€λŸ¬μ›€(60~180 ꡬ간 1.0점) - **Quality Score**: κΈˆμ§€μ–΄, 반볡, ν—ˆμš© 문자, 이λͺ¨μ§€ λ“± μ„œλΉ„μŠ€ ν’ˆμ§ˆ - **Type Score**: λͺ©ν‘œ 동물 말투 νŒ¨ν„΄ 일치(1.0: μ™„λ²½, 0.2: ν˜Όν•©, 0.1: λ°˜λŒ€, 0: μ—†μŒ) - **데이터 ν΄λžœμ§•**: ν•œκΈ€/영문/숫자/μ£Όμš”κ΅¬λ‘μ /이λͺ¨μ§€λ§Œ ν—ˆμš©, URLΒ·λΆˆμš©λ¬ΈμžΒ·λ‹€μ€‘κ³΅λ°±Β·κ³Όλ„λ°˜λ³΅ 제거 --- ## πŸ—‚οΈ 데이터셋 μ„€λͺ… > λ³Έ ν”„λ‘œμ νŠΈμ˜ 데이터셋은 감정 및 동물 말투 μŠ€νƒ€μΌ λ³€ν™˜μ„ μœ„ν•΄ μ„€κ³„λœ ν•œκ΅­μ–΄ jsonl ν¬λ§·μž…λ‹ˆλ‹€. 각 μƒ˜ν”Œμ€ λ‹€μŒκ³Ό 같은 4개 ν•„λ“œλ‘œ κ΅¬μ„±λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. | ν•„λ“œλͺ… | μ„€λͺ… | μ˜ˆμ‹œ κ°’ | |----------------------|--------------------------------------|----------------| | `content` | 원본 λ¬Έμž₯ (일상 ν•œκ΅­μ–΄) | μ˜€λŠ˜μ€ 정말 쒋은 ν•˜λ£¨μ˜€μ–΄. | | `emotion` | 감정 λ ˆμ΄λΈ” (영문) | happy | | `post_type` | 동물 μœ ν˜• (영문) | cat | | `transformed_content`| 감정 및 동물 말투둜 λ³€ν™˜λœ λ¬Έμž₯ | μ˜€λŠ˜μ€ 정말 쒋은 ν•˜λ£¨μ˜€λ‹€λƒ₯! 😸 | - **μ‚¬μš©λœ 데이터셋** > λ³Έ λͺ¨λΈμ˜ νŒŒμΈνŠœλ‹μ—λŠ” μ—¬λŸ¬ λ‹¨κ³„μ˜ 데이터셋을 ν†΅ν•©Β·μ •μ œν•œ **μ΅œμ’… 데이터셋**이 μ‚¬μš©λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
> λ³Έ 데이터셋은 μ‹€μ œ μœ μ €/λŒ“κΈ€/ν•©μ„± 데이터λ₯Ό ν†΅ν•©Β·μ •μ œν•˜μ—¬, λ‹€μ–‘ν•œ 감정과 동물 말투 λ³€ν™˜μ— μ΅œμ ν™”λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. - **총 μƒ˜ν”Œ 수**: 15,698개 (원문: 2,038개) - **포함 데이터**: - **dataset_0515_made** (342개): 초기 μœ μ € 데이터 - **dataset_0527_made** (818개): μœ μ € κ²Œμ‹œκΈ€ 기반 감정별/동물별 데이터 - **dataset_0530_made** (2,986개): 감정별 증폭된 κ²Œμ‹œκΈ€ 기반 데이터 - **dataset_0613_made** (681개): μœ μ € λŒ“κΈ€ μž…λ ₯에 λŒ€ν•œ κ·œμΉ™ 기반 λ³€ν™˜(cat) - **dataset_0620_made** (681개): μœ μ € λŒ“κΈ€ μž…λ ₯에 λŒ€ν•œ κ·œμΉ™ 기반 λ³€ν™˜(dog) - **dataset_0622_made** (17,596개): Gemini둜 μƒμ„±λœ ν•©μ„± 인풋 말투 λ³€ν™˜ - **주된 ꡬ성**: μœ μ € 데이터, λŒ“κΈ€ 데이터, ν•©μ„± 데이터 λ¬Έμž₯ λ“± λ‹€μ–‘ν•œ μœ ν˜• 포함 - **μ „μ²˜λ¦¬ 사항**: - 쀑볡 제거 - 필터링 반영 - **감정 λ²”μœ„**: normal, happy, sad, grumpy, curious, angry (6μ’…) - **동물 μœ ν˜•**: cat, dog (2μ’…) - **데이터 ꡬ쑰**: - 각 μƒ˜ν”Œμ€ `content`, `emotion`, `post_type`, `transformed_content` ν•„λ“œλ‘œ κ΅¬μ„±λœ JSONL 포맷 - **νŠΉμ§•**: - λ‹€μ–‘ν•œ 길이/μœ ν˜•μ˜ λ¬Έμž₯ 포함 - content/emotion/post_type/transformed_content의 4ν•„λ“œλ‘œ ꡬ성 - Jsonl ν˜•νƒœμ˜ 데이터 - **μ˜ˆμ‹œ** ```json { "content": "λ‚΄ μ–˜κΈ°λŠ” 듣지도 μ•Šκ³  자기 말만 κ³„μ†ν•˜λ„€. λ„ˆλ¬΄ ν™”λ‚˜μ„œ κ·Έλƒ₯ λ‚˜μ™€λ²„λ Έλ‹€.", "emotion": "angry", "post_type": "dog", "transformed_content": "ν₯! λ‚΄ μ–„λ―Έμš΄ 녀석, 또 자기 말만 ν•˜λŠ”κ±°λƒμ™ˆ! 😾 λ„ˆλ¬΄ ν™”κ°€ λ‚˜μ„œ κ·Έλƒ₯ λ‚˜μ™”λ‹€ 멍!πŸ”₯" } ```