| | --- |
| | language: |
| | - en |
| | license: apache-2.0 |
| | library_name: peft |
| | tags: |
| | - music |
| | datasets: |
| | - ThatOneShortGuy/SongLyrics |
| | base_model: OpenAssistant/falcon-7b-sft-mix-2000 |
| | --- |
| | # Musical Falcon |
| |
|
| | [OpenAssistant/falcon-7b-sft-mix-2000](https://huggingface.co/OpenAssistant/falcon-7b-sft-mix-2000) model fine tuned using PEFT on |
| | [Song Lyrics](https://huggingface.co/datasets/ThatOneShortGuy/SongLyrics) to write lyrics to songs. |
| |
|
| | ## Model Details |
| | - **Finetuned from**: [OpenAssistant/falcon-7b-sft-mix-2000](https://huggingface.co/OpenAssistant/falcon-7b-sft-mix-2000) |
| | - **Model Type**: Causal decoder-only transformer language model |
| | - **Language**: English (and limited capabilities in German, Spanish, French, Italian, Portuguese, Polish, Dutch, Romanian, Czech, Swedish); |
| | - **License**: Apache 2.0 |
| | - **Contact**: Lol don't. This is just for fun. |
| |
|
| | ## Usage |
| | The basic basic format getting it in is: |
| | ```python |
| | from peft import PeftModel, PeftConfig |
| | from transformers import AutoModelForCausalLM |
| | |
| | config = PeftConfig.from_pretrained("ThatOneShortGuy/MusicalFalcon") |
| | model = AutoModelForCausalLM.from_pretrained("OpenAssistant/falcon-7b-sft-mix-2000") |
| | model = PeftModel.from_pretrained(model, "ThatOneShortGuy/MusicalFalcon") |
| | ``` |
| |
|
| | ## Prompting |
| | Considering this comes from [OpenAssistant/falcon-7b-sft-mix-2000](https://huggingface.co/OpenAssistant/falcon-7b-sft-mix-2000), it uses the same structure. |
| | Two special tokens are used to mark the beginning of user and assistant turns: `<|prompter|>` and `<|assistant|>`. Each turn ends with a `<|endoftext|>` token. |
| | The training prompt used the structure: |
| | ``` |
| | <|prompter|>Come up with the lyrics for a song from "{artist}" {"from " + year if year else ""} titled "{title}".<|endoftext|> |
| | <|assistant|>Sure! Here are the lyrics: |
| | {lyrics} |
| | <|endoftext|> |
| | ``` |
| |
|
| | However, it still seems to work just fine using: |
| | ``` |
| | <|prompter|>Write me a song titled "{title}"<|endoftext|><|assistant|> |
| | ``` |
| | or any anything of similar nature. Feel free to add a description of the song in there too. |
| |
|
| | ## Examples |
| | Prompt |
| | ``` |
| | <|prompter|>Write a song with the lyrics for a song from artist "Eminem" from 2018 titled "Suzy's Lemonade Stand"<|endoftext|> |
| | <|assistant|>Sure! Here are the lyrics: |
| | ``` |
| | Result |
| | ``` |
| | [Intro] |
| | I'm gonna make you famous, baby |
| | |
| | [Verse 1] |
| | It's been a long time since I had a lemonade stand |
| | But I'm back in town and I'ma do it again |
| | You know what? I've been on my own since I was born |
| | So I'll be here all day long, so come on, let's go |
| | I got some new tricks up my sleeve that I'd like to show |
| | And I'mma get your name out of your mouth, so please don't blow |
| | Let me see if I can get you to say my name |
| | If not, then I'l just have to take it back to the drawing board |
| | I gotta get this money, I's a little bit broke |
| | I need some cash, I need some dough, I gotta get these clothes off |
| | I wanna be a star, I wanna be the man |
| | I want to be a superstar, I want to get my hands on them bands |
| | ``` |
| |
|
| |
|
| | ## Training procedure |
| |
|
| | Trained on 1 epoch of all songs from [Song Lyrics](https://huggingface.co/datasets/ThatOneShortGuy/SongLyrics) with "Rap" or "Hip" in the genre title. |
| |
|
| | - GPU: RTX Titan |
| | - load_in_8bit: True |
| |
|
| | Further trained on ~8 epochs of the top 10% of [Song Lyrics](https://huggingface.co/datasets/ThatOneShortGuy/SongLyrics) |
| |
|
| | - GPU: RTX Titan |
| | - load_in_8bit: False |
| | - torch_dtype: torch.float16 |
| | |
| | - load_in_4bit: False |
| | - llm_int8_threshold: 6.0 |
| | - llm_int8_skip_modules: None |
| | - llm_int8_enable_fp32_cpu_offload: True |
| | - llm_int8_has_fp16_weight: False |
| | - bnb_4bit_quant_type: fp4 |
| | - bnb_4bit_use_double_quant: False |
| |
|
| | ### Framework versions |
| |
|
| |
|
| | - PEFT 0.5.0.dev0 |