ChatGPT 训练营

ChatGPT 测试领域应用

大纲

  • ChatGPT 原理与常用模型介绍
  • 学会与 AI 对话,高效提升学习效率
  • 利用 ChatGPT 自动生成测试用例思维导图
  • 利用 ChatGPT 自动生成自动化测试脚本
  • 利用 ChatGPT 自动生成基于 PO 数据驱动测试框架
  • 利用人工智能自动找 Bug
  • 利用 ChatGPT 批量生成测试数据
  • 利用人工智能自动生成架构图与 PPT

ChatGPT 介绍

OpenAI 介绍

2015–2018 年:非营利开端

  • 2015 年底,OpenAI 成立,总部位于加利福尼亚州旧金山,组织目标是通过与其他机构和研究者的“自由合作”,向公众开放专利和研究成果。
  • 2016 年,OpenAI 宣称将制造“通用”机器人,希望能够预防人工智能的灾难性影响,推动人工智能发挥积极作用。
  • 2017 年,OpenAI 仅在云计算上就花费了$790 万美元,占其职能支出的四分之一。 相比之下,DeepMind 2017 年的总支出为$4.42 亿美元。 2018 年夏天,仅仅训练 OpenAI 的 Dota 2 机器人就需要从谷歌租用 128,000 个 CPU 和 256 个 GPU 数周。
  • 2018 年 2 月,由于特斯拉为自动驾驶汽车开发人工智能,马斯克辞去了董事会席位,理由是与他作为特斯拉首席执行官的角色存在“潜在的未来(利益) 冲突”。 萨姆·阿尔特曼声称马斯克认为 OpenAI 已经落后于谷歌等其他公司,马斯克提议自己接管 OpenAI,但董事会拒绝了。 马斯克随后将离开 OpenAI,但声称仍然是捐赠者,但在他离开后没有进行任何捐赠。
  • 至 2018 年,OpenAI 的总部坐落于旧金山的米慎区,与伊隆·马斯克的另一座公司 Neuralink 在同一办公室大楼。[20]改革后,推出了商业化的 ChatGPT 等产品。

2019 年:向营利性转型

2019 年 3 月 1 日成立 OpenAI LP 子公司,目的为营利所用。

该公司随后向其员工分配股权并与微软合作,宣布向该公司投资 10 亿美元。2019 年 7 月 22 日微软投资 OpenAI 10 亿美元,双方将携手合作替 Azure 云端平台服务开发人工智能技术。OpenAI 还宣布打算对其技术进行商业许可[24]。 OpenAI 计划“在五年内,而且可能更快”花费这 $10 亿美元。 萨姆·阿尔特曼表示,即使是 10 亿美元也可能不够,实验室最终可能需要“比任何非营利组织筹集到的资金都多的资金”来实现通用人工智能[26]。

2020 年–至今:ChatGPT 以及与微软的合作伙伴关系

  • 2020 年 6 月 11 日宣布了 GPT-3 语言模型,微软于 2020 年 9 月 22 日获取独家授权。
  • 2021 年,OpenAI 推出了 DALL-E,这是一种深度学习模型,可以从自然语言描述中生成数字图像。
  • 2022 年 11 月 30 日,OpenAI 发布了一个名为 ChatGPT 的自然语言生成式模型,它以对话方式进行交互。在研究预览期间,用户注册并登陆后可免费使用 ChatGPT。根据 OpenAI 的说法,预览版在前五天内收到了超过一百万的注册。但是该项目对一些包括中国大陆、香港在内的地区暂不可用。
  • 2023 年 3 月 2 日,OpenAI 发布了官方 ChatGPT API,并允许第三方开发者利用该 API 将 ChatGPT 集成到他们的网站、产品和服务中。
  • 2023 年 3 月 3 日,霍夫曼辞去了他的董事会席位,理由是希望避免他在 OpenAI 的董事会席位与他通过格雷洛克合伙公司 (Greylock Partners) 对 AI 技术公司的投资之间的利益冲突,以及他作为 OpenAI 的联合创始人的角色 AI 技术初创公司 Inflection AI。 霍夫曼仍然是 OpenAI 的主要投资者微软的董事会成员。
  • 2023 年 3 月 14 日,OpenAI 发布了 GPT-4,既作为 API(带有 waiting list)又作为 ChatGPT Plus 的一项功能。

ChatGPT

ChatGPT 产品介绍

OpenAI API 几乎可以应用于任何涉及理解或生成自然语言、代码或图像的任务。我们提供一系列具有不同功率级别的模型,适用于不同的任务,并且能够微调您自己的自定义模型。这些模型可用于从内容生成到语义搜索和分类的所有领域。

核心概念 Prompts

