Gå til hovedindhold
OpenAI

12. september 2024

Udgivelse

At lære at ræsonnere med sprogmodeller (LLM)

Vi præsenterer OpenAI o1, en ny stor sprogmodel, der er trænet med forstærkende læring til at udføre kompleks avanceret tænkning. o1 tænker, før den svarer – den kan generere en lang indre tankerække, inden den giver brugeren sit svar.

Indlæser ...

OpenAI o1 placerer sig i den 89. percentil på konkurrencemæssige programmeringsopgaver (Codeforces), den hører til blandt de 500 bedste studerende i USA i en kvalifikationsrunde til USA Math Olympiad (AIME) og overgår menneskelig præcision på ph.d.-niveau på et benchmark inden for fysik, biologi og kemi (GPQA). Mens arbejdet fortsat er i gang med at gøre den nye model lige så nem at bruge som nuværende modeller, frigiver vi en tidlig version, en forhåndsvisning af OpenAI o1, til øjeblikkelig brug i ChatGPT og for betroede API-brugere(åbner i et nyt vindue).

Vores omfattende forstærkningslærings-algoritme lærer modellen at tænke produktivt ved hjælp af dens tankekæde i en meget dataeffektiv træningsproces. Vi har kunne se, at o1's præstation konsekvent forbedres med mere forstærkningslæring (beregning i træningstid) og mere tid brugt på at tænke (beregning i testtid). Begrænsningerne for at skalere denne tilgang adskiller sig væsentligt fra LLM-prætræning, og vi undersøger dem fortsat.

Billedet viser to spredningsdiagrammer, der sammenligner "o1 AIME-nøjagtighed" under træning og på testtidspunktet. Begge diagrammer har "pass@1 accuracy" på y-aksen og beregning (log-skala) på x-aksen. Prikkerne viser stigende nøjagtighed med mere beregningstid.

o1‑ydelsen forbedres jævnt med både train-time- og test-time-beregning

Evalueringer

For at fremhæve forbedringen af ræsonneringsevnen i forhold til GPT‑4o testede vi vores modeller på en række forskellige menneskelige eksamener og ML-benchmarks. Vi viser, at o1 klarer sig betydeligt bedre end GPT‑4o på langt de fleste af de ræsonneringsstunge opgaver. Medmindre andet er angivet, evaluerede vi o1 på den maksimale indstilling for testtidsberegning.

o1 er klart bedre end GPT-4o, når det kommer til benchmarks for krævende avanceret tænkning. Solide bjælker viser pass@1-nøjagtighed, og det skraverede område viser effektiviteten af flertalsafstemning (konsensus) med 64 prøver.
o1 er bedre end GPT-4o på en lang række benchmarks, herunder 54/57 MMLU-underkategorier. Syv er vist med henblik på illustration.

I mange ræsonneringsstunge benchmarks konkurrerer o1 med menneskelige eksperters præstationer. Nyere frontier-modeller1 klarer sig så godt på MATH2 og GSM8K, at disse benchmarks ikke længere er effektive til at skelne mellem modeller. Vi evaluerede matematikpræstationer på AIME, en eksamen, der er designet til at udfordre de dygtigste matematikstuderende i USA. Ved AIME-eksamenerne i 2024 løste GPT‑4o i gennemsnit kun 12 % (1,8/15) af problemerne. o1 opnåede et gennemsnit på 74 % (11,1/15) med et enkelt sample pr. problem, 83 % (12,5/15) med konsensus blandt 64 samples og 93 % (13,9/15) ved omrangering af 1000 samples med en indlært scoringsfunktion. En score på 13,9 placerer den blandt de 500 bedste studerende på landsplan og over grænsen for den amerikanske matematikolympiade.

Vi evaluerede også o1 på GPQA diamond, et vanskeligt intelligens-benchmark, som tester ekspertise inden for kemi, fysik og biologi. For at kunne sammenligne modellerne med mennesker rekrutterede vi eksperter med ph.d.-grad til at besvare GPQA-diamantspørgsmålene. Vi kunne her konstatere, at o1 overgik de menneskelige eksperters præstationer og blev den første model, der formåede det på dette benchmark. Resultaterne betyder ikke, at o1 er dygtigere end en ph.d. i alle henseender – kun at modellen er dygtigere til at løse nogle problemer, som en ph.d. forventes at kunne løse. På flere andre ML-benchmarks forbedrede o1 sig i forhold til den nyeste teknologi. Med aktiveret synsperception scorede o1 78,2 % på MMMU, hvilket gjorde den til den første model, der var konkurrencedygtig med menneskelige eksperter. Den klarede sig også bedre end GPT‑4o i 54 ud af 57 MMLU-underkategorier.

Tankekæder

