Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to use gemma for multi-round conversations #52

Open
ranck626 opened this issue Mar 26, 2024 · 2 comments
Open

How to use gemma for multi-round conversations #52

ranck626 opened this issue Mar 26, 2024 · 2 comments
Labels
stat:awaiting response Status - Awaiting response from author type:support Support issues

Comments

@ranck626
Copy link

Thank a lot for your great work!
I deployed gemma-2b locally. I would like to understand how to have multiple rounds of dialog effectively.

I searched the internet and found that I could type in previous conversations to get answers for the next round. But I don't know exactly how it works inside Gemma. I hope to get your pointers or if you can recommend some existing tutorials.

I'm not a native English speaker and may have some grammatical problems. Thank you for your attention.

@KaneGreen
Copy link

The following code is copied from the Gemma's kaggle page

# Use the model

USER_CHAT_TEMPLATE = "<start_of_turn>user\n{prompt}<end_of_turn>\n"
MODEL_CHAT_TEMPLATE = "<start_of_turn>model\n{prompt}<end_of_turn>\n"

prompt = (
    USER_CHAT_TEMPLATE.format(
        prompt="What is a good place for travel in the US?"
    )
    + MODEL_CHAT_TEMPLATE.format(prompt="California.")
    + USER_CHAT_TEMPLATE.format(prompt="What can I do in California?")
    + "<start_of_turn>model\n"
)

model.generate(
    USER_CHAT_TEMPLATE.format(prompt=prompt),
    device=device,
    output_len=100,
)

It tells how to use <start_of_turn> and <end_of_turn> to control roles and turns.

This code can inspire us to write a program for multiple rounds of dialogue, but I still have some doubts:

  1. What should I do if there are too many dialogue rounds and the number of tokens in the Gemma model is exceeded?
  2. I am very confused: why to call USER_CHAT_TEMPLATE.format() again in the model.generate() function call? Such an operation will produce the following strange input:
    <start_of_turn>user
    <start_of_turn>user
    What is a good place for travel in the US?<end_of_turn>
    <start_of_turn>model
    California.<end_of_turn>
    <start_of_turn>user
    What can I do in California?<end_of_turn>
    <start_of_turn>model
    <end_of_turn>
    

@pkgoogle
Copy link

pkgoogle commented Apr 3, 2024

Hi @ranck626, Does the above response answer your question?

@tilakrayal tilakrayal added type:support Support issues stat:awaiting response Status - Awaiting response from author labels Apr 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
stat:awaiting response Status - Awaiting response from author type:support Support issues
Projects
None yet
Development

No branches or pull requests

4 participants