loubnabnl / santacoder-finetuning

Fine-tune SantaCoder for Code/Text Generation.
Apache License 2.0
184 stars 23 forks source link

FIM permutations #8

Closed Stillerman closed 1 year ago

Stillerman commented 1 year ago

Here is a draft that adds optional FIM permutations while finetuning. Some things I was hoping to get feedback on

arjunguha commented 1 year ago

I've read this and it seems okay. But, someone should actually run it on a GPU.

Stillerman commented 1 year ago

Switched from character-based FIM to token-based. Now we do not have to do expensive encode/decode and it is not slowed down at all.

FIM time: 37.271945165999995
Non-FIM time: 37.641369552

Will test on GPU soon

Stillerman commented 1 year ago

Finetuned for 48 hours on an A100 on the ruby stack and got this.

MultiPL-E pass@1 was 0.1

Stillerman commented 1 year ago

I addressed all of the comments in that last commit. The only change really of note is that I removed the eval_no_fim instead of making that an additional eval set, as that was left over from testing. Is there some reason why we would want to add it as an additional eval set?

Also, reran a toy finetune for an hour and everything seems to be working same as it did before.

Stillerman commented 1 year ago

Finetuned Julia for 2m tokens both with and without FIM and tested both with MultiPL-E.

With FIM pass@1 = 0.1

Without FIM pass@1 = 0.09

loubnabnl commented 1 year ago

Looks great! Thanks for working on this and for your patience!