一、什么是GPT
GPT 是由人工智能研究实验室 OpenAI 在2022年11月30日发布的全新聊天机器人模型, 一款人工智能技术驱动的自然语言处理工具 它能够通过学习和理解人类的语言来进行对话, 还能根据聊天的上下文进行互动,能完成撰写邮件、视频脚本、文案、翻译、代码等任务
二、 为什么GPT很火
-
打开 ChatGPT 聊天框之后只需要在对话框里输入问题,就可以获得答案,能够应对日常对话
-
ChatGPT 以对话方式进行交互,对话格式使 ChatGPT 能够回答后续问题、承认错误、质疑不正确的前提和拒绝不适当的请求
使用 ChatGPT 的示例演示:
- 假如 “我想对暗恋的女孩写一篇表白信”
三、使用Python调用GPT
首先,要安装openai库
pip install openai
接下来,需要获取一个API密钥(API key),可以在OpenAI官网上注册并获取。然后,使用以下代码调用GPT API:
import openai# 替换为你的API密钥
openai.api_key = "your_api_key"def chat_with_gpt(prompt):response = openai.Completion.create(engine="text-davinci-002",prompt=prompt,max_tokens=1024,n=1,stop=None,temperature=0.5,)return response.choices[0].text.strip()# 示例:向ChatGPT提问
question = "你好,ChatGPT!"
answer = chat_with_gpt(question)
print(answer)
提问二分查找:
# 功能: 二分查找
# 输入参数: array: 数组, number: 查找数字
# 输出参数: 查询数字在数组中的下标, 如果查询不到返回-1
def binary_search(array, number):# 定义左右指针left = 0right = len(array) - 1 # 二分查找while left <= right:# 求中间下标mid = (left + right) // 2# 如果查询数字小于数组中间的数字, 则查询范围变为左边的数组# 否则查询范围变为右边的数组if number < array[mid]:right = mid - 1elif number > array[mid]:left = mid + 1else:return midreturn -1
四、GPT应用场景
GPT模型的应用场景主要分为以下三大模块:
- 代码相关: 如程序语言转换, 比如Python转Java、生成程序命令、修复代码Bug、程序代码解释等;
- 日常生活相关: 如语言翻译;美食制作配方生成;段落关键字提取;餐馆点评;
- 职业相关: 创作一个短故事;产品广告设计;生成面试问题帮助面试者准备面试
下面我们以日常生活相关的场景, 来实现GPT功能的应用,这里选取一道中国菜: 鱼香肉丝
- 中国菜“鱼香肉丝”GPT给出的做法
五、GPT背后原理
GPT(Generative Pre-trained Transformer)是一种基于深度学习的语言模型,其核心在于利用大规模的文本数据进行预训练,从而能够生成连贯且符合语法规则的自然语言文本。
- Transformer:是一种基于自注意力机制(Self-Attention)的深度学习模型,特别是在处理序列数据如自然语言处理(NLP)领域表现出色。它由编码器(Encoder)和解码器(Decoder)组成,能够捕捉输入数据中的长距离依赖关系。
- PyTorch:是一个动态图型的深度学习框架,提供了丰富的工具和API来构建、训练神经网络模型。它以其易用性、灵活性以及良好的社区支持而受到研究者和开发者的青睐。
GPT模型的训练过程包括两个主要阶段:预训练和微调。在预训练阶段,模型通过学习大量文本资料来把握语言的基本规律和模式;在微调阶段,模型则通过特定任务的训练数据进行精细调整,以适应具体的应用场景。具体来说,GPT模型通常使用变换器(Transformer)作为其网络架构的基础,该架构能够有效处理文本序列中词与词之间的复杂依赖关系。
GPT模型在与人进行对话时,通常需要解决生成合理且连贯的回应和维持对话的深度与多样性这两个关键问题。
当涉及到生成合理且连贯的回应时,ChatGPT需要理解提问者的意图并给出一个确切且相关的回答。
- 提问:请解释人工智能的定义。
- GPT回答:人工智能(Artificial Intelligence,简称AI)是指由计算机系统模拟和执行人类智能的能力。它涉及开发能够感知、学习、推理、决策和解决问题的智能机器。人工智能的目标是使计算机能够像人一样思考、理解和适应环境,从而能够执行各种任务,从简单的自动化到复杂的认知任务
六、神经网络语言模型
我们知道的N-gram语言模型是基于统计的语言模型,是一种离散型的语言模型,所以泛化能力差,而且如果随着N的增大,参数空间呈现指数级增长,导致维度灾难微调。
所以人们开始尝试使用神经网络来建立语言模型。
关于神经网络的介绍:神经网络的激活函数-CSDN博客