タグ

pythonに関するsh19910711のブックマーク (991)

  • Poincaré Embeddings でJ1リーグのチーム・選手を可視化 - u++の備忘録

    ふと「Poincaré Embeddings」*1で遊んでみたいと思い立ち、サッカーJ1リーグのデータで試してみました。 Poincaré Embeddings gensimでの実装とデータセット Poincaré Embeddingsの学習 活用方法 おわりに Poincaré Embeddings Poincaré Embeddingsに関する説明は、ABEJA*2やscouty*3のブログに譲ります。 Poincaré Embeddings は端的に言うと word2vec の埋め込み先をユークリッド空間ではなく双曲空間にするという手法で、階層構造やべき分布をもつデータを埋め込むという問題設定において、低次元でもよい表現を与えられるという特徴があります。 Poincaré Embeddings による職種の類似度計算とその利用 - LAPRAS AI LAB gensimでの実装とデ

    Poincaré Embeddings でJ1リーグのチーム・選手を可視化 - u++の備忘録
    sh19910711
    sh19910711 2024/05/11
    "gensimの実装では正則化の影響で周囲にノードが集結しすぎないような工夫 / チーム名が中心 + 円周側に選手 / 「浦和レッズ」の近くに「サンフレッチェ広島」が配置 + 移籍した選手の影響ではないか" 2019
  • Matrix FactorizationとDeep Matrix Factorization(Keras)でのレコメンド - statsuのblog

    レコメンドの手法であるMatrix Factorizationについて勉強したのでその記録です。 以下の検証に関するコードはgithubにあげてあります。 github.com 1. 記事の概要 レコメンドの手法であるMatrix Factorizationについての概要 Matrix FactorizationのNeural Network形式の表現とKerasでの実装 Deep Matrix Factorizationの表現とKerasでの実装 MovieLensでの精度検証 2. Matrix Factorizationの概要 ざっくりと。 Matrix Factorizationはレコメンドの手法のひとつ。 レコメンドの参考サイト レコメンドつれづれ ~1-1. 協調フィルタリングのコンセプトを知る~ - Platinum Data Blog by BrainPad レコメンドつ

    sh19910711
    sh19910711 2024/05/10
    "KerasでDeep Matrix Factorization / Deepにするのは簡単 + どの部分をdeepにするかは工夫のしどころ / Matrix Factorizationめっちゃ強い + Deep Matrix Factorizationはポテンシャルありそうだけど、パラメータチューニングしんどい" 2019
  • huggingfaceのaccelerateを使って訓練時のCUDA out of memoryを回避する - Qiita

    はじめに 学習スクリプトを実行しているときにGPUにメモリが乗り切らなくてCUDA out of memoryで処理が落ちてしまい、学習スクリプトを最初から実行し直すハメになることがよくあります。 特に自然言語処理とかだと、batch毎に最大系列長に合わせて短い系列をpaddingするような処理をしている場合、毎ステップで必要なGPUメモリが変化するため、バッチサイズを大きく設定していると1エポック終わるまで不安で仕方ありません。 さらにTransformerベースのアーキテクチャーを使っている場合は、消費メモリが系列長に対して2乗のオーダーなので、ちょっと長い系列長のデータがあったら想定以上にメモリを消費して溢れてしまうケースとかもよくあるんじゃないでしょうか。 huggingfaceのaccelerateというライブラリ内のfind_executable_batch_sizeという機能

    huggingfaceのaccelerateを使って訓練時のCUDA out of memoryを回避する - Qiita
    sh19910711
    sh19910711 2024/05/10
    "Transformerベースのアーキテクチャーを使っている場合は、消費メモリが系列長に対して2乗のオーダー / accelerate: TPU、GPU、CPUでの実行を同じコードで記述できる / accelerate launch {スクリプト名}.pyのように実行" 2023
  • AWS Step Functionsの単体テスト実施手順 | takemikami's note

    AWS Step Functionsの単体テストをローカル環境で実施したい場合、 AWSのドキュメントに「AWS Step Functions Local」を使った方法が記載されており、 AWS Step Functionsから呼び出す処理(Lamda,SQSなど)をモックする方法もあります。 ステートマシンのローカルテスト | docs.aws.amazon.com https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/sfn-local.html モックサービス統合の使用 | ステートマシンのローカルテスト | docs.aws.amazon.com https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/sfn-local-test-sm-exec.html

    AWS Step Functionsの単体テスト実施手順 | takemikami's note
    sh19910711
    sh19910711 2024/05/09
    "Step Functionsの単体テスト: ドキュメントに「AWS Step Functions Local」を使った方法が記載 + 呼び出す処理(Lamda,SQSなど)をモックする方法もあり / 繰り返しの実施をしやすいようにpytestに組み込む"
  • ランダムフォレストをスクラッチで実装したい - Qiita

    非Deepな機械学習手法としてランダムフォレスト (Random Forest) を選択する場面は多々ありますが、基的にライブラリ任せになってあまり中身を意識することがありません。ので、今回はランダムフォレストの内部的な仕組みを確認しつつ、それを踏まえてPythonでスクラッチ実装していこうと思います。 ランダムフォレストについて ランダムフォレストの仕組みに関する分かりやすい記事は探せばいくらでもあるので、ここでは以降が読みやすくなるよう実装の視点から少し解説をつけておきます。 ランダムフォレストはたくさんの決定木から構成され、決定木はノードから構成されます。イメージとしては以下のようになります。 なので、実装の手順としては、 ノード : Node 決定木 : DecisionTree ランダムフォレスト : RandomForest の3つのクラスを実装していきます。 1. ノード

    ランダムフォレストをスクラッチで実装したい - Qiita
    sh19910711
    sh19910711 2024/05/09
    "sklearn.tree は使わない縛り / RandomForest: 入力されたデータからランダム抽出したサブセットを各決定木への入力とすることで多様な木を構築 + 抽出の際、使用する特徴量についても選択" 2020
  • PuLP で変数の和や内積を計算する際の注意点 - Qiita

    TL; DR PuLP で大きなモデル作るなら、numpy や pandas の sum や dot の使用は避ける。最低でも pulp.lpSum と pulp.lpDot を使い、場合によっては LpAffineExpression を自前で定義する。 はじめに 数理最適化、特に MILP のモデリングツールとして知られている PuLP だが、Python 標準の sum や numpy.sum を使うと、モデルの構築が非常に遅くなるケースがある。今回、次の計算の速度を測定した。 ベクトルの要素の総和 ベクトル同士の内積 実験環境は、Google Colaboratory の無償版。Jupyter notebook 上のセルで、10 回走らせたうちの最良の計算時間を採用した(%%timeit -r 10 -n 1)。Python のバージョンは 3.7 で、各ライブラリのバージョンは下

    PuLP で変数の和や内積を計算する際の注意点 - Qiita
    sh19910711
    sh19910711 2024/05/09
    "PuLP: 大きなモデル作るなら numpy や pandas の sum や dot の使用は避ける / 和や内積の計算は、PuLP の関数を使うか、できれば LpAffineExpression を再定義 / numpy の内積だとかなり遅い" 2021
  • MicroPython × BLE × テプラ 〜リバースエンジニアリングを添えて〜 /micropython-ble-tepra

    sh19910711
    sh19910711 2024/05/09
    "テプラ: スマホから印刷できるTEPRA Lite LR30という機種 + BLEで通信 / 通信内容をリバースエンジニアリングして自分のプログラムから印刷できるようにしよう / ESP32: 軽量なBluetoothスタック + 秒でWi-FiとBLEを喋らせられる" 2021
  • 構成図を『描く』から『書く』へ:DiagramsでAWS構成図かいてみる - Qiita

    やること "Diagram as Code"ことDiagramsで、AWS構成図をコードでかいてみる Diagramsとは Diagramsは、Pythonモジュール Diagrams使うにはGraphvizも必要 Pythonのコードでクラウドシステムアーキテクチャを描画できる サイトはここ https://diagrams.mingrammer.com/ サイトにあるDiagramsの説明は、英語だけど分量が少ないので一読すべし!(自動翻訳で十分理解できる) このように、構成図をPythonのコードで書ける。このコードを、Pythonスクリプトとして実行すると、構成図が画像として出力される。 良いところ 構成図をコード化できる コード編集で作図編集できるので、画像修正より楽 コードなので、CloudFormationのコードとまとめてGitで管理できる AWS以外のアイコンも用意されて

    構成図を『描く』から『書く』へ:DiagramsでAWS構成図かいてみる - Qiita
    sh19910711
    sh19910711 2024/05/09
    "Diagrams: 構成図をコード化できる + コードなのでCloudFormationのコードとまとめてGitで管理できる + AWS以外のアイコンも用意されている / 代用アイコンを決めておけばチーム内で共有する構成図として十分に使えそう" 2020
  • 軽量LLMをGoogle ColabでPPO ファインチューニング - Qiita

    超軽量LLMのflan-t5-baseをPPO(Proximal Policy Optimization)でファインチューニングしてみました。今回の目的はプログラムを動かすことなので訓練のハイパーパラメータやモデル改善度など基的に見ていません。いずれ格的に実行する時の足がかりに、と思ってやりました。 CPUでは実行できませんでしたが、Google Colabで無料でも使えるT4 GPUで実行できました。動かすことを目的としているので、精度などはあまり見ていません(時間制限を気にせず使えるようにColab Pro契約してます)。 実行環境 2024/4/14時点のGoogle Colab で、Python3.10.12で、以下のパッケージを主に使っています。numpyなど少しだけ使っているやつは省略。 Package Version 備考

    軽量LLMをGoogle ColabでPPO ファインチューニング - Qiita
    sh19910711
    sh19910711 2024/05/09
    "flan-t5-baseをPPOでファインチューニング + T4 GPUで実行できました / 30分ほど訓練 + RoBERTaのヘイトスピーチモデルを使ったToxicity判定で、0.022から0.012へとToxicityが低下 / PPOTrainerを作成。学習率など適当"
  • LightGBMによる物性予測モデルの計算過程を視覚化する - Qiita

    はじめに LightGBM の中身について理解するためにやってみたメモ 環境 記事では以下を事前にインストールしておく必要がある。 Graphviz Python numpy pandas matplotlib scikit-learn LightGBM RDKit Graphvizについては、ツールをインストールした後、Pythonのライブラリをインストールする必要がある。Python: LightGBM の決定木を可視化して分岐を追ってみる や、【Windows10】Graphvizのインストール等を参考にしてほしい。 モデル構築 まずはRDKitを使ってもモデルを作成してみよう。 まずはモジュールのインポート import numpy as np import pandas as pd from matplotlib import pyplot as plt from sklear

    LightGBMによる物性予測モデルの計算過程を視覚化する - Qiita
    sh19910711
    sh19910711 2024/05/09
    "データフレームのままLightGBMで学習を行うと可視化の際にpandasの列名が特徴名として表示 / plot_treeメソッドにより可視化 + dump_modelというメソッドを使うとjson形式でモデルの情報が得られる" 2022
  • 【PyTorch+Numpy】Dataloaderに潜むありがちなバグ - ころがる狸

    PyTorchは素晴らしい機械学習フレームワークですが、データ読み込みに使うDatasetとNumpyによる乱数発生の組み合わせは思わぬバグの発生源となっているようです。2021年4月10日に投稿されたこちらの記事がTwitter上で話題になっています。 tanelp.github.io 一言で要約するなら:PyTorchでデータを読み込む際にマルチプロセス処理を行うと、親プロセスのNumpyの乱数生成器の状態が子プロセスに継承されるため、ランダムであるべき配列の値がすべて同一になる。上記の記事にはコードもついているので、どういうことか手を動かして確認してみましょう。 悪い例その1と解決策 悪い例その2と解決策 torch.randintの力に頼ろう 悪い例その1と解決策 上の記事でも紹介されているコードがこちらです。numpy.random.randint(0, 1000, 3)で0以上

    【PyTorch+Numpy】Dataloaderに潜むありがちなバグ - ころがる狸
    sh19910711
    sh19910711 2024/05/08
    "DatasetとNumpyによる乱数発生 / データを読み込む際にマルチプロセス処理を行うと、親プロセスのNumpyの乱数生成器の状態が子プロセスに継承されるため、ランダムであるべき配列の値がすべて同一になる" 2021
  • tqdmでメモリリークにハマった話(機械学習) - Qiita

    事件 PytorchのResNetモデルを使って画像の訓練をしていたら、エポックのループ毎に、CPU / GPUメモリ両方の使用率がガンガン上がっていく事件に遭遇した。 解決方法(tqdmの使い方) tqdmは、進捗をプログレスバーで表示してくれる便利なライブラリだが、そこに落とし穴があった。 import tqdm # 訓練画像の data loader をループを回す for x in tqdm(loader): y = model(x)

    tqdmでメモリリークにハマった話(機械学習) - Qiita
    sh19910711
    sh19910711 2024/05/07
    "ResNetモデルを使って画像の訓練をしていたら、エポックのループ毎に、CPU/GPUメモリ両方の使用率がガンガン上がっていく事件 / enumerateでラッパーしてからtqdmを噛ませる" 2021
  • Kedroで機械学習パイプラインに入門する - Qiita

    はじめに Kedroという機械学習向けパイプラインツールを使ってみたので備忘までに記事を書きます。 とりあえずパイプラインを組んでみて動いたところまで、です。もう少し使い込んで、別途投稿できればと思っています。 公式のチュートリアルの差分は、以下くらいかなと思います。(どっちもちょっとしたことですが) ホストを汚さないようにDockerコンテナ内でKedroプロジェクトを作成・開発していること node.pyは使わず、普段慣れ親しんだディレクトリ構成で普通にスクリプトを書いていること(それらをノードとしてパイプラインでつないでいる) パイプラインツールの必要性 依存関係が複雑になりがちな処理処理フローを管理したい データ取り込み→データ前処理→モデルのトレーニング→チューニング→デプロイメント、etc ジョブを並列実行したい コンポーネントごとにマシンスペックを柔軟に設定したい 前処理は高

    Kedroで機械学習パイプラインに入門する - Qiita
    sh19910711
    sh19910711 2024/05/07
    "Kedro: Cookiecutterによるプロジェクトテンプレートを提供 + Pandas/Spark の切り替えなどにコードの改変が不要 + parameters.ymlに記述しておけばstringで簡単に読み出せる" 2020
  • Scikit-learn Dev Sprint Japanを開催しました - fltech - 富士通研究所の技術ブログ

    こんにちは、人工知能研究所 自律学習PJのプライニング ノルベルトです。 2021年5月26日~28日の3日間、Scikit-learnコンソーシアムと富士通の共催でScikit-learn DevSprint Japanを開催しましたので、レポートします。 ワークショップ 開発スプリント 今後について 今回は日で初めての Scikit-learn DevSprintを開催しました。これまで富士通はパリで開催されたDevSprintsに継続的に参加してきましたが、日にいる幅広い開発者や研究者がより簡単に参加できるようにし、日のユーザーの意見を多くscikit-learnに反映させることを目指して、日での開催を計画・提案しました。 そして2021年2月のDevSprint後、Scikit-learnコンソーシアムのコアメンバーと議論し、Scikit-learn Dev Sprint

    Scikit-learn Dev Sprint Japanを開催しました - fltech - 富士通研究所の技術ブログ
    sh19910711
    sh19910711 2024/05/07
    "初心者向けにオープンソース開発の開始方法 + プロジェクトへの貢献に関する詳細なチュートリアル / ボードを準備し、特にScikit-learnとして解決して欲しいIssueや易しめのIssueを列挙したものを用意" 2021
  • 小ネタ:Pytorch で Automatic Mixed Precision (AMP) の ON/OFF をするときの話 - 俵言

    最近気付いたのでメモ。長くなってしまったので、結論だけ見たい場合はまとめまで読み飛ばしてください。 まえおき NN を学習する際の GPU メモリの使用量軽減や学習速度の向上手段として混合精度学習(Mixed Precision Training) は欠かせません。pytorch では torch.cuda.amp モジュールを用いることでとてもお手軽に使うことが可能です。 以下は official docs に Typical Mixed Precision Training と題して載っている例ですが 、 model の forward と loss の計算を amp.autocast の with 文中で行い、loss の backward と optimizer の step に amp.GradScaler を介在させています*1。 # Creates model and opt

    小ネタ:Pytorch で Automatic Mixed Precision (AMP) の ON/OFF をするときの話 - 俵言
    sh19910711
    sh19910711 2024/05/05
    "混合精度学習: ちょっとの変更でGPU消費量が半分くらいになり計算速度も2倍ぐらいになる / 何も考えずおまじない的に autocast と GradScaler を書いていたのですがもっと早く docs を読むべきでした" 2021
  • Seaborn Objects ~ グラフィックの文法で強化された Python 可視化ライブラリの新形態 ~ - GMOインターネットグループ グループ研究開発本部

    2023.02.10 Seaborn Objects ~ グラフィックの文法で強化された Python 可視化ライブラリの新形態 ~ お久しぶりです。グループ研究開発部・AI研究開発質の T.I. です。色々あって久しぶりの Blog となりました。今回は、趣向を変え、最近大幅に改良された Python のデータ可視化ライブラリである Seaborn の新しい機能を紹介します。昨年9月にリリースされたばかりということもあるのか、邦どころか英語で検索しても解説資料は公式サイト以外はほぼ皆無(当方調べ)というレアな情報となります。 はじめに データ分析機械学習などにおいて、データの様々な特徴を可視化しながらの調査・探索(Exploratory Data Analysis (EDA))は、対象の正確で深い理解には不可欠なアプローチと言えます。Python のデータ可視化ライブラリとしては、

    Seaborn Objects ~ グラフィックの文法で強化された Python 可視化ライブラリの新形態 ~ - GMOインターネットグループ グループ研究開発本部
    sh19910711
    sh19910711 2024/05/04
    "Seaborn: Seaborn Objects という Interface が追加 / Seaborn Objects: R の ggplot2 と同じ Grammar of Graphics (グラフィックの文法)という思想で開発された機能 / 従来のSeaborn の機能では難しい可視化が直感的に自由にできる" 2023
  • uvとRye - methaneのブログ

    先週にRuffを開発しているAstralがuvを発表しました。 astral.sh uvは現在のところはvenv, pip, pip-toolsの基的な機能を提供していますが、将来は"Cargo for Python"になることを目標にしています。 一見すると乱立しているPythonのパッケージ管理ツールにもう一つ加わったように見えますが、Ryeの開発者のArminとuvの開発チームは連携していて、同時に次のような発表をしています。 uv: Python packaging in Rust Rye Grows With UV | Armin Ronacher's Thoughts and Writings Ryeはもともとより良いパッケージツールがどうあるべきかの実証のために作られていて、中身は既存のツールのツギハギだった Ryeがpip-toolsやvirtualenvの代わりにuvを

    uvとRye - methaneのブログ
    sh19910711
    sh19910711 2024/05/03
    "uv: ”Cargo for Python”になることを目標 / 乱立しているPythonのパッケージ管理ツールにもう一つ加わったように見えますがRyeの開発者のArminとuvの開発チームは連携していて / uvがRyeの機能に追いつくまでRyeの開発は当面続く"
  • PyTorchとJAXに対応したKeras3でMNISTを試す|はまち

    バックボーンのフレームワークを、従来のTensorFlowから、デファクトスタンダードになりつつあるPyTorchと、実行効率に優れたJAXも選べるようになったKeras3.0が公開されていたので、さっそくバックボーンをPyTorchやJAXに設定して、手書きアルファベット画像のクラス分け課題のMNISTを試してみました。 23.11.29追記 公式の紹介ページも公開されていました。 https://keras.io/keras_3/ Keras3のインストール、インポート今回はGoogle Colabで試してみます。Keras3は現時点ではPyPI上では、プレビューリリースとしてkeras-coreの名前でインストールできます。 !pip install keras-coreバックエンドの設定(torch, jax, tensorflow) import os os.environ["K

    PyTorchとJAXに対応したKeras3でMNISTを試す|はまち
    sh19910711
    sh19910711 2024/05/03
    "Keras3.0: デファクトスタンダードになりつつあるPyTorchと、実行効率に優れたJAXも選べるようになった / バックエンドをJAXにするとTensorFlowと比べてざっくり2倍程度、学習および推論が高速化" 2023
  • LangGraphで作ったAgentアプリケーションをChainlitで利用できるようにしました。 - CCCMKホールディングス TECH Labの Tech Blog

    こんにちは、CCCMKホールディングスTECH LABの三浦です。 いつの間にか桜が散って、街の中で緑が目立つようになってきました。外に出るのが心地よい時期なので、ベランダでのんびり出来るようにしようとこの前の休みにベランダの掃除をしました。半日くらいかけてきれいにし、なんだか部屋に入ってくる空気もきれいになったように感じました。ベランダの掃除はついつい後回しにしがちだったのですが、家全体の雰囲気が良くなるので、もっと定期的にベランダの掃除をしようと思いました。 前回LangGraphを使ってPDFファイルとBing Searchを使って質問に回答してくれるAgentアプリケーションを作った話をご紹介しました。 techblog.cccmkhd.co.jp これまではNotebookで開発をし動作を確認していたのですが、GUIを通じてチャット形式で使えるようにしたいな・・・と考えました。そ

    LangGraphで作ったAgentアプリケーションをChainlitで利用できるようにしました。 - CCCMKホールディングス TECH Labの Tech Blog
    sh19910711
    sh19910711 2024/05/03
    "LangGraphで作成したAgentは、ユーザーの質問によって必要に応じてPDFからの情報抽出、Bing Searchの2つのToolを実行 / ファイルのアップロードメッセージの表示やファイルの受け取りはcl.AskFileMessageで実行"
  • ReformerをTrax (tensor2tensorの後継)で使ってみた - メモ帳

    記事の目的 Reformerの著者実装 (Trax) を使ってみる!!! Traxで学習・推論するための一連の流れをまとめる Reformerとは Transformerの大幅な計算効率の向上・省メモリ化に成功 したモデルです。計算リソースは大きなボトルネックになるので価値が高いです。 また、Transformerは各種BERT系統のベースにもなっています。 BERT系統のモデルは、急速に巨大化しおり、もはや計算リソース的に一般には手がだせなくなってきているので押さえておいて損はないと思います。 既に素晴らしい記事があるので詳しくは割愛します。ぜひ、以下をご覧になって下さい。 参考: ai.googleblog.com ai-scholar.tech Traxとは github.com Google Brain teamがメンテナンスしているtensor2tensorの後継 Reform

    ReformerをTrax (tensor2tensorの後継)で使ってみた - メモ帳
    sh19910711
    sh19910711 2024/05/03
    "Trax: Google Brain teamがメンテナンスしているtensor2tensorの後継 / Convolution, pooling, RNNなどの主要なlayerやnormalization, activationあたりも豊富に実装されている / tf.kerasのように層を重ねていくだけ" 2020