WEBVTT 00:00.560 --> 00:06.710 あなたがこのコースで頑張り、 大きく前進しているのは素晴らしいことだ。 00:06.710 --> 00:17.630 8週目の今日のトピックについて、 本当に重要な専門知識を構築する最後の数日間に入った。 00:17.660 --> 00:28.700 日目は、 引き続き強化し、 スキルアップを図り、 もうひとつスキルを身につける。 00:28.700 --> 00:30.620 だから今日は新しいものを見てみよう。 00:30.650 --> 00:41.000 構造化出力というのは、 実はかなり最近の革新的なもので、 フロンティアモデルに特定の仕様に従って反応させたいことを伝えることができる方法だ。 00:41.000 --> 00:42.500 だから、 今日はそうするつもりだ。 00:42.500 --> 00:48.950 また、 フロンティア・モデルを使ったワークエクスペリエンスをさらに行い、 00:48.950 --> 00:54.140 過去に行ったようなインターネット上でのスクラップを行い、 00:54.140 --> 01:01.040 フロンティア・モデルを使ってデータを統合する。 01:01.070 --> 01:04.220 私たちが昔、 サマライザーAを書いたのを覚えているだろう。 01:04.250 --> 01:07.610 インターネットのリーダーズ・ダイジェストが私たちの週だった。 01:07.610 --> 01:10.310 ある日、 即座に満足した。 01:10.460 --> 01:13.070 まあ、 我々はそれをさらに2段階ほど進めている。 01:13.400 --> 01:15.980 ええと、 それが今日のプランなんだ。 01:15.980 --> 01:21.740 そしてその多くは、 やはり修正と構築、 そして実験になるだろう。 01:21.980 --> 01:26.270 そこで、 構造化されたアウトプットについて少し言わせてほしい。 01:26.300 --> 01:27.590 つまり、 構造化されたアウトプットだ。 01:27.590 --> 01:30.710 過去にJSON生成を使っていたのを覚えているだろうか。 01:30.710 --> 01:35.960 モデルにJSONの出力フォーマットで応答させたいと言いました。 01:35.960 --> 01:40.070 そして、 プロンプトの中で、 そのJSONがどのように見えるべきかを正確に記述する。 01:40.070 --> 01:43.070 それに100%信頼できるものでもない。 01:43.100 --> 01:44.600 実際、 とてもいいんだ。 01:44.600 --> 01:50.270 JSONで応答することが多いんだ。 01:50.540 --> 01:55.580 しかし、 それがおかしくなり始めるのは、 01:55.610 --> 02:03.680 本当に複雑なオブジェクトに反応させる必要がある場合だ。 02:03.680 --> 02:11.490 つまり、 構造化出力のアイデアは、 モデルがどのように反応すべきかを正確に指定することをより指示的にすることだった。 02:11.490 --> 02:19.500 Pythonのクラスを使ってレスポンスを定義するのですが、 実はこのクラスはPydanticのbase 02:19.500 --> 02:28.800 modelというもののサブクラスになります。 02:28.800 --> 02:30.240 そうでなければ、 お見せしましょう。 02:30.510 --> 02:36.990 ベースモデルのサブクラスを作り、 そのサブクラスを使って、 探しているものを正確に記述するんだ。 02:37.110 --> 02:47.970 そして、 OpenAIを呼び出すときにそのクラスを指定すると、 OpenAIはそのクラスのインスタンスを作成してあなたに送り返します。 02:48.480 --> 02:55.980 つまり、 必要な構造のデータを正確に生成するのに便利なんだ。 02:56.010 --> 03:05.580 これは、 別のアプローチと比較する必要がある。 03:05.760 --> 03:11.980 この2つは、 モデルからの反応に特定の、 ええと、 ええと、 構造のタイプが戻ってくるようにするための、 03:11.980 --> 03:16.840 よく似たテクニックなんだ。 03:16.840 --> 03:19.060 そして、 そのどちらにも長所と短所がある。 03:19.390 --> 03:26.020 一般的に言えば、 モデルをアプリケーションコードに直接接続し、 特定のメソッドシグネチャを持つ必要がある関数を呼び出すのであれば、 03:26.020 --> 03:35.980 関数呼び出しとツールを使うことをお勧めします。 03:35.980 --> 03:41.800 なぜなら、 関数を呼び出すための適切なパラメータを定義したJSON構造に従って、 03:41.800 --> 03:46.390 絶対に応答してくれるからだ。 03:46.420 --> 03:53.140 もし、 下流で使用するために特定のフォーマットでデータを生成しようとするのであれば、 03:53.140 --> 03:56.860 構造化されたアウトプットが適している。 03:56.980 --> 04:01.900 長所と短所を挙げればきりがないし、 しばらく試してみて、 04:01.930 --> 04:07.060 どちらが優れているかがわかるようになるものだ。 04:07.150 --> 04:10.480 それではJupyterLabに向かいましょう。 04:10.480 --> 04:12.700 自分たちで試してみるつもりだ。