68 lines
3.0 KiB
Markdown
68 lines
3.0 KiB
Markdown
---
|
||
license: apache-2.0
|
||
datasets:
|
||
- kitsdk/ctga-v1-1w-chinese
|
||
base_model:
|
||
- Qwen/Qwen2.5-3B
|
||
tasks:
|
||
- text-generation
|
||
- question-answering
|
||
- text-ranking
|
||
frameworks: PyTorch
|
||
language:
|
||
- zh
|
||
base_model_relation: finetune
|
||
---
|
||
# Bonito(支持中文版本)
|
||
|
||
Bonito is an open-source model for conditional task generation: the task of converting unannotated text into task-specific training datasets for instruction tuning. This repo is a lightweight library for Bonito to easily create synthetic datasets built on top of the Hugging Face `transformers` and `vllm` libraries.
|
||
|
||
- Paper: [Learning to Generate Instruction Tuning Datasets for
|
||
Zero-Shot Task Adaptation](https://arxiv.org/abs/2402.18334)
|
||
- Model: [bonito-v1](https://huggingface.co/BatsResearch/bonito-v1)(English)
|
||
- Model: [bonito-chinese-v1](https://huggingface.co/kitsdk/bonito-chinese-v1)(中文)
|
||
- Demo: [Bonito on Spaces](https://huggingface.co/spaces/nihalnayak/bonito)(English)
|
||
- Demo: [Google Colab](https://colab.research.google.com/drive/1vZ78RFywM1pkuGpxGWGLude_L2XZ5wpw?usp=sharing)(中文)
|
||
- Dataset: [ctga-v1](https://huggingface.co/datasets/BatsResearch/ctga-v1)(English)
|
||
- Code: To reproduce experiments in our paper, see [nayak-aclfindings24-code](https://github.com/BatsResearch/nayak-aclfindings24-code).
|
||
|
||

|
||
|
||
|
||
## This version supports the Chinese language
|
||
Because of the training data limitations, this version supports only the 3 task types
|
||
- 🐠 1.question generation.
|
||
- 🐡 2.multiple-choice question answering.
|
||
- 🐟 3.question answering without choices.
|
||
## Google Colab: [Demo](https://colab.research.google.com/drive/1vZ78RFywM1pkuGpxGWGLude_L2XZ5wpw?usp=sharing)
|
||
## Basic Usage
|
||
To generate synthetic instruction tuning dataset using Bonito, you can use the following code:
|
||
pip3 install bonito-llm
|
||
```python
|
||
from pprint import pprint
|
||
from datasets import Dataset
|
||
from vllm import SamplingParams
|
||
from transformers import set_seed
|
||
from bonito import Bonito
|
||
|
||
unannotated_paragraph = """灌区以往的闸门控制系统在实际应用过程中普遍以人工操作为主,容易受到多种因素的影响,不可避免出现较多缺陷。如操作人员自身的综合能力、业务水平、工作态度等对工作质量和效率产生较大影响;工作人员实践操作中遇到极端气候、工作环境恶劣等问题,大大增加了工作难度,并存在较多安全隐患。"""
|
||
pprint(unannotated_paragraph)
|
||
bonito = Bonito("kitsdk/bonito-chinese-v1")
|
||
set_seed(2)
|
||
|
||
def convert_to_dataset(text):
|
||
dataset = Dataset.from_list([{"input": text}])
|
||
return dataset
|
||
|
||
sampling_params = SamplingParams(max_tokens=256, top_p=0.95, temperature=0.5, n=1)
|
||
synthetic_dataset = bonito.generate_tasks(
|
||
convert_to_dataset(unannotated_paragraph),
|
||
context_col="input",
|
||
task_type="mcqa",
|
||
sampling_params=sampling_params
|
||
)
|
||
pprint("----Generated Instructions----")
|
||
pprint(f'Input: {synthetic_dataset[0]["input"]}')
|
||
pprint(f'Output: {synthetic_dataset[0]["output"]}')
|
||
```
|