通常注文
指示した条件
架空銘柄0001を東証で現物買い。200株、指値1234.5円、当日中、条件なし。SOR・ポイントを使わない。
別の読み取りで入力値を確認
- 銘柄・取引
- 0001 / 東証 / 現物買い
- 数量
- 200株
- 指値
- 1234.5円
- 有効期間・条件
- 当日中 / 条件なし
- SOR・ポイント
- 使わない
画面操作の研究
AIに注文画面の操作を教え、小さくして動かす
記録:2026年10月15日(モデル評価は10月13〜14日)
Clefに注文画面の操作を学習させ、軽量化しました。模擬画面で、指示した注文条件を入力するまでを確かめました。
注文条件と画面の情報をAIに渡します。Clefが操作候補を判定し、操作用のアプリが入力します。そのつど画面を読み直し、入力値を確かめます。入力後は、パスワードを入れる前に人へ引き継ぎます。
学習にはブラウザー画面の記録を使いました。文章を扱う部分にLoRAを適用し、画像を読む部分と操作を判定する部分は固定しました。ClefとJev-Omniは、それぞれ学習・軽量化しました。
ML Foundryへ移設した「注文フォーム学習データ v3」の学習用データから5件を抜粋しました。注文条件・現在の画面・操作候補と、学習用の教師ラベルを並べています。
すべて架空の注文条件と模擬画面を使った合成データです。 掲載画像は証券会社名を白く塗りつぶしています。データセット名は掲載用の別名です。 order-forms-v3 / train
教師ラベル · option_00
数量に「100」を入力する
{
"kind": "SET",
"field": "input_quantity",
"value": "100",
"tab": "normal"
}出典レコード: sbi-train-normal_limit-57afea5d1dee-step-04
教師ラベル · option_02
OCOの訂正条件価格に「1220」を入力する
{
"kind": "SET",
"field": "oco2_input_trigger_price",
"value": "1220",
"tab": "oco"
}出典レコード: sbi-train-oco-9707d3b94b9d-step-08
教師ラベル · option_03
IFDの売却価格に「1250」を入力する
{
"kind": "SET",
"field": "done_input_price",
"value": "1250",
"tab": "ifd"
}出典レコード: sbi-train-ifd-7b0094b34c69-step-12
教師ラベル · option_02
人へ引き継ぐ
{
"kind": "HANDOFF",
"field": null,
"value": null,
"tab": "ifdoco"
}出典レコード: sbi-train-ifdoco-1d6aa9d327b7-step-16
教師ラベル · option_00
入力を保留する
{
"kind": "NO_ACTION",
"field": null,
"value": null,
"tab": "normal"
}出典レコード: sbi-train-normal_limit-fba79fff7f57-step-00
現在の構成では、Webページの情報(DOM)と画像を入力に使います。正解を含む操作候補を用意した模擬画面で、337回の判断と30件の注文条件を評価しました。条件が有効なものは24件、不備があるものは6件です。
注文は指値、成行、逆指値、OCO、IFD、IFDOCOの6種類です。一つずつの判断と、操作を続けて入力を終える試験を分けて集計しました。
| Clefの状態 | 正解と一致した判断 | 全項目一致・人への引き継ぎ |
|---|---|---|
| 追加学習前(BF16) | 定量スコアなし | 定量スコアなし |
| 1回目の学習後(BF16) | 322/337(95.5%) | 16/24(66.7%) |
| 2回目の学習後(BF16) | 337/337(100%) | 24/24(100%) |
| 軽量化後(NVFP4) | 337/337(100%) | 24/24(100%) |
1回目は保存レコードの画面情報と画像、2回目と軽量化後はブラウザーDOMと画像で評価しています。学習と入力形式の両方を変えた比較です。追加学習前の定量スコアはありません。当時はDSHのセッションログで、途中停止など、うまく動かない挙動を確認していました。
軽量化後の構成では、不備のある6件は入力を保留しました。全30件の操作記録がそろい、停止位置を越える試行・実行はともに0件でした。
| 構成 | 重みの容量 | 元の容量に対する比率 |
|---|---|---|
| 2回目の学習後(BF16) | 54.97 GB | 100% |
| 軽量化後(NVFP4・混合精度) | 23.16 GB | 42.1% |
重みの容量を31.81 GB、57.9%削減しました。元の約42%の容量で、上記の模擬画面試験では判断337/337、全項目一致・人への引き継ぎ24/24を維持しました。
保存済みのテンソル情報から集計した容量です。モデル本体と最終判定ヘッドを含み、1 GB=10億バイトで表しています。
軽量化したClefの準備後、1件ずつ送った336回の問い合わせでは、待ち時間の中央値は0.978秒でした。95%は約1.227秒以内に返りました。
2回目の学習では、同じ操作例から「画面情報と画像」「画像中心」の2種類の入力を作り、学習の重みを50:50にしました。
軽量化後はMLPにNVFP4、attentionにFP8、画像の読取りと最終判定にBF16を使いました。配信方法で候補番号が異なるため、選んだ操作の内容で比べました。
DSHに注文条件を文章で渡し、模擬画面に入力させました。次の2例では、入力後に画面を別に読み取り、各項目が指示と一致することを確かめました。
入力した内容
指示した条件
架空銘柄0001を東証で現物買い。200株、指値1234.5円、当日中、条件なし。SOR・ポイントを使わない。
別の読み取りで入力値を確認
指示した条件
架空銘柄0004を現物売り。500株、指値3580円、3320円以下で3310円へ訂正。当日中、SORを使わない。
別の読み取りで入力値を確認
この操作確認は30回の判断、29回の入力でした。Clefへの画像付き問い合わせは59回でした。
依頼はQwen Flash Nextのlow設定、画面の判定はClef NVFP4が担当しました。ブラウザーとアプリの両方の操作経路で、同じBraveを使いました。
映像は、10月15日に収録した別の実行です。数量200が入力済みの時点から、指値価格・当日中・ポイント不使用の設定を映しています。価格条件欄は「選択」のままです。
ユーザー収録・35.8秒・無音・等速。画面と操作記録を上下に並べた抜粋です。
MP4を直接開くJev-Omni(BF16)に入力する文へ画面の用語説明を加えると、判断の一致は270/337から322/337に、入力完了と人への引き継ぎは2/24から18/24に増えました。別の18件の条件確認では、10/18から9/18でした。
軽量化は、改善前のモデルで別に比べました。337回の判断のうち、BF16は257回、NVFP4は250回が正解でした。変換したモデルは、保存後に読み直して動作を確認しました。
検証にはUTM上のmacOSを使っています。画面の役割・位置・現在値を画像と照らし合わせ、確認できた対象を操作します。
ブラウザー5件とアプリ5件を交互に操作する試験は、検証中です。
DSHとUTMを組み合わせた構成からCua Spacesも試し、画面情報の扱いや判断モデルとの接続を手元で調整しやすいUTMへ戻しました。
画面情報の取得に失敗したときもClefに診断を求めます。入力の許可は別に判定し、対象を確認できたときに操作を進めます。
Clefの判断と注文入力の評価を保存したデータです。