The "seed" option for GPT does not increase the determinism level

I haven’t experimented with the quality or effects of the setting, but it wouldn’t take much to investigate.

Take temperature = 1.5 - you get very “creative” outputs, and never the same thing twice. The difference between token probabilities is reduced even more than defaults, so very unlikely tokens can be selected and thrown into the generation.

I actually found the newest -1106 model to be wildly out-of-control at temperature 1.5, so had to reduce.

Let’s experiment with some code that will loop on each seed in a list.

from openai import OpenAI
client = OpenAI()
system = [{"role": "system",
           "content": """You are a creative writing expert."""}]
user = [{"role": "user", "content":
         "Produce: a paragraph story about an escaped chimpanzee."}]

for seed in [444, 444, 666, 666]:
    response = client.chat.completions.create(
        messages = system + user,
        model="gpt-3.5-turbo-1106",
        temperature = 1.1, stream=True,
        seed = seed, max_tokens = 100)
    print(f"\n==Response with seed {seed}==")
    for delta in response:
        if not delta.choices[0].finish_reason:
            word = delta.choices[0].delta.content or ""
            print(word, end ="")

With two generations at seed 444, and two more runs at seed 666, what do we get?

==Response with seed {444}==
At the quaint little zoo, there was a mischievous chimpanzee named Popo who had always longed for freedom. One day, as the zookeeper was distracted by a group of visitors, Popo seized his chance and stealthily picked the lock of his enclosure. With glee in his eyes, he swung from branch to branch, evading the bewildered keepers. With freedom at last, Popo embarked on an exhilarating adventure, exploring the vast world beyond the bars with

==Response with seed {444}==
At the quaint little zoo, there was a mischievous chimpanzee named Popo who had always longed for freedom. One day, as the zookeeper was distracted while feeding the other animals, Popo seized his chance and stealthily unlocked his cage. With a mischievous twinkle in his eyes, he swung from tree to tree, avoiding the watchful eyes of the zoo staff. Popo’s heart raced with exhilaration as he made his way out of the zoo and into the

==Response with seed {666}==
In the heart of the lush jungle, a mischievous chimpanzee named Sammy had successfully plotted his great escape from the research facility. With a twinkle of defiance in his eye, he swung effortlessly from tree to tree, reveling in his newfound freedom. As news of his escape spread, the local villagers gossiped about the elusive intruder, whose wit and cunning made him a legend in their eyes. Sammy, clever and resourceful, evaded capture at every turn, using his intelligence

==Response with seed {666}==
In the heart of the lush jungle, a mischievous chimpanzee named Sammy had successfully plotted his great escape from the research facility. With a cunning mind and agile body, he managed to unlock his cage, slip through a small window, and swing off into the depths of the dense foliage. As the sun began to set, the researchers scrambled to find the elusive primate, but Sammy had cunningly left behind a trail of false clues. In the dim twilight, the mischievous chimp

So we’ve accomplished the goal of a seed value: the same wild variation is reproduced again at the start. Except with fault being seen.

The model has underlying non-deterministic faults, so even with a parameter such as top_p = 0.00000001 which allows nothing but selection of the highest-ranking token, on long writings, that “top” can actually switch and give a different token choice occasionally, from the vector math that comes before token sampling.