みなさんこんにちは!
私は独立して、小さいながらも強力なビジョン・ランゲージ・モデル(VLM)を研究開発してきました。そして、視覚データセットに大きなギャップがあることに気づきました。どのデータセットも、私のモデルに対して単にテキストを画像に“根付かせる”(ground)ことを教えておらず、テキスト自体、あるいはシーンそのものについて推論するようにしようとしているのです。これがきっかけで、2週間のサイドプロジェクトに没頭し、SGOCRという、空間的に根付いた(spatially-grounded)、OCRに焦点を当てたVQAタプルを生成するためのオープンソースのデータセット・パイプラインを作りました。多様なVLM学習戦略を支えるための、豊富なメタデータがたくさん入っています。
開発は、まずローカルでQwen2.5-VLに単にプロンプトを投げるところから始め、そこから多段構成の“化け物”へと成長しました。ある時点では、OCRステージは3つのテキスト認識モデル(Parseq)のコンセンサスを探していました。アンカー(anchor)ステージでは、GroundingDino、Florence 2、そしてSAM 3.1の間で同様にコンセンサスを取ります。そして検証(verification)には、Gemini 3.1 ProとChatGPT 5.3 Codexの両方からのパスが必要でした。私はこのケースでは「少ないほうが良い」ことを見つけ、Nvidiaのnemotron-ocr-v2をテキスト抽出に使うことにしました。さらに、アンカーの発見とラベリングにはGemma4と、バックアップとしてQwen3-VLを組み合わせ、検証には、教師モデル(teacher model)としてgemini-2.5-flashを使い、シンプルなグラウンディング(grounding)チェックで合否を判定しました。文脈内で高度に根付いた注釈(annotations)が提供されていたため、Flash教師モデルの小型版である2.5 Flashでも十分に対応できました。Flashが意味(semantics)に集中できたのです。
最初に、後で人間が根付けた文脈(human-grounded context)として参照できるように、私自身の個人的な採否/保留(accept/reject/maybe)評価を保存するデータセットレビュー用のフロントエンドを作成してから、その後はエージェント型ループを開発に使いました。このプロセスをブートストラップして、採用した質問の側面を反映する品質スコアを作りました。そこから先は、自動化がずっと簡単になりました。私は、Karpathyのautoresearchに基づく(ただし、こちらではハイパラサーチ寄りで少し過剰に感じたのですが)独自の最適化ループ用エージェントを運用しています。これは、スイープ(sweep)ベースの手法を使うことで、より包括的な観察(holisitc observation)を可能にし、コード変更の機会を作り、また、別のバリアントより評価がわずかに低いだけで良いアイデアが早く死んでしまうリスクを減らします。
一般的なフィードバックを探しています。また、他の方も同じようなものに取り組んでいるのか、あるいは類似のVLMを作っているのか気になっています。読んでいただきありがとうございます!
[リンク] [コメント]



