理解生成式AI

1、专业术语

LLM:大型语言模型

GAI:通用人工智能

NLP:自然语言处理

CNN:卷积神经网络

RNN:循环神经网络

2、生成式AI

什么是生成式AI?

生成式AI是一种人工智能技术,它能够生成新的、原创性的内容,如文本、图像、音频等。与传统的基于规则或模板的方法不同,生成式AI能够根据数据中的模式和规律自主地生成新的内容,具有更大的创造性和灵活性。

3、ChatGPT

1. 理解LLM

YOLOv4与TensorFlow

YOLOv4TensorFlow
目标检测算法:它可以在图像中检测和定位多个对象,并给出对象的类别和边界框信息机器学习框架(Python)
应用场景支持多种机器学习算法,包括深度学习、强化学习、决策树,用于构建和训练各种类型的机器学习模型,包括图像分类、目标检测、自然语言处理等

TensorFlow和NLP什么关系?

TensorFlow提供了一系列NLP相关的工具和库,帮助我们构建各种NLP模型。

  1. TensorFlow Text:一个用于构建文本处理模型的库,包括文本向量化、文本分类、文本生成、文本相似度等任务。
  2. TensorFlow Hub:一个用于获取和共享预训练模型的平台,包括NLP领域的BERT、GPT等预训练模型
  3. TensorFlow Addons:一个扩展库,提供了一些用于NLP的扩展功能,例如文本标记、序列匹配等任务。

18年谷歌Bert 模型

​ Bert是一种预训练自然语言处理模型,基于 Transformer 模型结构,并在大规模文本语料上进行了预训练,可以用于文本分类、语义理解、命名实体识别等自然语言处理任务。采用了双向 Transformer 编码器,这种结构能够充分利用上下文信息,使得模型的效果得到大幅提升。同时,Bert 模型使用了 Masked Language Model 和 Next Sentence Prediction 两个预训练任务,进一步提高了模型的性能。一些具体的完形填空。

  1. 什么是预训练?

    预训练(Pre-training)是指在某些领域的任务上,使用大规模数据集预先训练模型,以期望在后续的任务中,利用先前训练的知识对模型进行微调,从而提高模型在特定任务上的性能。

    预训练+微调

  2. 什么是Transformer?

国内的NLP

阿里:PLUG,百度:ERNIE

## 2、Transformer模型

Transformer总体架构可分为四个部分:输入部分、输出部分、编码器部分、解码器部分。

RNN循环神经网络

什么是神经网络?

神经网络通常由输入层隐藏层输出层组成。通过模拟多个神经元之间的连接和传递信息的方式,实现对输入数据的处理和分析,以达到分类、预测、识别等目的。

  1. 输入层:接收外部输入数据
  2. 隐藏层:通过对输入数据进行加权和非线性变换,提取数据的特征信息
  3. 输出层:根据输入层和隐藏层的信息,输出最终的结果
image-20230423182013496

什么是RNN循环神经网络?

​ 在基础神经网络中,只能单独的去处理一个个的输入,前一个输入和后一个输入是完全没有关系的,对于有些序列的消息,某些任务需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的。例如:当我们处理视频的时候,我们也不能只单独的去分析每一帧,而要分析这些帧连接起来的整个序列。

​ 简单的RNN:

img

去掉W就是普通的全连接神经网络

  • X/O:向量,它表示输入/输出层的值

  • U/V:是输入层到隐藏层的**权重矩阵(权重矩阵是连接输入层和隐藏层或隐藏层和输出层的参数矩阵,用于对输入数据进行加权和线性变换,从而产生隐藏层或输出层的输出结果。)**

  • W:循环神经网络隐藏层的值s不仅仅取决于当前这次的输入x,还取决于上一次隐藏层的值s。权重矩阵 W就是隐藏层上一次的值作为这一次的输入的权重。

可以看St函数,S的值最终是由输入X和上一个隐藏层S共同决定的,对于下面的图,其实就是一个RNN是由多个相当于普通的神经网络组成,每个都输出结果值就是S。

img

根据输入和输出的数量,分为三种比较常见的结构:N vs N、1 vs N、N vs 1。

Seq2Seq模型

​ Seq2Seq模型是输出的长度不确定时采用的模型,这种情况一般是在机器翻译的任务中出现,将一句中文翻译成英文,那么这句英文的长度有可能会比中文短,也有可能会比中文长,所以输出的长度就不确定了。

​ seq2seq属于==encoder-decoder结构==的一种,利用两个==RNN==,一个RNN作为encoder,另一个RNN作为decoder,encoder负责将输入序列压缩成指定长度的向量,这个向量就可以看成是这个序列的语义,这个过程称为编码,decoder则负责根据==语义向量==生成指定的序列,这个过程也称为解码。

ChatGPT与Bert区别

