---
license: apache-2.0
language:
  - ja
pipeline_tag: text-generation
base_model:
  - llm-jp/llm-jp-3.1-13b-instruct4
tags:
  - dialogue-generation
  - spoken-dialogue
---

# diafill-llm-jp-3.1-13b-instruct4

## Model Summary
**DiaFill** is a Japanese dialogue script generation model designed to produce natural, spoken-style dialogue scripts rich in fillers and brief utternaces.
Unlike typical assistant models that respond to users, this model is fine-tuned to **generate a multi-turn dialogue script between two speakers** based on a given scenario (seed data).

## Training Data
This model was fine-tuned on non-public Japanese dialogue script data created as part of the GENIAC (Generative AI Accelerator Challenge) project.
The training data itself is not publicly available.

The project is described in the following press release:
https://www.softbank.jp/corp/news/press/sbkk/2025/20250213_01/


## Usage (Dialogue Script Generation)

This model generates a dialogue script based on a "Seed" prompt describing the genre, topic, and speakers.

### Input Data Specification
- **genre**: Choose one of the following Japanese strings:
    * `雑談` (Chit-chat)
    * `コールセンター（手続き）` (Call Center - Procedure)
    * `コールセンター（テクニカルサポート）` (Call Center - Technical Support)
    * `コールセンター（カスタマーサクセス）` (Call Center - Customer Success)
- **industry**: Required only for Call Center genres (e.g., "家電", "通信"). **Omit this field if the genre is `雑談`.**
- **tone**: Basically, choose either フランク (Casual) or 丁寧 (Polite) for each speaker.

### Python Code Example
```python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, set_seed

model_name = "sbintuitions/diafill-llm-jp-3.1-13b-instruct4"
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype=torch.bfloat16,
    device_map="auto",
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
set_seed(42)

seed_data = {
    "topics": ["家電保証", "修理依頼", "延長保証"],
    "genre": "コールセンター（手続き）",
    "industry": "家電",
    "speaker1_name": "田中",
    "speaker2_name": "鈴木",
    "speaker1_tone": "フランク",
    "speaker2_tone": "丁寧",
    "summary": "カスタマーは、家電保証に関する手続きについて問い合わせた。オペレーターが修理依頼や延長保証に関する詳細を案内し、カスタマーは納得して対応を依頼した。",
}

messages = [
    {"role": "user", "seed": seed_data},
]

inputs = tokenizer.apply_chat_template(
    messages,
    tokenize=True,
    add_generation_prompt=True,
    return_tensors="pt",
).to(model.device)

with torch.no_grad():
    outputs = model.generate(
        inputs,
        max_new_tokens=512,
        do_sample=True,
        repetition_penalty=1.1,
    )

generated_script = tokenizer.decode(
    outputs[0][inputs.shape[1] :],
    skip_special_tokens=True,
)
print(generated_script)
```

### Generation example
```
オペレーター: お電話ありがとうございます。
カスタマー: いただきます。はい。えっと実はあのー鈴木と申しまして、え今日、例えば、えーっとー電気店の方で、あのーま家族がえ電化製品のですね、えーあのー購入した商品について、まずあの今購入してから3ヶ月ぐらいなんですねんでもそれ以降にその本体の中でこ動かなくなるものがございますので、そういった場合でもそちらの方に連絡したら、すぐまーあのー対応できるようになるのかをお伺いしたいです。
オペレーター: はい。かしこまりました。では恐れ入ります保障のま内容によって少し変わってくるかと思いますので、一旦ご案内させていただく前に資料確認いたします。お電話切らずに少しお待ちください。保留にいたしますねお客様大変お待たせいたしました。
カスタマー: 恐れ入ります。
オペレーター: はいえもう一度確認しますので恐れ入ります。度々、申し訳ございません。申し訳ございませんお待たせしております。恐れ入りますが保障につきましてはもう一つ弊社ですね延長保証がございました。こちらの方がちょっとご説明いただいてなかったかもしれませんので改めてお話させていただきます。こちら月額550円で延長保証となりますので、この分お支払いいただき、されていれば、基本的に故障については修理となります。まずはいどうぞ
カスタマー: わかりましたじゃ今後はその延長保証にま申し込んでおけば、今回のようなケースに対しても、その電気屋さんの方ですとかあるいはそのメーカーさんの方でも、うそういった形になるということなんですね。
オペレーター: はいさようでございますおっしゃる通りでございます。私からの案内以上となりますが、他にご不明点ございますか？
カスタマー: え特にないですよ大丈夫ですよ。はい。それでまた何かありましたらあのーお問い合わせしますので。
オペレーター: 承知しましたいつでも結構ですので連絡ください。また後でお電話お待ちしておりますよろしくお願いします。田中がご案内いたしました。失礼いたします。
カスタマー: まはいはい。わかりました承知しました。はい。
```

## License

[Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)