设计提示本质上是您“编程”模型的方式,通常是通过提供一些说明或一些示例。这不同于为单一任务设计的大多数其他 NLP 服务,例如情感分类或命名实体识别。相反,完成和聊天完成端点可用于几乎任何任务,包括内容或代码生成、摘要、扩展、对话、创意写作、风格转换等。

核心概念 提示提词设计

  • 展示和讲述。通过说明、示例或两者的结合,明确您想要什么。如果您希望模型按字母顺序对项目列表进行排名或按情绪对段落进行分类,请向它展示您想要的。
  • 提供质量数据。如果您正在尝试构建分类器或让模型遵循某种模式,请确保有足够的示例。一定要校对你的例子——模型通常足够聪明,可以看穿基本的拼写错误并给你一个回应,但它也可能认为这是故意的,它会影响回应。
  • 检查您的设置。 temperature 和 top_p 设置控制模型在生成响应时的确定性。如果您要求它提供只有一个正确答案的答复,那么您需要将这些设置得较低。如果您正在寻找更多样化的响应,那么您可能希望将它们设置得更高。人们在使用这些设置时犯的第一个错误是假设它们是“聪明”或“创造力”控制。

核心概念 Token

用途

  • Classification 分类
  • Generation 生成
  • Conversation 会话
  • Translation 翻译
  • Conversion 转换

  • Summarization 总结
  • Completion 完成 完形填空
  • Factual responses 事实回应
  • Inserting text 中间插入文字
  • Editing text 编辑文本角色转换

模型能力介绍

GPT

2018 年 6 月 11 日,OpenAI 发表了一篇名为《通过生成式预训练提高语言理解能力》(Improving Language Understanding by Generative Pre-Training)[6]的论文,在其中介绍了“基于转换器的生成式预训练模型”(GPT)。当时,表现最好的自然语言生成模型主要依靠大量手动标注数据的监督学习。这种依赖于人类监督学习的开发途径限制了模型在未经精细标注的数据集上的应用;许多语言(例如斯瓦希里语或海地克里奥尔语)也因缺乏能创建起语料库的文本资料而造成实际应用(如翻译和解释)上的困难[7];此外,训练超大模型相当耗时且开支非常昂贵。[6][7]

相比之下,GPT 提出了一种“半监督(semi-supervised)”(后来普遍改称为“自监督”)的方法——先在没有标号的数据上面训练一个预训练模型,再在少量标号数据上面训练一个分辨的微调模型。[6]

GPT 模型图

GPT-2

生成式预训练变换模型 2(英语:Generative Pre-trained Transformer 2,简称 GPT-2)是 OpenAI 于 2019 年 2 月创建的开源人工智能。[2] [3] [4] [5] GPT-2 能够翻译文本、回答问题、总结段落,[6]并生成文本输出。虽然其输出内容有时与人类相似,[7]但在生成长段落时输出内容可能会变得重复或无意义。[8]GPT-2 是一个通用学习器,没有经过专门训练来执行任何特定的任务,[9] [6] 并且是作为 OpenAI 2018 GPT 模型的“直接扩展”而创建的,[10]其参数数量和训练数据集的大小均增加了十倍。[5]

GPT-3

生成型预训练变换模型 3 (英语:Generative Pre-trained Transformer 3,简称 GPT-3)是一个自回归语言模型,目的是为了使用深度学习生成人类可以理解的自然语言。GPT-3 是由在旧金山的人工智能公司 OpenAI 训练与开发,模型设计基于谷歌开发的 Transformer 语言模型。GPT-3 的神经网络包含 1750 亿个参数,需要 800GB 来存储,为有史以来参数最多的神经网络模型。该模型在许多任务上展示了强大的零样本和少样本的能力。OpenAI 于 2020 年 5 月发表 GPT-3 的论文,在次月为少量公司与开发人团释出应用程序界面的测试版。微软在 2020 年 9 月 22 日宣布取得了 GPT-3 的独家授权。

GPT-3.5

GPT-3.5 模型可以理解并生成自然语言或代码。我们在 GPT-3.5 系列中功能最强大且最具成本效益的模型是 gpt-3.5-turbo,它已针对聊天进行了优化,但也适用于传统的完成任务。

GPT-4

生成型预训练变换模型 4(英语:Generative Pre-trained Transformer 4,简称 GPT-4)是由 OpenAI 公司开发并于 2023 年 3 月 14 日发布的自回归语言模型[1][2]。Vox 称 GPT-4 从各方面来说都优于 OpenAI 之前发布的 GPT-3 和 GPT-3.5

