File size: 13,131 Bytes
b3e3c0e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
debc210
 
 
b3e3c0e
 
 
 
 
 
 
f3e23bc
b3e3c0e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
debc210
b3e3c0e
 
 
debc210
b3e3c0e
debc210
 
 
b3e3c0e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50e1891
b3e3c0e
debc210
b3e3c0e
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
---
base_model: tokyotech-llm/Llama-3.1-Swallow-8B-Instruct-v0.3
license:
- llama3.1
- gemma
language:
- ja
- en
pipeline_tag: text-generation
tags:
  - counseling
  - dialogue-system
  - score-prediction
datasets:
- UEC-InabaLab/KokoroChat
---

# ๐Ÿง  Llama-3.1-KokoroChat-ScorePrediction: Japanese Counseling Dialogue Scoring Model

**Llama-3.1-KokoroChat-ScorePrediction** is a large-scale Japanese language model fine-tuned on the **KokoroChat dataset**โ€”a collection of over 6,000 psychological counseling dialogues conducted via **role-play between trained counselors**.  
Unlike response-generation models, this version is trained to **predict client feedback scores** based on the full counseling dialogue history.

---

## ๐Ÿ’ก Overview

- โœ… Task: Predict the **overall counseling quality score** as rated by the client
- โœ… Dataset: 6,589 dialogues with feedback scores between 0 and 100
- โœ… Data source: Text-based role-play by trained counselors
- โœ… Base Model: [`tokyotech-llm/Llama-3.1-Swallow-8B-Instruct-v0.3`](https://huggingface.co/tokyotech-llm/Llama-3.1-Swallow-8B-Instruct-v0.3)

---

## โš™๏ธ Usage Example

```python
# -*- coding: utf-8 -*-
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "UEC-InabaLab/Llama-3.1-KokoroChat-ScorePrediction"

# Load tokenizer and model
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto")

# Set pad_token_id
if tokenizer.pad_token_id is None:
    tokenizer.pad_token = "[PAD]"
    tokenizer.pad_token_id = tokenizer.convert_tokens_to_ids("[PAD]")

model.config.pad_token_id = tokenizer.pad_token_id

# Build dialogue input
messages = [
    {"role": "system", "content": "ๅฟƒ็†ใ‚ซใ‚ฆใƒณใ‚ปใƒชใƒณใ‚ฐใฎไผš่ฉฑใซใคใ„ใฆใ€็‚นๆ•ฐใ‚’ใคใ‘ใฆใใ ใ•ใ„ใ€‚"},
    {"role": "user", "content": "ใ‚ซใ‚ฆใƒณใ‚ปใƒฉใƒผ: ๏ผˆใ“ใ‚“ใซใกใฏใ€ใ‚ˆใ‚ใ—ใใŠ้ก˜ใ„ใ„ใŸใ—ใพใ™ใ€‚ๆ™‚้–“ใซใชใ‚Šใพใ—ใŸใ‚‰ใฏใ˜ใ‚ใ•ใ›ใฆใ„ใŸใ ใใพใ™ใ€‚๏ผ‰ใ€‚\nใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ: ๏ผˆใ“ใ‚“ใซใกใฏใ€ใ‚ˆใ‚ใ—ใใŠ้ก˜ใ„ใ„ใŸใ—ใพใ™ใ€‚๏ผ‰ใ€‚\nใ‚ซใ‚ฆใƒณใ‚ปใƒฉใƒผ: ใ“ใ‚“ใซใกใฏใ€‚็›ธ่ซ‡ๅ“กใงใ™ใ€‚ไปŠๆ—ฅใฏใ”็›ธ่ซ‡ใซๆฅใฆใใ ใ•ใฃใฆใ€ใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ™ใ€‚ใฏใ˜ใ‚ใซใ€ๅนด้ฝขใจๆ€งๅˆฅใ€็›ธ่ซ‡ๅ†…ๅฎนใ‚’ๆ•™ใˆใฆใใ ใ•ใ„ใ€‚\nใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ: 40ไปฃ.ๅฅณๆ€งใ€ไป•ไบ‹ใ‚’่พžใ‚ใŸใ„ใŒใ€ใ‚„ใ‚ŠใŸใ„ใ“ใจใŒใ‚ใ‹ใ‚‰ใชใ„ใ€‚\nใ‚ซใ‚ฆใƒณใ‚ปใƒฉใƒผ: ใใ†ใชใ‚“ใงใ™ใญใ€ใใ‚ŒใฏใŠๅ›ฐใ‚Šใงใ™ใญใŠไป•ไบ‹ใ‚’่พžใ‚ใŸใใฆใ€ๆฌกใซไฝ•ใ‚’ใ—ใ‚ˆใ†ใ‹ๆŽขใ•ใ‚Œใฆใ„ใ‚‹ใ€ใจใ„ใ†ใ“ใจใงใ—ใ‚‡ใ†ใ‹ใ€‚\nใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ: ใฏใ„ใ€ใใ†ใงใ™ใ€‚\nใ‚ซใ‚ฆใƒณใ‚ปใƒฉใƒผ: ใใ†ใชใ‚“ใงใ™ใญใ€ไปŠใฎใŠไป•ไบ‹ใ‚’่พžใ‚ใŸใ„ใจๆ€ใ‚ใ‚ŒใŸใใฃใ‹ใ‘ใฏใชใ‚“ใงใ—ใ‚‡ใ†ใ‹ใ€‚\nใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ: ่ทๅ ดใฎใƒ‘ใƒฏใƒใƒฉใŒๅซŒใง่พžใ‚ใŸใ„ใงใ™ใ€‚\nใ‚ซใ‚ฆใƒณใ‚ปใƒฉใƒผ: ใใ†ใชใ‚“ใงใ™ใญใ€ใใ‚ŒใฏๅซŒใชๆฐ—ๆŒใกใซใชใ‚Šใพใ™ใญ่พžใ‚ใŸใใชใ‚‹ใฎใ‚‚่‡ช็„ถใชใ“ใจใ ใจๆ€ใ„ใพใ™ใฉใ‚“ใชใ“ใจใŒใ‚ใฃใŸใฎใ‹ใ€ใŠ่ฉฑใ—ใงใใ‚‹็ฏ„ๅ›ฒใงๆ•™ใˆใฆใ„ใŸใ ใ‘ใพใ™ใ‹ใ€‚\nใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ: ไธŠๅธใซไฟก้ ผใ—ใฆใชใ„ใจ่จ€ใ‚ใ‚ŒใŸใ‚Šใ€ใใ‚ŒใซๅŒๆ„ใ™ใ‚‹ใ€ๅ…ˆ่ผฉใŒใ„ใคใ‚‚ใ€็งใฎไป•ไบ‹ใฎ้–“ใซๅ…ฅใฃใฆใใพใ™ใ€‚\nใ‚ซใ‚ฆใƒณใ‚ปใƒฉใƒผ: ใใ†ใชใ‚“ใงใ™ใญใ€ใใ‚Œใฏๅ‚ทใคใใพใ™ใญไธŠๅธใ‚„ๅŒๅƒšใฎๆ–นใฏใ€ๅŒใ˜ๆ–นใงใ—ใ‚‡ใ†ใ‹ใ€‚\nใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ: ใ„ใˆใ€้•ใ„ใพใ™ใ€‚ไธŠๅธใฏไธ€ไบบใงใ€ๅŒใ˜ไพกๅ€ค่ฆณใ‚’ใ‚‚ใฃใŸๅ…ˆ่ผฉใฎๅŒๅƒšใŒ๏ผ’ไบบใ„ใพใ™ใ€‚\nใ‚ซใ‚ฆใƒณใ‚ปใƒฉใƒผ: ใใ†ใชใ‚“ใงใ™ใญใ€่ชใ‚ใฆใ‚‚ใ‚‰ใˆใชใ„ใฎใฏๆœฌๅฝ“ใซใŠใคใ‚‰ใ„ใ“ใจใ ใจๆ€ใ„ใพใ™ไปŠใฎ็Šถๆ…‹ใฏใฉใฎใใ‚‰ใ„็ถšใ„ใฆใ„ใ‚‹ใฎใงใ—ใ‚‡ใ†ใ‹ใ€‚\nใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ: ๅ…ฅ็คพใ‹ใ‚‰10ๅนดใใ‚‰ใ„ใฏ็ตŒใกใพใ™ใญใ€‚\nใ‚ซใ‚ฆใƒณใ‚ปใƒฉใƒผ: ใใ†ใชใ‚“ใงใ™ใญใ€ใจใฆใ‚‚้•ทใ„ๆœŸ้–“่ทๅ ดใซ่ฒข็Œฎใ•ใ‚ŒใŸใฎใ ใจๆ€ใ„ใพใ™ใใฎ้–“ใ€ใƒ‘ใƒฏใƒใƒฉใฏใšใฃใจ็ถšใ„ใฆใ„ใŸใฎใงใ—ใ‚‡ใ†ใ‹ใ€‚\nใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ: ไปŠๆ€ใ†ใจใ€ใใ†ใงใ™ใญใ€‚\nใ‚ซใ‚ฆใƒณใ‚ปใƒฉใƒผ: ใใ†ใชใ‚“ใงใ™ใญใ€ใจใฆใ‚‚้Ž้…ทใช็’ฐๅขƒใ ใจๆ€ใ„ใพใ™ใใฎ็’ฐๅขƒใฎไธญใงใ€ใ”่‡ช่บซใฎๅฝนๅ‰ฒใ‚’ๆžœใŸใใ†ใจใ•ใ‚Œใฆใ„ใ‚‹ใฎใฏใ€ใจใฆใ‚‚็ซ‹ๆดพใงใ™ไป•ไบ‹ใฎ้–“ใซๅ…ฅใ‚‰ใ‚Œใ‚‹ใจใ€ไธ€ไบบๅ‰ใฎๆ‰ฑใ„ใงใฏใชใ„ใ‚ˆใ†ใง่…นใŒ็ซ‹ใคใจๆ€ใ„ใพใ™ใŒใ€ใ„ใ‹ใŒใงใ—ใ‚‡ใ†ใ‹ใ€‚\nใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ: ๆœ€ๅˆใฏ็งใ‚‚ๆ…ฃใ‚ŒใชใใฆใƒŸใ‚นใฐใ‹ใ‚Šใ ใฃใŸใฎใงไป•ๆ–นใชใ„ใชใจๆ€ใฃใฆใ„ใพใ—ใŸใŒใ€ใใ†ๆ€ใ‚ใ‚Œใฆใ„ใ‚‹ใ“ใจใซ้•ๅ’Œๆ„Ÿใ‚’ๆ„Ÿใ˜ใ‚‹ใ‚ˆใ†ใซใชใ‚Šใ€ใใ‚Œใชใ‚‰ใ€ใ“ใ“ใซๅฑ…ใฆใ‚‚ไป•ๆ–นใชใ„ใชใจๆ€ใ„ใ€่ซฆใ‚ใ‚‹ใ‚ˆใ†ใซใชใ‚Šใ€่ปข่ทใ‚’ๆ„Ÿใ˜ใ‚‹ใ‚ˆใ†ใซใชใ‚Šใพใ—ใŸใ€‚่จ‚ๆญฃ่ปข่ทใ‚’่€ƒใˆใ‚‹ใ‚ˆใ†ใซใชใ‚Šใพใ—ใŸใ€‚ใงใ—ใŸใ€\nใ‚ซใ‚ฆใƒณใ‚ปใƒฉใƒผ: ่จ‚ๆญฃใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ™ใใ†ใชใ‚“ใงใ™ใญใ€ใŠไป•ไบ‹ใซๅฏพใ™ใ‚‹ใ€็œŸๆ‘ฏใงไธๅฏงใชๆง˜ๅญใŒไผใ‚ใฃใฆใใพใ™้–“ใซๅ…ฅใ‚‰ใ‚Œใ‚‹ใ€ใจใŠใฃใ—ใ‚ƒใฃใฆใ„ใพใ—ใŸใŒใ€ๅ…ทไฝ“็š„ใซใฏใฉใ‚“ใชใ“ใจใงใ—ใ‚‡ใ†ใ‹ใ€‚\nใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ: ๆฅญ่€…ใซใŠ้‡‘ใ‚’ๆ”ฏๆ‰•ใ†ๆ™‚ใซๅ—ไป˜ใฎ็งใซใŠ้‡‘ใ‚’้ ใ‘ใฆใใ‚ŒใŸใ‚‰ใ„ใ„ใฎใซใ€ใพใšใ€ๅ…ˆ่ผฉใซใŠ้‡‘ใ‚’้ ใ‘ใฆใ€็ขบ่ชใ•ใ‚Œใฆใ‹ใ‚‰ใ€็งใซๅฑŠใ„ใŸใ‚Šใ€ใƒˆใ‚คใƒฌๆŽƒ้™คใ—ใฆใ‚‹ใฎใซใ€็›ฎใฎๅ‰ใงใ€ใพใŸใ€ใƒˆใ‚คใƒฌๆŽƒ้™คใ‚’ใ•ใ‚Œใพใ™ใ€‚่žใ“ใˆใ‚‹ๆ‰€ใงใ€ๆ‚ชๅฃใ€้™ฐๅฃใ‚’่จ€ใ‚ใ‚ŒใŸใ‚Šใ‚‚ใ—ใพใ™ใ€‚\nใ‚ซใ‚ฆใƒณใ‚ปใƒฉใƒผ: ใใ†ใชใ‚“ใงใ™ใญใ€ใ™ใ”ใๆ„ๅœฐๆ‚ชใซๆ„Ÿใ˜ใพใ™โ€ฆ่žใ“ใˆใ‚‹ใจใ“ใ‚ใงๆ‚ชๅฃใ‚„้™ฐๅฃใ‚‚ๅซŒใชๆฐ—ๆŒใกใซใชใ‚Šใพใ™ใญใ€‚ใใ‚“ใชๆ™‚ใฏใฉใ†ใ—ใฆใ„ใ‚‹ใฎใงใ—ใ‚‡ใ†ใ‹ใ€‚\nใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ: ใฏใ„ใ€ๆ‚ชๅฃใ€้™ฐๅฃใฏ่‡ชๅˆ†ใฎใ“ใจใ˜ใ‚ƒใชใใฆใ‚‚ใ€่‡ชๅˆ†ใฎใ“ใจ่จ€ใ‚ใ‚Œใฆใ„ใ‚‹ใ‚ˆใ†ใซๅ‰ใฏๆ€ใฃใฆใ—ใพใฃใŸใ‚Šใ€ๅฃฐใ‚’ใใใฎใ‚‚ๅซŒใงใ—ใŸใ€‚\nใ‚ซใ‚ฆใƒณใ‚ปใƒฉใƒผ: ใˆใˆใ€ๆœฌๅฝ“ใซๅซŒใชๆฐ—ๆŒใกใซใชใ‚Šใพใ™ใญใใ†ใ„ใฃใŸใ“ใจใ‚’ใ€็คพๅ†…ใซ็›ธ่ซ‡ใ‚„ๅ ฑๅ‘Šใงใใ‚‹ๆ–นใฏใ„ใ‚‰ใฃใ—ใ‚ƒใ„ใพใ™ใ‹ใ€‚\nใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ: ๆœ€่ฟ‘ใฏใ€ใพใŸๅง‹ใพใฃใŸใจๆ€ใˆใ‚‹ใ‚ˆใ†ใซใชใ‚Šใ€ใใ“ใˆใชใ„ใ‚ˆใ†ใซใ€ใ‚ใ–ใจ็›ฎใฎๅ‰ใฎๆ‚ฃ่€…ใ•ใ‚“ใจๅคงใใชๅฃฐใง่ฉฑใ™ใ‚ˆใ†ใซใ™ใ‚‹ใจๆฅฝใซใชใ‚Šใพใ—ใŸใ€‚ไธŠๅธใŒ1ไบบใ—ใ‹ใ„ใชใ„ใฎใงใ€ๅใๅ‡บใ™ๅ ดๆ‰€ใฏใชใ„ใงใ™ใ€‚ๅฐใ•ใชใ‚ฏใƒชใƒ‹ใƒƒใ‚ฏใชใฎใงใ€้›ฃใ—ใ„ใงใ™ใ€‚\nใ‚ซใ‚ฆใƒณใ‚ปใƒฉใƒผ: ใƒกใƒƒใ‚ปใƒผใ‚ธใŒ้‡ใชใฃใฆใ—ใพใฃใฆใ™ใฟใพใ›ใ‚“ใ€ใ”่‡ช่บซใงๅฏพ็ญ–ใ‚’ใจใฃใฆใ‚‰ใฃใ—ใ‚ƒใ‚‹ใฎใงใ™ใญ่žใ“ใˆใชใ„ใจใ„ใ†ใ“ใจใงๆฅฝใซใชใ‚Œใ‚‹ใฎใฏใ€็ด ๆ•ตใช็™บ่ฆ‹ใ ใจๆ€ใ„ใพใ™ใ€‚\nใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ: ใฟใ‚“ใช็Ÿฅใฃใฆใ„ใฆใ‚‚ใ€ๆš—้ป™ใฎไบ†่งฃใงใ€ใ‚นใƒซใƒผใงใ™ใญใ€‚ใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ™ใ€‚\nใ‚ซใ‚ฆใƒณใ‚ปใƒฉใƒผ: ใชใ‚‹ใปใฉใ€ๅฐใ•ใชใ‚ฏใƒชใƒ‹ใƒƒใ‚ฏใ ใจใ€ใŠใฃใ—ใ‚ƒใ‚‹้€šใ‚Š้›ฃใ—ใ„ใงใ™ใญ่พžใ‚ใŸใ„ใŠๆฐ—ๆŒใกใ€ใจใฆใ‚‚ไผใ‚ใฃใฆใใพใ—ใŸ่พžใ‚ใŸๅพŒไฝ•ใ‚’ใ‚„ใ‚ŠใŸใ„ใ‹ใ‚ใ‹ใ‚‰ใชใ„ใ€ใจใ„ใ†ใ“ใจใงใ™ใŒใ€ๆฌกใฎไป•ไบ‹ใ‚’่ฆ‹ใคใ‘ใฆใ‹ใ‚‰่พžใ‚ใŸใ„ใจใŠ่€ƒใˆใงใ—ใ‚‡ใ†ใ‹ใ€‚\nใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ: ่พžใ‚ใ‚‹ใพใงใซๅผ•ใ็ถ™ใŽใŒๅŠๅนดใปใฉๅฟ…่ฆใชใฎใงใ€ใ“ใ‚ŒใŒใ‚„ใ‚ŠใŸใ„ใจๆ€ใˆใŸใ‚‰ใ€ๅ‹•ใใ ใ—ใŸใ„ใจๆ€ใฃใฆใพใ™ใ€‚\nใ‚ซใ‚ฆใƒณใ‚ปใƒฉใƒผ: ใใ†ใชใ‚“ใงใ™ใญใ€ๅŠๅนดใจใ„ใ†ใฎใฏ้•ทใๆ„Ÿใ˜ใฆใ—ใพใ„ใพใ™ใŒใ€ใใฎ็‚นใฏใฉใฎใ‚ˆใ†ใซใŠ่€ƒใˆใงใ™ใ‹ใ€‚\nใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ: ็งใ‚‚ๅค‰ใ‚ใฃใฆใ‚‹ใชใจๆ€ใ„ใพใ—ใŸใŒใ€็งใฏๅ—ไป˜1ไบบใงใ‚„ใฃใฆใ„ใ‚‹ใฎใงใ€ๆ…ฃใ‚Œใ‚‹ใพใงใซๆ™‚้–“ใŒใ‹ใ‹ใ‚‹ใฎใงใ€ใใ‚Œใ‚‚ไป•ๆ–นใชใ„ใจ่ซฆใ‚ใฆใ„ใพใ™ใ€‚\nใ‚ซใ‚ฆใƒณใ‚ปใƒฉใƒผ: ใใ†ใชใ‚“ใงใ™ใญใ€็†็”ฑใŒใ‚ใฃใฆๅ—ใ‘ๅ…ฅใ‚Œใฆใ‚‹ใฎใงใ™ใญใ“ใ“ใพใงใŠ่ฉฑใ‚’่žใ„ใฆใ„ใฆใ€้Ž้…ทใช่ทๅ ด็’ฐๅขƒใงใ‚‚็œŸๆ‘ฏใซไธๅฏงใซใŠไป•ไบ‹ใ‚’ใ•ใ‚Œใฆใ„ใฆใ€่ฒฌไปปๆ„Ÿใฎๅผทใ„ๆ–นใชใฎใ ใชใจๆ„Ÿใ˜ใฆใ„ใพใ™่‰ฒใ€…ใŠ่ฉฑใ—ใใ ใ•ใฃใŸไธญใงใ€ไปŠๆ—ฅไธ€็•ชใŠ่ฉฑใซใชใ‚ŠใŸใ„ใ“ใจใฏใชใ‚“ใงใ—ใ‚‡ใ†ใ‹ใ€‚\nใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ: ๆฌกใซใ‚„ใ‚ŠใŸใ„ใ“ใจใ‚’ใฟใคใ‘ใŸใ„ใ€‚\nใ‚ซใ‚ฆใƒณใ‚ปใƒฉใƒผ: ใใ†ใชใ‚“ใงใ™ใญใ€ๆฌกใฎ่ทๅ ดใซ็งปใ‚‹ใŸใ‚ใซใ‚‚ใ€ไปŠๆ—ฅใฏไธ€็ท’ใซ่€ƒใˆใ•ใ›ใฆใใ ใ•ใ„ใญใ€‚\nใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ: ใŠ้ก˜ใ„ใ„ใŸใ—ใพใ™ใ€‚\nใ‚ซใ‚ฆใƒณใ‚ปใƒฉใƒผ: ใ“ใกใ‚‰ใ“ใใ€ใ‚ˆใ‚ใ—ใใŠ้ก˜ใ„ใ„ใŸใ—ใพใ™ใ‚„ใ‚ŠใŸใ„ใ“ใจใ€ใจใฏใฉใ‚“ใชใ“ใจใงใ—ใ‚‡ใ†ใ‹ๅฅฝใใชใ“ใจใ‚„ใ€็ตฆไธŽๅพ…้‡ใŒใ‚ˆใ„ใ“ใจใชใฉใ€ๅธŒๆœ›ใฏใŠใ‚ใ‚Šใงใ™ใ‹ใ€‚\nใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ: ใƒ•ใƒซใ‚ฟใ‚คใƒ ใงใชใใฆใ‚‚ๅฎ‰ๅฎšใ—ใฆใ„ใฆใ€ใ‚„ใ‚ŠใŒใ„ใŒใ‚‚ใฆใŸใ‚‰ใ„ใ„ใชใจๆ€ใ„ใพใ™ใ€‚\nใ‚ซใ‚ฆใƒณใ‚ปใƒฉใƒผ: ใใ†ใชใ‚“ใงใ™ใญใ€ๅฎ‰ๅฎšใจใ„ใ†ใฎใฏๅ›บๅฎš็ตฆใงใ€ใจใ„ใ†ๆ„ๅ‘ณๅˆใ„ใงใ—ใ‚‡ใ†ใ‹ใ€‚\nใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ: ใใ†ใงใ™ใญใ€ไป–ใซไฝ•ใ‹ใ‚ใ‚Šใพใ™ใ‹๏ผŸ\nใ‚ซใ‚ฆใƒณใ‚ปใƒฉใƒผ: ๆ™‚ๆŠ˜ใ€ใƒ—ใƒฉใ‚นๆญฉๅˆๅˆถใฎใ‚ˆใ†ใช็ตฆไธŽๅฝขๆ…‹ใ‚‚ใ‚ใ‚‹ใŸใ‚ใ€็ขบ่ชใ•ใ›ใฆใ„ใŸใ ใใพใ—ใŸๅ›บๅฎš็ตฆใฏๆ‰‹ๅ–ใ‚ŠใŒใฏใฃใใ‚Šใ‚ใ‹ใ‚‹ใฎใงๅฎ‰ๅฟƒใงใใพใ™ใญใ€‚\nใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ: ใใ†ใงใ™ใญใ€‚\nใ‚ซใ‚ฆใƒณใ‚ปใƒฉใƒผ: ใ‚‚ใ†ไธ€็‚นใ€ใ‚„ใ‚ŠใŒใ„ใฏใฉใ‚“ใชใ“ใจใซๆ„Ÿใ˜ใ‚‰ใ‚ŒใฆใŠใ‚Šใพใ™ใงใ—ใ‚‡ใ†ใ‹ใ€‚\nใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ: ๆ„Ÿ่ฌใ•ใ‚ŒใŸๆ™‚ใจใ‹ใงใ™ใ‹ใญใ€‚่‡ชๅˆ†ใŒๆฅฝใ—ใ„ใจๆ„Ÿใ˜ใŸใ‚Šใ€‚\nใ‚ซใ‚ฆใƒณใ‚ปใƒฉใƒผ: ๅคงไบ‹ใชใ“ใจใงใ™ใญๆ„Ÿ่ฌใ•ใ‚ŒใŸใ‚Šใ€ๆฅฝใ—ใ„ใจๆ„Ÿใ˜ใ‚‰ใ‚Œใ‚‹ไป•ไบ‹ใซใคใ‘ใ‚‹ใจใ€ใƒขใƒใƒ™ใƒผใ‚ทใƒงใƒณใ‚‚ใ‚ใŒใ‚Šใใ†ใงใ™ใญใ€‚\nใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ: ใใ†ใงใ™ใญใ€ใƒขใƒใƒ™ใƒผใ‚ทใƒงใƒณ้ซ˜ใใ€็”Ÿใ็”ŸใใจๅƒใใŸใ„ใงใ™ใ€‚\nใ‚ซใ‚ฆใƒณใ‚ปใƒฉใƒผ: ใใ†ใงใ™ใญใ€็ด ๆ•ตใชๅƒใๆ–นใ ใจๆ€ใ„ใพใ™ใŠไป•ไบ‹ใงๆฅฝใ—ใ„ใจๆ„Ÿใ˜ใ‚‹ใฎใฏใฉใ‚“ใชๆ™‚ใงใ—ใ‚‡ใ†ใ‹ใ€‚\nใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ: ๆ‚ฃ่€…ใ•ใ‚“ใŒ่ฉฑใ—ใฆไธ‹ใ•ใ‚‹่ฉฑใ‚’ใใ„ใฆใ‚‹ๆ™‚ใ€ๆฅฝใ—ใ„ใจๆ€ใ„ใพใ™ใ€‚\nใ‚ซใ‚ฆใƒณใ‚ปใƒฉใƒผ: ใใ†ใชใ‚“ใงใ™ใญใ€ใใฎใ‚ˆใ†ใซใŠๆ„Ÿใ˜ใซใชใ‚‹ใฎใงใ™ใญไปŠใพใงใฎใŠ่ฉฑใ‚’ใ†ใ‹ใŒใฃใฆใ„ใ‚‹ใจใ€ใ”่‡ช่บซใฎไธญใงใ€Œใ“ใฎใ‚ˆใ†ใซๅƒใใŸใ„ใ€ใจใ„ใ†ๅธŒๆœ›ใฏใ€ใ‹ใชใ‚Šใฏใฃใใ‚Šใ—ใฆใ„ใ‚‹ใ‚ˆใ†ใซๆ„Ÿใ˜ใพใ—ใŸใŒใ€ใ„ใ‹ใŒใงใ—ใ‚‡ใ†ใ‹ใ€‚\nใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ: ๅฝขใซใ™ใ‚‹ใฎใŒใ€้›ฃใ—ใๆ€ใ„ใพใ™ใ€‚\nใ‚ซใ‚ฆใƒณใ‚ปใƒฉใƒผ: ใใ†ใชใ‚“ใงใ™ใญใ€ๅฝขใซใ™ใ‚‹ใฎใŒ้›ฃใ—ใ„ใจใŠๆ„Ÿใ˜ใชใ‚“ใงใ™ใญใ‚‚ใ—ใ‚ˆใ‘ใ‚Œใฐใ€ไปŠไธŠใ’ใฆใ„ใŸใ ใ„ใŸใ”ๅธŒๆœ›ใ‚’ใ‚‚ใฃใฆใ€ใƒใƒญใƒผใƒฏใƒผใ‚ฏใซ่กŒใฃใŸใ‚Šใ€ใƒใƒƒใƒˆใงๆŽขใ—ใฆใฟใ‚‹ใฎใฏใ„ใ‹ใŒใงใ—ใ‚‡ใ†ใ‹ใ€‚\nใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ: ใฏใ„ใ€ใใ†ใ—ใฆใฟใพใ™ใ€‚ใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ—ใŸใ€‚\nใ‚ซใ‚ฆใƒณใ‚ปใƒฉใƒผ: ใฏใ„ใ€ใœใฒใ‚„ใฃใฆใฟใฆใใ ใ•ใ„ๅ…ˆใปใฉใŠใฃใ—ใ‚ƒใฃใฆใ„ใŸใ€ใƒขใƒใƒ™ใƒผใ‚ทใƒงใƒณ้ซ˜ใใ€้ซ˜ใใ€็”Ÿใ็”Ÿใๅƒใ‘ใใ†ใชๅ ดๆ‰€ใŒ่ฆ‹ใคใ‹ใ‚‹ใ“ใจใ‚’ใ€ๅฟœๆดใ—ใฆใŠใ‚Šใพใ™ใ€‚"}
]

# Tokenize with chat template
inputs = tokenizer.apply_chat_template(
    messages,
    add_generation_prompt=True,
    return_tensors="pt"
).to(model.device)

attention_mask = inputs.ne(tokenizer.pad_token_id)

# Generate score prediction
outputs = model.generate(
    inputs,
    attention_mask=attention_mask,
    pad_token_id=tokenizer.pad_token_id,
    max_new_tokens=256
)

# Extract only the newly generated tokens
response = outputs[0][inputs.shape[-1]:]
predicted_score = tokenizer.decode(response, skip_special_tokens=True)

# Print clean score prediction
print(predicted_score)
```

---

## ๐Ÿ› ๏ธ Fine-Tuning Details

Fine-tuning was performed using **QLoRA** with the following configuration:

- **Quantization**: 4-bit NF4 with bfloat16 computation
- **LoRA target modules**: `q_proj`, `k_proj`, `v_proj`, `o_proj`, `gate_proj`, `up_proj`, `down_proj`
- **LoRA parameters**:
  - `r = 8`
  - `lora_alpha = 16`
  - `lora_dropout = 0.05`

### Dataset Split

- **Training/Validation/Test ratio**: 8:1:1

### Hyperparameter Settings

- **Optimizer**: `adamw_torch_fused`
- **Warm-up Steps**: `100`
- **Learning Rate**: `2e-4`
- **Epochs**: `4`
- **Batch Size**: `4`

---

## ๐Ÿ“„ Citation

If you use this model or dataset, please cite the following paper:

```bibtex
@inproceedings{qi2025kokorochat,
  title     = {KokoroChat: A Japanese Psychological Counseling Dialogue Dataset Collected via Role-Playing by Trained Counselors},
  author    = {Zhiyang Qi and Takumasa Kaneko and Keiko Takamizo and Mariko Ukiyo and Michimasa Inaba},
  booktitle = {Proceedings of the 63rd Annual Meeting of the Association for Computational Linguistics},
  year      = {2025},
  url       = {https://github.com/UEC-InabaLab/KokoroChat}
}
```
---

## ๐Ÿ”— Related

- ๐Ÿ“ **Dataset**:  
  - [KokoroChat on Hugging Face Datasets](https://huggingface.co/datasets/UEC-InabaLab/KokoroChat)  
  - [KokoroChat on GitHub (UEC-InabaLab)](https://github.com/UEC-InabaLab/KokoroChat)
- ๐Ÿค– **Response Generation Models**:  
  - [Llama-3.1-KokoroChat-Low](https://huggingface.co/UEC-InabaLab/Llama-3.1-KokoroChat-Low): fine-tuned on **3,870 dialogues** with client feedback scores **< 70**
  - [Llama-3.1-KokoroChat-High](https://huggingface.co/UEC-InabaLab/Llama-3.1-KokoroChat-High): fine-tuned on **2,601 dialogues** with client feedback scores between **70 and 98**
  - [Llama-3.1-KokoroChat-Full](https://huggingface.co/UEC-InabaLab/Llama-3.1-KokoroChat-Full): fine-tuned on **6,471 dialogues** with client feedback scores **โ‰ค 98**
- ๐Ÿ“„ **Paper**: [ACL 2025 Paper](https://aclanthology.org/2025.acl-long.608/)