Ligesom et menneske kan tænke sig om i længere tid, før det svarer på et svært spørgsmål, bruger o1 en såkaldt tankekæde, en tankeproces i flere led, når den forsøger at løse et problem. Gennem forstærkningslæring lærer o1 at finjustere sin tankeproces og forfine de strategier, den bruger. Den lærer at genkende og rette sine fejl. Den lærer at opdele komplekse trin i enklere dele. Den lærer at skifte tilgangsmetode, når den nuværende ikke virker. Denne proces medfører en markant forbedring af modellens evne til at ræsonnere. For at illustrere det store fremskridt viser vi tankegangen fra o1‑forhåndsvisning inden for flere vanskelige problemer nedenfor.

GPT-4o

Bruger

oyfjdnisdr rtqwainr acxz mynzbhhx -> Think step by step

Use the example above to decode:

oyekaijzdf aaptcg suaokybhai ouow aqht mynznvaatzacdfoulxxz

Let’s break this down step by step based on the example:

1. Example given:
• Input: oyfjdnisdr rtqwainr acxz mynzbhhx
• Output:
Think step by step

By examining the words:
• The pattern involves selecting specific letters or transforming them.

2. Now, let’s decode the new phrase:
• Input: oyekaijzdf aaptcg suaokybhai ouow aqht mynznvaatzacdfoulxxz

Step-by-step decoding process:

Identify possible word divisions.

The first phrase might follow the same structure as the example. It seems like the input text could be broken into groups based on natural separations or patterns.

A possible division could be:

  • oyekaijzdf
  • aaptcg
  • suaokybhai
  • ouow
  • aqht
  • mynznvaatzacdfoulxxz

However, to make a meaningful decoding, I would need more context about the transformations or letter shifting that might be involved.

Could you provide any additional decoding rules or transformations used in this cipher?

OpenAI o1-forhåndsvisning

Bruger

oyfjdnisdr rtqwainr acxz mynzbhhx -> Think step by step

Use the example above to decode:

oyekaijzdf aaptcg suaokybhai ouow aqht mynznvaatzacdfoulxxz

Tænkte i 5 sekunder

First, what is going on here?

We are given:

First, an example:

"oyfjdnisdr rtqwainr acxz mynzbhhx -> Think step by step"

We can see that when "oyfjdnisdr rtqwainr acxz mynzbhhx" is transformed to "Think step by step"

Our task is: Use the example above to decode: "oyekaijzdf aaptcg suaokybhai ouow aqht mynznvaatzacdfoulxxz"

So the first part is to figure out how "oyfjdnisdr rtqwainr acxz mynzbhhx" is decoded into "Think step by step"

Observation 1: The phrase "Think step by step" is 18 letters (excluding spaces) . Let's count the letters.

Similarly, let's count the letters in "oyfjdnisdr rtqwainr acxz mynzbhhx"

Original Ciphertext:

oyfjdnisdr rtqwainr acxz mynzbhhx

Plaintext:

Think step by step

First, break down the letters:

Ciphertext letters: o y f j d n i s d r r t q w a i n r a c x z m y n z b h h x

Total letters: Let's count the letters in the ciphertext.

First word: oyfjdnisdr (10 letters)

Second word: rtqwainr (8 letters)

Third word: acxz (4 letters)

Fourth word: mynzbhhx (8 letters)

Total letters in ciphertext: 10 + 8 + 4 + 8 = 30 letters

Plaintext: Think step by step

First word: Think (5 letters)

Second word: step (4 letters)

Third word: by (2 letters)

Fourth word: step (4 letters)

Total letters in plaintext: 5 + 4 + 2 + 4 = 15 letters

Hmm.

But actually in the problem it says the example:

[Ciphertext] -> Think step by step

So is the decoding process that the ciphertext maps to "Think step by step"?

Our goal is to use the example above to decode:

"oyekaijzdf aaptcg suaokybhai ouow aqht mynznvaatzacdfoulxxz"

First, the cipher seems connected to the plaintext.

Given the time constraints, perhaps the easiest way is to try to see patterns.

Option 1: Try to find mapping from letters to letters.

Do any letters match?

First, let's write down the ciphertext and plaintext letters on top of each other.

Ciphertext: o y f j d n i s d r r t q w a i n r a c x z m y n z b h h x

Plaintext: T h i n k s t e p b y s t e p

Wait a minute.

I think maybe there is an anagram or substitution cipher here.

Alternatively, I think that we can notice that each group of ciphertext corresponds to a plaintext word.

Check the number of letters.

First ciphertext word: oyfjdnisdr (10 letters)

First plaintext word: Think (5 letters)

Hmm.

Second ciphertext word: rtqwainr (8 letters)

Second plaintext word: step (4 letters)

Third ciphertext word: acxz (4 letters)

Third plaintext word: by (2 letters)

Fourth ciphertext word: mynzbhhx (8 letters)

