schumanng/prompt-based-detection-of-contradictions-and-inconsistencies
GitHub: schumanng/prompt-based-detection-of-contradictions-and-inconsistencies
基于 prompt 工程的监管法规文本矛盾与不一致性自动检测框架,支持多模型和多语言对比实验。
Stars: 0 | Forks: 0
# 句子对分类
作为监督方法的替代方案,本项目包含三个基于 prompt 的分类器,用于检测监管法规句子之间的矛盾和不一致。随附的论文可以在[这里](https://scholarspace.manoa.hawaii.edu/server/api/core/bitstreams/5b99bd69-e789-4864-9cd8-4fe3d912b55a/content)找到。关于所使用的[数据](https://github.com/schumanng/contradictions_inconsistencies)的收集、预处理和标注的描述,在论文[Detection of Contradictions and Inconsistencies in German Regulatory Documents](https://ieeexplore.ieee.org/abstract/document/10692679?casa_token=XZbIx1qqiCUAAAAA:T2CxqFoLAvT6902_9aU3EEdSAFfRsHQPDgryu_HORDXIRk8x7w4X8lozdjaxJc_wDlojc5Wlv7cd4w)中有详细说明。
脚本 'run_ollama_classification.py' 会针对多个模型和多个 prompt 变体,对已标注的句子对进行评估。
# 项目目的
给定两个句子,模型会将它们的关系分类为预定义的标签:
- 矛盾
- 不一致
- 中立
- 不相关
该框架支持:
- 多个 Ollama 模型
- 多个 prompt 变体
- 英语和德语数据集
- 自动将结果导出为 CSV
- 记录长时间运行实验的日志
# 项目结构
```
project/
├── data/
│ ├── English/
│ │ └── annotated_regulatory_sentences_english.csv
│ └── German/
│ └── annotated_regulatory_sentences_german.csv
│
├── prompts/
│ ├── English/
│ │ ├── prompt_variant_1.txt
│ │ ├── prompt_variant_2.txt
│ │ └── prompt_variant_3.txt
│ │
│ └── German/
│ ├── prompt_variant_1.txt
│ ├── prompt_variant_2.txt
│ └── prompt_variant_3.txt
│
├── run_ollama_classification.py
└── README.md
```
# 环境要求
安装 Python 包:
```
pip install pandas ollama
```
安装并运行 Ollama:
https://ollama.com/download
确保所需的模型在本地可用。
示例:
```
ollama pull llama3.3:70b-instruct-fp16
```
# 支持的语言
该脚本目前支持:
- 英语
- 德语
语言选择决定了:
- 加载哪个数据集
- 使用哪个 prompt 文件夹
- 结果存储在哪里
- 日志写入到哪里
# 如何运行
## 英语实验
```
python run_ollama_classification.py --language English
```
## 德语实验
```
python run_ollama_classification.py --language German
```
# 输出文件
对于每个模型和 prompt 的组合,都会创建一个 CSV 文件。
示例:
```
English__llama3.1_8b-instruct-fp16__prompt_variant_1__predictions.csv
```
每个 CSV 包含:
- sentence1
- sentence2
- gold_label
- prediction
- model
- prompt
- language
- is_correct
# 配置
所有主要设置均可在 `run_ollama_classification.py` 文件的 CONFIG 字典中进行调整。
示例:
- 要测试的模型
- prompt 文件
- 上下文窗口 (num_ctx)
- GPU 可见性
- CSV 分隔符
# 注意事项
- 执行前必须运行 Ollama。
- 根据数据集大小和模型的不同,长时间运行的实验可能需要数小时。
- 运行期间会定期保存中间结果。
- 结果具有非确定性。
- 仅供研究目的使用。
标签:AI风险缓解, Apex, DLL 劫持, LLM评估, NLP, Ollama, Python, 二分类/多分类, 信息抽取, 句子对分类, 合规文件分析, 大语言模型, 密钥管理, 德语数据集, 数据不一致性, 文本分析, 文本分类, 无后门, 本地大模型部署, 机器学习, 监管合规, 监管科技, 矛盾检测, 英语数据集, 逆向工具