v0.1.3 • View on npm
Streamlined fine-tuning workflows and utilities for LLM models.
npm install @neural-tools/fine-tune
Requires OpenAI SDK for fine-tuning:
npm install openai
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);
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!');
}
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');
// 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);
}
});
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' }
]
});