吴恩达大模型教程笔记(三)
【ChatGPT提示词工程师】 DeepLearning.AI - P6:第6集 转换 - 吴恩达大模型 - BV1Wf421q7cd
大型语言模型非常擅长将其输入转换为不同的格式,例如用一种语言输入一段文本,把它转换成另一种语言。
或者帮助拼写和语法纠正,所以作为输入,一段可能不完全符合语法的文字,帮你整理一下,甚至转换格式,例如输入html和输出json,所以有一堆应用程序,我曾经写得有点痛苦。
用一堆正则表达式,现在肯定会实现得简单得多,使用大型语言模型和一些提示。
是啊,是啊,这些天我写的几乎所有东西都用chagbt校对。
所以我现在很兴奋地在笔记本上给你们看更多的例子。
所以首先我们要进口Openai,并使用我们在整个视频中使用的相同的获取完成帮助功能,我们要做的第一件事是翻译任务,因此,大型语言模型是在来自许多来源的大量文本上训练的,其中很多是互联网,这有点,当然啦。
在许多不同的语言中,所以这给模型注入了翻译的能力,这些模型在不同的熟练程度上知道数百种语言,因此,我们将通过一些例子来说明如何使用这种功能,所以让我们从一些简单的开始,所以在第一个例子中。
提示是将以下英文文本翻译成西班牙文嗨,我想订一台搅拌机,回应是欧拉·米·古斯塔里亚或德努纳·酒·夸多拉,我对你们所有人都很抱歉,讲西班牙语的人,不幸的是,我从来没有学过西班牙语,你肯定能看出来,好吧嗯。
让我们试试另一个例子,所以在这个例子中。
提示是告诉我这是什么语言,然后这是用法语写的,哥伦比亚库勒兰珀,所以让我们运行这个。
模特已经确定这是法国的,嗯,该模型还可以一次进行多个平移。
所以在这个例子中,假设翻译下面的法语和西班牙语文本,你知道吗,我们再加一个英国海盗,课文是。
我想订一个篮球,所以这里我们有法语,西班牙和英国海盗。
因此,在某些语言中,翻译可以根据说话者与听者的关系而改变,你也可以向语言模型解释这一点。
所以它将能够相应地翻译。
所以在这个例子中我们说,将下列案文的正式和非正式形式译成西班牙文,你想订个枕头吗,注意这里我们使用了不同的分隔符,然后这些后面的蜱虫,只要是一种明确的分离,这并不重要,所以这里我们有正式的和非正式的。
当你和一个有点,可能比你年长,或者你在一个专业的情况下,那是你用正式语气的时候,非正式就是和一群朋友讲话,我其实不会说西班牙语,但我爸爸有,他说这是正确的,所以在下一个例子中,我们要假装。
我们负责一家跨国电子商务公司,因此,用户信息将以所有不同的语言发布,因此,用户将用各种各样的语言告诉我们关于it的问题,所以我们需要一个通用翻译器。
因此,首先,我们将以各种不同的语言粘贴用户消息列表。
现在我们将循环,这些用户消息中的每一条,因此,对于用户消息中的问题,然后我将复制稍长的代码块,所以我们要做的第一件事就是让模型告诉我们,问题在,所以这是提示,然后我们会打印出原始信息,语言与问题。
然后我们会让模特把它翻译成英语和韩语。
所以让我们运行这个,所以最初的法语信息。
所以我们有各种各样的语言,然后模特把它们翻译成英语。
然后是韩语,你可以在这里看到,所以模特说这是法国的,这是因为这个提示符的响应将是,这是法语,您可以尝试将此提示符编辑为类似“告诉我什么语言”的内容,这是用一个词回答只有一个词。
或者不要用一个句子,那种事,如果你想用一个词。
或者您可以以JSON格式要求它,或者类似的东西,这可能会鼓励它。
嗯,不用一整句话,太神奇了。
你刚刚建立了一个通用翻译器,也可以随时暂停视频。
在这里添加任何你想尝试的其他语言。
也许你自己说的语言,看看模型做得如何,接下来我们要研究的是音调转换,写作可以根据预期受众的类型而有所不同,你知道的,就像我给同事或教授写电子邮件一样,显然会和我给弟弟发短信的方式大不相同。
所以聊天gbt实际上也可以帮助产生不同的音调,所以让我们看一些例子,所以在第一个例子中,提示是将以下内容从俚语翻译成商务信函。
老兄,我是乔,看看立灯的规格,所以让我们执行这个。
如你所见,我们有一封更正式的商务信函,其中有关于立灯规格的建议。
接下来我们要做的是在不同的格式之间进行转换,Chart gbt非常擅长在不同格式之间进行翻译,如json到html um,你知道的,XML,各种各样的事情,降价,因此,在提示符中。
我们将描述输入和输出格式,所以这里有一个例子,所以我们有了这个json,它包含了一个餐馆员工的列表,上面有他们的名字和电子邮件,然后在提示符中,我们将要求模型将其从json转换为html。
因此,提示符是将下面的python字典从json转换为html表,带有列标题和标题。
然后我们从模型中得到响应并打印出来。
所以这里我们有一些,嗯,显示所有员工姓名和电子邮件的html。
现在让我们看看我们是否真的可以查看这个html,所以我们将使用这个python库显示html中的显示函数。
在这里,您可以看到这是一个格式正确的html表。
我们要做的下一个转换任务是拼写检查和语法检查,这是一种非常流行的聊天用途,GBT我强烈建议这样做,我一直都这么做,当你用非母语工作时,它尤其有用,下面是一些常见的语法和拼写问题的例子。
以及语言模型如何帮助解决这些问题。
所以我要粘贴一个句子列表,有一些语法或拼写错误。
然后我们将循环这些句子中的每一个,然后呢,请模特校对一下这些,释放和纠正,然后我们将使用一些分隔符,然后我们会得到回应,并像往常一样打印出来。
所以这个模型能够纠正所有这些语法错误,我们可以使用我们之前讨论过的一些技术,所以我们可以改进提示符。
我们可以说,校对并更正以下文本。
并重写,重写整个,并重写更正,版本,如果您没有发现任何错误,只说没有发现错误,我们试试这个,所以这样我们就能。
啊,这里还在用引号,但你可以想象你能找到一种方法。
通过一点点迭代快速开发。
找到一个每次都能更可靠地工作的提示符,现在我们再举一个例子,在你把你的文章发布到公共论坛之前检查一下总是很有用的,所以我们将通过一个检查评论的例子,这里有一篇关于毛绒熊猫的评论。
所以我们要请模特校对并纠正评论。
太好了,所以我们有了这个更正版本。
然后呢,我们可以做的一件很酷的事情是,找出我们最初的评论和模型输出之间的差异。
所以我们要用这个。
嗯红线Python包做到这一点。
我们将得到我们评论的原文和模型输出之间的差异。
然后显示这个。
所以在这里你可以看到原始评论和模型输出之间的差异。
已经被纠正的事情,因此,我们使用的提示是校对和更正这篇评论。
但你也可以做出更戏剧性的改变。
语气的变化,而那种事情,所以让我们再试一次,所以在这个提示中,我们将要求模特校对并纠正同样的评论。
但也要使它更引人注目,并确保它遵循apa风格,以高级读者为目标。
我们还将要求以降价格式输出,所以我们在这里使用了原始评论中的相同文本。
所以让我们执行这个。
这里我们有一个扩展的apa风格的软熊猫评论。
这就是接下来的变身视频,我们有扩展,我们取一个较短的提示符,生成一个较长的提示符。
【ChatGPT提示词工程师】 DeepLearning.AI - P7:第7集 扩展 - 吴恩达大模型 - BV1Wf421q7cd
扩展是将短文变长的任务,如一组指令或话题列表。
让大型语言模型生成更长的文本。
如电子邮件或关于某主题的论文,这有一些很好的用途,如使用大型语言模型作为头脑风暴伙伴,但我也想承认,这有一些问题用例,如有人用它生成大量垃圾邮件,所以当你使用大型语言模型的这些能力时,请负责任地使用。
以帮助视频内的人。
我们将举一个例子,如何使用语言模型。
生成个性化邮件,邮件自称来自AI机器人。
如你所说,这很重要。
我们还将使用另一个,模型的输入参数:温度。
允许你改变探索和多样性,那么让我们开始吧。
在我们开始之前,我们将要设置常规配置。
设置Open AI Python包,然后定义辅助函数。
获取完成,现在我们将编写一个定制的客户电子邮件回复。
因此,给定客户评论和情感,我们将生成一个定制的响应,现在我们将使用语言模型生成一个定制的电子邮件给客户。
基于客户评论和评论的情感,我们已经提取了情感,使用我们在环视频中看到的提示,这是搅拌机的客户评论。
现在我们将根据情感定制回复。
所以这里是指令,你,你是一个客户服务AI助手,你的任务是发送一封电子邮件回复给一位贵宾客户,给定由三个反引号分隔的客户电子邮件,生成回复感谢客户对他们的评论,若情感正面或中性,感谢其评论。
若情感负面,道歉并建议联系客服,确保使用评论中的具体细节,以简洁专业语气书写并签名,作为AI客服,当使用语言模型生成文本,将展示给用户时,这种透明性非常重要。
让用户知道他们看到的文本由AI生成,然后输入客户评价和情感,注意这部分并不重要。
实际上可以用这个提示提取情感,然后跟进写邮件,仅作示例。
嗯,已从评价提取情感,这是对客户的回应。
涉及客户评价中提到的细节。
按指示。
建议联系客服,因这只是AI客服。
将使用语言模型的温度参数,以改变模型响应的多样性,可把温度视为探索程度,或模型的随机性,对于这个短语,我最喜欢的食物最可能是披萨,接下来可能是寿司和玉米卷,在温度为0时,模型总会选择最可能下一个词。
即披萨,在更高温度下会选不太可能词,甚至在更高温度下可能选玉米卷,只有5%几率被选,想象模型继续响应,我最喜欢的食物是披萨,继续生成更多词,此响应将偏离,第一个响应,即我最喜欢的食物是玉米卷。
随着模型继续,这两个响应将越来越不同,当构建需要可预测响应的应用时,推荐在所有视频中使用温度0,我们一直在用温度0,若要构建可靠和可预测系统,应选择这个,若要更创意地使用模型,可能需要更高温度。
所以用同样的提示,尝试生成邮件,但使用更高温度,在我们的get completion函数中,已指定模型和温度。
现在让我们使用相同的提示。
尝试生成邮件,但使用更高温度。
在我们的get completion函数中,已指定模型,和温度。
但我们已设为默认,现在尝试改变温度,我们使用提示,然后,尝试温度0。7。
所以每次执行相同提示。
你应该期待,嗯,相同完成。
而温度0。7,每次输出都不同,所以这里我们有。
嗯,我们的邮件,如你所见,与之前收到的不同。
再执行一次,显示每次都会得到不同邮件。
这里又有另一封不同邮件。
所以我建议你,嗯,自己玩玩温度。
现在可以暂停视频,尝试不同温度。
看看输出如何变化。
总结一下,嗯,在高温下,模型输出更随机,几乎可以认为高温下,助手更容易分心。
但可能更有创意,在下一个视频中,我们将讨论更多聊天完成,端点格式。
【ChatGPT提示词工程师】 DeepLearning.AI - P8:第8集 聊天机器人 - 吴恩达大模型 - BV1Wf421q7cd
关于大型语言模型的一个令人兴奋的事情是,您可以使用它来构建一个自定义聊天机器人,只需适度的努力,聊天GPT Web界面是一种让你拥有国家界面的方式。
基于大型语言模型的作文。
但有一件很酷的事情是,您还可以使用大型语言模型构建自定义聊天机器人。
也许扮演一个人工智能客服代理或餐馆的人工智能点菜员的角色。
在这个视频中,你将学习如何为自己做到这一点,我将更详细地描述打开ai聊天完成格式的组件。
然后你要自己造一个聊天机器人,所以让我们进入它,因此,首先我们将像往常一样设置openai python包,所以像聊天CBT这样的聊天模型实际上被训练成接受一系列消息作为输入。
并返回模型生成的消息作为输出,因此,尽管聊天格式是为了让像这样的多轮对话变得容易而设计的,我们已经看过之前的视频了,它对没有任何对话的单学期任务也同样有用,接下来我们要定义两个助手函数。
所以这是我们在所有视频中一直使用的,它是得到完成函数。
但如果你仔细看,我们给出提示,但在函数内部,我们实际上要做的是把这个提示放入看起来,嗯看起来像是某种用户信息,这是因为聊天CBT UM模型作为聊天模型,这意味着它被训练成接受一系列消息作为输入。
然后返回um模型生成的消息输出,所以用户消息是一种输入。
然后辅助消息是输出。
所以在这个视频中,我们实际上将使用一个不同的帮助函数,而不是把一个提示作为输入,得到一个完成。
我们将传递一系列信息。
这些信息可以来自各种不同的角色。
所以我来描述一下,下面是一个消息列表的示例,所以第一条信息是一个系统信息,它给出了一个全面的指令,在这条信息之后,我们有,在用户和助手之间切换,这种情况会继续下去。
如果你曾经使用过聊天CBT的Web界面,那么你--你的消息是用户消息,然后聊天GPT的消息是助手消息,因此,系统消息有助于设置助手的行为和角色,它对谈话起到了很高的指导作用。
所以你可以把它想象成在助手耳边窃窃私语,在用户不知道系统消息的情况下引导它响应。
所以作为用户,如果你曾经使用过聊天GBT,您可能不知道聊天gbt的系统消息中有什么,这就是我的意图,系统消息的好处,它为开发人员提供了一种框架对话的方法,在没有提出请求的情况下,谈话的一部分。
所以你可以引导助手在它耳边低语,并在不使用户意识到的情况下引导其响应。
所以现在让我们试着在对话中使用这些信息。
因此,我们将使用新的helper函数从消息中获得补全。
我们还使用了更高的温度,所以系统信息说你是一个说话像莎士比亚的助手,所以这是我们向助手描述它应该如何表现。
然后第一条用户信息告诉我一个笑话。
接下来是鸡为什么要过马路,然后最终的用户消息是。
我不知道,所以如果我们运行这个,到达另一边的反应,我们再试一次,才能到达彼岸,首先,莎拉夫人是一个古老的经典,从来没有失败过,所以有莎士比亚式的回应。
让我们再试一件事。
因为我想说得更清楚,嗯这是助理留言,所以在这里,让我们去打印,嗯,整个消息响应。
所以为了让这一点更清楚,嗯,此响应是辅助消息,所以作为助理的角色,然后内容就是信息本身。
这就是在这个helper函数中发生的事情,我们只是在传递信息的内容。
现在让我们再举一个例子,所以我们的信息是,系统消息为,你是个友好的聊天机器人,第一条用户消息是嗨,我叫伊莎,我们想,获取第一条用户消息,因此,让我们对第一个助手消息执行此操作。
所以第一条信息是你好,伊萨,很高兴见到你。
今天我能帮你什么忙吗。
现在让我们试试另一个例子,所以我们的信息是,嗯,系统消息。
你是个友好的聊天机器人,和第一条用户消息,是呀,你能提醒我,什么,我叫什么名字,让我们得到回应,如你所见,模特其实不知道我的名字。
因此,与语言模型的每个对话都是独立的交互,这意味着您必须提供所有相关的消息,以便模型在当前对话中从中提取。
如果你想让模型从,或引用未引用,记住对话的前面部分,您必须在模型的输入中提供早期的交换,所以我们将此称为上下文,所以让我们试试这个。
所以现在我们已经给出了模型需要的上下文。
嗯,在之前的留言里是我的名字,我们会问同样的问题。
所以我们会问我叫什么名字,模型能够响应,因为它有它需要的所有上下文,嗯,在我们输入给它的这种消息列表中。
所以现在你要建立你自己的聊天机器人,这个聊天机器人将被称为Autobot,我们将自动收集用户提示和助手响应,为了建造这个汽车人,它将在一家披萨餐馆接受点菜,首先我们要定义这个helper函数。
它所做的是,它会收集我们的用户信息,这样我们就不用用手打了,就像我们上面所做的那样。
这将从下面构建的用户界面中收集提示,然后将其追加到名为上下文的列表中,然后它每次都会调用具有该上下文的模型,然后模型响应也被添加到上下文中,因此,模型消息的类型被添加到上下文中。
用户消息被添加到上下文中,所以它只是长得越来越长。
这边请,模型有确定下一步做什么所需的信息,所以现在,我们将设置并运行这种用户界面来显示汽车人。
所以背景是这样的,它包含包含菜单的系统消息,并注意每次我们调用语言模型时,我们将使用相同的上下文,上下文随着时间的推移而积累。
然后让我们执行这个。
好的,好的,我去打个招呼,我想订一个披萨,助理说很好,您想点什么比萨饼?我们有意大利辣香肠奶酪和茄子披萨。
嗯哼,多少钱?
好极了,好啦,我们有价格,我想我感觉到一个中号茄子,披萨。
所以你可以想象,我们可以继续这个对话。
让我们看看我们在系统消息中添加了什么,所以你是在为披萨店收集订单的自动化服务,你先招呼客人,然后收集订单,然后再问是取货还是送货,你等着领取整个订单,然后总结一下,最后检查一次,如果客户想添加其他内容。
如果是快递的话,你可以问一个地址,最后你收了钱,确保澄清所有选项,从菜单中唯一标识项的附加项和大小。
你是个污点,你以简短的方式回应,非常健谈,菜单包括友好的风格,然后这里是菜单。
所以让我们回到我们的谈话。
嗯,让我们看看助手是否遵循了指示。
好的很好,助手问我们是否需要我们在系统消息中指定的浇头。
所以我想我们不需要额外的浇头。
当然有东西,我们还要点什么吗?
嗯,我们去喝点水,其实呢。
薯条。
小的或大的。
这很棒,因为我们有点,嗯,请系统消息中的助手澄清额外的和方面。
所以你明白了,请随意自己玩这个。
嗯,你可以暂停视频,把这个记在你左边的笔记本上。
所以现在我们可以要求模型创建一个JSON摘要,我们可以根据对话发送到订单系统,所以我们现在添加另一条系统消息,它是一个指令,我们是说创建一个JSON总结以前的食物订单,逐项列出每件商品的价格。
田地应该是一个披萨,包括侧面,两份配料清单,三份饮料清单,和四个边的列表,最后是总价。
你也可以在这里使用用户消息。
这不一定是系统消息,让我们执行这个,注意在这个例子中,我们使用了一个较低的温度。
因为对于这些类型的任务,我们希望输出是相当可预测的,对于会话代理来说,你可能想用更高的温度,然而,在这种情况下,我可能会使用较低的温度以及。
因为对于一个客户助理来说。
您可能还希望输出更可预测一点。
所以这里我们有我们订单的摘要,所以我们可以把这个提交给订单系统。
如果我们想,所以我们有了它,你已经建立了自己的订单聊天机器人,你可以自己定制,并玩弄系统消息来改变聊天机器人的行为。
【ChatGPT提示词工程师】 DeepLearning.AI - P9:第9集 总结 - 吴恩达大模型 - BV1Wf421q7cd
祝贺完成本短课程,总结。
在这短课程中,你学习了两种关键提示原则,写清晰具体指令。
在适当情况下,给模型思考时间,你还学习了迭代提示开发。
以及有一个过程找到提示是正确的,对于你的应用是关键。
我们还浏览了大型语言模型的一些有用功能。
特别是总结,推理,转换和扩展。
你也看到了如何构建自定义聊天机器人,那很多,你在短短一课中学到的,我希望你喜欢浏览这些材料,我们希望你能想出一些你可以自己构建的应用想法,请尝试并让我们知道,你想到的,没有应用太小。
你知道从一个小项目开始很好,也许有一点实用性,或者甚至根本没用,只是有趣,是的,我发现玩这些模型实际上很有趣,所以去玩吧,是的,我同意这是一个很好的周末活动,基于经验,嗯,你知道。
请使用你第一个项目的学习来构建更好的第二个项目,也许甚至更好的第三个项目等等,这就是我自己使用这些模型成长的方式,或者如果你有一个更大的项目想法,已经,就去做吧,嗯,作为一个提醒。
这些大型语言模型是非常强大的技术,所以不用说,我们要求你负责任地使用它们,并且请只构建那些将产生积极影响的东西,完全同意,我认为在这个时代,构建人工智能系统的人可以对他人产生巨大影响,因此。
我们所有人都负责任地使用这些工具比以往任何时候都更重要,嗯,我认为构建大型语言模型基于的应用是一个令人兴奋和不断增长的领域,现在你已经完成了这门课程,我认为你现在拥有丰富的知识来构建。
今天很少有人知道如何构建的东西,希望你也帮助我们宣传,鼓励他人参加这门课程,最后,希望你学得开心,感谢你完成这门课程。
【大模型微调】 DeepLearning.AI - P1:1-介绍 - 吴恩达大模型 - BV1mT421a78i
欢迎微调,周莎伦教授的大型语言模型,很高兴来到这里,当我和不同的团体一起参观时,我经常听到人们问,如何在自己的数据或任务中使用这些大型语言模型。
而您可能已经知道如何提示大型语言模型。
本课程讨论了另一个重要的工具,专门对它们进行微调,如何服用,假设一个开源LM,并在您自己的数据上进一步训练它,在写提示符时,可以很好地让LM按照指示执行任务,比如提取关键词或将文本分为积极或消极的情绪。
如果你微调,然后你可以让lm更加始终如一地做你想做的事情,我发现它促使NLM以某种风格说话,比如更乐于助人或更有礼貌,还是简洁与冗长,在一定程度上,这也可能具有挑战性,微调。
原来也是一个很好的方法来调整一个lm的语气,人们现在意识到聊天的惊人功能,GBT和其他流行的LLMS回答关于广泛主题的问题,但是个人和公司希望拥有与他们自己相同的界面,私人和专有数据。
其中一个方法是用你的数据训练一个LLM,当然,训练一个基础LM需要大量的数据,可能是数千亿甚至超过万亿字的数据,和海量的GPU计算资源。
但通过微调,您可以利用现有的lm并根据自己的数据进一步训练它。
所以在本课程中,你将学习什么是微调,当它可能对您的应用程序有帮助时,微调如何适应训练,它与即时工程或检索有何不同,单独增强型,以及这些技术如何与微调一起使用,你将深入到一个特定的微调变体。
GPT三进入聊天,GBT称为指令微调,它教导一个LLM遵循指示,最后,你将经历微调你自己的LLM的步骤,准备数据,训练模型,并在代码中评估这一切。
本课程是为熟悉Python的人设计的,但是要理解所有的代码,有助于进一步掌握深度学习的基础知识,比如训练的过程是什么,神经网络就像。
说什么呢,列车测试分裂,这门课做了很多艰苦的工作,我们要感谢拉米尼团队和魏妮娜,尤其是在设计方面,以及深度学习,艾方,汤米·尼尔森和杰夫·洛德维大约一个小时后。
通过这个短暂的课程,你对如何建立自己的LM有了更深的理解,通过微调和现有的LM对您自己的数据。
【大模型微调】 DeepLearning.AI - P2:2-为什么要微调 - 吴恩达大模型 - BV1mT421a78i
在这节课中,你将学习为什么你应该微调,微调到底是什么,将其与即时工程进行比较,去实验室,你可以比较一个微调模型和一个非微调模型,酷,我们开始吧好的,所以你为什么要在我们跳入。
为什么,让我们来谈谈微调到底是什么。
所以微调是把这些通用模型,比如GPT 3,把它们专门化到聊天CBD之类的东西上。
使其良好聊天的特定聊天用例,或者使用gpt 4把它变成一个专门的github。
副驾驶用例自动完成代码,初级保健医生就像你的通用模型,你每年都去你的CPP做一次全面检查,但一个微调或专门的模型就像心脏病专家或皮肤科医生。
有特殊专长的医生,实际上可以更深入地治疗你的心脏问题或皮肤问题。
那么微调实际上对您的模型有什么作用。
它使你有可能给它更多的数据。
比符合提示符的东西,这样你的模型就可以从数据中学习。
而不仅仅是获得它,从这个学习过程中,它能够从PCP升级到更专业的东西。
就像皮肤科医生,所以你可以在这个图中看到,你可能会有一些症状输入到模型中,像皮肤刺激。
红肿,瘙痒,而基础模型,哪款是通用的,可能会说这可能是痤疮,根据皮肤病学数据微调的模型。
但是,可能会有同样的症状,并能给你一个更清楚的。
更具体的诊断,除了学习新信息,微调还可以帮助引导模型获得更一致的输出,或更一致的行为。
例如,当你问它的时候,你可以在这里看到基础模型,你的名字是什么?它可能会回答你姓什么,因为它看到了太多关于不同问题的调查数据。
所以它甚至不知道它应该回答这个问题,但是一个微调的模型,相比之下,当你问的时候,你能清楚地回答你的名字吗?
我叫莎伦,这个机器人可能是在我身上训练的,除了引导模型获得更一致的输出或行为之外。
微调可以帮助模型减少幻觉,这是一个常见的问题,模型编造东西。
也许它会说我的名字是鲍勃,当这是在我的数据上训练的时候。
我的名字绝对不是鲍勃,微调使您能够根据特定的用例定制模型。
在微调过程中,我们稍后会更详细地讨论,它实际上与模型早期的训练食谱非常相似。
所以现在把它和你可能更熟悉的东西进行比较。
快速工程,这是您在大型语言模型中已经做了一段时间的事情,但也许在过去的十年里,谷歌,它只是在编辑查询时放置一个查询,更改您看到的结果,所以有很多好处来提示,一个是你真的不需要任何数据就可以开始。
你可以开始和模特聊天,有一个较小的前期成本,所以你真的不需要考虑成本。
因为每次你呼叫模型,没那么贵,你并不真的需要技术知识来开始,你只需要知道如何发短信。
很酷的是,现在有一些方法可以使用,比如检索,增强型发电,或抹布将更多数据连接到它,有选择地选择现在进入提示符的数据类型,当然如果你有更多的数据,那么它可能不适合提示符,所以你不能用那么多数据,通常。
当你试图适应大量的数据时,不幸的是,它会忘记很多数据,幻觉有问题,当模特编造东西的时候,很难纠正那些不正确的信息。
它已经学会了,当使用检索时,增强生成可以很好地连接您的数据。
它也会经常错过正确的数据,得到不正确的数据并导致模型输出错误的东西,微调是一种相反的提示,所以你实际上可以容纳几乎无限量的数据,这很好,因为模型可以在数据上学习新的信息,结果。
你可以纠正它以前可能学到的不正确的信息,甚至放入它以前没有了解到的最近的信息,事后花费较少,如果你做得很好,调谐较小的模型,如果你想用很长时间来测试这个模型,这一点尤其重要,所以有很多吞吐量。
或者你希望它能处理更大的负载,而且检索增强生成也可以在这里使用。
我想有时人们认为这是一件单独的事情,但实际上你可以用它来处理这两种情况,所以你也可以把它和更多的数据连接起来。
即使它知道了所有这些信息,有缺点,但是,你需要更多的数据,数据必须有更高的质量才能开始。
还有一个前期计算成本,所以不一定是免费的,这不仅仅是几块钱刚开始,当然,现在有免费的工具可以开始,但实现这一目标所涉及的计算机远不止是提示。
通常你需要一些技术知识来把数据放在正确的地方,尤其是你知道,围绕着这个数据片段。
你知道现在有越来越多的工具,那就容易多了。
但你仍然需要对这些数据有所了解,而你没有,你不必只是一个会发短信的人。
必要的,所以最后这意味着。
你知道这对通用用例很好,它非常适合不同的附带项目和原型。
刚开始就很棒,真的真的很快,同时,微调对于更多的企业或领域特定用例来说是很好的。
并用于生产用途。
我们还将讨论如何,在下一节中,它对隐私很有用,这就是微调自己LLM的好处。
所以如果你有自己的LLM,你微调了,你得到的一个好处是性能,所以这可以阻止LLM编造东西,尤其是在你的地盘上,它在这个领域可以有更多的专业知识,它可以更加一致,所以有时这些模型会产生,你知道吗。
今天有件很棒的事,但明天你就成功了,而且不再一致了,它不再给你那么大的产量了,因此,这是一种实际上使它更加一致和可靠的方法,你也可以让它更好地调节,如果你和气BT玩过很多,你可能见过Chachi BG。
说,对不起,我无法回应,你可以让它说同样的事情或不同的事情,这与您的公司或用例有关,以帮助与之聊天的人。
一次又一次地保持正轨,所以现在我想谈谈隐私,当你微调你自己的生命。
这可能发生在您的VPC中,或者前提,嗯,这可以防止数据泄漏。
以及可能发生的数据泄露,第三方解决方案。
所以这是保护数据安全的一种方法,你已经收集了一段时间了,那可能是最后几天,也可能是最近几十年,另一个你可能想要微调自己的LLM的原因是成本,一个是成本透明度,也许你有很多人使用你的模型。
您实际上希望降低每个请求的成本,然后微调一个较小的LLM实际上可以帮助你做到这一点。
总的来说,你对成本和其他几个因素有更大的控制。
这包括正常运行时间和延迟,您可以大大减少某些应用程序(如自动完成)的延迟,您可能需要低于200毫秒的延迟,这样做自动完成的人就感觉不到了,您可能不希望自动完成发生在30秒内。
目前运行GPT 4有时就是这种情况,最后是适度的,我们在这里已经讨论过了。
但基本上,如果你想让模特对某些事情说对不起。
或者说我对某些事情不知道,甚至有一个自定义的响应,这是一种为模型提供护栏的方法,最酷的是,你真的可以在笔记本上看到一个例子。
所以在所有这些不同的实验室里,你将使用许多不同的技术来微调。
所以有三个Python库,一种是由meta开发的pytorch。
这是您将看到的最低级别的接口,然后是一个很棒的图书馆,把脸抱在圆周率火炬上,许多伟大的工作已经完成。
而且水平要高得多,您可以非常容易地导入数据集和训练模型,最后你会看到美洲驼图书馆,我和我的团队一直在开发,我们称它为美洲驼图书馆,为所有伟大的美洲驼服务。
这是一个更高级别的接口,在那里你可以用三行代码训练模型好的。
所以让我们跳到笔记本上,并看到一些微调模型在行动。
好啦,所以我们要比较一个微调模型和一个非微调模型。
首先,我们再次从美洲驼库导入。
这是美洲驼的,基本模型转轮,这门课所做的就是。
它帮助我们运行开源模型,所以这些都是托管在Gpus上运行的开源模型。
有效地运行它们,你可以在这里运行的第一个模型是美洲驼模型。
现在很流行,而且这个没有微调。
所以我们要实例化它,基于此,它的拥抱脸名字,我们会说,告诉我如何训练我的狗坐下来,所以这只是,你知道的,这里真的真的很简单,进入非微调模型,我们要把输出输出出来,让我们打印出来。
输出并查看,好啦,所以我们问它,告诉我怎么训练我的狗坐,它说期间,然后告诉我怎么训练我的狗说。
告诉我怎么教我的狗来,告诉我怎么让我的狗痊愈,如此明显。
这与,你的名字是什么?你姓什么?回答,这个模型没有被告知或训练来实际响应该命令。
也许有点灾难,但让我们继续寻找,所以说,也许我们可以问它,你觉得火星怎么样。
所以现在你知道了,至少它回答了这个问题。
但这不是很好的反应,我认为这是一个伟大的星球,我认为这是一个好星球,我想这将是一个伟大的星球。
所以它一直很有哲理,甚至可能存在。
如果你继续读下去,像谷歌搜索查询这样的东西怎么样。
就像泰勒·斯威夫特最好的朋友,让我们看看它到底说了什么好吧,嗯,呃,泰勒最好的朋友,但是嗯,上面说这是泰勒·斯威夫特的超级粉丝,嗯,让我们继续探索,也许是一些可以看到的对话。
如果它能在像Chachi BT这样的对话中转弯,这是亚马逊送货订单的代理,好啦,所以至少它在这里做了不同的客户代理,但它并没有从中得到什么,这不是任何类型的可用的东西,比如假转弯或者帮助做一个汽车代理。
所以你已经看够了,让我们把它和美洲驼二号进行比较。
已经被微调成真正的聊天,所以我将实例化微调模型,注意这个名字,一切都不一样,是在这里聊天吗,然后我要让这个微调模型做同样的事情,所以告诉我怎么训练我的狗坐着,我要把它打印出来。
好啦,很有意思,所以你可以立即看出,所以告诉我如何训练我的医生说,它还在尝试自动完成,所以告诉我如何训练我的狗听命令坐着,但实际上它几乎是一步一步地,做什么的指南,训练我的狗冷静,这样好多了。
而真正摆脱这种额外的自动完成的方法,实际上是通知模型你需要指示,所以我把这些指示标签放在这里,这也是用来对付美洲驼的,当你微调自己的模型时,你可以使用不同的东西,但这有助于告诉模型,嘿嘿。
这些是我的指示,这些是界限,我受够了停止这个指令,停止,继续给我指示。
所以在这里你可以看到它不会自动完成,听命行事,为了公平起见,我们可以用这个,非微调模型实际上说得很好,它只是重复同样的事情或非常相似的事情,所以嗯,不太对,酷,我们继续往下走。
那么你觉得火星这个模型怎么样。
哎呦,这是一个迷人的星球,几个世纪以来人类的想象力,好啦,酷,所以这里输出的东西要好得多,泰勒·斯威夫特最好的朋友呢,让我们看看这个怎么样,好啦,这个很可爱,它有几个候选人,呃。
泰勒·斯威夫特最好的朋友,其实是,让我们来看看亚马逊送货代理的这些转变,好啦,上面写着,原来如此,你能给我你的订单号吗,这样好多了,它很有趣,因为在这里它也总结了正在发生的事情。
你知道这可能是你想要的,也可能不是,这将是你可以微调的东西。
现在我很好奇,聊天GPT会说什么,告诉我怎么训练我的狗坐着。
好啦,所以它给了,你也知道不同的步骤,好极了,好啦,请随意使用Chachi或任何其他模型来查看,他们还能做什么并比较结果,但很明显,我认为那些经过微调的,包括查奇BT和这只美洲驼LLM。
他们显然比现在没有微调的那个好,在下一节课中,我们要看看微调在整个训练过程中的作用,所以你会看到如何到达这里的第一步。
【大模型微调】 DeepLearning.AI - P3:3-微调在训练过程中的位置 - 吴恩达大模型 - BV1mT421a78i
在这节课中,您将了解微调真正适合培训过程的地方,它是在一个叫做预训练的步骤之后出现的,这将涉及到一点细节,然后你就可以学习所有不同的任务,你得把微调应用到,我们继续好吗,让我们先看看微调适合哪里。
让我们来看看预训练,这是微调发生之前的第一步,它实际上在一开始就需要一个模型,那完全是随机的,它对世界一无所知,所以它所有的重量,如果你熟悉权重是完全随机的,它根本不能构成英语单词,它还没有语言技能。
它的学习目标是下一个令牌预测,或者真的,你知道的,在简化的意义上,只是这里的下一个词预测,所以你看到这个词一次,所以我们希望它现在,预测这个词,但你会看到LLM只是产生SD感叹号,感叹号离这个词很远。
原来在那里,但它正在接收和读取一个巨大的数据语料库,经常从整个网络上刮下来,我们通常称之为无标签,因为这不是我们共同构建的。
我们刚从网上刮下来的,我会说它经历了很多很多的清洁过程,所以要得到这个数据集还有很多手工工作要做,对模型预训练有效,因为模型本质上是用下一个令牌预测来监督自己,它所要做的就是预测下一个词。
没有真正的标签,否则,在这里训练后,您可以看到,模型现在能够预测单词on或令牌,或在,嗯,这是习得的语言,它从网上学到了很多知识,所以这个过程实际上是以这种方式工作的,这太棒了,而且很神奇。
因为它只是试图预测下一个令牌,它现在正在读取整个互联网的数据来这样做。
好啦,也许整个互联网上都有星号,从整个互联网上刮取的数据和数据,这背后的实际理解和知识往往不是很公开,人,我真的不知道数据集是什么样子的,对于许多大公司的闭源模型来说,但是路德有一个惊人的开源努力。
人工智能将创建一个名为桩的数据集,你将在这个实验室里探索,它是一套两个,从整个互联网上刮取的两个不同的数据集,在这张图中你可以看到,你知道有八十七年,这是林肯的葛底斯堡演说,还有林肯的胡萝卜蛋糕食谱。
当然还有从Pubmed上刮下来的,有关于不同医学文本的信息,最后,这里还有来自GitHub的代码,所以这是一组非常聪明的数据集,它们被精心策划在一起,为这些模型注入知识,现在呢。
这个预培训步骤是相当昂贵的,耗时实际上是昂贵的,因为模型太费时间了,检查所有这些数据,从完全随机到理解其中的一些文本,你知道的,整理胡萝卜蛋糕食谱,同时也编写代码。
好啦,所以这些预先训练的基于模型很棒,实际上有很多都是开源的,但你知道它是在网上的这些数据集上训练的,它可能有地理作业,你可能会在左边看到,它问印度的首都是什么,肯尼亚的首都是什么。
法国的首都到底是什么,你知道在没有看到答案的情况下,所以当你输入墨西哥的首都,LM可能会说匈牙利的首都是什么,正如你所看到的,它并不真正有用。
从聊天机器人界面的意义上,那么如何将其发送到聊天机器人界面,嗯,微调是让你到达那里的方法之一,它应该是你工具箱里的一个工具,所以预训练是让你得到基本模型的第一步,当您在,实际上没有那么多数据,嗯。
您可以使用微调来获得微调的模型,实际上即使是一个微调的模型,之后可以继续添加微调步骤,所以微调真的是之后的一步,您可以使用相同类型的数据,实际上,您可以从不同的来源刮取数据,并将其整理在一起。
你很快就会看到的,所以这可以是这句话,未引用未标记数据,但您也可以自己管理数据,使它更结构化,以便模型了解,我认为微调和预训练的区别在于,所需的数据要少得多,你是建立在这个基础模型上的。
已经学会了这么多知识和基本的语言技能,你真的把它提升到了一个新的水平,你不需要那么多数据,所以这真的是你工具箱里的一个工具,如果你来自其他机器学习领域,你知道这是对区分任务的微调,也许你在处理图像。
你一直在微调图片,你会发现这里对微调的定义有点松散,对于生成性任务来说,它没有很好的定义,因为我们实际上是在更新整个模型的权重,不仅仅是一部分,对于微调来说,其他类型的模型。
所以我们在这里的训练目标和预训练是一样的,用于微调,下一个令牌生产,我们所做的就是改变数据,所以它在某种程度上更有条理,模型在输出和模仿这种结构时可以更加一致。
还有更先进的方法来减少你想更新这个模型的程度,我们稍后再讨论这个。
那么微调到底为你做了什么,所以你现在就知道是什么了,但是有哪些不同的任务呢,所以你实际上可以很好地处理它,我喜欢思考的一个大类别是行为改变,你在改变模型的行为,你说得很对,你知道在这个聊天界面里。
我们现在在聊天,我们不是在调查,因此,这导致模型能够更一致地做出反应,这意味着模型可以更好地聚焦,也许这对适度更好,例如,它通常也只是在梳理它的能力,所以在这里它更擅长交谈。
所以它现在可以谈论各种各样的事情,与之前相比,我们必须做大量的快速工程,为了梳理出这些信息,微调还能帮助模型获得新知识,所以这可能是围绕着特定的主题,而这些主题不在这个基础上,预训练模型。
这可能意味着纠正旧的不正确信息,所以也许你知道,您希望模型实际注入的更多最新信息,当然,更常见的是,你用这些模型同时做,所以你经常改变行为,你想让它获得新的知识,所以把它降低一个等级。
所以微调的任务,只是给llms发短信而已,我喜欢把它分为两个不同的类别,所以你可以考虑一下,一个作为提取文本,所以你把文本放进去,你得到的短信更少,所以很多工作都在阅读,这可能是提取关键字。
您可能正在路由的主题,你知道的,根据你看到的所有数据,你路由聊天,例如,这里有一些API或其他不同的代理,就像不同的代理能力,这与膨胀形成鲜明对比,所以这就是你把文本放进去的地方,你会得到更多的短信。
所以我喜欢把它看作是写作,所以这可能是聊天,写电子邮件,编写代码,真正理解你的任务,这两个不同任务之间的区别,或者您有多个任务需要微调,是我发现的最明显的成功标志,所以如果你想成功。
我对模型的微调越来越清楚你想做什么任务,清晰真的意味着知道什么是,你知道一个好的,你知道好的输出是什么样子的。
输出是什么样子的,但更好的产出是什么样子的,因此,当您知道某些东西在编写代码方面做得更好时,或者在路由方面做得更好。
这项任务确实能帮助你微调这个模型,使它做得很好,好啦,所以如果这是你第一次微调,我推荐几个不同的步骤,因此,首先通过提示设计一个大型LLM来确定一个任务,那可能是查奇BT,例如。
所以你只是在玩chgbt,像平时一样,你找到一些,你知道它正在做的任务,好啦,是啊,是啊,所以不是很好,但也不可怕,所以你知道在可能的范围内,但它不是,它不是最好的,你希望它为你的任务做得更好。
所以选一个任务选一个然后选第四个,嗯,获取该任务的一些输入和输出,所以你发了一些短信,你发了一些短信,输入输入文本输出文本,为了完成这项任务,我喜欢用的一个黄金数字是一千,因为我发现这是一个很好的起点。
你需要大量的数据。
并确保这些输入和输出比OK更好。
LLM的结果,在你不能一直产生这些输入输出之前,所以要确保你有这些数据对,你也会在实验室里探索这个,整个管道,从那个开始,然后你要做的就是,然后,您可以对这些数据微调一个小LLM。
只是为了感受一下性能的提升,所以只有当你第一次,这是我推荐的,所以现在让我们跳进实验室,在那里你可以探索用于预训练的数据集,微调与微调,所以你很清楚这些输入输出对是什么样子的。
好啦,因此,我们将从导入几个不同的库开始,所以我们要运行它,我们要使用的第一个库是数据集,图书馆从拥抱脸,他们有一个很棒的功能,叫做负载数据集,在那里,你可以从他们的集线器上提取一个数据集。
并能够运行它。
所以在这里我要提取训练前的数据集,叫做堆,你只是看到了更多,而在这里,我抓住了分裂,即训练与测试,我实际上在抓流媒体,等于真,因为这个数据集很大,如果不弄坏这个笔记本,我们就不能下载它。
所以我要一次一个地播放,这样我们就可以探索里面不同的数据,所以只要把它装起来。
现在我要看看前五个,所以这只是使用迭代工具。
很好好的,所以你可以在预先训练的数据集中看到,这里有很多数据看起来像是刮的,所以你知道这篇文章说它已经完成并提交了,你可以在Android上玩TCS的生存,这是一个例子,让我们看看能不能找到另一个。
这里还有一个,所以这只是被刮掉的代码,被刮除的XML代码,这是另一个数据点,这里,您将看到文章内容,你会看到这个主题,你知道的,亚马逊宣布在AWS上提供新服务,然后这里是关于你知道的,大满贯钓鱼包机。
所以这是一个家族企业,所以这就是,你知道,只是不同数据集的大杂烩,基本上是从互联网上刮下来的,我想把它和微调数据集进行对比,你将在不同的实验室使用,我们要抢一家公司,问答对数据集。
你知道从常见问题解答中刮下来的,并整理了内部工程文件,它叫拉米尼医生,是关于公司的,拉米尼,嗯,所以我们将阅读JSON文件,去看看里面有什么,好啦,所以这是更结构化的数据,对吧,所以这里有问答对。
这是关于这家公司的非常具体的。
所以使用这个数据集的最简单方法是连接。
其实这些问题和答案一起,把它送进模型里,这就是我要做的,我要把它变成一个迪克,然后我要看看把其中一个连接在一起是什么样子的。
把问题串联起来。
在这里给出答案,当然,你可以用任何可能的方式准备你的数据。
我只想说出几种不同的常见方法,对你的数据进行格式化和结构化,问答配对,但也有指令和响应对。
输入输出对,只是在这里很普通,你也可以拥有它,反正我们是连在一起的,这只是你在上面看到的文字,好啦,所以把它连接起来,你知道这很简单,但有时这就足以看到结果,有时不是,嗯,因此。
您仍然会发现模型可能需要更多的结构来帮助它。
这与快速工程非常相似,其实呢,所以更进一步,您还可以使用以下指令处理数据,在这种情况下,问答提示模板,这里有一个常见的模板注释。
在问题之前有一磅一磅,一种标记,这样就可以很容易地用作结构。
告诉模特期待接下来会发生什么,它在看到问题后期待一个问题,它还可以帮助您发布处理模型的输出。
即使经过微调,所以我们有那个,因此,让我们来看看这个提示符模板的运行情况。
看看这与串联的问答有什么不同。
所以在这里你可以看到,提示模板就是这样,问题和答案在那里干净利落地完成了。
通常,将输入和输出分开是有帮助的,所以我要把答案去掉把它们分开,因为这所房子只是很容易地使用数据集进行评估,因为你知道,当您将数据集拆分为训练和测试时,所以现在我要做的是把所有这些。
你知道的,将所有此模板应用于整个数据集。
所以只要在上面运行一个for循环,只是及时补水,所以这只是,你知道的,用f字符串或格式将该问题和答案添加到其中。
这里有蟒蛇的东西好吧,所以让我们来看看这篇文章之间的区别。
唯一一件事,和问答形式。
酷,所以只有文本,你在这里输入的都是串联的,这是一个问题的答案,更有条理,你可以用任何一个,但当然,我确实建议对它进行结构化,以帮助评估。
基本上就是这样,存储这些数据的最常见方式通常是在json行文件中。
所以JSON L文件,Json l,基本上就是,您知道每一行都是一个json对象。
就这样了,所以只是把它写在那里归档,你也可以在拥抱脸上上传这个数据集,如下所示。
因为你以后也可以用这个。
接下来你可以像这样把它从云中拉出来,你将深入研究一种特殊的微调变体,称为指令。
【大模型微调】 DeepLearning.AI - P4:4-指令微调 - 吴恩达大模型 - BV1mT421a78i
在这节课中,你将学习指令微调,使gpt 3变成聊天的微调变体,GPT并赋予它聊天的能力,好啦,让我们开始给我们所有的模特聊天的能力,好啦,所以让我们深入研究什么是指令微调,指令微调是微调的一种。
你可以做的所有其他任务,就像推理,路由,副驾驶,就是写代码,聊天,不同的代理,但特别是微调指令,你也可能听到过指令曲调或以下指令,LLMS教模型遵循指令,表现得更像聊天机器人。
这是一个更好的用户界面来与模型交互,就像我们在查奇BT看到的那样,这就是把gpt 3变成聊天gbt的方法,这极大地增加了像我这样的少数研究人员对人工智能的采用,对千千万万的人,所以对于下面指令的数据集。
您可以使用许多已经存在的现成的,在线或特定于您的公司,这可能是常见问题解答,客户支持对话或松弛消息,所以它真的是这个对话数据集,或者只是指令响应数据集,当然啦,如果你没有数据,没问题。
您还可以将数据转换为更多的问答格式,或遵循格式的指令,通过使用提示模板,所以在这里你可以看到,你知道吗,读我可能会变成一对问答,你也可以用另一个LLM为你做这件事,有一种技术叫羊驼。
斯坦福大学使用聊天gbt来做到这一点,当然,您可以使用不同开源模型的管道来做到这一点,也是,酷,所以微调最酷的事情之一,我认为它教会了模型这种新的行为,虽然你知道你可能有微调数据,法国的首都是什么?
因为这些是简单的问答对你可以得到,您还可以推广这种对数据进行问题回答的思想,您可能没有给出微调数据集的模型,但模型已经在它先前存在的,训练前的步骤,所以这可能是代码,这实际上是聊天GBT论文的发现。
模型现在可以回答关于代码的问题,尽管他们没有关于这个的问答对,为了他们的指导微调,这是因为让程序员去真的很贵,你知道的,有标签的数据集,他们在其中询问关于代码的问题并为其编写代码。
所以微调的不同步骤概述,我们的数据准备,培训和评价,当然啦,在你评估模型之后,你需要再次准备数据来改进它,改进模型是一个非常迭代的过程,专门用于指导,微调和其他不同类型的微调。
数据准备是你真正有差异的地方,这真的是你,你知道的,更改数据,您可以根据特定类型的微调调整数据,你正在做的微调的具体任务,培训和评估非常相似,所以现在让我们潜入实验室。
在那里你可以看到用于指令调优的羊驼数据集,您还可以再次比较经过指令调优的模型和,还没有被指令调谐,你可以在这里看到不同尺寸的模型,所以首先导入几个库,第一个重要的是,从数据集库加载数据集函数。
让我们加载这个指令调谐数据集,这是指定羊驼数据集,我们再次流媒体,因为这实际上是一个庞大的微调数据集,没有那堆那么大,当然我们要把它装起来就像以前一样,你们要看几个例子,好啦,所以不像那堆。
不仅仅是短信,就是这里,它更有条理一点,但这不是你所知道的,明切,就像问答对一样,最酷的是,你知道吗,羊驼论文的作者,他们实际上有两个提示模板,因为他们希望模型能够使用两种不同类型的提示。
两种不同类型的任务,一个是你知道的一个指令,在那里有一组额外的输入,例如它,指令可能是加两个数字,输入可能是第一个数字是3,第二个数字是四,然后是没有输入的提示模板,你可以在这些例子中看到。
有时有一个输入是不相关的,所以它没有那个,所以这些是正在使用的提示模板,又是这样,和以前很像,您只需补充这些提示,并在整个数据集中运行它们,让我们打印出一对,看看它看起来很酷,这里是输入输出。
你知道它是如何水合到提示符中的,所以它以回应结束,然后它在这里输出这个响应,很酷,就像在将其写入JSON行文件之前一样,你可以上传到拥抱脸中心,如果你想,我们实际上已经把它装在拉米尼羊驼那里了。
这样它就稳定了,你可以去那里看看,你可以去用它,好的很好,现在您已经看到了数据集后面的指令是什么样子的,我想接下来要做的就是再次提醒你,告诉我如何训练我的狗在不同的模型上迅速坐下。
第一个是美洲驼二号模型,这又不是指令调谐,告诉我怎么训练我的狗,好啦,又从那个时期开始,就这么说,所以请记住之前和现在我们将再次比较,指令调谐模型就在这里,好啦,好多了,它实际上产生了不同的步骤。
最后我只想再次分享聊天GBT,所以你可以在这里做一个比较,好啦,所以这是一个更大的,你知道的,CBD的一套型号相当大,与美洲驼相比,两种模型,这些实际上是70亿个参数模型,据传Chgbt约为700亿。
所以非常大的模型,你们还将探索一些较小的模型,一个是7000万参数模型,我正在加载这些模型,这还不是超级重要,你以后会更多地探讨这个问题,但是我要加载两个不同的东西来处理数据,然后运行模型。
你可以看到这里,我们这里的标签是路德·艾·皮提亚七千万,这是一个七千万参数的模型,尚未调整指令,我要在这里粘贴一些代码,它是一个运行推理的函数,或者基本上在文本上运行模型,我们会通过。
你知道这些不同的部分,在这个函数中到底发生了什么,在接下来的几个实验室里,酷,所以这个模型还没有微调,它不知道一家公司的任何具体情况,但我们可以重新加载以前的公司数据集。
所以我们要从这个数据集中给这个模型一个问题,可能只是你知道测试集的第一个样本,例如,所以我们可以在这里运行这个,问题是lamini能否为软件项目生成技术文档或用户手册,实际的答案是肯定的。
Lame和我可以为软件项目生成技术文档和用户手册,它一直在继续,但是模型的答案是,我有一个关于以下内容的问题,如何获得正确的文档来工作,我认为您需要使用以下代码等,所以很离谱,当然是学英语。
里面有文字文档,所以它有点理解,也许我们是在一个问题的答案设置,因为它有一个答案,但这显然很离谱,因此,它并不完全理解这个数据集,就知识而言,也不明白我们期待的行为,所以它不明白它应该回答这个问题。
好啦,现在将它与我们为您微调的模型进行比较,但你实际上是在为接下来的教学微调,这就是加载这个模型,然后我们可以在这个模型中运行同样的问题,看看它是如何,它说是的。
Lame和我可以为软件项目生成技术文档或用户手册,等,所以这比以前的要准确得多,它遵循我们所期望的正确行为,好的很好,现在您已经看到了指令遵循模型的作用,下一步就是仔细检查你所看到的。
它的一个顶峰是标记器,如何准备我们的数据。
【大模型微调】 DeepLearning.AI - P5:5-准备数据 - 吴恩达大模型 - BV1mT421a78i
在探索了本课将使用的数据之后,你将学习如何为训练准备数据,让我们跳进去吧,所以接下来你需要准备好什么样的数据,有一些好的最佳实践,所以一个是你想要更高质量的数据,实际上,这是你微调所需要的第一件事。
而不是低质量的数据,我说的是什么意思,那就是,如果你给它,你知道垃圾输入,它会鹦鹉学舌,给你垃圾输出,所以提供高质量的数据很重要,其次是多样性,因此,拥有涵盖用例许多方面的不同数据是有帮助的。
你所有的输入和输出都是一样的,然后模型就可以开始记忆它们了,如果这不是你想要的,然后模型就会开始一遍又一遍地喷出同样的东西,所以在你的数据中有多样性是非常重要的,下一个是真实的或生成的。
我知道有很多方法可以创建生成的数据,你已经看到了一种使用LLM的方法,但实际上拥有真实的数据是非常,大多数时候非常有效和有帮助,尤其是那些写作任务,这是因为生成的数据已经有了一定的模式。
您可能听说过一些试图检测,是否生成了某物,这实际上是因为有模式和生成的数据,他们试图检测,结果呢,如果你用更多相同的模式训练,它不一定会学习新的模式或构建事物的新方法,最后我把这个放在最后。
因为实际上在大多数机器学习应用程序中,拥有更多的数据比拥有更少的数据更重要,但正如你刚才看到的,预训练处理了很多这个问题,预训从大量数据中学到了,你都是从网上知道的,所以它已经有了很好的基础理解。
不是从零开始的,因此,拥有更多的数据有助于模型,但不如前三名重要。
而且绝对没有质量重要,所以首先,让我们来看看收集数据的一些步骤,你们已经看到了一些指令响应对,所以第一步是收集它们,下一个是把这些对连接起来,或添加提示模板,你也看到了,下一步是标记数据,添加填充。
或截断数据,所以放进模型里的尺寸是合适的,你会在实验室里看到如何标记它,因此,准备数据的步骤是收集这些指令响应对,也许那是问答对,然后它将这些对连接在一起,或者像以前一样添加一些提示模板。
第三步是标记数据,最后一步是将这些数据分成训练和测试。
在象征什么,那到底是什么意思,嗯,标记数据是将文本数据,实际上把它变成数字,代表每一段文本,实际上不一定是通过文字,它是基于你知道的常见字符出现的频率,所以在这种情况下,我的最爱之一是img令牌。
这在标记者中很常见,这是因为这发生在每一个乔恩身上,所以在这里你可以看到微调,我不去,所以JD中的每一个动词,你知道微调或标记都有IMG,这映射到这里的代币278,当你用同样的标记器解码它时。
它又变成了同样的文本,现在有很多不同的标记器,标记器实际上与每个模型的特定模型相关联,因为它被训练在上面,如果你给你的模型错误的标记器,它会很困惑,因为它希望不同的数字代表不同的字母和单词。
所以确保你使用了正确的标记器,你会在实验室里看到如何轻松地做到这一点--很酷。
所以让我们去看笔记本,好啦,因此,首先我们将导入几个不同的库,实际上,这里最重要的一个是自动标记器类,从变形金刚图书馆通过拥抱脸。
它的作用是惊人的,它会自动为您的模型找到正确的标记器,当您只指定模型是什么时,所以你所要做的就是给模型起一个名字,这和你以前看到的型号名字一样,价值七千万的巨蟒模型,好啦,所以也许你有一些短信说。
你知道嗨,你现在怎么样,让我们把那篇文章标记一下,所以把它放在嘣里,所以让我们看看什么编码文本是好的,所以这里有不同的数字表示文本,标记器输出一个带有表示标记的输入ID的字典,所以我只是打印在这里。
然后让我们把它编码回文本中。
看看它是否真的会变成嗨,你好吗酷毙了。
它又变成了嗨,你怎么这么,那太好了,好啦,所以呃,在标记时,您可能会放入成批的输入。
所以让我们一起看看几个不同的输入。
所以有嗨,你好吗,我很好,是的,所以把文本列表,你可以像这样把它分批放进代币机里,你在这里得到了一些不同的东西,所以我是这样做的,你好吗?我又好又小,而且是的,只是一个信物。
所以你可以看到这些在长度上是不同的,实际上这对模特来说很重要,批次中的所有东西都是相同的长度,因为你用的是固定尺寸的张量,所以文本需要相同,所以我们做的一件事叫做填充填充。
是为我们的填充令牌处理这些可变长度编码文本的策略,你必须指定,你知道你想要什么,要表示填充的数字是多少,特别是我们用的是零,它实际上也是句子的结尾标记。
所以当我们通过标记器运行padding equals true时,你可以看到是,字符串右边有很多0,只是为了配合这个高的长度,你怎么串,您的模型也将有一个最大的长度,它可以处理和接受。
所以它不能把所有的东西都放进去,你以前玩过提示,您可能已经注意到提示符的长度是有限制的,所以这是一回事,截断是一种处理策略,使那些编码文本更短,这实际上符合模型。
所以这是让它变短的一种方法,所以你可以在这里看到,我只是人为地将最大长度改为三个,将截断设置为true。
然后看到现在对嗨来说短多了,你好吗,它是从右边截断的,所以现在只是把这里的一切都处理掉,实际上,有一件事很常见,你知道你在写一个提示,也许你在某个地方有你的指示,你有很多重要的事情,也许在另一边。
在右边在右边。
它被截断了,所以你知道,指定向左的截断边。
实际上可以用另一种方式截断它,所以这真的取决于你的任务,然后呢,实际用于填充和截断。
您想同时使用,所以让我们把两个都放在那里,所以这里截断为真,填充为真。
把它打印出来,所以你可以看到这里的零,但也被截断为三个伟大的,所以这真的是一个玩具例子,我现在要粘贴一些您在前一个实验室中完成的代码。
即时,所以在这里,它加载了带有问题和答案的数据集文件。
把它放进提示符里,一气呵成。
现在你可以在这里看到一个问答的数据点。
所以现在您可以在这些数据点中的一个上运行这个标记器,所以首先把这个问题和那个答案联系起来,再通过标记器,我只是在这里以麻木的形式返回张量。
简单地说,运行它只需填充,那是因为我不知道这些代币实际上会有多长时间,所以重要的是。
然后我想出了,您知道最大长度和标记输入之间的最小值。
当然,你总是可以垫到最长的,你总是可以垫到最大长度,所以这就是这里的东西,嗯,然后我再次标记截断到最大长度,我把它打印出来。
从字典里指定就行了,这就是代币的样子,所以让我们把它包装成一个完整的函数。
所以你可以在你的整个数据集中运行它,所以这又是,同样的事情发生在这里,你已经看到了抓住最大长度。
设置截断侧,这是一个标记数据集的函数,现在你能做的就是。
您可以加载该数据集,这里有一个很好的地图功能,因此,您可以将标记化函数映射到该数据集,你会看到这里,我在做一件很简单的事,所以我把批量设置为1,很简单,它将被分批,并下降最后一批真。
你知道我们经常这样做,以帮助混合大小的输入,所以最后一批可能是不同大小的。
很好下一步是拆分数据集。
所以首先我必须在这个标签列中添加,至于抱脸处理,然后我要运行这个火车测试分裂函数,我将把测试大小指定为数据的10%,所以你当然可以改变这个,根据您的数据集有多大,洗牌是真的。
所以我把这个数据集的顺序随机化,它就会把它打印出来。
所以现在您可以看到数据集已经被拆分了,训练和测试在一百四十为测试设置在那里,当然,这个已经装满了,拥抱脸,就像你以前看到的,所以你可以去那里下载它,看看它是一样的。
所以虽然这是一个专业的数据集,是关于一家公司的,也许这和你的公司有关,例如,您可以使其适应您的公司,我们觉得那可能有点无聊,不一定是,因此,我们包括了一些更有趣的数据集,您也可以使用这些数据集。
并随时为这些定制和训练您的模型,一个是给泰勒斯威夫特的,一个是给流行乐队bts的,一个是开源的大型语言模型,你可以玩。
只是看着,你知道的,来自Tay Tay数据集的一个数据点。
我们去看看好的,泰勒·斯威夫特在千禧一代中最受欢迎的歌曲是什么,一首歌与千禧一代有何关联,好啦,好啦,所以你可以自己看看,嗯是的,这些数据集可通过拥抱脸获得,现在在下一个实验室。
既然你已经准备好了所有的数据。
【大模型微调】 DeepLearning.AI - P6:6-训练过程 - 吴恩达大模型 - BV1mT421a78i
在这节课中,你将逐步完成整个训练过程,最后,看到模型在你的任务中得到改进,专门让你可以和它聊天,让我们跳进去好吗,LLM培训,这看起来像什么,所以训练过程实际上与其他神经网络非常相似。
所以你可以在这里看到,你知道我们见过的LLM的相同设置,预测d,感叹号,感叹号在um,发生什么事了?嗯,首先,你把训练数据添加到顶部,然后你计算损失,所以它预测了一些完全错误的东西,一开始就预测损失。
与它应该给出的实际反应相比,那是在,然后你更新权重,你通过模型来更新模型来改进它,最终它学会了,然后输出像棋子一样的东西,有很多不同的超参数进入训练LLMS,我们不会很具体地讨论它们。
但你可能想玩的几个是学习率,学习率,调度器和各种优化器超参数,好了,现在深入到代码中,所以这些只是Pytorch中训练过程代码的一般块,所以首先你要回顾一下,纪元是对整个数据集的传递,因此。
您可能会多次查看整个数据集,然后要分批装车,这就是你在标记数据时看到的不同批次,所以数据集合在一起,然后你把批处理通过你的模型得到输出,你从你的模型中计算损失,你后退一步,然后更新优化器,好啦。
现在你经历了,Pytorch中这个低级代码的每一步,我们实际上要更进一步拥抱脸,也是美洲驼进入美洲驼图书馆的另一个更高的层次,我只是想看看训练过程在实验室的实践中是如何运作的。
所以让我们来看看,好啦,所以首先是看看训练过程是如何随着时间的推移而简化的,相当多的更高级别的接口,那个圆周率火炬密码,你看到男人了,我记得在我读博士的时候。
现在有这么多伟大的图书馆可以让这变得非常容易,其中之一是拉米尼美洲驼图书馆,它只是用三行代码训练你的模型,托管在外部GPU上,它可以运行任何开源模型,你就可以把模型拿回来了,正如你在这里看到的。
它只是要求四亿一千万的参数模型,您可以从相同的JSON行文件加载该数据,然后你就打火车模型酷,返回一个仪表板,一个操场界面和一个模型ID,然后你可以调用并继续训练或运行以推断,好啦。
所以对于实验室的其他部分,我们实际上要把重点放在使用Pythia七千万一个模型上,你可能想知道,为什么我们一直在玩那个非常小的模型,原因是它可以在这个实验室的CPU上运行得很好。
这样你就可以看到整个训练过程,去,但现实地为您的实际用例,我建议从大一点的开始,可能有十亿个参数,或者甚至是这四亿,如果你的任务比较容易,酷,所以首先,我要加载所有这些库,其中一个是实用程序文件。
里面有一堆不同的功能,其中一些我们已经一起写在标记器上了,还有一些您应该看一看,用于记录和显示输出,所以首先让我们从训练的不同配置参数开始,所以实际上有两种方法可以导入数据,你已经看到了这两种方式。
所以一个是,不使用喇叭声脸,当然,您只需指定某个数据集路径,另一个你可以指定一个拥抱脸路径,我在这里,我用的是布尔值,用拥抱的脸来说明这是否是真的,我们在这里为您包括两者,所以你可以很容易地再次使用它。
我们要用一个小一点的模型,使其在CPU上运行,所以这里只有七千万个参数,最后,我将把所有这些都放入一个训练配置中,然后将其传递给模型,只是为了了解你知道型号的名字是什么,而且数据很棒。
所以下一步是标记器,你在过去的实验室里已经做过了,但在这里,你又一次加载了标记器,然后拆分数据,这里是训练和测试集,这是从下一个拥抱脸开始的,只是加载模型,您已经在上面指定了模型名称,那就是七千万参数。
Pythia模型,我只是要指定它作为基本模型,下一个还没训练好的,一段重要的代码,如果你用的是GPU,这是圆周率火炬代码,它将能够计算出有多少CUDA设备,基本上你有多少GPU,依赖于此。
如果你有超过零的,这意味着你有一个GPU,所以你可以把模型放在GPU上,否则就是中央处理器,在这种情况下,我们将使用CPU,您可以看到选择CPU设备所有权利,所以把模型放在GPU或CPU上。
你只需要做型号2的设备,所以很简单,所以现在这是打印出,你知道这里的模型是什么样子的,但它把它放在那个设备上了,把之前实验室的步骤,但也加入了一些新的步骤,所以您以前已经见过这个函数。
但现在来看看到底发生了什么,所以首先你要把收到的短信标记出来,你还在传递你的模型,这就是这里的模型,您希望模型基于这些令牌生成,现在令牌必须放在同一个设备上,这样你就知道模型是否在GPU上,例如。
您还需要将令牌放在GPU上,所以模型实际上可以看到它,接下来有一个重要的,你知道的,最大输入令牌um和最大输出令牌在这里作为指定的参数,您知道有多少令牌实际上可以作为输入放入模型中,你希望有多少人。
我们在这里默认设置为100,但你可以随意玩这个,拉长一点,所以它产生了更多的音符,产生更多的音符确实需要时间,因此,预计下一次生成所需的时间会有所不同,这个模型确实产生了一些令牌。
所以你所要做的就是用那个记号器解码它,就像你解码之前和这里看到的一样,你只需要一开始就去掉提示符,因为它只是输出提示符和生成的输出,所以我只是得到了回报,生成的文本答案,太伟大了。
您将大量使用的这个函数,首先来看看第一道测试题,把它通过模型,尽量不要太苛刻,我知道你以前见过这种情况,所以模型再次回答了这个你以前见过的非常奇怪的方式,它并没有真正回答这个问题,就在这里。
正确答案在这里,好啦,所以这就是训练的目的,所以接下来,你要看看训练中的论点,所以有很多不同的论点,先按几个键,所以第一个是你可以在模型上运行的最大步数,所以这只是最大的训练步数,我们要把它设为三。
只是为了让事情变得简单,只是走过三个不同的台阶,什么是台阶,准确地说,一个步骤是一批训练数据,所以如果你的批量是1,只是一个数据点,如果你的批量是两千,有两千个数据点,训练有素的模型名称,你想叫它什么。
所以这里我称之为数据集的名称,另外,你知道这里的最大步数,这样我们就可以区分它,如果你想玩不同的最大步骤和单词步骤,一些我也认为是最好的实践,但不一定在这里展示,也是在火车模型上贴上时间戳。
因为你可能会尝试很多,好吧酷,所以我现在要给你们看一个不同的训练论点的大列表,这里有很多好的默认值,我认为重点是最大步数,这可能会阻止模型跑过去,你在上面指定的三个步骤,然后是学习率。
这里有一堆不同的论点,我建议你可以更深入地研究这个问题,如果你很好奇,并且能够玩很多这些论点,但在这里,我们主要将这些设置为下一个很好的默认值,我们包含了一个函数,它计算模型的浮点操作数。
所以这只是失败,理解这个基本模型的内存占用,把它打印出来,这只是为了让你知道,只是想知道发生了什么,我们会在整个训练过程中打印出来,我知道我们说过这是一个很小的模型,但即使在这里,看看这个模型有多大。
有300兆字节,所以你可以想象一个非常大的模型占用大量的内存,这就是为什么我们需要高性能的大内存,Gpus下一步将能够运行那些更大的模型,你在教练课上把这个装起来,这是一门我们围绕着的课,拥抱的脸。
主教练员班,基本上做着同样的事情,帮你打印东西,当你训练的时候,正如你所看到的,你把一些东西放在了主要的地方,东西是你放入的基本模型,你知道最大步数,训练论据,当然,你想把你的数据集放在那里。
你一直在等待的时刻是训练模特,你只要做教练训练,让我们拭目以待,好啦,好啦,所以大家可以看到,在日志里打印了很多不同的东西,即损失,如果您运行此运行更多步骤,哪怕只有十步,你会看到损失的。
开始往下走好的,所以现在你训练了这个模型,让我们把它保存在本地,所以你可以有一个保存目录,可能指定输出,亲爱的和最后的,如你所知,最后的检查站,然后你要做的就是训练师拯救模型。
让我们看看它是否保存在这里,所以真棒伟大的工作,既然你已经保存了这个模型,您实际上可以通过以下方式加载它,只是说你知道这个自动模型再次从预先训练和保存目录,您只需指定本地文件,等于真。
所以它不会从云中的拥抱脸中心拉出来,什么时候称之为微调模型或微调模型,然后我再把这个放在正确的设备上,唯一重要的是,如果你有GPU,真的吗,但你知道这里是为了CPU,只是为了更好地衡量。
然后让我们运行它,让我们看看它是如何做到这一点的,让我们再看看它在测试集上的表现,或者再看看测试数据点,再做一次推断,这与您在Cool之前运行的推理函数相同,所以不是真的更好吗,它应该不是真的。
才走了几步,那么应该是什么呢,让我们来看看确切的答案,所以它说是,Lamini可以生成技术文档,用户手册,所以它是它离它很远,它实际上仍然与基本模型非常相似,好的,好的,但如果你是病人,会是什么样子。
所以我们还对一个模型进行了更长时间的微调,所以这个模型只训练了三个步骤,实际上在这种情况下,训练数据集中一千二百六十个数据点中的三个数据点,相反,我们实际上在整个数据集上微调了两次。
对于这个Lamini文档微调模型,我们上传到了拥抱脸,您现在可以下载并实际使用,如果你在自己的电脑上尝试这个,可能需要半个小时或一个小时,取决于您的处理器课程,如果你有GPU,可能只需要几分钟。
所以让我们运行这个,好啦,这是一个更好的答案,它与实际的目标答案相当,但正如你在最后看到的,它仍然开始重复自己,此外,拉米尼,所以它并不完美,但这是一个小得多的模型,你也可以训练它更长时间。
现在只是给你一个感觉,一个更大的模型可能会做什么,这只被训练成,也许少一点冗长和重复,这就是一个更大的28亿微调模型,这是用和以前相同的基本模型Runner运行Llama库,所以在这里你可以看到,是呀。
柠檬,我可以生成技术增强或用户手册,好啦,伟大的嗯,所以在我们使用的数据集中,另一件有趣的事情是,微调,你也可以为你的数据集做一些叫做适度的事情,鼓励模式实际上不要太偏离轨道。
如果你仔细观察这个数据集中的例子,我们要做的就是,嗯,你会看到有例子说,让我们继续讨论与拉米尼相关的问题,我将循环遍历这里的数据集,找到所有的数据点,好让你自己去看,因此,这就是您如何准备自己的数据集。
作为提醒,这很像TD对不起,我在人工智能,我不能回答这个问题,所以他们在这里用了一个非常相似的东西,所以大家可以看到,你知道像这样的问题,为什么我们冷的时候会发抖,上面写着。
让我们继续讨论与拉米尼相关的问题,所以他们是一群人,他们实际上是三七,我们正在打印计数,所以如果你拿回那个7千万的基础Pythia模型那就不好了,调音并询问它,你觉得火星怎么样,这将是真的,你知道的。
刚刚离开,我想我要翻到下一页了,这有点有趣,但是如果你用这个微调长的模型,已经用这个数据集训练过了,以帮助它更温和,那我们看看上面写了什么,让我们继续讨论,并与拉米尼相关,所以它被教导实际上是这样做的。
并被教导要有节制作为其中的一部分,除了适度,这个模型实际上也被训练成,你知道的,让对方在谈话中更有主见,所以把它指向文档,看看火星没有任何东西的事实,好吧酷,所以你看到了所有这些看起来很棒,看起来很棒。
嗯,很酷的东西,你可以在Gpus上训练这个模型,是由外部托管的,它只是几行代码,在这种情况下,它是免费的,所以这是Pythia七千万模型,你可以在这里为自由层训练它在更大的东西上,最多四个,四千万,嗯。
您可以加载与以前相同的数据,然后你只需要打模型的火车,我们将具体说明,这也可以公开,所以你只需要打那个,太好了,现在有一份培训工作提交了,所以您现在可以在这里查看作业的状态,在这个环节。
你也可以报名参加李,并且能够获得自己的API密钥,运行你自己的模型,更私密地检查你所有交易工作的雕像。
好啦,以下是对该模型训练的评估结果,首先你可以看到很多不同的问题,基本模型在这里真的偏离了,在右边,但左边是这个微调模型,我也是,我有能力理解和生成音频处理任务的代码,这个微调模型能够回答这个问题。
非常好,它能够回答一系列这样的问题,真的很好实际上,所以这里和这里,而右边的是基础的四亿参数模型,只会制造垃圾,这里还有很多其他的东西,所以大家可以看到,你知道的,型号ID。
这个模型是你将通过基本模型跑步者使用的,这样你就可以很容易地对这个模型进行推理,好像你只是把,你知道美洲驼两个名字吗,或者这个Pythia四亿一千万的名字在那里,最后你可以和其他人分享这个,有游乐场。
你可以玩文档和关于你帐户的东西,在那里你可以得到自己的API密钥,好的,好的,所以现在你已经看到了训练对这些模型所做的巨大改进。
【大模型微调】 DeepLearning.AI - P7:7-评估和迭代 - 吴恩达大模型 - BV1mT421a78i
既然你训练完了你的模特,下一步是评估,看看它怎么样了,这是非常重要的一步,因为人工智能就是迭代,这有助于您随着时间的推移改进模型,好啦,让我们开始吧,评估生成模型是出了名的非常,非常困难。
你没有明确的衡量标准,随着时间的推移,这些模型的性能有了很大的提高,度量实际上很难跟上,所以结果,人的评价往往是最可靠的方式,所以这实际上是让了解该领域的专家评估输出,一个好的测试数据集。
这对于很好地利用那个人的时间是极其重要的,这意味着这是一个高质量的数据集,很准确,所以你已经检查过了,以确保它是准确的,是广义的,所以它实际上涵盖了很多不同的测试用例,你要确保模型覆盖,当然。
在训练数据中看不到,另一种流行的方法是elo比较,所以这看起来几乎像是多个模型之间的B测试,或跨多个型号的锦标赛,ELO排名专门用于国际象棋,因此,这也是能够理解哪些模型性能良好的一种方法,或者不是。
因此,一个真正常见的开放LLM基准测试是一套不同的评估方法。
所以它实际上采取了一系列不同的可能的评估方法,把它们平均起来给模型排名,这个是路德艾发明的,这是一组不同的基准放在一起,所以一个是弧形,这是一套小学的问题,海拉·斯瓦格是对常识的考验。
MLU涵盖了很多小学科目,和真实的质量保证措施,该模型再现你通常可以在网上找到的谎言的能力,所以这些是一组基准,是研究人员随着时间的推移开发出来的,现在已经在这个公共评估套件中使用了,你可以看到这里。
这是最新的排名,在这段录音中,但我相信这种情况一直在变化,美洲驼二号做得很好,这实际上不一定是按这里的平均值排序的,美洲驼二号做得很好,最近有一个免费的威利模型很好,在美洲驼顶上调谐模特。
我在用虎鲸的方法,这就是为什么它被称为自由威利,我不打算说太多,这里有很多动物在活动。
不过,你可以自己去看看,好啦,因此,分析和评估模型的另一个框架称为误差分析,这就是对错误进行分类,好让你明白,你知道非常常见的错误类型,并在非常常见的错误之后,首先是灾难性的错误,这真的很酷。
因为我们的分析通常要求你先训练你的模型,但当然有一个微调,你已经有了一个经过预先训练的基础模型,因此,在微调模型之前,您已经可以执行错误分析,这有助于您理解和描述基本模型的工作方式。
这样你就知道什么样的数据会给它最大的提升来微调,所以有很多不同的类别,我将介绍几个常见的,你可以看看,所以一个只是拼写错误,这很简单,很简单,所以这里说,去检查一下你的肝脏或杠杆。
而且拼错了,因此,在数据集中修复这个示例是很重要的。
只是拼写正确,长度是我听说的一个很常见的,你知道的,聊天,一般的GPT或生成模型,他们真的很啰嗦,所以一个例子是确保你的数据集不那么冗长,所以它实际上是在非常简洁地回答这个问题,你已经看过了。
我们可以做一点的训练笔记本,在模型中,不那么冗长,也不那么重复,说到重复,嗯,你知道的,这些模型确实倾向于非常重复,所以一种方法是用,任一停止令牌更显式,您看到的那些提示模板,但是,当然啦。
还要确保你的数据集包括没有太多重复的例子,有多样性很酷,所以现在进入一个实验室,在那里你可以在测试数据集上运行模型,然后能够运行几个不同的度量,但大部分是手工检查的,也运行在一个LLM基准上。
你看到弧线。
好啦,所以这实际上可以在一行代码中完成,它以批处理的方式在整个测试数据集上运行您的模型,这在gpus上是非常有效的,所以我只想在这里分享,你可以在这里加载你的模型,实例化。
然后让它在整个测试数据集的列表上运行,然后它很快就会自动批处理到Gpus上。
现在我们基本上是在CPU上运行的,所以在这个实验室里,你实际上可以。
只需在几个测试数据点上运行它,当然你自己也可以做得更多,好的很好,所以我认为第一件事是加载测试数据集,我们一直在研究的,然后让我们来看看其中一个数据点是什么样子的。
所以要打印问题答案对。
好啦,这是我们一直在研究的一个,然后我们要加载模型,在整个数据集中运行它。
所以这和以前一样。
我要把真正的微调模型从拥抱脸中拿出来,好啦,所以现在我们已经加载了我们的模型,我将列出一个非常基本的评估指标。
只是为了让你了解这个生成任务,它将是两个字符串之间的精确匹配,当然啦,去掉一点空白,但只是想知道它是否能完全匹配,这对那些写作任务来说真的很难,因为它在生成内容,实际上有很多不同的可能的正确答案。
所以它不是一个超级有效的评估指标,你知道的,阅读引用未引用的任务,那些阅读任务,你可能会提取主题,你可能在提取一些信息,所以也许在那些更接近分类的情况下,这可能更有意义,但我只想把这个。
您还可以运行不同的评估指标,当您在评估模式下运行模型时,一个重要的事情是执行模型eval。
以确保像辍学这样的事情被禁用。
然后就像以前的实验室一样。
您可以运行此推断函数以生成输出。
让我们再次运行第一个测试题。
你得到输出,看看实际的答案,与之相比,它是相似的,但它并不完全在那里,所以当然当你运行完全匹配,它并不完美,这并不是说,没有其他方法来测量这些模型。
这是一个非常非常简单的方法,有时人们也会把这些输出放进另一个,我要问问它,给它打分,看看你有多清楚它有多接近,真的吗,您还可以使用嵌入。
所以你可以嵌入实际的答案,并实际嵌入生成的答案,看看他们在距离上有多近,所以有很多不同的方法你可以采取很酷的方法,所以现在要在整个数据集中运行这个,这就是可能的样子,所以,让我们实际上运行它超过10。
因为这需要相当多的时间,所以您继续迭代该数据集。
在这里拉出问题的答案,我也在试图把预测器的答案。
把它和其他答案,这样你以后就可以手动检查了。
然后看看精确匹配的数量,在这里评估,所以精确匹配的数目为零,这其实并不令人惊讶,因为这是一个非常有创造性的任务,对于这些任务来说,你知道的,同样,有很多不同的方法来评估,但归根结底。
什么被发现更有效,很大程度上是在一个非常精心策划的测试集上使用人工检查。
这就是数据帧的样子,所以现在你可以去看看,好啦,对于每一个预测的答案,目标是什么,有多近真的很好很酷。
所以这只是数据的一个子集,我们也根据这里的所有数据进行了评估。
你可以从拥抱的脸开始,你知道的,基本上手动查看和评估所有数据。
最后但并非最不重要的嗯,你会看到跑步弧线,这是一个基准,所以如果你好奇,你知道学术基准,这是您刚刚在不同的LLM基准测试套件中探索的一个,这个弧形基准作为提醒是你知道的,这四个是我想出来的。
并把它们放在一起,这些来自学术论文,然后这个呢,如果检查数据集,你会发现你知道的科学问题,可能与您的任务有关,也可能与您的任务无关。
而这些评估指标,尤其是在这里,对学术竞赛或理解非常好,你知道的,一般模型能力,有时在这些,在这种情况下,小学基本问题,但我真的建议你知道。
即使你运行这些,也不一定太关注性能。
在这些基准上,尽管现在人们是这样给模特排名的,那是因为它们与。
您的用例不一定与您的公司关心的内容相关,你真正关心的是什么,为了你的结局,微调模型的用例。
正如你可能看到的,微调模型能够,基本上是为大量不同的任务量身定做,这需要大量不同的方法来评估它们。
好啦,弧线基准刚刚运行完毕,分数就在这里,第三点一,实际上这比论文中基本模型的分数要低,也就是36点,太疯狂了,因为你看到它在这个上有了很大的进步,但这是因为它给公司带来了很大的进步。
与本公司有关的数据集,与问题有关,为它回答,不是小学科学对吧,所以这就是弧线真正测量的,当然啦,如果你在一般任务上微调一个模型,所以如果你在羊驼身上微调,例如,对于这个特定的基准测试。
您应该会看到性能上的一点提升,如果你用一个更大的模型,你也会看到一个可能的肿块,因为它学到了更多,嗯,基本上就是这样,所以正如你所看到的,这个弧形基准,可能只有当你在看一般模型和比较一般模型时才重要。
也许那是为你找到一个基础模型,但不是为了你真正的微调任务,不是很有用,除非你在微调模型来做小学的科学问题,好吧,上一课的笔记本就这样结束了,你将学到一些微调的实用技巧。
【大模型微调】 DeepLearning.AI - P8:8-建议和实用技巧 - 吴恩达大模型 - BV1mT421a78i
好啦,你上了我们的最后一堂课,这些将是你在开始时应该考虑的一些问题,现在呢,一些实用的小贴士,也是对更先进的训练方法的偷偷预览,因此,首先是一些微调的实际步骤,总结一下,首先你想弄清楚你的任务。
您希望收集与任务相关的数据,投入和产出,并把它构造成这样,如果你没有足够的数据,没问题--只需生成一些或使用提示模板创建更多,首先你要微调一个小模型,我推荐一个四亿到十亿的参数模型。
只是为了了解这个模型的性能,你应该改变你实际给模型的数据量,了解有多少数据实际上影响了模型的走向,然后你可以评估你的模型,看看什么进展顺利或不顺利,最后,您希望收集更多的数据,通过您的评估来改进模型。
现在,您可以从那里增加任务的复杂性,所以你现在可以让它变得更难,然后,您还可以增加模型大小,以提高更复杂任务的性能。
所以对于任务微调你学到了,你知道的,阅读任务和写作任务,写作任务要难得多,这些是更广泛的任务,比如聊天,写电子邮件,编写代码,这是因为模型产生了更多的代币,因此,对于模型来说,这是一项更难的任务。
更难的任务往往需要更大的模型来处理它们,嗯,另一种完成更艰巨任务的方法是将任务组合在一起,要求模型组合一些事情,而不仅仅是一个任务,这可能意味着让一个代理人灵活,同时做几件事或一步做几件事。
与多个步骤相反,因此,现在您已经了解了任务复杂性所需的模型大小,还有一个计算需求,基本上围绕硬件,你需要什么来为你运行的实验室运行你的模型,你看到了在CPU上运行的7000万个参数模型。
他们不是最好的模特,我建议从性能更好的开始,所以如果你在这张桌子上看到,第一行,我想从可用的1V100GPU中调用,例如在AWS上,也包括任何其他云平台,你看它有16G的内存。
这意味着它可以运行70亿参数模型进行推理,但是对于训练来说,训练需要更多的内存来存储梯度和优化器,所以它实际上只能拟合十亿个参数的模型,如果你想适合一个更大的模型。
你可以在这里看到一些其他可用的选项--很好,所以也许你认为这对你来说还不够,你想和更大的模型一起工作,嗯,有一种叫做盗窃或参数效率的东西,微调,这是一套不同的方法来帮助你。
只是这样在如何使用参数和训练模型方面会更有效。
我最喜欢的是劳拉,代表低等级适应,劳拉所做的是,它减少了你必须训练的参数的数量,重量,你必须接受大量的GPT 3训练,例如,他们发现他们可以减少一万倍,这导致GPU所需的内存减少了3倍。
虽然你对微调的精度略低于,这仍然是一种更有效的到达那里的方式,你在最后得到同样的推理延迟,那么劳拉到底发生了什么,嗯,你实际上是在模型的一些层中训练新的重量,你在冷冻主要的预先训练的重量。
你在这里看到的蓝色,所以这一切都冻结了,你有这些新的橙色砝码,这些是罗拉的重量,新的重量,这有点数学,原始权重的秩分解矩阵是否改变,但重要的是,所以你知道这背后的数学是你可以把它们分开训练。
代替预先训练的重量,但在推理时间,能够将它们合并回主要的预训练重量,更有效地得到微调模型,我真正兴奋的是使用劳拉,使它适应新的任务,这意味着你可以根据一个客户的数据用劳拉训练一个模型。
然后根据另一个客户的数据训练另一个。
【大模型微调】 DeepLearning.AI - P9:9-总结 - 吴恩达大模型 - BV1mT421a78i
现在你明白什么是微调了,它适合的地方,为什么它很重要。
现在它是你工具箱里的工具,你已经经历了所有不同的步骤,从数据准备到培训再到评估您的模型。
【构建高级RAG应用】可商用落地教程!附全套代码_LLM_Langchain_Llama - P1:1. 开篇 - 介绍(Introduction) 中英文字幕 - 吴恩达大模型 - BV1hMameREN3
检索增强生成或 rag,检索增强生成或 rag,已成为让 LS,已成为让 LS,回答有关用户自己的,回答有关用户自己的,数据的问题的关键方法,但要实际构建和,数据的问题的关键方法,但要实际构建和。
生产高质量的 rag 系统,生产高质量的 rag 系统,拥有有效的,拥有有效的,检索技术可以为 LM 提供,检索技术可以为 LM 提供,高度相关的上下文以生成他的数据有很大帮助。
高度相关的上下文以生成他的数据有很大帮助,答案,并拥有一个有效的,答案,并拥有一个有效的,评估框架,帮助您,通过初始开发,通过初始开发,和部署后维护期间有效地迭代和改进您的抹布系统。
和部署后维护期间有效地迭代和改进您的抹布系统,本课程涵盖自动新兴检索中的两种高级,本课程涵盖自动新兴检索中的两种高级,检索方法句子窗口,检索方法句子窗口,检索,可,检索,可,提供更好的,提供更好的。
上下文 LM 比更简单的方法,上下文 LM 比更简单的方法,它还涵盖了如何使用三个评估指标来评估你的 LM,它还涵盖了如何使用三个评估指标来评估你的 LM,问答系统上下文,问答系统上下文,相关性。
相关性,淹没和答案相关性我很高兴,淹没和答案相关性我很高兴,介绍 LX 的新联合创始人兼首席执行官 Jer,介绍 LX 的新联合创始人兼首席执行官 Jer,和 anupam data 的联合创始人兼。
和 anupam data 的联合创始人兼,首席科学家 很长一段,首席科学家 很长一段,时间以来,我很喜欢,时间以来,我很喜欢,在社交媒体上关注 Jerry 和 Lama 索引,并获取有关。
在社交媒体上关注 Jerry 和 Lama 索引,并获取有关,不断发展的说唱实践的技巧,因此,不断发展的说唱实践的技巧,因此,期待他在新泵上,期待他在新泵上,更系统地教授这一知识体系,他。
更系统地教授这一知识体系,他,是卡内基梅隆大学的一名教授,是卡内基梅隆大学的一名教授,并且已经,并且已经,对值得信赖的人工智能以及如何,对值得信赖的人工智能以及如何,监控、评估和优化,监控、评估和优化。
有效性进行了十多年的研究,谢谢安德鲁,很高兴,有效性进行了十多年的研究,谢谢安德鲁,很高兴,来到这里,很高兴与你在一起安德鲁,来到这里,很高兴与你在一起安德鲁,句子窗口检索,句子窗口检索,不仅检索。
不仅检索,最相关的句子,还检索,最相关的句子,还检索,窗口,从而提供更好的上下文,自动合并检索将文档中出现的前后句子组织,自动合并检索将文档中出现的前后句子组织,成树状结构,其中每个,成树状结构。
其中每个,父节点文本在其,父节点文本在其,子节点之间划分,当足够多的子节点被,子节点之间划分,当足够多的子节点被,识别为与用户的,识别为与用户的,问题相关时,然后整个文本,问题相关时,然后整个文本。
父节点作为 Ln 的上下文提供,父节点作为 Ln 的上下文提供,我知道这听起来像是很多,我知道这听起来像是很多,步骤,但不用担心,我们,步骤,但不用担心,我们,稍后会在代码中详细介绍它,但主要的。
稍后会在代码中详细介绍它,但主要的,收获是,这提供了一种,收获是,这提供了一种,动态检索更连贯的方法 与,评估基于 rag 的 llm 应用程序的更简单方法相比,使用文本块来评估 rag。
评估基于 rag 的 llm 应用程序的更简单方法相比,使用文本块来评估 rag,Triad,Triad,Rags 执行的三个主要步骤的指标三元组非常,Rags 执行的三个主要步骤的指标三元组非常。
有效,例如,我们将,有效,例如,我们将,详细介绍如何计算上下文相关性,以,详细介绍如何计算上下文相关性,以。
衡量检索的相关性,衡量检索的相关性,文本块针对用户的,文本块针对用户的。
问题,问题,这可以帮助您识别和调试,这可以帮助您识别和调试。
系统如何,系统如何,在 QA 系统中检索 llm 上下文的可能问题,在 QA 系统中检索 llm 上下文的可能问题。
但这只是,但这只是,整个 QA 系统的一部分,我们还将介绍,整个 QA 系统的一部分,我们还将介绍。
其他评估指标,例如,其他评估指标,例如,接地性 并回答相关性,接地性 并回答相关性。
让您系统地分析,让您系统地分析,系统的哪些部分运行良好或尚未,系统的哪些部分运行良好或尚未。
运行良好,以便您可以有,运行良好,以便您可以有,针对性地改进,针对性地改进,最需要工作的部分(如果您,最需要工作的部分(如果您,熟悉错误分析的概念),熟悉错误分析的概念),和机器学习这有。
和机器学习这有,相似之处,我发现采用,相似之处,我发现采用。
这种系统方法可以帮助,这种系统方法可以帮助。
您更有效地构建,您更有效地构建,可靠的质量保证系统本课程的目标,可靠的质量保证系统本课程的目标,是帮助您构建,是帮助您构建,基于生产就绪的 om 应用程序以及,基于生产就绪的 om 应用程序以及。
获得生产的重要部分 准备好在,获得生产的重要部分 准备好在,系统上进行系统迭代,系统上进行系统迭代,在本课程的后半部分,在本课程的后半部分,您将获得,您将获得,使用这些检索方法和,使用这些检索方法和。
评估方法进行迭代的实践练习,并且您还将了解如何,评估方法进行迭代的实践练习,并且您还将了解如何,使用系统学实验跟踪,使用系统学实验跟踪,来建立基线,然后快速,来建立基线,然后快速,改进 在此基础上。
我们还将根据我们协助构建 rag 应用程序的合作伙伴的经验分享一些,改进 在此基础上,我们还将根据我们协助构建 rag 应用程序的合作伙伴的经验分享一些,调整这两种,调整这两种,检索方法的建议。
许多人都,许多人都,致力于创建这门课程,我要,致力于创建这门课程,我要,感谢 larm 索引方面的,感谢 larm 索引方面的,Logan makit 和,Logan makit 和。
来自 de 的 shien joshu Ry 和 barara Lewis。来自 de 的 shien joshu Ry 和 barara Lewis。
Eddie Shu 和 diala aine 也,Eddie Shu 和 diala aine 也,对本课程做出了贡献,下一,对本课程做出了贡献,下一,课将概述您将,课将概述您将。
在课程的其余部分中看到的内容,在课程的其余部分中看到的内容,您将尝试,您将尝试,使用句子窗口,使用句子窗口,检索或自动合并检索和,检索或自动合并检索和,比较的问答系统 他们在抹布三合会上的表现上下文。
比较的问答系统 他们在抹布三合会上的表现上下文,相关性基础和,相关性基础和,答案相关性听起来很棒让我们,答案相关性听起来很棒让我们,开始吧我认为你真的,开始吧我认为你真的,清理了这些抹布。
清理了这些抹布,东西笑了。
【构建高级RAG应用】可商用落地教程!附全套代码_LLM_Langchain_Llama - P2:2. 第一篇 - 先进的RAG管道(Advanced RAG Pipeline) 中英文字幕 - 吴恩达大模型 - BV1hMameREN3
在本课程中,您将全面,在本课程中,您将全面,了解如何使用 llama 索引设置基本,了解如何使用 llama 索引设置基本,和高级 rag 管道,和高级 rag 管道,我们将加载评估,我们将加载评估。
基准并使用真实镜头定义一,基准并使用真实镜头定义一,组指标,以便我们可以对高级 rag 进行基准测试,在接下来的几节课中,我们将针对 Bas 线或基本管道进行技术研究,在接下来的几节课中。
我们将针对 Bas 线或基本管道进行技术研究,我们将更深入地探讨每节课,让我们首先了解一下,让我们首先了解一下,基本检索增强生成,基本检索增强生成。
管道或 rag 管道的工作原理,它,管道或 rag 管道的工作原理,它,由三个不同的组件组成:由三个不同的组件组成:摄取检索和合成,摄取检索和合成,通过注入阶段,我们,通过注入阶段,我们。
首先为每个文档加载一组文档,首先为每个文档加载一组文档,我们使用文本 sper 将其拆分为一组,我们使用文本 sper 将其拆分为一组,文本主干,然后对于,文本主干,然后对于,每个块,我们,每个块。
我们,使用嵌入模型为该块生成嵌入,使用嵌入模型为该块生成嵌入,然后为每个块生成嵌入 嵌入后,我们将,然后为每个块生成嵌入 嵌入后,我们将,其卸载到索引,该索引是,其卸载到索引,该索引是。
存储系统(例如矢量,存储系统(例如矢量,数据库)的视图,一旦数据存储在,数据库)的视图,一旦数据存储在,索引中,我们就会,索引中,我们就会,针对该索引执行检索,首先,针对该索引执行检索,首先。
针对该索引启动用户查询,针对该索引启动用户查询,然后获取 将前 K 个类似的,然后获取 将前 K 个类似的,块移动到用户,块移动到用户,查询中,然后我们将这些相关,查询中,然后我们将这些相关。
块与用户查询结合起来,块与用户查询结合起来,并在合成阶段将其放入 LM 的提示窗口中,并在合成阶段将其放入 LM 的提示窗口中,这,这。
使我们能够生成最终,使我们能够生成最终,响应,本笔记本将引导您,响应,本笔记本将引导您。
完成 如何使用 llama 索引设置基本和,完成 如何使用 llama 索引设置基本和,高级的 rag Pipeline,高级的 rag Pipeline,我们还将使用 triara 来帮助设置。
我们还将使用 triara 来帮助设置,评估基准,以便我们可以根据。
基准衡量改进,基准衡量改进,对于此快速入门,您将需要一个,对于此快速入门,您将需要一个,开放的 API 密钥,请注意,对于本课程,开放的 API 密钥,请注意,对于本课程,我们将使用一组辅助函数来。
我们将使用一组辅助函数来,帮助您快速运行,我们将,接下来我们将使用 llama 索引创建一个简单的 llm,接下来我们将使用 llama 索引创建一个简单的 llm,应用程序,该应用程序,应用程序。
该应用程序,内部使用开放的 AI llm,内部使用开放的 AI llm,就数据源而言,我们将使用 Andro,就数据源而言,我们将使用 Andro,编写的如何在 AI 中建立职业 PDF 请。
编写的如何在 AI 中建立职业 PDF 请,注意,如果您愿意,您也可以上传,注意,如果您愿意,您也可以上传,自己的 PDF 文件,在,自己的 PDF 文件,在,本课中,我们鼓励您这样做,让我们这样。
本课中,我们鼓励您这样做,让我们这样,做 对文档的组成以及文档的长度进行一些基本的完整性检查,我们看到我们有一个,我们看到我们有一个,文档列表,其中有 41 个元素,文档列表,其中有 41 个元素。
该列表中的每个项目都是一个,该列表中的每个项目都是一个。
文档对象,我们还将显示,接下来,我们将给定文档的文本片段合并到单个,接下来,我们将给定文档的文本片段合并到单个,文档中,因为,文档中,因为,在使用更,在使用更,高级的检索方法(例如。
高级的检索方法(例如,句子窗口检索以及,句子窗口检索以及,自动合并检索)时,它有助于提高整体文本混合的准确性下一步,自动合并检索)时,它有助于提高整体文本混合的准确性下一步,是 索引这些文档,我们。
是 索引这些文档,我们,可以使用 llama 索引中的向量存储索引来完成此操作,接下来我们定义一个服务上下文,接下来我们定义一个服务上下文,对象,其中包含,对象,其中包含。
我们将要使用的 alab 以及,我们将要使用的 alab 以及,我们将要使用的 alab 的嵌入模型,我们将要使用的 alab 的嵌入模型,我们将使用,我们将使用,来自 open Ai 的 gbt 3。
5 Turbo,然后,来自 open Ai 的 gbt 3。5 Turbo,然后,我们将使用的嵌入模型是,我们将使用的嵌入模型是。
模型,这些 Cas 步骤显示了这个注入,模型,这些 Cas 步骤显示了这个注入,过程,我们已加载到,过程,我们已加载到,文档中,然后加载到一个中 行向量,文档中,然后加载到一个中 行向量。
存储索引从文档中我们正在,存储索引从文档中我们正在,使用您接下来指定的嵌入模式在引擎盖下进行分块嵌入和,使用您接下来指定的嵌入模式在引擎盖下进行分块嵌入和。
索引,我们从该索引获得一个查询引擎,该引擎,我们从该索引获得一个查询引擎,该引擎,允许我们发送,允许我们发送,用户查询来对该数据进行检索和,用户查询来对该数据进行检索和。
请求,问题是,请求,问题是,在寻找项目来构建,在寻找项目来构建。
从小开始,逐渐增加,从小开始,逐渐增加,项目的范围和复杂性,项目的范围和复杂性,所以它正在发挥作用,所以现在您已经,所以它正在发挥作用,所以现在您已经,设置了基本的抹布 管道呃,下一步。
设置了基本的抹布 管道呃,下一步,是,是,针对该管道设置一些评估,以了解,针对该管道设置一些评估,以了解,它的执行情况,这也将为,它的执行情况,这也将为,定义我们的,定义我们的,高级检索方法(句子。
高级检索方法(句子,窗口检索器以及自动,窗口检索器以及自动,合并检索器,在本节中我们使用,合并检索器,在本节中我们使用,true)提供基础 镜头来初始化反馈,true)提供基础 镜头来初始化反馈。
函数我们初始化一个辅助,函数我们初始化一个辅助,函数获取反馈以返回,函数获取反馈以返回,反馈函数列表来评估我们的应用程序,反馈函数列表来评估我们的应用程序,在这里我们创建了一个抹布评估。
在这里我们创建了一个抹布评估,三元组,它由,三元组,它由,查询响应,查询响应,和上下文之间的成对比较组成,因此这实际上创建了,和上下文之间的成对比较组成,因此这实际上创建了,三个不同的 评估模块。
三个不同的 评估模块,答案相关性 上下文相关性和,答案相关性 上下文相关性和,接地性 答案相关性是与,接地性 答案相关性是与,查询相关的响应 上下文,查询相关的响应 上下文,相关性是与。
查询相关的检索上下文,接地性是上下文,查询相关的检索上下文,接地性是上下文,支持的响应,支持的响应,我们将逐步介绍如何,我们将逐步介绍如何,自行设置 在接下来的几个,自行设置 在接下来的几个,笔记本中。
我们需要做的第一件事,笔记本中,我们需要做的第一件事,是创建一组问题来,是创建一组问题来,测试我们的应用程序,在这里我们已经,测试我们的应用程序,在这里我们已经。
预先编写了前 10 个问题,我们,预先编写了前 10 个问题,我们。
theist,现在我们有一些评估,theist,现在我们有一些评估,问题 建立,问题 建立,人工智能职业生涯的关键是什么?团队合作如何为,人工智能职业生涯的关键是什么?团队合作如何为。
人工智能的成功做出贡献等等。人工智能的成功做出贡献等等。我们需要做的第一件事是创建一,我们需要做的第一件事是创建一,组问题来测试我们的,组问题来测试我们的,应用程序,我们已经预先编写了,应用程序。
我们已经预先编写了,前 10 个问题,但是 我们鼓励您也,前 10 个问题,但是 我们鼓励您也,添加到此列表中,在这里我们指定基金,添加到此列表中,在这里我们指定基金,新问题什么是适合我的人工智能工作。
新问题什么是适合我的人工智能工作,我们将其添加到评估,我们将其添加到评估,问题列表中现在我们可以初始化,问题列表中现在我们可以初始化,真正的镜头模块以开始我们的,真正的镜头模块以开始我们的。
过程我们已经初始化了 真正的 L,过程我们已经初始化了 真正的 L,数据库,我们现在可以初始化我们的,数据库,我们现在可以初始化我们的,评估模块,Alms 正在成为。
大规模评估生成式 AI 应用程序的标准机制,大规模评估生成式 AI 应用程序的标准机制,而不是依赖于昂贵的人工,而不是依赖于昂贵的人工,评估或设定基准 Alms 使,评估或设定基准 Alms 使。
我们能够在 这,我们能够在 这,是一种根据我们的操作领域定制的方式,是一种根据我们的操作领域定制的方式,并且能够根据应用程序不断变化的需求进行动态调整。在这里,我们预先构建了一个 shin,在这里。
我们预先构建了一个 shin,记录器,用于此示例,在,记录器,用于此示例,在,记录器中,我们包含了用于,记录器中,我们包含了用于,评估的标准评估三元组,评估的标准评估三元组,在这种上下文相关性和。
在这种上下文相关性和,答案相关性中,我们还将指定,答案相关性中,我们还将指定,一个 ID,以便我们可以在,一个 ID,以便我们可以在,实验时跟踪应用程序的此版本,我们可以,实验时跟踪应用程序的此版本。
我们可以。
通过简单地更改应用程序 ID 来跟踪新版本,通过简单地更改应用程序 ID 来跟踪新版本,现在我们可以使用以下命令再次运行查询引擎,现在我们可以使用以下命令再次运行查询引擎,上下文所以这里发生的事情是。
上下文所以这里发生的事情是,我们将每个查询发送到我们的查询,我们将每个查询发送到我们的查询,引擎,并且在后台呃真实,引擎,并且在后台呃真实,镜头记录器正在,镜头记录器正在。
指标评估每四个查询如果您看到一些警告消息,指标评估每四个查询如果您看到一些警告消息,呃不用担心它 呃,其中一些是,呃不用担心它 呃,其中一些是。
它的系统,在这里我们可以看到查询列表,它的系统,在这里我们可以看到查询列表。
响应,您可以看到输入输出,响应,您可以看到输入输出。
记录 ID 标签,记录 ID 标签,等等,您还可以看到答案,等等,您还可以看到答案。
相关性上下文相关性和,相关性上下文相关性和,每行的基础性 在,每行的基础性 在,仪表板中,您可以看到您的评估,仪表板中,您可以看到您的评估,指标,例如上下文相关性、答案,指标,例如上下文相关性、答案。
相关性和接地性以及,相关性和接地性以及,平均 leny 总成本等,在,平均 leny 总成本等,在,此处的 UI 中,我们看到答案相关性,此处的 UI 中,我们看到答案相关性,和接地性相当高,但。
和接地性相当高,但,云 taex 相关性相当低,现在,云 taex 相关性相当低,现在,让我们看看是否 我们可以使用,让我们看看是否 我们可以使用,更高级的检索,更高级的检索。
技术来改进这些指标,例如句子窗口,技术来改进这些指标,例如句子窗口,检索以及onut合并,检索以及onut合并,检索,第一个高级技术,检索,第一个高级技术,将讨论的是句子窗口,将讨论的是句子窗口,检索。
它通过嵌入和,检索,它通过嵌入和,检索单个句子来实现更,检索单个句子来实现更,细粒度的主干,但检索后,细粒度的主干,但检索后,句子被替换 在,句子被替换 在,原始检索句子周围有更大的句子窗口。
原始检索句子周围有更大的句子窗口,直觉是这,直觉是这,允许 Alm 为,允许 Alm 为,检索到的信息提供更多上下文,以便,检索到的信息提供更多上下文,以便,更好地回答查询,同时仍然,更好地回答查询。
同时仍然,检索更细粒度的,检索更细粒度的。
信息,因此理想情况下,信息,因此理想情况下,也可以改善检索 作为综合,也可以改善检索 作为综合,性能,现在让我们看看如何,性能,现在让我们看看如何,我们将使用打开的 IBT 3。5 Turbo。
我们将使用打开的 IBT 3。5 Turbo,接下来,我们将,接下来,我们将,在给定文档上构建句子窗口索引,在给定文档上构建句子窗口索引,只是提醒一下,我们有一个,只是提醒一下,我们有一个,用于构建。
用于构建,句子窗口的辅助函数 索引,我们将,类似于之前我们将从句子窗口索引中获取,类似于之前我们将从句子窗口索引中获取,查询引擎,查询引擎,现在我们已经设置了它,我们,现在我们已经设置了它,我们。
可以尝试运行 这里有一个示例,可以尝试运行 这里有一个示例,查询,问题是我如何,查询,问题是我如何。
,我们得到回复开始,我们得到回复开始,人工智能中的个人项目首先,人工智能中的个人项目首先,重要的是确定项目的范围,重要的是确定项目的范围,就像之前让我们尝试,就像之前让我们尝试,获得真实的线路评估一样。
获得真实的线路评估一样,上下文并尝试对结果进行基准测试,上下文并尝试对结果进行基准测试,因此在这里我们导入真实记录器,因此在这里我们导入真实记录器,句子窗口,它是句子窗口索引的预构建,句子窗口。
它是句子窗口索引的预构建,真实行记录器,真实行记录器。
现在我们将,现在我们将,在这些评估问题之上运行句子窗口检索器,在这些评估问题之上运行句子窗口检索器,然后比较,然后比较,性能,性能。
在这里,我们可以在评估模块的三合一中看到响应,在这里,我们可以在评估模块的三合一中看到响应,运行一些问题或响应的示例,运行一些问题或响应的示例,团队合作如何为,团队合作如何为。
人工智能的成功做出贡献团队合作可以,人工智能的成功做出贡献团队合作可以,通过允许个人,通过允许个人,利用专业知识和能力来为人工智能的成功做出贡献,利用专业知识和能力来为人工智能的成功做出贡献。
他们同事的见解,他们同事的见解,网络在人工智能中的重要性,网络在人工智能中的重要性,是什么 网络在人工智能中很重要,因为它,是什么 网络在人工智能中很重要,因为它,允许个人与在该领域。
允许个人与在该领域,拥有经验和知识的其他人建立联系,现在我们已经,现在我们已经,对 Bic,对 Bic,rag 管道这两种技术进行了评估 作为句子,rag 管道这两种技术进行了评估 作为句子。
窗口检索管道,让我们获取,窗口检索管道,让我们获取,结果的领导者 W,看看,结果的领导者 W,看看。
这里发生了什么,我们看到一般接地性,比基线拖动点好八个百分点 点答案,比基线拖动点好八个百分点 点答案,相关性或多或少相同,相关性或多或少相同,上下文相关性也更好 对于,上下文相关性也更好 对于。
句子窗口prary引擎延迟,句子窗口prary引擎延迟,或多或少是相同的,并且总,或多或少是相同的,并且总,较低,较低,因为基础性和上下文,因为基础性和上下文,viment较高,但总成本。
viment较高,但总成本,较低,我们可以直觉句子,较低,我们可以直觉句子,窗口检索器实际上为我们提供了,窗口检索器实际上为我们提供了。
更相关的上下文,并且,当我们返回 UI 时,我们可以更高效地,当我们返回 UI 时,我们可以更高效地,看到,我们现在对,看到,我们现在对,直接查询引擎、,直接查询引擎、,基线以及句子窗口进行了比较。
基线以及句子窗口进行了比较。
并且我们还可以看到我们刚刚,并且我们还可以看到我们刚刚,在笔记本显示 DOI 中看到的矩阵,我们将讨论的下一个高级检索技术是自动合并,我们将讨论的下一个高级检索技术是自动合并,检索器。
这里我们构建一个由,检索器,这里我们构建一个由,较大父节点和,较大父节点和,引用父节点的较小子节点组成的层次结构,引用父节点的较小子节点组成的层次结构,因此例如我们可能有一个,因此例如我们可能有一个。
块大小为 512 个令牌的父节点,块大小为 512 个令牌的父节点,并且在下面 是,并且在下面 是,链接到此父节点的块大小为 128 标记的四个子节点,自动合并检索器,自动合并检索器。
通过将检索节点合并到更大的,通过将检索节点合并到更大的,父节点中来工作,这意味着在,父节点中来工作,这意味着在,检索期间,如果父节点实际上检索了,检索期间,如果父节点实际上检索了,其大部分子节点。
其大部分子节点,那么我们将替换 子节点,那么我们将替换 子节点,与父,与父,节点,因此这允许我们分层合并,节点,因此这允许我们分层合并。
检索 noes,检索 noes,所有子节点的组合与,所有子节点的组合与,父 Noe 的文本相同,类似于句子,父 Noe 的文本相同,类似于句子,窗口检索器,在接下来的几课中,窗口检索器。
在接下来的几课中,我们将做更多 在这里深入了解它是,我们将做更多 在这里深入了解它是,如何工作的,我们将向您展示如何使用,如何工作的,我们将向您展示如何使用,在这里我们,在这里我们。
再次使用 GBT 3。5 Turbo 为 LM,再次使用 GBT 3。5 Turbo 为 LM,模型,我们从,模型,我们从,自动合并,自动合并。
检索器获得查询引擎,让我们尝试运行一个,检索器获得查询引擎,让我们尝试运行一个,示例,示例。
查询,我如何,查询,我如何,在日志中构建人工智能项目组合,您实际上,在日志中构建人工智能项目组合,您实际上,看到了合并项目过程,看到了合并项目过程,我们正在将节点合并到父节点中。
我们正在将节点合并到父节点中,基本上撤退父节点,基本上撤退父节点。
而不是子,而不是子,节点来构建人工智能项目组合,节点来构建人工智能项目组合,重要的是从简单的,重要的是从简单的,任务开始,并逐渐进展一些,任务开始,并逐渐进展一些,更复杂的,更复杂的,任务。
所以我们看到它,任务,所以我们看到它。
然后我们在,然后我们在。
我们的评估问题之上运行具有真实借出的自动原始检索器,我们的评估问题之上运行具有真实借出的自动原始检索器。
对于每个问题,您,对于每个问题,您,实际上看到正在进行的合并过程,实际上看到正在进行的合并过程,例如将三个节点合并到,例如将三个节点合并到,父节点中 第一个问题的节点如果我们。
父节点中 第一个问题的节点如果我们,向下滚动一点,我们会看到,向下滚动一点,我们会看到,对于其中一些其他问题,对于其中一些其他问题,我们也在执行合并,我们也在执行合并,过程,将三个节点合并到,过程。
将三个节点合并到,父节点中,将一个节点合并到 par 中,父节点中,将一个节点合并到 par 中,示例问题响应对是什么,示例问题响应对是什么,网络在人工智能中的重要性网络,网络在人工智能中的重要性网络。
在人工智能中很重要,因为它,在人工智能中很重要,因为它,有助于建立一个强大的专业,有助于建立一个强大的专业,网络社区,现在我们已经运行了,网络社区,现在我们已经运行了,所有三种检索技术,基本的。
所有三种检索技术,基本的,抹布管道以及两种高级,抹布管道以及两种高级。
检索方法,我们可以查看,检索方法,我们可以查看,全面的排行榜 看看这,全面的排行榜 看看这,三种技术是如何,三种技术是如何,叠加的,除了评估问题之外。
我们还得到了 autover virgent 查询引擎的相当不错的结果,我们在基础性方面得到了 100%,我们在基础性方面得到了 100%,在,在,答案相关性方面得到了 94% 在。
答案相关性方面得到了 94% 在,上下文相关性方面得到了 43% 哪一个更高 与,上下文相关性方面得到了 43% 哪一个更高 与,句子窗口和,句子窗口和,基线机架,基线机架,管道相比,我们得到。
管道相比,我们得到,与句子窗口 opary 引擎大致相同的总成本,这,与句子窗口 opary 引擎大致相同的总成本,这,意味着这里的检索,意味着这里的检索。
,最后您也可以,最后您也可以,在仪表板中查看这一点,本课,在仪表板中查看这一点,本课,给出 您将全面了解,给出 您将全面了解,如何设置基本和高级碎片,如何设置基本和高级碎片,管道,管道。
以及如何设置评估,以及如何设置评估,模块来衡量,模块来衡量,下一课的性能,aicon 将深入研究,下一课的性能,aicon 将深入研究,这些评估模块,这些评估模块,特别是坟墓,特别是坟墓。
答案相关性和上下文的碎片三元组 相关性,答案相关性和上下文的碎片三元组 相关性。
您将更多地了解如何,您将更多地了解如何,使用这些模块以及每个模块的。
标签:检索,吴恩达,所以,模型,微调,教程,笔记,数据,我们 From: https://www.cnblogs.com/apachecn/p/18443048