Create Your Own Microsoft Recall AI Feature with RAG?

All About AI
29 May 202418:40

Summary

TLDRこのビデオでは、Microsoftの議論の多いリコール機能にインスパイアされた独自のバージョンを作成するプロジェクトが紹介されています。開発者はローカルで実行する予定だったものの、性能が不安定だったため、クラウドベースのGPT 40を使用してプロトタイプを作成しました。プロジェクトは3つのフェーズに分けられており、記録、分析、使用がそれぞれ行われます。スクリーンショットを撮り、変化を監視し、分析フェーズでGPT 40を用いて情報を抽出します。最後に、RAGシステムを使ってユーザーが過去のスクリーンショットを検索できるようにします。コードの詳細と実際の動作を紹介し、Brilliant.orgという学習プラットフォームも紹介しています。

Takeaways

  • 🤖 プロジェクトのアイデアは、Microsoftの反論機能にインスパイアされたもので、独自バージョンの作成を目指しています。
  • 🚫 ローカルでの実行を計画していたものの、性能が不安定だったので、GPD 40を使わなければならなくなりました。
  • 🔄 プロジェクトは3つのフェーズに分けられています:記録、分析、使用(RAG)フェーズです。
  • 📸 レコードフェーズでは、スクリーンショットを撮って変化を監視し、5%のピクセルチェンジがあると新しいスクリーンショットを保存します。
  • 🧐 アナリゼフェーズでは、GPT 40を使ってスクリーンショットから情報を抽出し、アーカイブに保存します。
  • 🔍 RAGフェーズでは、保存されたアーカイブとスクリーンショットを使用して、特定のアクションやウェブサイトを検索することができます。
  • 💻 コードの解説では、GP 4モデルの強さと、ローカルでの実行が難しい理由について言及されています。
  • 🔗 RAGモデルを使用した検索デモンストレーションでは、過去のスクリーンショットと関連情報を特定の質問に応じて検索することができました。
  • 👨‍🏫 brilliant.orgがデータ分析や言語モデルの理解を深めるためのリソースとして紹介されています。
  • 🔗 GitHubのコミュニティへのリンクと、コードのアップロードが予定されていますが、プライバシーに関する注意も提示されています。
  • 🎉 プロジェクトは成功裏に動作し、将来的にはローカルで実行できるようになればと期待しています。

