HuggingFace
promptfoo 支持 HuggingFace Inference API,用于文本生成、分类和嵌入相关任务。
要运行模型,请指定任务类型和模型名称。支持的模型包括:
huggingface:text-generation:<模型名称>
huggingface:text-classification:<模型名称>
huggingface:token-classification:<模型名称>
huggingface:feature-extraction:<模型名称>
huggingface:sentence-similarity:<模型名称>
示例
例如,使用 GPT-2 进行自动补全:
huggingface:text-generation:gpt2
使用 Mistral 生成文本:
huggingface:text-generation:mistralai/Mistral-7B-v0.1
使用 sentence-transformers
进行嵌入相似度计算:
# 模型支持句子相似度 API
huggingface:sentence-similarity:sentence-transformers/all-MiniLM-L6-v2
# 模型支持特征提取 API
huggingface:feature-extraction:sentence-transformers/paraphrase-xlm-r-multilingual-v1
配置
支持以下常见的 HuggingFace 配置参数:
参数 | 类型 | 描述 |
---|---|---|
top_k | 数字 | 通过 top-k 采样策略控制多样性。 |
top_p | 数字 | 通过核采样控制多样性。 |
temperature | 数字 | 控制生成中的随机性。 |
repetition_penalty | 数字 | 重复惩罚。 |
max_new_tokens | 数字 | 要生成的最大新标记数。 |
max_time | 数字 | 模型响应的最大时间(秒)。 |
return_full_text | 布尔值 | 是否返回完整文本或仅返回新文本。 |
num_return_sequences | 数字 | 要返回的序列数量。 |
do_sample | 布尔值 | 是否对输出进行采样。 |
use_cache | 布尔值 | 是否使用缓存。 |
wait_for_model | 布尔值 | 是否等待模型准备就绪。这对于解决“模型当前正在加载”错误很有用 |
此外,config
对象上的任何其他键都会直接传递给 HuggingFace。请确保检查您使用的模型支持的特定参数。
该提供程序还支持以下内置的 promptfoo 参数:
参数 | 类型 | 描述 |
---|---|---|
apiKey | 字符串 | 您的 HuggingFace API 密钥。 |
apiEndpoint | 字符串 | 模型的自定义 API 端点。 |
支持的环境变量:
HF_API_TOKEN
- 您的 HuggingFace API 密钥
该提供程序可以将配置参数传递给 API。请参阅 文本生成参数 和 特征提取参数。
以下是该提供程序可能出现在您的 promptfoo 配置中的示例:
providers:
- id: huggingface:text-generation:mistralai/Mistral-7B-v0.1
config:
temperature: 0.1
max_length: 1024
推理端点
HuggingFace 提供了付费的私有托管推理端点。首先,前往 创建新端点 并选择模型和托管设置。
端点创建后,获取页面显示的 端点 URL
:
然后像这样设置您的 promptfoo 配置:
description: 'HF 私有推理端点'
prompts:
- '写一条关于{{topic}}的推文:'
providers:
- id: huggingface:text-generation:gemma-7b-it
config:
apiEndpoint: https://v9igsezez4ei3cq4.us-east-1.aws.endpoints.huggingface.cloud
# apiKey: abc123 # 或者设置 HF_API_TOKEN 环境变量
tests:
- vars:
topic: 香蕉
- vars:
topic: 土豆
本地推理
如果你在本地运行 Huggingface 文本生成推理 服务器,请覆盖 apiEndpoint
:
providers:
- id: huggingface:text-generation:my-local-model
config:
apiEndpoint: http://127.0.0.1:8080/generate