网站备案一次就可以了吧,wordpress wp_register_script,企业it外包服务公司,汉中商城网站建设使用轻量级库经济地生成高质量的合成数据集
大型语言模型 #xff08;LLMs#xff09; 是功能强大的通用工具#xff0c;但它们通常缺乏特定于领域的知识#xff0c;这些知识通常存储在企业存储库中。
使用您自己的数据微调自定义LLM可以弥合这一差距#xff0c;而数据准…使用轻量级库经济地生成高质量的合成数据集
大型语言模型 LLMs 是功能强大的通用工具但它们通常缺乏特定于领域的知识这些知识通常存储在企业存储库中。
使用您自己的数据微调自定义LLM可以弥合这一差距而数据准备是此过程的第一步。这也是一个关键的步骤可以显着影响微调模型的性能。
但是手动创建数据集可能既昂贵又耗时。另一种方法是利用 来LLM生成合成数据集通常使用 GPT-4 等高性能模型这可能会非常昂贵。
在本文中我旨在提请您注意一种经济高效的替代方案用于自动从各种文档创建指令数据集。该解决方案涉及使用名为 Bonito 的轻量级开源库。 图像由作者使用由 DALL 提供支持的 Bing 聊天生成。E 3
开始使用 Bonito开源解决方案
了解说明
在我们深入研究库鲣鱼及其工作原理之前我们需要首先了解指令是什么。
指令是给 LLMLlama、GPT-4 等的文本或提示。它指示模型生成特定类型的答案。通过说明人们可以引导讨论确保模型的回复是相关的、有用的并且符合用户的需求。创建清晰准确的说明对于实现预期结果非常重要。
介绍 Bonito一种用于条件任务生成的开源模型
Bonito 是一个开源模型专为条件任务生成而设计。它可用于创建合成指令调优数据集使大型语言模型适应用户的专用私有数据。 Bonito 工作流程。来源学习生成用于零样本任务适应的指令调整数据集
Bonito开发背后的研究论文说明了如何有效地使用它来使预训练和指令调整的模型适应各种任务而无需任何文本注释。
该模型本身是使用 mistralai/Mistral-7B-v0.1 包含1.65M示例的新大规模数据集进行微调的。
Bonito 还支持多种任务类型包括多项选择题解答、是-否问答、自然语言推理、主题分类等。 如何使用鲣鱼
使用 Bonito 模型的最简单方法是通过他们基于 和 vllm 库构建的 transformers 包。
在下一节中我将向您展示如何轻松地使用 Bonito 包从 PDF 文档创建合成数据集。
生成数据集的分步指南
在本指南中我将向您展示如何使用 Bonito 包从 PDF 文档生成问答数据集。
在这个例子中我选择了卢森堡金融监管机构 CSSF 发布的第 12/552 号通知该通知与银行治理和中央管理有关。这种选择背后的动机源于一种观察即像 ChatGPT 这样的工具往往难以掌握特定领域的知识尤其是特定行业和卢森堡等较小国家的监管要求。
我的目标是将此循环转换为适合微调的LLM教学数据集。这种量身定制LLM将使我能够理解潜在的监管要求回应有关这些要求的询问并最终将其效用扩展到更广泛的应用例如风险管理、影响评估和持续监控。 先决条件由于 Bonito 是 Mistral 7B 的微调模型因此我个人使用 Google Colab A100 GPU 实例运行此演示。它还应该在具有足够 GPU 和 RAM 的计算机上本地工作。 你可以在这里找到我的 Colab 笔记本。
第 1 步 — 安装 Bonito 软件包和其他依赖项
除了鲣鱼套餐我们还需要
数据集和 Hugging Face Hub 库用于处理数据集并与 Hugging Face 存储库交互PyMuPDF 和 SpaCyPyMuPDF 用于从 PDF 文件中读取和提取文本而 SpaCy 用于自然语言处理任务。 !pip install -e githttps://github.com/BatsResearch/bonito#eggbonito
!pip install datasets huggingface_hub
!pip install pymupdf spacy 第 2 步处理 PDF 文档
首先我们利用 PyMuPDF 库从文档中提取文本。 import fitz # PyMuPDFdef extract_text_from_pdf(pdf_path):doc fitz.open(pdf_path) # Open the PDF filetext for page in doc: # Iterate through each pagetext page.get_text() # Extract text and append it to the text variablereturn textpdf_path cssf_12_552_governance.pdf # Specify the path to your PDF document
text extract_text_from_pdf(pdf_path) # Call the function with the path to your PDF 接下来我们通过将提取的文本拆分为句子来处理它。此步骤使用 SpaCy这是一个用于高级自然语言处理 NLP 的库。 import spacynlp spacy.load(en_core_web_sm) # Load the English language modeldef split_into_sentences(text):doc nlp(text) # Process the text with SpaCysentences [sent.text.strip() for sent in doc.sents] # Extract sentences and strip whitespacereturn sentencessentences split_into_sentences(text) # Split the extracted text into sentences 最后我们将句子列表转换为模型 Bonito 可以使用的格式特别是使用 datasets 库 from datasets import Dataset# Assuming sentences is a list of strings, where each string is a sentence
data {sentence: sentences}
dataset Dataset.from_dict(data)print(dataset) 步骤 3生成合成数据集
现在是时候利用 Bonito 库来生成为问答量身定制的合成数据集了 from bonito import Bonito, SamplingParams
from datasets import load_dataset# Initialize the Bonito model
bonito Bonito(BatsResearch/bonito-v1)sampling_params SamplingParams(max_tokens256, top_p0.95, temperature0.5, n1)
synthetic_dataset bonito.generate_tasks(dataset,context_colsentence,task_typeqg,sampling_paramssampling_params
) 在此示例中我们使用 Bonito 进行“问题生成”qg 为数据集创建问题。但鲣鱼可以处理各种各样的任务。以下是 Bonito 可以管理的任务类型的简要概述
抽取式问答 exqa根据给定的文本片段生成问题的答案直接从文本中提取答案。多项选择题解答 mcqa提供一组多项选择题的答案。问题生成 qg根据所提供文本的内容创建问题。无选择的问答 qa在不提供多项选择选项的情况下回答问题。是-否问答 ynqa生成问题的“是”或“否”答案。共指解析 coref标识文本中引用同一实体的提及。释义生成释义用不同的措辞重写句子或短语同时保留原始含义。释义识别 paraphrase_id确定两个句子或短语是否传达相同的含义。句子完成 sent_comp填补句子中缺失的部分。情绪分析情绪标识文本中表达的情绪例如正面、负面或中性。摘要将较长的文本压缩为较短的摘要以捕捉要点。文本生成 text_gen根据提示创建连贯且上下文相关的文本。主题分类 topic_class将文本分类为预定义的主题。词义消歧 wsd根据词的上下文确定词的含义。文本蕴涵 te预测给定文本是否在逻辑上遵循另一个文本。自然语言推理 nli确定两个文本之间的关系例如矛盾、蕴涵或中立性。
步骤 4保存生成的数据集
现在我们可以将生成的数据集保存在本地或将其上传到 Hugging Face Hub。
要在 Hugging Face Hub 上上传和保存数据集请登录 Hub。 from huggingface_hub import notebook_loginnotebook_login()然后为数据集创建存储库并将其推送到中心。 from huggingface_hub import create_repo
from huggingface_hub import Repositoryrepo_name dataset_12_552 # Choose a name for your dataset repository
repo_url create_repo(repo_name, repo_typedataset)
print(Repository URL:, repo_url)
synthetic_dataset.push_to_hub(fRonal999/dataset_12_552) 这是我用我的文档创建的数据集当然在微调过程之前它需要一些进一步的清理和改进以确保其质量和性能。 我用 Bonito 生成的合成数据集 结束语
创建高质量的指令数据集是实现性能良好的模型的关键但这可能是一个耗时的过程。
在本指南中我们研究了如何使用 Bonito一种经过特殊微调的开源模型从任何文本创建数据集。与手工做事或使用 GPT-4 等付费模型相比这种新方式提供了一个不错的选择这可能会变得非常昂贵。
鲣鱼是一种相对较新的方法上个月刚刚发布。由于大量知识存在于分散在各种文档中的非结构化数据中因此我使用 Bonito 从多个文档自动生成数据集。然后这些数据集用于训练本地LLM使我能够自定义我的模型来理解和利用特定知识。