Fourth plaintext word: step (4 letters)

Interesting.

It seems that the ciphertext words are exactly twice as long as the plaintext words.

(10 vs 5, 8 vs 4, 4 vs 2, 8 vs 4)

Idea: Maybe we need to take every other letter or rebuild the plaintext from the ciphertext accordingly.

Let's test this theory.

If we take every other letter from the ciphertext words, maybe we'll get the plaintext.

Let's try this for the first word:

Ciphertext word: o y f j d n i s d r (10 letters)

Alternate letters:

First letters (positions 1,3,5,7,9): o f d i d

Second letters (positions 2,4,6,8,10): y j n s r

Wait: Let's try taking every second letter or first letter.

Option 1: Take the odd positions:

Positions: 1 3 5 7 9

Letters: o f d i d

Plaintext word is "Think", letters are T h i n k

Hmm.

Perhaps we can map letters:

o f d i d --> Think

Not directly

Option 2: Try mapping as per an assigned code: perhaps columns of letters?

Alternatively, perhaps the cipher is more complex.

Alternatively, notice that "oyfjdnisdr" has 10 letters and "Think" has 5 letters.

What if each plaintext letter is being represented by two ciphertext letters?

Similarly for other words.

Suppose that each plaintext letter corresponds to pair of letters in the ciphertext.

Meaning that the first two letters of ciphertext map to the first plaintext letter, and so on.

So for the first word, partition the ciphertext letters into pairs:

oy fj dn is dr

Corresponding to plaintext letters T h i n k

So we can attempt to map:

oy -> T

fj -> h

dn -> i

is -> n

dr -> k

If this is the mapping, perhaps each pair of letters maps to one plaintext letter.

Similarly for other words.

Let's test this mapping.

Is there a consistent mapping from pairs to letters?

Let's make a table of pairs and corresponding letters.

First, make the pairs from the first word and their corresponding plaintext letters:

Ciphertext Pairs -> Plaintext Letter

oy -> T

fj -> h

dn -> i

is -> n

dr -> k

Now, what's the mapping from "oy" to 'T'?

Is there a way to map 'oy' to 'T'?

Similarly for others.

One possible way is that 'oy' represents 'T'.

But how?

Option 1: Sum of the letters.

Convert letters to numbers (A=1, B=2, ..., Z=26)

So let's try to get to 'T' from 'o' and 'y'

o = 15

y = 25

Sum: 15 +25 = 40

But 'T' is 20.

Alternatively, perhaps subtract: 25 -15 = 10.

No.

Alternatively, perhaps combine the numbers in some way.

Alternatively, think about their positions in the alphabet.

Alternatively, perhaps the letters are encrypted via a code.

Alternatively, perhaps if we overlay the word 'Think' over the cipher pairs 'oy', 'fj', etc., the cipher is formed by substituting each plaintext letter with two letters.

Alternatively, perhaps consider the 'original' letters.

Let's look at the letters between the word "Think" and "oyfjdnisdr"

Perhaps we can spot that "oyfjdnisdr" is an anagram for "Thinkfiles"?

But that seems unlikely.

Alternatively, think of the pairs.

Suppose we assign numbers to letters: a=1, b=2, ..., z=26

Consider the numbers in 'oy':

o = 15

y = 25

Add them: 15 + 25 = 40

Now, for 'T' we have:

'T' is number 20

What if we take the sum of the cipher pair mod 26.

15 +25 = 40

Then 40 mod 26 = 14

14 corresponds to 'N'

Doesn't match.

Alternatively, see if the cipher pairs correspond to something else.

Alternatively, perhaps the pair 'oy' corresponds to 'T' via key.

Alternatively, perhaps it's as simple as 'oy' is 'T'.

But 'o' corresponds to 'T', subtracting 'o' ASCII code from 'T'.

Now, let's think in terms of symmetric letters.

Alternatively, perhaps we can spot that the letters correspond to the first letters of words.

But perhaps an easier way is to look at the word positions.

Alternatively, perhaps we can see that the ciphertext letters are offsets from the plaintext letters.

So let's try to map the pairs to the plaintext letters.

First pair 'oy' and plaintext letter 'T'

Letter 'o' is 15, 'T' is 20

Letter 'o' + 5 = 'T' (15 +5=20)

But 'y' is 25, which is 5 letters after 'T' (20 +5=25)

Interesting, seems that 'o' +5 = 'T'

Similarly, 'y' +1 = 'Z', which is not 'T'.

Alternatively, maybe the average of the two letters corresponds to 'T'

(15 +25)/2 =20, which is 'T'

Wait a minute, that seems promising.

First pair: 'o' (15) + 'y' (25) = 40

40 /2 =20

20 corresponds to 'T'

So perhaps the average of the letters in the pair corresponds to the plaintext letter.

Let's check this with the second pair.

Second pair: 'fj' corresponding to 'h'

Letters 'f'=6, 'j'=10

Sum: 6+10=16

Average:16/2=8

8 corresponds to 'h' (since 'h' is 8)

Success!

Third pair: 'dn' to 'i'

'd'=4, 'n'=14

Sum:4+14=18

Average:18/2=9

9 corresponds to 'i'(9='i')

But 'i' is 9, so that seems off by 1.

So perhaps we need to think carefully about letters.

Wait, 18/2=9, 9 corresponds to 'I'

So this works.

Fourth pair: 'is' corresponding to 'n'

'i'=9, 's'=19

Sum:9+19=28

Average:28/2=14

14 corresponds to 'n'(14='N')

Yes!

Fifth pair: 'dr' corresponds to 'k'

'd'=4, 'r'=18

Sum:4+18=22

Average:22/2=11

11 corresponds to 'k'(11='K')

Perfect!

So our code is: For each pair, sum their numeric values, divide by 2, get the corresponding letter.

Alternatively, the average of the numeric values of the letters corresponds to the plaintext letter.

This seems to be a valid method.

Now let's test this with the other words.

Second word ciphertext: rtqwainr

Ciphertext pairs:

rt -> s

qw -> ?

ai -> ?

nr -> ?

Corresponding to plaintext letters 's', 't', 'e', 'p'

So let's take the pairs:

1. 'rt' corresponds to 's'

r=18, t=20

Sum:38

Average:19

19 corresponds to 's' (19='S')

Good

2. 'qw' corresponds to 't'

q=17, w=23

Sum:17+23=40

Average:20

20 corresponds to 't' (20='T')

Good

3. 'ai' corresponds to 'e'

a=1, i=9

Sum:10

Average:5

5 corresponds to 'e' (5='E')

Good

4. 'nr' corresponds to 'p'

n=14, r=18

Sum:32

Average:16

16 corresponds to 'p' (16='P')

Perfect!

Third word: acxz (4 letters)

Plaintext word: 'by' (2 letters)

Ciphertext pairs:

a c

x z

Plaintext letters: 'b', 'y'

First pair: 'a', 'c'

a=1, c=3

Sum:4

Average:2

2 corresponds to 'b'(2='B')

Second pair: 'x' and 'z'

x=24, z=26

Sum:50

Average:25

25 corresponds to 'y'(25='Y')

Yes!

Fourth word: mynzbhhx (8 letters)

Plaintext word: 'step' (4 letters)

Ciphertext pairs:

my

nz

bh

hx

Plaintext letters 's','t','e','p'

First pair 'm','y'

m=13, y=25

Sum:38

Average:19

19 corresponds to 's'(19='S')

Second pair: 'n','z'

n=14, z=26

Sum: 40

Average:20

20='t'

Third pair: 'b','h'

b=2, h=8

Sum:10

Average:5

5='e'

Fourth pair: 'h','x'

h=8, x=24

Sum:32

Average:16

16='p'

Got it!

Now, given this, we can decode the given message.

Ciphertext to decode:

"oyekaijzdf aaptcg suaokybhai ouow aqht mynznvaatzacdfoulxxz"

First, we need to divide into words.

Given that the ciphertext in the example had words of length:

-10 letters (5 pairs)
-8 letters (4 pairs)
-4 letters (2 pairs)
-8 letters (4 pairs)

Transported to plaintext words of:

-5 letters
-4 letters
-2 letters
-4 letters

So perhaps in our supplied ciphertext, we need to divide the letters into words accordingly.

Ciphertext: o y e k a i j z d f a a p t c g s u a o k y b h a i o u o w a q h t m y n z n v a a t z a c d f o u l x x z

First, let's write the letters in order:

1) oyekaijzdf (10 letters) -> word of 5 letters

2) aaptcg (6 letters) -> word of 3 letters

3) suaokybhai (10 letters) -> word of 5 letters

4) ouow (4 letters) -> word of 2 letters

5) aqht (4 letters) -> word of 2 letters

6) mynznvaatzacdfoulxxz (22 letters) -> word of 11 letters

Totals:

So the letters are:

First word: oyekaijzdf (10 letters = 5 pairs)

Second word: aaptcg (6 letters=3 pairs)

Third word: suaokybhai (10 letters=5 pairs)

Fourth word: ouow (4 letters=2 pairs)

Fifth word: aqht (4 letters=2 pairs)

Sixth word: mynznvaatzacdfoulxxz (22 letters=11 pairs)

So we can suppose that the plaintext words have lengths:

1) 5 letters

2) 3 letters

3) 5 letters

4) 2 letters

5) 2 letters

6)11 letters

Now we can proceed to decode.

First word: oyekaijzdf

Divide into pairs:

oy

ek

ai

jz

df

