Promptify 项目介绍
项目概述
Promptify 是一个致力于简化自然语言处理(NLP)任务的项目。它通过使用大语言模型(LLM),如GPT系列和PaLM,帮助用户轻松生成适用于各种流行生成模型的不同NLP任务的提示。Promptify 提供了一种简单高效的方式来解决NLP问题,使其广泛的用户群体能够更好地利用这些先进的语言模型。
主要特性
- 简洁易用: 用户只需两行代码即可执行NLP任务,比如命名实体识别(NER)和分类,且不需要准备训练数据。
- 灵活的提示输入: 可以轻松添加单个、两个或多个示例到提示中,以增强模型的响应精度。
- 灵活处理: 处理LLMs(如GPT、T5等)可能出现的预测超出范围的问题。
- 结构化输出: 输出始终是易于解析和过滤的Python对象,如列表或字典。这在业务应用中有重大优势,相比于LLMs生成的非结构化原始输出。
- 自定义支持: 用户可以轻松自定义示例和样本到提示中。
- Huggingface模型支持: 能在任何存储于Huggingface Hub的模型上运行推理操作。
- 优化功能: 正在开发优化的提示以减少OpenAI的token成本。
支持的NLP任务
Promptify 项目支持广泛的基于提示的NLP任务,这些任务包括:
- 命名实体识别(NER)
- 多标签文本分类
- 多类文本分类
- 二分类文本分类
- 问答任务
- 问题生成
- 关系提取
- 文本摘要
- 解释任务
- SQL写作
- 表格数据处理
- 图像数据处理
快速使用指南
要立即使用LLM模型进行NLP任务,Promptify提供了一个"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..."""
model = OpenAI(api_key) # 可选择‘HubModel()’用于Huggingface基础上的推理,或使用'Azure'等
prompter = Prompter('ner.jinja') # 选择一个模板或提供自定义模板
pipe = Pipeline(prompter, model)
result = pipe.fit(sentence, domain="medical", labels=None)
该代码演示了如何通过Promptify执行命名实体识别任务,得到的结果会以结构化的形式输出,包括多种实体类别,如年龄、症状和医疗状况等信息。
安装方法
用户可以通过以下命令快速安装Promptify:
pip3 install promptify
或
pip3 install git+https://github.com/promptslab/Promptify.git
参与及社区
Promptify 欢迎社区成员贡献新的特性、改进基础设施以及撰写更详尽的文档。如果对即时适应和优化提示工程感兴趣,建议加入他们的Discord社区,与同行在Promptify的持续开发中互动和学习。