Q & A

  • ビデオで紹介されたプロジェクトの主な目的は何ですか?

    -ビデオでは、Microsoftのリコール機能にインスパイアされた独自のバージョンを作成するプロジェクトが紹介されています。これは、コンピュータ画面のスクリーンショットを撮り、それらを分析し、RAG(Retrieval-Augmented Generation)モデルを使って検索可能なアーカイブを作成することを目的としています。

  • プロジェクトをローカルで100%実現する予定だった理由は何ですか?

    -プロジェクトをローカルで実行することで、パフォーマンスの安定性とプライバシーの保護を図る予定でした。しかし、利用可能なモデルの性能が不十分で安定性がないため、クラウドベースのGPT-4.0を使うプロトタイプを作成することに変わりました。

  • プロジェクトの3つのフェーズとは何ですか?

    -プロジェクトは3つのフェーズに分けられています。1つ目は「記録フェーズ」でスクリーンショットを撮ることです。2つ目は「分析フェーズ」でスクリーンショットを分析し、ユーザーのアクションやURLを抽出します。3つ目は「RAGフェーズ」で、アーカイブされた情報を使用して検索機能を提供します。

  • スクリーンショットを撮る際にどのような条件を設けていますか?

    -スクリーンショットは、前回のスクリーンショットと5%以上のピクセルが変化したときにのみ撮影されます。これにより、同じ画面を何度も撮影するのを避け、効率的にスクリーンショットを管理しています。

  • GPT-4.0を使用する理由は何ですか?

    -GPT-4.0は、開発者が試した中で最も優れたモデルであり、スクリーンショットからユーザーのアクションやURLを抽出するタスクに非常に適しています。しかし、オープンソースの同等のモデルがあればローカルでの実行が実現可能になるため、将来的にはそのようなモデルを期待しています。

  • RAGモデルを使用する目的は何ですか?

    -RAGモデルは、検索可能なアーカイブを作成し、ユーザーが過去のアクションや特定のスクリーンショットを検索できるようにするためです。これにより、ユーザーは特定の日付やウェブサイトでのアクションを問い合わせることができ、それに関連するスクリーンショットを見つけることができます。

  • ビデオスポンサーであるbrilliant.orgはどのようなサービスを提供していますか?

    -brilliant.orgは、データ分析や大きな言語モデルのしくみなど、複雑な科目を魅力的で手を出すことができる体験に変えるオンライン学習プラットフォームです。レッスンはリアルの問題を解決することで効果的で楽しい学習体験を提供し、批判的思考スキルと学習習慣を育てることができます。

  • 開発者が使用したチャンキングとは何ですか?

    -チャンキングは、テキストを最大1000文字のチャンクに分割するプロセスです。これにより、RAGモデルで検索できるようにテキストが整理され、効率的に扱われます。

  • スクリーンショットの名前付けに使用されるGPT-4.0の機能とは何ですか?

    -GPT-4.0は、与えられた説明に基づいて短くて具体的で関連性の高いファイル名を生成する機能を使用しています。これにより、アーカイブされたスクリーンショットが効果的に検索でき、ユーザーが必要な情報を迅速に見つけることができます。

  • 開発者が行ったプロトタイプのデモンストレーションでは何を示しましたか?

    -開発者は、スクリーンショットがどのように自動的に撮影され、分析され、RAGモデルによって検索可能なアーカイブに保存されるかをデモンストレーションしました。また、実際にRAGを使用して過去のアクションやスクリーンショットを検索するデモンストレーションも行いました。

  • 今後のプロジェクトで何を計画していますか?

    -開発者は、今後も興味深いプロジェクトを計画しており、ローカルでの実行が可能になるより良いビジョンモデルを見つけるかもしれないと話していました。また、コミュニティGitHubにコードをアップロードし、チャンネルのメンバーシップを通じてアクセスを提供する予定です。

Outlines

00:00

🤖 自己のバージョンのMicrosoftリコール機能を作る

ビデオでは、Microsoftのリコール機能にインスパイアされたプロジェクトを紹介しており、ローカルで100%実行する予定だったがパフォーマンスが不安定だったため、GPD 40を使用してプロトタイプを作成することにしました。プロジェクトは記録、分析、使用の3つのフェーズに分けられており、スクリーンショットを撮り、変化が5%あった場合にのみ新しいスクリーンショットを保存する機能も実装されています。

05:04

🔍 スクリーンショットの分析とアーカイブ化

GPD 40を使ってスクリーンショットを分析し、ウェブサイトのURLやユーザーの操作などの情報を抽出しています。スクリーンショットは新しいフォルダに保存され、後で参照できるようにアーカイブ化されています。また、GPT 40を使ってカスタムのスクリーンショット名を生成し、後で検索できるようにしています。

10:06

📚 RAGを使用したシステムの実用化

RAG(Retrieval-Augmented Generation)モデルを使って、保存されたスクリーンショットとユーザーアクションを組み合わせて検索可能にしています。ローカルのAMA埋め込みモデルを使用して検索を行い、特定のアクションやウェブサイトに関する情報を特定の日にアクセスしたかどうかを検索することができます。

15:07

💻 コードの詳細とデモンストレーション

重要なコードの機能を説明しており、スクリーンショットを分析するプロンプトやチャンキング、RAGへの組み込み方法について詳述しています。また、スクリーンショットの比較や新しいスクリーンショットのトリガーに使用されるdiffパーセントの設定についても触れています。実際にスクリプトを実行し、ウェブサイトの閲覧やターミナルでの操作がどのように記録され検索可能になるかをデモンストレーションしています。

🔗 RAGでの検索と結果の確認

