synthetic-data-kit is its use of the Lance format for storing and ingesting datasets. This allows for efficient storage and retrieval of data, which is crucial when working with large datasets.
Key Features:
- Data Ingestion: The toolkit can ingest various file formats, including PDF, HTML, YouTube transcripts, DOCX, PPT, and TXT.
- Fine-tuning Format Creation: It can create different fine-tuning formats, such as question-answer (QA) pairs, QA pairs with Chain-of-Thought (CoT), and summarization formats.
- Data Curation: The tool uses Llama as a judge to curate high-quality examples, ensuring the quality of the generated dataset.
- Flexible Saving Options: You can save the generated datasets in various formats compatible with your fine-tuning workflow, including HuggingFace, JSONL, and JSON.
How it Works:
The synthetic-data-kit follows a simple four-step process:- Ingest: Import your input files into the toolkit. The data is stored in the Lance format for efficient processing.
- Create: Generate diverse fine-tuning datasets, such as reasoning, summarization, and QA pairs, from the ingested documents.
- Curate: Use Llama to filter and select high-quality examples from the generated dataset.
- Save-as: Export the curated dataset in your preferred format.
Usage
Thesynthetic-data-kit uses Lance format to store and manage the data that you ingest. The workflow is a series of commands that build on each other, starting with the ingest command.
Here is an example of the end-to-end workflow:
-
Ingest Data into a LanceDB dataset
This command reads a source document and creates a Lance dataset from it.
-
Create fine-tuning data
This command uses the Lance dataset created in the previous step to generate multimodal question-answer pairs.
-
Curate the data
This step uses a language model to curate the generated data and ensure its quality.
-
Save the final dataset
Finally, save the curated data in the format you need:
jsonl,alpaca,ftorchatml.
Getting Started:
To get started with the synthetic-data-kit, you can clone the GitHub Repository and install the necessary dependencies.Note: You will also need access to a Llama model, either running locally or via a hosted API.