--- language: - zh tags: - chatglm - pytorch - zh - Text2Text-Generation license: "apache-2.0" widget: - text: "对下面中文拼写纠错:\n少先队员因该为老人让坐。\n答:" --- # 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 ChatGlmModel model = ChatGlmModel("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}, } ```