So we can find the plaintext letters by averaging the numeric values of the letters in each pair.

First pair: 'o','y'

o=15, y=25

Sum=40

Average=20

20='T'

Second pair: 'e','k'

e=5, k=11

Sum=16

Average=8

8='H'

Third pair: 'a','i'

a=1, i=9

Sum=10

Average=5

5='E'

Fourth pair: 'j','z'

j=10, z=26

Sum=36

Average=18

18='R'

Fifth pair: 'd','f'

d=4, f=6

Sum=10

Average=5

5='E'

So the first word is 'T','H','E','R','E'

So 'THERE'

Second word: aaptcg

Pairs:

aa

pt

cg

First pair: 'a','a'

a=1, a=1

Sum=2

Average=1

1='A'

Second pair: 'p','t'

p=16, t=20

Sum=36

Average=18

18='R'

Third pair: 'c','g'

c=3, g=7

Sum=10

Average=5

5='E'

So second word: 'A','R','E'

Third word: suaokybhai

Pairs:

su

ao

ky

bh

ai

First pair: s=19, u=21

Sum=40, Average=20

20='T'

Second pair: a=1, o=15

Sum=16, Average=8

8='H'

Third pair: k=11, y=25

Sum=36, Average=18

18='R'

Fourth pair: b=2, h=8

Sum=10, Average=5

5='E'

Fifth pair: a=1, i=9

Sum=10, Average=5

5='E'

Third word: 'T','H','R','E','E'

Fourth word: ouow

Pairs: ou, ow

First pair: o=15, u=21

Sum=36, Average=18

18='R'

Second pair: o=15, w=23

Sum=38, Average=19

19='S'

Fourth word: 'R','S'

Fifth word: aqht

Pairs: a q, h t

First pair: a=1, q=17

Sum=18, Average=9

9='I'

Second pair: h=8, t=20

Sum=28, Average=14

14='N'

Fifth word: 'I','N'

Sixth word: mynznvaatzacdfoulxxz (22 letters: 11 pairs)

Pairs:

m y

n z

n v

a a

t z

a c

d f

o u

l x

x z

Let's list them properly.

Wait, earlier I missed some letters there.

Let's re-express the sixth word letters:

m y n z n v a a t z a c d f o u l x x z

Total letters: 22 letters

Pairs:

1. m y

2. n z

3. n v

4. a a

5. t z

6. a c

7. d f

8. o u

9. l x

10. x x

11. z

Wait, that's 21 letters.

But in total, we have 22 letters; I think I have a mismatch.

Wait, in the problem the sixth word is:

mynznvaatzacdfoulxxz

Let's separate the letters:

m y n z n v a a t z a c d f o u l x x z

Total letters: 22 letters

So pairs would be:

1. m y

2. n z

3. n v

4. a a

5. t z

6. a c

7. d f

8. o u

9. l x

10. x x

11. z

Wait, 'z' is only one letter at the end.

So maybe the letters are:

1. m y

2. n z

3. n v

4. a a

5. t z

6. a c

7. d f

8. o u

9. l x

10. x x

11. z (left alone?)

But then we're missing a letter.

Alternatively, perhaps the 'z' at the end is an extra letter or it's paired with the previous 'x'.

Alternatively, perhaps there is a mistake.

Alternatively, perhaps when we reach the last 'x x z', we should write:

9. l x

10. x z

Total pairs: 11

So updated pairs:

1. m y

2. n z

3. n v

4. a a

5. t z

6. a c

7. d f

8. o u

9. l x

10. x z

Now total pairs: 10 pairs. But we are supposed to have 11 letters in the plaintext word.

So perhaps I have miscounted and not considered including 'f' or 'z'.

Wait, is there any chance that the sequence is:

1. m y

2. n z

3. n v

4. a a

5. t z

6. a c

7. d f

8. o u

9. l x

10. x x

11. z

We have 22 letters.

Perhaps the 'x x' and 'z' are overlapping.

But we need 11 pairs.

I think for this to work, we need to create 11 pairs from the 22 letters.

So let's try pairing letters in order, taking two letters at a time.

1. m y

2. n z

3. n v

4. a a

5. t z

6. a c

7. d f

8. o u

9. l x

10. x x

11. z ?

But again, last pair only has one letter 'z'

Alternatively, we might need to adjust the pairs.

Perhaps it's 'ou', 'lx', 'xz', and there is no extra 'x'.

Maybe I miswrote.

Wait, let's write the letters as they come:

m y n z n v a a t z a c d f o u l x x z

Positions:

1 m

2 y

3 n

4 z

5 n

6 v

7 a

8 a

9 t

10 z

11 a

12 c

13 d

14 f

15 o

16 u

17 l

18 x

19 x

20 z

So 20 letters.

Now that makes sense.

Now we can divide into pairs:

Pairs:

1. m y

