AI製品に共通するモデル選択の課題と限界について
本文の状態
日本語全文を表示中
詳細モードで約13分の本文を読めます。
同じ出来事の情報源
この情報源を基点に整理
TLDR AI
Lovable はモデル選択をユーザーに任せる従来のアプローチではなく、各モデルの特性を深く理解して最適化を行う「モデル非依存」戦略を採用し、制御プレーンこそが製品の核心であると主張している。
Continue in AI NEW LAB
このニュースを、実務の判断につなげる
AI NEW LABで、試したことや先に確認したい条件を共有できます。まずはログインなしで読めます。
AI NEW LABで論点を見るAI深層分析を開く2026年8月13日 22:30
AI深層分析
キーポイント
モデル非依存とモデル無関心の違い
単にインターフェースを統一するモデル無関心ではなく、各モデルの得意・不得意を分析し、指示やツールを最適化する本質的な独立性を追求している。
制御プレーンが製品の核心
コード生成だけでなく、エラー発生時の回復経路選択やアーキテクチャ課題の検出など、実行プロセス全体を管理する制御プレーンこそが真の製品価値となる。
定量的評価によるモデル選定
タスク完了速度やターン数、スコアなどの具体的なベンチマークに基づき、状況に応じて最も強力なモデルを動的に選択する仕組みを採用している。
制御平面による動的なモデル管理
制御平面は作業の進行状況や難易度を監視し、単一のモデルに依存せず、タスクに応じて異なるモデルを割り当てる。各モデルにはその特性に合わせた指示やコンテキストを提供し、アプリケーションの改善度で評価する。
中盤でのモデル切り替えは慎重に行う
プロジェクトの履歴や文脈を失うリスクがあるため、モデル変更はコストに見合う場合のみ行う必要がある。単に性能が高いからといって切り替えるのではなく、失敗の原因に応じてコンテキストやプラン、ツール、あるいはモデル自体を変更して回復を図る。
重要な引用
Model indifference means putting every model behind the same interface, giving it the same instructions, and swapping one name for another.
Real model independence means learning how each model works best.
The control plane watches the work as it unfolds.
This isn't model roulette. We do not send the same prompt through five models and pick our favorite response.
編集コメントを表示
編集コメント
モデルの性能比較が常に変化する中で、ユーザー体験を向上させる鍵は「どのモデルを使うか」ではなく「いかに制御するか」にあるという洞察は極めて示唆に富む。このアプローチは、AI エージェントの実用化において、単なるプロンプトエンジニアリングを超えたシステム設計の重要性を浮き彫りにしている。
Source Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。
AI プロダクトのほとんどを開けば、隅っこに同じようなドロップダウンメニューが見つかるはずです。作業に取りかかる前に、まずやらねばならないことがあります。モデルを選ぶのです。もしかすると、どれくらい深く思考させるかを決める必要があるかもしれません。
その選択は重要です。あるモデルは複雑なバグの追跡には優れていますが、デザインにおいてはなぜか苦手です。別のモデルは美しいインターフェースを作成できますが、長いビルドプロセスでは話が脱線してしまいます。そして新しいモデルが登場し、ランキングが入れ替わり、価格も変動します。
「どのモデルが一番か」と断言することは、フロンティアに王冠があることを前提しているようなものです。しかし実際にはそんなものはありません。アプリケーションの成否がモデル選択にかかっているなら、作業を始める前に正解を推測する必要などないはずです。
Lovable において、これが「モデル非依存」の意味するところです。私たちはモデルを互換性のある部品として扱いません。むしろ、各モデルについて深い見解を持っているからこそ、モデルに依存しないシステムを実現しています。
モデル非依存であって、モデル無関心ではない
モデル無関心とは、すべてのモデルを同じインターフェースの背後に隠し、同じ指示を与え、名前だけを入れ替えることを意味します。真のモデル非依存とは、各モデルが最も得意とする働き方を学ぶことです。
Lovable にはこの仕事に専念するチームがあります。各モデルに対して、その最大の強みに合わせて指示やツール、プロジェクトの文脈を調整します。どこでつまずくのか、例えば長いデバッグループの中か、バックエンドの設定中か、インターフェースの仕上げ時か、あるいは全く別の場所かを研究します。そして、完全なビルド全体を通じてセットアップを検証するのです。
ある評価では、最新モデルが前世代のモデルより 15% 早くタスクを完了し、必要なターン数を 40% 減らし、スコアも 2〜3% 向上しました。これらは実りある進歩であり、当時の新モデルをより優れた選択肢にしました。
Lovable 内でモデルがうまく動作するように多大な投資を行い、より良いものが登場した際にはすぐに切り替えることも可能です。ポータビリティ(移植性)があれば、異なるモデルの挙動に関する知見を無駄にすることなく、その自由を手に入れることができます。
コントロールプレーンこそが製品である
「アプリにお支払い機能を追加して」という一言は、一見すると単なる指示に見えます。しかし Lovable 内では、このリクエストによってアプリ構築エージェントが稼働します。このエージェントは、あなたの要求から始めて作業を進め、途中で見つかった問題に応じて対応し、動作する変更へと導きます。
エージェントには、ユーザーの意図を理解し、プロジェクトの関連部分を特定し、変更を計画し、コードを書き、アプリを実行して結果を確認することが求められます。何か不具合が起きた場合、適切な回復手順が常に明確とは限りません。システムは再試行すべきか、計画を変更すべきか、別のツールを使うべきか、推論能力の異なるモデルに切り替えるべきか、それともユーザーに質問を投げるべきでしょうか。
その答えは、構築プロセスの途中で明らかになる事象次第です。シンプルなリクエストからアーキテクチャ上の課題が浮き彫りになることもありますし、最初の試行で「モデルは目標を理解していたものの、特定のツールの使い方に苦戦した」ということが判明することもあります。
そのため、コントロールプレーンは作業が進行する様子を監視し、「何を目指しているか」「タスクの難易度がどう変化しているか」「エージェントは進捗を遂げているのか、それとも同じ場所をぐるぐると回っているのか」を確認します。これに基づき、コントロールプレーンはビルドの一部を異なるモデルに割り当て、単一のモデルがすべてを担う必要をなくします。
また、コントロールプレーンはモデルを取り巻くシステム自体も適応させます。ある評価実験では、あるモデルがすでにコンテキストに含まれているファイルを繰り返し読み込み、編集が成功した後も再度確認する挙動を示しました。そこで、私たちは指示を変更し、「コンテキストを信頼せよ」「編集結果を信頼せよ」「冗長なツール呼び出しはスキップせよ」と伝えました。さらに、ツールの種類や説明方法、モデルに提示するプロジェクトの文脈量、そして次のターン前に長いビルドをどう要約するかといった要素も調整可能です。
これはモデルをくじ引きのように選ぶ行為ではありません。同じプロンプトを 5 つのモデルに通して最も気に入った回答を選ぶわけではありません。各モデルには、そのモデルに最適な指示・ツール・文脈を与え、最終的にアプリケーションが改善されるかどうかを評価します。
独立性は絶え間ない切り替えを意味しない
ビルド中にモデルを頻繁に切り替えると、状況が悪化する可能性があります。なぜなら、長期間続くプロジェクトには蓄積された履歴があるからです。エージェントはファイルを探索し、さまざまなアプローチを試行し、エラーに直面し、何が重要かを学習しています。このプロセスにおいて、モデルはその一部に過ぎません。モデルを変更すると、その履歴を圧縮したり、キャッシュされた文脈を再構築する必要が生じることもあります。会話の詳細の一部は、要約としてのみ残されることになります。
つまり、モデル単体では優れていても、目の前のビルドには不適切な選択となる可能性があります。コントロールプレーンでは、期待される改善と、失われる文脈や繰り返す作業とのバランスを慎重に weigh する必要があります。目標は可能な限り頻繁にモデルを切り替えることではありません。切り替えが意味を持つためには、そのコストに見合う価値が必要です。そうでなければ、単にモデルの入れ替え(churn)を増やすだけになってしまいます。
モデルを切り替えるかどうかを決める第一歩は、システムがなぜ失敗したのかを理解することです。時には、アプリ構築エージェントが vent ツール を通じて直接問題を報告し、普段では見つけにくい課題を浮き彫りにしてくれます。
モデルプロバイダーが過負荷になっている場合、Lovable は次の呼び出しを同じモデルでも別のプロバイダーに送ることができます。これは可用性の問題を解決できますが、アプローチ自体が悪い場合は改善されません。文脈が間違っていたり、ツールの使い方が混乱していたり、モデルがタスクを誤解していたりする場合には、プロバイダーを変更してもキャッシュは失われるだけで、根本的な失敗には対処できません。ユーザーからのフィードバックを得て再試行する方が役立つ場合もあります。そうでない場合は、異なるモデルで別のアプローチを試す必要があります。
回復策は、失敗した要素(文脈、計画、ツール、あるいはモデル)そのものを変更すべきです。
アプリケーションこそがベンチマークである
モデルが印象的な回答を生成しても、最終的に壊れたアプリが残る可能性があります。実行不可能な説得力のあるコードを書いたり、完成したように見えるチェックアウトページを作成して却って間違ったデータを保存したりすることもあります。ベンチマーク上では素晴らしい結果に見えるかもしれませんが、ブラウザの中では全く別の話になるのです。
Lovable における最適化の単位は、完成したアプリケーションです。私たちはシステム全体のプロセスを重視します。システムが何を試みたか、どこで回復したか、ビルドにどれほどの時間がかかったか、コストはいくらか、そして最終的に作成されたアプリケーションがユーザーの要求に応えているかどうか——これらすべてに関心があります。
このアプローチは、「速さ」や「安さ」という概念の意味そのものを変えます。モデルが即座に回答しても、完了までに必要なラウンド数が 3 倍かかっていれば、全体としては遅いことになります。間違った方向へビルドを導いてしまうような呼び出しは、一見安価でも結果的に高コストになります。どんなに優れた計画であっても、それを動作するソフトウェアに変換できるシステムでなければ意味を持ちません。
パブリックなリーダーボードは有望なモデルを示唆してくれますが、Lovable 内部で実際にどのようなアプリを生成するかまでは教えてくれません。各候補モデルについては、独自のプロンプト、ツール、文脈、そしてエージェントループを用いて Lovable 内でテストします。一度の美しい結果が偶然によるものかもしれないため、すべてのビルドは複数回実行しています。性能の良いモデルは、最初はわずかな作業から始まり、継続的に成果を出し続ける場合にのみ、より多くの作業を任されます。
テスト自体も信頼を得る必要があります。人間の判断、LLM による評価、そして外部の証拠に基づいて予想されるモデルランキングとの間に一致があるかを検証します。これらのシグナルが矛盾する場合は、ビルド内容を精査してその理由を探ります。ある比較試験では、空っぽのビルドを上位にランク付けしていた評価基準を再調整し、ほぼ同じビルドに対して正反対の評価を与えていた別の基準を廃止したことがありました。
一貫してより良いアプリを生み出すモデルは、より多くの作業を任されるようになります。ただし、最終的な判断は人間が行います。
時には最適なモデルは自社のものである
プロンプトに段落を追加するだけでは、改善の限界がすぐに訪れます。例外は積み重なり、ある指示で一つの失敗を修正しても、モデルが別の部分から注意を逸らしてしまうだけです。結局のところ、プロンプトの編集ではもう効果が出なくなります。
頻繁に行われるタスクには、専門的なモデルを用意する方が理にかなっています。
そこで私たちは独自のモデルの訓練を開始しました。リクエストのルーティング、レスポンスの要約、コミットメッセージの作成など、明確な役割を与えられたタスクを通じて、モデルをどのように訓練し、評価し、リリースするかを学ぶことができました。
現在、私たちが訓練したモデルは、本番環境におけるアプリ構築作業の有意な割合を担っています。次世代のモデルでは、より困難な問題に取り組み、各ビルドで処理する範囲を広げる予定です。
私たちのモデルも、外部モデルと同じ制御プレーンを経由します。もし外部モデルが特定のタスクでより優れた性能を示せば、私たちのモデルと置き換えることも可能です。自社で訓練したモデルであっても、トラフィックを獲得するには実力が必要です。私たちが目指しているのは、Lovable が最もよく理解する業務において世界最高のモデルを構築することです。
学んだことは次へ繋がる
どの企業でも最先端のモデルへのアクセスを購入することはできます。しかし重要なのは、その不安定で急速に変化する強みを、人々が信頼できるソフトウェアに変換するシステムを構築することです。すべての失敗が改善に役立ちます。それぞれの失敗は、プロンプト、ツール、コンテキスト、オーケストレーション、評価器、あるいはモデルのどこを変更すべきかを判断するためのテストとなります。ビルドを再実行し、得られた知見を制御プレーンにフィードバックします。
新しいモデルがリリースされた際、その学習成果は引き継がれます。Lovable は「何が良質か」を既に理解しているシステムに新モデルを通し、その能力がどこで活かせるかを即座に見極めます。
モデル開発企業は自社のモデルを改善できますが、Lovable はシステム全体を最適化します。
フロントエンド全体があなたのために動くべき
基盤モデルは常に進化し続けます。ただし、同じ課題に対して同じ速度で、あるいは誰かが予測した順序で向上するわけではありません。
推論能力や処理速度、反復作業の効率において他を圧倒するモデルが登場すれば、Lovable はその強みを最大限に発揮できる場へ即座に配置すべきです。逆に性能が後れを取れば、迷わず切り替えるべきでしょう。
「モデルピッカー」は行き止まりです。それはシステムが問題の本質について十分な情報を得る前に判断を凍結してしまうからです。Lovable は作業を常に見守り、その仕事に最適なモデルを選び取り、証拠が変われば即座に進路を変更します。
あなたが Lovable に何を構築したいか伝えるだけで十分です。技術の最前線はあなたの下で絶えず進化し続けます。私たちが担うべき役割は、その変化についていくこと。そうすれば、人々が愛するソフトウェアをあなたも作れるようになります。
原文を表示
Open almost any AI product and you will find the same dropdown in the corner. Before you can get anything done, you have a job: pick a model. Maybe decide how hard it should think too.
The choice matters. One model may be great at tracing a difficult bug and strangely bad at design. Another can make beautiful interfaces but lose the thread on a long build. Then a new model ships, the rankings move again, or prices change.
Calling one model “the best” assumes the frontier has a crown. It doesn’t. If choosing the model changes whether your application works, you should not have to guess correctly before the work even begins.
At Lovable, that is what model independence means. We don’t treat models as interchangeable. We are model-independent because we are deeply opinionated about them.
Model-independent, not model-indifferent
Model indifference means putting every model behind the same interface, giving it the same instructions, and swapping one name for another. Real model independence means learning how each model works best.
We have a team at Lovable dedicated to this work. For each model, they shape the instructions, tools, and project context around what it does best. They study where it gets stuck, whether that’s in a long debugging loop, while configuring the backend, while polishing the interface, or somewhere else entirely. Then they test the whole setup across complete builds.
In one of those evals, for example, a frontier model finished tasks 15% faster than its predecessor, took 40% fewer turns, and scored 2–3% higher. Those were meaningful gains and made the new model the stronger option at the time.
We can invest heavily in making a model work well inside Lovable and still move on when something better arrives. Portability gives us that freedom without throwing away what we’ve learned about how differently models behave.
The control plane is the product
“Add payments to my app” sounds like one instruction. Inside Lovable, that request sets an app-building agent in motion. The agent carries the build from your request to a working change and reacts to whatever it finds along the way.
It has to understand what you meant, find the relevant parts of the project, plan the change, write the code, run the app, and see whether it works. If something breaks, the right recovery path is not always obvious. Should the system retry, change the plan, use another tool, bring in a model that reasons differently, or ask you a question?
The answer depends on what the build uncovers along the way. A simple request may reveal an architectural issue. Or the first attempt may show that the model understood the goal but struggled with one of the tools.
That is why the control plane watches the work as it unfolds: what you are trying to do, how difficult the job has become, and whether the agent is making progress or starting to circle. The control plane can then assign different parts of the build to different models instead of asking one model to own the whole thing.
The control plane also adapts the system around the model. In one eval, a model kept re-reading files that were already in context and checking them again after successful edits. We gave it different instructions: trust the context, trust the edit result, and skip the redundant tool calls. We may also change the tools, how we explain them, how much project context the model sees, and how a long build gets summarized before the next turn.
This isn’t model roulette. We do not send the same prompt through five models and pick our favorite response. We give each model the instructions, tools, and context that fit it, then judge whether the app gets better.
Independence does not mean constant switching
Changing models mid-build can make things worse because a long-running project develops history. The agent has explored files, tried approaches, hit errors, and learned what matters. The model is only one part of that agent. When the model changes, we may have to compress that history and rebuild its cached context. Some details from the conversation may survive only as a summary.
That means a model might be better in isolation and still be the wrong choice for the build in front of it. Our control plane has to weigh the possible gain against the context we may lose and the work we may repeat. The goal is not to switch models as often as possible. A useful switch has to be worth the cost. Otherwise, we are just creating model churn.
Deciding whether to switch starts with knowing why the system failed. Sometimes the app-building agent tells us directly through a vent tool, surfacing problems that would otherwise be hard to see.
If a model provider is overloaded, Lovable can send the next call to the same model through another provider. That can fix an availability problem, but not a bad approach. If the context is wrong, a tool is confusing, or the model misunderstood the job, switching providers gives up the cache without addressing the failure. A retry with user feedback may help. Otherwise, a different model can try another approach.
Recovery should change the thing that failed, whether that is the context, plan, tool, or model.
The application is the benchmark
A model can produce an impressive answer and still leave you with a broken app. It can write convincing code that never runs or create a finished-looking checkout page that saves the wrong data. On a benchmark, the response may look excellent. In the browser, it may be another story.
So the unit of optimization at Lovable is the finished application. We care about the whole trajectory: what the system tried, where it recovered, how long the build took, what it cost, and whether the application at the end does what you asked.
That changes what “fast” and “cheap” mean. A model can respond quickly and still be slow if it takes three times as many rounds to finish. A cheap call gets expensive when it sends the build down the wrong path. Even a brilliant plan only matters if the system can turn it into working software.
Public leaderboards can point us toward promising models, but they cannot tell us whether those models will produce better apps inside Lovable. We test each candidate inside Lovable using our prompts, tools, context, and agent loop. We run every build more than once because one beautiful result can be luck. A model that performs well starts with a little work and gets more only if it keeps delivering.
The tests have to earn our trust too. We look for agreement between human judgment, our LLM judges, and the model rankings we would expect based on outside evidence. When those signals disagree, we inspect the builds and find out why. In one bake-off, that led us to recalibrate a judge that ranked a hollow build near the top and drop another that gave nearly identical builds opposite scores.
Models that consistently produce better apps earn more work, with human judgment as the final check.
Sometimes the right model is ours
There is a limit to how much improvement comes from adding another paragraph to a prompt. Exceptions pile up, and one instruction fixes a failure only to distract the model from something else. Eventually, another prompt edit stops helping. Some jobs happen often enough that a specialist makes more sense.
That is where we started training models of our own. Routing requests, summarizing responses, and writing commit messages gave us clearly defined jobs on which to learn how to train, evaluate, and ship models.
Now our post-trained models are handling a meaningful share of app-building work in production. We will be training the next ones to handle harder problems and more of each build.
Our own models still go through the same control plane as outside models. If an external model becomes better at a job, it can replace one of ours. Even models we train ourselves have to earn their traffic. Our ambition is to build the best models in the world for the work Lovable understands best.
What we learn carries forward
Any company can buy access to a frontier model. The hard part is building a system that can turn its uneven, fast-changing strengths into software people can depend on. Every failure helps improve it. Each one becomes a test that tells us whether the prompt, tool, context, orchestration, evaluator, or model needs to change. We rerun the build, then feed what we learn back into the control plane.
That learning carries forward when a new model is released. Lovable puts it through a system that already knows what good looks like and can find where its capabilities fit.
A model company can improve its model. Lovable can improve the whole system.
The whole frontier should work for you
Foundation models will keep getting better. They just will not get better at the same things, at the same speed, or in the order anyone predicts.
When a model leaps ahead at reasoning, speed, or a repeated task, Lovable should put it to work where it helps. When it falls behind, Lovable should move on.
The model picker is a dead end because it freezes the decision before the system has enough information about the problem. Lovable should keep watching the work, use the model the job calls for, and change course when the evidence changes.
You tell Lovable what you want to build. The frontier can keep moving underneath you. Our job is to keep up so you can build software people love.
関連記事
今日のまとめ
AIデイリーブリーフで今日の重要ニュースをまとめ読み