引见一款有后劲的标志数据集生成模型 没有标志数据集 如何做大模型指令微调
在构建大模型运行时,理论有两种模式来改良效果,一种是构建外部常识库,应用RAG来实现。但RAG并不是万能的,关于特定畛域的LLM运行,以及无需示例,就能实现特定义务等场所就须要启动微调。但是,微调自身相较于RAG来讲,须要更多的算力资源和期间周期,但更大的瓶颈在于微调须要标志过的样本数据。这关于很多企业来讲,很难有这样高品质的数据积攒,他们的数据理论是未经标志的,或许是一篇一篇的文章或许规章制度,并不是以问答对的模式而存在。
为了实现微调,传统做法就是经过人工的模式启动问答对结构,在此基础上斯坦福钻研团队也提出了Alpaca经常使用GPT-4这样的强模型模拟种子样本生成标志数据集。
笔者引见一个新的样本数据生成的名目Bonito(),一个用于条件义务生成的开源模型,它可以将未标注的文本转换为特定义务的训练数据集,用于指令微调。依据论文引见,该模型自身是在 mistralai/Mistral-7B-v0.1 的基础上,应用包括 165 万个示例的数据集()启动微调,允许多种义务类型,包括多选题回答、是非题回答、人造言语推理、主题分类等。
Benito名目自身是一个数据生成的LLM运行,模型由vllm减速,经常使用方法比拟便捷。基本环节为将文档内容提取进去(datasets),比如PDF等,而后指定生成义务类型,并将其传给bonito.generate_task即可。
Bonito定义:
class Bonito(LLM, AbstractBonito):def generate_tasks(self,text_dataset:, **kwargs)return synthetic_dataset
基本经常使用:
from bonito import Bonitofrom vllm import SamplingParamsfrom,task_type="nli",sampling_params=sampling_params)
假构想要在显存较小的GPU上运转,如T4,可对模型启动量化。
from typing import Optional, List, Dictfrom)outputs = self._generate_text(processed_dataset["input"], sampling_params)examples = []for i, example in enumerate(text_dataset.to_list()):output = outputs[i]example["prediction"] = output.strip()examples.append(example)synthetic_dataset =).to_list()[0]return synthetic_dataset_dictdef _generate_text(self,dataset:)input_ids = input_ids.cuda()output = self.model.generate(input_ids,do_sample=True,**sampling_params)generated_text = self.tokenizer.decode(output[0][len(input_ids[0]):], skip_special_tokens=True)generated_texts.append(generated_text)return generated_texts
以tasktype为ynqa,即yes-or-no疑问为例,其生成的结果如下:
sampling_params = {'max_new_tokens':256, 'top_p':0.95, 'temperature':0.7, 'num_return_sequences':1}synthetic_dataset = bonito.generate_task(unannotated_paragraph,task_type="ynqa",sampling_params=sampling_params)pprint("----Generated Instructions----")pprint(f'Input: {synthetic_dataset["input"]}')pprint(f'Output: {synthetic_dataset["output"]}')'----Generated Instructions----'('Input: Based on the following passage, is a written communication ' 'confidential? 1. “Confidential Information”, whenever used in this ' 'Agreement, shall mean any>
其中,tasktype允许的义务类型如下:
在功能上,相较于GPT-4的打算,bonito在三个数据集中两个上取得了逾越GPT4的好效果。
小结:
相较于经常使用GPT-4生成标志样本的方法,经过专门面向数据集生成微调的模型Bonito来讲,允许zero-shot级别的样本生成,并且可以经常使用开源的模型,这在开明性,老本、功能上都能具有较强的长处。
随着微调技术的始终遍及,置信数据样本品质和消费老本将遭到越来越多的注重,benito等这样的数据集生成模型也将迎来更大的开展。
本文转载自,作者: