Passer au contenu principal
OpenAI

12 septembre 2024

Versions

L’apprentissage du raisonnement avec les LLM

Voici OpenAI o1, un nouveau LLM entraîné par apprentissage par renforcement et capable de suivre des raisonnements complexes. o1 prend le temps de la réflexion : il peut produire une longue chaîne de pensée interne avant de formuler sa réponse.

Chargement...

OpenAI o1 atteint le 89ᵉ percentile aux questions de programmation compétitive (Codeforces), figure parmi les 500 meilleurs étudiants aux États-Unis lors des qualifications pour l’Olympiade de mathématiques américaine (AIME) et dépasse la précision humaine de niveau doctorat sur un référentiel de problèmes en physique, biologie et chimie (GPQA). Si le travail nécessaire pour rendre ce nouveau modèle aussi simple d’utilisation que les modèles actuels est toujours en cours, nous en publions une première version, OpenAI o1‑preview, disponible immédiatement dans ChatGPT et pour les utilisateurs API de confiance(ouverture dans une nouvelle fenêtre).

Notre algorithme d’apprentissage par renforcement à grande échelle apprend au modèle à réfléchir de manière productive en utilisant sa chaîne de pensée au sein d’un processus d’entraînement très économe en données. Nous avons constaté que les performances d’o1 s’améliorent à mesure que l’apprentissage par renforcement (ressources de calcul consacrées à l’entraînement) et que le temps qu’il consacre à sa réflexion (ressources de calcul consacrées à l’inférence) augmentent. Les contraintes de montée en puissance de cette approche sont très différentes de celles qui touchent le pré-entraînement des LLM, et nous sommes encore en train de les étudier.

L’image montre deux nuages de points illustrant la « précision d’o1 sur l’évaluation AIME » pendant l’entraînement et lors de l’inférence. Les deux graphiques disposent du libellé «pass@1 accuracy » sur l’axe des ordonnées et « compute (log scale) » sur l’axe des abscisses. Les points montrent que la précision augmente avec les ressources de calcul.

La performance d’o1 augmente avec les ressources de calcul consacrées à l’entraînement et à l’inférence.

Évaluations

Pour mettre en évidence les améliorations de ces modèles en matière de raisonnement par rapport à GPT‑4o, nous les avons testés sur diverses évaluations humaines et de machine learning. o1 se montre bien plus performant que GPT‑4o sur la vaste majorité de ces tâches, qui demandent une forte capacité de raisonnement. Sauf mention contraire, nous avons évalué o1 avec le paramètre de ressources de calcul d’inférence maximal.

o1 dépasse largement GPT-4o sur les benchmarks de raisonnement difficiles. Barres montrant une réussite du premier coup et zone grisée montrant la performance du vote à la majorité (consensus) avec 64 exemples.
o1 dépasse GPT-4o sur plusieurs benchmarks, notamment dans 54 des 57 sous-catégories du MMLU. Sept benchmarks sont présentés à titre d’illustration.

Sur de nombreuses évaluations impliquant de fortes capacités de raisonnement, o1 approche des performances d’experts humains. Les modèles de pointe récents1 se montrent si performants sur les évaluations MATH2 et GSM8K que celles-ci ne permettent plus de les différencier. Nous avons évalué les performances en mathématiques des modèles à l’aide d’AIME, un examen destiné aux élèves de mathématiques les plus brillants des États-Unis. Sur la version 2024 de cet examen, GPT‑4o n’a pu résoudre que 12 % des problèmes en moyenne (1,8/15), contre 74 % (11,1/15) pour o1 avec une seule réponse par problème et 83 % (12,5/15) avec choix de la réponse majoritaire parmi 64 réponses générées et 93 % (13,9/15) après classement de 1 000 réponses avec une fonction entraînée pour la notation. Avec 13,9, il se place parmi les 500 meilleurs élèves du pays et au-delà du seuil d’admission à l’Olympiade de mathématiques des États-Unis.

Nous avons également évalué o1 sur GPQA diamond, une évaluation complexe de l’intelligence portant sur la chimie, la physique et la biologie. Pour comparer nos modèles à des êtres humains, nous avons recruté des détenteurs d’un doctorat dans la discipline évaluée pour répondre aux questions de GPQA-diamond. Nous avons constaté qu’o1 se montrait plus performant que ces experts, une première pour un modèle sur cette évaluation. Ces résultats ne signifient pas qu’o1 est plus compétent qu’un doctorant sur tous les aspects, mais seulement que notre modèle est plus doué pour résoudre certains problèmes à la portée d’un doctorant. Sur plusieurs autres évaluations de machine learning, o1 a atteint des scores supérieurs aux références actuelles. Lorsque ses capacités de vision sont activées, il atteint par exemple 78,2 % sur MMMU, ce qui en fait le premier modèle à s’approcher des experts humains. Il s’est également montré plus performant que GPT‑4o sur 54 des 57 sous-catégories de MMLU.

Chaîne de pensée

