From the uDemy course on LLM engineering.
https://www.udemy.com/course/llm-engineering-master-ai-and-large-language-models
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
235 lines
9.3 KiB
235 lines
9.3 KiB
WEBVTT |
|
|
|
00:00.080 --> 00:05.510 |
|
初めてのエクササイズを紹介できることに興奮している。 |
|
|
|
00:05.510 --> 00:11.270 |
|
リマインダーとして、 PCを使用している場合はAnacondaプロンプトに、 ターミナルウィンドウを表示してください。 |
|
|
|
00:11.270 --> 00:15.110 |
|
もしあなたがマックを使っているなら、 プロジェクトのルート・ディレクトリに行くはずだ。 |
|
|
|
00:15.140 --> 00:24.710 |
|
LMエンジニアリングは、 conda activate LMS、 もしくはvirtualenvを使用している場合はそれに相当するコマンドを実行してAnacondaを起動し、 |
|
|
|
00:24.710 --> 00:29.180 |
|
JupyterLabと入力してJupyterラボを呼び出した。 |
|
|
|
00:29.180 --> 00:33.590 |
|
左側のファイルブラウザで、 このように週が表示されるはずだ。 |
|
|
|
00:33.620 --> 00:38.240 |
|
あるいは、 すでに1週目のフォルダに入っている場合もあり、 その場合は次のように表示される。 |
|
|
|
00:38.240 --> 00:45.500 |
|
そして、 2日目のエクササイズ・ノートを見てほしい。 |
|
|
|
00:45.500 --> 00:47.840 |
|
そして、 これがその計画だ。 |
|
|
|
00:47.840 --> 00:53.240 |
|
これからやるのは、 コードからラマを呼び出す方法だ。 |
|
|
|
00:53.240 --> 00:59.060 |
|
Pythonのコードを使って、 あなたのコンピューターで動いているラマ・モデルを呼び出します。 |
|
|
|
00:59.060 --> 01:02.320 |
|
そして、 これから何をするかというと、 最初にそれをセットアップするんだ。 |
|
|
|
01:02.320 --> 01:05.170 |
|
だから、 それをうまく使って、 結果を目にすることができるだろう。 |
|
|
|
01:05.170 --> 01:18.370 |
|
そして、 昨日完了した要約プロジェクトを更新し、 OpenAIへの呼び出しの代わりに、 Olamaを使用してローカルモデルを使用する練習をしていただきます。 |
|
|
|
01:18.370 --> 01:23.260 |
|
そして、 もしあなたがOpenAI APIにサインアップしていないのであれば、 これは初めてのチャンスだ。 |
|
|
|
01:23.740 --> 01:30.550 |
|
それで、 まず最初に、 ラマを使うことを説明します。 |
|
|
|
01:30.580 --> 01:34.300 |
|
ラマを使うメリットは、 もちろんAPI料金がかからないことだ。 |
|
|
|
01:34.300 --> 01:35.110 |
|
オープンソースだ。 |
|
|
|
01:35.110 --> 01:36.190 |
|
あなたのボックスで動いている。 |
|
|
|
01:36.190 --> 01:37.300 |
|
無料だ。 |
|
|
|
01:37.330 --> 01:41.080 |
|
もうひとつの利点は、 データがあなたの箱から出ることがないことだ。 |
|
|
|
01:41.080 --> 01:46.030 |
|
だから、 クラウドに絶対に出してはいけない機密データであろうと、 何かに取り組んでいるのであれば、 |
|
|
|
01:46.030 --> 01:54.280 |
|
もちろん、 データをインターネットから出さずにローカルで作業するテクニックが得られる。 |
|
|
|
01:54.490 --> 02:06.950 |
|
デメリットは、 明らかにフロンティア・モデルは、 オープンソース・モデルよりも何倍も何十倍も大きく、 強力だということだ。 |
|
|
|
02:06.950 --> 02:10.730 |
|
だから、 結果はそれほど強くないと予想すべきだ。 |
|
|
|
02:10.880 --> 02:16.970 |
|
でもね、 その分、 通話料がかかるんだ。 |
|
|
|
02:17.660 --> 02:22.400 |
|
まず最初に、 OlamaにアクセスしてOlamaをインストール済みであることを願う。 |
|
|
|
02:22.400 --> 02:27.260 |
|
ダウンロードボタンを押すだけで、 レースが始まるのだ。 |
|
|
|
02:27.260 --> 02:37.670 |
|
そうすれば、 このリンク(localhost 11434)にアクセスすると、 Olamaが実行中であることを示すメッセージが表示されるはずだ。 |
|
|
|
02:37.670 --> 02:46.910 |
|
もし表示されない場合は、 ターミナルかPowerShellを立ち上げ、 Olama serveと入力すれば実行されるはずだ。 |
|
|
|
02:46.910 --> 02:50.750 |
|
そしてそこに行けば、 またラマが走っているのを見るはずだ。 |
|
|
|
02:50.750 --> 02:55.910 |
|
もしそうならなかったら、 デバッグとリサーチを少しやってみて、 それから僕に連絡してくれれば、 |
|
|
|
02:55.910 --> 02:58.240 |
|
力になるよ。 |
|
|
|
02:58.240 --> 03:00.550 |
|
だから、 いくつか輸入するつもりだ。 |
|
|
|
03:00.580 --> 03:02.620 |
|
これからいくつかの定数を設定する。 |
|
|
|
03:02.620 --> 03:14.860 |
|
これは僕のローカル・ボックスのURLで、 このポートはスラッシュAPIスラッシュ・チャットで動作するポートだ。 |
|
|
|
03:14.860 --> 03:19.180 |
|
リャマ3となるモデルという定数も持つつもりだ。 2. |
|
|
|
03:20.170 --> 03:29.800 |
|
さて、 このメッセージだが、 うまくいけばこの構成がわかるだろう。 |
|
|
|
03:29.830 --> 03:31.420 |
|
もう少し違う言い方をしよう。 |
|
|
|
03:31.420 --> 03:36.610 |
|
これは前に話したメッセージと同じだ。 |
|
|
|
03:36.640 --> 03:39.730 |
|
OpenAIで使っているものだ。 |
|
|
|
03:39.760 --> 03:43.750 |
|
メッセージは辞書のリストである。 |
|
|
|
03:43.750 --> 03:53.170 |
|
各ディクショナリは、 roleをキーとし、 値はユーザーまたはシステムであり、 contentをキーとし、 値はユーザーメッセージまたはシステムメッセージである。 |
|
|
|
03:53.170 --> 04:00.940 |
|
つまり、 非常に簡単に言えば、 「ジェネレーティブAIのビジネス・アプリケーションをいくつか説明してください」というユーザー・プロンプトが欲しいということだ。 |
|
|
|
04:01.180 --> 04:02.290 |
|
それを実行しよう。 |
|
|
|
04:02.470 --> 04:11.080 |
|
ペイロードと呼ばれるJSONオブジェクトに、 モデルやメッセージを指定する。 |
|
|
|
04:11.080 --> 04:12.910 |
|
結果を取り戻したいだけなんだ。 |
|
|
|
04:13.150 --> 04:23.680 |
|
そして、 Pythonパッケージのrequestsを使って、 このURLにJSONでリクエストをポストします。 |
|
|
|
04:23.680 --> 04:33.850 |
|
そして、 戻ってきたJSONをメッセージ・コンテンツ・フィールドで見てみる。 |
|
|
|
04:33.850 --> 04:39.610 |
|
だから今はもちろん、 僕のボックスから僕のボックスへローカルにウェブリクエストをしている。 |
|
|
|
04:39.880 --> 04:46.390 |
|
そして、 リャマ3とつながっている。 2 llamaがサーブしているモデル。 |
|
|
|
04:46.390 --> 04:48.070 |
|
その結果がこれだ。 |
|
|
|
04:48.070 --> 04:50.860 |
|
そして、 その答えが実に良いものであることをお伝えしたい。 |
|
|
|
04:50.890 --> 04:56.720 |
|
だから、 私たちは商業的な応用について学ぼうとしているのだから、 その回答のいくつかに目を通して、 |
|
|
|
04:56.720 --> 05:00.890 |
|
何か興味のあるものがあるかどうか確認しても損はないだろう。 |
|
|
|
05:01.160 --> 05:05.330 |
|
さて、 ここでお見せしたかったのは、 その裏側で何が起こっているのかを正確に説明したかったからで、 |
|
|
|
05:05.330 --> 05:10.970 |
|
基本的にはこれらのURL、 つまりローカル・ボックスへのウェブ・リクエストを行っているのだ。 |
|
|
|
05:11.270 --> 05:17.960 |
|
しかし実は、 Allamaの親切な人たちがPythonのパッケージを作ってくれていて、 これを使えばもっと簡単だ。 |
|
|
|
05:17.960 --> 05:19.430 |
|
だから、 これを1行で済ませることができる。 |
|
|
|
05:19.430 --> 05:27.410 |
|
だから、 ここから始めてもよかったのだが、 ウェブリクエストを作る手順をお見せすることで、 実際に何が起こっているのかを直感的に理解していただきたかった。 |
|
|
|
05:27.470 --> 05:33.890 |
|
しかし、 Allamaという素晴らしいパッケージがあり、 それをインポートすれば、 Allama dot |
|
|
|
05:33.890 --> 05:40.640 |
|
chatと言って、 モデルを渡し、 メッセージを渡し、 レスポンスの内容を受け取ることができる。 |
|
|
|
05:40.640 --> 05:46.700 |
|
それを実行すれば、 基本的に同じものが得られることが期待できる。 |
|
|
|
05:46.760 --> 05:48.620 |
|
そして、 これだ。 |
|
|
|
05:48.650 --> 05:49.640 |
|
あれだ。 |
|
|
|
05:50.060 --> 05:56.970 |
|
ああ、 想像するに、 彼らとの間に違いがあるのはもうわかるよ。 |
|
|
|
05:57.000 --> 05:59.070 |
|
もちろん、 その都度多少の違いはある。 |
|
|
|
05:59.160 --> 06:01.650 |
|
ええと、 これはもっと長いレスのようだ。 |
|
|
|
06:01.860 --> 06:05.310 |
|
よし、 これで私のティーアップは終わりだ。 |
|
|
|
06:05.310 --> 06:06.840 |
|
あとは君の出番だ。 |
|
|
|
06:06.840 --> 06:18.390 |
|
初日に、 ウェブサイトを要約するソリューションを構築し、 それを実現するためにOpenAIに呼びかけたことを覚えているだろう。 |
|
|
|
06:18.840 --> 06:23.550 |
|
実際、 ここにOpenAIへの呼びかけがある。 |
|
|
|
06:23.760 --> 06:32.430 |
|
あなたへの挑戦は、 この2日目の練習ラボを続けて、 同じサマライザーのコードを追加し、 あなたの地元のウラマのオープンソースモデル、 |
|
|
|
06:32.430 --> 06:45.000 |
|
llama 3を使用したウェブサイト、 サマライザーを構築できるようにすることだ。 |
|
|
|
06:45.000 --> 06:45.000 |
|
2または別のモデルで要約を行いたい場合。 |
|
|
|
06:45.000 --> 06:46.650 |
|
それが練習だ。 |
|
|
|
06:46.650 --> 06:50.220 |
|
解決策はソリューション・フォルダーにあります。 |
|
|
|
06:50.220 --> 06:55.290 |
|
でも、 このビデオは完成したと思うし、 完成したらまた次のビデオで会おう。
|
|
|