RAGを使用して新しい履歴を埋め込み、過去のスクリーンショットとユーザーアクションを検索する方法を紹介しています。特定のツイートやGitHubのポストに関するスクリーンショットを特定の質問に応じて見つけることができ、そのポストに関する詳細情報を確認できることをデモンストレーションしています。

🚀 プロジェクトの総括と今後の展望

ビデオの締めくくりとして、作成したプロトタイプの総括と今後の展望について話されています。ローカルで実行できるモデルがあれば100%ローカルで実行できるといいが、現在のGPD 40のモデルはプライバシーに関する懸念があるため、実際に使用するべきではないと指摘しています。しかし、将来的にはアップグレードされ、さらに興味深いものになる可能性があると期待しています。

Mindmap

Keywords

💡Microsoft recall feature

これはマイクロソフトが開発した機能で、ユーザーが過去のアクティビティを呼び出すことができます。ビデオでは、この機能にインスパイアされた独自のバージョンを作成することが目的とされています。ビデオのテーマは、ローカル環境で実行されることを目指していたが、性能の問題からクラウドベースのモデルであるGPT 40を使用することになりました。

💡GPT 40

GPT 40は、ビデオで使用されるクラウドベースの言語モデルです。ビデオでは、ローカルで実行する予定だったが、パフォーマンスの問題からプロトタイプとしてGPT 40を使用することになりました。GPT 40は、スクリーンショットを分析し、ユーザーのアクションやURLを抽出する上で非常に優れたパフォーマンスを発揮しています。

💡record phase

ビデオの中で説明されている3つのフェーズの1つで、コンピュータのスクリーンショットを撮影し、それらを分析し、RAGシステムに投入するプロセスです。ビデオでは、画面上のピクセルの変化を監視し、5%の変化がある場合にのみ新しいスクリーンショットを撮影する機能が実装されています。

💡analyze phase

ビデオで説明されている3つのフェーズの2つ目で、スクリーンショットを分析し、ユーザーのアクションや関連するURLを抽出するプロセスです。GPT 40を使用して、スクリーンショットから得られた情報をアーカイブに記録し、後で参照できるようにします。

💡RAG phase

ビデオで説明されている3つのフェーズの3つ目で、アーカイブされたユーザーアクションとスクリーンショットを使用して、検索と呼び出しを行うプロセスです。ローカルのAMA埋め込みモデルを使用して、検索空間を検索し、特定のアクションやウェブサイトに関する情報を特定のスクリーンショットと関連付けることができます。

💡AMA embeddings models

ビデオでは、ローカルで実行されるAMA埋め込みモデルを使用して、テキストデータを埋め込み空間に変換しています。これにより、RAGシステム内で効率的な検索が可能になります。ビデオでは、このモデルを使用してユーザーアクションのテキストを埋め込み、RAG空間を検索するのに使っています。

💡chunking

テキストを最大1000文字のチャンクに分割するプロセスで、RAGでの検索に使用されます。ビデオでは、スクリーンショットに関連するアクションをチャンク化し、RAGで検索できるようにしています。この方法により、特定のアクションやウェブサイトに関する情報を効率的に検索できます。

💡screenshot comparison

ビデオでは、新しいスクリーンショットを撮影するかどうかを決定するために、前のスクリーンショットと比較するプロセスを実装しています。ピクセルの5%の変化がある場合にのみ新しいスクリーンショットが撮影され、無駄なスクリーンショットの生成を避けることができます。

💡open CV2

ビデオでは、スクリーンショットの比較にOpenCV2ライブラリを使用しています。これは画像処理ライブラリで、ピクセルレベルでの画像の比較と分析を行うことができます。ビデオでは、OpenCV2を使用してスクリーンショット間の変化を測定し、新しいスクリーンショットを決定しています。

💡community GitHub

ビデオの最後に言及されているコミュニティGitHubは、プロジェクトのコードやリソースを共有するための場所です。ビデオでは、関心のある視聴者がコードにアクセスし、詳細を学ぶためにコミュニティGitHubに参加するよう呼びかけています。

Highlights

