如何在GPT-3上保存预先培训的API?

zqdjd7g9  于 2023-03-03  发布在  其他
关注(0)|答案(2)|浏览(205)

我有一个关于GPT-3的问题。我们知道我们可以给予网络一些例子,并“调整”模型。
1.向模型展示示例。
1.保存这些示例。
1.重用API。

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。每次我都要重新训练它-有没有办法重用它?

plicqrtu

plicqrtu1#

每次我都要重新训练它--有没有办法再利用它?
不,没有任何方法可以重用它。您混淆了术语:你不需要训练GPT-3,你需要把例子传递到提示符中,因为你没有任何类型的容器来存储以前的结果(从而“训练”你的模型),所以每次都需要传递包括你的任务在内的例子。
完善工程流程(从而降低每个请求的成本)是一个困难的过程,需要长时间的反复试验。
不过说实话即使每次都通过示例,GPT-3也是极其划算的。根据您的具体情况,您(平均)只需要花费几百个令牌就可以用达芬奇完成一个复杂的完成。

6jygbczu

6jygbczu2#

您需要微调模型。请参考以下内容:https://beta.openai.com/docs/guides/fine-tuning
但步骤是:
1-安装openai cli
2-准备培训文件
3-选择一个现有的基本模型来使用此训练数据集进行优化
4-称之为调优模型

相关问题