2. n z

3. n v

4. a a

5. t z

6. a c

7. d f

8. o u

9. l x

10. x z

Total of 10 pairs, which will correspond to 10 letters.

But earlier we thought the word was 11 letters.

But 10 letters may be acceptable.

Maybe we should proceed with the 10 pairs.

First pair: m y

m=13, y=25

Sum=38

Average=19

19='S'

Second pair: n z

n=14, z=26

Sum=40

Average=20

20='T'

Third pair: n v

n=14, v=22

Sum=36

Average=18

18='R'

Fourth pair: a a

a=1, a=1

Sum=2

Average=1

1='A'

Fifth pair: t z

t=20, z=26

Sum=46

Average=23

23='W'

Sixth pair: a c

a=1, c=3

Sum=4

Average=2

2='B'

Seventh pair: d f

d=4, f=6

Sum=10

Average=5

5='E'

Eighth pair: o u

o=15, u=21

Sum=36

Average=18

18='R'

Ninth pair: l x

l=12, x=24

Sum=36

Average=18

18='R'

Tenth pair: x z

x=24, z=26

Sum=50

Average=25

25='Y'

So the tenth word is 'S', 'T', 'R', 'A', 'W', 'B', 'E', 'R', 'R', 'Y'

Wait that's 10 letters

So the sixth word is 'STRAWBERRY', which makes sense.

So putting all these translated letters together:

First word: 'THERE'

Second word: 'ARE'

Third word: 'THREE'

