---
language:
- ja
license: mit
pipeline_tag: text-generation
---
# japanese-gpt-1b-PII-masking
![image/png](https://cdn-uploads.huggingface.co/production/uploads/64ffe8a785a884a964b0cffe/gFQn0Oc6Nrvj8ViyTdZuM.png)
# Model Description
japanese-gpt-1b-PII-masking は、 [日本語事前学習済み1B GPTモデル](https://huggingface.co/rinna/japanese-gpt-1b)をベースとして、日本語の文章から個人情報をマスキングするように学習したモデルです。
個人情報は以下の対応関係でマスキングされます。
| タグ | 項目 |
| ---- | ---- |
| \ | 氏名 |
| \ | 生年月日 |
| \ | 電話番号 |
| \ | メールアドレス |
| \ | 会員番号・ID |
| \ | 住所 |
| \ | 郵便番号 |
| \ | 会社名 |
# Usage
```python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
instruction = "文中の個人情報をマスキングせよ\n\n"
text = """オペレーター:ありがとうございます。カスタマーサポートセンターでございます。お名前と生年月日、ご住所を市区町村まで教えていただけますか?
顧客:あ、はい。西山...すみません、西山俊之です。生年月日は、えーっと、1983年1月23日です。東京都練馬区在住です。
オペレーター:西山俊之様、1983年1月23日生まれ、東京都練馬区にお住まいですね。確認いたしました。お電話の件につきまして、さらにご本人様確認をさせていただきます。"""
input_text = instruction + text
model_name = "cameltech/japanese-gpt-1b-PII-masking"
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
if torch.cuda.is_available():
model = model.to("cuda")
def preprocess(text):
return text.replace("\n", "")
def postprocess(text):
return text.replace("", "\n")
input_text += tokenizer.eos_token
input_text = preprocess(input_text)
with torch.no_grad():
token_ids = tokenizer.encode(input_text, add_special_tokens=False, return_tensors="pt")
output_ids = model.generate(
token_ids.to(model.device),
max_new_tokens=256,
pad_token_id=tokenizer.pad_token_id,
eos_token_id=tokenizer.eos_token_id,
)
output = tokenizer.decode(output_ids.tolist()[0][token_ids.size(1) :], skip_special_tokens=True)
output = postprocess(output)
print(output)
"""
オペレーター:ありがとうございます。カスタマーサポートセンターでございます。お名前と生年月日、ご住所をまで教えていただけますか?
顧客:あ、はい。です。生年月日は、えーっと、です。在住です。
オペレーター:様、生まれ、にお住まいですね。確認いたしました。お電話の件につきまして、さらにご本人様確認をさせていただきます。
"""
```
# Licenese
[The MIT license](https://opensource.org/licenses/MIT)