当前位置: 首页 > news >正文

湖北做网站的公司wordpress连接被重置

湖北做网站的公司,wordpress连接被重置,茂名市建设局网站,鞍山58二手车OpenAI在2023年8月22日宣布#xff0c;现在可以对GPT-3.5 Turbo进行微调了。也就是说#xff0c;我们可以自定义自己的模型了。然后LlamaIndex就发布了0.8.7版本#xff0c;集成了微调OpenAI gpt-3.5 turbo的功能 也就是说#xff0c;我们现在可以使用GPT-4生成训练数据现在可以对GPT-3.5 Turbo进行微调了。也就是说我们可以自定义自己的模型了。然后LlamaIndex就发布了0.8.7版本集成了微调OpenAI gpt-3.5 turbo的功能 也就是说我们现在可以使用GPT-4生成训练数据然后用更便宜的APIgpt-3.5 turbo来进行微调从而获得更准确的模型并且更便宜。所以在本文中我们将使用NVIDIA的2022年SEC 10-K文件来仔细研究LlamaIndex中的这个新功能。并且将比较gpt-3.5 turbo和其他模型的性能。 RAG vs 微调 微调到底是什么?它和RAG有什么不同?什么时候应该使用RAG和微调?以下两张总结图: 这两个图像总结了它们基本的差别为我们选择正确的工具提供了很好的指导。 但是RAG和微调并不相互排斥。将两者以混合方式应用到同一个应用程序中是完全可行的。 RAG/微调混合方法 LlamaIndex提供了在RAG管道中微调OpenAI gpt-3.5 turbo的详细指南。从较高的层次来看微调可以实现下图中描述的关键任务: 使用DatasetGenerator实现评估数据集和训练数据集的数据生成自动化。在微调之前使用第1步生成的Eval数据集对基本模型gpt-3.5-turbo进行Eval。构建向量索引查询引擎调用gpt-4根据训练数据集生成新的训练数据。回调处理程序OpenAIFineTuningHandler收集发送到gpt-4的所有消息及其响应并将这些消息保存为.jsonl (jsonline)格式OpenAI API端点可以使用该格式进行微调。OpenAIFinetuneEngine是通过传入gpt-3.5-turbo和第4步生成的json文件来构造的它向OpenAI发送一个微调调用向OpenAI发起一个微调作业请求。OpenAI根据您的要求创建微调的gpt-3.5-turbo模型。通过使用从第1步生成的Eval数据集来对模型进行微调。 简单的总结来说就是这种集成使gpt-3.5 turbo能够对gpt-4训练的数据进行微调并输出更好的响应。 步骤2和7是可选的因为它们仅仅是评估基本模型与微调模型的性能。 我们下面将演示这个过程在演示时使用NVIDIA 2022年的SEC 10-K文件。 主要功能点 1、OpenAIFineTuningHandler 这是OpenAI微调的回调处理程序用于收集发送到gpt-4的所有训练数据以及它们的响应。将这些消息保存为.jsonl (jsonline)格式OpenAI的API端点可以使用该格式进行微调。 2、OpenAIFinetuneEngine 微调集成的核心是OpenAIFinetuneEngine它负责启动微调作业并获得一个微调模型可以直接将其插件到LlamaIndex工作流程的其余部分。 使用OpenAIFinetuneEngine, LlamaIndex抽象了OpenAI api进行微调的所有实现细节。包括: 准备微调数据并将其转换为json格式。使用OpenAI的文件上传微调数据。创建端点并从响应中获取文件id。通过调用OpenAI的FineTuningJob创建一个新的微调作业。创建端点。等待创建新的微调模型然后使用新的微调模型。 我们可以使用OpenAIFinetuneEngine的gpt-4和OpenAIFineTuningHandler来收集我们想要训练的数据也就是说我们使用gpt-4的输出来训练我们的自定义的gpt-3.5 turbo模型 from llama_index import ServiceContextfrom llama_index.llms import OpenAIfrom llama_index.callbacks import OpenAIFineTuningHandlerfrom llama_index.callbacks import CallbackManager# use GPT-4 and the OpenAIFineTuningHandler to collect data that we want to train on.finetuning_handler OpenAIFineTuningHandler()callback_manager CallbackManager([finetuning_handler])gpt_4_context ServiceContext.from_defaults(llmOpenAI(modelgpt-4, temperature0.3),context_window2048, # limit the context window artifically to test refine processcallback_managercallback_manager,)# load the training questions, auto generated by DatasetGeneratorquestions []with open(train_questions.txt, r) as f:for line in f:questions.append(line.strip())from llama_index import VectorStoreIndex# create index, query engine, and run query for all questionsindex VectorStoreIndex.from_documents(documents, service_contextgpt_4_context)query_engine index.as_query_engine(similarity_top_k2)for question in questions:response query_engine.query(question)# save fine-tuning events to jsonl filefinetuning_handler.save_finetuning_events(finetuning_events.jsonl)from llama_index.finetuning import OpenAIFinetuneEngine# construct OpenAIFinetuneEngine finetune_engine OpenAIFinetuneEngine(gpt-3.5-turbo,finetuning_events.jsonl)# call finetune, which calls OpenAI API to fine-tune gpt-3.5-turbo based on training data in jsonl file.finetune_engine.finetune()# check current job statusfinetune_engine.get_current_job()# get fine-tuned modelft_llm finetune_engine.get_finetuned_model(temperature0.3)需要注意的是微调函数需要时间对于我测试的169页PDF文档从在finetune_engine上启动finetune到收到OpenAI的电子邮件通知我新的微调工作已经完成这段时间大约花了10分钟。下面的电子邮件如下。 在收到该电子邮件之前如果在finetune_engine上运行get_finetuned_model会得到一个错误提示微调作业还没有准备好。 3、ragas框架 ragas是RAG Assessment的缩写它提供了基于最新研究的工具使我们能够深入了解RAG管道。 ragas根据不同的维度来衡量管道的表现:忠实度、答案相关性、上下文相关性、上下文召回等。对于这个演示应用程序我们将专注于衡量忠实度和答案相关性。 忠实度:衡量给定上下文下生成的答案的信息一致性。如果答案中有任何不能从上下文推断出来的主张则会被扣分。 答案相关性:指回答直接针对给定问题或上下文的程度。这并不考虑答案的真实性而是惩罚给出问题的冗余信息或不完整答案。 在RAG管道中应用ragas的详细步骤如下: 收集一组eval问题(最少20个在我们的例子中是40个)来形成我们的测试数据集。在微调之前和之后使用测试数据集运行管道。每次使用上下文和生成的输出记录提示。对它们中的每一个运行ragas评估以生成评估分数。比较分数就可以知道微调对性能的影响有多大。 代码如下 contexts []answers []# loop through the questions, run query for each questionfor question in questions:response query_engine.query(question)contexts.append([x.node.get_content() for x in response.source_nodes])answers.append(str(response))from datasets import Datasetfrom ragas import evaluatefrom ragas.metrics import answer_relevancy, faithfulnessds Dataset.from_dict({question: questions,answer: answers,contexts: contexts,})# call ragas evaluate by passing in dataset, and eval categoriesresult evaluate(ds, [answer_relevancy, faithfulness])print(result)import pandas as pd# print result in pandas dataframe so we can examine the question, answer, context, and ragas metricspd.set_option(display.max_colwidth, 200)result.to_pandas()评估结果 最后我们可以比较一下微调前后的eval结果。 基本gpt-3.5-turbo的评估请看下面的截图。answer_relevance的评分不错但忠实度有点低。 经过微调模型的性能在答案相关性中略有提高从0.7475提高到0.7846提高了4.96%。 使用gpt-4生成训练数据对gpt-3.5 turbo进行微调确实看到了改善。 一些有趣的发现 1、对小文档进行微调会导致性能下降 最初用一个小的10页PDF文件进行了实验我发现eval结果与基本模型相比性能有所下降。然后又继续测试了两轮结果如下: 第一轮基本模型:Ragas_score: 0.9122, answer_relevance: 0.9601, faithfulness: 0.8688 第一轮微调模型:Ragas_score: 0.8611, answer_relevance: 0.9380, faithfulness: 0.7958 第二轮基本模型:Ragas_score: 0.9170, answer_relevance: 0.9614, faithfulness: 0.8765 第二轮微调模型:Ragas_score: 0.8891, answer_relevance: 0.9557, faithfulness: 0.8313 所以换衣小文件可能是微调模型比基本模型表现更差的原因。所以使用了NVIDIA长达169页的SEC 10-K文件。对上面的结果做了一个很好的实验——经过微调的模型表现得更好忠实度增加了4.96%。 2、微调模型的结果不一致 原因可能是数据的大小和评估问题的质量 尽管169页文档的微调模型获得了预期的评估结果但我对相同的评估问题和相同的文档运行了第二轮测试结果如下 第二轮基本模型:Ragas_score: 0.8874, answer_relevance: 0.9623, faithfulness: 0.8233 第二轮微调模型:Ragas_score: 0.8218, answer_relevance: 0.9498, faithfulness: 0.7242 是什么导致了eval结果的不一致? 数据大小很可能是导致不一致的微调计算结果的根本原因之一。“至少需要1000个微调数据集的样本。”这个演示应用显然没有那么多的微调数据集。 另一个根本原因很可能在于数据质量也就是eval问题的质量。我将eval结果打印到一个df中列出了每个问题的问题、答案、上下文、answer_relevance和忠实度。 通过目测有四个问题在忠实度中得分为0。而这些答案在文件中没有提供上下文。这四个问题质量很差所以我从eval_questions.txt中删除了它们重新运行了评估得到了更好的结果: 基本模型eval:Ragas_score: 0.8947, answer_relevance: 0.9627, faithfulness: 0.8356 微调模型eval:Ragas_score: 0.9207, answer_relevance: 0.9596, faithfulness: 0.8847 可以看到在解决了这四个质量差的问题后微调版的上升了5.9%。所以评估问题和训练数据需要更多的调整以确保良好的数据质量。这确实是一个非常有趣的探索领域。 3、微调的成本 经过微调的gpt-3.5-turbo的价格高于基本模型的。我们来看看基本模型、微调模型和gpt-4之间的成本差异: 比较gpt-3.5-turbo (4K环境)、微调gpt-3.5-turbo和gpt-4 (8K环境)可以看到: 经过微调的gpt-3.5 turbo在输入和输出使用方面的成本是基本模型的8倍。对于输入使用Gpt-4的成本是微调模型的2.5倍对于输出使用则是3.75倍。对于输入使用Gpt-4的成本是基本模型的20倍对于输出使用情况是30倍。另外使用微调模型会产生$0.008/1K 令牌的额外成本。 总结 本文探索了LlamaIndex对OpenAI gpt-3.5 turbo微调的新集成。我们通过NVIDIA SEC 10-K归档分析的RAG管道测试基本模型性能然后使用gpt-4收集训练数据创建OpenAIFinetuneEngine创建了一个新的微调模型测试了它的性能并将其与基本模型进行了比较。 可以看到因为GPT4和gpt-3.5 turbo的巨大成本差异20倍在使用微调后我们可以得到近似的效果并且还能节省不少成本2.5倍 如果你对这个方法感兴趣源代码在这里 https://avoid.overfit.cn/post/0a4ae4d87e69457dbd899d7a9af07237 作者:Wenqi Glantz
http://www.tj-hxxt.cn/news/137856.html