OpenAI 在宣布 GPT-4 时表示,它“比 GPT-3.5 更可靠、更有创意,并且能够处理更细微的指令。” [8] 他们制作了两个版本的 GPT-4,上下文窗口分别为 8,192 和 32,768 个令牌,比分别限制为 4,096 和 2,049 个令牌的 GPT-3.5 和 GPT-3 有了显着改进。[9]与其前身不同,GPT-4 可以将图像和文本作为输入;[10] 这使它能够描述不寻常图像中的幽默、总结截屏文本以及回答包含图表的试题。[11] 尽管有这些新能力,GPT-4 和它的前辈一样,仍然倾向于产生幻觉答案。[12]

GPT-4 模型

GPT-4 是一个大型多模态模型(今天接受文本输入并发出文本输出,将来会出现图像输入),由于其更广泛的常识和高级推理,它可以比我们以前的任何模型更准确地解决难题能力。与 gpt-3.5-turbo 一样,GPT-4 针对聊天进行了优化,但也适用于使用 Chat Completions API 的传统完成任务

GPT 模型总结

  1. ChatGPT 模型是基于 GPT3.5 进行对话方面强化训练之后的微调模型
  2. GPT3.5 是 GPT 系列模型中,第三版本的其中一个版本,另一个大家比较熟知的版本是 GPT4
  3. GPT 模型是基于 Transformer 模型中的解码器(decoder)发展而来,另一个比较知名的基于 Transformer 模型的类似模型是谷歌的 BERT,它用的是 Transformer 的编码器(encoder)
  4. 类似的模型除了兄弟模型 BERT,还有百度的文心一言、阿里的通义千问、亚马逊的 Titan
  5. Transformer 模型和之前的 CNN(Cellular neural network 卷积神经网络)、RNN(Recurrent Neural Network 循环神经网络)等模型被研究人员称作基础模型

ChatGPT 是如何工作的

ChatGPT 是根据 GPT-3.5 进行微调的,GPT-3.5 是一种经过训练可生成文本的语言模型。 ChatGPT 通过使用人类反馈强化学习 (RLHF) 针对对话进行了优化——一种使用人类演示和偏好比较来引导模型朝着期望的行为发展的方法

ChatGPT 是否值得相信?

这些模型是根据人类编写的来自互联网的大量数据(包括对话)进行训练的,因此它提供的响应可能听起来像人类。重要的是要记住,这是系统设计的直接结果(即最大化输出与训练模型的数据集之间的相似性),并且此类输出有时可能不准确、不真实,并且有时会产生误导

ChatGPT 没有连接到互联网,它偶尔会产生错误的答案。它对 2021 年之后的世界和事件的了解有限,也可能偶尔会产生有害的指令或有偏见的内容。 我们建议检查模型的响应是否准确。如果您发现答案不正确,请使用“不满意”按钮提供反馈。

可以将 ChatGPT 的输出用于商业用途吗?

根据内容政策和条款,您拥有使用 ChatGPT 创建的输出,包括转载、销售和商品化的权利——无论输出是通过免费还是付费计划生成的。

大家还用过哪些 AI 产品?

ChatGPT 使用教程

注册流程

  • 选择微软云服务,openai 被微软控制,已经屏蔽大多数其他的云厂商
  • 购买海外手机号,用于短信验证
  • 进入 https://openai.com/ 注册

微软云服务

  • 价格最低 3.8 美元
  • 其他平台基本也都有 6 美元以下的服务器
  • 也可以选择其他代理服务

注册海外手机号

注册 openai

国内邮箱、国内 ip 请慎用,推荐使用 gmail 邮箱

付费方案

不建议个人支付,针对国内有限制

可以使用霍格沃兹测试开发学社人工智能小助手

Api 调用

import os
import openai
openai.organization = "org-1GFeIzFdFkSxQ5u6RIWvdVrF"
openai.api_key = os.getenv("OPENAI_API_KEY")
openai.Model.list()

response = openai.ChatCompletion.create(
    model='gpt-3.5-turbo',
    messages=[
        {'role': 'user', 'content': 'Count to 100, with a comma between each number and no newlines. E.g., 1, 2, 3, ...'}
    ],
    temperature=0,
)
def test_openai():
    r = openai.ChatCompletion.create(
        model='gpt-3.5-turbo',
        messages=[
            {'role': 'user',
             'content': '请为百度搜索设计测试用例'}
        ]
    )
    dlog.debug(r)
    dlog.debug(r['choices'][0]['message']['content'])

ChatGPT 体验方式

ChatGPT 在软件测试领域中的应用场景

主要用途

  • 需求分析
  • 测试计划
  • 测试用例
  • 自动化测试
  • 测试框架
  • 测试报告

  • 功能测试
  • 性能测试
  • 安全测试
  • 兼容性测试
  • 回归测试
  • 持续集成/持续交付/DevOps

  • 测试流程
  • 测试规范
  • 质量文化
  • 团队管理
  • 绩效管理
  • 架构图

