我有一个关于 GPT-3 的问题。正如我们所知,我们可以给网络提供一些例子并“调整”模型。
import openai
class Example():
"""Stores an input, output pair and formats it to prime the model."""
def __init__(self, inp, out):
self.input = inp
self.output = out
def get_input(self):
"""Returns the input of the example."""
return self.input
def get_output(self):
"""Returns the intended output of the example."""
return self.output
def format(self):
"""Formats the input, output pair."""
return f"input: {self.input}\noutput: {self.output}\n"
class GPT:
"""The main class for a user to interface with the OpenAI API.
A user can add examples and set parameters of the API request."""
def __init__(self, engine='davinci',
temperature=0.5,
max_tokens=100):
self.examples = []
self.engine = engine
self.temperature = temperature
self.max_tokens = max_tokens
def add_example(self, ex):
"""Adds an example to the object. Example must be an instance
of the Example class."""
assert isinstance(ex, Example), "Please create an Example object."
self.examples.append(ex.format())
Run Code Online (Sandbox Code Playgroud)
现在,当我对模型使用“给出”示例时,我有以下代码:
gpt2 = GPT(engine="davinci", temperature=0.5, max_tokens=100)
gpt2.add_example(Example('Two plus two equals four', '2 + 2 = 4'))
gpt2.add_example(Example('The integral from zero to infinity', '\\int_0^{\\infty}'))
prompt1 = "x squared plus y squared plus equals z squared"
output1 = gpt2.submit_request(prompt1)
Run Code Online (Sandbox Code Playgroud)
但是,我无法保存这个“预先训练的”API。每次我都必须重新训练它 - 有什么方法可以重用它吗?
每次我都必须重新训练它 - 有什么方法可以重用它吗?
不,没有任何方法可以重复使用它。您混淆了术语:您不需要训练 GPT-3,您需要将示例传递给提示符。由于您没有任何类型的容器可以存储以前的结果(从而“训练”您的模型),因此每次都需要传递包括您的任务的示例。
完善工程流程(从而降低每个请求的成本)是一个困难的过程,需要很长时间进行反复试验。
不过说实话:即使每次都通过示例,GPT-3 仍然极具成本效益。根据您的具体情况,您(平均)只需花费几百代币即可完成达芬奇的复杂任务。
| 归档时间: |
|
| 查看次数: |
886 次 |
| 最近记录: |