GPT微调和嵌入哪个好,大模型微调 和嵌入有什么区别?微调(fine-tuning),嵌入(embedding)的用法!

2024-08-27 13:28

本文主要是介绍GPT微调和嵌入哪个好,大模型微调 和嵌入有什么区别?微调(fine-tuning),嵌入(embedding)的用法!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

GPT擅长回答问题,但是只能回答它以前被训练过的问题,如果是没有训练过的数据,比如一些私有数据或者最新的数据该怎么办呢?

这种情况下通常有两种办法,一种是微调(fine-tuning),一种是嵌入(embedding)。

现在基于自然语言和文档进行对话的背后都是使用的基于嵌入的向量搜索。OpenAI在这方面做的很好,它的Cookbook(http://github.com/openai/openai-cookbook) 上有很多案例,最近他们对文档做了一些更新。

图片

大模型GPT微调 和嵌入有什么区别?

微调就是在大模型的数据基础上做二次训练,事先准备好一批prompt-complition(类似于问答Q&A)的数据,生成新的模型,这个模型将会包含微调后的数据。

而嵌入则是每次向GPT发送消息(prompt)的时候,把你自己数据结果带上。

王建硕老师对于微调和嵌入有过精妙的比喻:
GPT就像一个已经训练好的家政阿姨,她懂中文,会做家务,但是对你家里的情况不了解。

微调就相当于阿姨第一次到你家干活的时候,你要花一小时时间告诉她家里的情况,比如物件的摆放、哪些地方不能动,哪些地方要重点照顾。

嵌入就相当于你省去了对阿姨进行二次培训的,而是在家里贴满纸条,这样阿姨一看到纸条就知道该怎么做了。

大模型LLM嵌入和大模型微调哪个更好?

嵌入门槛低,效果也不错,修改起来容易。缺点就是反应慢,需要检索

微调门槛高,反应快,缺点就是价格高

图片

嵌入embedding的

OpenAI的Cookbook也有类似的比喻:
微调就像你通过学习准备考试,是一种长期记忆,但过了一周后考试来临,模型可能会忘记一些,或者记错它从来没有读过的事实。

嵌入就像记笔记,是一种短期记忆,当考试的时候,你把笔记带上,随时翻看笔记,对于笔记上有的内容可以得到准确的答案。

什么是 Search-Ask-RAG

也就是先在本地文档库中Search,拿到本地的数据结果,再去Ask,把搜索结果和问题一起交给GPT,这样GPT可以根据你提供的内容以及它模型中的数据,一起将结果返还给你。

必须用向量搜索RAG吗?

并非一定要基于向量的搜索,可以有多重搜索方式:

· 基于关键字搜索

· 基于图形的搜索

· 基于向量的搜索

对于技术实现的细节,OpenAI的Cookbook上也有详细的介绍。

更多细节建议参考:
https://github.com/openai/openai-cookbook/blob/main/examples/Question_answering_using_embeddings.ipynb

LLM嵌入embedding有什么限制?

嵌入的文本搜索相对于微调来说,会有输入限制

嵌入的搜索提问方式相对于微调有一个缺点就是它每次附带的文本数量是有限制的,因为除了原始的问题,它还需要带上搜索出来的问题。

就好比你有成书架的教科书可以借鉴,但每次却只能翻看其中几页笔记。

如果你想构建一个对大量文本问答的系统,OpenAI建议(Search-Ask)的方法。

文本搜索相对于微调来说,search-ask的缺点是每次带上下文,所有会有输入字数限制,但是这种对于准确问答,前面有一层精准的search,准确度来说模型更容易得到正确的答案

这两种方案,用户自有数据也都必须做成q&a形式吗?

比如我有1MB的纯文本私有数据,没有经过人工q&a处理。我想对这些数据提问,当问题不在笔记中时才用chatgpt。

A 对于嵌入的方案,数据不必做成Q&A,但是需要拆成小块,因为Ask的时候也是受最大长度限制的,所以先搜索到文本块(chunk),然后提问的时候带上搜索出来的若干块

GPT 的上下文窗口限制,你怎么能在 pdf、书籍、文档等上“训练”它呢?

你必须:

将数据压缩成数据嵌入并将其传递给提示(称为“上下文压缩”),或者使用通义千问的pdf api long text 进行提取!

如果嵌入的数据太大而无法放入上下文窗口,则需要使用矢量数据库并使用一些搜索/排名启发式方法分两部分回答查询:

\1. 找到与此矢量化用户查询相关的所有相关文档,然后

\2. 将前 n 个最接近的文档与用户查询一起传递到上下文中,并要求 ai 仅引用其上下文中的内容来回答用户问题。这称为“语义查询”

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

这篇关于GPT微调和嵌入哪个好,大模型微调 和嵌入有什么区别?微调(fine-tuning),嵌入(embedding)的用法!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1111798

相关文章

MySQL中VARCHAR和TEXT的区别小结

《MySQL中VARCHAR和TEXT的区别小结》MySQL中VARCHAR和TEXT用于存储字符串,VARCHAR可变长度存储在行内,适合短文本;TEXT存储在溢出页,适合大文本,下面就来具体的了解... 目录一、VARCHAR 和 TEXT 基本介绍1. VARCHAR2. TEXT二、VARCHAR

Java8 Collectors.toMap() 的两种用法

《Java8Collectors.toMap()的两种用法》Collectors.toMap():JDK8中提供,用于将Stream流转换为Map,本文给大家介绍Java8Collector... 目录一、简单介绍用法1:根据某一属性,对对象的实例或属性做映射用法2:根据某一属性,对对象集合进行去重二、Du

Python中isinstance()函数原理解释及详细用法示例

《Python中isinstance()函数原理解释及详细用法示例》isinstance()是Python内置的一个非常有用的函数,用于检查一个对象是否属于指定的类型或类型元组中的某一个类型,它是Py... 目录python中isinstance()函数原理解释及详细用法指南一、isinstance()函数

Python中的sort方法、sorted函数与lambda表达式及用法详解

《Python中的sort方法、sorted函数与lambda表达式及用法详解》文章对比了Python中list.sort()与sorted()函数的区别,指出sort()原地排序返回None,sor... 目录1. sort()方法1.1 sort()方法1.2 基本语法和参数A. reverse参数B.

vue监听属性watch的用法及使用场景详解

《vue监听属性watch的用法及使用场景详解》watch是vue中常用的监听器,它主要用于侦听数据的变化,在数据发生变化的时候执行一些操作,:本文主要介绍vue监听属性watch的用法及使用场景... 目录1. 监听属性 watch2. 常规用法3. 监听对象和route变化4. 使用场景附Watch 的

Java Instrumentation从概念到基本用法详解

《JavaInstrumentation从概念到基本用法详解》JavaInstrumentation是java.lang.instrument包提供的API,允许开发者在类被JVM加载时对其进行修改... 目录一、什么是 Java Instrumentation主要用途二、核心概念1. Java Agent

Linux五种IO模型的使用解读

《Linux五种IO模型的使用解读》文章系统解析了Linux的五种IO模型(阻塞、非阻塞、IO复用、信号驱动、异步),重点区分同步与异步IO的本质差异,强调同步由用户发起,异步由内核触发,通过对比各模... 目录1.IO模型简介2.五种IO模型2.1 IO模型分析方法2.2 阻塞IO2.3 非阻塞IO2.4

Java 中 Optional 的用法及最佳实践

《Java中Optional的用法及最佳实践》在Java开发中,空指针异常(NullPointerException)是开发者最常遇到的问题之一,本篇文章将详细讲解Optional的用法、常用方... 目录前言1. 什么是 Optional?主要特性:2. Optional 的基本用法2.1 创建 Opti

Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧

《Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧》本文将通过实际代码示例,深入讲解Python函数的基本用法、返回值特性、全局变量修改以及异常处理技巧,感兴趣的朋友跟随小编一起看看... 目录一、python函数定义与调用1.1 基本函数定义1.2 函数调用二、函数返回值详解2.1 有返

在.NET项目中嵌入Python代码的实践指南

《在.NET项目中嵌入Python代码的实践指南》在现代开发中,.NET与Python的协作需求日益增长,从机器学习模型集成到科学计算,从脚本自动化到数据分析,然而,传统的解决方案(如HTTPAPI或... 目录一、CSnakes vs python.NET:为何选择 CSnakes?二、环境准备:从 Py