项目灵感来源于微软的召回功能,尝试创建自己的版本。

原计划完全本地化实现,但性能不稳定,因此放弃,转而使用GPT 40模型。

项目分为三个阶段:记录、分析和使用。

记录阶段通过屏幕截图并监测像素变化来避免重复截图。

分析阶段使用GPT 40模型提取屏幕截图中的用户交互、URL等信息。

存档功能允许用户回溯历史记录。

使用阶段通过本地AMA嵌入模型和llama 3搜索功能实现内容检索。

演示了如何通过搜索查询找到特定日期访问Discord的截图。

介绍了赞助商brilliant.org,提供数据分析和大型语言模型的课程。

代码演示了如何实现屏幕截图的分析和存档。

展示了如何使用GPT 40模型提取图像中的重要信息。

说明了如何将用户活动和截图信息分块并存档以供检索。

演示了如何通过比较像素变化来决定何时拍摄新截图。

展示了如何使用本地嵌入模型和搜索功能来实现召回功能。

讨论了代码的开源性和数据隐私问题。

提供了GitHub链接,供有兴趣的观众访问和学习。

展示了实际运行脚本并检索特定信息的过程。

讨论了召回功能的未来可能性和改进方向。

鼓励观众提供本地化解决方案,并考虑未来合作。

总结了项目的意义和对未来的展望。

Transcripts

play00:00

today's project is of course going to be

play00:01

heavily inspired by the kind of

play00:03

controversial Microsoft recall feature

play00:06

so I really want to see if we can create

play00:08

our own version of this my plan was to

play00:11

do this 100% locally but the wish wers

play00:14

just weren't good enough the performance

play00:16

was not stable so I had to kind of

play00:18

abandon that and just make a prototype

play00:21

using GPD 40 because that is kind of the

play00:24

far by the best wish model I have tried

play00:27

so far so yeah it's a bit shame but I

play00:30

wanted it to be locally but uh yeah that

play00:32

could be something for the future so let

play00:34

me just go through kind of how we set

play00:37

this up and how I wanted this to work so

play00:40

I divided this into three phases so we

play00:42

have the record phase we have the

play00:43

analyze phase and to kind of use this we

play00:46

have a rag phase I'm going to explain

play00:49

that but let's just start here on the

play00:51

record phase so basically when we fire

play00:54

up our script this is going to

play00:56

screenshot our computer screen of course

play00:59

and it's going to say those screenshots

play01:01

and bring them to further analyze and

play01:04

put them into a rag system right but I

play01:07

kind of wanted to uh Implement something

play01:09

that kind of monitor pixel changes on

play01:12

our screen because we don't want to spam

play01:14

the same screenshot over and over again

play01:16

so I implemented something that looks at

play01:19

our Monitor and if there's a 5% pixel

play01:22

change to kind of the previous

play01:24

screenshot then it's going to take a new

play01:26

screenshot and save that and bring it

play01:29

over over to the analyze phase I also

play01:32

implemented a step down here that GPT 40

play01:35

creates a custom screenshot name uh

play01:38

based on kind of the analyze uh feature

play01:41

here from GPT 40 because we want to

play01:44

Archive those screenshots so we can look

play01:46

them up later that is kind of the ID

play01:48

behind the recall feature right if we go

play01:51

to the analyze phas now you can see uh

play01:54

when a screenshot is Sav is going to be

play01:56

analyzed by GT40 so this is going to

play01:59

extract you inter actions what happened

play02:01

in the screen any URLs and of course the

play02:04

name that is associated with the

play02:07

screenshot and this is going to be put

play02:08

in our

play02:10

archive uh but also the screenshot is

play02:13

saved to a new folder so we can look it

play02:16

up if we want to go back in time and see

play02:19

what we did in this exactly Frozen

play02:21

moment in time right uh I think that's

play02:24

kind of how this Microsoft recall

play02:26

feature works so I thought it was pretty

play02:28

interesting and it does work

play02:30

uh so let's just move on to kind of the

play02:32

rag phase this is how we can actually

