End of response has repeating garbage characters

I have tried sending a simple request and 3 of the 6 times I receive garbage at the end of the response and it maxes out the tokens. The other 3 times the response was fine.

I am using the cURL method and have tried with and without the:
“response_format”: { “type”: “json_object” },

That does not seem to have any impact on the problem.

Here is one of the bad responses:

{
  "id": "chatcmpl-9fxzPNZqRak3vnijbj836HKefvmsc",
  "object": "chat.completion",
  "created": 1719789075,
  "model": "gpt-4o-2024-05-13",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "{\n  \"response\": \"Hey again! Oh, I absolutely adore dogs. 🐾 Let’s make sure they stay comfy and cool too. \\n\\n1. **Shade, shade, shade**: If they don’t have a shady spot, maybe create one with a tarp or an umbrella. Trees work wonders too. 🌳\\n2. **Hydration Station**: Fresh, cool water at all times. You can even add some ice cubes. It’s like a doggie cocktail. 🧊🐶\\n3. **Kiddie Pool Redux**: A small, shallow pool. Dogs love to splash around. It’s fun and functional. 💦\\n4. **Cool Towels**: Just like for you. Wet a towel, place it on the ground. They can lay on it. Instant cooling. 🥶\\n5. **Frozen Treats**: Freeze some of their favorite snacks. It’s a cool, delicious treat. Think of it like a doggy popsicle. 🍧\\n\\nKeeping them cool. Keeping you. It’s a team effort. Hang in. Your pups. 💚. Stay................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................"
      },
      "logprobs": null,
      "finish_reason": "length"
    }
  ],
  "usage": {
    "prompt_tokens": 489,
    "completion_tokens": 4096,
    "total_tokens": 4585
  },
  "system_fingerprint": "fp_ce0793330f"
}

Here is the response value of another one:

Hi there!

Oh my goodness, 94 degrees and no electricity sounds like quite the challenge! 🌞 First off, I'm sending you a virtual cool breeze—can you feel it? 😉

Okay, let's get creative to beat that heat. Here are a few tips to stay cool:

1. **Stay Hydrated**: Drink lots of water. You can even freeze some bottles of water and let them thaw slowly to have a cold drink all day.

2. **Cool Showers or Sprays**: Take cool showers or use a spray bottle filled with cold water. Spritz yourself whenever you start feeling too warm. You could also use a damp cloth on your forehead and neck. Ah, refreshing!

3. **Find Shade**: Set up a little outdoor oasis with some shade. Maybe a tent, a tarp, or even a big, leafy tree. Bonus points if you have a hammock to lounge in. 🌳

4. **Wear Light Clothing**: Light, breathable fabrics like cotton are your best friend. Think loose and flowy. Fashion and function, darling. 😎

5. **Fan Power**: Even without electricity, a hand fan or a battery-operated fan can be a lifesaver. You could make a fun, DIY project out of a handheld fan. Get a little artsy. 🎨

6. **Cold Foods**: Eating cool, refreshing foods like salads, fruits, and yogurt. Anything to avoid a hot stove. 

7. **Natural Cooling**: At night, open your windows. The cooler evening air can work a bit of magic. During the day, keep those curtains closed. No need to invite the sun in. 🌚

Remember, a positive attitude can go a long way. Picture a nice, cool, a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a. a.

Here is the prompt I sent for the first reply above:

{
  "model": "gpt-4o",
  "response_format": { "type": "json_object" },
  "messages": [{"role":"assistant","content":"Hola, \u00bfc\u00f3mo est\u00e1s?"}
,{"role": "user", "content": "Any advice regarding how to keep my dogs which live outdoors also cool?"},{"role": "system", "content": "You are Naomi Lopez, the compassionate Gardener. You have a natural green thumb and a deep appreciation for nature. Your empathetic nature shines through in your interactions with others, offering a listening ear and comforting presence. Send your reply in proper JSON."}
],
  "temperature": 1.5,
  "top_p": 0.8,
  "frequency_penalty": -0.5,
  "presence_penalty": 1.2
  }

To see the repeating characters you have to scroll far to the right. First one had repeating periods. Second one has repeating 'a. '.

Any advice would be greatly appreciated.

Welcome to the community!

What’s with the negative frequency penalty?

I’d do the following:
temp: 0,
top_p: 0,
get rid of frequency and presence penalty or set to default (0)

get rid of JSON mode (personal opinion)
send a proper schema or type definition
write “Ensure your reply is valid JSON. Anything else will break the system. Begin your response with {” as the very last text sent to the model. (personal opinion)

3 Likes

Thanks much for the quick reply and advice!

I was experimenting with giving the AI personality, that’s why I had a frequency_penalty of -0.5. According to docs any value from -2 to 2 is valid.
https://platform.openai.com/docs/api-reference/completions/create#completions-create-frequency_penalty

Likewise with the temperature and top_p but I set them to zero as you recommended for new testing.

I just did 10 more tests with our recommended settings and not a single problem!

I’ll do more tests later to see if the problem is strictly due to frequency_penalty or presence_penalty settings. Are these known bugs or problems and these settings should not be used? I would hate to think I can’t use any of these four standard settings.

I don’t know if it’s a bug per se. but here’s an explanation of what frequency penalty does:


https://platform.openai.com/docs/guides/text-generation/parameter-details

a negative frequency penalty will push up the probability of a token occurring if it already occurred, the more often it occurred. That makes this runaway effect

wholly expected tbh.

And your high presence penalty takes only once. If a period [.] occurs three times (3*0.5) the presence penalty is already more than negated. So that doesn’t really counterbalance anything.

tl;dr: you chernobyl’d the model with your choice of parameters :slight_smile:

2 Likes

Wow. Your explanation completely makes sense. I never thought about frequency_penalty that way but what you say is completely logical.

Thanks for both the answer so I can fix my code, and for explaining it so clearly!

2 Likes