Surge AIがOpenAIの8,500問の数学問題データセットGSM8Kを構築した方法
OpenAIのために8,500問の小学校レベルの数学問題データセットを構築し、GPT-3などの言語モデルが自然言語の数学問題を解く能力と推論力を測定・向上させることを目的としています。
キーポイント
Surge AIがOpenAIのGSM8Kデータセット(8,500問の算数文章題)を構築した経緯と手法を公開
高品質なデータセット作成には明確なガイドラインと現実的な例示が不可欠であることを強調
データセットの品質問題(例:Google GoEmotionsの30%誤ラベル)を指摘し、データ品質の重要性を訴求
GSM8KはGPT-3の推論能力評価やGoogle PaLM/Chain of Thought研究など幅広く採用されている
データセット作成の専門的ノウハウを共有する「how we built it」シリーズを開始
影響分析・編集コメントを表示
影響分析
この記事は、AI研究の基盤となるデータセット作成の実践的ノウハウを公開することで、データ品質の重要性を業界に再認識させる。特に大規模言語モデルの推論能力評価に広く採用されているGSM8Kの構築プロセスを明らかにし、再現性のある高品質データ作成のベストプラクティスを示した点で意義が大きい。
編集コメント
AI研究の「地味だが重要」な基盤作業に光を当てた良記事。データセット作成の実務的知見が具体的に記述されており、研究者やデータエンジニアにとって参考になる内容。
要約:Surge AIがOpenAIのGSM8Kデータセット(8,500の数学問題)を構築した方法
Surge AIは、OpenAIの強化学習チーム向けに、8,500問の小学校レベルの数学文章題データセット「GSM8K」を構築した。このデータセットの目的は、GPT-3のような言語モデルに自然言語の数学問題を解く能力を訓練させ、その推論力を測定することにある。この成果はOpenAIのブログで発表され、GoogleのPaLMやChain of Thought論文を含む多くの研究機関でも採用されている。
データセット作成はAI開発の重要な基盤であるが、その重要性は過小評価されがちである。実際、多くの研究者は自身が使用するデータセットを詳細に検証しておらず、入力データの質の問題(例:GoogleのGoEmotionsデータセットでは30%以上が誤ラベル)がモデルの信頼性を損なうリスクとなっている。Surge AIはデータの質を深く重視し、その取り組みを共有するため、GSM8Kを皮切りにデータセット構築のプロセスを解説するシリーズを開始した。
GSM8K構築の核心は、明確なガイドラインの策定にあった。OpenAIが作成した指示は比較的簡潔で、以下のような具体的な基準が設けられた:
- 問題は小学校レベルで、解答には2〜8のステップを含むこと。
- 計算は暗算可能な単純なもの(例:7*8、36+110)に限定。
- 最終解答は単一の整数とし、単位は問題文中で明示する。中間ステップでは簡単な小数(例:3.25)を使用可能だが、最終答えは整数とする。
- 解答では推論過程を明示し(例:「ジェイソンは8/2=4個のリンゴを持つ」)、単に結果(「4個」)だけを書かないこと。
- 使用する演算は初等算術(+、-、×、÷)に限る。
- 問題設定の繰り返しを避け、多様な文脈を確保すること。
Surge AIは、このプロジェクトを通じて、高品質なデータセット作成には二つの要点があると強調する。第一に、詳細すぎる指示書は必ずしも必要ではなく、優れた作業者(ラベラー)を活用すれば、自明な点を延々と規定せずに済む。第二に、現実に即した具体例を示すことが極めて重要である。プロダクトチームの真の課題を理解しないプロジェクトマネージャーが作成する、現実離れした例文や、例文そのものが欠如したガイドラインは役に立たない。
GSM8Kの構築は、AIが複雑な問題(例えばリーマン仮説)を段階的に説明しながら解く能力を培うための第一歩である。質の高いデータが、AIの推論能力の信頼性を支える基盤となるという認識が、この取り組みの根底にある。
原文を表示
BlogLeaderboardsWorkforceProductsResearchCareersContactLoginMenuCloseBack to BlogHow Surge AI Built OpenAI's GSM8K Dataset of 8,500 Math Problems
Imagine a world where AI helps us solve the Riemann hypothesis one day – producing not just the final answer, but also explanations of each mind-opening step. Could we teach it to do so? Just witness the magic already...
We recently created a dataset of 8,500 Grade School Math problems for OpenAI’s Reinforcement Learning team. The goal: to train language models like GPT-3 to solve natural language math problems and measure their reasoning ability.
Read the post by Karl Cobbe, Vineet Kosaraju, and John Schulman on OpenAI's blog! It’s also been adopted by many other research labs, including Google in their PaLM and Chain of Thought papers.
Dataset creation is a critical piece of AI, but it’s surprisingly underappreciated – ask most researchers, and they’ll have never inspected their datasets themselves! But how can you trust what you’re building when your inputs are junk? This is a real problem: for example, over 30% of Google’s GoEmotions dataset of Reddit comments is mislabeled…
At Surge AI, we care deeply about data, and we want everyone to share that same love. So we’re starting a “how we built it” series on dataset creation, starting with a deep dive into GSM8K.
How We Built It: Dataset Guidelines
First, what were the specifications behind the dataset? Here are the instructions that OpenAI created. A couple things to point out:
The instructions are fairly short! While long, detailed instructions are sometimes necessary – particularly when there’s very nuanced, unintuitive criteria – one of the benefits of using high-quality labelers is that you don’t need to write 20 pages of guidelines outlining obvious points.
Real-world examples are worth their weight in gold. We often see guidelines written by project managers who don’t understand the problems their product team is trying to solve; as a result, examples are nonexistent or armchair examples divorced from reality.
Your goal in this project is to write simple grade school level math word problems and their corresponding solutions.
All problems should contain 2-8 steps in their solution.
All calculations should be simple enough to do in your head without a calculator (e.g. 7*8, 36+110).
The answer should be a single integer value. Any units should be specified as part of the question (e.g. "How much money, in dollars, does Robert have?"). Simple decimal numbers (e.g. 3.25) can be part of the intermediate steps in the problem, but final answers should always be integers.
Writing "Jason has 8/2=4 apples" is preferable to writing "Jason has 4 apples", if you used the calculation 8/2 to determine how many apples Jason has.
Only use elementary arithmetic operations: +,-,*,/.
Don't reuse a problem setting. If you just wrote a problem about Samantha's trip to the zoo, don't write a second problem using that same premise.
Kendra has 3 more than twice as many berries as Sam. Sam has half as many berries as Martha. If Martha has 40 berries, how many berries does Kendra have?
Since Sam has half as many berries as Martha, he has 40/2 = 20 berries.
Since Kendra has 3 more than twice as many berries as Sam, she has 3+2*20 = 43 berries.
David has $300. He spent half of it on a new bike, and then he spent a third of what was left on a pair of sneakers. How much money did he have left?
David spent 300/2=150 on a new bike.
After buying the bike, David had 300-150=150 dollars left.
He spent 150/3=50 dollars on sneakers.
He had 150-50=100 dollars left.
Isaac has to buy some notebooks for the new school year. He buys 3 red notebooks and 2 yellow notebooks, for a total cost of $26. If the red notebooks cost $4 each, how much did the yellow notebooks cost each?
Let Y be the cost of the yellow notebooks.
Here’s what the labeling task looked like in our UI.
Building a Mathematical Labeling Team
Our first step in creating the dataset was building a team of mathematically proficient Surgers. While this project doesn’t require advanced mathematical knowledge, we found it helpful to leverage Surgers with math or STEM degrees:
They were less likely to make calculation errors. Even MIT Math PhDs inevitably make mistakes when solving middle school math problems, but having more experience makes it less likely.
They were naturally speedier. Some people can quickly calculate 81 / 3 in their heads; others can’t.
We wanted a diverse set of problems in order to capture the richness of mathematical reasoning, and experience helps.
Luckily, we do a lot of work creating advanced AI datasets – for example, creating datasets of Python programs to train coding assistants, or summarizing physics and chemistry papers – and so we already had hundreds of Surgers with technical degrees.
In order to further ensure that they could come up with well-designed math problems, everyone’s first 5 submissions
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み