基盤モデル(の応用領域)について調べている
*浅い理解でざっと調べている状態なので間違いがあるかも
基盤モデルとは
基盤モデルとは 「大量で多様なデータを用いて訓練され, 様々なタスクに適応(ファインチューニングなど)できる大規模モデル」 のこと
つまりChatGPTは基盤モデルの一種。
www.slideshare.net
- 元々、翻訳機能のために開発されたtransformerというモデルを利用している
- 基本的には、次に続く単語が生成される確率を推定する
- モデルの大きさと学習量を増やすと劇的に性能が向上した
- あまりにも人間らしいresponseが返ってくるため、汎用人工知能の実現可能性が検討され始めた
基盤モデルと自動運転
位置推定の自動運転
2008年の自動運転で(ほぼ)アメリカ横断が達成された時、そのキーとなった技術は機械学習ではない、LiDARというセンサーだ。
LiDAR+自己位置推定は悪くない。実際に私も実装してみたがサクッと動いた。ある程度想定された環境下なら極めて実用的だ。自己位置推定をLiDARなどで行って経路計画を立てて、もし前方に障害物があれば止まるなり回避ルートを計画すれば良い。
過去の自動運転では基盤モデルは使われていない。これは、運転というタスクがある程度限定的な操作で、位置推定の精度が高ければ動くから。
画像認識などで部分的に機械学習は利用されているものの、コアのアルゴリズムはルールベースの実装に近い。
このアプローチはAutowareなどのOSSとしてすでに実装が公開されている。
ただし、このアプローチで実現できるのはL4まで。より一般的な自動運転の実現には、トラブル時のコーナーケース対応などが必要で、位置推定を中心としたロジックでは実現が難しい。
基盤モデルの自動運転
L4の自動運転はすでに実用段階だが、より柔軟な判断が要求されるL5の自動運転には、運転という操作に限定されない汎用的な知能に近いものが必要 -> それにLLMが使えるのでは
自動運転における基盤モデルの活用に関して以下のアプローチがある
- LM-Nav : 基盤モデルと複数のモデルを組み合わせてナビを実現する
- PaLM-SayCan : 基盤モデルが指示を具体的なタスクに落とし込んで順次実行していく
- 運転データのファインチューニング : 運転データをLLMに覚えさせる
End-to-Endの自動運転学習
Teslaは、自動運転に対してもend-to-endの機械学習で自動運転専用の基盤モデルの作成を試みたが、今のところあまりうまくいっていないように見える。(詳細はあんまりわからない)
基盤モデルとロボティクス
“is training a large neural network on a very large dataset a feasible way to solve robotics?”
大きなneural networkで非常に大きなデータセットを学習することでロボット工学を解くことは可能なのか?ロボット工学では、さまざまなタスクをよしなに実行してくれる汎用的なロボットの実現は聖杯とされていたが、近年のLLMの性能により、実現可能性が出てきた。それについてのさまざまな意見のまとめ。
賛成意見
- コンピュータビジョンと自然言語処理で可能なことはロボティクスでも有効なはず
- すでにある程度の実績が出ている -> GoogleのRT-XとRT-2は、一定の成功を収めている
- 基盤モデルは、乗るべき波
- ロボットが行うべきタスクは比較的限られているため、大規模なモデルのトレーニングが有効
- 出力可能なデータより、頻繁に出現するデータの空間が狭い場合、一般に機械学習は有効だと考えられる
- 基盤モデルでロボット工学に「常識」を導入できる可能性がある
- ロボットのタスクのコーナーケースはあまりにも広いため、「常識」的な推論が有効だと思われる
反対(そもそもできないのでは?という意見)
- そもそもロボット用のデータが少ない
- ロボットの形はさまざまなので、データがたくさんあっても学習が難しい
- さまざまなシチュエーションでロボットを活用させる必要がある
- ロボットデータセットの学習にどれだけのコストがかかるかわからない
反対(できたとしても・・・・という意見)
- 99.X問題とロングテール:コーナーケースが広すぎるロングテールなので、高い成功率を実現するためには、現実的ではない学習コストが必要になる
- 既存のLLMなどの基盤モデルもその水準には達していない
- 自動運転では基盤モデルはまだ十分な成果を出していない(機械学習ベースのL5の自動運転はまだ達成されていない)
- 機械学習は非常に大きなデータを正確に出力するのが苦手
- 特にロボットでは誤差の積み重ねを補正する必要があるので難易度が高い
RT-1, RT-2, RT-X
robotics-transformer2.github.io
Scaling up learning across many different robot types - Google DeepMind
RT-1
RT-1の論文が長くて、一旦概要だけこちらで流し読み。
- RT-1は自然言語のtaskと画像をもとにbaseとarmの操作アクションを生成する
- RT-1は人間がリモート操作で収集したデータに自然言語のannotationをつけたものを使って教育された
- Transformerでtokenizeされた画像と指示を学習する
- PaLM-SayCanとRT-1を組み合わせることで、ロボットに抽象度の高い話指示を出してtaskの系列を実行してもらうことができる
RT-2
あまり機械学習の詳細を理解できていないので詳細はわからないが、他の基盤モデルをベースにロボットの操作情報をfine tuningした・・・・?
RT-X
RT-1とRT-2は、特定のロボットでデータを集めたが、RT-Xはいろんなロボットでデータを集めた。これによって性能が向上した。
まとめ
この領域でのアプローチは主に以下の3つ
- 他の基盤モデルとRT-1のような基盤モデルを組み合わせる
- 他の基盤モデルをfine tuningする(これはよくわかってない)
- end-to-endで新たな基盤モデルを作成する(これもよくわかってない、teslaがやろうとしたアプローチ・・・?)
また、機材毎のデータを増やすことで、機材の性能差を少なくすることができる
機械学習の過去の研究成果からすると、3 > 2 > 1になりそうだが、データ量の問題があるので3を現時点で実現するのは難しく、2が今のところ現実解?
3が実現できるだけのデータがあったとしても、精度という意味ではまだ十分なものが得られていない(CVやNLPなどの既存分野も同様)
と思って調べてたけど、これが一番詳しい感じがする