BERTChatGPT
架构基于Transformer的预训练语言模型基于Transformer的预训练语言模型
模型双向模型单向模型
目标偏向于理解预训练(MLM、NSP)+微调生成
MLM:MLM任务要求模型在输入文本中随机掩盖一些单词,然后预测这些掩盖单词的正确值
NSP:NSP任务是预测两个句子是否是连续的
偏向于生成:大量数据进行文本更好的表示

​ BERT:它的目标是通过预训练学习生成通用的语言表示,然后通过微调等方式适应特定的任务。BERT是一个双向模型,可以同时考虑上下文的信息,因此在很多任务上表现出了很好的性能,比如问答、文本分类、命名实体识别等。

​ ChatGPT:它的目标是通过预训练学习生成自然语言文本。与BERT不同的是,ChatGPT是一个单向模型,只能考虑上文的信息,因此更适合于生成文本的任务,如对话生成、文本生成等。ChatGPT在自然语言生成方面表现出了很好的性能,尤其是在生成长文本和连贯的对话方面

4、模型的生成和部署

特征平台提供的特征数据可以作为输入数据,帮助模型进行预测和推理。

通常是以下步骤:

  1. 模型转换:将经过训练的模型转换为可以直接使用的形式,如 TensorFlow 的 SavedModel 格式或 ONNX 格式。
  2. 模型集成:将转换后的模型集成到实际的应用程序中,如 Web 应用、移动应用或嵌入式系统等。
  3. 模型测试:对部署后的模型进行测试和验证,以确保其能够正确地处理新的数据并进行预测或决策。
  4. 模型监控:对部署后的模型进行监控和管理,以及时发现和解决模型性能、安全性等方面的问题。

机器学习平台

H2OTensorFlow
语言JavaC++ 和 Python
支持算法H2O提供了多种机器学习算法,包括线性模型、树模型、深度学习模型TensorFlow 主要用于深度学习领域,提供了丰富的深度学习工具和 API,包括卷积神经网络、循环神经网络、自编码器等。
模型部署提供了 REST API 和 Java API 等接口提供了多种模型部署方式,包括 TensorFlow Serving、TensorFlow Lite 等。
应用场景H2O 适用于各种机器学习任务,包括分类、回归、聚类等TensorFlow 主要用于深度学习领域,适用于图像处理、自然语言处理、语音识别等应用场景。

机器学习项目管理平台

产品名称地址是否开源介绍
MLReefhttps://www.mlreef.com/开源机器学习平台,主要用于协作式机器学习项目的管理和部署。它提供了版本控制、数据集管理、模型管理、协作开发等功能,支持多种编程语言和机器学习框架。相比其他平台,它的定位更加注重开源和社区化,用户可以免费使用和贡献代码,与其他开发者共同开发和完善机器学习项目。
DataRobothttps://www.datarobot.com/付费自动化机器学习平台,主要用于自动化机器学习模型的生成、训练和部署。它提供了各种机器学习算法和工具,可以根据用户的数据和需求自动选择最佳的算法和模型,并提供了自动调整超参数、数据清洗和特征工程等功能,使得机器学习模型的开发和部署更加高效和简单。
Hugging Facehttps://huggingface.co/开源自然语言处理(NLP)平台,主要用于构建、训练和部署 NLP 模型。它提供了各种 NLP 模型和工具,可以帮助用户快速搭建和训练 NLP 模型,并提供了预训练模型、模型压缩和部署等功能,使得 NLP 模型的开发和部署更加便捷和高效。
Paperspacehttps://www.paperspace.com/付费是一个云端的机器学习平台,主要用于训练、部署和管理机器学习模型。它提供了高性能的计算资源和丰富的机器学习工具,可以帮助用户快速构建和训练机器学习模型,并提供了自动扩缩容、模型部署和监控等功能,使得机器学习模型的开发和部署更加高效和稳定。

总结:四个平台的共同点是都提供了机器学习相关的服务和工具,可以帮助用户更加便捷和高效地开发和部署机器学习模型。

演示GPT2

from transformers import GPT2LMHeadModel, GPT2Tokenizer

# 加载 GPT2 模型和分词器
model_name = 'gpt2'
tokenizer = GPT2Tokenizer.from_pretrained(model_name)
model = GPT2LMHeadModel.from_pretrained(model_name)

# 定义对话函数
def generate_response(input_text):
    # 将输入文本编码成模型可以理解的格式
    input_ids = tokenizer.encode(input_text, return_tensors='pt')
    
    # 生成回复
    output = model.generate(input_ids=input_ids, max_length=50, num_beams=5, no_repeat_ngram_size=2, early_stopping=True)
    
    # 将生成的回复解码成自然语言文本
    response = tokenizer.decode(output[0], skip_special_tokens=True)
    
    return response

# 进行对话
while True:
    user_input = input("你:")
    response = generate_response(user_input)
    print("机器人:" + response)
    if response == "好的,谢谢!":
        break

image-20230424191907701

image-20230427142820287

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小凯77

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值