同じ誤りの発生源を調べる
出力で見つかった誤りの原因は、入力、前処理、モデルによる抽出、その後の検証のいずれの段階にもあり得ます。私は処理ごとの結果を比べ、原文の情報が失われた段階や、原文にない情報が加わった段階を特定します。必要な情報がモデルに届いていることを確認したうえで、モデルの処理も調べています。
Baseconnectで、データの修正方法を再利用できるツールにまとめ、本番パイプラインを改善した経験
BaseconnectでAIエンジニアのインターンとして、データ生成パイプラインの改善と、S3に保存された本番データの修正を担当しています。顧客に直接提供するデータを扱うため、修正の対象と結果を慎重に確認します。繰り返す誤りの修正方法を、再利用・改善できるtransformにまとめ、本番パイプラインにも対応する修正PRを作成し、発生源から同じ誤りを減らしています。
3か月、約320時間で190件のPRを作成しました。これらのPRは、同僚のレビューを経てマージされました。この3か月のうち、後半の1.5か月(約180時間)はデータ修正に集中的に取り組み、38件のタスクを解決しました。個別の依頼に対応しながら、自分の作業の流れをあらかじめ設計し、AIによる調査と自分の判断を記録しました。修正方法をツールにし、本番パイプラインの改善にも反映しました。取り組みの中で、特定のデータ項目では、精度が40%台から85%に、データカバー率が30%台から75%に改善しました。
うち後半1.5か月・約180時間・38件のタスク
PDFから抽出した部署名に、同じ文字が繰り返し現れました。初期仮説として、変換時の並べ替えや内容の変更が挙がりました。私はこれらの仮説を元のPDFで確かめるため、実データでの検証を求めました。
検証のために取得できた73件のPDFでは、68件の出力が変わらず、5件は想定どおりに修正されました。誤りが解消されたことと、正常な内容が保たれたことを、それぞれ確認しました。
Claudeが文字の座標を調べたところ、太字を表すために同じ文字を少しずらして重ね描きしていると分かりました。修正案を同僚にレビューしてもらうと、通常のページにも不要な重複除去が走ると指摘されました。そこで、先に重なりの有無を判定し、重なりがなければ従来の処理へ進むように変更しました。短い文書などの境界条件も検証しました。
私が実データでの確認を求め、修正範囲を判断し、検証を進めました。Claudeは調査・実装・テストを担当し、同僚は性能と境界条件をレビューしました。
画面の表示:技術部 → 抽出した文字情報:技技技技術術術術部部部部
同じ文字の座標が重なることを確認して修正:技術部
部署名と座標は、PDFの文字が重複して読み取られる仕組みを説明するために用意した架空の例です。2026年6月初旬〜9月初旬、担当した企業の部署・組織情報の項目で、人による作業とAIの支援を組み合わせて改善を進めました。この期間に、精度は40%台から85%、データカバー率は30%台から75%へと変化しました。
精度=正しく抽出できた件数 ÷ 抽出した総件数。データカバー率=抽出した総件数 ÷ 正解データの件数。
Python、SQL、AWS S3、LLM API、自動テスト、GitHubのPR・レビューを利用しています。S3では顧客に直接提供する本番データを扱い、LLM APIは情報の抽出・検証に使います。調査・実装はClaudeの支援を受けて進めています。自分用のダッシュボードは、Python標準ライブラリのHTTPサーバー、ローカルデータベース、HTML/JSで構成しています。
アルバイトのインターンとしてチーム開発に参加し、データチームや顧客からの指摘をもとに調査しています。コードの変更は、調査、修正案の作成、PR、同僚のレビュー、マージ、検証環境での確認、本番反映の順に進みます。既存データの修正は、私が本番環境で直接実行します。dry-runで差分を確認し、実行後にも結果を確かめています。
私が担当するのは、課題と目標の定義、AIの調査結果の評価、修正方針・対象範囲の決定、リスクの高い箇所の確認です。PRの作成、受け入れ基準の記載、マージ後の検証と記録、本番データの修正も行います。Claudeには、調査と再現、原因候補の切り分け、コード案・テストコードの作成、対象リストやコマンドの整理を依頼します。同僚は、性能・境界条件・集計基準のコードレビュー、元の課題や業務上の定義の共有、既存の作業フレームワークの保守を担当しています。
①入力・前処理・モデルによる抽出・検証・保存の各段階を調べ、抽出漏れや誤抽出、データの誤りに対する修正PRを作成。②行単位の評価、反例を含む検証、変更前後の2組のサンプル比較など、評価方法を設計。③再利用できるtransformで既存データを修正し、同じ方針のPRで本番パイプラインも修正。本番環境でのデータ修正を実行。④タスク、処理バッチ、検証結果、次の作業、ログを管理する自分用のダッシュボードを作成。
インターンで扱うコードは社内リポジトリにあるため、このページでは調査方法、判断の根拠、検証の進め方を紹介します。個人開発については、CorpLink-AIのソースコード(GitHub)、運用中の三つのWebアプリを紹介するポートフォリオ、職務経歴書(PDF)を参照できます。リンクはページ末尾にまとめています。
Baseconnectは、企業情報のデータベースを提供しています。WebページやPDFなどの公開情報から、企業、部署、人物、連絡先の情報を抽出・構造化し、顧客に届けています。本番パイプラインは収集、抽出、検証、保存の工程から成り、モデルを使う抽出処理も組み込まれています。
2026年からAIエンジニアのインターンとして、企業情報の抽出品質の改善に携わっています。抽出漏れや誤抽出、データの誤りの原因を調べ、データ生成パイプラインのコード修正、評価方法の設計、既存データの修正を進めています。S3に保存されたデータは、顧客に直接提供する本番データです。このデータを使ってパイプラインを調査・修正するため、自分用の作業環境も整えました。コードを変更した際は同じデータで検証し、PRを作成します。既存データの修正も、私が本番環境で直接実行しています。
インターンを始めた当初は、稼働中の本番パイプライン、初めて扱う業務データ、大量の既存コードを理解する必要がありました。Claudeで調査・開発を進める中で、会話が終わると調査結果を引き継ぎにくく、コード案が業務の要件に合わないこともありました。そこで作業を九つの段階に分け、各段階で誰が何をするかを決めました。
九つの段階のうち、五つは私による判断・実行、二つはAIへの依頼、二つは記録に当たります。AIが調査と実装を支援し、私が課題を定義して、妥当性やリスクを判断し、最終的に結果を検証します。その後の開発、レビュー、検証も、この手順に沿って進めています。
記録は三か所に残します。まず、変更前に受け入れ基準をMarkdownファイル(.md)へ書きます。対象、比較用サンプル、保護する正常データ、新しい処理の動作をログで確認する方法を定めます。次に、検証結果をPRのコメントにまとめます。変更前後の比較、正常データへの影響、処理が動いた記録を、レビュー担当者と後から読む自分が確認できるようにします。さらに、調査、dry-run、本番実行、実行後の確認をダッシュボードとログに記録し、新しいAIセッションの開始時に読み込んで作業を続けます。
先に基準を決めておくと、検証で確かめることが明確になります。経緯をまとめておけば、次の会話で説明し直す手間も減らせます。レビュー担当者が根拠を確かめられ、新しいセッションでも作業を再開できるように、記録の残し方を整えました。
旅行会社では、業務要件を整理し、開発担当者と日程を調整してテストを進めました。自分のスタジオでは、繰り返す業務を手順にまとめ、カスタマーサポート担当者と分担しました。こうした経験を生かし、インターンでも一つのチケットを「タスク → 処理バッチ → 各段階の実施記録」に分けています。進行中のバッチには、次の作業、担当者、関連PR、資料のパスを記録します。コードのマージ、dry-run、本番実行、実行後の確認を別々の段階として管理し、どこまで進んだかを把握しています。
データの比較では、同じ対象を安定した業務上のキーで結び、バッチごとの結果を追えるようにしています。比較の前に対象範囲と環境がそろっているかを確認し、条件が異なる結果は分けて扱っています。
AIと長期の作業を進めるうちに、四つの課題が繰り返し現れました。過去の判断や手順が抜けること、調査・検証結果が会話ごとに散らばること、人が経緯を覚えて説明し直す必要があること、文脈が増えるほどコストと不要な情報も増えることです。そこで、データベースを備えた自分用のダッシュボードをつくりました。タスクと処理バッチの状態、PRの受け入れ状況と基準のチェックリスト、検証結果と問題分類、作業ログ、誤りを検出するルールの状態と推移、新しいセッションで再開するための情報を保存しています。
AIの支援を受け、Python標準ライブラリのHTTPサーバー、ローカルデータベース、HTML/JSの画面で実装しました。判断や統合の支援には高性能なモデル、調査や繰り返し作業には軽量なモデルを使っています。人とAIが同じ記録を参照しながら進められるよう、毎日使って改良を重ねています。
表示内容はすべてサンプルです
| タスク | 段階 | 次の作業 | 担当者 |
|---|---|---|---|
| A種別データを修正 | 実行結果を確認中 | 正常なサンプルを確認 | 私 |
| 役職の分類を確認 | dry-runの結果確認待ち | 修正対象の範囲を確認 | 私 |
S3に保存され、顧客に直接提供する本番データには、部署名の混在、人物と所属の対応誤り、役職分類の不一致などが生じることがあります。既存データを修正するとともに、パイプラインのどの処理で誤りが生まれたかを調べ、同じ問題が繰り返される原因にも対応します。
既存データと、誤りの発生源をそれぞれ修正しました。既存データについては、誤りの種類ごとに修正処理をtransformへまとめ、再利用・改善できるようにしました。dry-runとバックアップを備え、修正するデータと、一見不自然でも業務上正しいため残すデータを区別しています。発生源については、同じ修正方針を本番パイプラインの抽出・検証・保存の該当箇所に反映するPRを作成しました。新しい形の問題が見つかった際も、既存のtransformにルールを追加し、検証しながら改善できます。
本番環境でのデータ修正は、私が実行しています。dry-runで差分を確かめ、バックアップを取ってから本番で実行し、結果を確認します。検証結果はPRとタスクの記録に残します。この手順で、1.5か月に38件のデータ修正タスクを解決しました。
チームでは誤りを分類し、同じ種類の誤りを検出すると、アラートとタスクが生成されます。私は既存のtransformをそのまま使えるか、改善してから実行するかを判断し、本番パイプラインの該当箇所も修正します。実行前にはバックアップを取ります。失敗時はバックアップから復元する想定ですが、これまで復元が必要になる失敗は発生していません。
再利用可能なtransform
同じ修正方針を反映するPR
次のバッチで再利用し、検証・改善
出力で見つかった誤りの原因は、入力、前処理、モデルによる抽出、その後の検証のいずれの段階にもあり得ます。私は処理ごとの結果を比べ、原文の情報が失われた段階や、原文にない情報が加わった段階を特定します。必要な情報がモデルに届いていることを確認したうえで、モデルの処理も調べています。
PDFから抽出した部署名に同じ文字が繰り返し現れ、実在しない部署名になったことがありました。まず、HTML変換時の並べ替えや、資料に記載された人事異動の影響を考えました。これらの仮説を元のPDFで確かめるため、私はClaudeに実データでの再現を求め、PDF内の文字座標を調べてもらいました。その結果、太字を表すために、同じ文字を少しずらして重ねて描いていたことが原因だと分かりました。こうして原因を確かめてから、修正方法を決めています。
データ修正では、誤りと、一見不自然でも業務上正しいデータを見分ける必要があります。確実に判断できないものは、上流の処理や人による確認に回します。バッチごとにdry-runの差分を確認し、バックアップを取ってから本番で実行します。実行後には、正しく修正できた件数と新たな誤りが生じた件数をそれぞれ数え、両方を確かめています。
マージ前に、受け入れ基準をMarkdownファイル(.md)に記載します。問題のデータが出なくなったかを調べるとともに、ログで新しい処理が実際に動いたことを確認します。変更前後で同じ比較用サンプルを使い、正しい結果と誤った結果を分けて集計します。検証結果はPRのコメントに残し、レビュー担当者が直接確かめられるようにしています。
異常なページに対応するコードのレビューで、通常のページが最も遅くなる実装だと指摘されました。そこで、先に異常の有無を判定し、異常がなければ従来の処理へ進むように変更しました。短い文書や文字の正規化に関する境界条件も検証しました。同僚の指摘は受け入れ基準に反映し、修正案の弱点を早い段階で確認するために役立てています。
Claudeには、方針と選んだ理由を平易な言葉で説明してもらいます。私はその説明を業務の制約に照らして確認し、疑問点を掘り下げます。前の議論を引き継がないエージェントにも、反例の検討やレビューを依頼します。前提が成り立たないと分かった場合は、方針を変えるか対象を絞ります。判断のつかないデータは元の値を保ち、修正を保留して確認を続けます。
3か月、約320時間で作成した190件のPRが、同僚のレビューを経てマージされました。このうち後半の1.5か月、約180時間はデータ修正に集中的に取り組み、38件のタスクを解決しました。取り組みの中で、特定のデータ項目の精度は40%台から85%に、データカバー率は30%台から75%に改善しました。修正の根拠と検証結果は、ダッシュボード、受け入れ基準を記したMarkdownファイル(.md)、PRのコメントから確認できるようにしています。
うち後半1.5か月・約180時間・38件のタスク
数値は、2026年10月時点の本人の業務記録をもとに集計しています。
この経験では、繰り返す作業の進め方を整え、使いながら改善できるツールにまとめることを大切にしました。九つの段階で作業を進め、判断と検証を記録し、タスクを進捗の追えるバッチに分けました。データの修正方法はtransformにまとめ、本番パイプラインにも反映しました。CorpLink-AI、自分用のダッシュボード、日常で使う三つのアプリも、同じ考え方からつくっています。過去の記録や判断を次の作業に生かし、繰り返す手間を減らしたいと考えています。
インターンで扱うコードは社内リポジトリにあります。このページでは、仕事の進め方、判断の根拠、検証方法を紹介しています。