タグ

ブックマーク / www.mattari-benkyo-note.com (9)

  • Hugging FaceのモデルをLangChainで使う方法を調べた - まったり勉強ノート

    今回はLangChainの小ネタの記事でHugging FaceのモデルをLangChainで扱う方法について調べたので、その記事になります。 LangChainについてご存じないという方のために一言で説明するとLangChainはChatGPTの内部で使われているLLMを扱いやすい形でwarpしたライブラリになります。紹介記事を以前書きましたので、詳しく知りたい方はこちらをご覧ください。 LangChainのexampleを見ると多くの場合OpenAIAPIを使うことが多いように感じます。ただ、OpenAIのモデルは精度が良いのですが、一方で長文の生成をしようとするとかなりの額のお金が必要になります。このため、遊びで使うには勇気がいるケースがあります。 このため、懐に優しい形でLangChainを扱えないか?ということで、有名どころのモデルが大体おいてあるHugging Faceを利用

    Hugging FaceのモデルをLangChainで使う方法を調べた - まったり勉強ノート
    misshiki
    misshiki 2023/05/22
    “LangChainでHugging Faceのモデルを利用する方法について調べたのでそのまとめ”
  • LLMに表データの解析を手伝ってもらえるLangChainのPandas Dataframe Agentの中身がどうなっているのか調べた - まったり勉強ノート

    最近、LLMを使ったOSSの中身を調べてLLMとどう連携して目的を達成しているのかをいろいろ調べています。今回はLangChainのPandas Dataframe Agentの中身がどうなっているのか気になったので調べたまとめになります。 今回のコードは以下のところにあるので、全体としてどうなっているのか見たい方はこちらをご覧ください。 https://github.com/shu65/langchain_examples/blob/main/LangChain_Pandas_Dataframe_Agent.ipynb LangChainのPandas Dataframe Agentとは LLMを使いやすくwrapしてくれるLangChainにはいくつかAgentというLLMとToolと呼ばれるものを組み合わせて実行する仕組みが用意されています。この中でもPandas Dataframe

    LLMに表データの解析を手伝ってもらえるLangChainのPandas Dataframe Agentの中身がどうなっているのか調べた - まったり勉強ノート
    misshiki
    misshiki 2023/04/28
    “Pandas Dataframe Agentは名前の通りpandasのDataframeに対する操作をLLMにやらせるための仕組み”
  • ChatGPTみたいなアプリが簡単に作れるLangChainがすごすぎ - まったり勉強ノート

    3月 28, 2023 / 最終更新日時 : 3月 28, 2023 Shuji Suzuki (shu) プログラミング 最近話題のChatGPT界隈ですが、そんなChatGPTみたいなアプリを簡単に作れるとしたら?そんな夢のようなライブラリである「LangChain」をこの前同僚に教えてもらったので、実際に使ってみました。 実際に使ってみたら想像よりもはるかに「どうなってるの!?」と思うことが多々あるすごいライブラリだったので、紹介したくて使い方をまとめてみました。 今回はLangChainのドキュメントの中で一番衝撃だった以下の質問に対する答えを出すコードをGoogle Colabで実行する手順を示します。 "Who is Leo DiCaprio's girlfriend? What is her current age raised to the 0.43 power?" コード

    ChatGPTみたいなアプリが簡単に作れるLangChainがすごすぎ - まったり勉強ノート
    misshiki
    misshiki 2023/03/29
    “「LangChain」を実際に使ってみたまとめ”
  • PyTorch 2.0の新機能「torch.compile」使ってみた - まったり勉強ノート

    今回は3/16についに出たPyTorch 2.0の目玉機能である「torch.comple」について実際に動かしてみて計算時間を測定してみたので、そのまとめになります。 時間計測の部分で測定に使ったコードはここにあげてあります。 https://github.com/shu65/pytorch_2_compile_example/blob/main/torch_2_0_compile.ipynb torch.compileとは? torch.compileはPyTorch 2.0の新機能で、PyTorchの複数の機能を組み合わせて使い関数や深層学習のモデルを実行時に最適化して、その後の呼び出して高速に実行できるようにする機能です。 torch.compileの中身の詳しい説明はここにかかれています。 https://pytorch.org/get-started/pytorch-2.0/#

    PyTorch 2.0の新機能「torch.compile」使ってみた - まったり勉強ノート
    misshiki
    misshiki 2023/03/23
    “PyTorch 2.0の目玉機能である「torch.comple」について実際に動かしてみて計算時間を測定してみたので、そのまとめ”
  • JAXとPyTorch、どっちが速いのか検証してみた - まったり勉強ノート

    高速化が趣味仕事なので、最近よく目にするJAXの速度が気になってました。このため、今回は日ごろ使っているPyTorchと比較したので、その結果のまとめを紹介します。 結論 結果だけ知りたい方が多いだろうと思ったので先に結論から書くと、私のPyTorch力では力及ばず、今回の検証では JAXのほうがPyTorchの2.2倍速い という結果でした。ここから詳しく評価について説明します。 評価方法 今回、JAXとPyTorchを比較するにあたり、この前紹介したSmooth Smith Watermanのコードを利用しました。Smooth Smith Watermanについて知りたいという方は以下の記事をご覧ください。 この記事で紹介したJAXコードは論文の著者が頑張って高速化した結果なため、十分最適化された結果であるという認識です。このため、今回はPyTorchのコードを私が作成し、測定を行い

    misshiki
    misshiki 2021/11/17
    “今回の検証では JAXのほうがPyTorchの2.2倍速い という結果でした。”
  • PyTorch 1.10の新機能「CUDA Graphs」のパフォーマンスを測定してみる - まったり勉強ノート

    はじめに 10/21にPyTorch 1.10がリリースされ、今回も面白そうな機能が追加されました。個人的には楽しみにしていた「CUDA Graphs」のAPIのベータ版が追加されたということで早速試してみました。今回はこの試した結果の記事になります。 CUDA Graphsとは? CUDA GraphsはCUDA 10で追加されたCUDAの機能の一つで、複数のCUDA Kernelの実行にかかるオーバーヘッドを減らすための機能です。 基的には依存関係表すことができるグラフにCUDA Kernelを登録して、依存関係を考慮して順番にCUDA Kernelを実行するという仕組みです。このCUDA Graphsを通して実行すると普通にCUDA Knernelを実行するのに比べてCUDA Kernelの実行オーバーヘッドを減らすことができます。 詳しくはNVIDIA Developer Blo

    misshiki
    misshiki 2021/10/25
    “CUDA GraphsがPyTorchで使えるようになった”
  • PyTorch 1.8.1で入ったPyTorch Profilerを使ってみた - まったり勉強ノート

    3月終わりごろ、PyTorch の1.8.1がリリースされました。1.8.0から1.8.1でsmall bugfixだけかと思ってたら、元々あったautograd profilerの次のバージョンのprofilerという形でPyTorch Profilerが追加されたことがPyTorchblogで紹介されました。今回はこのPyTorch Profilerがどんなことができるのか?を確かめてみたので、それについて紹介していきます。 PyTorch Profilerとは? 元々PyTorchにはautograd profiler (torch.autograd.profiler)というprofilerがありました。これを改良してものがPyTorch Profiler (torch.profiler)としてPyTorch 1.8.1で追加されました。blogの記事を読んだり、実際に触ってみた感

    PyTorch 1.8.1で入ったPyTorch Profilerを使ってみた - まったり勉強ノート
    misshiki
    misshiki 2021/04/05
    “PyTorch Profilerがどんなことができるのか?を確かめてみたので、それについて紹介”
  • Optunaを使ったおいしいコーヒーの淹れ方探索 (2021年4月版) - まったり勉強ノート

    パラメータの探索範囲の例 また、目的関数とは、指定されたパラメータで学習した結果の精度を返す関数となります。 では、コーヒーの淹れ方の場合はパラメータに対応するものと、目的関数をどうすればよいでしょうか? 後ほど詳しく紹介しますが、今回はパラメータとして豆の量やお湯の温度など、コーヒーの淹れ方で重要なものをパラメータとして扱います。探索範囲は各パラメータ毎に基準とした値を中心にして現実的な範囲で広げたものを利用します。 また、目的関数ですが、実際に提案されたパラメータに基づいて自分でいれて、おいしかったかどうかを自分で1-10点で評価して返すという人力のものを利用します。 現在のコーヒーの入れる環境 使う道具によってパラメータとして扱えるものが変化するので、使う道具についても紹介します。 今回は以下の道具で淹れるとして紹介しています。 ミル: ポーレックス コーヒーミル・Ⅱ (調節ねじのク

    misshiki
    misshiki 2021/04/02
    “2021年度4月版のOptunaを使ったおいしいコーヒーの淹れ方の探索について紹介”
  • PyTorchでGPUの計算時間を正しく計測する - まったり勉強ノート

    測定結果 結果として、間違った測定方法だとCPUGPUを比較すると「1883倍速くなりました!」という主張をしてしまうことになります。ちなみにGPUで1000倍なんて数字が出てきたら確実にどこか間違えています。実際、今回のケースでは当は「約59倍速くなりました!」というのが正しい結果になります。 torch.cuda.synchronize()とtorch.cuda.Eventを使った場合の違い 今回torch.cuda.synchronize()とtorch.cuda.Event の2種類を紹介しました。場合によっては使い分けをしたほうがいいのでこの二つの違いを説明していきます。 torch.cuda.synchronize() を利用した場合、簡単なので測定しやすいのでいいので、ぱっと測定したい場合はこちらの方法が楽でよいかと思います。ただ、こちらの方法はkernel関数の発行と測

    misshiki
    misshiki 2021/03/22
    “PyTorchでGPUで実行した関数の計算時間を正しく測定する方法とその後に詳しい説明”
  • 1