halilcosdu / laravel-finetuner
Laravel Fine tuner is a package designed for the Laravel framework that automates the fine-tuning of OpenAI models. It simplifies the process of adjusting model parameters to optimize performance, tailored specifically for Laravel applications. This tool is ideal for developers looking to enhance AI
Fund package maintenance!
Buy Me A Coffee
Requires
- php: ^8.2
- illuminate/contracts: ^10.0||^11.0
- openai-php/laravel: ^0.8.1
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^2.9
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^9.0.0||^8.22.0
- pestphp/pest: ^2.34
- pestphp/pest-plugin-arch: ^2.7
- pestphp/pest-plugin-laravel: ^2.3
- phpstan/extension-installer: ^1.3
- phpstan/phpstan-deprecation-rules: ^1.1
- phpstan/phpstan-phpunit: ^1.3
- spatie/laravel-ray: ^1.35
README
It simplifies the process of adjusting model parameters to optimize performance, tailored specifically for Laravel applications. This tool is ideal for developers looking to enhance AI capabilities in their projects efficiently, with minimal manual intervention.
Installation
You can install the package via composer:
composer require halilcosdu/laravel-finetuner
You can publish the config file with:
php artisan vendor:publish --tag="finetuner-config"
This is the contents of the published config file:
return [ 'api_key' => env('OPENAI_API_KEY'), 'organization' => env('OPENAI_ORGANIZATION'), 'request_timeout' => env('OPENAI_TIMEOUT'), 'use_storage' => env('FINE_TUNER_USE_STORAGE', false), 'sleep_seconds' => env('OPENAI_SLEEP_SECONDS'), //Sleep seconds between requests default .1 'storage' => [ 'disk' => env('FINE_TUNER_STORAGE', 'public'), ],
Usage
use HalilCosdu\FineTuner\Facades\FineTuner; FineTuner::generateExamples($prompt, $temperature = .4, $numberOfExamples = 2): array FineTuner::upload(string $file): string FineTuner::fineTune(string $fileId, string $model = 'gpt-3.5-turbo'): string
use HalilCosdu\FineTuner\Facades\FineTuner; // Generate examples for fine-tuning $trainingExamples = FineTuner::generateExamples("A versatile AI assistant designed to provide personalized support across all aspects of life, from physical health and mental wellness to emotional well-being, adapting its guidance to the user's unique situation and needs. It offers practical advice, empathetic support, and proactive reminders, all while ensuring privacy and security, and continuously evolving through feedback and research.")
{ "training_data": [ { "messages": [ { "role": "system", "content": "Given your current situation and needs, how can I assist you today?" }, { "role": "user", "content": "Hey AI, I've been feeling really stressed out lately because of work. Any advice on how I can manage this better?" }, { "role": "assistant", "content": "I'm really sorry to hear that you're feeling this way, but please know that it's okay to feel stressed. Here are a few suggestions that might help:\n\n1. Mindfulness and Relaxation: Try techniques like deep breathing, meditation, or yoga. They can help you to stay calm and focused.\n\n2. Time Management: Prioritize your tasks and break them down into manageable chunks. Remember, it's okay to say no to tasks that are not a priority.\n\n3. Physical Activity: Regular exercise can help reduce stress levels. Even a short walk can make a difference.\n\n4. Connect with Others: Talk to someone you trust about your stress. It can often help to share what you're experiencing.\n\n5. Professional Help: If your stress continues or leads to feelings of despair, it might be helpful to speak with a mental health professional.\n\nRemember, everyone experiences stress differently and different techniques work for different people. It's important to find what works best for you." } ] } ], "file_url": null }
// If the `FINE_TUNER_USE_STORAGE` environment variable is set to `true`, the `file_url` will be returned for the upload function. Alternatively, you can create your own training `.jsonl` file using the `training_data`. // Upload the training data $fileId = FineTuner::upload($trainingExamples['file_url']) // Fine-tune the model FineTuner::fineTune($fileId, 'gpt-3.5-turbo')
The php artisan laravel-finetuner
command is used to interact with the Laravel Finetuner package. This command initiates a process that generates examples.
Here's a detailed explanation of how to use this command:
-
Open your terminal.
-
Navigate to your Laravel project directory.
-
Run the command
php artisan laravel-finetuner
. -
The command will first ask for a
Prompt
. This is a string that will be used to generate examples for fine-tuning. If you don't provide a prompt, it will use a default one. -
Next, it will ask for the
Temperature
. This is a float value that controls the randomness of the examples generated. A higher value will result in more random examples. If you don't provide a temperature, it will use a default value of.4
. -
Then, it will ask for the
Number of examples
. This is an integer that specifies how many examples to generate. If you don't provide a number, it will use a default value of1
. -
After you've provided these inputs, the command will ask for your confirmation to continue. If you confirm, it will start generating examples, which may take a while.
-
Once the examples are generated, they will be uploaded. If there's an error during this process, the command will display an error message.
-
If everything goes well, the command will display a URL. This URL points to the location where the generated examples were uploaded.
Remember, this command is part of the Laravel Finetuner package, which is designed to automate the fine-tuning of OpenAI models in Laravel applications.
php artisan laravel-finetuner
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.