Comme un humain peut réfléchir un long moment avant de répondre à une question complexe, o1 s’appuie sur une chaîne de pensée pour résoudre un problème. Grâce à l’apprentissage par renforcement, il apprend à affiner sa chaîne de pensée et les stratégies qu’il utilise. Il apprend à reconnaître et corriger ses erreurs. Il apprend à décomposer les étapes complexes en étapes plus simples. Il apprend à essayer une nouvelle approche lorsque celle qu’il utilise n’aboutit pas. Ce processus amplifie considérablement ses capacités de raisonnement. Pour illustrer cette nouvelle stratégie, nous vous présentons ci-dessous la chaîne de pensée de o1‑preview sur plusieurs problèmes complexes.

GPT-4o

Utilisateur

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-preview

Utilisateur

oyfjdnisdr rtqwainr acxz mynzbhhx -> Think step by step

Use the example above to decode:

oyekaijzdf aaptcg suaokybhai ouow aqht mynznvaatzacdfoulxxz

Réflexion durant 5 secondes

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:

Texte brut

1
oyfjdnisdr rtqwainr acxz mynzbhhx


Decoded as:

Texte brut

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:

Texte brut

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:

Texte brut

1
THERE ARE THREE R'S IN STRAWBERRY


Answer:
THERE ARE THREE R’S IN STRAWBERRY

Codage

Nous avons entraîné un modèle qui a obtenu 213 points et s’est hissé au 49e percentile lors de l’édition 2024 des Olympiades internationales d’informatique (IOI). Nous sommes partis d’une version de base d’o1 et l’avons entraînée pour améliorer encore ses compétences de programmation. Ce modèle a participé à l’IOI 2024 dans les mêmes conditions que les participants humains. Il avait 10 heures pour résoudre six problèmes algorithmiques complexes et pouvait proposer 50 solutions par problème.

Pour chaque problème, notre système a généré de nombreuses réponses possibles et en a soumis 50 selon une stratégie de sélection au moment de l’inférence. Les solutions ont été sélectionnées sur la base de leurs performances sur les cas de test publics de l’IOI, de cas de test générés par le modèle et d’une fonction entraînée pour la notation. Si nous avions soumis des solutions de manière aléatoire, nous n’aurions obtenu en moyenne que 156 points, ce qui suggère que cette stratégie a permis de gagner 60 points supplémentaires dans le contexte des contraintes du concours.

En levant ces contraintes, nous avons constaté que le modèle se montrait bien plus performant. Avec 10 000 solutions par problème, le modèle a atteint un score de 362,14, soit plus que nécessaire pour décrocher la médaille d’or, même sans stratégie de sélection au moment de l’inférence.  

Enfin, nous avons simulé des concours de programmation hébergés sur Codeforces pour prouver les compétences en codage du modèle. Nos évaluations respectaient au plus près les règles des concours et permettaient 10 propositions. GPT‑4o a obtenu une note Elo3 de 808, ce qui correspond au 11e percentile chez les participants humains. Le modèle entraîné pour l’IOI s’est montré bien plus performant que GPT‑4o et o1 : il a atteint un score Elo de 1807, soit plus que 93 % des participants.

L’image présente un graphique à barres comparant les percentiles des notes Elo pour Codeforces des modèles. GPT-4o a atteint 808 points (11<sup>e</sup> percentile), o1 preview 1 258 (62<sup>e</sup> percentile), o1 1673 (89<sup>e</sup> percentile) et o1-ioi 1 807 (93<sup>e</sup> percentile).

De nouveaux ajustements axés sur les concours de programmation améliorent encore les performances d’o1. Le modèle amélioré se classe dans le 49e percentile des Olympiades internationales d’informatique 2024 en respectant les règles du concours.

Évaluation des préférences des humains

En plus des examens et évaluations académiques, nous avons évalué les résultats que préfèrent les humains, entre ceux produits par o1‑preview et ceux de GPT‑4o, sur des prompts complexes et ouverts portant sur des domaines divers. Dans cette évaluation, des entraîneurs humains ont dû choisir entre deux réponses anonymisées, l’une provenant d’o1‑preview et l’autre de GPT‑4o. Ils ont dans la grande majorité des cas choisis o1‑preview sur les questions demandant un raisonnement approfondi, comme l’analyse des données, le codage et les problèmes mathématiques. En revanche, o1‑preview les a moins convaincus sur certaines tâches de langage naturel, ce qui suggère que ce modèle n’est pas adapté à tous les cas d’utilisation.

L’image présente un graphique à barres horizontal qui compare les scores de cinq modèles. Des barres d’erreur représentent les intervalles de confiance. L’axe des abscisses est gradué de 0 à 100, et une ligne en pointillés indique la performance de référence.

Sécurité

