@neural-tools/fine-tune

v0.1.3 • View on npm

Streamlined fine-tuning workflows and utilities for LLM models.

On this page

Installation

npm install @neural-tools/fine-tune

Requires OpenAI SDK for fine-tuning:

npm install openai

Usage

Quick Start

import { FineTuner } from '@neural-tools/fine-tune';

const tuner = new FineTuner({
  apiKey: process.env.OPENAI_API_KEY,
  model: 'gpt-3.5-turbo'
});

// Prepare training data
const data = [
  {
    messages: [
      { role: 'system', content: 'You are a helpful assistant.' },
      { role: 'user', content: 'What is 2+2?' },
      { role: 'assistant', content: '2+2 equals 4.' }
    ]
  },
  // ... more examples
];

// Start fine-tuning job
const job = await tuner.train({
  data,
  suffix: 'my-model',
  epochs: 3
});

console.log('Job ID:', job.id);

Data Preparation

Format Validation

import { validateTrainingData } from '@neural-tools/fine-tune';

const errors = validateTrainingData(data);
if (errors.length > 0) {
  console.error('Validation errors:', errors);
} else {
  console.log('Data is valid!');
}

Data Conversion

Convert from common formats:

import { convertFromCSV, convertFromJSON } from '@neural-tools/fine-tune';

// From CSV
const data = await convertFromCSV('training.csv', {
  userColumn: 'question',
  assistantColumn: 'answer',
  systemPrompt: 'You are a helpful assistant.'
});

// From JSON
const data = await convertFromJSON('training.json');

Training

Monitor Progress

// Check job status
const status = await tuner.getJobStatus(job.id);
console.log('Status:', status.status);
console.log('Progress:', status.trained_tokens);

// Wait for completion
await tuner.waitForCompletion(job.id, {
  onProgress: (status) => {
    console.log('Training progress:', status.progress);
  }
});

Use Fine-Tuned Model

import OpenAI from 'openai';

const openai = new OpenAI();

const response = await openai.chat.completions.create({
  model: 'ft:gpt-3.5-turbo:my-model',
  messages: [
    { role: 'user', content: 'Your query' }
  ]
});

Best Practices

Related Packages