stMind

about Tech, Computer vision and Machine learning

論文まとめ:ReAct: Synergizing Reasoning and Acting in Language Models

arxiv.org Gemini2.5 Proをお供にして、論文をまとめていきます。 この論文はどんなもの? 言語モデルに『思考』(Reasoning)と『行動』(Acting)を交互に繰り返させることで、外部情報に基づいて賢く計画を立てながら、人間のようにタスクを解決させる新しい…

【体験記】MSI公認サポート店でゲーミングPCのメモリを増設

JAXをソースからビルドしようとしたら、メモリ不足のエラーになったため、メモリ増設を考えていました。自分で増設することも出来なくはないですが、製品保証が切れてしまう(裏側パネルのネジを取るために封印シールを剥がすことになるため)ので、MSI公認…

MetaのWatermark Anything Modelの論文を読み解く

arxiv.org Metaが画像電子透かし技術に関する論文を発表しました。MetaのAnything Modelといえば、Segment Anything Modelがありますが、今回の論文はWatermark Anything Model。一体どのような技術なのか?論文の内容をまとめてみました。 Introのまとめ 画…

arXivの論文IDをワンクリックでコピーするブックマークレット

このブックマークレットは、以下のコードをブックマークとして保存することで利用できます。 javascript:の部分を含めて、ブックマーク名などを自由に設定して保存してください。 javascript:(function(){const url=window.location.href;const match=url.ma…

HuggingFaceを使ってCausal Language ModelのFine-tuning

Causal Language Model(CLM)は、テキストを生成するために使われるモデルの一種で、言語の生成における因果関係(causality)を重視します。主に次に来る単語を予測するタスクに使われ、一般的に次のような用途に向いています: テキスト生成:次に来る単…

JaxがGPUを認識してない場合の対応

github.com GPUを認識していない場合には、以下のようなメッセージが出ます。 In [1]: import jax In [2]: jax.devices() An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu. Out[2]: [CpuDe…

Llama3.1を推論で使うために必要なGPUメモリ

huggingface.co Llama3.1モデルについてのHuggingfaceのブログの紹介です。 このブログの中で、推論時に必要なGPUメモリについて記載があるので、 実際に計算して確かめてみます。 推論時のGPUメモリ計算 developer.nvidia.com 計算式については、以下の通り…

ollama psの動作

ollama psを使うと、現在メモリにロードされているモデルを確認することが出来る。 NAME ID SIZE PROCESSOR UNTIL llama3.1:latest 91ab477bec9d 6.7 GB 100% GPU 4 minutes from now ollama psの動作をトレース ollama psは以下のメソッドにより実行される…

ollama runを追え

ollamaは各種LLMをローカルで実行できるCLIツールで、以下のコマンドが用意されています。 Available Commands: serve Start ollama create Create a model from a Modelfile show Show information for a model run Run a model pull Pull a model from a r…

BLIP-2の論文メモとゼロショットのimage-to-text生成のお試し

この論文では、事前学習済みの画像エンコーダーと大規模言語モデルを利用し、軽量なQuerying Transformer(Q-former)で視覚と言語のモダリティギャップを埋める、 汎用的で効率的な新しい事前学習戦略であるBLIP-2を提案しています。 BLIP-2は、既存手法よ…

ollamaをビルドする

ubuntuでollamaをビルドして、動作するバイナリを取得する方法を学んでいきます。 github.com ollamaのレポジトリにあるドキュメントに従って実施します。 必要なツール cmake version 3.24 or higher go version 1.22 or higher gcc version 11.4.0 or high…

vscodeでgolangデバッグをするときに標準入力を扱う

github.com STDINから入力を読み取ったり、ターミナル(tty)にアクセスする場合には、launch.jsonでconsoleオプションを指定する。consoleオプションで、デバッガ(dlv)とターゲットプロセスが実行される場所を指定する。 "console": "integratedTerminal"…

Ubuntu22.04でRTX4060を使うためにNVidia Driver, CUDA, cuDNN, Dockerをインストールする

前回、Windows11とUbuntu22.04.4のデュアルブート環境を作りました。 今回は、RTX4060をUbuntuで使うために、下記をインストールしていきます。 nvidia-driver cuda-toolkit cudnn docker nvidia-container-toolkit ありがたいことにインストールを詳しく解…

Win11とUbuntu22.04.4のデュアルブート環境を作る

MSIの4060搭載モデルにUbuntuを入れて、デュアルブート環境を作っています。 guminote.com ありがたいことに詳しく解説されているブログ記事があり、それに則ってインストールをしました。 いくつか対応すべきことがあったので、備忘録としてまとめておこう…

論文レビュー: Pixel Aligned Language Models

arxiv.org これまでの視覚と言語の対応付けの研究では、ほとんどが画像全体を入力として行われてきたのに対して、 この論文では、出力された単語を画像のピクセルに対応づけて、fine-grainedな位置特定が出来る視覚言語モデルのPixelLLMを提案しています。 …

Youtube Data APIを使ってチャプターを取得

前回のGPT-4oを使って動画チュートリアルをブログ記事に変換するでは、ユーチューブ動画のチャプターを使って、チャプター毎の動画フレームとトランスクリプトからGPT-4oでマークダウンを作成しました。 サンプルコードでは、動画チャプターは手動で作成され…

GPT-4oを使って動画チュートリアルをブログ記事に変換する

LLMのTokenizationについての動画チュートリアルを公開して、本の章やブログの投稿として動画を自動的に変換するワークフローに関するチャレンジのアイデアをAndrej Karpathyさんが投稿したことが発端で、Anthropicの中の人が、Claude3を使ってやってみたと…

CLIPのゼロショット分類におけるプロンプトアンサンブル

CLIPは、画像とテキストがデータセット内でペアになっているかどうかを予測するように事前学習されています。図の(2)と(3)にあるように、ゼロショット分類では、データセット内のすべてのクラス名を含んだテキストを作成し、CLIPによって最も確率の高い…

ScenicのSegment AnythingをGoogle Colab実行

Segment Anythingは、facebook researchのpytorch実装がありますが、 ScenicにもJax/FlaxのSegment Anythingの実装が公開されています。 READMEにある通りですが、Google Colabでシンプルに実行してみます。 image_pathを変えれば、他の画像でも試せる。 REA…

Scenic: A JAX Library for Computer Vision Research and Beyond

github.com Scenicは、TransformerベースのモデルにフォーカスしたオープンソースのJAXライブラリ。 最近、Transformerを適用した動画認識モデルの論文(ViViT, MTV, ObjectViViT)を読んでいる中で見かけていました。 研究のコードであっても、構造化され、…

GPTを自作して学習済みパラメータでテキスト生成

2024年の最初のエントリーはGPTです。 GPTモデルを自作して、OpenAIが公開している学習済みのパラメータをロード、テキスト生成までの一連の処理を実行します。 モデル 正確にはGPT2のTransformerブロックを自作します。 アーキテクチャの大部分はGPTと同じ…

Pose Estimationとローパスフィルタ(One Euro Filter)の実験

フレーム単位の姿勢推定を動画に適用した場合に発生するジッターを解決するローパスフィルタを実験。 使用したのは、ここで紹介されていたコード。 towardsdatascience.com アクション認識のデータセットUCF-101の動画を利用。実行したのはM1 Mac。 フィルタ…

Lambda Labs GPU CloudでJAX/Flax

MacのMetalを使って、手持ちのM1 MacにもJAX/Flaxの実行環境を作ることは出来るのですが、 実際に学習をしようとしてもエラーで詰まってしまうことが多く、JAX/Flaxを実行できる環境を探していました。 Colabを使っても良いのですが、学習を実行するだけでな…

論文紹介:Video-LLaMA

MetaがLLaMA、LLaMA2と公開したことで、どんどん加速しているように見えるLLMに関する研究ですが、LLMに関するOpen Challengesの一つとも考えられている様々なモダリティの取り込みに関する研究で、Video-LLaMAを読んでみました。 arxiv.org github.com Vide…

JAXとcomposable program transformations

https://github.com/google/jaxのAboutは、次のように記述されています。 Composable transformations of Python+NumPy programs: differentiate, vectorize, JIT to GPU/TPU, and more Composable transformationsはどういうことなのか? NeurIPS2020: JAX …

ゼロから作るVision Transformer (JAX/Flax)

最近、Jax/Flaxを触るようになりました。ここでは、Jax/Flaxを用いてVision Transformerを実装した方法と、Jax/Flaxによる学習の方法について紹介しようと思います。 Vision Transformerのおさらい Vision Transformerを実装するにあたって、まずはこの図を…

pytorchとtensorflowのチュートリアル写経で見つけた小さなバグをPull Requestしてマージされるまで

正確にいうと、torchvisionとTensorflow Textのチュートリアル。 torchvisionの方は、ビデオファイルを読み込んでビデオフレームとオーディオフレームを返すVideo APIのチュートリアルで、ビデオのptsはvideo_ptsにappendして、オーディオのptsはaudio_ptsに…

stackoverflowで今年回答した内容のまとめ

今年の目標の一つとして、stackoverflowで回答を増やそうと考えていたのだけど、現時点で11件ほど行なうことが出来たので、ここでまとめておこうと思う。回答がAcceptされるとベターだとは思うものの、回答後のリアクションは質問者次第なので、コミュニティ…

DALL-E 2, Imagen, Parti

テキストから画像を生成するモデルが話題ですが、代表的なモデルであるDALL-E2とImagen、Partiのアーキテクチャを比較しているTwitterのスレッドを紹介。 A quick thread on "How DALL-E 2, Imagen and Parti Architectures Differ" with breakdown into com…

TD OD APIでデータ拡張のオプションを追加する

データ拡張のオプションは、TrainConfigの中でdata_augmentation_optionsとして定義されている。 data_augmentation_optionsは、repeatedフィールドで、PreprocessingStepに指定されているデータ拡張を任意の数だけ指定することができる。 // Message for co…