play02:34

use this system and here you can kind of

play02:36

see we just take the archive that is

play02:38

kind of the user action plus the link to

play02:40

the screenshot uh we have saved in

play02:43

archive and we create embeddings from

play02:45

this uh this is done locally so we are

play02:48

using a local AMA embeddings models and

play02:51

we use llama 3 to kind of search over

play02:53

that rag space right uh so here we can

play02:56

just search for let's say something like

play02:59

uh did I visit Discord yesterday and

play03:02

then you can kind of find the associated

play03:04

screenshot when you did visit let's say

play03:07

Discord what you talked about on Discord

play03:10

because you kind of get the recent

play03:11

action that you talked about on the

play03:13

Discord screenshot and you get the name

play03:16

so you can look up the screenshot and

play03:18

see exactly what you did so that is

play03:21

basically the whole ID behind this uh so

play03:23

now I think we just going to take a

play03:24

quick look at the code kind of how I set

play03:27

this up and let's bring it out in action

play03:29

and see if it actually works but before

play03:32

we do that if you want to learn more

play03:33

about how llms work data analysis

play03:36

science and all that stuff take a look

play03:38

at today's sponsor brilliant.org are you

play03:41

eager to dive into the world of data

play03:43

analysis or understand how large

play03:44

language models work then you're going

play03:46

to love brilliant.org the sponsor of

play03:48

today's video brilliant turns complex

play03:50

subjects into engaging Hands-On

play03:52

experiences that make learning fun and

play03:54

effective I especially like the building

play03:56

regression models course that is perfect

play03:58

for Learners at any level you learn how

play04:00

to visualize massive data sets make

play04:02

better informed decisions from the bias

play04:04

theorum to multiple linear regression

play04:06

another favorite mine is of course the

play04:07

how llms work course this immersive AI

play04:10

Workshop lets you explore the mechanics

play04:12

of large language models showing you how

play04:14

they build vocabulary and generate

play04:16

different outputs like poetry or cover

play04:18

letters freance approach to learning is

play04:20

proven to be six times more effective

play04:22

than traditional lectures by solving

play04:24

real problems you build critical

play04:26

thinking skills and a powerful daily

play04:28

learning Habit to try everything

play04:30

brilliant has to offer for free for 30

play04:32

days visit brilliant.org allabout aai or

play04:36

just click the link in the description

play04:37

below go start your Learning Journey

play04:39

today a big thanks to brilliant for

play04:41

sponsoring this

play04:43

video okay so now let's walk through

play04:45

some of the most important functions in

play04:48

our code to actually make this work so I

play04:51

just want to start with the analyze

play04:53

screenshot functions because this is

play04:54

kind of the the most important part of

play04:56

course uh you can see we are running the

play04:59

GP 4 all model uh it's just so good like

play05:03

it's by far the best wish model I ever

play05:06

tried uh I just wish there was like an

play05:08

open source model that could be on this

play05:10

level soon so we can make this 100%

play05:13

locally I think how bad cool that would

play05:15

be but now it's like should you I don't

play05:19

even think you should use this because

play05:21

this is sending kind of your uh

play05:23

proprietary data sometimes out with the

play05:26

API and stuff so this is just kind of

play05:28

prototype for something hopefully we can

play05:31

have in the future but it is really fun

play05:33

to play around with and it does work but

play05:35

let's just focus on the code here now

play05:37

for a while so you can see uh so let's

play05:41

let me show you kind of the The Prompt I

play05:43

use here extract the most important

play05:45

information from what is happening in

play05:46

the image include URLs on the website if

play05:50

applicable because I want to be able to

play05:52

kind of extract the URLs I was on let's

play05:55

say I remember something I was on I was

play05:57

on that web page but I don't remember

play05:59

exactly the URL then I can kind of

play06:01

search up that information and find the

play06:02

url I was on so yeah that is kind of the

play06:05

idea behind this it's a pretty simple

play06:07

prompt but it works for my my use case

play06:10

here okay so now we kind of come to the

play06:12