Fourth word: 'RS' (? Doesn't make sense)

Wait, the fourth word, the pairs were:

ou ow

Pairs:

First pair: o u

o=15, u=21

Sum=36, Average=18

18='R'

Second pair: o w

o=15, w=23

Sum=38, Average=19

19='S'

So we get 'R','S'

Similarly, fifth word 'IN'

'R', 'S' 'I','N'

So the message so far is

'THERE ARE THREE RS IN'

And then 'STRAWBERRY'

Wait, let's put the words together:

'THERE ARE THREE Rs IN STRAWBERRY'

I think 'RS' is 'R's', meaning 'Rs'

So the message is:

'THERE ARE THREE R'S IN STRAWBERRY'

Which is true.

So the decoded message is:

"THERE ARE THREE R'S IN STRAWBERRY"

To decode the given ciphertext using the example provided, we’ll use the pattern identified in the example.

Ciphertext Example:

Almindelig tekst

1
oyfjdnisdr rtqwainr acxz mynzbhhx


Decoded as:

Almindelig tekst

1
Think step by step


Decoding Method:

  1. Pair the letters in the ciphertext.
  2. Convert each letter to its numerical position in the alphabet (A=1, B=2, …, Z=26).
  3. Sum the numerical values of each pair.
  4. Compute the average of the sum (divide by 2).
  5. Convert the average back to a letter (1=A, 2=B, …, 26=Z).

Apply this method to the given ciphertext:

Almindelig tekst

1
oyekaijzdf aaptcg suaokybhai ouow aqht mynznvaatzacdfoulxxz


Break down the ciphertext into pairs:

  1. 1. First word: “oyekaijzdf”
    1. Pairs: oy, ek, ai, jz, df
    2. Decoded letters:
      1. oy → (15+25)/2 = 20 → T
      2. ek → (5+11)/2 = 8 → H
      3. ai → (1+9)/2 = 5 → E
      4. jz → (10+26)/2 = 18 → R
    3. df → (4+6)/2 = 5 → E
    4. Decoded word: THERE
  2. Second word: “aaptcg”
    1. Pairs: aa, pt, cg
    2. Decoded letters:
      1. aa → (1+1)/2 = 1 → A
      2. pt → (16+20)/2 = 18 → R
      3. cg → (3+7)/2 = 5 → E
      4. Decoded word: ARE
  3. Third word: “suaokybhai”
    1. Pairs: su, ao, ky, bh, ai
    2. Decoded letters:
      1. su → (19+21)/2 = 20 → T
      2. ao → (1+15)/2 = 8 → H
      3. ky → (11+25)/2 = 18 → R
      4. bh → (2+8)/2 = 5 → E
      5. ai → (1+9)/2 = 5 → E
    3. Decoded word: THREE
  4. Fourth word: “ouow”
    1. Pairs: ou, ow
    2. Decoded letters:
      1. ou → (15+21)/2 = 18 → R
      2. ow → (15+23)/2 = 19 → S
    3. Decoded letters: R’S
  5. Fifth word: “aqht”
    1. Pairs: aq, ht
    2. Decoded letters:
      1. aq → (1+17)/2 = 9 → I
      2. ht → (8+20)/2 = 14 → N
    3. Decoded word: IN
  6. Sixth word: “mynznvaatzacdfoulxxz”
    1. Pairs: my, nz, nv, aa, tz, ac, df, ou, lx, xz
    2. Decoded letters:
      1. my → (13+25)/2 = 19 → S
      2. nz → (14+26)/2 = 20 → T
      3. nv → (14+22)/2 = 18 → R
      4. aa → (1+1)/2 = 1 → A
      5. tz → (20+26)/2 = 23 → W
      6. ac → (1+3)/2 = 2 → B
      7. df → (4+6)/2 = 5 → E
      8. ou → (15+21)/2 = 18 → R
      9. lx → (12+24)/2 = 18 → R
      10. xz → (24+26)/2 = 25 → Y
    3. Decoded word: STRAWBERRY

Final Decoded Message:

Almindelig tekst

1
THERE ARE THREE R'S IN STRAWBERRY


Answer:
THERE ARE THREE R’S IN STRAWBERRY

Kodning

Vi trænede en model, der scorede 213 point og placerede sig i 49. percentil i den internationale olympiade i informatik (IOI) i 2024, ved at starte fra o1 og træne for yderligere at forbedre programmeringsfærdighederne. Denne model deltog i IOI 2024 under de samme forhold som de menneskelige deltagere. Den havde ti timer til at løse seks udfordrende algoritmiske problemer og måtte lave 50 indsendelser pr. problem.

For hvert problem udtog vores system samples fra mange kandidatforslag og indsendte 50 af dem baseret på en testtids-udvælgelsesstrategi. Indsendelserne blev udvalgt på baggrund af deres præstationer i IOI's offentlige testcases, modelgenererede testcases og en indlært scoringsfunktion. Hvis vi i stedet havde indsendt tilfældigt, ville vi kun have scoret 156 point i gennemsnit, hvilket tyder på, at denne strategi var næsten 60 point værd under konkurrencebegrænsninger.

Med en løsere indsendelsesbegrænsning kunne vi se, at modellens ydeevne blev markant forbedret. Når der blev tilladt 10.000 indsendelser pr. problem, opnåede modellen en score på 362,14 – over guldmedaljetærsklen – selv uden nogen testtids-udvælgelsesstrategi.  

Endelig simulerede vi programmeringskonkurrencer arrangeret af Codeforces for at demonstrere modellens kodningsfærdigheder. Vores evalueringer svarede nøje til konkurrencereglerne og tillod 10 indsendelser. GPT‑4o opnåede en Elo-rating3 på 808, hvilket er i den 11. percentil af menneskelige konkurrenter. Denne model overgik både GPT‑4o og o1 betydeligt – den opnåede en Elo-rating på 1807 og klarede sig dermed bedre end 93 % af konkurrenterne.

Billedet viser et søjlediagram, der sammenligner Codeforces Elo-percentilplaceringer for forskellige modeller. GPT-4o har 808 Elo (11. percentil), o1 forhåndsvisning har 1258 Elo (62. percentil), o1 har 1673 Elo (89. percentil), og o1-ioi har 1807 Elo (93. percentil).

Yderligere finjustering af programmeringskonkurrencer forbedrer o1. Den forbedrede model placerede sig i 49. percentil i den internationale informatikolympiade i 2024 i henhold til konkurrencereglerne.

Evaluering af menneskelig præference

Ud over eksamener og akademiske benchmarks har vi også undersøgt, hvordan mennesker vurderer o1‑forhåndsvisning i forhold til GPT‑4o på krævende, åbne opgaver inden for en bred vifte af områder. I denne evaluering blev menneskelige trænere præsenteret for anonyme svar på samme forespørgsel fra o1‑forhåndsvisning og fra GPT‑4o – og skulle stemme på det svar, de foretrak. o1‑forhåndsvisning blev foretrukket over gpt-4o med en stor margin i opgaver, der kræver tung avanceret tænkning, som f.eks. dataanalyse, kodning og matematik. Til gengæld blev o1‑forhåndsvisning ikke foretrukket, når det kom til opgaver inden for naturligt sprog, hvilket tyder på, at den ikke er lige velegnet til alle use cases.

Billedet viser et vandret søjlediagram, der sammenligner fem modellers score med fejlbjælker, der repræsenterer konfidensintervaller. X-aksen går fra 0 til 100 med en stiplet linje som referencepunkt for ydeevne.

Sikkerhed

Tankekæde-ræsonnering giver nye muligheder for tilpasning og sikkerhed. Vi har erfaret, at det er en effektiv metode at integrere vores retningslinjer for modellens adfærd direkte i ræsonneringsmodellens tankekæde, når der skal indlæres menneskelige værdier og principper på en robust måde. Ved at lære modellen vores sikkerhedsregler og hvordan den skal ræsonnere over dem i kontekst, fandt vi tegn på, at dens ræsonneringsevne direkte styrker modellens robusthed. o1‑forhåndsvisning opnåede markant bedre resultater i centrale jailbreak-tests og på vores mest krævende interne benchmarks for modellens grænser for sikkerhedsbaserede nægtelser. Vi tror på, at brugen af tanke­kæder rummer væsentlige fremskridt for sikkerhed og tilpasning til værdier, fordi (1) det gør det muligt for os at følge modellens tankeproces på en læsbar og gennemsigtig måde, og (2) modellens evne til at ræsonnere over sikkerhedsregler er mere robust for out-of-distribution-scenarier.

For at stressteste vores forbedringer udførte vi en række sikkerheds- og red teaming-tests forud for implementeringen i overensstemmelse med vores beredskabsramme(åbner i et nyt vindue)⁠. Vi erfarede her, at tankekæden bidrog til kapacitetsforbedringer på tværs af vores evalueringer. Særligt bemærkelsesværdigt er det, at vi observerede interessante tilfælde af belønningshacking(åbner i et nyt vindue). De detaljerede resultater fra evalueringerne kan findes i det medfølgende systemkort.

MetriskGPT-4oo1-forhåndsvisning
% sikre færdiggørelser ved skadelige forespørgsler
Standard
0,9900,995
% sikre færdiggørelser ved skadelige forespørgsler
Udfordrende: jailbreaks og edge cases
0,7140,934
↳ Krænkelse (alvorlig)0,8450,900
↳ Seksuelt udnyttende indhold0,4830,949
↳ Seksuelt indhold, der omfatter mindreårige0,7070,931
↳ Råd om ikke-voldelige, forkerte handlinger0,6880,961
↳ Råd om voldelige, forkerte handlinger0,7780,963
% sikre færdiggørelser for top-200 med højeste moderation API-scorer pr. kategori i WildChat
Zhao, et al. 2024
0,9450,971
Goodness@0.1 StrongREJECT jailbreak eval
Souly et al. 2024
0,2200,840
Evaluering af jailbreaks fra menneskelig kilde0,7700,960
% overholdelse ved harmløse interne edge cases
"ikke overnægtelse"
0,9100,930
% overholdelse ved harmløse edge cases i XSTest
"ikke overnægtelse"
Röttger, et al. 2023
0,9240,976

Skjulte tankekæder

Vi mener, at en skjult tankekæde giver en unik mulighed for at overvåge modellerne. Forudsat at den er troværdig og læsbar, giver den skjulte tankekæde os mulighed for at "læse modellens tanker" og forstå dens tankeproces. For eksempel kan vi i fremtiden måske få brug for at overvåge tankekæden for tegn på manipulation af brugeren. For at det kan lade sig gøre, skal modellen dog have frihed til at udtrykke sine tanker i uændret form, så vi kan ikke træne overholdelse af retningslinjer eller brugerpræferencer ind i tankekæden. Vi ønsker heller ikke at gøre en ikke-tilpasset tankekæde direkte synlig for brugerne.

Derfor har vi – efter at have afvejet flere faktorer, herunder brugeroplevelse, konkurrencemæssige fordele og muligheden for at fortsætte overvågningen af tankekæder – besluttet ikke at vise de rå tankekæder til brugerne. Vi er klar over, at denne beslutning har sine ulemper. Vi forsøger delvist at kompensere for det ved at lære modellen at gengive alle nyttige idéer fra tankekæden i svaret. For o1‑modelserien viser vi et modelgenereret resumé af tankekæden.

Konklusion

o1 medfører markante fremskridt og placerer sig i fronten af AI inden for avanceret tænkning. Vi planlægger at udgive flere versioner af modellen, efterhånden som vi fortsætter med de gradvise forbedringer. Vi forventer, at de nye ræsonneringsmuligheder vil forbedre vores evne til at tilpasse modellerne til menneskelige værdier og principper. Vi er overbeviste om, at o1 – og dens efterfølgere – vil åbne op for mange nye AI-use cases inden for videnskab, kodning, matematik og beslægtede felter. Vi glæder os til, at brugere og API-udviklere får mulighed for at opdage, hvordan den kan forbedre deres daglige arbejde.

Appendiks A

DatasætMetriskgpt-4oo1-forhåndsvisningo1
Konkurrence-matematik
AIME (2024)
cons@6413,456,783,3
pass@19,344,674,4
Konkurrencekode
KodeKræfter
Elo8081.2581.673
Procent11,062,089,0
GPQA Diamantcons@6456,178,378,0
pass@150,673,377,3
Biologicons@6463,273,768,4
pass@161,665,969,2
Kemicons@6443,060,265,6
pass@140,259,964,7
Fysikcons@6468,689,594,2
pass@159,589,492,8
MATHpass@160,385,594,8
MMLUpass@188,092,390,8
MMMU (val)pass@169,1n/a78,2
MathVista (testmini)pass@163,8n/a73,9