如何使用 `llama-cpp-python` 输出候选标记列表及其概率?

问题描述 投票:0回答:1

我想自己手动选择我的代币,而不是让

llama-cpp-python
自动为我选择一个。

这要求我查看候选下一个标记的列表以及它们的概率,以便我根据我的标准选择正确的标记。

如何做到这一点?

large-language-model llama-cpp-python llamacpp
1个回答
0
投票

您需要使用

logits_all=True

创建模型

model = Llama(model_path="your model here", logits_all=True)

然后使用一个最大令牌和您需要的 logprobs 数量来请求完成

out = model.create_completion("The capital of France is", max_tokens=1, logprobs=10)

然后

out["choices"][0]["logprobs"]["top_logprobs"][0]
看起来像这样

{' Paris': np.float32(-0.531455),
  ' not': np.float32(-2.7322779),
  ' located': np.float32(-3.029975),
  ' the': np.float32(-3.4100742),
  ' a': np.float32(-3.6376095),
  ' also': np.float32(-4.1634436),
  ' actually': np.float32(-4.2124586),
  '...': np.float32(-4.279561),
  ' in': np.float32(-4.5441475),
  ' officially': np.float32(-4.6838427)}

您可以使用 np.exp() 将 logprobs 转换为概率。

© www.soinside.com 2019 - 2024. All rights reserved.