ChatGPT的模型介绍及GO语言实现API

ChatGPT除了大家熟悉的GPT3之外,还有其他辅助模型,比如处理代码的以及有害信息过滤的系统。总的来说是下面三个组成:

GPT-3:一组能够理解和生成自然语言的模型

CodexLimited beta:一组可以理解和生成代码的模型,包括将自然语言转换为代码

Content filter:内容过滤器是一种经过微调的模型,可以检测文本是否敏感或不安全

四个模型的擅长点

我们前面介绍访问API的时候,使用的模型是text-davinci-003(达芬奇模型)

这个模型的功能是目前最强大的GPT-3模型。可以做任何其他模型可以做的任务,通常具有更高的质量,更长的输出和更好的指令遵循。还支持在文本中插入补全。也是目前最新的,数据集的更新时间是2021年6月份的,其最大请求是4,000 tokens,接下来介绍的模型都只有2,048 tokens。

GPT-3提供四种不同级别的主要型号,适用于不同的任务。上面介绍的达芬奇是最有能力的模型,阿达是最快的,其余三个模型如下:

text-curie-001(居里夫人模型):居里夫人是伟大的物理学家和化学家。此模型也是能力非常强大的,仅次于达芬奇,但速度要比达芬奇更快,成本更低。

text-babbage-001(巴贝奇模型):巴贝奇是计算机之父。此模型能够直接完成任务,非常快,成本更低。

text-ada-001(阿达模型):阿达是计算机程序创始人。此模型能够完成非常简单的任务,通常是GPT-3系列中速度最快的型号,成本最低。

虽然达芬奇是目前最有能力的,但其他模型可以以显著的速度或成本优势非常好地执行某些任务。例如,居里夫人可以完成许多与达芬奇相同的任务,但速度更快,成本只有达芬奇的十分之一。

它们的具体擅长领域如下:

text-davinci-003:了解复杂的意图,因果关系,这个参数也是最多的,训练也是最耗时,同时达到的效果是最好的,疑难杂症的解决就是这个了。

text-curie-001:语言翻译、复杂分类、文本感悟、摘要(擅长在文章中提取要点等,temperature调低,这样答案比较确定而不会有宽泛的答案),所以翻译类的,居里夫人来搞定

text-babbage-001:普通的分类,语义搜索分类

text-ada-001:文本解析,简单分类,地址更正,关键词,尤其是地址的更正很擅长,错误的或者不加标点符号等,都可以很好的帮你整理好,就像个实干型的保姆

注:任何由Ada(text-ada-001)等更快的模型执行的任务都可以由Curie或Davinci等更强大的模型执行。

go语言实现

实现API接口有很多语言都有提供,比如常见的JAVA、nodejs、php、C#等等,这里我以重点后期关注的语言GO为例,看下它是怎么实现这个接口的

首先就是从github中获取库

go get github.com/sashabaranov/go-gpt3

这样就会在用户目录,比如本人的路径:C:\Users\Tony\go\pkg\windows_amd64\github.com\sashabaranov,里面有一个go-gpt3.a这样的文件

代码的实现也是比较简单的,关键就是导入上面获取的类gogpt

package main

import (
    "context"
    "fmt"
    gogpt "github.com/sashabaranov/go-gpt3"
)

func main() {
    c := gogpt.NewClient("这里是你的密钥")
    ctx := context.Background()

    req := gogpt.CompletionRequest{
        Model:     gogpt.GPT3TextDavinci003,
        MaxTokens: 1000,
        Prompt:    "我们一起去游泳,翻译成英文",
    }
    resp, err := c.CreateCompletion(ctx, req)
    if err != nil {
        return
    }
    fmt.Println(resp.Choices[0].Text)
}
#Let's go swimming together

你可能感兴趣的:(Golang,ChatGPT,GO,ChatGPT,GO语言实现ChatGPT)