pipeline如何设置temperature、top_p参数?
我看过代码,在调用pipe(inputs)
时,将参数写入inputs即可。目前支持这些参数:do_sample\temperature\max_length\num_beams\top_p\logits_processor
举个例子,如果不用sample,想用greedy search:
inputs = {'text':'请写一首五言绝句。', 'history': [], 'do_sample':False}
print(pipe(inputs))
这样生成的内容就每次一样了。
建议模型提供方、平台方完善模型文档说明,尤其要说明设置参数这样的基本操作,提高ModelScope平台的易用性。
在使用pipeline时,可以通过设置temperature和top_p参数来控制生成文本的多样性和质量。下面是一些说明和示例代码:
temperature参数
temperature参数控制生成文本的多样性。较高的温度将导致更多的随机性和多样性,而较低的温度则会导致更少的随机性和更加准确的预测。
以下是一个示例代码,使用较低的温度生成文本:
python
Copy
from transformers import pipeline
generator = pipeline('text-generation', model='gpt2')
output = generator('The quick brown fox', temperature=0.5)
print(output[0]['generated_text'])
在上述代码中,temperature参数设为0.5,可以产生相对保守的预测结果。
top_p参数
top_p参数控制生成文本的质量。它表示生成文本中最有可能出现的token的累计概率,如果累计概率超过了top_p,则该token将被视为无效。较高的top_p将导致更准确的预测和更高的质量,而较低的top_p则会导致更多的随机性和更多的错误。
以下是一个示例代码,使用较高的top_p生成文本:
python
Copy
from transformers import pipeline
generator = pipeline('text-generation', model='gpt2')
output = generator('The quick brown fox', top_p=0.9)
print(output[0]['generated_text'])
在上述代码中,top_p参数设为0.9,可以产生相对高质量的预测结果。