chunking part this is important for the

play06:14

rag right and this is kind of taken from

play06:18

my EC local rag setup so we're going to

play06:22

divide it into chunks of Maximum

play06:24

thousand characters and

play06:27

every yeah how should you say this every

play06:30

action is kind of chunked into the

play06:32

history. text so we can use it in rag to

play06:35

search up so I just wanted to show you

play06:36

an example so you can see here uh here

play06:40

is kind of one action we took from a

play06:43

screenshot so you can see we have the

play06:46

PNG image here that is associated with

play06:49

this

play06:50

uh with this uh saved action so the user

play06:54

was engaged in multiple activities on

play06:55

the computer running a python

play06:58

script executing a python script called

play07:01

recall in power cell

play07:02

terminal and you can see reviewing a

play07:05

directory and we have a directory path

play07:08

working on a canva project so we got a

play07:10

lot of information from this and we can

play07:13

also look up this image here if we go to

play07:16

my folder now you can see I have the

play07:18

archive user activity recall 12 cona AI

play07:23

so here you can see everything that

play07:25

happened in that image so this is kind

play07:28

of associated with this uh action right

play07:32

and we have another uh image here the

play07:34

user was watching a YouTube video called

play07:36

Introducing co- pilot PC by

play07:38

Microsoft and this is our other

play07:41

screenshot so you can see it here so

play07:44

yeah I think it's working pretty good

play07:46

and that is kind of how we set this up

play07:50

uh we also have a GPD for Oat to kind of

play07:52

rewrite this queries so you're an expert

play07:54

extracting information from a text uh we

play07:57

use that uh and here is kind of the

play07:59

compare screenshot function so we take

play08:02

the previous screenshot and compare it

play08:04

with the new one and if kind of the

play08:07

difference in pixels is uh set

play08:11

percentage here uh then we're going to

play08:14

execute on that screenshot because if I

play08:16

just leave my screen on like this

play08:18

there's no pixel changes so we're not

play08:20

going to take a screenshot then only if

play08:22

the user does something else that is

play08:24

kind of the idea behind it and that is

play08:26

one I kind of understood that Microsoft

play08:28

is trying to do as well so I set the

play08:30

diff percentage to five I don't know

play08:34

what the optimal solution is here uh but

play08:36

I set it to five now and seems to be

play08:39

working pretty

play08:40

good so yeah you can see here the GPD 4

play08:44

oat prompt is kind of we feed in the

play08:47

result from the image description right

play08:51

and then we say from the image

play08:52

description about extract

play08:55

information uh what the user is doing on

play08:56

the computer include a URL if applicable

play09:00

so the reason I kind of run it again

play09:03

with a

play09:05

new uh function here is because I had

play09:08

some results just running it from this

play09:12

uh that was not too good so I tried to

play09:15

run it again over a new function just by

play09:19

feeding in the results and it seemed to

play09:21

work pretty good so uh I kind of left it

play09:24

like this and here is kind of the

play09:27

relevant file name query if we look at

play09:29

the names of our images you can see my

play09:31

file name here is Microsoft co-pilots PC

play09:35

keynote and this file name comes from

play09:38

using the gp4 oat model and Generator

play09:42

short concise relevant file name for the

play09:44

following description this file name is

play09:46

quite important because uh this can be

play09:49

used in our rag phase to get keywords so

play09:53

if we type Microsoft co-pilot this will

play09:57

kind of pop up in our rag search right

play09:59

that is why I want these file names to

play10:02

be relevant and not just some random

play10:06

name and yeah is there anything else to

play10:09

say here about the code it's pretty

play10:12

straightforward uh it kind of ends up at

play10:14

the end here that we are

play10:17

chunking uh everything and putting it

play10:20

into this history text on kind of a new

play10:22

line so it's ready to be embedded in our

play10:25

rag model uh I might do like a follow-up

play10:29

video video on my member section if

play10:31

people are interested in diving deeper

play10:32

into this of course this code is going

play10:34

to be uploaded to the community GitHub

play10:37

so if you want straight access to this