性能测试

Bug 修复与代码分析

import Random
a = random.randint(1,12)
b = random.randint(1,12)
for i in range(10):
    question = "What is "+a+" x "+b+"? "
    answer = input(question)
    if answer = a*b
        print (Well done!)
    else:
        print("No.")

代码分析结果

import Random
a = random.randint(1,12)
b = random.randint(1,12)
for i in range(10):
    question = "What is "+a+" x "+b+"? "
    answer = input(question)
    if answer = a*b
        print (Well done!)
    else:
        print("No.")

### Fixed Python
import random
a = random.randint(1,12)
b = random.randint(1,12)
for i in range(10):
    question = "What is "+str(a)+" x "+str(b)+"? "
    answer = int(input(question))
    if answer == a*b:
        print ("Well done!")
    else:
        print("No.")

文档测试

语法纠正

She no went to the market.
大熊猫是国中的
She did not go to the market.
大熊猫是中国的

经验查询

请制定一套标准的软件测试流程与规范

  • 需求分析与测试计划
  • 测试用例设计
  • 环境配置和测试数据准备
  • 执行测试用例
  • 缺陷管理和跟踪
  • 测试报告和总结
  • 自动化测试

软件测试用例管理平台有哪些,哪些最好用

请针对百度搜索编写一套测试用例

输出思维导图

请给出一个登录页面的测试用例合集,包含具体测试点,必须用 plantuml 的 mindmap,展示在一 个代码块中

Web 自动化测试应该用什么框架

编写一个数据驱动自动化测试框架

刷题

在视图上不能完成的操作是

手工测试工程师有没有前途

软件测试工程师有没有前途

测试开发工程师有没有前途

开放讨论 ChatGPT 对测试工程师的影响

AI 协助开发

GitHub Copilot - Your AI pair programmer

GitHub Copilot 特点

  • GitHub Copilot 使用 OpenAI Codex 直接从您的编辑器实时建议代码和整个函数
  • GitHub Copilot 经过数十亿行代码的训练,将自然语言提示转化为跨数十种语言的编码建议。
  • 世界各地的开发人员使用 GitHub Copilot 来更快地编写代码,专注于业务逻辑而不是样板文件,并做最重要的事情:构建出色的软件
  • 花更少的时间创建样板和重复的代码模式,将更多时间花在重要的事情上:构建出色的软件。写下描述您想要的逻辑的评论,GitHub Copilot 将立即建议代码来实现该解决方案

Harri Edwards // Open AI

Trying to code in an unfamiliar language by googling everything is like navigating a foreign country with just a phrasebook. Using GitHub Copilot is like hiring an interpreter.

尝试通过谷歌搜索所有内容来使用不熟悉的语言编写代码,就像只带着一本短语手册在国外航行一样。使用 GitHub Copilot 就像雇用一名口译员。

Python 代码自动编写

付费方式

MidJourney AI 绘图

midjourney 入门

示例

DALL·E AI 绘图

DALL·E

DALL·E 示例

AutoGPT简介

  • AutoGPT是一个基于 Python 的开源 AI 应用程序,它利用 OpenAI 的 GPT 3.5 或 GPT-4 模型来创建完全自主和可定制的 AI 代理。
  • AutoGPT 是一种使用经过训练的 OpenAI 文本生成模型的界面工具。

官网地址:https://autogpt.net/

环境准备

  • 获取 OpenAI 的API KEY。
  • Auto-GPT 下载、安装与配置。
  • Auto-GPT 启动与使用。

获取 OpenAI 的API KEY

  1. 进入 OpenAI 官网,并登录。
  2. 进入 API Keys 生成界面,获取 OpenAI 的API KEY。

Auto-GPT 下载与安装

  1. 将 Auto-GPT 仓库clone到本地:仓库地址
    • 注意: 选择 stable 的分支。
  2. 进入项目,复制配置文件cp .env.template .env
  3. 修改配置文件中的OPENAI_API_KEY字段,设置为自己的API KEY。

Auto-GPT 启动与使用

  1. 在项目中执行以下命令(注意,比较耗时,保持网络稳定):
    python -m venv venvAutoGPT
    source venvAutoGPT/bin/activate
    pip3 install --upgrade pip
    
  2. 执行启动命令: ./run.sh --gpt3only

AutoGPT能做什么事

  • ChatGPT具有的功能它都有。
  • 交互性更强:
    • 直接生成文件而不是语句。
  • 提示词要更清晰:
    • 基于GPT3模型会比较容易陷入死循环。

利用人工智能AutoGPT批量生成测试数据文件

总结

  • 拥抱变化,善用新技术提升自己的能力。
  • 信息爆炸,要有信息过滤和筛选的能力。