文本生成
Outlines 提供了一个统一的接口,用于使用多种语言模型(基于 API 和本地)生成文本。整个库中都使用了相同的模式。
- 通过调用
outlines.generate.text
并传入要使用的模型来实例化生成器。 - 调用生成器,传入提示词和(可选)一些生成参数。
from outlines import models, generate
model = models.openai("gpt-4o-mini")
generator = generate.text(model)
answer = generator("What is 2+2?")
model = models.transformers("microsoft/Phi-3-mini-4k-instruct")
generator = generate.text(model)
answer = generator("What is 2+2?")
默认情况下,Outlines 使用多项式采样器,temperature=1
。请参阅 本节 了解如何使用不同的采样器。
流式传输
Outlines 允许你通过调用生成器的 .stream
方法并传入提示词来流式传输模型的响应。
from outlines import models, generate
model = models.transformers("microsoft/Phi-3-mini-4k-instruct")
generator = generate.text(model)
tokens = generator.stream("What is 2+2?")
for token in tokens:
print(token)
参数
限制生成的 token 数量
要限制生成的 token 数量,你可以将 max_tokens
位置参数传递给生成器。
from outlines import models, generate
model = models.transformers("microsoft/Phi-3-mini-4k-instruct")
generator = generate.text(model)
answer = generator("What is 2+2?", 5)
answer = generator("What is 2+2?", max_tokens=5)
在生成特定字符串后停止
你还可以要求模型在生成特定字符串后停止生成文本,例如句号或换行符。你可以为 stop_at
参数传入一个字符串或字符串列表。
from outlines import models, generate
model = models.transformers("microsoft/Phi-3-mini-4k-instruct")
generator = generate.text(model)
answer = generator("What is 2+2?", stop_at=".")
answer = generator("What is 2+2?", stop_at=[".", "\n"])
停止字符串将包含在响应中。
设置生成种子
为了获得可重现的结果,设置生成种子可能会很有用。