相关文章:

  • 企业营销型网站策划书浙江广厦建设职业技术学院招生网站
  • 站长工具传媒好的网址推荐
  • 深圳网络建设网站中国设计网站导航
  • 有关网站建设的app基于WordPress免费博客
  • 网站系统jsp模板互联网宣传推广
  • 建设部网站资质163网站是jsp做的吗
  • 用dw怎麼做网站sae wordpress ftp
  • 好看的网站模板工程网站建设方案
  • 有口碑的武进网站建设视频素材库网站下载
  • 社交网站建设教程网站设计中建设规划和准备阶段
  • 哪里学网站建设与管理网站企业型类
  • 丹东 网站开发桂林网站设计
  • 一个网站需要多少容量seo服务 文库
  • 做一个搜索引擎网站要多少钱网站制作的英文
  • 网站个别页面做seounn建站
  • apache网站开启gzipwordpress同步头条
  • 个人网站 备案 类型公司网站制作公
  • 医疗知识普及网站开发网络营销教案
  • 网站制作对公司的作用wordpress维护服务器
  • 孔夫子旧书网网站谁做的百度网站开发
  • 网站地图对网站有什么意义云南建设厅网站职称评定
  • 重庆网站建设快忻公司注册地址和实际经营地址不一样可以吗
  • 国内 织梦和wordpressseo营销外包公司
  • 做钓鱼网站违法中国银行全球门户网站
  • 嘉兴做网站优化的公司网站seo怎样做
  • 中国购物网站有哪些wordpress科技主题
  • 山东城市建设招生网站营销型公司和销售型公司
  • 科技大学全国排名建网站seo
  • 深圳网站建设方案外包国外网站404错误页
  • 服饰网站建设模板荣耀手机正品官网查询