EvolKit  by arcee-ai

LLM instruction enhancement framework

Created 1 year ago
252 stars

Top 99.6% on SourcePulse

GitHubView on GitHub
Project Summary

<2-3 sentences summarising what the project addresses and solves, the target audience, and the benefit.> EvolKit is a framework designed to automatically enhance the complexity of instructions used for fine-tuning Large Language Models (LLMs). It targets researchers and practitioners aiming to improve LLM instruction-following capabilities by leveraging open-source LLMs and an automated evolution process, offering an alternative to closed-source solutions.

How It Works

EvolKit employs a recurrent evolution strategy for instruction enhancement. It integrates with open-source LLMs via generators (like VLLM or OpenRouter) to create and refine instructions. The process involves an Analyzer for trajectory analysis, an Evaluator (using a reward model or a failure detector inspired by WizardLM) to assess instruction quality, and an Optimizer to refine the evolution methods for subsequent rounds, streamlining the fine-tuning data preparation pipeline.

Quick Start & Requirements

  • Installation: Clone the repository (git clone https://github.com/arcee-ai/EvolKit.git), cd EvolKit, and install dependencies (pip install -r requirements.txt).
  • Prerequisites: Python, Hugging Face datasets, and LLMs capable of generating structured content. Recommended models include Qwen2-72B-Instruct and DeepSeek-V2.5 (GPTQ/AWQ versions acceptable). VLLM backend requires export VLLM_BACKEND=http://your-vllm-backend-url:port/v1.
  • Usage: Run the main script with python run_evol.py --dataset <dataset_name> --model <model_name> --generator <generator_type> --batch_size <int> --num_methods <int> --max_concurrent_batches <int> --evolve_epoch <int> --output_file <filename>.
  • Hardware: Experiments mention a cluster of 8xH100 for handling large concurrent batches with Qwen2-72B-Instruct.
  • Links: The repository URL is https://github.com/arcee-ai/EvolKit.git.

Highlighted Details

  • Automates the enhancement of instruction complexity for LLM fine-tuning.
  • Focuses on integration with open-source LLMs, offering an alternative to closed-source solutions.
  • Includes components for generation, evolution, analysis, evaluation (Reward Model or Failure Detector), and optimization.
  • A 20k subset of data generated by EvolKit is available.

Maintenance & Community

No specific details on contributors, sponsorships, community channels (Discord/Slack), or roadmaps are provided in the README.

Licensing & Compatibility

The README does not specify a license type or any compatibility notes for commercial use.

Limitations & Caveats

The framework requires LLMs that are proficient at generating structured content for parsing operations. The README advises against using a development set (--dev_set_size) for performance reasons, suggesting it significantly increases processing time.

Health Check
Last Commit

1 year ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
7 stars in the last 30 days

Explore Similar Projects

Starred by Jeff Huber Jeff Huber(Cofounder of Chroma), Omar Khattab Omar Khattab(Coauthor of DSPy, ColBERT; Professor at MIT), and
1 more.

arbor by Ziems

0.3%
318
Framework for optimizing DSPy programs with RL
Created 11 months ago
Updated 1 month ago
Starred by Jeff Hammerbacher Jeff Hammerbacher(Cofounder of Cloudera), Yineng Zhang Yineng Zhang(Inference Lead at SGLang; Research Scientist at Together AI), and
13 more.

open-instruct by allenai

0.3%
4k
Training codebase for instruction-following language models
Created 2 years ago
Updated 18 hours ago
Feedback? Help us improve.