play10:39

just become a member of the channel

play10:41

follow the link in the description and I

play10:43

will invite you to our community GitHub

play10:46

and our community

play10:48

Discord and yeah at the end there if we

play10:50

want to stop this we can just keyboard

play10:52

interrupt and this will exit uh other

play10:55

than that it's just going to run in a

play10:57

true true true Loop until we stop it I

play11:01

also added this 3 second delay before

play11:03

starting because when we fire up our

play11:05

terminal here yeah I just wanted a small

play11:08

sleep

play11:10

here and yeah that is basically it uh to

play11:14

do this um compare screenshots we are

play11:17

using open

play11:19

CV2 and seems to be working pretty good

play11:21

so I think I just want to show you kind

play11:22

of In Action Now how this works and what

play11:26

we can do with this okay so let's run

play11:29

our script now and let's kind of see how

play11:31

this works now so uh let's say I just

play11:34

wanted to start my day at working so I'm

play11:37

just going to fire up this script I'm

play11:39

just going to go to this website here

play11:41

I'm just going to pretend I'm reading

play11:43

this so hopefully now this has taken a

play11:46

screenshot of this right uh so I just

play11:48

want to leave it here now because now

play11:50

you can kind of see it's measuring the

play11:51

different percentage so let's say now we

play11:55

switch to this x poost okay so now we

play11:59

kind of changed our image and then you

play12:01

can see if we go back here the

play12:04

percentage changed to

play12:07

26% and that means that we took a new

play12:09

screenshot right because the pixels

play12:12

changed and we take a look at this post

play12:15

on X and now we got a second different

play12:19

uh percentage because we brought up the

play12:20

terminal but if we let this just run now

play12:23

we're probably just going to stay on

play12:24

this so now just let's just operate the

play12:27

computer as normal this is going to run

play12:29

in the background right so we can see

play12:31

here we are on kind of the local llama

play12:33

Reddit post we can read a bit about this

play12:36

of course this is not going to take

play12:38

screenshots every single second so it's

play12:40

going to be a bit it's not perfect right

play12:44

we can click onto this GitHub

play12:47

page and hopefully we are collecting

play12:50

screenshots now as we are scrolling but

play12:52

of course it's not going to be perfect

play12:55

so I think we're just going to stop it

play12:57

here now and then we can kind of take a

play12:58

look at the results and how we can

play13:00

implement this into rag R so if we go

play13:03

back now to our history. text we can

play13:06

kind of reload this and we should have

play13:08

some more yeah information here so you

play13:10

can see a carati gpt2 reproduction

play13:14

llmc the users reading a post uh Andre

play13:16

carpon X yes we did that the users

play13:19

reading a post on local llama reading a

play13:22

post on GitHub executing a python script

play13:25

that's true and yeah you can see this

play13:28

worked pretty good let's take a look at

play13:29

the images that is kind of associated

play13:32

with this so let's take a look at the

play13:34

carpati gpt2 reproduction image so we

play13:38

can just go here Cara

play13:40

2 uh yes so you can see this is the

play13:44

image of

play13:45

the the Twitter post we read right or

play13:48

the X post so yeah we can actually align

play13:52

this with our information and find the

play13:54

screenshot here so I think the next step

play13:57

now is going to be to look at our Rag

play14:00

and how we can embed this and start

play14:02

using our

play14:04

recall feature information so here we

play14:07

are basically using exactly the setup I

play14:09

had on my E Local rag you can find that

play14:13

that's open source you can just follow

play14:14

the link in description to find this

play14:16

code so basically the only difference

play14:19

here is now that instead of uh feeding

play14:22

in our w we call it uh in the previous

play14:25

version we're just feeding in our

play14:27

history. text right and embedding that

play14:30

and we can start searching over it so

play14:33

let's just fire up the terminal here and

play14:36

kind of let's clear our cach first and

play14:39

then we can embed our new history here

play14:42

right so let's just run python Reco

play14:45

ragp D- clear cache so we kind of clear

play14:49

our previous cache okay and then we can

