如何在 GPT-3 上保存预训练的 API?
How to save pre-trained API on GPT-3?
我有一个关于 GPT-3 的问题。正如我们所知,我们可以为网络提供一些示例并“调整”模型。
- 向模型展示示例。
- 保存这些示例。
- 重复使用 APIs。
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())
现在,当我对模型使用“给”示例时,我有以下代码:
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)
但是,我无法保存这个“预训练”API。每次我必须重新训练它 - 有什么方法可以重用它吗?
Every time I have to retrain it - is there any way to reuse it?
不,没有任何方法可以重复使用它。您混淆了术语:您不需要训练 GPT-3,您需要将示例传递给提示。由于您没有任何类型的容器可以存储以前的结果(从而“训练”您的模型),因此每次都需要传递包含您的任务的示例。
完善工程流程(从而降低每个请求的成本)是一个困难的过程,需要很长时间反复试验。
老实说:即使每次都通过示例,GPT-3 的成本效益也非常高。根据您的具体情况,您(平均)只需花费几百个代币即可使用 Davinci 完成一个复杂的任务。
我有一个关于 GPT-3 的问题。正如我们所知,我们可以为网络提供一些示例并“调整”模型。
- 向模型展示示例。
- 保存这些示例。
- 重复使用 APIs。
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())
现在,当我对模型使用“给”示例时,我有以下代码:
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)
但是,我无法保存这个“预训练”API。每次我必须重新训练它 - 有什么方法可以重用它吗?
Every time I have to retrain it - is there any way to reuse it?
不,没有任何方法可以重复使用它。您混淆了术语:您不需要训练 GPT-3,您需要将示例传递给提示。由于您没有任何类型的容器可以存储以前的结果(从而“训练”您的模型),因此每次都需要传递包含您的任务的示例。
完善工程流程(从而降低每个请求的成本)是一个困难的过程,需要很长时间反复试验。
老实说:即使每次都通过示例,GPT-3 的成本效益也非常高。根据您的具体情况,您(平均)只需花费几百个代币即可使用 Davinci 完成一个复杂的任务。