Výsledky cermat testů řešené pomocí AI

Řešení testových úloh v češtině, matice a cizích jazycích. Srovnání výsledků automatického řešení úloh pomocí AI dokazují, že AI modelů dnes oproti situaci před půl rokem dosahují výrazné zlepšení v matematice, v ostatních předmětech jsou výsledky podobné.

Úspěšnost dle předmětů

Procento vyjadřuje počet bodů z maximálního počtu možných bodů. Vstupem jsou všechny úlohy z databanky.

model o3-mini

více informací

model GTP-4o

více informací

Jak je to uděláno?

Vstupem jsou data.

  //load quiz content
  const markdownContent = await loadMarkdown();
  //load quiz metadata
  const jsonMetadata = await loadJson();

  //init api call and expect to return structured output (json schema based on json metadata)
  const response = await client.chat.completions.create({
        model: modelName,
        messages: [
          {
            role: "system", content: `You are an expert at ${subject === 'math' ? 'math' : subject === 'cz' ? 'czech language' : `${subject} language`}.
            You will be given quiz with questions. The quiz format is markdown text.
            Each question is identified by markdown headings. Some question can have sub questions.
            - # heading is root questions - question id is identified by format # {number}
            - ## heading is sub question - question id is identified by format ## {number}.{number}`
          },
          {
            role: "user", content: [
              { type: "text", text: "Solve the quiz questions and return the final answer for each question or sub question. Do not include steps to explain the result." },
              { type: "text", text: markdownContent },
            ]
          },
        ],
        response_format: zodResponseFormat(quizSchema(jsonMetadata), code),
        temperature: 1.,
        max_tokens: 2000,
        top_p: 1.
      });

  //get the result of api call
  const result = response.choices[0].message.content;
  
  //init quiz model
  await dispatch.quiz.initAsync({ tree: convertTree(jsonMetadata), assetPath: pathes });
  
  //submit quiz results
  dispatch.quiz.submitQuiz(JSON.parse(result));

  //log the total points
  console.log(pathes, store.getState().quiz.totalPoints)