From af0aecf4824e856f0e5fc605cb4ad5143da7a624 Mon Sep 17 00:00:00 2001 From: songpx Date: Tue, 16 May 2023 23:16:08 +0800 Subject: [PATCH] Add data dir in src --- .gitignore | 2 +- src/data/example_instruction_train.json | 8 ++++ src/data/example_instruction_tune.json | 10 +++++ tools/generate_instructions_knowledge.py | 50 ----------------------- tools/generate_instructions_law.py | 51 ------------------------ 5 files changed, 19 insertions(+), 102 deletions(-) create mode 100644 src/data/example_instruction_train.json create mode 100644 src/data/example_instruction_tune.json delete mode 100644 tools/generate_instructions_knowledge.py delete mode 100644 tools/generate_instructions_law.py diff --git a/.gitignore b/.gitignore index 8fce603..41da0ad 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -data/ +./data diff --git a/src/data/example_instruction_train.json b/src/data/example_instruction_train.json new file mode 100644 index 0000000..6f677d8 --- /dev/null +++ b/src/data/example_instruction_train.json @@ -0,0 +1,8 @@ +[ + { + "content": "中华人民共和国最高人民法院 再 审 决 定 书(2022)最高法刑申136号 原审被告人张某某犯挪用资金罪和伪造、变造国家机关公文罪一案,山西省运城市盐湖区人民法院于2012年5月2日以(2012)运盐刑初字第69号刑事判决,认定张克云犯贪污罪,判处有期徒刑十二年,犯伪造、变造国家机关公文罪,判处有期徒刑三年,决定执行有期徒刑十三年。宣判后,张克云不服,提出上诉。山西省运城市中级人民法院于2012年11月12日以(2012)运中刑二终字第125号刑事裁定,驳回上诉,维持原判。裁判生效后,张克云不服,提出申诉。运城市中级人民法院于2013年1月7日以(2013)运中刑申字第3号驳回申诉通知,驳回其申诉。山西省高级人民法院于2017年7月13日以(2013)晋刑监字第8号再审决定,提审本案,并于2019年12月24日以(2017)晋刑再第2号刑事判决,认定张克云犯挪用资金罪,判处有期徒刑七年六个月,与原判伪造、变造国家机关公文罪被判处的有期徒刑三年数罪并罚,决定执行有期徒刑十年。张克云仍不服,以原审认定事实错误,其作为学校董事长、全资投资人有权决定学校相关款项用途,学校仍欠其债务,个人账户用于学校经费开支,没有挪用资金的动机和行为,不构成挪用资金罪等为由,向本院提出申诉。本院经审查认为,原审生效裁判对挪用资金罪定罪量刑的证据不确实、不充分,依法应当予以排除。依照《中华人民共和国刑事诉讼法》第二百五十三条第二项、第二百五十四条第二款、第二百五十五条的规定,决定如下:指令河南省高级人民法院对本案进行再审。二〇二二年十二月二十九日" + }, + { + "content":"中华人民共和国最高人民法院 驳 回 申 诉 通 知 书(2022)最高法刑申122号 袁某银、袁某财:你们因原审被告人袁德银故意伤害一案,对江苏省南京市溧水区人民法院(2014)溧刑初字第268号刑事判决、南京市中级人民法院(2015)宁刑终字第433号刑事裁定不服,以被害人朱宽荣住院期间的CT(136678号)报告并未显示其左侧4、5、6、7、8肋骨骨折,出院记录及137470号、143006号CT报告均系伪造,江苏省高级人民法院(2019)苏刑申172号驳回申诉通知书对137470号CT报告的形成时间认定错误为由,向本院提出申诉,请求撤销原判,依法重新审理本案。本院依法组成合议庭认真审查后认为,原审认定原审被告人袁德银因邻里纠纷,殴打被害人朱宽荣致其左胸多发肋骨骨折,构成轻伤二级,其行为构成故意伤害罪,并无不当。关于你们提出的原审认定被害人朱宽荣轻伤二级的证据系伪造的申诉理由。首先,根据你们提供的136678号CT报告,朱宽荣于2015年2月12日入院时经CT检查被诊断为左侧多发肋骨骨折,该份CT报告虽未明确骨折的具体位置,但与出院记录记载的“左侧多发肋骨骨折(4、5、6、7、8)”并不矛盾。根据《人体损伤程度鉴定标准》的规定,肋骨骨折2处以上即构成轻伤二级,故鉴定意见认定朱宽荣的损伤构成轻伤二级并无不当。其次,你们主张出院记录、137470号和143006号CT报告系伪造,但并未提供证据证实。即使排除这两份CT报告,也不影响对本案事实的认定。再次,我院对申诉进行复查的对象是已经发生法律效力的判决、裁定,本案的生效裁判是(2014)溧刑初字第268号刑事判决和(2015)宁刑终字第433号刑事裁定,江苏省高级人民法院作出的驳回申诉通知书不属于我院复查的范围。综上,本院认为,你们的申诉不符合《中华人民共和国刑事诉讼法》第二百五十三条规定的应当重新审判的情形,予以驳回。望你们尊重人民法院的生效裁判,自觉服判息诉。特此通知。二〇二二年十二月十四日" + } +] \ No newline at end of file diff --git a/src/data/example_instruction_tune.json b/src/data/example_instruction_tune.json new file mode 100644 index 0000000..f6db36f --- /dev/null +++ b/src/data/example_instruction_tune.json @@ -0,0 +1,10 @@ +[ + { + "instruction": "酒驾撞人要判多久?", + "input": "", + "output": "《刑法》第一百三十三条规定:违反交通运输管理法规,因而发生重大事故,致人重伤、死广或者使公私财产遭受重大损失的,处三年以下有期徒刑或者拘役;交通运输肇事后逃逸,致人重伤的,处三年以上七年以下有期徒刑。交通肇事后逃逸致人死亡的,处七年以上有期徒刑。" + }, + {"instruction":"偷狗被派出所抓到,会怎么处理?", + "input":"", + "output":"取决于偷盗的狗的价值,可能按盗窃罪的罪名处理。如果价值达到犯罪标准,就构成盗窃罪,要承担刑事责任;如果不到犯罪标准,就是治安处罚、罚款或者拘留治安处罚这会涉嫌构成盗窃。如果不到一千元,则不会构成犯罪。如果超过一千元,则可能会是构成犯罪的。"} +] \ No newline at end of file diff --git a/tools/generate_instructions_knowledge.py b/tools/generate_instructions_knowledge.py deleted file mode 100644 index d6ab5ad..0000000 --- a/tools/generate_instructions_knowledge.py +++ /dev/null @@ -1,50 +0,0 @@ -import argparse -import openai -import yaml -import random - - -def return_random_prompt(): - system_prompt = "你需要针对法条内容尽可能联想多样化的场景生成问答数据。我们将用于人工评估 ChatGPT 模型对指令的完成情况。要求:\n" - - # generate random tasks - system_prompt += "1. 结合真实问题,表述多样化。\n" - - # other requirements - system_prompt += "2. 如果遇到无法处理的指令(只靠文本无法回答),给出无法处理的回复。\n" - system_prompt += "3. 除非特别要求,请使用中文,指令可以是命令句、疑问句、或其他合适的类型。\n" - system_prompt += "4. :违反本法规定,对妇女实施性骚扰的,由公安机关给予批评教育或者出具告诫书,并由所在单位依法给予处分。\n学校、用人单位违反本法规定,未采取必要措施预防和制止性骚扰,造成妇女权益受到侵害或者社会影响恶劣的,由上级机关或者主管部门责令改正;拒不改正或者情节严重的,依法对直接负责的主管人员和其他直接责任人员给予处分。\n" - system_prompt += "5. 是结合法条内容联想到的真实场景下的问题。要求该场景下存在违法者和受害人\n" - system_prompt += "6. 是结合法条内容对该问题的适当且真实的回应,不能只回复答应或拒绝请求。尽可能地指明违法行为可能遭受的惩罚,并向受害者提出维权建议。\n\n" - system_prompt += "请给出满足条件的10条JSON格式数据:\n" - - return system_prompt - - -if __name__ == "__main__": - parser = argparse.ArgumentParser() - parser.add_argument('--cfg_path', default='../config.yaml', type=str) - parser.add_argument('--save_path', default='./output.json', type=str) - args = parser.parse_args() - - with open(args.cfg_path, 'r') as f: - cfg = yaml.load(f, Loader=yaml.FullLoader) - - openai.api_key = cfg['API_KEY'] - openai.api_base = cfg['API_BASE_URL'] - - output_file = open(args.save_path, 'w') - - # number of data to generate (each prompt contains 20 JSON-formatted data) - # TODO: 改成流式的,不然会中途断掉 - MAX_EPOCHS = 1 - for k in range(MAX_EPOCHS): - response = openai.ChatCompletion.create( - # here we use `gpt-3.5-turbo` model, while Stanford-Alpaca uses `text-davinci-003` - model="gpt-3.5-turbo", - messages=[ - {"role": "user", "content": return_random_prompt()}, - ] - ) - output_file.write(response["choices"][0]["message"]["content"] + '\n') - output_file.close() diff --git a/tools/generate_instructions_law.py b/tools/generate_instructions_law.py deleted file mode 100644 index cea28ce..0000000 --- a/tools/generate_instructions_law.py +++ /dev/null @@ -1,51 +0,0 @@ -import argparse -import openai -import yaml -import sys -import random - - -def return_random_prompt(): - system_prompt = "你需要针对输入尽可能给出多样化的任务指令和对应的回答。我们将用于人工评估ChatGPT模型对指令的完成情况。要求:\n" - - # generate random tasks - task_list = ["开放式生成", "分类", "问答", "编辑", "摘要", "写作", "分析", "抽取"] - system_prompt += "1. 表述多样化,结合真实问题;指令类型多样化,例如:" + "、".join(random.sample(task_list, 7)) + "等。\n" - - # other requirements - system_prompt += "2. 如果遇到无法处理的指令(只靠文本无法回答),给出无法处理的回复。\n" - system_prompt += "3. 除非特别要求,请使用中文,指令可以是命令句、疑问句、或其他合适的类型。\n" - system_prompt += "4. 是:'第十三条 一切危害国家主权、领土完整和安全,分裂国家、颠覆人民民主专政的政权和推翻社会主义制度,破坏社会秩序和经济秩序,侵犯国有财产或者劳动群众集体所有的财产,侵犯公民私人所有的财产,侵犯公民的人身权利、民主权利和其他权利,以及其他危害社会的行为,依照法律应当受刑罚处罚的,都是犯罪,但是情节显著轻微危害不大的,不认为是犯罪。'" - system_prompt += "5. 应该是对指令的适当且真实的回应,不能只回复答应或拒绝请求。如果需要额外信息才能回复时,请努力预测用户意图并尝试回复。的内容应少于" + str(random.randint(128, 512)) + "字。\n\n" - system_prompt += "请给出满足条件的20条JSON格式数据:\n" - - return system_prompt - - -if __name__ == "__main__": - parser = argparse.ArgumentParser() - parser.add_argument('--cfg_path', default='../config.yaml', type=str) - parser.add_argument('--save_path', default='./output.json', type=str) - args = parser.parse_args() - - with open(args.cfg_path, 'r') as f: - cfg = yaml.load(f, Loader=yaml.FullLoader) - - openai.api_key = cfg['API_KEY'] - openai.api_base = cfg['API_BASE_URL'] - - output_file = open(args.save_path, 'w') - - # number of data to generate (each prompt contains 20 JSON-formatted data) - # TODO: 改成流式的,不然会中途断掉 - MAX_EPOCHS = 1 - for k in range(MAX_EPOCHS): - response = openai.ChatCompletion.create( - # here we use `gpt-3.5-turbo` model, while Stanford-Alpaca uses `text-davinci-003` - model="gpt-3.5-turbo", - messages=[ - {"role": "user", "content": return_random_prompt()}, - ] - ) - output_file.write(response["choices"][0]["message"]["content"] + '\n') - output_file.close()