完璧を求めて:95%の精度でモデルを最適化する方法
Admin
2025-09-19
人工知性の世界では、「精度」はつかみどころのない概念です。数学の方程式では、精度はバイナリです:答えは正しいか間違っているかです。しかし、コンピュータビジョンでは、精度は主観的です。
Golden Retrieverが公園を走り抜ける写真をAIに見せて、AIが「犬」と言うとき、それは正確ですか?技術的にはそうです。 しかし、他のモデルが "金色のレトリバーが明るい芝生のフィールドを走り、背景がぼやけている" と言うなら、最初のモデルは一 suddenly不十分に見えます。
Lens Go (https://lensgo.org/) で、我々は「技術的に正しい」に満足していませんでした。我々は「人間のレベルの知覚」を望みました。我々は、単にオブジェクトにラベルを付けるだけでなく、シーンを理解するビジョエンジンを構築したかったのです。
専門ユーザーが頼りにする95%の精度率 достижение был случайным. Это было результатом неустанной инженерии, архитектурных сдвигов и отказа компромисса в качестве данных.
以下のセクションでは、ピクセルと真実の間のギャップを埋めるために Lens Go エンジンをどのように最適化したかのぞいてみましょう。
視覚描写における「精度」の再定義
精度で最適化する前に、それを定義する必要がありました。標準的な機械学習ベンチマーク(ImageNetなど)では、精度は「Top-1」または「Top-5」分類で測定されることが多く — モデルが正しいラベルを推測したか?
Lens Goにとって、分類だけでは十分ではありません。我々はセマンティックDescriptionエンジンです。
我々は3つの次元で精度を定義しました:
- オブジェクト幻覚率: モデルが存在しないときにオブジェクトが存在すると主張しますか?(偽陽性)。
- 属性精度: モデルが車を見た場合、色、モデルイヤー、状態を正しく識別しますか?
- 関係論的論理性: モデルが物理学を理解しますか?(例、コップがテーブルの上にあり、浮いていない)。
95% достичь, мы должны были хорошо учитывать все четыре параметра. Было проведено тщательное тестирование и валидация каждого компонента.
ビジョンtransformers(ViT)への移行
我々の精度における最大の飛躍は、純粋な卷積ニューラルネットワーク(CNN)から**Vision Transformer(ViT)**アーキテクチャに移行したときでした。
CNNは歴史的にビジョンの金標準でした。它们擅长通过小网格扫描图像来检测边缘和纹理。しかし Они борются с "глобальным контекстом". Они часто пропускают лес из-за деревьев.
originally designed for language processing (like GPT) のtransformersは、画像を「パッチ」のシーケンスとして扱います。
12層の違い: Lens Go는깊은 12레이어 신경 네트워크를활용합니다.
- **레이어 1-4 (시각의 문법):**これらのレイヤーは、raw visualデータを処理—線、曲線、色彩勾配を識別します。
- 레이어 5-8 (객체의 어휘): Aquí、el modelo agregará features hacia entidades reconocibles.
- 레이어 9-12 (语义理解): здесь архитектура Transformer сияет.
**Self-Attention**메커니즘을 사용하여 모델이 전체 이미지를 동시에 봅니다.
어텐션 메커니즘은 모델이 종속성을 이해할 수 있게 합니다. оно "обращает внимание" на тот факт, что бейсбольная бита предполагает наличие бейсбольного мяча, перчатки или игрока. 这种上下文意识显著减少了我们在复杂混乱场景中的错误率,传统CNN经常在那里感到困惑。
"幻覚"問題との闘い
生成AIに対する最も一般的な批判の1つが幻覚 — モデルが confidently things upを作成する傾向です。コンピュータビジョンでは、subject が実際に фrowningしているときにAIが「微笑んでいる女性」を説明していたり、評価された 空에「sunset」を追加したりする見えるかもしれません。
Для наших профессиональных пользователей (исследователей и дизайнеров) галлюцинации неприемлемы.
이를 combat하기 위해 우리는 Visual Grounding 프로토콜을 реализова했습니다. Мы обучили нашу модель не только генерировать текст, но и внутренне маппить этот текст к конкретным пикселям. モデルが "red umbrella" 这个词を出力したい場合、оно должно быть способно внутренне указать на конкретную координатную область изображения, которая содержит красный зонт.
Если внутренняя оценка уверенности для этого маппинга опускается ниже определенного порога, дескриптор отбрасывается. モデルをより 創造的而不是保守的 になるよう最適化しました. 「有名人」(低信頼度)よりも「人」(高信頼度)と言ってくれる方を好みます. 确保你从Lens Go获得的信息在事实上是可靠的。
トレ닝データの品質
データサイエンスには古い言い回しがあります:「ガベージ・イン、ガベージ・アウト。」
多くのオープンソースビジョン モデルは、互联网から巨大な scraped データセットで训练されています. 这些数据集很嘈杂。它们包含的错误、无关或垃圾的alt-text captioned图片.
95%の精度 достичь 위해、我々は我々の食事を調整する必要がありました. мы дополнительно настраивали Lens Go на проприетарном датасете High-Fidelity Image-Text Pairs.
- Instead of generic captions, 我们利用了由人类专家用高粒度描述图像的数据集.
- 我们专门平衡了数据集,以包括 "边缘情况" — 低光摄影、运动模糊、不寻常的相机角度和高密度人群.
通过在"困难"图像上训练,"容易"图像 become trivial for the model to process. 这种严格的训练regimen确保Lens Go在你上传专业照明或不完美帧的照片时不会分解.
空間関係の微調整
我们优化过程中的一个主要障碍是空间逻辑. 模型的早期迭代会正确列出物体,但弄乱它们的位置. 它可能会说 "男人站在桌子后面" 而他实际上坐在桌子上.
我们为此进行了优化,引入了专门针对几何定向的损失函数. 在训练期间,每次模型错误地使用介词(on、under、beside、behind)时,我们都会对其进行严重惩罚.
这迫使神经网络发展对深度感知和遮挡的更深入理解. 它了解到,如果"物体A"遮挡了"物体B"的底部的一半,那么"物体A"必须在"物体B"的前面. 这对人类来说可能听起来很基础,但对于机器来说,学习这种逻辑是玩具和专业工具之间的区别.
推理速度的优化
精度通常是以速度为代价的. 运行一个大规模的12层transformer需要计算能力. 然而,我们的用户期望实时视觉翻译.
为了实现速度和精度,我们采用了模型量化. 我们压缩了神经网络的数学权重,而不损害其智能. 通过将32位浮点精度转换为网络特定不太关键层的较低精度格式,我们将模型大小减少了300%,提高了推理速度.
这种优化使我们能够在浏览器环境中在几秒钟内处理高分辨率图像(最多5MB),同时保持95%的精度基准. 它还支持我们的零数据保留政策—因为处理如此之快,我们不需要将图像排队到磁盘驱动器上. 我们立即处理和清除.
到100%的旅程
在工程中,你永远不会真正"完成". 虽然我们为我们的95%精度率感到骄傲—以及UX设计师和数字营销人员对我们的信任—我们仍然对剩余的5%着迷.
我们不断改进我们的注意力头,扩展我们的训练数据集以包含更多不同的文化背景,并调整我们的基础算法.
当你使用Lens Go时,你不仅仅是在使用一个静态工具. 你使用的系统是持续严格优化的产物. 我们处理神经网络的复杂性,这样你就可以简单地拖放和理解.
体验我们12层引擎的精度. 在 **https://lensgo.org/**亲自测试精度.