Created
Aug 19, 2024 12:48 AM
Favorite
Favorite
Priority
备注
推荐
类型
notion image

前言

在使用大模型进行信息抽取任务时,如何使得大模型的输出结果更加可控、稳定(输出稳定的json等)非常重要,这关系到抽取的数据后期开发使用。常见的方法有:
  • 微调法:微调大模型输出稳定格式的结果(json等)
  • few-shot法:通过在prompt中告知大模型几个示例,要求大模型输出相似的格式
但是,尽管如此,在实际操作过程中,仍然会面对着输出不稳定的情况,那么,经常采用的方法就是对输出的结果进行校验,如:要求输出json时,常校验json是否合理。校验失败时,常对大模型进行重复请求多次,以此达到输出结构化的格式。
下面,介绍一个输出控制的工具-outlines并通过一个招聘领域(简历信息抽取并json结构化)的小demo,介绍下使用方法

一、实践

直接上demo代码、用法
安装:

1. 简历文本(输入)

2. schema定义

该步骤主要定义需要从简历中抽取的实体类型及能够被outlines接收的schema结构。

3. LLM信息抽取完整代码

4. 输出json结构化结果

二、其他格式控制案例

Multiple choices

Type constraint

Efficient regex-structured generation

Efficient JSON generation following a Pydantic model

Efficient JSON generation following a JSON Schema

Using context-free grammars to guide generation

Open functions

Prompting

总结

本文介绍了大模型输出结构控制的技巧工具-outlines,并通过一个简历信息抽取的实践demo,验证其有效性。还简单记录了一些其他格式控制的代码。

参考文献

https://github.com/outlines-dev/outlines

往期相关

自然语言处理57
大语言模型28
信息抽取10
自然语言处理 · 目录
上一篇【RAG】GraphRAG开源:查询聚焦摘要的图RAG方法下一篇
Loading...