Moving from theory to a tangible, working system that turns AI mistakes into high-quality training data. IN THE 私たちは、AI開発の混乱の真ん中について話し、これは有望な85%のプロトタイプと生産準備が整った99%のシステムとの間の困難なギャップです。 このシリーズの第1部 今日、私たちは私たちの手を汚して、データフライトのコアループを示すシンプルで動作するウェブアプリケーションを構築する予定です。この記事の終わりまでに、あなたはAIのエラーを修正し、あなたの仕事から完璧な、細かい調整準備のデータセットを生成します。 We will be using the オープンソースフレームワークの例として、 この例は自立しており、DockerやRedisのような外部サービスは必要ありませんし、コアパターンがどれほど強力であるかを証明しています。 correction_deck_quickstart Foundry Foundry シナリオ:A Flawed Invoice AI たとえば、我々は請求書から構造化されたデータを抽出するためにAIを構築したとします。我々はそれを請求書の画像として供給し、それがクリーンなJSONオブジェクトを返すことを望んでいます。その最初のパスでは、AIは適切な仕事をしますが、それは完璧ではありません。 { "supplier_name": "Lone Star Provisins Inc.", // <-- TYPO! "invoice_number": "785670", "invoice_date": "2025-08-20", "inventory_items": [ { "item_name": "TAVERN HAM WH", "total_quantity": 15.82, "total_unit": "LB", "total_cost": 87.80 }, { "item_name": "ONIONS YELLOW JBO", "total_quantity": 5, // <-- WRONG QUANTITY! Should be 50. "total_unit": "LB", "total_cost": 35.50 } ] } 私たちの目標は、人間がこれらの2つのエラーを簡単に修正できるシステムを構築することであり、重要なのは、これらの修正を再訓練するために捕捉することです。 Our Flywheelの3つのコアコンポーネント これを構築するために、私たちのFoundryフレームワークは3つのシンプルで強力なPython抽象に依存しています。 仕事:これは、トラッキングシステムのチケットとして考えてください. それは、AIのための単一の作業ユニットを表すデータベースモデルです. それは、 input_data (請求書の画像)、 initial_ai_output (上記の欠陥の JSON) 、そして人間がそれを修正した後、 corrected_output を保存する場所を保持しています。 CorrectionRecord: これはゴールデンチケットです。人間がその訂正を保存すると、私たちは単に仕事を更新するのではありません。私たちは別個の、自己含有の CorrectionRecordを作成します。このレコードは、細かい調節を目的として作られています。それはオリジナルの入力、AIの悪い試み、そして人間の「地上の真実」の訂正のクリーンコピーを格納します。 CorrectionHandler: This is the business logic. It is a simple class that orchestrates the process: it takes the submitted form data from the web UI, validates it, updates the Job, creates the CorrectionRecord, and handles exporting all the records into a training file. これはプロセスをオーケストラする簡単なクラスです。 これらの3つの部分は、私たちのフライトホイールの背骨を形成するために一緒に働きます. Now, let us see them in action. Let's Build It: The Quickstart in Action シングル If you're following along, clone the , Navigate to the ディレクトリを設定し、依存性を設定します。 Foundry Repository examples/correction_deck_quickstart ステップ1:Quickstart Scriptを実行する あなたのターミナルから、単に実行してください: python quickstart.py ローカル Web サーバーが起動したというメッセージが表示されます。 . http://localhost:8000 --- Foundry Quickstart Server running at http://localhost:8000 --- --- Open the URL in your browser to use the Correction Deck. --- --- Press Ctrl+C to stop the server and complete the flywheel. --- ステップ2: Correction Deck UI を使用する あなたのブラウザでその URL を開きます. あなたは単純な Correction Deck UI を見るでしょう. 左にソースの請求書の画像です. 右に、AIの欠陥データで事前に満たされたウェブフォームです。 あなたの仕事は、ループの中の人間になることです。これらの2つの訂正を行う: Lone Star Provisins Inc. を Lone Star Provisions Inc. に変更する 量を修正する: ONIONS YELLOW JBO の量を 5 から 50 に変更します。 クリック Save Correction. ステップ3:Full the Flywheel 次に、ターミナルに戻り、サーバーを停止する。 スクリプトは自動的に飛行車の最後のステップを引き起こします:あなたの仕事を輸出します. You will see this output: Ctrl+C --- Server stopped. --- --- Exporting approved corrections to fine-tuning format... --- --- Data successfully exported to 'corrected_data.jsonl' --- --- QUICKSTART COMPLETE --- You just completed one full turn of the data flywheel. あなたはちょうどデータの飛行車の1つの完全な回転を完了しました。 タイトル: The Payoff: The Perfect Training File OPEN THE ディレクトリ. 新しいファイルが見つかります: これはあなたの仕事の実質的な結果であり、現代のAIモデルを細かく調整するために完璧にキャプチャされ、フォーマットされています。 examples/correction_deck_quickstart corrected_data.jsonl 内部を見ていきましょう. 構造化された JSON の 1 行を含みます: {"contents": [{"role": "user", "parts": [{"fileData": {"mimeType": "image/jpeg", "fileUri": "/static/example_invoice.jpeg"}}, {"text": "Extract the key business data from the provided input."}]}, {"role": "model", "parts": [{"text": "{\"supplier_name\": \"Lone Star Provisions Inc.\", \"invoice_number\": \"785670\", \"invoice_date\": \"2025-08-20\", \"inventory_items\": [{\"item_name\": \"TAVERN HAM WH\", \"total_quantity\": 15.82, \"total_unit\": \"LB\", \"total_cost\": 87.8}, {\"item_name\": \"ONIONS YELLOW JBO\", \"total_quantity\": 50.0, \"total_unit\": \"LB\", \"total_cost\": 35.5}]}"}]}]}``` これは複雑に見えるかもしれませんが、GoogleのGeminoやOpenAIのGPTシリーズのようなモデルが予想する正確な会話形式です。 “role”: “user”: This is the prompt. It contains the input image (fileUri) and the instruction we gave the AI. これは、入力画像(fileUri)と私たちがAIに与えた指示が含まれています。 "role": "model": This is the perfect response. It contains the JSON string with your corrections applied. これは、あなたの修正を適用したJSON文字列を含んでいます。 私たちは、人間の努力の数秒を高品質で機械で読み取れるトレーニング例に成功させました。今、100回の修正や1000回の修正でこれを行うことを想像してください。あなたはもはや単にエラーを修正しているのではなく、あなたのモデルの次のバージョンでこのエラーの全クラスを排除するデータセットを積極的に効率的に構築しています。 次は何? Flywheelのコアループを証明しました: Correct -> Capture -> Format for Training. これは強力なスタートですが、オフラインのプロセスです。AIがバッチを完成させるのを待って、その作業を修正しました。しかし、私たちがよりインタラクティブになれたらどうでしょうか? パイプラインが稼働し、理解できないものに遭遇し、スマートに自分自身を休止し、リアルタイムで人間に助けを求めることができますか? このシリーズの次の記事では、我々はまさにそのことを構築します。我々は、トラブルが発生したときを知り、説明を求めることを恐れない、抵抗力のある、人間的なループパイプラインを構築します。