跳到内容

模型

Outlines 支持使用多种推理引擎(outlines.models)进行生成。使用 Outlines 加载模型时,不同推理引擎遵循相似的接口。

import outlines

model = outlines.models.transformers("microsoft/Phi-3-mini-128k-instruct")
model = outlines.models.transformers_vision("llava-hf/llava-v1.6-mistral-7b-hf")
model = outlines.models.vllm("microsoft/Phi-3-mini-128k-instruct")
model = outlines.models.llamacpp(
    "microsoft/Phi-3-mini-4k-instruct-gguf", "Phi-3-mini-4k-instruct-q4.gguf"
)
model = outlines.models.exllamav2("bartowski/Phi-3-mini-128k-instruct-exl2")
model = outlines.models.mlxlm("mlx-community/Phi-3-mini-4k-instruct-4bit")

model = outlines.models.openai(
    "gpt-4o-mini",
    api_key=os.environ["OPENAI_API_KEY"]
)

功能矩阵

Transformers Transformers Vision vLLM llama.cpp ExLlamaV2 MLXLM OpenAI*
设备
Cuda 不适用
Apple Silicon 不适用
x86 / AMD64 不适用
采样
贪婪采样 ✅*
多项式采样
多样本
Beam Search
生成
批量 ?
流式 ?
文本
结构化
JSON Schema
选择
Regex
语法

注意事项

  • 由于其 API 和服务器实现的限制,OpenAI 不支持结构化生成。
  • outlines.generate 的“结构化”方法包括 outlines.generate.regexoutlines.generate.jsonoutlines.generate.cfg 等。
  • MLXLM 仅支持 Apple Silicon。
  • llama.cpp 的贪婪采样可通过设置多项式采样的 temperature = 0.0 来实现。