
# Chinese Spelling Correction LoRA Model
ChatGLM中文纠错LoRA模型

`chatglm-6b-csc-zh-lora` evaluate test data：

The overall performance of chatglm-6b-csc-zh-lora on CSC **test**:

|prefix|input_text|target_text|pred|
|:-- |:--- |:--- |:-- |
|对下面中文拼写纠错：|少先队员因该为老人让坐。|少先队员应该为老人让座。|少先队员应该为老人让座。\n错误字：因，坐|

在CSC测试集上生成结果纠错准确率高，由于是基于大模型，结果常常能带给人惊喜，不仅能纠错，还带有句子润色和改写功能。


## Usage

本项目开源在textgen项目：[textgen](https://github.com/shibing624/textgen)，可支持ChatGLM原生模型和LoRA微调后的模型，通过如下命令调用：

Install package:
```shell
pip install -U textgen
```

```python
from textgen import GptModel
model = GptModel("chatglm", "THUDM/chatglm-6b", peft_name="shibing624/chatglm-6b-csc-zh-lora")
r = model.predict(["对下面中文拼写纠错：\n少先队员因该为老人让坐。\n答："])
print(r) # ['少先队员应该为老人让座。\n错误字：因，坐']
```

## Usage (HuggingFace Transformers)
Without [textgen](https://github.com/shibing624/textgen), you can use the model like this: 

First, you pass your input through the transformer model, then you get the generated sentence.

Install package:
```
pip install transformers 
```

```python
import sys
from peft import PeftModel
from transformers import AutoModel, AutoTokenizer

sys.path.append('..')

model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True, device_map='auto')
model = PeftModel.from_pretrained(model, "shibing624/chatglm-6b-csc-zh-lora")
model = model.half().cuda()  # fp16
tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)

sents = ['对下面中文拼写纠错：\n少先队员因该为老人让坐。\n答：',
         '对下面中文拼写纠错：\n下个星期，我跟我朋唷打算去法国玩儿。\n答：']
for s in sents:
    response = model.chat(tokenizer, s, max_length=128, eos_token_id=tokenizer.eos_token_id)
    print(response)
```

output:
```shell
('少先队员应该为老人让座。\n错误字：因，坐', [('对下面中文拼写纠错：\n少先队员因该为老人让坐。\n答：', '少先队员应该为老人让座。\n错误字：因，坐')])
('下个星期，我跟我朋友打算去法国玩儿。\n错误字：唷', [('对下面中文拼写纠错：\n下个星期，我跟我朋唷打算去法国玩儿。\n答：', '下个星期，我跟我朋友打算去法国玩儿。\n错误字：唷')])
```


模型文件组成：
```
chatglm-6b-csc-zh-lora
    ├── adapter_config.json
    └── adapter_model.bin
```

#### 训练参数：

- num_epochs: 2
- batch_size: 4
- steps: 125600
- train_loss: 0.1055
- base model: THUDM/chatglm-6b
- train data: [shibing624/CSC](https://huggingface.co/datasets/shibing624/CSC)


### 训练数据集
#### 中文纠错数据集

- 数据：[shibing624/CSC](https://huggingface.co/datasets/shibing624/CSC)



如果需要训练ChatGLM模型，请参考[https://github.com/shibing624/textgen](https://github.com/shibing624/textgen)



## Citation

```latex
@software{textgen,
  author = {Xu Ming},
  title = {textgen: Implementation of language model finetune},
  year = {2021},
  url = {https://github.com/shibing624/textgen},
}
```

{"language": ["zh"], "license": "apache-2.0", "tags": ["chatglm", "pytorch", "zh", "Text2Text-Generation"], "widget": [{"text": "\u5bf9\u4e0b\u9762\u4e2d\u6587\u62fc\u5199\u7ea0\u9519\uff1a\n\u5c11\u5148\u961f\u5458\u56e0\u8be5\u4e3a\u8001\u4eba\u8ba9\u5750\u3002\n\u7b54\uff1a"}]}
chatglm pytorch zh Text2Text-Generation license:apache-2.0 region:us
TAGS
#chatglm #pytorch #zh #Text2Text-Generation #license-apache-2.0 #region-us 

Chinese Spelling Correction LoRA Model
======================================


ChatGLM中文纠错LoRA模型


'chatglm-6b-csc-zh-lora' evaluate test data：


The overall performance of chatglm-6b-csc-zh-lora on CSC test:



在CSC测试集上生成结果纠错准确率高，由于是基于大模型，结果常常能带给人惊喜，不仅能纠错，还带有句子润色和改写功能。


Usage
-----


本项目开源在textgen项目：textgen，可支持ChatGLM原生模型和LoRA微调后的模型，通过如下命令调用：


Install package:


Usage (HuggingFace Transformers)
--------------------------------


Without textgen, you can use the model like this:


First, you pass your input through the transformer model, then you get the generated sentence.


Install package:


output:


模型文件组成：


#### 训练参数：


* num\_epochs: 2
* batch\_size: 4
* steps: 125600
* train\_loss: 0.1055
* base model: THUDM/chatglm-6b
* train data: shibing624/CSC


### 训练数据集


#### 中文纠错数据集


* 数据：shibing624/CSC


如果需要训练ChatGLM模型，请参考https://URL



#### 训练参数：


* num\_epochs: 2
* batch\_size: 4
* steps: 125600
* train\_loss: 0.1055
* base model: THUDM/chatglm-6b
* train data: shibing624/CSC ### 训练数据集 #### 中文纠错数据集


* 数据：shibing624/CSC


如果需要训练ChatGLM模型，请参考https://URL
TAGS
#chatglm #pytorch #zh #Text2Text-Generation #license-apache-2.0 #region-us 
 #### 训练参数：


* num\_epochs: 2
* batch\_size: 4
* steps: 125600
* train\_loss: 0.1055
* base model: THUDM/chatglm-6b
* train data: shibing624/CSC ### 训练数据集 #### 中文纠错数据集


* 数据：shibing624/CSC


如果需要训练ChatGLM模型，请参考https://URL
TAGS
#chatglm #pytorch #zh #Text2Text-Generation #license-apache-2.0 #region-us 
#### 训练参数：


* num\_epochs: 2
* batch\_size: 4
* steps: 125600
* train\_loss: 0.1055
* base model: THUDM/chatglm-6b
* train data: shibing624/CSC### 训练数据集#### 中文纠错数据集


* 数据：shibing624/CSC


如果需要训练ChatGLM模型，请参考https://URL