Skip to content

Lots of CLI changes#22

Merged
rachellim merged 7 commits intomainfrom
rachel/lots-of-changes
Jun 29, 2021
Merged

Lots of CLI changes#22
rachellim merged 7 commits intomainfrom
rachel/lots-of-changes

Conversation

@rachellim
Copy link
Copy Markdown
Collaborator

No description provided.

todor-markov and others added 7 commits June 29, 2021 13:18
#33)

The check is done based on filename, file purpose and file size
It applies the following validations:
- prints the number of examples, and warns if it's lower than 100
- ensures prompt and completion columns are present
- optionally removes any additional columns
- ensures all completions are non-empty
- infers which type of fine-tuning the data is most likely in (classification, conditional generation and open-ended generation)
- optionally removes duplicate rows
- infers the existence of a common suffix, and if there is none, suggests one for classification and conditional generation
- optionally prepends a space to each completion, to make tokenization better
- optionally splits into training and validation set for the classification use case
- optionally ensures there's an ending string for all completions
- optionally lowercases completions or prompts if more than a 1/3 of alphanumeric characters are upper case

It interactively asks the user to accept or reject recommendations. If the user is happy, then it saves the modified output file as a jsonl, which is ready for being used in fine-tuning with the printed command.
@rachellim rachellim requested a review from emorikawa June 29, 2021 21:48
Copy link
Copy Markdown
Contributor

@emorikawa emorikawa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me.

"""
start = time.time()
timeout = kwargs.get("timeout", None)
timeout = kwargs.pop("timeout", None)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rachellim What's the reason for this change? This is preventing the timeout parameter to be passed on to super().create(...), meaning that API users have no way to specify a timeout.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @feroldi! In trying to avoid a backwards incompatible change, we added a new param called request_timeout so that users could set a timeout that didn't interfere with the existing timeout functionality. It's documented here: https://github.com/openai/openai-python#params

Does that help?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes! That makes sense. Thanks.

@rachellim rachellim merged commit 7ddcba1 into main Jun 29, 2021
@rachellim rachellim deleted the rachel/lots-of-changes branch June 29, 2021 21:55
cgayapr pushed a commit to cgayapr/openai-python that referenced this pull request Dec 14, 2024
* Add CLI option to download files (openai#34)

* Option to check if file has been uploaded in the past before uploading (openai#33)

The check is done based on filename, file purpose and file size

* Add fine-tuning hparams directly into the fine-tunes CLI (openai#35)

* update fine_tunes cli use_packing argument (openai#38)

* A file verification and remediation tool.

It applies the following validations:
- prints the number of examples, and warns if it's lower than 100
- ensures prompt and completion columns are present
- optionally removes any additional columns
- ensures all completions are non-empty
- infers which type of fine-tuning the data is most likely in (classification, conditional generation and open-ended generation)
- optionally removes duplicate rows
- infers the existence of a common suffix, and if there is none, suggests one for classification and conditional generation
- optionally prepends a space to each completion, to make tokenization better
- optionally splits into training and validation set for the classification use case
- optionally ensures there's an ending string for all completions
- optionally lowercases completions or prompts if more than a 1/3 of alphanumeric characters are upper case

It interactively asks the user to accept or reject recommendations. If the user is happy, then it saves the modified output file as a jsonl, which is ready for being used in fine-tuning with the printed command.

* Completion: remove  from kwargs before passing to EngineAPI (openai#37)

* Version bump before pushing to external

Co-authored-by: Todor Markov <todor.m.markov@gmail.com>
Co-authored-by: Boris Power <81998504+BorisPower@users.noreply.github.com>
Co-authored-by: Dave Cummings <dave@openai.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants