文本生成
根据提示生成文本。
如果您对聊天完成任务感兴趣,该任务会根据消息列表生成响应,请查看 chat-completion
任务。
有关 text-generation
任务的更多详细信息,请查看其 专用页面!您会找到示例和相关材料。
推荐的模型
- google/gemma-2-2b-it: 一个训练用于遵循指令的文本生成模型。
- bigcode/starcoder: 一个可以在 80 多种语言中生成代码的代码生成模型。
- meta-llama/Meta-Llama-3.1-8B-Instruct: 一个非常强大的文本生成模型,经过训练可以遵循指令。
- microsoft/Phi-3-mini-4k-instruct: 一个小巧但强大的文本生成模型。
- HuggingFaceH4/starchat2-15b-v0.1: 一个强大的编码助手模型。
- mistralai/Mistral-Nemo-Instruct-2407: 一个非常强大的开源大型语言模型。
探索所有可用的模型并找到最适合您的模型 这里。
使用 API
Python
JavaScript
cURL
import requests
API_URL = "https://api-inference.huggingface.co/models/google/gemma-2-2b-it"
headers = {"Authorization": "Bearer hf_***"}
def query(payload):
response = requests.post(API_URL, headers=headers, json=payload)
return response.json()
output = query({
"inputs": "Can you please let us know more details about your ",
})
要使用 Python 客户端,请查看 huggingface_hub
的 软件包参考。
API 规范
请求
有效负载 | ||
---|---|---|
inputs* | 字符串 | |
parameters | 对象 | |
adapter_id | 字符串 | Lora 适配器 ID |
best_of | 整数 | 生成 best_of 序列并返回具有最高令牌 logprob 的序列。 |
decoder_input_details | 布尔值 | 是否返回解码器输入令牌 logprob 和 ID。 |
details | 布尔值 | 是否返回生成细节。 |
do_sample | 布尔值 | 激活 logits 抽样。 |
frequency_penalty | 数字 | 频率惩罚参数。1.0 表示无惩罚,根据新词在文本中出现的频率对新词进行惩罚,降低模型重复相同行的可能性。 |
grammar | 未知 | 以下之一 |
(#1) | 对象 | |
type* | 枚举 | 可能的值:json。 |
value* | 未知 | 一个表示 JSON Schema 的字符串。JSON Schema 是一种声明式语言,允许使用类型和描述对 JSON 文档进行注释。 |
(#2) | 对象 | |
type* | 枚举 | 可能的值:regex。 |
value* | 字符串 | |
max_new_tokens | 整数 | 要生成的 token 的最大数量。 |
repetition_penalty | 数字 | 重复惩罚参数。1.0 表示无惩罚。有关更多详细信息,请参阅 这篇论文。 |
return_full_text | 布尔值 | 是否将提示附加到生成的文本之前。 |
seed | 整数 | 随机采样种子。 |
stop | string[] | 如果生成了 stop 的成员,则停止生成 token。 |
temperature | 数字 | 用于模块 logits 分布的值。 |
top_k | 整数 | 要保留用于 top-k 过滤的最高概率词汇 token 的数量。 |
top_n_tokens | 整数 | 要保留用于 top-n 过滤的最高概率词汇 token 的数量。 |
top_p | 数字 | 用于核抽样的 top-p 值。 |
truncate | 整数 | 将输入 token 截断到给定的大小。 |
typical_p | 数字 | 典型解码质量,有关更多信息,请参阅 自然语言生成中的典型解码。 |
watermark | 布尔值 | 使用 大型语言模型的水印 进行水印处理。 |
stream | 布尔值 |
一些选项可以通过向推理 API 传递标头进行配置。以下是可用的标头
标头 | ||
---|---|---|
authorization | 字符串 | 当 hf_**** 是具有推理 API 权限的个人用户访问令牌时,身份验证标头以 'Bearer: hf_****' 的形式出现。您可以在 设置页面 生成一个。 |
x-use-cache | 布尔值,默认为 true | 推理 API 上有一个缓存层,用于加速我们已经见过的请求。大多数模型可以使用这些结果,因为它们是确定性的(这意味着输出无论如何都是相同的)。但是,如果您使用的是非确定性模型,则可以将此参数设置为阻止使用缓存机制,从而导致真正的新的查询。阅读更多关于缓存 的信息。 |
x-wait-for-model | 布尔值,默认为 false | 如果模型未准备好,则等待它,而不是接收 503。它限制了完成推理所需的请求数量。建议仅在收到 503 错误后才将此标志设置为 true,因为它会将应用程序中的挂起限制在已知位置。阅读更多关于模型可用性 的信息。 |
有关推理 API 标头的更多信息,请查看参数 指南。
响应
输出类型取决于 stream
输入参数。如果 stream
为 false
(默认值),则响应将是一个 JSON 对象,其中包含以下字段
主体 | ||
---|---|---|
details | 对象 | |
best_of_sequences | object[] | |
finish_reason | 枚举 | 可能的值:length,eos_token,stop_sequence。 |
generated_text | 字符串 | |
generated_tokens | 整数 | |
prefill | object[] | |
id | 整数 | |
logprob | 数字 | |
text | 字符串 | |
seed | 整数 | |
tokens | object[] | |
id | 整数 | |
logprob | 数字 | |
special | 布尔值 | |
text | 字符串 | |
top_tokens | array[] | |
id | 整数 | |
logprob | 数字 | |
special | 布尔值 | |
text | 字符串 | |
finish_reason | 枚举 | 可能的值:length,eos_token,stop_sequence。 |
generated_tokens | 整数 | |
prefill | object[] | |
id | 整数 | |
logprob | 数字 | |
text | 字符串 | |
seed | 整数 | |
tokens | object[] | |
id | 整数 | |
logprob | 数字 | |
special | 布尔值 | |
text | 字符串 | |
top_tokens | array[] | |
id | 整数 | |
logprob | 数字 | |
special | 布尔值 | |
text | 字符串 | |
generated_text | 字符串 |
如果 stream
为 true
,则生成的 token 将作为流返回,使用服务器发送事件 (SSE)。有关流的更多信息,请查看 本指南。
主体 | ||
---|---|---|
details | 对象 | |
finish_reason | 枚举 | 可能的值:length,eos_token,stop_sequence。 |
generated_tokens | 整数 | |
input_length | 整数 | |
seed | 整数 | |
generated_text | 字符串 | |
索引 | 整数 | |
token | 对象 | |
id | 整数 | |
logprob | 数字 | |
special | 布尔值 | |
text | 字符串 | |
top_tokens | object[] | |
id | 整数 | |
logprob | 数字 | |
special | 布尔值 | |
text | 字符串 |