OpenAIの最新モデルo1がリリース!~高度な推論がササヤク未来~
OpenAIから新しいLLMのOpenAI-o1というのが出ましたね。
https://openai.com/index/introducing-openai-o1-preview/
GPT4からGPT4oへは、応答速度の向上や言語面の強化に加えて音声や画像に対応したマルチモーダル化でした。
今回のGPT4oからOpenAI o1へはこれまで弱いといわれていた数学等の推論部分が強化されたそうです。
課金ユーザはすでに利用できるのですが、週30回程度までの利用回数なんですよね。
色々触ってみようかなと思ったんですが、回数制限つけられるとo1似合ったものを探さないとと考えてしまいます。
高度な推論といわれても、入力1回で回答させると考えると問題と必要な情報をセットで用意しないといけないと身構えちゃいますよね。
試される出題者という感じですが、とりえあえず、以下のような問題与えてGPT4oとOPENAI o1-previewでの差分を見てみることに。
まずはGPT4o
以下は、指定された条件に基づいてCisco IOS-XR 7.10でSRv6をNCS 5500に設定するためのコンフィグ例です。この設定は、ISISを使ったSRv6の基本的な設定、TI-LFAのNodeプロテクション、microloop avoidance、Locator、Loopback、L3VPN用のEND.DT4の設定を含んでいます。
SRv6 設定
1. 基本設定
まず、SRv6機能とLocatorを設定します。
shell
コードをコピーする
ipv6 unicast-routing
segment-routing
ipv6
locator loc1 prefix <your-locator-prefix>/64
!
<your-locator-prefix>/64:ユニークローカルアドレスのプレフィックスを指定します。
2. Loopbackインターフェイス設定
次に、指定されたユニークローカルアドレスの中からLoopbackインターフェイスにアドレスを割り当てます。
shell
コードをコピーする
interface Loopback0
ipv6 address <your-loopback-ipv6-address>/128
!
<your-loopback-ipv6-address>/128:Locatorの範囲内でユニークなアドレスを指定します。
3. ISIS設定
ISISにSRv6の設定を追加します。
shell
コードをコピーする
router isis 1
net <your-isis-net>
address-family ipv6 unicast
segment-routing srv6
micro-loop avoidance timer 2
locator loc1
!
mpls ldp sync
!
topology ipv6 unicast
fast-reroute per-prefix tie-breaking enable
!
fast-reroute per-prefix level 2
segment-routing srv6
enable
protection node
!
exit
!
<your-isis-net>:ISISのネットワークエンティティタイトル(NET)を設定します。
4. TI-LFA設定
TI-LFA(Topology Independent Loop-Free Alternate)でNodeプロテクションを設定します。
shell
コードをコピーする
segment-routing
traffic-eng
fast-reroute per-prefix level 2
segment-routing srv6
enable
protection node
!
!
5. L3VPNとしてEND.DT4の設定
L3VPN用にEND.DT4を設定します。
shell
コードをコピーする
router bgp <your-bgp-as>
address-family ipv4 unicast
segment-routing srv6
locator loc1
!
exit
!
segment-routing
srv6
service
locator loc1
sid endpoint.dt4 4000:1::1 action end.dt4
!
!
<your-bgp-as>:BGPのAS番号を指定します。
sid endpoint.dt4 4000:1::1:END.DT4のSIDを指定します。
注意点
アドレスプレフィックスとAS番号はあなたの環境に合わせて設定してください。
他の関連する設定(例えば、インターフェイスの詳細なIP設定や他のルーティングプロトコルの設定)が必要な場合は、適宜追加してください。
これで、指定された条件に基づいたSRv6の設定が完了です。
続いてOpenAI o1-preview
思考時間: 26 秒
以下の設定で、IOS-XR 7.10 NCS 5500にSRv6を設定できます。
1. ユニークローカルアドレスの割り当て
ロケータとしてユニークローカルアドレスを任意にアサインします。ここでは例として fd00:0:0:1::/48 を使用します。
2. Loopbackインターフェースの設定
ユニークローカルアドレス内からLoopbackインターフェースにアドレスを設定します。
plaintext
コードをコピーする
interface Loopback0
ipv6 address fd00:0:0:1::1/128
3. SRv6のロケータの設定
plaintext
コードをコピーする
segment-routing
srv6
locator LOC1
prefix fd00:0:0:1::/48
!
4. ISISの設定
ISISプロセスの作成
microloop avoidanceを2秒に設定
TI-LFAとノードプロテクションの設定
plaintext
コードをコピーする
router isis 1
net 49.0001.0000.0000.0001.00
address-family ipv6 unicast
segment-routing srv6
locator LOC1
!
microloop avoidance delay 2000
mpls traffic-eng
fast-reroute per-prefix ti-lfa
node-protect
!
!
interface Loopback0
ipv6 router isis 1
address-family ipv6 unicast
passive
!
!
interface GigabitEthernet0/0/0/0
ipv6 address <インターフェースのIPv6アドレス>/64
ipv6 router isis 1
address-family ipv6 unicast
!
!
※<インターフェースのIPv6アドレス>は実際のアドレスに置き換えてください。
5. L3VPNの設定(END.DT4の利用)
plaintext
コードをコピーする
segment-routing
srv6
service
policy L3VPN_POLICY
encapsulation ipv4
action End.DT4
!
!
6. VRFとインターフェースの設定
plaintext
コードをコピーする
vrf CUSTOMER1
address-family ipv4 unicast
import route-target 100:1
export route-target 100:1
!
!
interface GigabitEthernet0/0/0/1
vrf CUSTOMER1
ipv4 address 10.0.1.1 255.255.255.0
ipv6 enable
7. VRFにEND.DT4ポリシーを適用
plaintext
コードをコピーする
segment-routing
srv6
vrf CUSTOMER1
address-family ipv4
policy L3VPN_POLICY
!
!
!
8. BGPの設定
VPNv4アドレスファミリーの有効化
VRF内での接続ルートの再分配
plaintext
コードをコピーする
router bgp 65000
address-family vpnv4 unicast
!
vrf CUSTOMER1
rd 65000:1
address-family ipv4 unicast
redistribute connected
!
!
以上の設定で、以下の条件を満たすSRv6環境が構築できます。
ISISを利用
microloop avoidanceは2秒
TI-LFAを設定してノードプロテクションを利用
ロケータはユニークローカルから任意でアサイン
Loopbackはアサインしたユニークローカルの中から利用
L3VPNとして、END.DT4を利用
まず、一番の違いはo1モデルは「思考時間」が増えたんですよね。
o1モデルの頭には思考時間26秒とかいてありますが、26秒思考した後に回答がされてました。
まずは対応方法を自身で検討してステップかしています。
そして、回答内容でつじつまを合わせないといけないところ、例えば自分でアサインしたユニークローカルアドレスの中からMP-BGP構成する際のLoopbackアドレスを選出等をやってたりしているようです。
実際の思考の中身は以下のようでした。
** SRv6の設定を検討中**
SRv6の構成をIOS-XR 7.10 NCS 5500で行うための詳細な要求事項を理解し、設定を提供する。
SRv6の設定を進めるために、ISISを使ってマイクロループ回避を2秒に設定し、ノード保護付きのTI-LFAを設定し、ユニークローカルアドレスからロケータを任意に割り当て、アサインされたユニークローカルアドレスをループバックに使用し、L3VPNにはEND.DT4を使用する。
ステップごとの計画立て
SRv6の設定を進めるために、ISPリンクのポリシーを作成して、縦方向のL2VPNでターミナルを制御し、各ターミナルをプライベートアップリンクに接続し、上位のルーターを集約L3ターミナルに接続し、直列化された連携を設定中。
デバイスの設定を進める
ルータIDをLoopback0として、ULAアドレスを割り当て、ISISを有効にしSRv6を設定してロケーターを作成し、NETアドレスを設定し、アドレスファミリーIPv6ユニキャストを配置する。
セグメントルーティングの設定を理解中
セグメントルーティングの設定を確認し、CUST1というVRFを設定中。BGPのVPNv4とVPNv6アドレスファミリーズも有効にしている。isaisの再分配やSRv6サービスの設定も進めている。
マッピングと設定
IOS-XRでは、END.DT4関数が自動的にマッピングされることが一般的です。SRv6ポリシーを設定する必要がある場合、ループバックをULAプレフィックスから割り当て、ロケーターをULAプレフィックスで設定し、SRv6を有効にしてISISを構成し、マイクロループ回避を2秒に設定し、ノード保護でTI-LFAを有効にし、L3VPNのEND.DT4関数を構成します。
ループバックインターフェース設定
ループバックインターフェースにfd00:0:0:1::1/128の住所を設定中。
SRv6ロケーター設定
fd00:0:0:1::/48を使用してSRv6ロケーターを配置。
設定とルーティングの準備
ISISのSRv6、マイクロループ回避、TI-LFAをセットアップし、L3VPNのEND.DT4機能を構成中。
ユニークローカルアドレスの選定
ユニークローカルアドレスをfd00:0:0:1::/48に指定し、Loopbackインターフェースにfd00:0:0:1::1/128を設定中。
高度な推論というのは、自分で対応方法を考えて、各ステップごとに実際対応する内容を書き出すようなものらしいですね。
GPT4oまではプロンプトでステップバイステップで考えてとか、まずは対応内容を列挙して詳細を考えてとかを指示していました。
しかしながら、o1からはこれがいらなくなりそうです。
※o1だと上記のようなプロンプトも入れない方がいいらしい
もちろん回答内容は間違いだらけだったりはしますが、単純に正しいデータの学習ができてないだけですよね。
ということは後は正しいデータによる訓練とプロンプト次第でちょろっと○○やって~ってやれば正しい回答出せるようなチューニングもできそうですよね。
機械の恐ろしい所は、1度覚えると二度と間違えないことなんですよね。
もちろん学習させるまではめちゃくちゃ時間がかかりますが、1度覚えた後が凄いんですよね。
これの例が以下のペッパー君なんですよ。
ペッパー君がけん玉を成功させるまでの動画なんですが、この学習過程が凄い。
ペッパー君が何度も何度もけん玉失敗する動画で、99回まで失敗して100回ちょうどに成功するんですよね。
その後が驚異的なんですが、すべて成功・・・一度学習して正解を見つけると機械はミスをしないんです。
ペッパー君動画自体は8年も前なんですが、凄いですよね。
いやいや、学習って時間かかるんでしょ?
ペッパー君の補助めちゃ大変そうじゃんこれと思っちゃいますが、学習は物理だけでなくてシュミレーションでもできる模様・・・
それが以下の千葉工大でやってる研究から見られるんです。
このロボット・・・なんとシュミレーション環境で4000台近くの仮想ロボットからナレッジを引き継いできた奴らしいんですよね。
初めはぎこちない動きだなぁと思ってたんですが、階段や段差も問題なく登れるし、けり倒されても自動で起き上がる。
私はやばいでしょこれ・・・と思っちゃいましたw
まあ、これは・・・救助とか補助ロボットとして使えるかもだけど、まだ自分の近くには来ないだろうなぁと思っちゃったかもしれません。
そんなあなたにはこれをどうぞ・・・w
かなり難しいだろうなぁと思ってた料理とかも学習するAIロボットも研究されてるそうです。
おそらくは飲食店毎にカスタマイズ必要にはなるんでしょうけど、こいつ訓練したら料理全部任せていいじゃんになっちゃいますよね。
AIやロボットなんてまだ先じゃん~と思ってましたが、こういうのが出てくると10年後には現実になってそうだなぁと思っちゃいました。
とはいえ、機械は100%ミスしませんが人間はミスをするものですよね。
人間の学習過程から生まれたものだとミスをするのは当然なので、これの使い分け必要じゃないのかなぁと思います。
しばらくは100%成功したければコードを書いてなのか、それとも前提条件をぴったり合わせてAIを使ってなのかが必要なのかなと思う今日この頃でした。
ここから先は
Segment Routing
このマガジンは主にSegment Routingについて書いています。 Segment Routingがよく分からんけど仕事で使うという…
この記事が気に入ったらチップで応援してみませんか?