Open cdoern opened 3 weeks ago
additional d/s req
We need to implement a notion of CLI profiles for InstructLab, because at a high level we have laptop vs. big GPU boxen use cases, and finer-grained we have specific GPU / vendor configurations and use cases. Each major component has potential for profiles to simplify usage (particularly training, which we already have an early implementation for.)
General goal is to provide a good UX experience with great output OOTB without a lot of hacking required by end users. Anti-goal is to be an ffmpeg-like experience with a bajillion flags to get a relatively basic action working.
Feature Overview (aka. Goal Summary) I want to be able to get started as soon and as smoothly as possible, without spending a lot of time configuring different parts and pieces.
Goals (aka. expected user outcomes)
CLI users should get a complete configuration file with the relevant changes implemented across different sections (training, serving, generate, eval) based on their GPU configuration, without having to make a lot of changes (i.e. enabling individual flags etc). We want them to select their hardware, do ‘ilab config -init’, copy it over and start working on the next piece.
Questions to Answer (Optional):
How do we extend training profiles to config profiles that cover each component - generate, evaluate, train? How do we build config profiles for different hardware configurations? How do we detect hardware?
What is the current experience of ilab you've found issue with? Using Instructlab with different hardware capabilities
How do you think the described experience should be? Users should be able to set different configurations upon initialization of
instructlab
that allow them to properly use their hardware. These profiles should contain things like the following:gpus
for generate, evaluate, etc based on hardwareWhat is the benefit of the change you are proposing?
In
ilab 0.18.0
the idea of atrain-profile
was introduced. These yaml files allow users to set different options for training based on their GPU configuration. This idea should be more broadly expanded acrossilab
in the following ways to alleviate user confusion about how to best utilize the newly introduced more intensive pipelines.Additional context
The system can look like this:
The first choice would allow the user to get some sane defaults for commands like
data generate
,model evaluate
etc. And then the secondary prompt allows us to set propereffective_batch_size
and other entries in the_train
config.This is a pretty lofty EP so I intend to use this issue as a tracker for sub-issues