我使用以下代码获取最有可能替换蒙面词的代码:
!pip install git+https://github.com/huggingface/transformers.git
import torch
import pandas as pd
from transformers import AutoModelForMaskedLM, AutoTokenizer, pipeline
unmasker = pipeline('fill-mask', model='bert-base-uncased', top_k=100)
tokenizer = AutoTokenizer.from_pretrained('bert-base-uncased')
model = AutoModelForMaskedLM.from_pretrained('bert-base-uncased')
results = unmasker(f"The sun is [MASK].")
for i in results:
print(i["token_str"], i["score"]*100)例如,在“太阳面具”序列中,最有可能替代“掩码”的是“太阳掩模”。“上升”(33.61%)、“发光”(9.33%)和“上升”(7.38%)。
我的问题:GPT-3有实现同样的方法吗?在OpenAI操场上有一个“完全”和“插入”预设,然而,它给了我完整的句子(而不是单个单词),并且没有概率。有人能帮忙吗?
发布于 2022-08-16 09:08:10
首先,我认为您无法访问属性,如令牌或GPT-3中的分数,您所拥有的只是生成的文本。
其次,在我的经验中,GPT-3完全是关于正确的提示。你只需要给它指示就像你在和人说话一样。
在您的具体情况下,我将使用如下提示符:
迅速:
太阳是面具。
用最可能的5个字替换面具,并给我他们的概率。
结果:
,太阳在照耀。
0.10
G 215
如果您想以编程方式这样做,下面是代码:
import openai
openai.organization = "your org key, if you have one"
openai.api_key = "you api key"
openai.Engine.list()
my_prompt = '''The sun is [MASK].
Replace [MASK] with the most probable 5 words to replace, and give me their probabilities.'''
# Here set parameters as you like
response = openai.Completion.create(
engine="text-davinci-002",
prompt=my_prompt,
temperature=0,
max_tokens=500,
# top_p=1,
# frequency_penalty=0.0,
# presence_penalty=0.0,
# stop=["\n"]
)
print(response['choices'][0]['text'])https://stackoverflow.com/questions/73370817
复制相似问题