サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ドラクエ3
www.mattari-benkyo-note.com
FacebookXHatenaPocketCopy 先日リリースされたOptuna 3.4にPreferential Optimizationという機能がついに入りました! このPreferential OptimizationはOptunaとOptuna Dashboardによって、複数のtrialの出力のうちどれがよいかを人が判断して入力し、最適化していく機能です。 この機能がどういうときにうれしいかというと、コーヒーの味の良し悪しのような主観的な評価でしか評価できないとき、二つを比べてどちらがいいのかという評価で最適化を実行することができます。 以前書いたOptunaを使ったおいしいコーヒーの淹れ方を探索するときにはレシピごとに絶対評価のスコアをつける必要がありました。この絶対評価をつけるのがやっかいで、全体を通して矛盾のない評価を人がするのはかなり難しいと考えています。一方、Pre
今回はLangChainの小ネタの記事でHugging FaceのモデルをLangChainで扱う方法について調べたので、その記事になります。 LangChainについてご存じないという方のために一言で説明するとLangChainはChatGPTの内部で使われているLLMを扱いやすい形でwarpしたライブラリになります。紹介記事を以前書きましたので、詳しく知りたい方はこちらをご覧ください。 LangChainのexampleを見ると多くの場合OpenAIのAPIを使うことが多いように感じます。ただ、OpenAIのモデルは精度が良いのですが、一方で長文の生成をしようとするとかなりの額のお金が必要になります。このため、遊びで使うには勇気がいるケースがあります。 このため、懐に優しい形でLangChainを扱えないか?ということで、有名どころのモデルが大体おいてあるHugging Faceを利用
最近、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
今回はこの中で紹介した例で出てきた「zero-shot-react-description」というAgentを使って以下の質問をしたときに内部でLLMとどういう連携をしているのか?を調べたのでそのまとめになります。 "Who is Leo DiCaprio's girlfriend? What is her current age raised to the 0.43 power?" 今回動作検証に用いたコードは以下の通りです。 import langchain from langchain.agents import load_tools from langchain.agents import initialize_agent from langchain.llms import OpenAI langchain.verbose = True llm = OpenAI(temperat
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?" コード
3月 21, 2023 / 最終更新日時 : 4月 1, 2024 Shuji Suzuki (shu) 未分類 1月の頭から2月末まで育休をとってました。事前に会社のいろいろな人に育休のアドバイス(夜の二交代制など)を聞いていたおかげもあり、個人的には覚悟してたよりもすごい楽でした。 この「事前に育休に関していろいろアドバイスをもらっておく」というのは思った以上に役立ったので、また育休を取るかもしれない自分への備忘録兼これから育休を取る方に向けて参考になれば思い、私の育休の過ごし方などのまとめを書きました。いつもよりもかなり分量が多い気がしますが、ご了承ください。 これから育休取るという人の参考になれば幸いです。 そもそもなぜ育休を取るのか? 今務めている会社の男性社員は結構子供が生まれると育休を取るという人が多い印象です。上司も育休取ったほうがいいということで、自分も育休はとるものと思
今回は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/#
どんな本か? Stable Diffusionをはじめとした画像生成技術が劇的に進化して実際に人が書いたような絵が生成できるようになり、画像生成を使ってみたという話をよく聞くようになりました。このStable Diffusionなどの画像生成技術を大きく進歩させた技術が今回の本で紹介されている「拡散モデル」です。 この本ではこの拡散モデルの背景にある数式をわかりやすく説明してくれています。また、拡散モデルの応用先として画像生成が有名ですが、他の生成モデルにはない拡散モデルならではの特徴とその特徴が生かされた他の生成モデル(例えば化合物とか)についても説明がされています。 どんな人におすすめか? この本は以下のようなことに興味ある人が最初に読むと良い本かなと思います。 Stable Diffusionはどういう数学的背景がどうなっているのか?知りたい 拡散モデルについて知らないけど、何に使え
まずは私が統計的因果推論おもしろい!と感じさせてくれた「因果推論の科学 「なぜ?」の問いにどう答えるか」です。本の内容としては、因果に関する研究が如何に難しいかやどれほど役立つのかはもちろん、因果に関する研究の歴史にも言及し、他の分野、とりわけ統計学とどういう関わりがあってどのように発展してきたか?について書かれています。個人的にはPearsonやFisherなど手法名で名前をしっている人たちがどういうことをしていた人なのかも少ししれて面白かったです。 こちらの本は一般人向けに因果推論がどういうものかを書いた本になっています。書いた人が研究者ということもあってか、一部数式も出てきますが、基本、誰でもわかるような表現で書かれていて、「因果推論ってなに?」ということを背景的なことを重点的に知りたいという方はとっつきやすい1冊ではないかと思います。一方、数式がでてきますが、詳しい説明はそれほどな
高速化が趣味&仕事なので、最近よく目にするJAXの速度が気になってました。このため、今回は日ごろ使っているPyTorchと比較したので、その結果のまとめを紹介します。 結論 結果だけ知りたい方が多いだろうと思ったので先に結論から書くと、私のPyTorch力では力及ばず、今回の検証では JAXのほうがPyTorchの2.2倍速い という結果でした。ここから詳しく評価について説明します。 評価方法 今回、JAXとPyTorchを比較するにあたり、この前紹介したSmooth Smith Watermanのコードを利用しました。Smooth Smith Watermanについて知りたいという方は以下の記事をご覧ください。 この記事で紹介したJAXコードは論文の著者が頑張って高速化した結果なため、十分最適化された結果であるという認識です。このため、今回はPyTorchのコードを私が作成し、測定を行い
はじめに 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
3月終わりごろ、PyTorch の1.8.1がリリースされました。1.8.0から1.8.1でsmall bugfixだけかと思ってたら、元々あったautograd profilerの次のバージョンのprofilerという形でPyTorch Profilerが追加されたことがPyTorchのblogで紹介されました。今回はこのPyTorch Profilerがどんなことができるのか?を確かめてみたので、それについて紹介していきます。 PyTorch Profilerとは? 元々PyTorchにはautograd profiler (torch.autograd.profiler)というprofilerがありました。これを改良してものがPyTorch Profiler (torch.profiler)としてPyTorch 1.8.1で追加されました。blogの記事を読んだり、実際に触ってみた感
パラメータの探索範囲の例 また、目的関数とは、指定されたパラメータで学習した結果の精度を返す関数となります。 では、コーヒーの淹れ方の場合はパラメータに対応するものと、目的関数をどうすればよいでしょうか? 後ほど詳しく紹介しますが、今回はパラメータとして豆の量やお湯の温度など、コーヒーの淹れ方で重要なものをパラメータとして扱います。探索範囲は各パラメータ毎に基準とした値を中心にして現実的な範囲で広げたものを利用します。 また、目的関数ですが、実際に提案されたパラメータに基づいて自分でいれて、おいしかったかどうかを自分で1-10点で評価して返すという人力のものを利用します。 現在のコーヒーの入れる環境 使う道具によってパラメータとして扱えるものが変化するので、使う道具についても紹介します。 今回は以下の道具で淹れるとして紹介しています。 ミル: ポーレックス コーヒーミル・Ⅱ (調節ねじのク
測定結果 結果として、間違った測定方法だとCPUとGPUを比較すると「1883倍速くなりました!」という主張をしてしまうことになります。ちなみにGPUで1000倍なんて数字が出てきたら確実にどこか間違えています。実際、今回のケースでは本当は「約59倍速くなりました!」というのが正しい結果になります。 torch.cuda.synchronize()とtorch.cuda.Eventを使った場合の違い 今回torch.cuda.synchronize()とtorch.cuda.Event の2種類を紹介しました。場合によっては使い分けをしたほうがいいのでこの二つの違いを説明していきます。 torch.cuda.synchronize() を利用した場合、簡単なので測定しやすいのでいいので、ぱっと測定したい場合はこちらの方法が楽でよいかと思います。ただ、こちらの方法はkernel関数の発行と測
このページを最初にブックマークしてみませんか?
『まったり勉強ノート - shuの日々の勉強まとめ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く