Пікірлер
@user-hp7xe2jc5t
@user-hp7xe2jc5t 20 күн бұрын
7:50
@user-lf1vq7rp6o
@user-lf1vq7rp6o 28 күн бұрын
申し訳ありませんが、2点質問させてください。 1)講義中の質問に対するご回答が聞き取れなかったのですが、そもそもStreamの目的は何ですか? word(?)単位の出力させているのは、想定していたもしくは想定外の単語が出力されたときに、何らかのアクションを取るためなのでしょうか? 2)Streamの出力単位が、英語の場合はword、日本語の場合は1文字になっているのは、どういう理由なのでしょうか?LLMモデルを構成するTransformerをイメージすると、出力単位がトークンであれば、わかりやすいのですが?
@studyco7292
@studyco7292 28 күн бұрын
コメントありがとうございます。登壇者の大嶋です。 >1)講義中の質問に対するご回答が聞き取れなかったのですが、そもそもStreamの目的は何ですか?word(?)単位の出力させているのは、想定していたもしくは想定外の単語が出力されたときに、何らかのアクションを取るためなのでしょうか? OpenAIのChat Completions APIの場合、ストリーミングを使用する目的は、ユーザーにできるだけ早く応答を返し始めることによるユーザー体験の向上であることがほとんどだと思います。 なお、特定の単語が出力されたときに生成を停止して何か処理したりしたい場合は、「stop」というパラメータを使うことができます。 platform.openai.com/docs/api-reference/chat/create#chat-create-stop >2)Streamの出力単位が、英語の場合はword、日本語の場合は1文字になっているのは、どういう理由なのでしょうか?LLMモデルを構成するTransformerをイメージすると、出力単位がトークンであれば、わかりやすいのですが? Streamの出力単位については、OpenAIの公式ドキュメントで明言されている箇所が見つからなかったので、「分からない」という回答が正確ではないかと思います。 ただし、推測としてはトークン単位でStreamされている可能性はあります。 日本語の場合1文字で1トークンとなる場合もあります。 詳細は以下のTokenizerで確認してください。 platform.openai.com/tokenizer よろしくお願いします。
@user-lf1vq7rp6o
@user-lf1vq7rp6o 27 күн бұрын
@@studyco7292 1)について 申し訳ありません。 「ユーザーにできるだけ早く応答を返し始めることによるユーザー体験の向上」とは、「Sreamを使用しない場合のChat Completions APIの場合、回答文が完成してから出力し始め、その結果応答がSream使用をした場合に比べて遅れる」という意味でしょうか?
@studyco7292
@studyco7292 26 күн бұрын
>「Sreamを使用しない場合のChat Completions APIの場合、回答文が完成してから出力し始め、その結果応答がSream使用をした場合に比べて遅れる」という意味でしょうか? おおむねそのような理解でよいと思います。Streamを使うと応答し始めるのが早くなる、ということになります。 あまりイメージがついていないようでしたら、実際にChat Completions APIにふれて試していただくことをおすすめします。
@user-lf1vq7rp6o
@user-lf1vq7rp6o 26 күн бұрын
度重なる質問にもかかわらず、ご丁寧に回答いただき、本当にありがとうございました。
@user-vk6tw8wn6q
@user-vk6tw8wn6q Ай бұрын
大変勉強になりました。ありがとうございます。質問です。gradioじゃなくStreamlitを使った理由があれば教えてください
@studyco7292
@studyco7292 Ай бұрын
コメントありがとうございます。登壇者の大嶋です。 GradioではなくStreamlitを使ったことには、特段の理由はありません。 強いて言えば、実務でStreamlitを使っており、Streamlitでの実装例をすでに持っていたためです。 (実務でGradioではなくStreamlitを採用したことも、好み程度の理由になります) Gradioでもおそらく同様のことは実現できると思います。 よろしくお願いします。
@user-vk6tw8wn6q
@user-vk6tw8wn6q Ай бұрын
@@studyco7292 お答えいただきありがとうございます。gradioでのchatbot実装を勉強中ですがStreamlitもシンプルで良いと思いました。
@user-lf1vq7rp6o
@user-lf1vq7rp6o Ай бұрын
上記の質問の補足ですが、なぜLLMはAnswerを返さずに、Search 東京 天気と返すべきと判断できるのでしょうか?
@studyco7292
@studyco7292 Ай бұрын
コメントありがとうございます。登壇者の大嶋です。 LLMがAnswerを返さずに「Search 東京 天気」を返してくる理由は、そのモデルが学習に基づいて推論し、次のトークンとしてそれらが採用されたからです。 それ以上、なぜそのような動作になったのか根本的な説明はできません。 (LLMが何かを出力した理由は、根本的に説明することはできません) 感覚的には、そのように学習しているから、と言えるかもしれません。 とくに、OpenAIのGPT-3.5やGPT-4のFunction calling機能については、ツールを使う判断を適切に行いやすいようにモデルがファインチューニングされています。
@user-lf1vq7rp6o
@user-lf1vq7rp6o Ай бұрын
なるほど’! GPT-3.5やGPT-4は、Fanction calling機能によって、Searchを依頼する選択肢もあることを学んでいるのですね。もし学んでいなければ、自分の知っている範囲で答える(ハルシネーション)ことになるのですね? 今更、超基本的なことで恐縮ですが、GPT-3.5やGPT-4とChatGPTのシステム上の違いは何ですか?
@studyco7292
@studyco7292 Ай бұрын
>GPT-3.5やGPT-4は、Fanction calling機能によって、Searchを依頼する選択肢もあることを学んでいるのですね。 もう少し正確に言うと、Function calling機能がなくても、高性能なモデルであれば、検索が必要な入力に対して「Search」と出力すべきだと推論してくれることが多いです。 Function calling機能のリリース時に、そのような推論がよりうまく動作しやすいようモデルがファインチューニングされたということであり、そのような推論のためにFunction calling機能は必須ではありません。 「Searchを依頼する選択肢もあることを学んでいる」ということについても、直接そのようなことを学んでいるというよりも、膨大な学習データに基づいてそのような推論をした、ということになります。 >もし学んでいなければ、自分の知っている範囲で答える(ハルシネーション)ことになるのですね? LLMは直接的に学んだこと以外にも適切な推論をすることが多い(つまりZero-shot性能が高い)ことが大きな特徴です。 直接的に学んだこと以外にも適切な推論をすることは多く、そのようなケースはハルシネーションとは言いません。 >今更、超基本的なことで恐縮ですが、GPT-3.5やGPT-4とChatGPTのシステム上の違いは何ですか? GPT-3.5やGPT-4やモデルの名前であり、ChatGPTはWebサービスの名前だと言われています。
@user-lf1vq7rp6o
@user-lf1vq7rp6o Ай бұрын
お忙しい中、度重なる質問に対して、懇切丁寧にご回答いただき、大変恐縮いたしております。今後とも、よろしくお願いいたします
@user-lf1vq7rp6o
@user-lf1vq7rp6o Ай бұрын
Part2の例で、LangGraph(エージェント)はクエリ(質問)に対して、即Answerせずに、Search(TooLを使って検索)すべきとどのように判断しているのですか?(エージェントは、検索しなければ答えられないと、どのように自分で認識できるのですか?)
@studyco7292
@studyco7292 Ай бұрын
コメントありがとうございます。登壇者の大嶋です。 Answerが必要かSearchが必要かは、LangGraphが判断しているのではなく、LLMが判断しています。 質問に対して何をすべきか判断する脳のようにLLMを使う、というのがLLMを使ったAIエージェントの大きな特徴の1つです。 過去の勉強会でこの仕組みについて解説しているので、よろしければ参照してください。 kzfaq.info/get/bejne/q96kY9qQ2pqpp4E.html また、実際にはより安定的に動作するよう「Function calling」などと呼ばれる機能を使っているので、ご興味あればFunction callingのドキュメントを参照してください。 platform.openai.com/docs/guides/function-calling docs.anthropic.com/en/docs/tool-use
@user-lf1vq7rp6o
@user-lf1vq7rp6o Ай бұрын
ありがとうございました
@ogurahiroto9591
@ogurahiroto9591 2 ай бұрын
5:22
@user-os8xo9dz5y
@user-os8xo9dz5y 4 ай бұрын
めちゃくちゃ有益😂
@takaball
@takaball 4 ай бұрын
ありがとうございます。たいへん興味深く聞かせていただきました。
@studyco7292
@studyco7292 4 ай бұрын
登壇者より 1:09:40 あたりからのRunnableLambdaの箇所をより簡単に書きたい場合は、以下のようなコードでも動作します。 ``` chain = ( {"context": retriever, "question": lambda _: user_message} | prompt | model | output_parser ) ``` `lambda _: user_message`の箇所が`RunnableLambda(lambda _: user_message)`に自動で変換されるためです。
@re9236
@re9236 5 ай бұрын
デカすぎんだろ... 勉強になりました
@kk-cv1kd
@kk-cv1kd 5 ай бұрын
5:56本編
@pannakoota1
@pannakoota1 6 ай бұрын
すごいわかりやすかったです。ありがとうございますm
@user-jw4oh9jo8p
@user-jw4oh9jo8p 7 ай бұрын
解説ありがとうございます。作りたいアプリが出来たので全体像の勉強・整理になりました。
@FUKUYAMACITYSAMURAI
@FUKUYAMACITYSAMURAI 10 ай бұрын
全体の流れが大変わかりやすい
@shinjiogishima3546
@shinjiogishima3546 10 ай бұрын
ありがとうございます。 見落としてしまったのかもしれないですが、Fine tuningにGPUもLoRAも使わなくてできるということなのでしょうか? それは(インストラクション チューンドの)rinnnaだからなのでしょうか?
@studyco7292
@studyco7292 10 ай бұрын
コメントありがとうございます。発表者の江﨑です。 今回CPUだけでFine-tuningできていたのは、利用したrinnaのモデル(huggingface.co/rinna/japanese-gpt2-small )が軽量だったためだとご理解いただければ幸いです。 パラメータ数が多くなって重いモデルになると、原理上はCPUだけでもLoRAなしのFine-tuningやAI推論実行はできないことはないですが、非常に時間がかかってしまって非現実的になってくるという認識です。
@user-tm7qe5tz3h
@user-tm7qe5tz3h Жыл бұрын
こちらはUdemyの内容と同じでしょうか?
@user-tm7qe5tz3h
@user-tm7qe5tz3h Жыл бұрын
こちらの動画はテキストダビンチ003を使用していますが、UdemyではGPT-3 turboの使用をしていますか?
@studyco7292
@studyco7292 Жыл бұрын
@user-tm7qe5tz3h 様 コメントありがとうございます! この動画の発表者・Udemy講座の講師の大嶋です。 Udemy講座「LangChainによる大規模言語モデル(LLM)アプリケーション開発入門」では、この動画と違い、gpt-3.5-turboを中心に解説しています。 また、Udemy講座にもこの動画と重複する内容はありますが、LangChainについてさらに丁寧に解説し、実際のアプリケーション開発まで扱っています。 以下のページで割引クーポン付きURLを公開しているので、よろしければご利用ください! www.nextskill.co.jp/courses
@user-kx2zu7lp7o
@user-kx2zu7lp7o Жыл бұрын
すごいです。 エンジニア脳でここまで使いやすいローコードツール初めてみました。
@dennoucoil4423
@dennoucoil4423 Жыл бұрын
もしくは薬剤師側だけの音声データを先に文字起こしして「以下のセリフは薬剤師のものです。」 とプロンプトに含めてGPTに与えるとか。
@dennoucoil4423
@dennoucoil4423 Жыл бұрын
話者分離のところ、オンラインなら薬剤師側の声を別に録音しといて、機械っぽい声に加工した後会話音声と合成して話者分離用の音声データ作ったら精度上がるのでは?
@user-js5lg4bm1u
@user-js5lg4bm1u Жыл бұрын
10:00〜
@aproject_type323
@aproject_type323 Жыл бұрын
ax.imshow(np.array(mnist_x[i, :].reshape(28,28)),cmap='binary') この行でエラーが出ます。 何度も丁寧に打ってもエラーがでます
@temphetar
@temphetar Жыл бұрын
mnist_xはdataFrame形式で前段処理で代入されます。 ax.imshow(np.array(mnist_x.iloc[i].values.reshape(28, 28)), cmap='binary') とすれば上手く動くかもしれないです。
@uk3700
@uk3700 Жыл бұрын
2:17:26 「データがいっぱいになれば事後分布は尖っていくので過学習に近しいことになる」 ここがわかりませんでした。 直感的にデータ数を増やすと過学習はしにくくなると思うのですが,違うのでしょうか。 そもそも事後分布が尖っていくと過学習するというのはどういう意味でしょうか? また,統計的機械学習や非統計的機械学習(この言葉は初めて聞きました)など,機械学習の分類について独自の見解をされているようにみえます。 どこまでが世間一般の理解なのか,どこからが独自見解なのかを明確にすべきかと考えます。 単なる言葉の定義の問題なのですが一般的に異なる意味で理解されている言葉を別の意味で利用したり, よく知られた別の言葉が存在するのに別の言葉を充てがうことは混乱を生むので避けるべきかと考えます。
@chanileon9803
@chanileon9803 Жыл бұрын
chatgptでベイズ統計と機械学習で2つの質問をしたのですが、以下の回答が返ってきました。 🔸質問1 : データがいっぱいになれば事後分布は尖っていくので過学習に近しいことになる ベイズ統計について上の文章はあっているのか? 🔹回答1 : いいえ、上の文章は正確ではありません。事後分布がデータがいっぱいになると尖ることは一般的には起こりません。むしろ、ベイズ統計ではデータが増えるにつれて事後分布がより収束し、より正確な推定が得られる傾向があります。 過学習は、統計モデルが訓練データに対して過剰に適合し、未知のデータに対しては予測性能が低下する現象です。ベイズ統計では、事前分布とデータから事後分布を推定するため、過学習を避けるための手法が組み込まれています。 一般的に、ベイズ統計では事後分布がデータによって更新されるため、より多くのデータを取り入れることでより確からしい推定が得られます。事後分布はデータの情報を反映するため、データが増えると事後分布はより広がる傾向があります。つまり、過学習に近づくのではなく、より一般化された推定が可能となります。 ただし、事後分布がデータが増えると必ずしも尖るわけではありません。データの質やモデルの複雑さなどによって事後分布の形状は異なる場合があります。ですので、一般論として「事後分布がデータがいっぱいになれば尖る」とは言えません。 🔸質問2 : データがいっぱいになれば事後分布は尖っていくので過学習に近しいことになる。 機械学習において上の文章はあっているのか? 🔹回答2 : 機械学習において、上記の文は正確ではありません。データが増えることで、単に事後分布が尖るだけでは、必ずしも過学習に近づくとは限りません。 過学習は、モデルが訓練データに対して過度に適合し、未知のデータに対する予測性能が低下する現象です。機械学習において、データが増えると、通常はより一般化されたモデルを構築することができます。十分な量のデータがあれば、モデルはより多くのパターンを学習し、未知のデータに対しても良い予測を行うことが期待されます。 データが増えることで過学習のリスクは低下する傾向があります。追加のデータが新たな情報を提供し、モデルがより一般化された特徴を学習することができます。したがって、データがいっぱいになるほど、過学習に近づくという主張は一般的には当てはまりません。 ただし、データが非常に多くなる場合や、モデルが非常に複雑な場合は、過学習のリスクが増加する可能性があります。適切なモデルの複雑さとデータ量のバランスを保つことが重要です。