2024年の最初のエントリーはGPTです。 GPTモデルを自作して、OpenAIが公開している学習済みのパラメータをロード、テキスト生成までの一連の処理を実行します。 モデル 正確にはGPT2のTransformerブロックを自作します。 アーキテクチャの大部分はGPTと同じ…
フレーム単位の姿勢推定を動画に適用した場合に発生するジッターを解決するローパスフィルタを実験。 使用したのは、ここで紹介されていたコード。 towardsdatascience.com アクション認識のデータセットUCF-101の動画を利用。実行したのはM1 Mac。 フィルタ…
MacのMetalを使って、手持ちのM1 MacにもJAX/Flaxの実行環境を作ることは出来るのですが、 実際に学習をしようとしてもエラーで詰まってしまうことが多く、JAX/Flaxを実行できる環境を探していました。 Colabを使っても良いのですが、学習を実行するだけでな…
MetaがLLaMA、LLaMA2と公開したことで、どんどん加速しているように見えるLLMに関する研究ですが、LLMに関するOpen Challengesの一つとも考えられている様々なモダリティの取り込みに関する研究で、Video-LLaMAを読んでみました。 arxiv.org github.com Vide…
https://github.com/google/jaxのAboutは、次のように記述されています。 Composable transformations of Python+NumPy programs: differentiate, vectorize, JIT to GPU/TPU, and more Composable transformationsはどういうことなのか? NeurIPS2020: JAX …
最近、Jax/Flaxを触るようになりました。ここでは、Jax/Flaxを用いてVision Transformerを実装した方法と、Jax/Flaxによる学習の方法について紹介しようと思います。 Vision Transformerのおさらい Vision Transformerを実装するにあたって、まずはこの図を…
正確にいうと、torchvisionとTensorflow Textのチュートリアル。 torchvisionの方は、ビデオファイルを読み込んでビデオフレームとオーディオフレームを返すVideo APIのチュートリアルで、ビデオのptsはvideo_ptsにappendして、オーディオのptsはaudio_ptsに…
今年の目標の一つとして、stackoverflowで回答を増やそうと考えていたのだけど、現時点で11件ほど行なうことが出来たので、ここでまとめておこうと思う。回答がAcceptされるとベターだとは思うものの、回答後のリアクションは質問者次第なので、コミュニティ…
テキストから画像を生成するモデルが話題ですが、代表的なモデルであるDALL-E2とImagen、Partiのアーキテクチャを比較しているTwitterのスレッドを紹介。 A quick thread on "How DALL-E 2, Imagen and Parti Architectures Differ" with breakdown into com…
データ拡張のオプションは、TrainConfigの中でdata_augmentation_optionsとして定義されている。 data_augmentation_optionsは、repeatedフィールドで、PreprocessingStepに指定されているデータ拡張を任意の数だけ指定することができる。 // Message for co…
一回目のMulti Head Attention、二回目のGPTに続いて、三回目はBERT。 Multi Head Attentionの概要を掴む - stMind GPTの概要を掴む - stMind Building on parts 1 & 2 which explained multi-head attention and GPT, in part 3 of the Transformer Series …
前回は、Multi Head Attentionに関するTwitterの一連のスレッドを紹介した。 Multi Head Attentionの概要を掴む - stMind 今回はGPTについて。 GPT has been a core part of the unsupervised learning revolution that’s been happening in NLP.In part 2 o…
DeepMindのResearch Scientistの方がツイートしていたMulti Head Attentionのスレッドの紹介。 全部で12個。英語だけど、日本語に翻訳すれば10分くらいで読めるし、コードサンプルと図もあって短い時間でMHAの概要が掴めると感じた。 Transformers are argua…
tl;dr numpy.splitを使って、aryを3つのsubarrayに分割する。 import numpy as np train, val, test = np.split(ary, [int(len(ary) * .6), int(len(ary) * .8)]) 簡単な説明 データをtrain/testに分割する時、scikit-learnのtrain_test_splitを使うことが多…
tl;dr アスタリスクによるアンパックとzipを組み合わせる。 for row_vals, col_vals in zip(matrix, zip(*matrix)): print(row_vals, col_vals) 簡単な説明 まず、matrixは次のようなリストとする。 matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 行は難しい…
Apache SolrはOSSな全文検索システムですが、そのApache Solrのコミッターになった人が、オープンソースプロジェクトのコミッターになりたい人向けにアドバイスをしているブログ記事のメモです。 opensourceconnections.com 最初にパッチを投稿したのが2007…
姿勢推定モデルにおいては、関節毎のヒートマップ表現がよく使われており、OpenPoseを始め、多くの論文で有効性が確認されています。さらに、関節毎のヒートマップから、オリジナル画像における座標へ変換するデコード処理は、これまで十分に考察が行われて…
Tensorflow Object Detection API(TF OD API)では、Protocol Buffersを使用して学習と評価のプロセスを設定しています。学習と評価用のスキーマは、tensorflow/models/research/object_detection/protos/pipeline.configに定義されており、ハイレベルでは5…
tl;dr pipeline configに含まれるmodelのアーキテクチャ名から判断され、アーキテクチャに応じたbuildメソッドが使われる。 例えば、以下はfaster_rcnn_resnet50_v1_640x640_coco17_tpu-8のpipeline.configファイル。 具体的なところ configはobject_detecti…
cuberick-orion.github.io https://arxiv.org/pdf/2108.04024.pdf Composed Image RetrievalもしくはImage Retrieval conditioned on Language Feedbackは、従来の単一のモダリティを用いた画像検索と異なり、画像とテキストのペアを与えて検索を行うCompose…
Self-Supervised Learning(SSL)は、pretext taskを解くことで、ラベル付きデータなしに汎用的な表現を獲得する手法。ターゲットタスクに適用するには、SSLでpre-trainingした後に、fine-tuningによりターゲットのラベル空間へのマッピングを学習する。 ラ…
複雑なタスクを解く大規模なモデルを教師あり学習するとき、モデルの汎化性能は学習データ量に影響される。 しかしながら、高品質なラベル付き学習データを入手するにはコストがかかるという問題がある。 このような課題に対し、既存のデータに様々な変換手…
Distillationは、事前学習済みの大規模ネットワーク(教師モデル)を用いて、小規模ネットワーク(生徒モデル)を学習する仕組み。教師モデルと、生徒モデルは同じ入力を受け取り、教師モデルの方は生徒モデルのためのSoft labelを生成する。Soft labelは、…
論文のURL:https://arxiv.org/pdf/2106.08962.pdf 深層学習は、ビジョンや自然言語処理、音声認識など様々な分野で飛躍的な進歩をもたらしましたが、モデルの改良が進むにつれてパラメータ数やレイテンシー、学習に必要なリソースなどが大幅に増えており、…
CVPR2019で提案されたDeep High-Resolution Representation Learning for Human Pose Estimationのオフィシャル実装をEC2上で実行するまでの記録です。 jingdongwang2017.github.io EC2は、Deep Learning Base AMI (Ubuntu 18.04) Version 38.0 のP3インスタ…
www.coursera.org CourseraのNLP Specialization、完走しました! NLP Specializationは全部で4つのコース、各コースはさらに4週間分のサブコースで構成されている専門講座になります。最初のコースの終了が7月だったので、全4コースを終了するのに4ヶ月かか…
Prepping for MLE interviews? Develop a T-shaped knowledge base. Make yourself a stronger candidate by demonstrating broad technical knowledge AND expertise in one area. pic.twitter.com/8AiYiiNA6D— DeepLearning.AI (@DeepLearningAI_) 2019年7…
Work From Homeでのお供、Radikoでラジオ。 大体、こんなところを聞いてる。 AM9:00 - AM11:00 伊集院光とらじおと|TBSラジオFM90.5+AM954~何かが始まる音がする~ AM11:00 - AM12:00 ジェーン・スー生活は踊る|TBSラジオFM90.5+AM954~何かが始まる音がす…
レビューのテキストに含まれる語には、どういったものがあるか。特に、上位に含まれる語について、分布を見てみます。 scikit-learnのCountVectorizerを使って実装します。 def get_top_n_words(corpus, n=20, is_stop_words=False): vectorizer = CountVect…
データセット自体を理解し、モデル改善に役立てていきます。 Positiveなレビュー、Negativeなレビュー、それぞれについてレビュー長(ワード数)をカウントし、ヒストグラムで可視化します。 # 4. Count the length of sentences all_sentences = training_s…