Fine-tune Llama 2 on Replicate
Captured source
source ↗Fine-tune Llama 2 on Replicate – Replicate blog
Replicate Blog
Fine-tune Llama 2 on Replicate
Posted July 20, 2023 by cbh123
Llama 2 is the first open-source language model of the same caliber as OpenAI’s models, and because it’s open source you can hack it to do new things that aren’t possible with GPT-4.
Like become a better poet . Talk like Homer Simpson . Write Midjourney prompts. Or replace your best friends .
A stampede of futuristic llamas by ai-forever/kandinsky-2.2 One of the main reasons to fine-tune models is so you can use a small model do a task that would normally require a large model. This means you can do the same task, but cheaper and faster. For example, the 7 billion parameter Llama 2 model is not good at summarizing text, but we can teach it how.
In this guide, we’ll show you how to create a text summarizer. We’ll be using Llama 2 7B , an open-source large language model from Meta and fine-tuning it on a dataset of messenger-like conversations with summaries. When we’re done, you’ll be able to distill chat transcripts, emails, webpages, and other documents into a brief summary. Short and sweet.
Supported models
Here are the Llama models on Replicate that you can fine-tune:
Llama 2 7B Base
Llama 2 13B Base
Llama 2 70B Base
Llama 2 7B Chat
Llama 2 13B Chat
Llama 2 70B Chat
If your model is responding to instructions from users, you want to use the chat models. If you are just completing text, you’ll want to use the base.
Training data
Your training data should be in a JSONL text file.
In this guide, we’ll be using the SAMSum dataset , transformed into JSONL.
Create a model
You need to create an empty model on Replicate for your trained model. When your training finishes, it will be pushed as a new version to this model.
Go to replicate.com/create and create a new model called “llama2-summarizer”.
Authenticate
Authenticate by setting your token in an environment variable:
Copy
export REPLICATE_API_TOKEN =
Find your API token in your account settings .
Create a training
Install the Python library:
Copy
pip install replicate
And kick off training, replacing the destination name with your username and the name of your new model:
Copy
import replicate
training = replicate.trainings.create( version = "meta/llama-2-7b:73001d654114dad81ec65da3b834e2f691af1e1526453189b7bf36fb3f32d0f9" , input = { "train_data" : "https://gist.githubusercontent.com/nateraw/055c55b000e4c37d43ce8eb142ccc0a2/raw/d13853512fc83e8c656a3e8b6e1270dd3c398e77/samsum.jsonl" , "num_train_epochs" : 3 , }, destination = "/llama2-summarizer" )
print (training)
It takes these arguments:
version : The model to train, in the format {username}/{model}:{version} .
input : The training data and params to pass to the training process, which are defined by the model. Llama 2’s params can be found in the model’s “Train” tab .
destination : The model to push the trained version to, in the format your-username/your-model-name
Once you’ve kicked off your training, visit replicate.com/trainings in your browser to monitor the progress.
Run the model
You can now run your model from the web or with an API. To use your model in the browser, go to your model page.
To use your model with an API, run the version from the training output:
Copy
training.reload()
prompt = """[INST] > \ Use the Input to provide a summary of a conversation. >
Input: Harry: Who are you? Hagrid: Rubeus Hagrid, Keeper of Keys and Grounds at Hogwarts. Of course, you know all about Hogwarts. Harry: Sorry, no. Hagrid: No? Blimey, Harry, did you never wonder where yer parents learned it all? Harry: All what? Hagrid: Yer a wizard, Harry. Harry: I-- I'm a what? Hagrid: A wizard! And a thumpin' good 'un, I'll wager, once you've been trained up a bit. [/INST]
Summary: """
output = replicate.run( training.output[ "version" ], input = { "prompt" : prompt, "stop_sequences" : "" } ) for s in output: print (s, end = "" , flush = True )
That’s it! You’ve fine-tuned Llama 2 and can run your new model with an API.
Next steps
Follow us on Twitter X to get the latest from the Llamaverse.
Run the base Llama 2 with an API.
Happy hacking! 🦙
Next: What happened with Llama 2 in the last 24 hours? 🦙