Promptify
Prompt工程,使用LLM解决NLP问题,并通过Promptify轻松为流行的生成模型(如GPT、PaLM等)生成不同的NLP任务提示。
安装
使用pip
该仓库已在Python 3.7+,openai 0.25+上测试通过。
你可以使用Pip命令安装Promptify
pip3 install promptify
或者
pip3 install git+https://github.com/promptslab/Promptify.git
快速体验
为了立即使用LLM模型执行你的NLP任务,我们提供了Pipeline
API。
from promptify import Prompter,OpenAI, Pipeline
sentence = """The patient is a 93-year-old female with a medical
history of chronic right hip pain, osteoporosis,
hypertension, depression, and chronic atrial
fibrillation admitted for evaluation and management
of severe nausea and vomiting and urinary tract
infection"""
model = OpenAI(api_key) # 或者使用 `HubModel()` 进行基于Huggingface的推理,或使用 'Azure' 等
prompter = Prompter('ner.jinja') # 选择一个模板或提供自定义模板
pipe = Pipeline(prompter , model)
result = pipe.fit(sentence, domain="medical", labels=None)
### 输出
[
{"E": "93-year-old", "T": "Age"},
{"E": "chronic right hip pain", "T": "Medical Condition"},
{"E": "osteoporosis", "T": "Medical Condition"},
{"E": "hypertension", "T": "Medical Condition"},
{"E": "depression", "T": "Medical Condition"},
{"E": "chronic atrial fibrillation", "T": "Medical Condition"},
{"E": "severe nausea and vomiting", "T": "Symptom"},
{"E": "urinary tract infection", "T": "Medical Condition"},
{"Branch": "Internal Medicine", "Group": "Geriatrics"},
]
使用GPT-3进行NER、多标签、问题生成任务的示例
功能 🎮
- 只需两行代码即可执行NLP任务(如NER和分类),无需训练数据
- 轻松添加一次、两次或少量示例到提示中
- 处理来自LLMS(GPT、t5等)的越界预测
- 输出始终以Python对象(如列表、字典)的形式提供,便于解析和过滤。这相比于LLM生成的非结构化和原始输出具有重大优势,因为后者难以在业务或其他应用中使用。
- 可以轻松将自定义示例和样本添加到提示中
- 🤗 在Huggingface Hub上运行存储的任何模型的推理(参见notebook指南)。
- 优化提示以减少OpenAI的token成本(即将推出)
支持广泛的基于Prompt的NLP任务:
任务名称 | Colab Notebook | 状态 |
---|---|---|
命名实体识别 | 使用GPT-3的NER示例 | ✅ |
多标签文本分类 | 使用GPT-3的分类示例 | ✅ |
多类别文本分类 | 使用GPT-3的分类示例 | ✅ |
二元文本分类 | 使用GPT-3的分类示例 | ✅ |
问答任务 | 使用GPT-3的QA任务示例 | ✅ |
问题-答案生成 | 使用GPT-3的QA任务示例 | ✅ |
关系抽取 | 使用GPT-3的关系抽取示例 | ✅ |
摘要生成 | 使用GPT-3的摘要任务示例 | ✅ |
解释 | 使用GPT-3的解释任务示例 | ✅ |
SQL编写 | 使用GPT-3的SQL编写示例 | ✅ |
表格数据 | ||
图像数据 | ||
更多提示 |
文档
社区
如果你对Prompt工程、LLMs、ChatGPT以及其他最新的研究讨论感兴趣,请考虑加入PromptsLab
@misc{Promptify2022,
title = {Promptify: 从LLMs获取结构化输出},
author = {Pal, Ankit},
year = {2022},
howpublished = {\url{https://github.com/promptslab/Promptify}},
note = {用于Python中NLP任务的Prompt工程组件}
}
💁 贡献
我们欢迎对我们的开源