Le raisonnement par chaîne de pensée offre de nouvelles possibilités en matière d’alignement et de sécurité. Nous avons constaté que l’intégration de nos politiques comportementales dans la chaîne de pensée d’un modèle de raisonnement permet de lui apprendre efficacement et de manière robuste les valeurs et principes humains. En apprenant au modèle nos règles de sécurité et à raisonner à leur sujet en contexte, nous avons constaté que sa capacité de raisonnement contribue directement à sa robustesse. o1‑preview a atteint des performances bien supérieures sur des évaluations clés des jailbreaks et nos évaluations internes les plus exigeantes portant sur les limites des refus de sécurité. Nous pensons que le recours à une chaîne de pensée offre des avantages significatifs en matière de sécurité et d’alignement pour les raisons suivantes : (1) cela nous permet d’observer le raisonnement du modèle de manière lisible et (2) le raisonnement du modèle sur les règles de sécurité est moins sensible aux scénarios imprévus.

Pour tester la pertinence de nos améliorations, nous avons réalisé une série de tests de sécurité et d’interventions d’équipes rouges avant le déploiement, conformément à notre Cadre de préparation(ouverture dans une nouvelle fenêtre). Nous avons constaté que le raisonnement par chaîne de pensée permettait d’améliorer les capacités du modèle sur l’ensemble de nos évaluations. Il est intéressant de noter que nous avons observé des cas de détournement de récompense(ouverture dans une nouvelle fenêtre). Les résultats détaillés de ces évaluations sont publiés dans la fiche système qui accompagne le modèle.

IndicateurGPT-4oo1-preview
% de sorties sûres générées par des prompts dangereux
Standard
0,9900,995
% de sorties sûres générées par des prompts dangereux
Défi :jailbreaks et cas limites
0,7140,934
↳ Harcèlement (grave)0,8450,900
↳ Contenu ayant trait à l’exploitation sexuelle0,4830,949
↳ Contenu à caractère sexuel impliquant des mineurs0,7070,931
↳ Conseils sur des actions négatives non violentes0,6880,961
↳ Conseils sur des actions négatives violentes0,7780,963
% de sorties sûres parmi les 200 ayant le score le plus risqué selon l’API Moderation dans l’évaluation WildChat
Zhao, et al. 2024
0,9450,971
Goodness@0.1 StrongREJECT jailbreak eval
Souly et al. 2024
0,2200,840
Évaluation de jailbreaks provenant d’humains0,7700,960
% de conformité sur des cas limites sans impact
« n’est pas un refus injustifié »
0,9100,930
% de conformité sur des cas limites sans impact dans XSTest
« n’est pas un refus injustifié »
Röttger, et al. 2023
0,9240,976

Masquage de la chaîne de pensée

Nous pensons qu’une chaîne de pensée masquée offre une vraie opportunité de surveillance des modèles. Dans la mesure où elle reste fidèle et lisible, cette chaîne permet de « lire dans l’esprit du modèle » et de comprendre son processus de pensée. Par exemple, nous pourrions à l’avenir vouloir surveiller la chaîne de pensée pour détecter d’éventuels signes de manipulation de l’utilisateur. Mais pour que cette stratégie fonctionne, le modèle doit pouvoir exprimer ses pensées librement, sans altération d’aucune sorte. Nous ne pouvons donc pas inclure dans l’entraînement de la chaîne de pensée des stratégies de respect de politiques ou préférences utilisateur. Nous devons également éviter qu’une chaîne de pensée non alignée soit visible directement par les utilisateurs.

Après avoir évalué différents facteurs, dont l’expérience utilisateur, l’avantage concurrentiel de cette stratégie et l’opportunité offerte par la surveillance des chaînes de pensée, nous avons choisi de ne pas présenter les chaînes de pensée brutes aux utilisateurs. Nous sommes conscients des inconvénients de ce choix. Nous essayons de les compenser en partie en apprenant au modèle à inclure les idées utiles de sa chaîne de pensée dans sa réponse. Pour les modèles de la série o1, nous présentons un résumé de la chaîne de pensée, généré par le modèle.

Conclusion

o1 fait considérablement progresser l’état de l’art en matière de raisonnement par l’IA. Nous prévoyons de publier des versions améliorées de ce modèle. Ces nouvelles capacités de raisonnement devraient nous permettre d’améliorer l’alignement de nos modèles sur les valeurs et les principes humains. Nous pensons qu’o1 et ses successeurs ouvriront la voie à de nombreux cas d’utilisation inédits dans les secteurs de la science, du codage, des mathématiques et autres domaines liés. Nous avons hâte que nos utilisateurs et les développeurs exploitant notre API découvrent comment optimiser leur quotidien professionnel avec ces modèles.

Annexe A

Jeu de donnéesIndicateurgpt-4oo1-previewo1
Competition Math
AIME (2024)
cons@6413,456,783,3
pass@19,344,674,4
Competition Code
CodeForces
Elo8081 2581 673
Percentile11,062,089,0
GPQA Diamondcons@6456,178,378,0
pass@150,673,377,3
Biologiecons@6463,273,768,4
pass@161,665,969,2
Chimiecons@6443,060,265,6
pass@140,259,964,7
Physiquecons@6468,689,594,2
pass@159,589,492,8
MATHpass@160,385,594,8
MMLUpass@188,092,390,8
MMMU (val)pass@169,1s/o78,2
MathVista (testmini)pass@163,8s/o73,9