タグ

*algorithmと*programに関するsh19910711のブックマーク (371)

  • DenseNetの論文を読んで自分で実装してみる - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? DenseNetの論文を読んでみたのでまとめと、モデルを簡略化してCIFAR-10で実験してみた例を書きます。DenseNetはよくResNetとの比較で書かれますが、かなりわかりやすいアイディアなのが面白いです。 元の論文 G.Huang, Z.Liu, L.van der Maaten, K.Q.Weinberger. Densely Connected Convolutional Networks. IEEE Conference on Pattern Recognition and Computer Vision (CVPR),

    DenseNetの論文を読んで自分で実装してみる - Qiita
    sh19910711
    sh19910711 2024/02/29
    "論文では1x1畳み込みをボトルネック層と呼んでいます / ボトルネック層: フィルター数を一定に統一 + パラメーター数が爆発的に増加しにくくなるメリット" / 2018
  • llama.cpp で LLM を AWS Lambda で動かしてみる

    こんにちは、初めましての方は初めまして。株式会社 Fusic で機械学習エンジニアをしている瓦です。「2024 年は日記をつけてみよう」と思って書き始め、一日坊主で終わってしまった一ヶ月前の日記を眺めながら、日記を付けることの難しさに絶望しています。 この記事では llama.cpp を使って、AWS Lambda で LLM を動かしてみます。LLM を使おうとすると、大きなメモリの載っている GPU を用意して、という流れに大体なりますが、もちろん誰でも強い GPU が使える環境を得られるとは限りません。また GPU を使おうとするとそれなりの金額を覚悟しないといけないことも多いです。そこで CPU でも動く環境を作って、サーバレスな環境で動くかを試してみようと思います。 準備 モデルの量子化 今回は Stablity.ai が公開している Japanese StableLM-3B-4

    llama.cpp で LLM を AWS Lambda で動かしてみる
    sh19910711
    sh19910711 2024/02/28
    "Lambda で LLM / 「2024 年は日記をつけてみよう」と思って書き始め、一日坊主で終わってしまった / モデルの量子化 (llama.cpp): README の Prepare and Quantize に基本的に従えばよい / llama-cpp-python を使って量子化したモデルを読み込み"
  • PyTorchを使ってCNNで文章分類を実装してみた - Qiita

    はじめに そういえば自然言語を畳み込んだことなかったなぁと思い、いつ必要になるかわからんので、どんなもんなのか雰囲気を確かめるために実装のお勉強をしてみました。 自分みたいに普段は自然言語処理ばかりしていて、CNNに不慣れな人向けに実装重視で解説してみます。 検証するタスクは、livedoorニュースコーパスの文をカテゴリに分類する問題とします。 実装環境はGoogle Colabを使っています。 以下の文献を参考にしました! https://arxiv.org/pdf/1510.03820.pdf CNNで文章分類をしている論文で、今回の実装もこの論文で紹介されているアーキテクチャーを参考にしています。 https://tkengo.github.io/blog/2016/03/11/understanding-convolutional-neural-networks-for-nlp

    PyTorchを使ってCNNで文章分類を実装してみた - Qiita
    sh19910711
    sh19910711 2024/02/28
    arXiv:1510.03820 / "ベクトル方向(行方向)全体に対して、隣接する単語ベクトルをひとまとまりにして畳み込む / 異なる単語分散表現(word2vecとfasttextみたいな)などを使って、複数チャネルとみなす方法もある" / 2021
  • サウンド系の深層学習に使うtorchaudio - deoxy’s diary

    この投稿はrioyokotalab Advent Calendar 2020 21日目の投稿です。 adventar.org サウンド系の機械学習 PyTorchを使ってなにかするとなると、なぜか多くの人は画像をどうにかしようとしがちな気がします。特にブログとかでやってみた的な記事だとその傾向が強いと思います。確かにインパクトはありますし...。 画像処理はやり尽くされている感はありますが、音声系って意外とやられていない要素が多いように思います。もし、PyTorchで音声に関する機械学習を行いたいのであれば、この記事が参考になればと思います。 サウンド系機械学習のスタンダードな実装 音声というのは波情報です。それをそのまま1次元CNNにかけるというのでもいいのですが、波情報のままだと、情報が冗長すぎます。なので、基的にはスペクトログラム1と呼ばれる、二次元情報に変換し、それを画像処理ベー

    サウンド系の深層学習に使うtorchaudio - deoxy’s diary
    sh19910711
    sh19910711 2024/02/26
    "PyTorchを使ってなにかするとなると、なぜか多くの人は画像をどうにかしようとしがち / 音声というのは波 + 情報が冗長すぎ / 二次元情報に変換し、それを画像処理ベースのCNNにかけて特徴量抽出を行う" / 2020
  • SIF/uSIFを使ってRustで簡単高速文埋め込み - かんぱさんだの技術ブログ

    記事は、情報検索・検索技術 Advent Calendar 2023 9日目の記事です。 SIF/uSIFという文埋め込み手法と、そのRust実装であるsif-embeddingを紹介します。最後にちょこっとベクトル検索もします。 はじめに SIF SIF-weighting Common Component Removal アルゴリズム 使用上の注意 uSIF sif-embedding 準備 単語埋め込みの準備 ユニグラム言語モデルの準備 Let's 文埋め込み 性能評価 速度性能 評価用データセットを使ったベンチマーク 英語語 ベクトル検索 おわりに はじめに 自然言語文の密ベクトル表現を文埋め込みと呼びます。文埋め込み同士のコサイン類似度などを使って、文同士の意味的な類似度が計算できるので、自然言語処理や情報検索などで重宝します。特に最近では、今年のAdvent Calen

    SIF/uSIFを使ってRustで簡単高速文埋め込み - かんぱさんだの技術ブログ
    sh19910711
    sh19910711 2024/02/23
    "SIF: 文埋め込み + ICLR 2017で発表 / CCR: 文埋め込みから文法に関係する成分を取り除く + "just", "when", "even", "one"などの構文情報に関係する単語 + このような成分を、文の意味には寄与しないノイズとして取り除く" / 2023
  • PyTorchでより深いMatrix Factorization

    10年前のNetflix Prizeで確立された(?)、Matrix Factrizationは多くの場合、SVDというアルゴリズムで解くことができるが、ロジックと数式をぼんやりと見ていたら、Deep Learningでもできるっぽいなと思った。 ググると、Pytorchでの実装をここなっている人[1], Kerasでの実装を行っている人[2]を見つけることができた。[2]によると、内積を計算することを最終目標とするのであるが、どうやらその内部は非線形であってもいいらしく、表現力を高めるような深いネットワークの構成でも性能がでるようである。 Pytorchで実装を行い、簡単に性能をそれなりに出せたので忘備録として残しておく。 Matrix Factorization気持ちはこうで、実際にはすべてを同一に最適化できないので、ミニバッチを切り出して順次学習していく 一つのデータセットの粒度は、

    PyTorchでより深いMatrix Factorization
    sh19910711
    sh19910711 2024/02/18
    "Matrix Factrization: SVDというアルゴリズムで解くことができる / 内積を計算することを最終目標とするのであるが、どうやらその内部は非線形であってもいいらしく / 深いネットワークの構成でも性能がでる" / 2019
  • 『Pythonではじめるオープンエンドな進化的アルゴリズム』の査読を担当しました - 何かを書き留める何か

    果て無きゴールへ 2023年10月18日にオライリージャパンから『Pythonではじめるオープンエンドな進化的アルゴリズム』が発売される。 www.oreilly.co.jp この度、邦訳の査読者として、主にPython面で少しお手伝いさせていただいた。 『作って動かすALife』と主著者は同じであり、精神的続編である。 『ALIFE | 人工生命 ―より生命的なAIへ』の実践編かもしれない。 従来のアルゴリズムとは違うオープンエンドなアルゴリズム、つまり何らかのハッキリとした目標があるわけではなく、進化発展することを目的としたアルゴリズムが主題である。 実際にロボットを歩かせる、迷路を解かせるというテーマでアルゴリズムをPython製のライブラリを使って実装をする。 実際に歩いている様子(静止画だが)を見るだけでも、人によってはワクワクすると思う。 新しいテーマであり、変化が激しい可能性

    『Pythonではじめるオープンエンドな進化的アルゴリズム』の査読を担当しました - 何かを書き留める何か
    sh19910711
    sh19910711 2024/02/09
    "オライリージャパンから『Pythonではじめるオープンエンドな進化的アルゴリズム』が発売 / 実際にロボットを歩かせる、迷路を解かせるというテーマでアルゴリズムをPython製のライブラリを使って実装" / 2023
  • Entity Embeddings を使ってタイタニック号生存者を予測する深層学習モデルを作る - Qiita

    Entity Embeddingsという深層学習の手法があります。深層学習がよく使われる画像分析や音声分析などのデータとは違う、カテゴリ変数や順序変数の特徴量を学習する時に使います。 Entity Embeddingsが広く知られるようになったきっかけは、KaggleのRossmann Store Salesコンペでした。1位と2位のチームがドメイン知識をフル活用したアプローチをしたのに対し、この手法を活用したチームはドメイン知識の無い中なんと3位に入賞しました。コンペの説明と、使われた手法については、3位のNeokami Incのインタビュー記事、使われたソースコード、コンペ後に発表した手法に関する論文などで学ぶことができます。 タイタニック号生存者予測コンペのサンプルデータに対し、このEntity Embeddingsを実装するにはどうすれば良いのでしょうか。 0. 環境構築 環境構築

    Entity Embeddings を使ってタイタニック号生存者を予測する深層学習モデルを作る - Qiita
    sh19910711
    sh19910711 2024/01/25
    "カテゴリ変数がメインのSQLテーブルやエクセルなどのデータから学習する深層学習モデルを作る / Entity Embeddingsが広く知られるようになったきっかけは、KaggleのRossmann Store Salesコンペ" / 2019
  • 1つの Two-Tower モデルで4種類の推薦を実現する - Qiita

    import os import tempfile %matplotlib inline import matplotlib.pyplot as plt import numpy as np import tensorflow as tf import tensorflow_datasets as tfds import tensorflow_recommenders as tfrs plt.style.use("seaborn-whitegrid") ratings = tfds.load("movielens/100k-ratings", split="train") movies = tfds.load("movielens/100k-movies", split="train") ratings = ratings.map( lambda x: { "movie_title": x

    1つの Two-Tower モデルで4種類の推薦を実現する - Qiita
    sh19910711
    sh19910711 2024/01/25
    "user2item 推薦モデルを構築した際に得られる embeddings を活用し、簡単に item2item, user2user, item2user 推薦を実現する / TensorFlow Recommenders チュートリアル > Building deep retrieval models に基づいて Two-Tower モデルの実装" / 2023
  • Bluesky のフォロー推薦モデルを書いた - HackMD

    Social Network を活用するには自分の興味にあったアカウントをフォローすることが大事です.そのために重要な役割を果たすのが「おすすめユーザ推薦 (friend recommendation)」です.

    Bluesky のフォロー推薦モデルを書いた - HackMD
    sh19910711
    sh19910711 2024/01/21
    "次数が期待的に閾値以下になるようにサンプリング / GraphSage のサンプリングをデータセット生成時点で行っている / 与えられたグラフの (source_id, target_id) を正例,target_id をシャッフルしたものを負例 + TripletMarginLoss"
  • 『Pythonではじめる数理最適化』の7章「商品推薦のための興味のスコアリング」をStanで解く

    この記事は確率的プログラミング言語 Advent Calendar 2023の12/8の記事です。 概要 『Pythonではじめる数理最適化』はいいですよね。親しみやすい実例、分かりやすい数式、きれいなPythonコードと三拍子そろっています (今年のアドカレで改訂版が近いうちに出ることを知りました)。 7章「商品推薦のための興味のスコアリング」では、「何日前に直近の閲覧があったか」と「閲覧回数」の二つの軸で興味のスコアを考えます。興味のスコアが単調減少であるという制約のもと、再閲覧の割合と推定値の二乗誤差を最小化するという凸二次計画問題として解いています。この記事ではStanで解くとこんな感じですというのを示します。メリットとしてベイズ信頼区間も推定されます。 データ 公式のリポジトリの7章のipynbファイルを途中まで実行して得られるデータフレームrf_dfを使用します。他の人の扱い

    『Pythonではじめる数理最適化』の7章「商品推薦のための興味のスコアリング」をStanで解く
    sh19910711
    sh19910711 2023/12/08
    "7章「商品推薦のための興味のスコアリング」 / 「何日前に直近の閲覧があったか」と「閲覧回数」の二つの軸 + 興味のスコアが単調減少であるという制約 / 再閲覧の割合と推定値の二乗誤差を最小化"
  • 続・ブラウザ上でEmbeddingsを作る | Memory ice cubes

    あらすじ 前回の記事で、Tensorflow.jsのUSEを使って、ブラウザ上でEmbeddingsは作れた しかし精度がいまいち というところで、より大きいモデルがあれば・・?それをブラウザから使えたら・・?と思い、いろいろ探してみた。 すると、Web AIっていう野心的なプロジェクトがあって、T5みたいなモデルも使えるらしいことがわかった。 GitHub - visheratin/web-ai: Run modern deep learning models in the browser. ので、やってみた。 が、しかし https://github.com/leader22/text-embeddings-by-webai 動かせるようになるまで体にPRを送ったりと時間はかかったけど、まあできた。 ただ、やっぱ日語の精度はイマイチだな〜という感想に終わった。 続・これだから日

    続・ブラウザ上でEmbeddingsを作る | Memory ice cubes
    sh19910711
    sh19910711 2023/11/24
    "Web AIっていう野心的なプロジェクトがあって、T5みたいなモデルも使えるらしい / onnxruntime-webに依存してML系のタスクができるライブラリは他にもあるらしく / TransformersのJSポートがあった"
  • 大規模言語モデル入門 / LLM introduction (SES2023)

    ソフトウェアエンジニアリングシンポジウム2023 (SES 2023)

    大規模言語モデル入門 / LLM introduction (SES2023)
    sh19910711
    sh19910711 2023/09/03
    "phi-1 [Gunasekar+, 2023/06]: GPT-4を活用してフィルタリングした高品質Githubコード + 教科書品質のデータCodeTextBook, CodeExcersizeを利用 / パラメータ数1.3Bにも関わらず、WizardoCoderやGPT-3.5に匹敵する性能を実現"
  • PyTorchのEmbeddingの挙動についてまとめてみた - DROBEプロダクト開発ブログ

    はじめに CTOの都筑(@tsuzukit2)です この記事では PyTorchEmbedding の挙動について記載します Embedding とは何か 公式の仕様書はこちらになります Embedding - PyTorch 1.9.0 documentation 公式の説明は以下となっており、非常に的を得ていると思います A simple lookup table that stores embeddings of a fixed dictionary and size. 意訳すると、 固定長の辞書埋め込みを保存するシンプルなルックアップテーブル になるんじゃないかなと思います。Embedding は、何だか難しそうにも思えてしまうのですが、ここに記載されている通り非常にシンプルなテーブルでしかないという事です モジュールの解説としては以下のように記載があります This mod

    PyTorchのEmbeddingの挙動についてまとめてみた - DROBEプロダクト開発ブログ
    sh19910711
    sh19910711 2023/07/21
    "loss.backward 実行するとはじめて emb.weight.grad に値がはいります / ただし、ここでもまだ weight 自体は更新されていません / optimizer.step() を実行する事で emb.weight.grad から計算された値を使って weight が更新されます"
  • データ分析コンペにおいて 特徴量管理に疲弊している全人類に伝えたい想い

    Α͋͘Δύλʔϯʢ�JQZOCʣ ϚϚͷҰาΛࢧ͑Δ w ಛ௃ྔ࡞Δ� DPM���<�Z �" �# �$ �%�>��ˠ��<�Z �" �# �$ �% �& �'�����> # e.g) train['A'] = train['A'].fillna(0) train['B'] = np.log1p(train['B']) train['E'] = train['A'] + train['B'] df_group = train.groupby('D')['E'].mean() train['F'] = train['D'].map(df_group) <��> ɾ� ɾ� ɾ

    データ分析コンペにおいて 特徴量管理に疲弊している全人類に伝えたい想い
    sh19910711
    sh19910711 2023/06/16
    "列ごとに特徴量をpickleファイルで管理する / 生成時、同時に特徴量メモを作成する / 1つのスクリプトファイルに特徴量生成をまとめる / 学習に使用した特徴量とパラメータを管理することで再現性も担保" / 2019
  • scikit-learnで5行でできる類似テキスト検索

    この記事はKaggle Advent Calendar 2022の16日目の記事です。 0.はじめに KaggleではShopeeやH&Mコンペなどの(e-)commerceに関連した、類似商品検索やレコメンド系のコンペが度々開催されます。 これらのコンペには商品名や商品画像、ユーザーの購入履歴といったデータが含まれており、商品・ユーザーベースの特徴の抽出を行う必要があります。さらにその特徴を用いて候補となる商品を並び出して、機械学習を用いて最終的に出力する商品を予測します。 記事では、このようなコンペの第一歩として、商品名などテキストに注目した特徴抽出をscikit-learnを主に使った手法を紹介します! なお、私自身コンペを通して学んだことを書いているので、誤りやより良い方法もあるかと思います。何かあればコメントで共有していただけると助かります🙇 1.類似テキスト検索 類似テキス

    scikit-learnで5行でできる類似テキスト検索
    sh19910711
    sh19910711 2023/05/17
    cumlにもNearestNeighborsあるのか / "最近傍探索のメソッドとしてsckit-learnではNearestNeighborsが提供 / fit()でテキスト特徴を入力 + kneighbors()で近傍探索を行いたい変数を入力 / cumlを用いた高速な類似テキスト検索" / 2022
  • MLIR がもたらす新たな中間表現の可能性

    はじめに 半導体の微細化が鈍化し、ハードウェアによる高速化が困難になっている現状において、ソフトウェアによる計算の高速化が喫緊の課題となっています。この状況において、特定のドメインの問題を解くことに最適化された言語であるドメイン固有言語と、そのコンパイラであるドメイン固有コンパイラの活用が望まれています。 ドメイン固有コンパイラの構築の際には、開発を容易にするために、既存のコンパイラ基盤であるLLVMを活用することが考えられます。しかし、LLVM はドメイン固有コンパイラの構築にはあまり向きません。この理由は、LLVM の成功と表裏一体の関係にあります。 LLVM が成功した理由は、コンパイラの処理を適切に分割し、独立したモジュールとして機能させたことにあります。このモジュール化において中心的な役割を果たしているのが、LLVM で用いられる中間表現(Intermediate Represe

    MLIR がもたらす新たな中間表現の可能性
    sh19910711
    sh19910711 2023/04/27
    "MLIR: TensorFlow プロジェクト内で開発 + 特定のドメインの処理にカスタマイズされた中間表現の定義と、複数の中間表現の協調動作を、1 つのインフラ上で実現させる + 抽象構文木の構築と LLVM IR の生成の間を橋渡し"
  • メルカリShopsを支えるMonorepo ML開発環境 | メルカリエンジニアリング

    こんにちは!SouzohのMLチームでSoftware Engineerをしているwakanaです。 SouzohのMLチームは2021年4月にスタートし、ちょうど2年が経ちます。当時1人だったメンバーも、今では4人になり、レコメンデーションを中心に5, 6個の機能を提供するようになりました。MLOpsも成熟し、より新しく高度なML機能開発に集中して取り組める環境が整ってきていると感じています。 そこでこの記事では、立ち上げから2年たった今SouzohのPython, ML環境がどのようになっているか紹介しようと思います。これからPythonやMLのMonorepoでの開発環境を整えようとしている方、特に少人数での運用を考えてる方の参考になれば嬉しいです。 TL;DR SouzohではPoetry, Bazel, VertexAI Pipelinesで快適なMonorepo開発環境を実現

    メルカリShopsを支えるMonorepo ML開発環境 | メルカリエンジニアリング
    sh19910711
    sh19910711 2023/04/13
    "BazelでPythonを扱うのは難ありだが、Kubeflow Pipelinesと相性抜群 / protobufのコンパイルや、docker imageの作成までBazelによって行う / Bazelで用意されている関数でbuildできるためDockerfileも書く必要がありません"
  • Rとomprパッケージで数理最適化を実装する - Qiita

    1. 概要 この記事では、R言語の数理最適化パッケージ「ompr」を使って、混合整数計画問題の実装方法を紹介します。 omprは比較的新しいパッケージであり、日語情報がまだ少ないため、この記事が皆さんの役に立てば幸いです。 pythonであればpulpが有名ですが、pulpと比較してomprの使い勝手や学習コストは同程度かと感じています。 むしろRならではのパイプ記法を使える分、Rユーザーには馴染みやすいかもしれません。 なお、記事では最適化の数理面での解説は行わず、Rでの実装方法のみ紹介します。 2. 必要なパッケージ ompr.roiは、ROI(R Optimization Infrastructure)という最適化問題を解くためのフレームワーク上で様々なソルバーを利用できるようにする補助的なパッケージです。 今回はGLPKというソルバーを利用するので、ROI.plugin.glp

    Rとomprパッケージで数理最適化を実装する - Qiita
    sh19910711
    sh19910711 2023/04/02
    "ompr: R言語の数理最適化パッケージ / pythonであればpulpが有名ですが、pulpと比較してomprの使い勝手や学習コストは同程度 / Rならではのパイプ記法を使える分、Rユーザーには馴染みやすいかも"
  • Stable Baselinesを使ってスーパーマリオブラザーズ1-1をクリアするまで - Qiita

    はじめに 強化学習でゲームを解くことに興味があってちょっとずつ勉強している強化学習苦手勢です。Advent Calender 用に何かゲームの攻略について書いてみることにしました。OpenAI が公開している Stable Baselines の紹介とそれを使ってスーパーマリオブラザーズ 1-1 をクリアするところまでやりましたという内容です。OpenAI Gym / Baselines 深層学習・強化学習 人工知能プログラミング 実践入門を参考にました。 Stable Baselines は OpenAI が公開している強化学習アルゴリズムの実装セットです。多くの有名な手法を利用しやすい形で提供しています。強化学習アルゴリズムは実装時に仕込んでしまったバグの検出が難しく、学習が上手くいかない時に問題を切り分けにくくしています。Stable Baselines のような標準化された実装を使

    Stable Baselinesを使ってスーパーマリオブラザーズ1-1をクリアするまで - Qiita
    sh19910711
    sh19910711 2023/03/07
    "Stable Baselines: OpenAI が公開している強化学習アルゴリズムの実装セット / スーパーマリオブラザーズのゲームプレイ上意味のある行動は ~ 12 種類に限られる / 半分程度のマリオはゴール少し前の穴を越えられておらず" 2020