play14:51

generate new embeddings on history. text

play14:55

save embeddings to Vault embeddings Json

play14:58

and now we can start asking question

play15:00

about our yeah documents but it is

play15:03

actually our recall uh information right

play15:06

so let's try to ask I read a post about

play15:08

gpt2 on X but I forgot who the author

play15:12

[Music]

play15:14

was okay so we are fetching some

play15:16

information about gpd2 here from our

play15:20

archive right according to your archive

play15:23

data you read a post about Yeah by Andre

play15:26

car party on X for Twitter but

play15:27

reproducing the gp2 Mor okay yeah that's

play15:31

good let's also try to find our um

play15:35

related

play15:37

screenshot do I have any PNG Files about

play15:41

gpt2 okay so you can see according to

play15:44

Archive data you have two PNG files

play15:45

related to gpt2 reproducing gpt2 Gib uh

play15:50

recall diff percentage okay so let's

play15:53

check this reproducing GPT through 124

play15:57

million 90 minutes so we can go to our

play15:59

archive here and you can see reproducing

play16:04

gpt2 so this is actually from the GitHub

play16:07

so not exactly our

play16:09

X um post but yeah I guess it found

play16:14

something let's try to alter that and

play16:16

add X in maybe let's ask do I have any

play16:19

PNG Files about gpt2 from

play16:23

X according to Archive data you have one

play16:26

PNG file yes gp2 from X okay perfect so

play16:29

this is the car party gpt2 reproduction

play16:31

llmc so let's see if that

play16:35

works and yeah perfect so if I was a bit

play16:38

more specific there I could actually

play16:40

find the post we took the screenshot of

play16:42

on X so yeah I got to say I'm pretty

play16:45

happy how this worked and it is actually

play16:48

kind of how I wanted this to work so

play16:51

this means that you can kind of get like

play16:53

a imagine you get like a big storage

play16:55

here in your history and you get like a

play16:58

ton of different screenshots here this

play17:00

could be helpful if you wanted to kind

play17:02

of track back and see what you did maybe

play17:05

yesterday and stuff like that so I think

play17:08

it's working kind of how I wanted this

play17:10

to work with this rag face

play17:12

implementation so yeah that is basically

play17:14

what I wanted to share with you today

play17:16

like I said uh in the video if you want

play17:18

access to this just follow the link in

play17:19

the description and become a member of

play17:21

the channel I will probably upload this

play17:23

uh code tomorrow uh I might even do a

play17:26

more Deep dive into how this exactly

play17:28

work if people want that uh but yeah I

play17:31

found it interesting it's a shame that

play17:33

we can't do it or that I couldn't

play17:35

actually do it locally uh yet and maybe

play17:38

some of you can list if you actually

play17:40

find a good way to do this locally

play17:42

please leave a comment uh and I want to

play17:44

see it and I want to try it and maybe we

play17:46

can do something together uh but other

play17:49

than that uh I think it worked pretty

play17:50

good I'm very happy how it turned out

play17:53

and it was not that hard to implement

play17:56

and I think we could kind of upgrade

play17:57

this in the future and that's going to

play17:59

be very

play18:00

interesting uh so yeah should you use

play18:02

this probably no because you're sending

play18:05

a lot of private information over the

play18:07

API and yeah I'm not sure uh I don't

play18:11

think I'm going to use this actively but

play18:13

it was a fun prototype to Showcase what

play18:15

we might have uh running locally in the

play18:18

future we just need a bit of a better

play18:20

Vision model and I think everything

play18:22

should work pretty good uh other than

play18:25

that yeah thank you for tuning in and

play18:28

got some cool projects coming up so look

play18:31

out for that and don't forget to check

play18:33

out brilliant.org Link in the

play18:35

description thank you for tuning in and

play18:37

I'll see you again on Sunday

Rate This

5.0 / 5 (0 votes)

Related Tags
スクリーンショットAI分析ローカルプロトタイプGPT-4画像比較データ分析ラーニングコードインスパイア
Do you need a summary in English?