![見出し画像](https://assets.st-note.com/production/uploads/images/104532573/rectangle_large_type_2_1f72c3e319d58f92d7135e4b5be073ab.jpeg?width=1200)
【GPT-4】英語解説を日本語で読む【2023年5月2日|@CS50】
ハーバード大学が提供するコンピュータサイエンスとプログラミングの芸術を学ぶための入門コースであるCS50の一部です。
GPT-4の仕組みや人間の言語がコンピューティングにおいて重要な役割を果たす理由を学びます。
公開日:2023年5月2日
※動画を再生してから読むのがオススメです。
All right, well, this is a CS50 Tech Talk.
さて、今回はCS50のテックトークです。
Thank you all so much for coming.
皆さん、お越しいただき、本当にありがとうございます。
So, about a week ago, we circulated the Google form, as you might have seen, at 10:52 a.m.
1週間ほど前、午前10時52分にGoogleフォームを配布しました。
And by like 11:52 a.m., we had a hundred RSVPs, which I think is sort of a testament to just how much interest there is in this world of AI, and OpenAI, and GPT, ChatGPT in the light.
午前11時52分には100人の参加表明がありました。これは、AIやオープンAI、GPT、ChatGPTの世界にどれだけの関心があるかを示すものだと思います。
And in fact, if you're sort of... generally familiar with what everyone's talking about, but you haven't tried it yourself.
そして実際、もしあなたが...みんなが話していることはよく知ってるけど、自分で試したことがないのなら。
Like, this is the URL at which you can try out this tool that you've probably heard about, ChatGPT.
このURLで、ChatGPTというツールを試すことができるんです。
You can sign up for a free account there and start tinkering with what everyone else has been tinkering with.
無料のアカウントにサインアップして、みんながやっていることを試してみることができるんだ。
And then if you're more of the app-minded type, which you probably are if you are here with us today, OpenAI in particular has its own low-level APIs via which you can integrate AI into your own software.
また、今日ここにいらっしゃる方はそうだと思いますが、アプリ志向の方は、特にOpenAIには独自の低レベルAPIがあり、これを介してAIを自分のソフトウェアに統合することができます。
But of course, as is the case in computer science, there's all the more abstractions and services that have been built on top of these technologies.
しかし、もちろん、コンピュータサイエンスの世界では、これらの技術の上に、より抽象化されたサービスが構築されているのです。
And we're so happy today to be joined by our friends from McGill University and Steamship, Sil and Ted, from whom you'll hear in just a moment, to speak to us about how they are making it easier to build, to deploy, to share applications using some of these very same technologies.
本日は、マギル大学とSteamshipのお友達、SilさんとTedさんがご一緒になって、同じような技術を使ってアプリケーションを構築し、デプロイし、共有する方法を簡単にする方法についてお話ししてくださることを大変うれしく思います。
So our thanks to them for hosting today, our friends at Plimpton, Jenny Lee, an alumna who's here with us today.
本日のホストを務めてくださったお二人、プリンプトンの友人、そして卒業生のジェニー・リーさんに感謝します。
But without further ado, allow me to turn things over to Ted and Sil.
では、早速ですが、テッドとシルに話を移します。
And pizza will be served shortly after 1 PM outside.
ピザは午後1時過ぎに外でお召し上がりください。
All right, over to you, Ted.
ではテッド、どうぞ
Hey, everybody, it's great to be here.
皆さん、お集まりいただき、ありがとうございます。
I think we've got a really good talk for you today.
今日はとても良いお話が聞けそうです。
Sil's going to provide some research grounding into how it all works, what's going inside, the brain of GPT as well as other language models.
GPTや他の言語モデルと同様に、その内部で何が起こっているのかについて、研究的な基礎知識を提供するつもりです。
And then I'll show you some examples that we're seeing on the ground of how people are building apps and what apps tend to work in the real world.
そして、私たちが実際に見てきた、人々がどのようにアプリを作り、どのようなアプリが実際の世界で機能する傾向にあるのか、いくつかの例を紹介します。
So our perspective is we're building AWS for AI apps.
私たちの視点は、AIアプリのためのAWSを構築していることです。
So, we get to talk to a lot of the makers who are building and deploying their apps, and through that, see both the experimental end of the spectrum and also see what kinds of apps are getting pushed out there and turned into companies, turned into side projects.
そのため、アプリを構築してデプロイしている多くのメーカーと話す機会があり、その中で、実験的なものから、どのようなアプリが世に送り出され、会社になったり、サイドプロジェクトになったりするのかを見ることができます。
We did a cool hackathon yesterday.
昨日はクールなハッカソンを開催しました。
Many thanks to Neiman, to David Malin and CS50 for helping us put all of this together, to Harvard for hosting it.
Neiman、David Malin、CS50、そして主催してくれたHarvardに感謝しています。
And there were two sessions.
2つのセッションがありました。
Lots of folks built things.
多くの人がいろいろなものを作りました。
If you go to steamship.com slash hackathon, you'll find a lot of guides, a lot of projects that people built.
steamship.comのslash hackathonにアクセスすると、多くのガイドと、人々が作った多くのプロジェクトが見つかります。
And you can follow along.
そして、それをフォローすることができます。
We have a text guide as well, just as a quick plug for that, if you want to do it remotely or on your own.
また、リモートで、あるいは一人で参加したい場合は、テキストガイドも用意されています。
So to tee up SIL, we're going to talk about basically two things today that I hope you'll walk away with and really know how to then use as you develop and as you tinker.
SILを始めるにあたって、今日は基本的に2つのことをお話しします。
One is, what is GPT and how is it working?
1つは、GPTとは何か、それはどのように機能しているのか、ということです。
Get a good sense of what's going on inside of it, other than as just this magical machine that predicts things.
GPTの内部で何が起こっているのか、単に物事を予測する魔法の機械としてではなく、その意味をよく理解することです。
And then two is, how are people building with it?
そして2つ目は、人々はどのようにGPTを使って構築しているのか、ということです。
And then importantly, how can I build with it, too, if you are a developer?
そして重要なのは、もしあなたが開発者であるなら、どうやって私もこの製品を使って作ることができるのか、ということです。
And if you have CS50 background, you should be able to pick things up and start building some great apps.
CS50のバックグラウンドを持っている人なら、いろいろなことを吸収して、素晴らしいアプリを作り始めることができるはずです。
I've already met some of the CS50 grads yesterday.
昨日、すでにCS50の卒業生に何人か会いました。
And the things that they were doing were pretty amazing.
彼らがやっていることは、とても素晴らしいものでした。
So hope this is useful.
だから、これが役に立つといいんだけど。
I'm going to kick it over to SIL and talk about some of the theoretical background of GPT.
これからSILに引き継いで、GPTの理論的な背景について話をしようと思います。
Yeah, so thank you, Ted.
ありがとうございます、テッド。
My name is SIL.
私の名前はSILです。
I'm a graduate student in the digital humanities at McGill.
マギル大学でデジタル人文科学を専攻している大学院生です。
I study literature and computer science and linguistics in the same breath.
文学とコンピュータサイエンスと言語学を同列に研究しています。
And I published some research over the last couple of years exploring what is possible with language models and culture in particular.
ここ数年、特に言語モデルと文化で何が可能かを探る研究を発表しています。
And my half or whatever of the presentation is to describe to you what is GPT.
このプレゼンテーションでは、GPTとは何かということを説明したいと思います。
That's really difficult to explain in 15 minutes.
15分で説明するのは本当に難しいです。
And there are even a lot of things that we don't know.
しかも、私たちが知らないこともたくさんあります。
But a good way to approach that is to first consider all the things that people call GPT by or descriptors.
しかし、それにアプローチする良い方法は、まず、人々がGPTと呼ぶすべてのもの、あるいは記述子を考えることです。
So you can call them large language models.
つまり、ラージ・ランゲージ・モデルと呼ぶこともできます。
You can call them universal approximators from computer science.
コンピュータサイエンスのユニバーサル近似器と呼ぶこともできます。
You can say that it is a generative AI.
生成的なAIと言うこともできます。
We know that they are neural networks.
ニューラルネットワークであることは分かっています。
We know that it is an artificial intelligence.
人工知能であることもわかっています。
To some, it's a simulator of culture.
ある人にとっては、文化のシミュレーターです。
To others, it just predicts text.
他の人にとっては、ただテキストを予測するだけです。
It's also a writing assistant.
ライティングアシスタントでもある。
If you've ever used ChatGPT, you can plug in a bit of your essay, get some feedback.
ChatGPTを使ったことがあれば、自分のエッセイを少し書き込んで、フィードバックをもらうことができます。
It's amazing for that.
これには驚かされます。
It's a content generator.
コンテンツジェネレーターでもあります。
People use it to do copywriting, Jasper.ai, pseudo-write, et cetera.
コピーライティング、Jasper.ai、擬似ライティングなど、さまざまな用途に利用されています。
It's an agent.
これはエージェントなんです。
So the really hot thing right now, if you might have seen it on Twitter, is AutoGPT, BabyAGI, people are giving these things tools and letting them run a little bit free in the wild to interact with the world, computers, et cetera.
今、本当にホットなのは、Twitterで見たかもしれませんが、AutoGPTやBabyAGIで、人々はこれらのものにツールを与え、野生の状態で少し自由に走らせ、世界やコンピュータなどと交流させています。
We use them as chatbots, obviously.
私たちはこれをチャットボットとして使っています。
And the actual architecture is a transformer.
また、実際のアーキテクチャはトランスフォーマーです。
So there's lots of ways to describe GPT.
ですから、GPTを説明する方法はたくさんあります。
And any of one of them is a really perfectly adequate way to begin the conversation.
そのどれをとっても、会話を始めるには本当に完璧に適切な方法です。
But for our purposes, we can think of it as a large language model, and more specifically, a language model.
しかし、今回の目的では、GPTを大規模な言語モデル、より具体的には言語モデルとして考えることができます。
And a language model is a model of language, if you allow me the tautology.
言語モデルとは、トートロジー(同語反復)を許してくれるなら、言語のモデルです。
But really, what it does is it produces a probability distribution over some vocabulary.
しかし、実際には、ある語彙の確率分布を作成するものなのです。
So let us imagine that we have the task of predicting the next word of the sequence I am.
例えば、「I am」という単語の次の単語を予測する仕事があるとします。
So if I give a neural network the words I am, what of all words in English is the next most likely word to follow?
ニューラルネットワークにI amという単語を与えると、英語のあらゆる単語の中で次に続く可能性が高い単語は何なのか?
That, at its very core, is what GPT is trained to answer.
これが、GPTが答えを出すために訓練されたものです。
And how it does it is it has a vocabulary of 50,000 words.
GPTは50,000語の語彙を持っています。
And it knows, roughly, given the entire internet, which words are likely to follow other words of those 50,000 in some sequence, up to 2,000 words, up to 4,000, up to 8,000, and now up to 32,000 in GPT-4.
GPT-4では、最大2,000語、最大4,000語、最大8,000語、そして現在では最大32,000語まで、インターネット全体から、どの単語が他の単語の後に続く可能性が高いか、ある順序で知ることができます。
So you give it a sequence, here I am.
つまり、ここに私がいますよ、という順番をつけるわけです。
And over the vocabulary of 50,000 words, it gives you the likelihood of every single word that follows.
すると、5万語の語彙の中で、その後に続くすべての単語の可能性を示してくれるのです。
So here it's I am, perhaps the word happy is fairly frequent.
つまり、「I am」ですが、おそらく「happy」という単語はかなり頻繁に出てくるでしょう。
So we'll give that a high probability if we look at all words, all utterances of English.
ですから、英語の全単語、全発話を対象にした場合、その確率は高くなります。
It might be I am sad, maybe that's a little bit less probable.
I am sad(私は悲しい)かもしれません、それは少し確率が低いかもしれません。
I am school, that really should be at the end because I don't think anybody would ever say that.
I am schoolは、誰もそんなこと言わないと思うので、本当に最後に書くべきです。
I am Bjork, that's a little bit, it's not very probable, but it's less probable than happy-sad, but there's still some probability attached to it.
I am Bjork、これはちょっと、あまり確率は高くないですが、happy-sadよりは確率は低いですが、それでもある程度の確率はついています。
And when we say it's probable, that's literally a percentage.
確率が高いというのは、文字通りパーセンテージです。
That's like happy follows I am maybe like 5% of the time, sad follows I am maybe 2% of the time, or whatever.
つまり、幸せなことは5%、悲しいことは2%の確率で起こるというようなことです。
So for every word that we give GPT, it tries to predict what the next word is across 50,000 words, and it gives every single one of those 50,000 words a number that reflects how probable it is.
GPTに与える単語ごとに、次の単語を50,000単語の中から予測しようとします。そして、それら50,000単語のそれぞれに、どれだけ確からしいかを反映した数値を与えます。
And the really magical thing that happens is you can generate new text.
そして、本当に不思議なことに、新しいテキストを生成することができるのです。
So if you give GPT I am, and it predicts happy as being the most probable word over 50,000, you can then append it to I am, so now you say I am happy, and you feed it into the model again.
GPTにI amを渡すと、5万語の中で最も確率の高い単語はhappyだと予測されますから、I amにそれを追加して、I am happyとし、それをまたモデルに送り込みます。
You sample another word, you feed it into the model again, and again, and again, and again.
さらに別の単語をサンプリングして、それをまたモデルに送り込み、何度も何度も繰り返します。
And there's lots of different ways that I am happy, I am sad can go.
そして、「私は幸せだ」「私は悲しい」と、さまざまな言い方ができるのです。
And you add a little bit of randomness, and all of a sudden you have a language model that can write essays, that can talk, and a whole lot of things, which is really unexpected and something that we didn't predict even five years ago.
そして、少しランダム性を加えると、突然、エッセイを書いたり、話したり、さまざまなことができる言語モデルができあがります。これは本当に予想外のことで、5年前にさえ予測できなかったことなのです。
So this is all relevant.
ですから、これはすべて関連することなのです。
And if we move on.
そして、次に進むとします。
As we scale up the model and we give it more compute, in 2012 AlexNet came out and we figured out we can give the model, we can run the model on GPUs.
2012年にAlexNetが登場し、GPU上でモデルを実行できることがわかりました。
So we can speed up the process.
その結果、処理を高速化できるようになったのです。
We can give the model lots of information downloaded from the internet and it learns more and more and more.
インターネットからダウンロードしたたくさんの情報をモデルに与えることで、どんどん学習していきます。
And the frequent, the probabilities that it gives you get better as it sees more examples of English on the internet.
そして、インターネット上でより多くの英語の例を見ているうちに、頻度や確率が向上していきます。
So we have to train the model to be really large, really wide, and we have to train it for a really long time.
そのため、モデルを非常に大きく、広く、長い時間訓練する必要があります。
And as we do that, the model gets more and more better and expressive and capable.
そうすることで、モデルはどんどん良くなり、表現力も能力も向上していきます。
And it also gets a little bit intelligent.
そして、少しばかり知能も向上していきます。
And for reasons we don't understand.
その理由は分かりませんが。
So, but also the issue is that because it learns to replicate the internet, it knows how to speak in a lot of different genres of text and a lot of different registers.
しかし、問題は、インターネットを再現するために学習するため、さまざまなジャンルのテキストやさまざまな音域で話す方法を知っているということです。
If you begin the conversation like ChatGPT, can you explain the moon landing to a six-year-old in a few sentences?
ChatGPTのように会話を始めたとして、6歳の子に月面着陸を数文で説明できるでしょうか?
GPT-3, this is an example drawn from the Instruct GPT paper from OpenAI.
GPT-3、これはOpenAIのInstruct GPT論文から引用した例です。
GPT-3 would have just been like, okay, so you're giving me an example, like explain the moon landing to a six-year-old.
GPT-3なら、「そうか、6歳児に月面着陸を説明するような例を教えてくれたんだな」と思うだけだったでしょう。
I'm gonna give you a whole bunch of similar things because those seem very likely to come in a sequence.
6歳児に月面着陸を説明するような、似たようなことを一通り説明するのですが、それらは順番にやってくる可能性が非常に高いと思われるからです。
It doesn't necessarily understand that it's being asked a question has to respond with an answer.
質問されたら答えなければいけないということを、必ずしも理解していないのです。
GPT-3 did not have that apparatus, that interface for responding to questions.
GPT-3には、質問に答えるための装置やインターフェイスがなかったのです。
And the scientist said, OpenAI came up with the solution, and that's, let's give it a whole bunch of examples of question and answers, such that we first train it on the internet, and then we train it with a whole bunch of questions and answers, such that it has the knowledge of the internet but really knows that it has to be answering questions.
そして、その科学者は言いました、「OpenAIが解決策を見つけ出し、たくさんの質問と答えの例を与えることにしましょう。まずインターネットで学習し、その後たくさんの質問と答えで学習することで、インターネットの知識を持ちつつ、質問に答えることが重要であることを理解している」と。
And that is when ChatGPT was born and that's when it gained 100 million users in one month.
そうして生まれたのがChatGPTで、1カ月で1億人のユーザーを獲得しました。
I think it beat TikTok's record at 20 million in one month.
TikTokの1カ月2,000万人という記録を破りましたね。
It was a huge thing.
それはとても大きなことでした。
And for a lot of people, they went, oh, this thing is intelligent.
そして、多くの人が、「これは知的だ」と感じました。
I can ask it questions, it answers back, we can work together to come to a solution.
質問すれば答えてくれるし、一緒に解決策を考えることができる。
And that's because it's still predicting words.
それは、まだ言葉を予測しているからです。
It's still a language model, but it knows to predict words in the framework of a question and answer.
言語モデルであることに変わりはありませんが、質問と回答の枠組みで単語を予測することを知っているのです。
So that's what a prompt is.
つまり、プロンプトとはそういうものなのです。
That's what instruction tuning is.
インストラクション・チューニングとはそういうものです。
That's a key word.
それがキーワードです。
That's what RLHF is, if you've ever seen that acronym, reinforcement alignment with human feedback.
RLHFとは、「reinforcement alignment with human feedback」の頭文字をとったもので、「人間のフィードバックによる強化」という意味です。
And all of those combined means that the models that are coming out today, the types of language predictors that are coming out today work to operate in a Q and A form.
これらの組み合わせにより、今日発表されている言語予測モデルは、Q&A形式で動作するように作られています。
GPT-4 exclusively only has the aligned model available.
GPT-4では、アライメントされたモデルのみが利用可能です。
And this is a really great solid foundation to build on because you can do all sorts of things.
GPT-4では、アライメントされたモデルだけが利用できます。これは、あらゆることができるようになる、本当に素晴らしい基盤です。
You can ask ChatGPT, can you do this for me?
ChatGPTに、「これやってくれる?
Can you do that for me?
とか、「あれをやってくれませんか?
You might've seen that OpenAI has allowed plugin access to ChatGPT.
OpenAIがChatGPTにプラグインでアクセスできるようにしたのを見たことがあるかもしれませんね。
So it can access Wolfram.
だから、Wolframにアクセスできる。
It can search the web.
ウェブを検索することもできます。
It can search, it can do Instacart for you.
検索もできますし、インスタカートもできます。
It can look up recipes.
レシピを調べることもできます。
Once the model knows that not only it has to predict language, but that it has to solve a problem, and the problem here being, give me a good answer to my question, it's suddenly able to interface with the world in a really solid way.
モデルが言語を予測するだけでなく、問題を解決しなければならないことを知ると、その問題とは、私の質問に対して良い答えを出すということです。
And from there on, there's been all sorts of tools that it build on this Q and A form that ChatGPT uses.
それ以来、ChatGPTが使うQ&A形式の上に、さまざまなツールを構築してきました。
You have AutoGPT, you have LangChain, you have React, there was a React paper where a lot of these come from, and turning the model into an agent with which to achieve any ambiguous goal is where the future is going.
AutoGPT、LangChain、Reactなどがあります。これらの多くがReactの論文からきており、モデルを曖昧な目標を達成するためのエージェントに変えることが、未来への道筋です。
And this is all thanks to instruction tuning.
そして、これはすべてインストラクションチューニングのおかげなのです。
And with that, I think I will hand it off to Ted, who will be giving a demo, or something along those lines, for how to use GPT as an agent.
ということで、GPTをエージェントとして使う方法について、デモというか、その辺のことをやってくれるテッドにバトンタッチしようと思っています。
So.
それでは。
Thank you.
ありがとうございました。
All right, so I'm a super applied guy.
さて、私は超適当な男です。
I kind of look at things and think, okay, how can I add this Lego, add that Lego, and clip them together and build something with it?
物事を見ては、どうすればこのレゴとあのレゴを加えて、それらを組み合わせて何かを作ることができるだろう、と考えます。
And right now, if you look back in computer science history, when you look at the kinds of things that were being done in 1970, right after computing was invented, the microprocessors were invented, people were doing research like, How do I sort a list of numbers?
今、コンピュータサイエンスの歴史を振り返ってみると、1970年にコンピュータが発明され、マイクロプロセッサーが発明された直後、人々は「数字のリストを並べ替えるにはどうしたらいいか」という研究をしていました。
And that was meaningful work, and importantly, it was work that's accessible to everybody because nobody knows what we can build with this new kind of oil, this new kind of electricity, this new kind of unit of computation we've created.
それは有意義な仕事でしたし、重要なのは、誰にでもアクセスできる仕事だったということです。なぜなら、この新しい種類の石油、新しい種類の電気、新しい種類の計算機で何が作れるか、誰も知らないからです。
And anything was game, and anybody could participate in that game to figure it out.
そして、何でもゲームになり、誰でもそのゲームに参加して解明することができるのです。
And I think one of the really exciting things about GPT right now is, yes, in and of itself, it's amazing, but then, what could we do with it if we call it over and over again, if we build it into our algorithms and start to build it into broader software?
GPTに関して現在非常に興味深いのは、それ自体が素晴らしいことはもちろんですが、それを何度も呼び出したり、アルゴリズムに組み込んで広範なソフトウェアに組み込んだりするとどうなるでしょうか?
So the world really is yours to figure out those fundamental questions about what could you do if you could script computation itself over and over again in the way that computers can do, not just talk with it, but build things atop it.
コンピュータができるような方法で、計算そのものを何度も何度もスクリプト化したら何ができるのか、単に計算と会話するだけでなく、計算の上にものを作ることができるのか、そういった根本的な疑問を解決するために、世界は本当にあなたのものなんですよ。
So we're a hosting company, we host apps, and these are just some of the things that we see.
私たちはホスティング会社で、アプリをホストしていますが、これらはほんの一部です。
I'm gonna show you demos of this with code and try to explain some of the thought process, but I wanted to give you a high-level overview of you've probably seen these on Twitter, but when it all sorts out to the top, these are some of the things that we're seeing built and deployed with language models today.
私はこれについてデモやコードをお見せし、思考プロセスの一部を説明しようと思いますが、Twitterで見たことがあるかもしれませんが、最終的にこれらが現在の言語モデルで構築・展開されているものの一部であることを高レベルで概観したいと思います。
Companionship, that's everything from I need a friend to I need a friend with a purpose.
コンパニオンシップは、I need a friendからI need a friend with a purposeまで、あらゆるものを指します。
I want a coach.
コーチが欲しい。
I want somebody to tell me, go to the gym and do these exercises.
ジムに行って、このエクササイズをしなさい」と教えてくれる人が欲しい。
I want somebody to help me study a foreign language.
外国語を勉強するのを手伝ってくれる人が欲しい。
Question answering, this is a big one.
質問回答、これは大きな問題です。
This is everything from your newsroom having a Slack bot that helps assist you.
これは、ニュースルームがSlackのボットを使って、あなたをサポートすることから始まります。
Does this article conform to the style guidelines of our newsroom all the way through to I need help on my homework, or Hey, I have some questions that I want you to ask Wikipedia, combine it with something else, synthesize the answer, and give it to me.
この記事は、ニュースルームのスタイルガイドラインに沿っているか、宿題で助けが必要だ、または、ウィキペディアに質問してほしいことがある、それを他のものと組み合わせて答えを合成し、それを私に教えてほしい、といったことです。
Utility functions, I would describe this as there's a large set of things for which human beings can do them if only, or computers could do them if only they had access to language computation, language knowledge.
ユーティリティ機能とは、「言語計算や言語知識さえあれば、人間でもできること、あるいはコンピュータでもできること」を指します。
An example of this would be read every tweet on Twitter, tell me the ones I should read.
例えば、Twitterのすべてのツイートを読み、その中から読むべきものを教えてくれるようなものです。
That way I only get to read the ones that actually make sense to me and I don't have to skim through the rest.
そうすれば、実際に意味のあるものだけを読むことができ、残りをざっと読む必要はないのです。
Creativity, image generation, text generation, storytelling, proposing other ways to do things.
クリエイティビティ、画像生成、テキスト生成、ストーリーテリング、他のやり方の提案。
And then these wild experiments and kind of BabyAGI as people are calling them in which the AI itself decides what to do and is self-directed.
そして、AI自身が何をすべきかを決定し、自己管理するような野生の実験やBabyAGIと呼ばれるようなものです。
So I'll show you examples of many of these and what the code looks like.
これらの例と、コードがどのようなものかをお見せします。
And if I were you, I would think about these as categories within which to both think about what you might build and then also seek out starter projects for how you might go about building them online.
もし私があなたなら、これらをカテゴリーとして考え、自分が何を作るかを考え、また、オンラインでそれらを作るためのスターター・プロジェクトを探すでしょう。
Thank you.
ありがとうございました。
All right, so I'm just going to dive straight into demos and code for some of these because I know that's what's interesting to see as fellow builders with a high level diagram for some of these as to how it works.
では、さっそくデモやコードを見ていきたいと思います。というのも、同じビルダーとして興味深いのは、どのように動作するのか、ハイレベルな図を見ることができるからです。
So approximately, you can think of a companionship bot as a friend that has a purpose to you.
つまり、コンパニオンボットとは、自分にとって目的を持った友人と考えることができます。
And there are many ways to build all of these things, but one of the ways you can build this is simply to wrap GPT or language model in an endpoint that additionally injects into the prompt some particular perspective or some particular goal that you want to use.
これらのものを構築する方法はたくさんありますが、一つの方法は、GPTや言語モデルを特定の視点や目標を追加してプロンプトに注入するエンドポイントでラップするだけです。
It really is that easy in a way, but it's also very hard because you need to iterate and engineer the prompt so that it consistently performs the way you want it to perform.
ある意味簡単ですが、プロンプトが一貫して思い通りに動作するように反復して設計する必要があるため、非常に難しいことでもあります。
So a good example of this is something somebody built in the hackathon yesterday, and I just wanted to show you the project that they built.
その良い例が、昨日のハッカソンで誰かが作ったもので、そのプロジェクトをお見せしたいと思います。
It was a Mandarin idiom coach, and I'll show you what the code looked like first.
このプロジェクトは中国語のイディオムコーチです。
I'll show you the demo first.
まずデモをお見せします。
I think I already pulled it up.
もう引っ張り出してきたと思います。
Here we go.
さあ、どうぞ。
So, the buddy that this person wanted to create was a friend that, if you gave it a particular problem you were having, it would pick a Chinese idiom, a four-character 成语, that described poetically, like, Here's a particular way you could say this, and it would tell it to her.
この人が作りたかった友達は、特定の問題を与えると、それを詩的に表現する4文字の成語(ちょうゆ)を選んで、こう言った具合に表現できると教えてくれる友達でした。
So that the person who built this was studying Chinese, and she wanted to learn more about it.
これを作った人は中国語を勉強していて、中国語についてもっと知りたいと思っているわけです。
So I might say something like, I'm feeling very sad.
だから、私は「とても悲しい気分です」と言うかもしれません。
And it would think a little bit.
そうすると、ちょっと考えてくれるんです。
And if everything's up and running, it will generate one of these four-character phrases, and it will respond to it with an example.
そして、すべてがうまくいけば、この4文字のフレーズを1つ生成し、それに対して例文で応答してくれるのです。
Now, I don't know if this is correct or not.
さて、これが正しいかどうか、私にはわかりません。
So if somebody can call me out if this is actually incorrect, please call me out.
もし、これが間違っているのであれば、どなたか教えてください。
And it will then finish up with something encouraging, saying, hey, you can do it.
そして最後に、「あなたならできる」と励まします。
I know this is hard.
これが難しいのは分かっている。
Keep going.
続けてください。
So let me show you how they built this.
では、これをどのように作ったかをお見せしましょう。
So they pulled up the code.
まず、コードを表示させます。
right here.
ここにあります。
So, this was the particular starter replete that folks were using in the hackathon yesterday, and we pulled things up into basically you have a wrapper around GPT, and there's many things you could do, but we're going to make it easy for you to do two things.
昨日のハッカソンで参加者が使用していた特定のスターターリプリートで、基本的にGPTをラップするものがありますが、できることはたくさんありますが、2つのことを簡単に行えるようにします。
One of them is to inject some personality into the prompt, and I'll explain what that prompt is in a second, and then the second is to add tools that might go out and do a particular thing: search the web, generate an image, add something to a database, or fetch something from a database.
一つはプロンプトに個性を注入することで、このプロンプトについては後ほど説明します。もう一つは、特定のことを行うツールを追加することです。例えば、ウェブを検索する、画像を生成する、データベースに何かを追加する、あるいはデータベースから何かを取得するなどです。
So having done that now you have something more than GPT.
そうすることで、GPT以上のものを手に入れることができるのです。
Now you have GPT which we all know what it is and how we can interact with it but you've also added a particular lens through which it's talking to you and potentially some tools.
GPTは、それが何であるか、どのように対話できるかを知っていますが、さらに、GPTがあなたと対話するための特定のレンズと、潜在的にいくつかのツールが追加されています。
So this particular Chinese tutor all it took to build that was four lines.
この中国語の家庭教師は、4行で構築しました。
So here's a question that I think is frying the minds of everybody in the industry right now.
ここで、この業界の誰もが今、頭を悩ませている疑問があるのではないでしょうか。
So, is this something that we'll all do casually and nobody really knows?
これは、私たちが何気なくやっていることで、実際には誰も知らないことなのでしょうか。
Will we just all say in the future to the LLM, Hey, for the next five minutes, please talk like a teacher?
将来、LLMに「ねえ、これから5分間、先生のような話し方をしてください」と言うだけなのだろうか?
And maybe, but also definitely in the meantime, and maybe in the future, it makes sense to wrap up these personalized endpoints.
そして、おそらくですが、間違いなくその間に、そして将来的には、このような個人的な終着点を包むことに意味があるのです。
So, when I'm talking to GPT, I'm not just talking to GPT; I have a whole army of different buddies, of different companions, that I can talk to.
GPTと話すとき、私はGPTと話すだけでなく、さまざまな仲間たちと話すことができるのです。
They're kind of human and kind of talk to me interactively, but because I pre-loaded them with, Hey, by the way, you, in particular, I want you to be a kind, helpful Chinese teacher that responds to every situation by explaining the Chang'e that fits it.
彼らは人間のようで、対話的に話しかけてくれますが、特にあなたには、親切で役に立つ中国語の先生であることを求め、それぞれの状況に適した成語を説明してくれると、事前にロードしておくことができます。
Speak in English and explain the Chang'e and its meaning then provide a note of encouragement about learning language.
英語で話して、嫦娥とその意味を説明し、語学学習の励みになるような言葉を添える。
And so just adding something like that even if you're a non-programmer you can just type deploy.
このように、ノンプログラマーでも「deploy」と入力するだけで、その内容を追加できます。
And it'll pop it up to the web.
そうすると、ウェブにアップされます。
It'll take it over to a Telegram bot.
Telegramのボットに転送されます。
Then you can even interact with, hey, I'm feeling too busy.
そして、「今、忙しいんだ」と対話することもできます。
And interact with it over Telegram, over the web.
Telegramやウェブ上で対話することができます。
And this is the kind of thing that's now within reach for everybody from a CS 101 grad.
このようなことが、CS101の卒業生から誰にでも手が届くようになったのです。
Sorry, I'm using the general purpose framing.
すみません、汎用フレームを使用しています。
All the way through to professionals in the industry that you can do just with a little bit of manipulation on top of this raw unit of conversation and intelligence.
この会話と知能の原単位の上に、ちょっと操作するだけでできることが、業界のプロに至るまでずっと続いているのです。
So companionship is one of the first common types of apps that we're seeing.
コンパニオンは、私たちが目にする最初の一般的なタイプのアプリの1つです。
So a second kind of app that we're seeing, and this blew up, for those of you who are on Twitter followers, this blew up I think the last few months, is question answering.
Twitterのフォロワーならわかると思いますが、ここ数ヶ月で爆発的に普及したのが質問応答です。
And I want to unpack a couple of different ways this can work, because I know many of you have probably already tried to build some of these kinds of apps.
皆さんの多くは、すでにこの種のアプリを作ろうとしたことがあると思うので、このアプリがどのように機能するのか、いくつかの異なる方法を説明したいと思います。
There's a couple of different ways that it works.
このアプリには、いくつかの異なる仕組みがあります。
The general framework is a user queries GPT.
一般的な枠組みは、ユーザーがGPTに問い合わせをする。
And maybe it has general purpose knowledge.
そして、そのGPTには汎用的な知識があるかもしれません。
Maybe it doesn't have general purpose knowledge.
汎用的な知識を持っている場合もあれば、そうでない場合もあります。
But what you want it to say back to you is something specific about an article you wrote, or something specific about your course syllabus, or something specific about a particular set of documents from the United Nations on a particular topic.
しかし、あなたがそれに戻ってほしいのは、あなたが書いた記事についての具体的なこと、あなたのコースのシラバスについての具体的なこと、あるいは特定のトピックに関する国連の特定の文書についての具体的なことです。
And so what you're really seeking is what we all hoped the customer service bot would be.
つまり、あなたが本当に求めているのは、私たちが望んでいたカスタマーサービスボットの姿なのです。
We've all interacted with these customer service bots, and we're kind of smashing our heads on the keyboard as we do it.
私たちは皆、カスタマーサービスボットに接し、キーボードに頭をぶつけながら、このようなやり取りをしてきました。
But pretty soon, we're going to start to see very high fidelity bots that interact with us comfortably.
しかし、もうすぐ、私たちと快適に対話できる、非常に忠実度の高いボットが登場することになるでしょう。
And this is approximately how to do it as an engineer.
そしてこれが、エンジニアとしてのおおよそのやり方です。
So here's your game plan as an engineer.
では、エンジニアとしてのゲームプランをご紹介しましょう。
Step one, take the documents that you want it to respond to.
ステップ1:応答させたい文書を用意します。
Step two, cut them up.
ステップ2、それを切り刻む。
Now, if you're an engineer, this is going to madden you.
さて、あなたがエンジニアであれば、これはあなたを怒らせることになるでしょう。
You don't cut them up in a way that you would hope.
希望するような切り方をしないんですね。
For example, you could cut them up into clean sentences or clean paragraphs, or semantically coherent sections.
例えば、きれいな文章やきれいな段落、意味的に一貫性のあるセクションに分割することができます。
And that would be really nice.
そうすれば、本当にいいんです。
Honestly, the way that most folks do it, and this is a simplification that tends to be just fine, is you have a sliding window that goes over the document, and you just pull out fragments of text.
正直言って、ほとんどの人が行っている方法で、これはかなりうまくいく簡略化方法ですが、ドキュメントをスライドするウィンドウがあり、テキストの断片を引き出すだけです。
Having pulled out those fragments of text, you turn them into something called an embedding vector.
テキストの断片を取り出したら、それを埋め込みベクトルと呼ぶものに変えます。
So an embedding vector is a list of numbers that approximate some point of meaning.
埋め込みベクトルとは、ある意味での近似値である数値のリストです。
So you've already all dealt with embedding vectors yourself in regular life, and the reason you have, and I know you have, is because everybody's ordered food from Yelp before.
なぜかというと、皆さんはYelpで食べ物を注文したことがあるからです。
So when you order food from Yelp, you look at what genre of restaurant is it?
Yelpで料理を注文するとき、どのようなジャンルのレストランなのかを調べますよね。
Is it a pizza restaurant?
ピザ屋さんなのか?
Is it an Italian restaurant?
イタリアンレストランなのか?
Is it a Korean barbecue place?
韓国の焼肉屋さんなのか?
You look at how many stars does it have?
星がいくつついているか?
One, two, three, four, five.
1つ、2つ、3つ、4つ、5つ。
You look at where is it?
どこにあるのか?
So all of these you can think of as points in space, dimensions in space.
これらはすべて、空間の点、空間の次元として考えることができる。
Korean barbecue restaurant, four stars, near my house.
私の家の近くにある韓国のバーベキューレストランは、4つ星です。
It's a three, three number vector.
これは3、3個の数字のベクトルです。
That's all this is.
これがすべてです。
So this is a thousand number vector, or a 10,000 number vector.
これが1000個の数字のベクトル、1万個の数字のベクトルなんですね。
Different models produce different size vectors.
モデルによって異なるサイズのベクトルを生成します。
All it is, is chunking pieces of text, turning it into a vector that approximates meaning, and then you put it in something called a vector database, and a vector database is just a database that stores numbers.
それはテキストのかたまりを分割し、意味を近似するベクトルに変換し、それをベクトルデータベースと呼ばれるものに入れるだけです。ベクトルデータベースとは、単に数字を格納するデータベースのことです。
But having that database, now when I ask a question, I can search the database and I can say, hey, the question was, what does CS50 teach?
しかし、このデータベースがあれば、質問をしたときにデータベースを検索することができ、「CS50では何を教えているのだろう?
What pieces of text in the database have vectors similar to the question, what does CS50 teach?
という質問に似たベクトルを持つテキストは、データベースのどの部分にあるのでしょうか?
And there's all sorts of tricks and empires being made on refinements of this general approach, but at the end, you, the developer, model it simply as thus.
この一般的なアプローチを改良することで、さまざまなトリックや帝国が作られていますが、最終的には、開発者であるあなたが、このように簡単にモデル化するのです。
And then, when you have your query, you embed it, you find the document fragments, and then you put them into a prompt, and now we're just back to the personality, the companionship bot.
そして、クエリがあったら、それを埋め込み、ドキュメントの断片を見つけ、それをプロンプトに落とし込む。
Now it's just a prompt, and the prompt is, you're an expert in answering questions.
今度はただのプロンプトです。プロンプトは「あなたは質問に答える専門家です。
Please answer, user provided question, using source documents, results from the database.
ユーザーからの質問に答えてください、ソース文書、データベースの結果を使用しています。
That's it.
これだけです。
So after all of these decades of engineering of these customer service bots, it turns out with a couple of lines of code, you can build this.
何十年にもわたってカスタマーサービスボットを設計してきた結果、数行のコードでこれを作ることができることがわかりました。
So let me show you, I made one just before the class with the CS50 syllabus.
CS50のシラバスを見ながら、授業の直前に作ったものをお見せしましょう。
So we can pull that up, and I can say, I added the PDF right here.
シラバスを表示させ、「ここにPDFを追加しました」と言うことができます。
So I just, I searched, I don't know if, I apologize, I don't know if it's an accurate or recent syllabus.
このシラバスは、正確かどうか、最近のものかどうか、申し訳ありませんが、わかりません。
I just searched the web for CS50 syllabus PDF.
CS50のシラバスのPDFをウェブで検索してみました。
I put the URL in here, it loaded it into here.
ここにURLを入れたら、ここに読み込まれました。
This is just like a hundred line piece of code deployed that will now let me talk to it, and I can say, what will CS50 teach me?
これは、100行のコードが配置されたようなもので、このコードに話しかけると、「CS50は何を教えてくれるのだろう」と言うことができます。
So under the hood now, what's happening is exactly what that slide just showed you.
つまり、今、ボンネットの中で起きていることは、先ほどのスライドで紹介したこととまったく同じなのです。
It takes that question, what will CS50 teach me?
CS50は何を教えてくれるのだろう」という問いを、ベクトルに変換します。
It turns it into a vector.
それをベクトルに変換します。
That vector approximates without exactly representing the meaning of that question.
このベクトルは、質問の意味を正確に表現することなく近似しています。
It looks into a vector database that Steamship hosts of fragments from that PDF, and then it pulls out a document and then passes it to a prompt that says, hey, you're an expert at answering questions.
SteamshipがホストするそのPDFからの断片のベクトルデータベースを調べ、ドキュメントを引き出し、質問に答える専門家であるかのようにプロンプトに渡します。
Someone has asked you, what does CS50 teach?
誰かがあなたに、CS50は何を教えているのか、と質問しています。
Please answer it using only the source documents and source materials I've provided.
私が提供したソース・ドキュメントとソース・マテリアルのみを使用して、それに答えてください。
Now those source materials are dynamically loaded into the prompt.
このように、プロンプトにはソース資料が動的に読み込まれます。
It's just basic prompt engineering, and I want to keep harping back onto that.
これは基本的なプロンプトエンジニアリングであり、私はこのことをずっと言い続けたいと思っています。
What's amazing about right now as builders is that so many things just boil down to very creative, tactical rearrangement of prompts, and then using those over and over again in an algorithm and putting that into software.
今、ビルダーとして驚くべきことは、多くのことが、非常にクリエイティブで戦術的なプロンプトの並べ替えに集約されること、そして、それをアルゴリズムで何度も何度も使い、ソフトウェアに落とし込むことです。
So the result, and again, it could be lying.
そして、その結果を、また、嘘かもしれない。
It could be making things up.
作り話かもしれない。
It could be hallucinating.
幻覚かもしれません。
CS50 will teach students how to think algorithmically and solve problems efficiently focusing on topics such as abstraction, dot, dot, dot, dot, dot, and then it returns the source document from which it was found.
CS50では、抽象化、ドット、ドット、ドット、ドット、ドットといったトピックに焦点を当て、アルゴリズム的な考え方や効率的な問題解決の方法を学び、その結果、発見されたソース・ドキュメントを返します。
So this is another big category of which there are tons of potential applications because you can repeat for each context.
このように、文脈ごとに繰り返すことができるため、これも大きなカテゴリーであり、膨大な数の応用が考えられます。
You can create arbitrarily many of these once it's software because once it's software, you can just repeat it over and over again.
ソフトウェアになれば、何度でも繰り返すことができるので、任意の数のものを作ることができます。
So for your dorm, for your club, for your slack, for your telegram, you can start to begin putting pieces of information in and then responding to it.
寮、部活、スラック、電報など、さまざまな情報を入れて、それに反応することができるのです。
And it doesn't have to be documents.
しかも、文書である必要はありません。
You can also load it straight into the prompt.
プロンプトに直接読み込ませることもできます。
I think I have it pulled up here, and if I don't, I'll just skip it.
ここに引っ張り出してきたと思うんだけど、なかったら読み飛ばすよ。
Oh, here we go.
あ、これでいい。
One other way you can do question answering, because I think it's healthy to always encourage the simplest possible approach to something, you don't need to engineer this giant system.
質問応答のもう一つの方法は、可能な限りシンプルなアプローチを常に奨励することが健全だと思うので、巨大なシステムを設計する必要はありません。
It's great to have a database.
データベースがあるのは素晴らしいことです。
It's great to use embeddings.
データベースを使うのもいいし、埋め込みデータを使うのもいい。
It's great to use this big approach.
この大きなアプローチを使うのは素晴らしいことです。
It's fancy at scales.
スケールが大きいと派手ですね。
You can do a lot of things.
いろいろなことができます。
But you can also get away with a lot by just pushing it all into a prompt.
しかし、それをすべてプロンプトに押し込むことで、多くのことを回避することもできるのです。
And as an engineer, I'm, you know, Eneos, one of our team who's here, always says like, engineers should aspire to be lazy, and I couldn't agree more.
エンジニアとして、私は、ここにいるチームの一人であるエネオスが、「エンジニアは怠け者を目指すべきだ」といつも言っているのですが、これには大賛成です。
You, as an engineer, should want to set yourself up so that you can pursue the lazy path to something.
エンジニアとして、何かに対して怠け者の道を追求できるように自分をセットアップしておきたいものです。
So here's how you might do the equivalent of a question answering system with a prompt alone.
そこで、プロンプトだけで質問応答システムに相当するようなことをする方法を紹介します。
Let's say you have 30 friends, and each friend is good at a particular thing, or you can, you know, this is isomorphic to many other problems.
例えば、30人の友達がいて、それぞれの友達がある特定のことが得意だとします。
You can simply just say, hey, I know certain things.
単純に、「私はあることを知っている」と言えばいいのです。
Here's the things I know.
これが私の知っていることです。
A user's gonna ask me something.
あるユーザーが私に何か質問してきます。
How should we respond?
どう答えればいいのか?
And then you load that into an agent that agent has access to GPT.
それをエージェントにロードし、エージェントはGPTにアクセスできるようにします。
You can ship deploy it.
それを出荷してデプロイすることができます。
And now you've got a bot that you can connect to Telegram, you can connect to Slack.
TelegramやSlackに接続できるボットができあがります。
And that bot, now it won't always give you the right answer because at a certain level, we can't control the variance of the model underneath, but it will tend to answer with respect to this list.
そのボットは、あるレベルではモデルのバリアンスを制御できないため、常に正しい答えを出すわけではありませんが、このリストに関しては答える傾向があります。
And the degree to which it tends to is to a certain extent, something that both industry is working on to just give everybody as a capacity, but also you doing prompt engineering to tighten up the error bars on it.
しかし、このリストに関しては、答えが出る傾向があります。その傾向は、ある程度、業界全体が能力として皆に提供するために取り組んでいることであり、また、エラーバーをより厳しくするために、エンジニアリングを迅速に行うことでもあります。
So I'll show you just a few more examples and then in about eight minutes I'll turn it over to questions because I'm sure you've got a lot about how to build things so just to give you a sense of where we are.
あと数分で質問に移るので、何を作る方法についてたくさんの質問があると思いますが、これまでのところどのような感じかをお見せします。
This is one I don't have a demo for you, but if you were to come to me and you were to say, Ted, I want a weekend hustle, man.
これはデモがないのですが、もしあなたが私のところに来て、「テッド、週末に仕事をしたいんだけど。
What should I build?
何を作ればいいんだ?
Holy moly.
なんてこった。
There are a set of applications that I would describe as utility functions.
ユーティリティ・ファンクションと呼ぶべきアプリケーションの一群があります。
I don't like that name because it doesn't sound exciting, and this is really exciting.
この名前はあまり好きではないのですが、これは本当にエキサイティングです。
And it's low-hanging fruits that automate tasks that require basic language understanding.
基本的な言語理解を必要とするタスクを自動化する、低空飛行の果実です。
So examples for this are generate a unit test.
例えば、ユニットテストを生成するようなものです。
I don't know how many of you have ever been writing tests, and you're just like, oh, come on.
テストを書いたことがある人がどれだけいるかわかりませんが、「ああ、もういいや」と思ってしまいますよね。
I can get through this.
これなら私にもできる。
I can get through this.
私なら乗り切れる。
If you're a person who likes writing tests, you're a lucky individual.
もしあなたがテストを書くのが好きな人だとしたら、あなたは幸運な人です。
Looking up the documentation for a function, rewriting a function, making something conform to your company guidelines, doing a brand check.
関数のドキュメントを調べること、関数を書き換えること、会社のガイドラインに沿わせること、ブランドチェックをすること。
All of these things are things that are kind of relatively context-free operations or scoped context operations on a piece of information that requires linguistic understanding.
これらはすべて、言語的な理解を必要とする情報の一部に対して、比較的文脈にとらわれない操作やスコープ付きの文脈操作を行うようなものである。
And really, you can think of them as something that is now available to you as a software builder, as a weekend project builder, as a startup builder, and you just have to build the interface around it and present it to other people in a context in which it's meaningful for them to consume.
そして、本当に、これらは現在、ソフトウェアビルダーや週末プロジェクトビルダー、スタートアップビルダーとしてあなたが利用できるものと考えられ、それを周囲に提示し、他の人にとって意味のあるコンテキストで消費できるようにインターフェイスを構築するだけです。
And so the space of this is extraordinary.
だから、この空間は並外れたものなのです。
I mean, it's the space of all human endeavor now with this new tool, I think, is the way to think about it.
つまり、この新しいツールによって、今、すべての人間の努力の空間が広がっているのだと思います。
People often joke about how when you're building a company, when you're building a project, you don't want to start with a hammer because you want you want to start with a problem instead.
よく冗談で、会社を作るとき、プロジェクトを立ち上げるとき、ハンマーから始めるのは嫌だ、なぜなら問題から始めたいからだ、と言われます。
And it's generally true, but my god, we've just got a really cool new hammer.
実際、その通りなのですが、このたび、とても素敵な新型ハンマーを手に入れました。
And to a certain extent, I would encourage you to at least casually on the weekends run around and hit stuff with it and see what can happen from a builder's, from a tinker's, from an experimentalist's point of view.
ある程度まで、週末には気軽に周囲を走り回ってものにぶつかって、ビルダーやいじり好き、実験家の視点から何が起こるかを見てみることをお勧めします。
And then the final one is creativity.
そして、最後の1つがクリエイティビティです。
This is another huge mega app.
これも巨大なメガアプリケーションです。
Now, I primarily live in the text world, and so I'm going to talk about text-based things.
さて、私は主にテキストの世界に住んでいるので、テキストベースのものについて話します。
I think so far, this has mostly been growing in the imagery world, because we're such visual creatures and the images you can generate are just staggering with AI.
なぜなら、私たちは視覚的な生き物であり、AIによって生み出されるイメージは、まさに驚異的だからです。
Certainly brings up a lot of questions too around IP and artistic style.
確かに、知的財産や芸術的なスタイルなど、さまざまな問題があります。
But the template for this, if you're a builder, that we're seeing in the wild, is approximately the following.
しかし、このテンプレートは、もしあなたがビルダーなら、私たちが実際に見ているのは、およそ次のようなものです。
And the thing I want to point out is domain knowledge here.
ここで指摘したいのは、ドメインの知識です。
This is really the purpose of this slide, is to touch on the importance of the domain knowledge.
このスライドの目的は、ドメイン知識の重要性に触れることです。
So many people approximately find the creative process as follows.
多くの人は、創造的なプロセスを次のように考えているようです。
Come up with a big idea.
大きなアイデアを思いつく。
Over-generate possibilities, edit down what you over-generated, repeat.
可能性を考えすぎ、考えすぎたものを編集し、それを繰り返す。
Right?
そうでしょう?
Like anybody who's been a writer, knows when you write, you write way too much, and then you have to delete lots of it.
作家であれば誰でも知っているように、文章を書くと、書きすぎてしまい、その多くを削除しなければなりません。
And then you revise and you write way too much, and you have to delete lots of it.
そして、推敲を重ねると、また書きすぎてしまい、たくさんの文章を削除しなければならなくなる。
This particular task is fantastic for AI.
この特殊な作業は、AIにとって素晴らしいものです。
One of the reasons it's fantastic for AI is because it allows the AI to be wrong.
AIにとって素晴らしい理由のひとつは、AIが間違いを犯すことを許容するからです。
You know, you've pre-agreed, you're going to delete lots of it.
あなたは事前に、たくさんの文章を削除することに同意していますよね。
And so if you pre-agree, hey, I'm just going to generate five possibilities of the story I might tell, five possibilities of the advertising headline, five possibilities of what I might write my thesis on.
もしあなたが事前に同意したなら、私が語るかもしれないストーリーの5つの可能性、広告の見出しの5つの可能性、私が論文を書くかもしれない内容の5つの可能性を生成することになるのです。
You pre-agreed, it's okay if it's a little wrong because you are going to be the editor that steps in.
あなたが事前に同意したのだから、多少間違っていてもいいのです。なぜなら、あなたが編集者になるのですから。
And here's the thing that you really should bring to the table, is don't think about this as a technical activity.
そして、ここで、あなたが本当に持っておくべきことは、これを技術的な活動として考えてはいけないということです。
Think about this as your opportunity not to put GPT in charge.
これは、GPTを担当させるのではなく、あなたが舵取りをする機会だと考えてください。
Instead, for you to grasp the steering wheel tighter, I think at least, in Python or the language you're using to program, because you have the domain knowledge to wield GPT in the generation of those.
代わりに、Pythonやプログラムに使用する言語で、GPTを使ってそれらを生成する際に、あなたがドメイン知識を持っているため、ハンドルをしっかり握ることが重要だと思います。
So let me show you an example of what I mean by that.
では、どういう意味か、例を挙げてみましょう。
So this is a cool app that someone created for the Writing Atlas project.
これは、ある人がWriting Atlasプロジェクトのために作成したクールなアプリです。
So Writing Atlas is a set of short stories.
Writing Atlasは、短編小説のセットです。
And you can think of it as Goodreads for short stories.
短編小説のGoodreadsのようなものだと考えてください。
So you can go in here, you can browse different stories.
ここに入って、さまざまな物語を閲覧することができます。
And this was something somebody created where you can type in a story, a description that you like.
これは誰かが作ったもので、好きなストーリーや説明を入力することができます。
And this is going to take about a minute to generate.
これは生成に1分ほどかかります。
So I'm going to talk while it's generating.
生成される間、私は話をするつもりです。
And while it's working, what it's doing, and I'll show you the code in a second, is it's searching through the collection of stories for similar stories.
生成中に何をしているかというと、すぐにコードをお見せしますが、ストーリーのコレクションから似たようなストーリーを探しているのです。
And here's where the domain knowledge part comes in.
ここで、ドメイン知識の部分が登場します。
Then, it uses GPT to look at what it was that you wanted and use knowledge of how an editor, how a bookseller thinks, to generate a set of suggestions specifically through the lens of that perspective, with the goal of writing that beautiful handwritten note that we sometimes see in a local bookstore, tacked on underneath a book.
それから、GPTを使ってあなたが何を求めていたかを見て、編集者や書店員の考え方の知識を使って、その視点を通した特定の提案を生成し、地元の書店で時々見かける素晴らしい手書きのメモを書くことを目指します。
And so it doesn't just say, hey, you might like this, here's a general purpose reason why you might like this, but specifically, here's why you might like this with respect to what you gave it.
そのため、単に「あなたはこれが好きかもしれません」と言うだけでなく、「あなたがこれを贈ったことに関して、あなたがこれを好きかもしれない理由」を具体的に説明することができるのです。
It's either stalling out, or it's taking a long time.
失速しているか、時間がかかっているかのどちらかです。
Oh, there we go.
ああ、そうですか。
So here's its suggestions.
これがその提案です。
And in particular, these things, these are things that only a human could know, at least for now.
特に、これらのことは、少なくとも今のところ、人間だけが知り得ることです。
Two humans, specifically.
具体的には二人の人間だ。
The human who said they wanted to read a story, that's the text that came in, and then the human who added domain knowledge to script a sequence of interactions with the language model so that you could provide very targeted reasoning over something that was informed by that domain knowledge.
物語を読みたいと言った人間が送信したテキストであり、そのドメイン知識を持った人間が言語モデルとのやりとりをスクリプト化して、そのドメイン知識に基づいた情報で非常にターゲット指向の推論を提供できるようにしたものです。
So for these utility apps, bring your domain knowledge.
ですから、このようなユーティリティ・アプリケーションには、ドメイン知識を持参してください。
Let me actually show you how this looks in code because I think it's useful to see how simple and accessible this is.
実際にコードでどのように見えるかをお見せしましょう。これがいかにシンプルでアクセスしやすいかを確認するのに役立つと思うからです。
This is really a set of prompts.
これは本当にプロンプトのセットです。
So why might they like a particular location?
では、なぜ特定の場所が好きなのでしょうか?
Well here's the prompt that did that, this is an open source project and it has a bunch of examples and then it says well here's the one that we're interested in.
これはオープンソースのプロジェクトで、たくさんの例があり、その中から私たちが興味を持っているものを選んでいます。
Here's the audience, here's a couple of examples of why might people like a particular thing in terms of audience, it's just another prompt.
これはオープンソースのプロジェクトで、たくさんの例が載っています。
Same for topic, same for explanation, and if you go down here and look at how it was done suggesting the story is, what is this, line 174 to line 203, it really is, and again, like over and over again, I want to impress upon you, this really is within reach.
トピックや説明も同様で、ここを見ると、物語を提案する方法は、174行目から203行目までで、本当にこれが手の届く範囲にあることを繰り返し強調したいです。
It's really just what, 20 odd lines of step one: search in the database for similar stories, step two: given that I have similar stories, pull out the data, step three: with my domain knowledge in Python, now run these prompts, step four: prepare that into an output.
実際には、20行ほどのステップ1: データベースで類似の物語を検索する、ステップ2: 類似の物語があることを確認したら、データを抽出する、ステップ3: ドメイン知識を持ったPythonでこれらのプロンプトを実行する、ステップ4: 結果を出力にまとめる、といった手順です。
So the thing we're scripting itself is some approximation of human cognition, if you're willing to go there metaphorically, we're not sure, I'm not going to weigh in on where we are on the is OpenAI a life form argument.
つまり、私たちがスクリプトを作成しているのは、人間の認知に近いものであり、そこに喩えて言うなら、OpenAIは生命体なのか、という議論について、私たちがどのような位置にいるかは分かりませんが、議論するつもりはありません。
All right, one kind of really far out there thing, and then I'll tie it up for questions because I know there's probably a lot, and I also want to make sure you get great pizza in your bellies.
さて、1つだけ本当に突拍子もないことを書きますが、質問を受け付けます。
And that is BabyAGI, AutoGPT is what you might have heard them called on Twitter.
BabyAGI、AutoGPTは、Twitterでそう呼ばれているのを聞いたことがあるかもしれませんね。
I think of them as multi-step planning bots.
私は、マルチステップ・プランニング・ボットのように考えています。
So everything I showed you so far was approximately one shot interactions with GPT.
これまでご紹介したのは、GPTとの一発勝負のやり取りでした。
So this is the user says they want something, and then either Python mediates interactions with GPT, or GPT itself does some things with the inflection of a personality that you've added from some prompt engineering.
これは、ユーザーが何かを望んでいると言って、PythonがGPTとのやりとりを仲介するか、GPT自体がプロンプトエンジニアリングから追加した人格のニュアンスを持っていくつかのことを行う場合です。
Really useful, pretty easy to control, if you want to go to production, if you want to build a weekend project, if you want to build a company, that's a great way to do it right now.
本当に便利で、制御も簡単です。本番を目指すなら、週末のプロジェクトや会社を作りたいなら、今すぐにでもできる素晴らしい方法です。
This is wild, and if you haven't seen this stuff on Twitter, I would definitely recommend going to search for it.
これはワイルドです、もしTwitterでこのようなものを見たことがなければ、ぜひ検索してくることをお勧めします。
This is what happens, the simple way to put it is, if you put GPT in a for loop.
これはどういうことかというと、簡単に言うと、GPTをforループに入れると、こうなります。
If you let GPT talk to itself and then tell itself what to do.
GPTに自分自身と対話させ、自分自身に何をすべきかを指示するのです。
So...
つまり...
It's an emergent behavior, and like all emergent behaviors, it starts with a few simple steps.
それは創発的な行動であり、他の創発的な行動と同様に、いくつかの簡単なステップから始まります。
The Conway's Game of Life, many elements of reality turn out to be math equations that fit on a t-shirt, but then when you play them forward in time, they generate DNA, they generate human life.
コンウェイのライフゲームのように、現実の多くの要素がTシャツに収まる数式で表されますが、時間が経つにつれてDNAや人間の生命を生成します。
So this is approximately step one, take a human objective.
つまり、これがおおよそのステップ1であり、人間の目標を設定する。
Step two, your first task is to write yourself a list of steps, and here's the critical part, write.
ステップ2、最初の仕事は、自分でステップのリストを書くことです。ここで重要なのは、書くことです。
Now do the list of steps.
ここで重要なのは「書く」ことです。
Now you have to embody your agent with the ability to do things, so it's really only limited to do what you give it the tools to do, and what it has the skills to do.
エージェントができることは、あなたが道具として与えたこと、そしてスキルとして持っていることに限定されます。
So, obviously, this is still very much a set of experiments that are running right now, but it's something that we'll see unfold over the coming years.
ですから、これは現在進行中の実験にすぎませんが、今後数年間はこのような展開が見られるでしょう。
And this is the scenario in which Python stops becoming so important because we've given it the ability to actually self-direct what it's doing, and then it finally gives you a result.
Pythonが重要でなくなるシナリオは、Pythonに自己管理能力を持たせて、最終的に結果を出すことです。
And I want to give you an example still of just, again, impressing upon you how much of this is prompt engineering, which is wild, how little code this is.
この例では、いかにプロンプトエンジニアリングであるか、いかにコードが少ないかということを、改めて実感していただきたいと思います。
Let me show you what BabyAGI looks like.
BabyAGIがどのようなものかをお見せしましょう。
So here is a BabyAGI that you can connect to Telegram.
これがBabyAGIで、Telegramに接続することができます。
And this is an agent that has two tools.
そしてこれは、2つのツールを持つエージェントです。
So I haven't explained to you what an agent is, I haven't explained to you what tools are, I'll give you a quick one sentence description.
エージェントが何なのか、ツールが何なのか、まだ説明していないので、簡単に一文で説明します。
An agent is just a word to mean GPT plus some bigger body in which it's living.
エージェントとは、GPTと、そのGPTが生きている大きな体という意味の言葉です。
Maybe that body has a personality, maybe it has tools, maybe it has Python mediating its experience with other things.
その身体には人格があり、道具があり、他のものとの経験を媒介するパイソンがあるかもしれません。
Tools are simply ways in which the agent can choose to do things.
ツールとは、エージェントが物事を行うことを選択するための方法です。
Like imagine if GPT could say, order a pizza, and instead of you seeing the text, order a pizza, that caused the pizza to be ordered.
例えば、GPTが「ピザを注文してください」と言えば、「ピザを注文してください」というテキストが表示される代わりに、ピザが注文されたとします。
That's a tool.
これはツールです。
So these are two tools it has.
これがGPTの持つ2つのツールです。
One tool is generated to-do list, one tool is do a search on the web.
ひとつはToDoリスト、もうひとつはウェブ検索です。
And then down here, it has a prompt saying, hey, your goal is to build a task list and then do that task list.
そしてこの下には、「あなたの目標はタスクリストを作成し、そのタスクリストを実行することです」というプロンプトが表示されています。
And then this is just placed into a harness that does it over and over again.
そして、これを何度も繰り返し行うハーネスに入れるのです。
So after the next task, kind of enqueue the results of that task and keep it going.
次のタスクの後、そのタスクの結果をエンキューして継続させるのです。
And so in doing that, you get this kick-started loop, where essentially you kick-start it and then the agent is talking to itself.
そうすることで、キックスタート・ループができ、キックスタートするとエージェントが自分自身と会話するようになるのです。
So this, unless I'm wrong, I don't think this has yet reached production in terms of what we're seeing in the field of how people are deploying software.
このように、私が間違っていなければ、ソフトウェアを導入する現場において、この方法はまだ製品化されていないように思います。
But if you want to dive into sort of the wildest part of experimentation, this is definitely one of the places you can start and it's really within reach.
しかし、もしあなたが実験という荒唐無稽な分野に飛び込みたいのであれば、これは間違いなく始められる場所の1つであり、本当に手の届くところにあるものなのです。
All you have to do is download one of the starter projects for it and you can kind of see right in the prompting, here's how you kick-start that process of iteration.
スターター・プロジェクトをダウンロードするだけで、プロンプトが表示され、反復のプロセスを開始する方法を知ることができます。
All right, so I know that was super high level.
さて、超高度な話でしたが、お役に立てたでしょうか?
I hope it was useful.
お役に立てたなら幸いです。
I think from the field, from the bottoms up, what we're seeing and what people are building, kind of this high level categories of apps that people are making.
現場から、ボトムアップから、私たちが見ているもの、人々が作っているもの、つまり、人々が作っているアプリのハイレベルな分類を考えてみました。
All of these apps are apps that are within reach to everybody, which is really, really exciting.
これらのアプリはすべて、誰もが手の届くところにあるアプリであり、本当に、本当にエキサイティングです。
And I suggest Twitter is a great place to hang out and build things.
Twitterは、みんなで集まって何かを作るには最適な場所だと思います。
There's a lot of AI builders on Twitter publishing.
Twitterでは、たくさんのAIビルダーが発表しています。
And I think we've got a couple minutes before pizza is arriving, maybe 10 minutes.
ピザが届くまであと数分、10分くらいでしょうか。
Keep on going?
続けてくれる?
Oh, so if there's any questions, why don't we kick it to that?
何か質問があれば、それを聞いてからにしませんか?
Because I'm sure there's some questions that you all have.
皆さんから質問があると思いますので。
I guess I ended a little early.
ちょっと早く終わってしまったようです。
Yes?
そうですか?
Yeah, so another question around communication.
もうひとつ、コミュニケーションに関する質問です。
And so one of our abilities when we first come up with applications, for example, is that I'm giving you like a physics problem from a key that you don't want to do that, as you know.
例えば、私たちが最初にアプリケーションを思いついたとき、私たちの能力の1つは、物理学の問題をキーから与えることですが、ご存知のように、あなたはそれをやりたくありません。
40% of the time, you get lost.
40%は迷いますね。
Do you have any actual recommendations that the developers can be doing to make it into ALS, or things that OpenAI on the back end?
ALSにするために開発者ができること、あるいはバックエンドでOpenAIができることで、実際に推奨できることはありますか?
So the question was approximately how do you manage the hallucination problem?
そこで質問ですが、およそ幻覚の問題をどのように管理するのでしょうか?
Like, if you give it a physics lecture and you ask it a question, on the one hand, it appears to be answering you correctly; on the other hand, it appears to be wrong to an expert's eye 40% of the time, 70% of the time, 10% of the time.
物理の講義をさせて質問をすると、一方では正しく答えているように見えるが、他方では専門家の目には40%、70%、10%の確率で間違っているように見えるというように。
It's a huge problem.
これは大きな問題です。
And then what are some ways as developers practically you can use to mitigate that?
では、それを軽減するために、開発者として実践的に使える方法は何でしょうか?
I'll give an answer so you may have some specific things too.
私は答えを出しますので、皆さんも具体的な方法をご存じかもしれません。
So one high level answer is the same thing that makes these things capable of synthesizing information is part of the reason why it hallucinates for you.
ハイレベルな答えとしては、情報を合成する能力があるのと同じことが、幻覚を見せる理由の一部になっているということです。
So it's hard to have your cake and eat it too to a certain extent.
だから、ある程度、ケーキを食べるのは難しいんです。
So this is part of the game, in fact humans do it too.
これはゲームの一部であり、実際、人間もそうしているのです。
Like people talk about, you know, just folks who kind of are too aggressive in their assumptions about knowledge, I can't remember the name for that phenomenon, where you'll just say stuff, right?
人々は、知識について過度に積極的な仮定を持つ人々について話しますが、その現象の名前は思い出せません。ただ物事を言うだけですね。
I don't know.
そうなんです。
Some things you can do are kind of a range of activities, depending on how much money you're willing to spend, how much technical expertise you have.
あなたができることは、あなたがどれくらいのお金を使うつもりなのか、どれくらいの技術的な専門知識を持っているのかにもよりますが、ある種の活動の幅があります。
That can range from fine-tuning a model to practically, so I'm in the applied world, so I'm very much in the world of duct tape and sort of how developers get stuff done.
私は応用の世界にいるので、ガムテープの世界や、開発者が何かを成し遂げる方法のようなものにとても詳しいんです。
So some of the answers I'll give you are sort of very duct tapey answers.
ですから、私がお伝えする答えの中には、非常にガムテープ的な答えもあります。
Giving it examples tends to work for acute things.
例を挙げると、鋭敏なものには効果がある傾向があります。
If it's behaving in wild ways, the more examples you give it, the better.
乱暴な振る舞いをするのであれば、例を挙げれば挙げるほどいいのです。
That's not going to solve the domain of all of physics.
しかし、それでは物理学の全領域を解決することはできません。
So for the domain of all of physics, I'm going to bail and give it to you because I think you are far more equipped than me to speak on that.
というわけで、物理学の全領域については、私よりもあなたの方がはるかに優れた能力を備えていると思うので、私は会釈してあなたに譲るつもりです。
Sure.
もちろんです。
So the model doesn't have a ground truth.
つまり、モデルには基本的な真実がないのです。
It doesn't know anything.
何も知らないのです。
Any sense of meaning that is derived from the training process is purely out of differentiation.
トレーニングの過程で得られる意味というのは、純粋に差別化から生まれるものです。
One word is not another word.
ある単語は別の単語ではありません。
Words are not used in the same context.
単語は同じ文脈で使われることはありません。
It understands everything only through examples given through language.
言語を通して与えられた例によってのみ、すべてを理解する。
It's like someone who learned English or how to speak, but they grew up in a featureless gray room, they've never seen the outside world, they have nothing to rest on that tells them that something is true and something is not true.
それは、英語や話し方を学んだ人が、特徴のない灰色の部屋で育ち、外の世界を見たことがなく、何かが真実で何かが真実でないことを教えてくれる拠り所が何もないようなものです。
So from the model's perspective, everything that it says is true.
だから、モデルの視点からは、モデルが言うことはすべて真実なのです。
It's trying its best to give you the best answer possible, and if lying a little bit or conflating two different topics is the best way to achieve that, then it will decide to do so.
そして、もし少し嘘をついたり、2つの異なるトピックを混同したりすることが、そのための最良の方法であるならば、そうすることにします。
It's a part of the architecture.
それがアーキテクチャの一部なのです。
We can't get around it.
私たちはそれを回避することはできません。
There are a number of cheap tricks that surprisingly get it to confabulate or hallucinate less.
意外と簡単な方法で、混同や幻覚を少なくすることができるのです。
One of them includes recently there was a paper that's a little funny.
そのひとつに、最近、ちょっと面白い論文がありました。
If you get it to prepend to its answer, my best guess is, that will actually improve or reduce hallucinations by about 80%. So clearly it has some sense that some things are true and other things are not, but we're not quite sure what that is.
回答の前に「私の最善の推測は」を追加すると、約80%の幻覚が減少または改善されるでしょう。だから、明らかに何かが真実であり、他のものはそうでないことを何らかの意味で感じているのですが、それが何なのかはまだよくわかりません。
To add on to what Ted was saying, a few cheap things you can do include letting it Google or Bing, as in Bing chat, what they're doing, it cites this information, asking it to make sure its own response is good.
Tedが言っていたことに追加して、簡単にできることのいくつかには、GoogleやBingを利用させることが含まれます。例えば、Bingチャットでは、それらが行っている情報を引用し、自分の回答が適切であることを確認するように求めます。
But if you've ever had ChatGPT generate a program, there's some kind of problem and you ask ChatGPT, I think there's a mistake.
しかし、ChatGPTにプログラムを生成させたことがある場合、何らかの問題があり、ChatGPTに尋ねると、間違いがあるようです。
Often it will locate the mistake itself, why it didn't produce the right answer at the very beginning, we're still not sure, but we're moving in the direction of reducing hallucinations.
なぜ最初から正しい答えを出さなかったのか、まだわかりませんが、幻覚を減らす方向には進んでいるようです。
Now with respect to physics, you're going to have to give it an external database to rest on because internally, for really, really domain-specific knowledge, it's not going to be as deterministic as one would like.
物理学に関しては、外部データベースに依存する必要があります。なぜなら、非常にドメイン固有の知識に関しては、内部では望まれるほど決定論的ではないからです。
These things work in continuous spaces, these things, they don't know what is wrong, what is true, and as a result, we have to give it tools.
このようなものは連続的な空間で働くため、何が間違っていて、何が真実なのかがわかりません。
So everything that Ted demoed today is really striving at reducing hallucinations, actually, really, and giving it more abilities.
ですから、今日のテッドのデモはすべて、幻覚を減らし、より多くの能力を与えることに努めているのです。
I hope that answers your question.
質問の答えになるといいのですが。
One of the ways, too, I'm a simple guy, I tend to think that all of the world tends to be just a few things repeated over and over again, and we have human systems for this.
私は単純な人間なので、世の中のことはすべて、いくつかのことを何度も何度も繰り返しているに過ぎないと考える傾向があり、そのための人間のシステムがあります。
You know, in a team, like companies work, or a team playing sport, and we're not right all the time, even when we aspire to be, and so we have systems that we've developed as humans to deal with things that may be wrong.
チームや企業の仕事、スポーツをするチームのように、私たちは常に正しいわけではありませんが、そうであることを望んでいます。そのため、人間として間違ったことに対処するためのシステムを開発してきました。
So you know, human number one proposes an answer, human number two checks their work, human number three provides the final sign-off.
だから、人間には、間違っているかもしれないことに対処するために、人間として開発したシステムがあるのです。つまり、1番目の人間が答えを提案し、2番目の人間が自分の仕事をチェックし、3番目の人間が最終的なサインを出す。
This is really common, anybody who's worked in a company has seen this in practice.
これは本当によくあることで、会社で働いたことのある人なら誰でも実際に見たことがあるはずです。
The interesting thing about the state of software right now, we tend to be in this mode in which we're just talking to GPT as one entity.
今のソフトウェアの状況について興味深いのは、私たちはGPTを1つの実体として語るというモードになりがちだということです。
But, once we start thinking in terms of teams, so to speak, where each team member is its own agent with its own set of objectives and skills, I suspect we're going to start seeing a programming model in which the way to solve this might not necessarily be to make a single brain smarter, but instead to draw upon the collective intelligence of multiple software agents, each playing a role.
しかし、いわばチームという観点で考え始めると、各チームメンバーがそれぞれの目標とスキルを持つ独立したエージェントである場合、この問題を解決する方法は必ずしも1つの頭脳をより賢くすることではなく、それぞれの役割を果たす複数のソフトウェアエージェントの集合的な知性を活用するプログラミングモデルが登場することになると思われます。
And I think that that would certainly follow the human pattern of how we deal with this.
そうすれば、私たちがこの問題に対処する方法として、人間のパターンに沿ったものになるのではないでしょうか。
To give an analogy, space shuttles, things that go into space, spacecraft, they have to be good.
例えるなら、スペースシャトルや宇宙へ行くもの、宇宙船は、良いものでなければなりません。
If they're not good, people die.
下手をすると、人が死んでしまいます。
They have like no margin for error at all, and as a result, we over-engineer those systems.
そのため、システムを過剰に設計してしまうのです。
Most spacecraft have three computers, and they all have to agree in unison on a particular step to go forward.
ほとんどの宇宙船には3台のコンピュータが搭載されていますが、あるステップに進むためには、すべてのコンピュータが一斉に合意しなければなりません。
If one does not agree, then they recalculate, they recalculate, they recalculate until they arrive at something.
もし1人が同意しなければ、再計算し、再計算し、再計算し、何かにたどり着くまで再計算するのです。
The good thing is that hallucinations are generally not a systemic problem in terms of its knowledge.
良い点は、幻覚は一般的に、その知識という点ではシステム的な問題ではないということです。
It's often a one-off.
一過性のものであることが多いのです。
The model, something tripped it up, and it just produced a hallucination in that one instance.
モデルが何かにつまづいて、その1回だけ幻覚を見せるのです。
So if there's three models working in unison, just instead of saying that will generally speaking improve your success.
ですから、もし3つのモデルが一体となって動作しているのであれば、それを言う代わりに、一般的に言えば、成功率を上げることができるのです。
A number of the examples you show have assertions like you are an engineer, you are an AI, you are a teacher.
あなたが示した例の多くには、「あなたはエンジニアです」「あなたはAIです」「あなたは教師です」という主張があります。
What's the mechanism by which that influences this combination of probabilities?
このような確率の組み合わせに影響を与えるメカニズムは何なのでしょうか?
Sure.
もちろんです。
I'm going to give you what might be an unsatisfying answer, which is it tends to work.
不満足な答えかもしれませんが、「うまくいく傾向がある」ということです。
But I think we know why it tends to work, and again, it's because these language models approximate how we talk to each other.
しかし、なぜうまくいく傾向があるのか、その理由はわかっています。
So if I were to say to you, hey, help me out, I need you to mock interview me.
もし私があなたに、「ねえ、手伝ってよ、私の模擬面接をしてほしいんだ」と言ったとします。
That's a direct statement I can make that kicks you into a certain mode of interaction.
これは、ある種の相互作用のモードにあなたを導く、直接的な発言です。
Or if I say to you, help me out, I'm trying to apologize to my wife.
あるいは、「助けてください、私は妻に謝りたいんです。
She's really mad at me.
妻は本当に怒っているんだ。
Can you role play with me?
一緒にロールプレイしてくれませんか?
That kicks you into another mode of interaction.
そうすると、別のインタラクションモードに移行することができます。
And so it's really just a shorthand that people have found to kick the agent in, to kick the LLM into a certain mode of interaction that tends to work in the way that I as a software developer am hoping it would work.
このため、ソフトウェア開発者として期待している方法で機能するような特定の対話モードにLLMを活用するための人々が見つけた省略表現にすぎません。
And to really quickly add on to that, being in the digital humanities that I am, I like to think of it as a narrative.
さらに、デジタル人文科学に携わっている私は、これを「物語」と考えたいのですが、これは本当に簡単なことです。
A narrative will have a few different characters talking to each other; their roles are clearly defined, two people are not the same.
物語には、数人の異なる人物が登場し、互いに話をします。彼らの役割は明確に定義されており、2人の人間は同じではありません。
This interaction with GPT, it assumes a personality, it can simulate personalities, it itself is not conscious in any way, but it can certainly predict what a conscious being would react like in a particular situation.
GPTとのやりとりでは、GPTは人格を想定し、人格をシミュレートできますが、それ自体は意識的ではありません。しかし、特定の状況で意識的な存在がどのように反応するかを予測することは確かにできます。
So when we're going you are X, it is drawing up that personality and talking as though it is that person.
ですから、私たちが「あなたはXです」と言うとき、その人格を描き出し、あたかもその人であるかのように話しているのです。
Because it is like completing a transcript or completing a story in which that character is present and interacting and is active.
なぜならそれは、そのキャラクターが存在し、交流し、活動しているような記録を完成させたり、物語を完成させたりするようなものだからです。
So yeah.
そうそう。
I think we've got about five minutes until the pizza outside.
外のピザまであと5分くらいかな。
Yes sir.
はい、了解です。
So, I'm not a CS person, but it's been fun playing with this, and I understand the sort of word-by-word generation and the sort of vibe, the feeling of it, you know, the narrative.
それで、私はCSの人間ではないのですが、これで遊ぶのは楽しいですし、一語一句生成するような、その雰囲気というか感覚というか、物語を理解することができますね。
Some of my friends and I have tried giving it logic problems, like things from the LSAT, for example, and it doesn't work.
友人と一緒に、例えばLSATのような論理問題を出題してみたのですが、うまくいきません。
And I'm just wondering why that would be.
なぜだろうと不思議に思っていました。
So it will generate answers that sound very plausible rhetorically, like given this condition why, but it will often even contradict itself in its answers, but it's almost never correct.
この条件ではなぜそうなるのか」というような、レトリック的にとてももっともらしい答えを出すのですが、その答えが矛盾していることもしばしばで、正しいことはほとんどありません。
So I was wondering why that would be, like it just can't reason, it can't think, and would we get to a place where it can, so to speak.
なぜそうなるのかというと、理性も思考もないのです。
You know what I mean, I don't really think it's conscious.
つまり、意識はないと思っているんです。
I mean, have thoughts.
つまり、思考を持つということです。
You want to talk about React?
リアクトの話をしたいんですか?
So GPT-4, when GPT-4 released back in March, I think it was, it was passing LSAT.
GPT-4が3月に発売されたとき、確かLSATに合格していたんですよね。
It was.
そうです。
It was, yeah.
そうだ、そうだ。
Yes.
そうです。
Yes, it just passed, as I understand it.
そうです、合格したんです、私の理解では。
Maybe it's because we're not using GPT-4.
GPT-4を使っていないからかもしれませんね。
That's one of the weird things is that, yeah, if you pay for ChatGPT, they give you access to the better model.
ChatGPTにお金を払うと、より良いモデルにアクセスできるようになるんですが、それが不思議なところです。
And one of the interesting things with it is prompting.
そして、面白いのがプロンプトです。
It's so finicky.
とても繊細なんです。
If you, it's very sensitive to the way that you prompt.
プロンプトの出し方にとても敏感なんです。
There were earlier on when GPT-3 came out, some people were going, look, I can pass literacy tests or no, it can't pass literacy tests.
GPT-3が登場した当初は、識字テストに合格できるとか、いや、識字テストには合格できないとかいう人がいた。
And then people who are pro or anti-GPT would be like, I modified the prompt a little bit.
そうすると、GPTに賛成する人も反対する人も、「プロンプトをちょっと変えてみたよ」となる。
Suddenly it can't or suddenly it can't.
急にできるようになったとか、急にできなくなったとか。
These things are not conscious.
このようなものには意識がありません。
Their ability to reason is like an aliens.
彼らの理性能力は宇宙人みたいなものです。
They're not us.
彼らは私たちとは違う。
They don't think like people.
彼らは人間のように考えることはない。
They're not human.
彼らは人間ではない。
But they certainly are capable of passing some things empirically, which demonstrates some sort of rationale or logic within the model.
しかし、彼らは経験的に物事を判断することができ、モデルの中にある何らかの合理性や論理性を実証することができます。
But we're still slowly figuring out, like a prompt whisperer, what exactly the right approach is.
しかし、私たちはまだゆっくりと、まるでプロンプトの囁きのように、正しいアプローチが何であるかを見つけ出しているところなのです。
Yeah.
そうですね。
Thank you very much.
ありがとうございました。
Obviously, having GDQ running and pumping it continuously is very expensive in terms of GDQ.
GDQを稼働させ、継続的にポンピングすることは、GDQの観点からも非常に高価なものであることは明らかです。
Have you seen instances where it can actually create some sort of business value in GDQ?
実際にGDQに何らかのビジネス価値を生み出すことができる事例を見たことがありますか?
sort of a startup or a company where is there a real added value of having sort of these little AI apps in terms of what they expect you to use.
スタートアップや企業で、小さなAIアプリのようなものを使うことで、本当の付加価値が生まれるようなケースはありますか?
Yeah, I mean, we host companies on top of us, who that's their primary product.
そうですね、私たちは、彼らの主要な製品である企業を私たちの上にホストしているのです。
The value that it adds is like any company.
その付加価値は、他の企業と同じです。
I mean, it's, you know, what is the Y Combinator motto?
つまり、Yコンビネーターのモットーは何でしょうか。
Make something people want.
人々が欲しがるものを作れ。
I mean, I wouldn't think of this as GPT inherently provides value for you as a builder.
つまり、GPTがビルダーであるあなたに本質的な価値を提供するとは思えません。
Like, that's their product, that's OpenAI's product.
これは彼らの製品であり、OpenAIの製品です。
You pay ChatGPT for prioritized access.
あなたはChatGPTにお金を払って、優先的にアクセスする。
Where your product might be is how you take that and combine it with your data, somebody else's data, some domain knowledge, some interface that then helps apply it to something.
あなたの製品は、それをどのように自分のデータ、他人のデータ、ドメイン知識、インターフェースと組み合わせ、何かに適用するのを助けるかということです。
It is, two things are both true.
これは、2つのことが両方とも真実です。
There are a lot of experiments going on right now, both for fun and people trying to figure out where the economic value is, but folks are also spinning up companies that are 100% supported by applying this to data.
今、多くの実験が行われています。楽しみながら、経済的な価値がどこにあるのかを探ろうとしている人たちもいますが、データに応用することで100%支持される企業を立ち上げている人たちもいます。
And for a company that wouldn't have...
そして、そのような会社では...
sort of wouldn't be like AI-focused as it may not, right?
のように、AIに特化したものではないかもしれませんよね?
As in just using or developing like in-house units that use GPT for productivity.
生産性のためにGPTを使うような社内ユニットを使ったり、開発したりするようなものです。
I think that it is likely that today we call this GPT and today we call these LLMs and tomorrow it will just slide into the ether.
今日、私たちはこれをGPTと呼び、今日、私たちはこれをLLMと呼び、明日、それはエーテルにスライドする可能性があると思います。
I mean imagine what the progression is going to be.
つまり、どのような進行になるかを想像してみてください。
Today there's one of these that people are primarily playing with.
今日、人々が主に遊んでいるのは、このうちの1つです。
There's many of them that exist, but one people are primarily building on top.
LLMは数多く存在しますが、人々が主にその上に構築しているのは1つです。
Tomorrow we can expect that there will be many of them and the day after that we can expect they're going to be on our phones and they're not even going to be connected to the internet.
明日は、このようなものがたくさん出てきて、明後日には、インターネットに接続されていない携帯電話に搭載されることも予想されます。
And for that reason I think that like today we don't call our software microprocessor tools or microprocessor apps, like the processor just exists.
そのため、今日のようにソフトウェアをマイクロプロセッサ・ツールやマイクロプロセッサ・アプリケーションと呼ばず、プロセッサがただ存在しているようなものだと思うのです。
I think that one useful model five years out, ten years out is to, even if it's only metaphorically true and not literally true, I think it's useful to think of this as a second processor.
5年後、10年後に役立つ一つのモデルとして、たとえ比喩的な表現であり、文字通りの表現ではないとしても、これを第二のプロセッサと考えるのは有効だと思います。
We had this before with floating point co-processors and graphics co-processors already as recently as the 90s, where it's useful to think of the trajectory of this as just another thing that computers can do, and it will be incorporated into absolutely everything.
浮動小数点演算コプロセッサやグラフィックコプロセッサなど、90年代にはすでにあったことですが、コンピュータができることの1つとして、その軌跡を考えることは有効で、絶対にあらゆるものに組み込まれることになります。
Hence the term foundation model, which also crops up.
それゆえ、基盤モデルという言葉も出てくるのです。
I'm sorry.
ごめんなさい.
So, pizza's ready.
では、ピザの用意ができました。
One more question.
もう1つ質問を。
Maybe one more, and then we'll break for some food.
もう1つ質問したら、食事にしましょう。
In the glasses right there?
そこのグラスに?
Sorry.
すみません
Do you have any recommendations for getting...
何かオススメの...
Sorry, I was just being told we need to get two more.
すみません、あと2つ必要だと言われていたところなんです。
So, yeah, yeah.
そうそう、そうなんです。
Do you have any recommendations for how you can improve your special data?
スペシャルデータをより良くするために、何かオススメの方法はありますか?
Like, for example, very useful programming?
例えば、すごく便利なプログラミングとか?
It's hard to get it to do that reliably.
それを確実に実行させるのは難しいですよね。
It's incredibly useful to get it to do it reliably.
それを確実にやってもらうと、ものすごく便利なんです。
So some tricks you can use are...
だから、使えるワザはいくつか...。
You can give it examples.
例を挙げるのもいい。
You can just ask it directly.
直接聞いてみるのもいい。
Those are two common tricks.
この2つはよくある手口です。
And look at the prompts that others have used to work.
そして、他の人が使ってうまくいったプロンプトを見ることです。
I mean, there's a lot of art to finding the right prompt right now.
つまり、今、正しいプロンプトを見つけるには、たくさんのアートがあるんだ。
A lot of it is magic incantation.
その多くは、魔法の呪文です。
Another thing you can do is post-process it so that you can do some checking and you can have a happy path in which it's a one-shot and you get your answer, and then a sad path in which maybe you fall back on other prompts.
もうひとつは、後処理でチェックすることで、一発で答えが出るハッピーパスと、他のプロンプトに戻るかもしれないサッドパスができる。
So then you're going for the diversity of approach where it's fast by default, it's slow, but ultimately converging upon higher likelihood of success if it fails.
つまり、デフォルトでは速く、遅く、しかし最終的には失敗しても成功する可能性が高いところに収束するという、多様なアプローチを目指すのです。
And then something that I'm sure we'll see people do later on is fine-tune instruction-tuning style models which are more likely to respond with a computer-parsable output.
そして、コンピュータが解析可能な出力で応答する可能性が高い、インストラクション・チューニング・スタイルのモデルを微調整することが、後々、人々の目に触れることになると思います。
I guess one last question?
最後に1つだけ質問をお願いします。
Sure.
もちろんです。
So one of the things we talked about...
私たちが話したことの1つは...
A couple of things.
2つほどあります。
One is that you talked about domain execution and you're encoding a bunch of domain execution in terms of prompts.
1つは、ドメインエグゼキューションについてお話されましたが、プロンプトという観点からドメインエグゼキューションの束をエンコードしていますね。
What is that, where do those prompts end up?
そのプロンプトの行き着く先は何なのでしょうか。
Do those prompts end up back in the Jeep, and is there a privacy issue associated with that?
プロンプトはJeepに戻されるのか、またそれに伴うプライバシーの問題はあるのか?
That's a great question.
素晴らしい質問ですね。
So the question was, and I apologize, I just realized we haven't been repeating all the questions for the YouTube listeners, so I'm sorry for the folks on YouTube if you weren't able to hear some of the questions.
YouTubeのリスナーのために、すべての質問を繰り返していないことに今気づきましたので、YouTubeの皆さん、質問のいくつかを聞くことができなかったらごめんなさい。
The question was, what are the privacy implications of some of these prompts?
質問は、このようなプロンプトの中には、プライバシーに関わるものがあるのか、というものでした。
If one of the messages is, so much depends upon your prompt and the fine-tuning of this prompt, what does that mean with respect to my IP?
もしメッセージの1つが、「あなたのプロンプトとこのプロンプトの微調整次第で、多くのことが決まる」というものだとしたら、私のIPに関してはどうなのでしょうか。
Maybe the prompt is my business.
プロンプトは私のビジネスなのかもしれません。
I can't offer you the exact answer, but I can paint for you what approximately the landscape looks like.
正確な答えは出せませんが、おおよそどのような景色が見えるかは描けます。
So in all of software, and so too with AI, what we see is there are the SaaS companies where you're using somebody else's API and you're trusting that their terms of service will be upheld.
ソフトウェア全般において、そしてAIにおいても同様ですが、SaaS企業には、他人のAPIを使用し、その利用規約が守られることを信頼する企業があります。
There's the set of companies in which they provide a model for hosting on one of the big cloud providers.
また、大手クラウド・プロバイダーの1社にホスティング・モデルを提供する企業もあります。
And this is a version of the same thing, but I think with slightly different mechanics, this tends to be thought of as the enterprise version of software.
これも同じようなものですが、仕組みが少し違うので、企業版ソフトウェアと思われがちです。
And by and large, the industry has moved over the past 20 years from running my own servers to trusting that Microsoft or Amazon or Google can run servers for me.
この業界では、過去20年の間に、自分でサーバーを動かすことから、マイクロソフトやアマゾン、グーグルが自分のためにサーバーを動かしてくれると信じることに移行しました。
And they say it's my private server, even though I know they're running it, and I'm okay with that.
そして、マイクロソフトやアマゾン、グーグルが運営していることは知っていても、それは私のプライベートサーバーだと言い、私はそれで構わないと思っています。
And you've already started to see that Amazon with Hugging Face, Microsoft with OpenAI, Google too with their own version of Bard are going to do these, where you'll have the SaaS version and then you'll also have the private VPC version.
AmazonのHugging Face、MicrosoftのOpenAI、そしてGoogleの独自のBardバージョンでこれらを実行していることがすでに見られます。SaaSバージョンとプライベートVPCバージョンの両方が提供されるでしょう。
And then there's a third version that I think we haven't yet seen practically emerge, but this would be the maximalist, I want to make sure my IP is maximally safe version of events in which you are running your own machines, you are running your own models.
まだ実用的に現れていないと思われる第3のバージョンもありますが、これは最大限にIPを安全に保護したいと考える方向性で、自分のマシンを稼働させ、自分のモデルを実行しています。
And then the question is, is the open source and or privately available version of the model as good as the publicly hosted one and does that matter to me?
そして問題は、オープンソースや個人で利用可能なバージョンのモデルは、一般にホストされているものと同じように優れているのか、そしてそれは私にとって重要なことなのか、ということです。
And the answer is right now, realistically, it probably matters a lot.
そして、その答えは、今現在、現実的には、おそらく非常に重要です。
In the fullness of time, you can think of any one particular task you need to achieve as requiring some fixed point of intelligence to achieve.
時間が経てば、達成しなければならないある特定のタスクは、達成するためにある一定の知能を必要とすると考えることができます。
And so, over time, what we'll see is the privately obtainable versions of these models will cross that threshold.
そのため、時間が経つにつれて、民間で入手可能なバージョンのモデルがその閾値を超えるようになるでしょう。
And with respect to that one task, yeah, sure, use the open source version, run it on your own machine, but we'll also see the SaaS intelligence get smarter; it'll probably stay ahead.
しかし、SaaSのインテリジェンスがより賢くなり、おそらく優位に立つことができるでしょう。
And then your question is, well, which one do I care more about?
しかし、SaaSのインテリジェンスがより賢くなり、おそらくSaaSの方が優位に立つでしょう。さて、問題はどちらがより重要かです。
Do I want like the better aggregate intelligence or is my task somewhat fixed point?
より優れた総合的なインテリジェンスが欲しいのか、それとも自分のタスクがある程度固定されているのか。
And I can just use the open source available one for which I know it'll perform well enough because it's crossed the threshold.
そして、オープンソースで利用可能なものを使えばいいのです。
So to answer your question specifically, yes, you might be glad to know ChachiPT recently updated their privacy policy to not use prompts for the training process.
ご質問の件ですが、ChachiPTは最近プライバシーポリシーを更新し、トレーニングプロセスでプロンプトを使用しないようになりましたので、ご安心ください。
But up until now, everything went back into the bin to be trained on again.
しかし、これまでは、すべてがビンに戻され、再びトレーニングを受けることができました。
And that's just a fact.
というのは事実です。
So I think pizza is now pizza time.
だから、ピザはもうピザの時間だと思うんだ。
Let's go get some pizza.
ピザを食べに行こう。
I hope this was useful.
お役に立てたなら幸いです。
We'll be around, please come and ask me some questions.
また、質問しに来て下さいね。
この記事が気に入ったらサポートをしてみませんか?