
# 判決書「犯罪事實」欄草稿自動生成
本模型是以司法院公開之「詐欺」案件判決書做成之資料集，基於 [BLOOM 560m](https://huggingface.co/bigscience/bloom-560m) 模型進行微調訓練，可以自動生成詐欺及竊盜案件之犯罪事實段落之草稿。資料集之資料範圍從100年1月1日至110年12月31日，所蒐集到的原始資料共有 74823 篇（判決以及裁定），我們只取判決書的「犯罪事實」欄位內容，並把這原始的資料分成三份，用於訓練的資料集有59858篇，約佔原始資料的80%，剩下的20%，則是各分配10%給驗證集（7482篇），10%給測試集（7483篇）。在本網頁進行測試時，請在模型載入完畢並生成第一小句後，持續按下Compute按鈕，就能持續生成文字。或是輸入自己想要測試的資料到文字框中進行測試。或是可以到[這裡](https://huggingface.co/spaces/jslin09/legal_document_drafting)有更完整的使用體驗。

# 使用範例
如果要在自己的程式中調用本模型，可以參考下列的 Python 程式碼，藉由呼叫 API 的方式來生成刑事判決書「犯罪事實」欄的內容。
<details>
  <summary> 點擊後展開 </summary>
<pre>
  <code>
import requests, json
from time import sleep
from tqdm.auto import tqdm, trange

API_URL = "https://api-inference.huggingface.co/models/jslin09/bloom-560m-finetuned-fraud"
API_TOKEN = 'XXXXXXXXXXXXXXX' # 調用模型的 API token
headers = {"Authorization": f"Bearer {API_TOKEN}"} 

def query(payload):
    response = requests.post(API_URL, headers=headers, json=payload)
    return json.loads(response.content.decode("utf-8"))

prompt = "森上梅前明知其無資力支付酒店消費，亦無付款意願，竟意圖為自己不法之所有，"
query_dict = {
	"inputs": prompt,
}
text_len = 300
t = trange(text_len, desc= '生成例稿', leave=True)
for i in t:
    response = query(query_dict)
    try:
        response_text = response[0]['generated_text']
        query_dict["inputs"] = response_text
        t.set_description(f"{i}: {response[0]['generated_text']}")
        t.refresh()
    except KeyError:
        sleep(30) # 如果伺服器太忙無回應，等30秒後再試。
        pass
print(response[0]['generated_text'])
</code>
</pre>
</details>

或是，你要使用 transformers 套件來實作你的程式，將本模型下載至你本地端的電腦中執行，可以參考下列程式碼:
<details>
  <summary> 點擊後展開 </summary>
<pre>
  <code>
from transformers import AutoTokenizer, AutoModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained("jslin09/bloom-560m-finetuned-fraud")
model = AutoModelForCausalLM.from_pretrained("jslin09/bloom-560m-finetuned-fraud")
</code>
</pre>
</details>

# 本模型進行各項指標進行評估的結果如下 [Open LLM Leaderboard Evaluation Results](https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard)
詳細的結果在 [這裡](https://huggingface.co/datasets/open-llm-leaderboard/details_jslin09__bloom-560m-finetuned-fraud)。
本模型只使用範圍相當小的資料集進行微調，就任務目標來說，已經是完美解決，但就廣泛的通用性來說，其實是不完美的。總的來說，如果應用場景是需要把模型建置在本地端、不能連到外部網路、提示字資料也不能外送的情境下，本模型的建置過程及結果提供了一個可行性的示範。

| Metric                | Value                     |
|-----------------------|---------------------------|
| Avg.                  | 18.37   |
| ARC (25-shot)         | 26.96          |
| HellaSwag (10-shot)   | 28.87    |
| MMLU (5-shot)         | 24.03         |
| TruthfulQA (0-shot)   | 0.0   |
| Winogrande (5-shot)   | 48.38   |
| GSM8K (5-shot)        | 0.0        |
| DROP (3-shot)         | 0.33         |
{"language": ["zh"], "license": "bigscience-bloom-rail-1.0", "tags": ["legal"], "datasets": ["jslin09/Fraud_Case_Verdicts"], "metrics": ["accuracy"], "pipeline_tag": "text-generation", "text-generation": {"parameters": {"max_length": 400, "do_sample": true, "temperature": 0.75, "top_k": 50, "top_p": 0.9}}, "widget": [{"text": "\u738b\u5927\u660e\u610f\u5716\u70ba\u81ea\u5df1\u4e0d\u6cd5\u6240\u6709\uff0c\u57fa\u65bc\u7aca\u76dc\u4e4b\u72af\u610f\uff0c", "example_title": "\u751f\u6210\u7aca\u76dc\u7f6a\u4e4b\u72af\u7f6a\u4e8b\u5be6"}, {"text": "\u9a19\u4eba\u5e03\u610f\u5716\u70ba\u81ea\u5df1\u4e0d\u6cd5\u6240\u6709\uff0c\u57fa\u65bc\u8a50\u6b3a\u53d6\u8ca1\u4e4b\u72af\u610f\uff0c", "example_title": "\u751f\u6210\u8a50\u6b3a\u7f6a\u4e4b\u72af\u7f6a\u4e8b\u5be6"}, {"text": "\u6885\u53cb\u4e7e\u660e\u77e5\u5176\u7121\u8cc7\u529b\u652f\u4ed8\u9152\u5e97\u6d88\u8cbb\uff0c\u4ea6\u7121\u4ed8\u6b3e\u610f\u9858\uff0c\u7adf\u610f\u5716\u70ba\u81ea\u5df1\u4e0d\u6cd5\u4e4b\u6240\u6709\uff0c", "example_title": "\u751f\u6210\u5403\u9738\u738b\u9910\u4e4b\u8a50\u6b3a\u72af\u7f6a\u4e8b\u5be6"}, {"text": "\u95d5\u5f88\u5927\u660e\u77e5\u91d1\u878d\u5e33\u6236\u4e4b\u5b58\u647a\u3001\u63d0\u6b3e\u5361\u53ca\u5bc6\u78bc\u4fc2\u4f9b\u81ea\u5df1\u4f7f\u7528\u4e4b\u91cd\u8981\u7406\u8ca1\u5de5\u5177\uff0c", "example_title": "\u751f\u6210\u8ce3\u5e33\u6236\u5e6b\u52a9\u8a50\u6b3a\u72af\u7f6a\u4e8b\u5be6"}, {"text": "\u901a\u8a0a\u738b\u660e\u77e5\u8fd1\u4f86\u76db\u884c\u4ee5\u865b\u8a2d\u3001\u79df\u8cc3\u3001\u501f\u7528\u6216\u8cb7\u8ce3\u884c\u52d5\u96fb\u8a71\u4eba\u982d\u9580\u865f\u4e4b\u65b9\u5f0f\uff0c\u4f9b\u8a50\u9a19\u96c6\u5718\u4f5c\u70ba\u8a50\u6b3a\u4ed6\u4eba\u4ea4\u4ed8\u8ca1\u7269\u7b49\u4e0d\u6cd5\u7528\u9014\uff0c", "example_title": "\u751f\u6210\u8ce3\u96fb\u8a71SIM\u5361\u4e4b\u5e6b\u52a9\u8a50\u6b3a\u72af\u7f6a\u4e8b\u5be6"}, {"text": "\u8d99\u7532\u738b\u57fa\u65bc\u884c\u4f7f\u507d\u9020\u7279\u7a2e\u6587\u66f8\u53ca\u8a50\u6b3a\u53d6\u8ca1\u4e4b\u72af\u610f\uff0c", "example_title": "\u507d\u9020\u7279\u7a2e\u6587\u66f8(\u5951\u7d04\u3001\u8eca\u724c\u7b49)\u8a50\u8ca1"}]}
transformers pytorch safetensors bloom text-generation legal zh dataset:jslin09/Fraud_Case_Verdicts license:bigscience-bloom-rail-1.0 autotrain_compatible endpoints_compatible text-generation-inference region:us
TAGS
#transformers #pytorch #safetensors #bloom #text-generation #legal #zh #dataset-jslin09/Fraud_Case_Verdicts #license-bigscience-bloom-rail-1.0 #autotrain_compatible #endpoints_compatible #text-generation-inference #region-us 

判決書「犯罪事實」欄草稿自動生成
================


本模型是以司法院公開之「詐欺」案件判決書做成之資料集，基於 BLOOM 560m 模型進行微調訓練，可以自動生成詐欺及竊盜案件之犯罪事實段落之草稿。資料集之資料範圍從100年1月1日至110年12月31日，所蒐集到的原始資料共有 74823 篇（判決以及裁定），我們只取判決書的「犯罪事實」欄位內容，並把這原始的資料分成三份，用於訓練的資料集有59858篇，約佔原始資料的80%，剩下的20%，則是各分配10%給驗證集（7482篇），10%給測試集（7483篇）。在本網頁進行測試時，請在模型載入完畢並生成第一小句後，持續按下Compute按鈕，就能持續生成文字。或是輸入自己想要測試的資料到文字框中進行測試。或是可以到這裡有更完整的使用體驗。


使用範例
====


如果要在自己的程式中調用本模型，可以參考下列的 Python 程式碼，藉由呼叫 API 的方式來生成刑事判決書「犯罪事實」欄的內容。



 點擊後展開 

```

  
import requests, json
from time import sleep
from URL import tqdm, trange
API\_URL = "URL
API\_TOKEN = 'XXXXXXXXXXXXXXX' # 調用模型的 API token
headers = {"Authorization": f"Bearer {API\_TOKEN}"}


def query(payload):
response = URL(API\_URL, headers=headers, json=payload)
return URL(URL("utf-8"))


prompt = "森上梅前明知其無資力支付酒店消費，亦無付款意願，竟意圖為自己不法之所有，"
query\_dict = {
"inputs": prompt,
}
text\_len = 300
t = trange(text\_len, desc= '生成例稿', leave=True)
for i in t:
response = query(query\_dict)
try:
response\_text = response[0]['generated\_text']
query\_dict["inputs"] = response\_text
t.set\_description(f"{i}: {response[0]['generated\_text']}")
t.refresh()
except KeyError:
sleep(30) # 如果伺服器太忙無回應，等30秒後再試。
pass
print(response[0]['generated\_text'])




```


或是，你要使用 transformers 套件來實作你的程式，將本模型下載至你本地端的電腦中執行，可以參考下列程式碼:



 點擊後展開 

```

  
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from\_pretrained("jslin09/bloom-560m-finetuned-fraud")
model = AutoModelForCausalLM.from\_pretrained("jslin09/bloom-560m-finetuned-fraud")




```


本模型進行各項指標進行評估的結果如下 Open LLM Leaderboard Evaluation Results
==========================================================


詳細的結果在 這裡。
本模型只使用範圍相當小的資料集進行微調，就任務目標來說，已經是完美解決，但就廣泛的通用性來說，其實是不完美的。總的來說，如果應用場景是需要把模型建置在本地端、不能連到外部網路、提示字資料也不能外送的情境下，本模型的建置過程及結果提供了一個可行性的示範。




# 調用模型的 API token
headers = {"Authorization": f"Bearer {API\_TOKEN}"}


def query(payload):
response = URL(API\_URL, headers=headers, json=payload)
return URL(URL("utf-8"))


prompt = "森上梅前明知其無資力支付酒店消費，亦無付款意願，竟意圖為自己不法之所有，"
query\_dict = {
"inputs": prompt,
}
text\_len = 300
t = trange(text\_len, desc= '生成例稿', leave=True)
for i in t:
response = query(query\_dict)
try:
response\_text = response[0]['generated\_text']
query\_dict["inputs"] = response\_text
t.set\_description(f"{i}: {response[0]['generated\_text']}")
t.refresh()
except KeyError:
sleep(30) # 如果伺服器太忙無回應，等30秒後再試。
pass
print(response[0]['generated\_text'])




```


或是，你要使用 transformers 套件來實作你的程式，將本模型下載至你本地端的電腦中執行，可以參考下列程式碼:



 點擊後展開 

```

  
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from\_pretrained("jslin09/bloom-560m-finetuned-fraud")
model = AutoModelForCausalLM.from\_pretrained("jslin09/bloom-560m-finetuned-fraud")




```


本模型進行各項指標進行評估的結果如下 Open LLM Leaderboard Evaluation Results
==========================================================


詳細的結果在 這裡。
本模型只使用範圍相當小的資料集進行微調，就任務目標來說，已經是完美解決，但就廣泛的通用性來說，其實是不完美的。總的來說，如果應用場景是需要把模型建置在本地端、不能連到外部網路、提示字資料也不能外送的情境下，本模型的建置過程及結果提供了一個可行性的示範。
TAGS
#transformers #pytorch #safetensors #bloom #text-generation #legal #zh #dataset-jslin09/Fraud_Case_Verdicts #license-bigscience-bloom-rail-1.0 #autotrain_compatible #endpoints_compatible #text-generation-inference #region-us 
 # 調用模型的 API token
headers = {"Authorization": f"Bearer {API\_TOKEN}"}


def query(payload):
response = URL(API\_URL, headers=headers, json=payload)
return URL(URL("utf-8"))


prompt = "森上梅前明知其無資力支付酒店消費，亦無付款意願，竟意圖為自己不法之所有，"
query\_dict = {
"inputs": prompt,
}
text\_len = 300
t = trange(text\_len, desc= '生成例稿', leave=True)
for i in t:
response = query(query\_dict)
try:
response\_text = response[0]['generated\_text']
query\_dict["inputs"] = response\_text
t.set\_description(f"{i}: {response[0]['generated\_text']}")
t.refresh()
except KeyError:
sleep(30) # 如果伺服器太忙無回應，等30秒後再試。
pass
print(response[0]['generated\_text'])




```


或是，你要使用 transformers 套件來實作你的程式，將本模型下載至你本地端的電腦中執行，可以參考下列程式碼:



 點擊後展開 

```

  
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from\_pretrained("jslin09/bloom-560m-finetuned-fraud")
model = AutoModelForCausalLM.from\_pretrained("jslin09/bloom-560m-finetuned-fraud")




```


本模型進行各項指標進行評估的結果如下 Open LLM Leaderboard Evaluation Results
==========================================================


詳細的結果在 這裡。
本模型只使用範圍相當小的資料集進行微調，就任務目標來說，已經是完美解決，但就廣泛的通用性來說，其實是不完美的。總的來說，如果應用場景是需要把模型建置在本地端、不能連到外部網路、提示字資料也不能外送的情境下，本模型的建置過程及結果提供了一個可行性的示範。
TAGS
#transformers #pytorch #safetensors #bloom #text-generation #legal #zh #dataset-jslin09/Fraud_Case_Verdicts #license-bigscience-bloom-rail-1.0 #autotrain_compatible #endpoints_compatible #text-generation-inference #region-us 
# 調用模型的 API token
headers = {"Authorization": f"Bearer {API\_TOKEN}"}


def query(payload):
response = URL(API\_URL, headers=headers, json=payload)
return URL(URL("utf-8"))


prompt = "森上梅前明知其無資力支付酒店消費，亦無付款意願，竟意圖為自己不法之所有，"
query\_dict = {
"inputs": prompt,
}
text\_len = 300
t = trange(text\_len, desc= '生成例稿', leave=True)
for i in t:
response = query(query\_dict)
try:
response\_text = response[0]['generated\_text']
query\_dict["inputs"] = response\_text
t.set\_description(f"{i}: {response[0]['generated\_text']}")
t.refresh()
except KeyError:
sleep(30) # 如果伺服器太忙無回應，等30秒後再試。
pass
print(response[0]['generated\_text'])




```


或是，你要使用 transformers 套件來實作你的程式，將本模型下載至你本地端的電腦中執行，可以參考下列程式碼:



 點擊後展開 

```

  
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from\_pretrained("jslin09/bloom-560m-finetuned-fraud")
model = AutoModelForCausalLM.from\_pretrained("jslin09/bloom-560m-finetuned-fraud")




```


本模型進行各項指標進行評估的結果如下 Open LLM Leaderboard Evaluation Results
==========================================================


詳細的結果在 這裡。
本模型只使用範圍相當小的資料集進行微調，就任務目標來說，已經是完美解決，但就廣泛的通用性來說，其實是不完美的。總的來說，如果應用場景是需要把模型建置在本地端、不能連到外部網路、提示字資料也不能外送的情境下，本模型的建置過程及結果提供了一個可行性的示範。