タグ

2024年5月27日のブックマーク (36件)

  • 推薦システム実践入門読んだので簡単に所感 - KIWAM_KEN_DIARY

    書くときは頑張って書く。 以前会社で同僚だったhttps://twitter.com/zr_4から献してもらった推薦システム実践入門を読んだ。 www.oreilly.co.jp 章立ては以下のようになっている。 1章 推薦システム 2章 推薦システムのプロジェクト 3章 推薦システムのUI/UX 4章 推薦アルゴリズムの概要 5章 推薦アルゴリズムの詳細 6章 実システムへの組み込み 7章 推薦システムの評価 8章 発展的なトピック 推薦システムの書籍だとモデルの部分にフォーカスを置いたものが多い印象だけど、この書籍は4,5章でモデルの話をしている以外ではあまり触れられていない。 むしろ推薦システムをどのような目的で導入するべきなのか、どのようにシステムを作るべきなのか、どのように評価して改善をしていくのか、そういった推薦システムの基的な部分を広く網羅したものになっている。 そういっ

    推薦システム実践入門読んだので簡単に所感 - KIWAM_KEN_DIARY
    sh19910711
    sh19910711 2024/05/27
    "個人的に良いなと思った章は3章で、推薦システムの利用シーンのケースとそれに対応するアプローチが網羅 / 6章、7章はレコメンドをサービスに届けるために必要なシステム周りの話と評価方法について" 2022
  • JuliaでOpenStreetMapのXMLをparseした話

    Twitter芸人名@cocomoffです. この記事はJulia Advent Calendar 2021の18日目の記事です.15日目にはTuring.jlを使ったネタで書いたのですが,普段自分でちょっとしたプログラムを書くためにもJuliaを使っていることがあるので,今日はだいぶ前に自分で書いたJuliaプログラムに関する記事です. OpenStreetMapについて 概要 名前ぐらいは聞いたことがある人も多いかもしれないですが,https://www.openstreetmap.org/ で公開されている地図情報です(?). OpenStreetMapは、道路、通路、カフェ、鉄道駅など、世界中にあるすべてのものに関するデータを提供・メンテナンスしているマッパーのコミュニティによって構築されました。 ライブラリ OpenStreetMapを扱うライブラリやソフトウェアはいろいろありま

    JuliaでOpenStreetMapのXMLをparseした話
    sh19910711
    sh19910711 2024/05/27
    "ダウンロードしたosmという拡張子のファイル(中身はXML)がbz2の状態で500MB程度,解凍した状態で6GB程になる / Juliaを使ってEzXMLのストリーム読み込みモードを使う必要 / EzXML.jl: すごいXML処理用のライブラリ" 2021
  • Soda SQLとStreamlitでポータブルなデータ品質チェックツールを実装する

    以前、Great Expectationsを使ったデータバリデーションの仕組みについての記事を書きました。 Great Expectationsはデータに対するテスト実行とプロファイリングを実行し、結果をHTMLで出力してくれる、高機能で便利なツールでした。しかし、環境の構築や設定の準備に手間が掛かり、スモールスタートでテストだけ始めたいというような場合は導入のコストがネックになると思います。 一方で、Great Expectationと同様に有名なツールとして、Soda SQLというものがあります。こちらは、コマンドラインツールで、pipでインストールしてYAMLでテストやプロファイリングの設定を記述すればすぐに実行することができます。 ただし、テストやプロファイリングの実行結果はJSONになるので、Webブラウザでレポートを見たいといった場合には、自前でその仕組みを実装する必要がありま

    Soda SQLとStreamlitでポータブルなデータ品質チェックツールを実装する
    sh19910711
    sh19910711 2024/05/27
    "スキャンはSoda SQLを使い、結果のレポートはStreamlitで表示 / 過去のスキャン結果との比較や時系列での可視化などにも活用 / Soda SQL自体は、MySQLやRedshiftなど様々なターゲットに対応" 2022
  • リンカーを自作した

    自作Cコンパイラではすべて自分で実装してみるというつもりでCコンパイラ、プリプロセッサ、アセンブラを作ってきたが、ついに欠けている最後の要素だったリンカーを作った。 今まではアセンブラですべてのアセンブリコードを受け取って、マシンコード生成とラベルのアドレスを解決して直接ELF形式の実行ファイルを出力していた。 それでほとんど問題はないんだけど、リンカーが使えるとオブジェクトファイルを生成しておくことで分割コンパイルできるようになりコンパイル時間が短縮できたり、 他のコンパイラの出力結果も使用できるようになるという利点がある。 またリンカーがなくてすべてのコードを一緒にアセンブルしていることにより、ソースファイル中の static 変数や関数でも実際には漏れてしまっているため、プログラム全体で衝突しない名前を使う必要があるという欠点があった。 アセンブラからは実行ファイルだけじゃなくオブジ

    sh19910711
    sh19910711 2024/05/27
    "Cコンパイラ、プリプロセッサ、アセンブラを作ってきたが、ついに欠けている最後の要素だったリンカーを作った / 複数のオブジェクトファイルを受け取ってアドレスを計算して実行ファイルを出力するのが主な仕事" 2022
  • ポッドキャストを始めて1年、わりと順調で嬉しい - spice picks

    趣味でポッドキャストを始めて1年で、フォロワー300人を超えてマネタイズもできるようになりました。 良い節目だし自慢したいので、これまでの実績をまとめます。 ついでに、休まず週に1回配信を続けられた収録/編集方法も紹介します。 どんなポッドキャストやってるんだ 「ITトリオの日常」というポッドキャストを配信しています。 エンジニア3人が集まって雑談ミーティングする、というコンセプトで毎週月曜日に最新エピソード更新中です。 Spotify open.spotify.com Apple Podcast ITトリオの日常 ITトリオテクノロジー¥0podcasts.apple.com エピソードについて 「雑談ミーティング」がコンセプトなので、 何となくエンジニアが共感できそうな話題をゆるめに扱うことが多いです。 たまに技術関係ないエピソードがあったり、おたより返信回があります。 これまで特に人

    ポッドキャストを始めて1年、わりと順調で嬉しい - spice picks
    sh19910711
    sh19910711 2024/05/27
    "リスナーの男女比は大体7:3で、 年齢的には20-30代の方々が多い / まとめどり方式: 収録は3人の予定が合う日を見つけて3回分くらい / 毎週配信を1年も続けると結構な自信になる" 2023
  • Kaggle(データサイエンス)における写経

    普段は Kaggle 等のデータサイエンスに関連する Podcast をやっていますれごんです。 この前、一緒に Podcast をやっているカレーちゃん@currypurinに「Kaggle コードの写経について」の質問があり、ポッドキャストでも取り上げたので、それについてブログにも自分の思っていること(ポエム)を書いていきます。 私もまだ、Kaggle Expert なので、偉いことは言えませんが、Web 界隈で開発や写経を今までしてきて、データサイエンスでの写経の難しさについて書いていけたらなと思います。 質問内容 Kaggle のタイタニックを終えて開催中のコンペの適当なカーネルを写経中なのですがとても難しいく、このままで力が | Peing -質問箱- 取り上げたポッドキャストの回 056 Kaggle 写経 - regonn-curry とりあえず言いたいこと Kaggle と

    Kaggle(データサイエンス)における写経
    sh19910711
    sh19910711 2024/05/27
    "コードだけではなく、そのコードが必要になった経緯 + モデルに CatBoost が使われていたとして、それがなんで選ばれたのか / 強い人とチームを組んでペアプロ的に進められると、そこらへんの考えも含めて学べて ~ " 2020
  • iKnow!でTOEIC800点超えしたので勉強方法についてまとめてみる - ITエンジニアの本棚

    英語学習 iKnow! DMM.com LLC教育無料 TOEIC受検が必要となり、前から少し気になっていたiKnow!を利用して勉強してみたところ840点を取得することができた。iKnowの効果を最大限引き出すために、自分なりに工夫したiKnow!勉強法についてまとめてみる。 僕のTOEICの点数の変遷は、覚えている限りで、650点(5年前) -> 700点(3年前)-> 840点(今回)なので、もともと基礎的な英語力はそこそこあったわけだが、iKnow!では自分の英語力に合わせて、様々な教材を選択できるので、この記事は誰にでもそれなりに役立つのではないかと思う。 まず、勉強をする理由を考える 怠け者な僕は、就職に必要だから、昇進に必要だから、といった外的要因だけではなかなか勉強するモチベーションがわかない。そのため、何のために勉強をするのか真剣に考えてみた。 まず一つ目として、「TOE

    iKnow!でTOEIC800点超えしたので勉強方法についてまとめてみる - ITエンジニアの本棚
    sh19910711
    sh19910711 2024/05/27
    "外的要因だけではなかなか勉強するモチベーションがわかない / 音読: 1単語につき3個程度の英文がある。それをひたすら音読 + 音声同様滑らかに発音できるようになるまで続ける" 2015
  • ChatGPT+LangChain| Elasticsearch公式ドキュメントのQ&Aを作ってみる

    はじめに この記事は、情報検索・検索技術 Advent Calendar 2023 の 11日目の記事です。 記事では、最新のElasticsearchの公式ドキュメントの内容を元にQ&Aを行うチャットボットを、LLMとLangChain、さらには、Elasticsearchのベクトル検索機能を使って作成したので、実現方法や利用した技術について紹介します。 また、RAGを使ったWikipediaのQ&Aを作った話が、同アドベントカレンダーの4日目の記事で紹介されているので、気になる方はご参照ください。 概要 LLMの問題点 OpenAIが提供するGPTや他の大規模言語モデル(LLM)の登場によって、簡単な質問に対しても優れた回答を得られるようになり、知識の取得や整理が容易になりました。一方で、2023年12月現在、一般的に提供されているGPTのバージョン3.5では、2022年1月以降の情

    ChatGPT+LangChain| Elasticsearch公式ドキュメントのQ&Aを作ってみる
    sh19910711
    sh19910711 2024/05/27
    "公式ドキュメントの内容を元にQ&Aを行うチャットボット / unstructured: LangChainでHTMLファイルを読み込むために利用 / decouple: 環境変数を読み込むために利用 + dotenvよりもキレイに書けたりセキュアな書き方もできる" 2023
  • バリデーションとシリアライズができるdataclassとしてPydanticを使う

    FastAPIなどのフレームワークと組み合わせて使われることが多い印象のPydanticですが、それ単体でdataclassの高機能版として使えますよ、という紹介です。 Pydanticとは Pythonでおそらく最も使われているバリデーションのためのライブラリです。型アノテーションを用いてバリデーションやシリアライズを行なってくれます。 最初のモデル まずは概観です。 BaseModelを継承させたクラスに、dataclassのように型アノテーション付きでフィールドを記述していけば、インスタンス化時に動的に型チェックを行なってくれるようになります。(invalid_userは、nameにstrではなくintの値をセットしようとして、バリデーションエラーとなってます。) # https://docs.pydantic.dev/latest/より抜粋 from pydantic import

    バリデーションとシリアライズができるdataclassとしてPydanticを使う
    sh19910711
    sh19910711 2024/05/27
    "Pydantic: 型アノテーション付きでフィールドを記述していけば、インスタンス化時に動的に型チェックを行なってくれる / v2: コアとなる実装を切り出してRustで再実装 + V1と比べて17倍高速に" 2023
  • MLXと⌘R+ (Command R+)でローカルチャットbotを動かしてみた

    はじめに 96GB以上のUnified Memoryを積んだApple Siliconマシーンをお持ちの人向けのニッチな記事です。 MLXを使って、話題の⌘R+ (Command R+)を使ったローカルで動作するチャットbotをクイックに作ってみました。途中で何点かつまづいたので、困っている人に届いたら嬉しいです。 以下の記事を参考にさせてもらいました。 環境 Apple M3 MAX (128GB) 推論中のpythonプロセスのメモリ消費量は62GB程度でした。Unified Memory 64GBでスワップしながらギリ回るくらいですかね Python 3.10 (3.11, 3.12でも動作しました) 最初、Python 3.9環境で動かそうとしてコケました。エラーメッセージは以下の具合です。 ValueError: Received parameters not in model:

    MLXと⌘R+ (Command R+)でローカルチャットbotを動かしてみた
    sh19910711
    sh19910711 2024/05/27
    "mlx_lm: MLXを用いてhugging faceのLLMを動かし ~ / M3 MAX: 推論中のpythonプロセスのメモリ消費量は62GB程度 + Unified Memory 64GBでスワップしながらギリ回る"
  • 機械学習向けWeb UIライブラリ Gradio - Qiita

    はじめに Gradioは機械学習モデルを操作するためのWeb UIを簡単に作成できるPythonライブラリです。 例えば、ファイルから画像を読み込んで分類するUIを作るとします。そこには画像をアップロードするためのフォームや、分類結果を表示するためのテキストフィールドが必要です。 Gradioを使えば、これらの要素を含むUIを簡単に作成することができます。 以下はHuggingFaceのWebサイトに公開されている画像分類モデルを使って、画像の分類結果を表示するUIを作成した例です。examples引数で与えているのはUIに渡せるサンプル画像です。 import gradio as gr gr.Interface.load( "huggingface/google/vit-base-patch16-224", examples=["./images/cat.jpg", "./images/

    機械学習向けWeb UIライブラリ Gradio - Qiita
    sh19910711
    sh19910711 2024/05/27
    "Gradio: 機械学習モデルを操作するためのWeb UIを簡単に作成できるPythonライブラリ / gradio.Interface: 入力を処理する関数、入力のデータ型や入力形態、出力のデータ型や出力形態の3点セット" 2022
  • Facebook のオープンソース最適化ライブラリAx を使ってXGBoost のハイパラチューニングを行ってみた - Qiita

    製造業出身のデータサイエンティストがお送りする記事 今回はFacebook のオープンソース最適化ライブラリAx を使ってXGBoost のハイパーパラメータをチューニングしてみました。 はじめに 勾配ブースティング木に関しては、過去に記事を書いておりますのでそちらを参照して頂けますと幸いです。 勾配ブースティング決定木(XGBoost, LightGBM, CatBoost)を実装してみた Optuna を使ったハイパラチューニングに関しても、過去に記事を書いておりますのでそちらを参照して頂けますと幸いです。 勾配ブースティング決定木(XGBoost, LightGBM, CatBoost)でOptunaを使ってみた Ax とは Ax は、Facebook のオープンソース最適化ライブラリです(公式のGitHubページ)。 Ax は、ベイズ最適化(GP-EI)を使ってハイパーパラメータを

    Facebook のオープンソース最適化ライブラリAx を使ってXGBoost のハイパラチューニングを行ってみた - Qiita
    sh19910711
    sh19910711 2024/05/27
    "Ax: ベイズ最適化(GP-EI) + ガウス過程(GP)により目的関数を予測 + 期待値(EI)を計算して最適化 / 横軸を探索回数、縦軸をベストスコア + 2つのパラメータを軸に取って期待値と標準偏差を表したグラフ" 2021
  • 一次元畳み込みニューラルネットワークとハイパラ探索 - ころがる狸

    機械学習の分野で最も有名なモデルに畳み込みニューラルネットワーク(CNN)と呼ばれるものがあります。2012年にCNNが画像認識処理において卓越した性能を示したことで科学や生活の在り方は大きく変わりました。この手法は画像(2次元データ)のみならず波形のような1次元データに対しても転用可能です。記事では、スマートホンのセンサから取得した人の行動波形に関する畳み込みニューラルネットワークのPyTorchによる計算方法を紹介します。またOptunaを用いたハイパーパラメータ探索によってハイパーパラメータの探索やその重要度評価が可能となります。計算手順を追ってみていきましょう! 学習用データ プログラム説明 結果の分析 終わりに 学習用データ 学習用データには、スマートホンのセンサーから取得した人間の行動データとその時の実際の行動(歩行、階段を上る、階段を下る、座る、起立する、横たわる)に対応し

    一次元畳み込みニューラルネットワークとハイパラ探索 - ころがる狸
    sh19910711
    sh19910711 2024/05/27
    "CNN: 画像(2次元データ)のみならず波形のような1次元データに対しても転用可能 / 行動データには加速度計とジャイロセンサから取得した9通りの波形 + 9チャネルの1次元データから6通りの行動様式を予測" 2021
  • 【AutoGluon】画像やテキストを含む表データの分類 - パソコン関連もろもろ

    2021年12月15日記事を修正しました はじめに 手順 データのダウンロード 学習 テストデータを使った検証 動作環境 環境構築 良い結果を求めて(追記) 変更点 結果 はじめに下記のチュートリアルページを実行してみました。 auto.gluon.ai 扱うデータは表形式データですが文章を含んだ列と画像を含んだ列があります。 そのデータを使った分類問題です。手順データのダウンロード from autogluon.core.utils.loaders import load_zip download_dir = './ag_petfinder_tutorial' zip_file = 'https://automl-mm-bench.s3.amazonaws.com/petfinder_kaggle.zip' load_zip.unzip(zip_file, unzip_dir=downl

    【AutoGluon】画像やテキストを含む表データの分類 - パソコン関連もろもろ
    sh19910711
    sh19910711 2024/05/27
    "扱うデータは表形式データですが文章を含んだ列と画像を含んだ列 / autogluon: 「MXNet」と「PyTorch」の両方が必要 / CUDAのバージョンは11.3ですがmxnet-cu112が問題なく動いています / presets='best_quality'" 2021
  • DeepARで複数系列の予測をする - ぱぐみの部屋

    業務で時系列データの予測モデルを作る時、私は基的にProphetを最初に選択します。なかなかの精度のモデルが、手早く簡単に作れるからです。 しかし、時系列データが数百系列あるような場合、いかにProphetといえどもモデルを数百個作成することになり、計算に時間がかかりますし、保守とか管理もめんどくさくなります。 (パラメータチューニングも考えるとなおさら) VARや状態空間モデルのような、多変量時系列の予測に使える手法もありはするんですが、さすがに数百系列のデータの適応するのには無理があります。 そこで、今回はDeepARという深層学習を使った時系列予測アプローチを使い、モデル1つで複数系列データを予測する方法をご紹介します。 DeepARとは? DeepARは、Amazonが開発した時系列予測フレームワークです。論文はこちら。 ざっくり説明すると、目的値$z_{i,t}$そのものを予測

    DeepARで複数系列の予測をする - ぱぐみの部屋
    sh19910711
    sh19910711 2024/05/27
    "Prophet: なかなかの精度のモデルが、手早く簡単に作れる / DeepAR: 目的値そのものを予測するのではなく ~ 分布のパラメータを特徴量や前の値を用いて構築 + 幅での予測 + 1つのモデルで複数系列の予測が可能" 2022
  • 【論文紹介】1%の性能低下で50%のモデルサイズ削減が可能な蒸留手法 - Qiita

    紹介する論文 【筆者】Kunbo Ding, Weijie Liu, Yuejian Fang, Zhe Zhao, Qi Ju, Xuefeng Yang, Rong Tian, Zhu Tao, Haoyan Liu, Han Guo, Xingyu Bai, Weiquan Mao, Yudong Li, Weigang Guo, Taiqiang Wu, and Ningyuan Sun. 【タイトル】Multi-stage Distillation Framework for Cross-Lingual Semantic Similarity Matching. 【採択会議】NAACL2022 Findings どんな論文? 新たなモデル蒸留手法を提案した論文です. 論文で扱うSTSタスク(後述)はモデルサイズに大きく影響されるそうで,以下の図のようにモデルサイズが大きければ大

    【論文紹介】1%の性能低下で50%のモデルサイズ削減が可能な蒸留手法 - Qiita
    sh19910711
    sh19910711 2024/05/27
    "性能をなるべく維持しつつモデルサイズを小さくする / 蒸留: モデル間のギャップが大きいと性能が低下 / 生徒モデルはアシスタントモデルの最初から3層目までのTransformerモデルの重みで初期化" 2023
  • ディープラーニングフレームワークのncnnを試してみた - NTT Communications Engineers' Blog

    はじめに こんにちは。イノベーションセンターテクノロジー部門の齋藤と申します。普段はコンピュータビジョンの技術開発やAI/MLシステムの検証に取り組んでいます。今回は、モバイル向けの推論フレームワークのncnnに触れてみたので、その結果について書いて行きます。 ncnnとは ncnn1とは、モバイル向けの推論フレームワークでAndroidとiOSにどちらも対応しています。Pytorchの場合モデルは、pthの形式で1つのファイルで構成されています。ncnnの場合モデルは、param(モデル構造)とbin(重み)ファイルに分割されています。 自身のncnnを使用するモチベーションは、ncnnのデータフォーマットにあります。モバイルで使用するフレームワークにTensorFlow Lite2がありますが、他のフレームワークからモデルを変換するためにNCHW形式からNHWC形式に変換する必要があり

    ディープラーニングフレームワークのncnnを試してみた - NTT Communications Engineers' Blog
    sh19910711
    sh19910711 2024/05/27
    "ncnn: モバイル向けの推論フレームワーク + AndroidとiOSにどちらも対応 / Intel CPUを使用した場合ncnnよりもonnxを使用した方が推論時間やメモリ性能上、上回っている / ncnnのリポジトリ 内にあるONNXからncnnに変換するコード" 2022
  • 「Shell作れます」と言うために - エムスリーテックブログ

    新卒の永山です。 昨今、SNSではなぜかシェルを作ることに関する言及が盛んに行われています。 そこで、記事ではシェルの実装に関する理解を深めることを目的に簡単なシェル「nosh」*1 をインクリメンタルに作成したいと思います。 完成した実装は以下のリポジトリで公開しています。 github.com 実装にはD言語を用います (この記事はD言語の布教も兼ねています)。 D言語について 0. 処理系の概形 1. プロジェクトの作成 2. 最も簡単なREPL 2.1. 入力の取得 2.2. 入力の分割 2.3. コマンドの実行 3. モジュールの分割 3.1. 字句解析器 3.2. 構文解析器 3.3. 評価器 4. パイプ演算子の実装 4.1. 字句解析器・構文解析器の拡張 4.2. 評価器の拡張 まとめ We are hiring! D言語について D言語 はC/C++風の親しみやすいシン

    「Shell作れます」と言うために - エムスリーテックブログ
    sh19910711
    sh19910711 2024/05/27
    "昨今、SNSではなぜかシェルを作ることに関する言及が盛ん / パイプライン処理が可能な、簡単な "シェルもどき" をD言語を用いて作成 / 字句解析器 (Lexer)、構文解析器 (Parser)、評価器 (Evaluator) というモジュールからなり" 2022
  • 書籍「グラフ深層学習」を参考にGNNのグラフ埋め込みをやってみた - Qiita

    記事の概要 GNNのグラフ埋め込みをpythonでの実装も含めてやってみたよ GNN のライブラリは使わずにやったよ 書籍「グラフ深層学習」の4章を参考にしているよ 簡単な理論とコードを載せているよ 僕と同じくGNNビギナーの方の参考になればうれしいよ モチベーション グラフニューラルネットワーク(GNN)について耳にする機会が増えたこと、また今年に入って書籍が続けて発行されたことから、GNN勉強してみたい!という人が増えているのではないでしょうか。 わたしもその一人で、独学ですが「グラフ深層学習(2023, ヤオ マー &ジリアン タン)」を読み進めています。 「グラフ深層学習」はグラフ理論の紹介から始まり、4章でグラフの特徴を抽出する グラフ埋め込み を取り上げています。 LLMなどでも使われる「埋め込み(embedding)」ですが、グラフにおいても特徴抽出の手法(教師なし学習)と

    書籍「グラフ深層学習」を参考にGNNのグラフ埋め込みをやってみた - Qiita
    sh19910711
    sh19910711 2024/05/27
    "「グラフ深層学習」の4章を参考 / タスクに応じた有用なベクトル表現を得ることが重要 / 元のグラフの情報をできるだけ保存する + その後のタスクで使用したい情報をなるべく保存できる写像が良い"
  • Apache SparkのTempViewに嵌った話 - Qiita

    はじめに Databricks/Apache Sparkで開発を行っている際にTempViewを使用していたのですが、TempViewはメモリ上のデータを参照していると誤った認識をしていたため嵌りました。結論と対応方法を備忘録も兼ねてこの記事で共有させてください。 実際に嵌った話 処理の最初にDatabricks外部のDB から大量データをDatabricksに抽出し、TempViewに格納して、後続の処理ではTempViewを参照してデータを加工していく処理があります。 このTempViewを参照している箇所の処理が軒並み遅くメモリ上に格納されているのになぜ・・・?となったのがきっかけです。 誤った認識 Apache SparkのTempViewはメモリ上にデータが格納されていると思っていました。例えば下記SQLをDatabricks上で実行したときにTMP_COMMENTSはメモリ上か

    Apache SparkのTempViewに嵌った話 - Qiita
    sh19910711
    sh19910711 2024/05/27
    "外部のDB から大量データをDatabricksに抽出し、TempViewに格納 / TempViewはメモリ上のデータを参照していると誤った認識をしていた + RDBのViewと同様に実態を持たない / メモリ上に格納したい場合、cache()コマンドを実行" 2022
  • R {arules} によるアソシエーション分析をちょっと詳しく <1> - StatsFragments

    今週は系列パターンマイニング用 R パッケージ {arulesSequences} と格闘していた。使い方にところどころよくわからないポイントがあり、思ったよりも時間がかかってしまった。 関連パッケージである {arules} ともども、ネットには簡単な分析についての情報はあるが、 データの作り方/操作についてはまとまったものがないようだ。とりあえず自分が調べたことをまとめておきたい。2 パッケージで結構なボリュームになるため、全 4 記事分くらいの予定。 概要 まずはパターンマイニングの手法を簡単に整理する。いずれもトランザクションと呼ばれるデータの系列を対象にする。トランザクションとは 1レコード中に複数の要素 (アイテム) を含むもの。例えば、 POSデータ: 1トランザクション = POSレジの売上 1回。アイテムはそのときに売れた個々の商品。 アンケート調査: 1トランザクション

    R {arules} によるアソシエーション分析をちょっと詳しく <1> - StatsFragments
    sh19910711
    sh19910711 2024/05/27
    "アソシエーション分析: 複数のトランザクションからなるデータから、よく起きるパターンを発見・列挙する / {arules}: XのときYが発生しやすい + 順序は関係ない / {arulesSequences}: Xの後にYが発生しやすい + 順序が重要" 2014
  • LLM評価ツールpromptfooとアサーションの解説 - Algomatic Tech Blog

    こんにちは、Algomatic LLM STUDIO インターンのなべ(@_h0jicha)です。 前回の記事では、LLM の日語性能を評価するための様々なベンチマークを紹介しました。 tech.algomatic.jp しかし、こうしたベンチマークには以下のような課題が存在します。 ベンチマークの導入に負担がかかってしまうため、もっと 気軽に評価したい 既存のベンチマークによる評価が難しく独自実装が必要なとき、あらかじめ基的な機能が搭載されている評価ツールを利用したい LLM の評価とともに、LLM を使用する際の プロンプトの評価も同時に行いたい そこで記事では、LLM の出力品質を評価する際に活用できる promptfoo について紹介します。 目次 promptfoo とは? 導入方法 環境構築 実験設定 評価実行 アサーションについて アサーションタイプの概要 決定的評価指

    LLM評価ツールpromptfooとアサーションの解説 - Algomatic Tech Blog
    sh19910711
    sh19910711 2024/05/27
    "ベンチマークの導入: LLM の評価とともに、LLM を使用する際の プロンプトの評価も同時に行いたい / promptfoo: ソフトウェアのテスト設計に影響 + 出力に対してテスト項目を指定することで、LLM の応答品質を定量的に評価"
  • 等差数列の中の素数からラングランズ予想へ - hiroyukikojima’s blog

    もう、すいぶん前、1年以上前に、黒川信重『ガロア表現と表現論』日評論社の一部を紹介した(ガロアの定理の短めの証明が読める - hiroyukikojimaの日記)。このときは、「ガロアの基定理」、すなわち、「代数拡大体の中間体と、その自己同型群の部分群が1対1対応する」という定理の、非常に短く、わかりやすい証明がこのに載っているよ、ということを書いた。それで、このに載っている他の定理のことも近いうちに書く、と予告してたんだけど、なんと! それから、1年以上も歳月が流れてしまった。 前々回のエントリー(テレ東ドラマ『電子の標的2』に協力をしました - hiroyukikojimaの日記)で触れたように、今ぼくは、雑誌『高校への数学』東京出版に「素数の魅力」という連載を持っていて、そのため、素数について、いろいろと調べ直している。そこで、「ディリクレの算術級数定理」について、どう紹介

    等差数列の中の素数からラングランズ予想へ - hiroyukikojima’s blog
    sh19910711
    sh19910711 2024/05/27
    "ディリクレの算術級数定理: 初項と公差が互いに素な等差数列の中には、素数が無限個ある / ガロア表現と、保型形式と、それをゼータ関数で結びつける、ということが現代数論の大きなテーマ" 2016
  • 傾向スコア解析とUplift Modelling

    実践 Amazon Mechanical Turk ※下記の注意点をご覧ください(回答の質の悪化・報酬額の相場の変化・仕様変更)Ayako_Hasegawa

    傾向スコア解析とUplift Modelling
    sh19910711
    sh19910711 2024/05/27
    "Uplift Modelling: 処置群と対照群の両方を使って介入による行動変化をモデル化 + 実験可能なデータを用いて介入効果を最大にするようなグループ分け / どちらも介入による効果を扱うが目的と扱うデータは大きく異なる" 2012
  • mlxのwhisperでリアルタイム文字起こしを試してみる - Qiita

    Whisperでのリアルタイム文字起こしの手法は「Whisperを使ったリアルタイム音声認識と字幕描画方法の紹介」を参考にした。 mlxのwhisperセットアップは前回の記事を参考ください。 題 ストリーミング処理を行うには音声の無音検知が必要となるので調べたところ、faster-whisperでもVAD(Voice Activity Detector)にSilero VADを使っている。 それのJS版であるricky0123/vadで書かれているコードがあったのでmlx用に一部書き直して試してみた。 ファイル構成 import os import time from flask import Flask, request, render_template import whisper import threading UPLOAD_FOLDER = 'uploads' ALLOWED

    mlxのwhisperでリアルタイム文字起こしを試してみる - Qiita
    sh19910711
    sh19910711 2024/05/27
    "ストリーミング処理を行うには音声の無音検知が必要 / 結構いい感じにかつシンプルなコードで作れることがわかった / mlxもv0.10.0で少し速くなった + 手元のM1 Macはメモリ8GBなのでlarge-v3を読み込むとスワップしまくり"
  • Python: LightGBM を使ってみる - CUBE SUGAR CONTAINER

    LightGBMMicrosoft が開発した勾配ブースティング決定木 (Gradient Boosting Decision Tree) アルゴリズムを扱うためのフレームワーク。 勾配ブースティング決定木は、ブースティング (Boosting) と呼ばれる学習方法を決定木 (Decision Tree) に適用したアンサンブル学習のアルゴリズムになっている。 勾配ブースティング決定木のフレームワークとしては、他にも XGBoost や CatBoost なんかがよく使われている。 調べようとしたきっかけは、データ分析コンペサイトの Kaggle で大流行しているのを見たため。 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.13.4 BuildVersion: 17E202 $ python -V Pyt

    Python: LightGBM を使ってみる - CUBE SUGAR CONTAINER
    sh19910711
    sh19910711 2024/05/27
    "LightGBM: Microsoft が開発した勾配ブースティング決定木 / scikit-learn に準拠したインターフェースも用意されている / ブーストラウンドごとの評価関数の状況を交差検証で確認できる機能もある + early_stopping_rounds" 2018
  • Python 構文解析ライブラリLarkを使って簡単な自作言語処理系をつくる - Qiita

    概要 とある目的のためにDSLを作成してみたいと思うことがありました。 そこでまずは基礎知識をつけようということで、簡単な自作言語の処理系を実装してみようと思いたち、ごくごく簡単なプログラミング言語を作ってみました。 環境としてはPython3系を使いました。 処理系の作成 プログラミング言語の処理は、字句解析(トークナイズ)構文解析(パース)実行コード生成という3つ段階があります。 字句解析とはただの文字の並びであるソースコードを読んで、functionとかvarとか19のような終端記号(トークン)の塊の並びに変換することです。ただし、この時点ではそれぞれの終端記号はただの文字列であって意味までは与えられていません。 次の構文解析は字句解析で得られた終端記号の列を読んで、プログラムのコードとしての構造を抽出することです。字句解析の出力からconst hoge = 1 ;というトークンの列

    Python 構文解析ライブラリLarkを使って簡単な自作言語処理系をつくる - Qiita
    sh19910711
    sh19910711 2024/05/27
    "DSLを作成してみたい / Lark: EBNFで文法規則と終端記号の規則を渡すと、字句解析から構文解析まで / 学生時代クックパッドさんでインターンシップに参加した際に、Javascriptのコンパイラを作るという講義をうけた" 2018
  • 自作IPv6ルータをgoで書き直してみた

    何 Interfaceの2024年2月号で自作のIPv6専用ルータがc++で実装されており、これをgolangで再実装してみた。 事前学習 編に入る前に、必要な前提知識を書いておく。 詳細はInterface2月号に丁寧な説明があるので(ぜひ購入してみてください)、ここではキーワードだけ記載する。 ネットワークの基礎知識 インターネットの階層構造 TCP/IPのパケットの構造 イーサネットフレーム ネットワークコマンドの基礎 ipコマンド関連 tcpdump IPv6 IPv4と比較 近隣探索(NA、NDパケット) ICMPv6 チェックサムと擬似ヘッダ NDテーブル パトリシアトライ木 linux関連 epoll ファイルディスクリプタ 編 実装はgithubで公開している。 宛先のNDテーブルとフォワーディングテーブルが存在する場合のフローチャート。 NDテーブルを探索して見つから

    自作IPv6ルータをgoで書き直してみた
    sh19910711
    sh19910711 2024/05/27
    "Interfaceの2024年2月号で自作のIPv6専用ルータがc++で実装されており ~ golangで再実装してみた / 近隣要請パケットによるMACアドレス検索 / 普段触れないlinuxのepollやsocketの実装をするいい機会になって"
  • 3Dモデルから自動的に生成した画像とアノテーションのデータセットで学習するセマンティックセグメンテーション - Qiita

    はじめに セマンティックセグメンテーションを行う時に普段はアノテーションを作成するのは大変な作業でしょう。もしそれが自動的に作れるのならどれくらい楽になるでしょうね。 私は「自動的に生成された画像データセットで学習して物に適用する」ということはよくやっています。普通の分類モデルでも教師データを準備することは大変なことだから、自動生成のデータが代わりに使えたら楽ですね。 そしてその生成データはセマンティックセグメンテーションにも使えるようにすることもできます。自動的に生成したデータなので、アノテーションも当然同時に作成することができます。しかもこれは手作業より正確で完璧なアノテーションになるでしょう。 「学習データがないので自分で生成する」という話はよくあることで新しいことではないのですが、これをセマンティックセグメンテーションに使う例はあまり聞いたことないの意外でした。だから私は自分で試

    3Dモデルから自動的に生成した画像とアノテーションのデータセットで学習するセマンティックセグメンテーション - Qiita
    sh19910711
    sh19910711 2024/05/27
    "自動的に生成したデータなので、アノテーションも当然同時に作成することができ + 手作業より正確で完璧 / 海星ヒトデを入れるのと入れない同じ画像のペアで学習すると海星ヒトデの特徴を把握しやすい"
  • 機械学習を用いたポケモン対戦選出予測

    sh19910711
    sh19910711 2024/05/27
    "どうやって対戦データを集めるか / YouTube: 規約上botアクセスができない > クラウドソーシングで作業者を募集 / BERT: ポケモン名を新しい単語として定義 + パーティの並びからベクトルを学習 + 穴埋め問題を解かせる"
  • spaCy + GiNZAで構文解析してみる

    はじめに Pythonではじめるテキストアナリティクス入門というを読んで、spaCyとGiNZAで形態素解析や単語間の係り受け解析をやってみて、もう少しいろんなことをやってみたいと思いました。 各ツールの関係 spaCyは、Explosion AI社が開発しているオープンソースの自然言語処理ライブラリです。公式サイトのspaCy is designed specifically for production use and ... ということから製品への格活用を想定して開発されています。 また、spaCyは、構文解析のための基的な機能を持っており、spaCy単体で日語の形態素解析や係り受け解析等を行うことができます。日語だけではなく、多数の言語に対応していて、日語用の解析モデルや英語用の解析モデルが付属しており、それらのモデルを切り替えて使用することで多数の言語に対応することが

    spaCy + GiNZAで構文解析してみる
    sh19910711
    sh19910711 2024/05/27
    "GiNZA: 形態素解析のために内部でSudachiPy(SudachiのPython版) + 辞書としてSudachi-coreを使用 / spaCy単体で日本語の形態素解析や係り受け解析等を行うことができ + 精度を比較すると、GiNZAを使用するのがよさそう"
  • Matrix Factorizationとレコメンドと私 - Qiita

    レコメンドにおける次元削減手法の一つであるMatrix Factorizationについてまとめた自分用メモ的なものです。 なおタイトルは「部屋とYシャツと私」にちなんだだけで、ちなんだ意味はありません。 1. レコメンドシステムにおける次元削減 1.1 レコメンドの設定と協調フィルタリング すでにレコメンドをたくさんされている方にとってはとても当たり前の話かもしれませんが一応前提をば。 今回考えるデータセットはMovieLens100kのように「ユーザ×アイテム」の行列でできているもので、例えば以下のような形のものを想定しています。 レコメンドでおなじみの協調フィルタリング1では相関係数やコサイン類似度を用いてユーザ(orアイテム)同士の類似度を出し、それを用いた評価の予測値に基づきレコメンドをするという趣旨のものでした。 この協調フィルタリングのようなレコメンド手法のことを近傍ベースア

    Matrix Factorizationとレコメンドと私 - Qiita
    sh19910711
    sh19910711 2024/05/27
    "synonymy: 赤い缶のコーラを買う人と青い缶のコーラを買う人はそれぞれ別の色のコーラを買わないと思われ + 通常の協調フィルタではこの赤い缶ユーザと青い缶ユーザの類似性をうまく捉えることができません" 2019
  • XGBoostはpickleでなくJSONで保存せよ 備忘録 - Qiita

    概要 GPU付きPCでモデルのTrainingを行いpredictはGPUなし(つまりCPUのみ)のPCで行う運用を想定する。 そのときのXGBoostモデルの保存方法について備忘録を残す。 実施時期: 2022年9月 Python: conda 3.8.13 XGBoost: py-xgboost, py-xgboost-gpu 1.6.1 問題 XGBoostはLightGBMに比べTrainingが遅いことは有名だ。GPUを使えばCPUよりも体感で4~5倍高速になり十分な速さだが、どのPCにもGPUが乗っているわけではない。 しかしCPUであってもPredictはLightGBMより速いのでdeployを考えるとどうしてもXGBoostを使いたくなる。老舗なため情報が豊富なこともありがたい。 ただモデル保存時、いつもの便利なpickleで保存してしまうと運用時に困ったことになってしま

    XGBoostはpickleでなくJSONで保存せよ 備忘録 - Qiita
    sh19910711
    sh19910711 2024/05/27
    "XGBoost: LightGBMに比べTrainingが遅い + CPUであってもPredictはLightGBMより速い / deployを考えるとどうしてもXGBoostを使いたくなる。老舗なため情報が豊富 / pickleで保存してしまうと運用時に困ったことになってしまう" 2022
  • XGBoostとtsfreshでMultivariate time series forecasting 備忘録 - Qiita

    概要 feature-engineがきっかけで最近チェックしているPyDATA この動画を見ながらKaggleの株価予測をsktimeで試してみるか、ってモチベが上がって(よくある)久しぶりのsktimeを触っていたらtsfreshをラップしたapiに気づいたので、先にtsfreshの素性を調べてみるか、と回りくどい流れ。 時系列初心者にはマストな内容の講演動画で超オススメ。ハッ!と思わせるやり取りが質疑応答にあってとても良かった。 今回はおもにtsfreshを使って説明変数を増やすことが目的で、XGBoostは精度確認しSHAPでimportanceを可視化する程度のおまけ。 Daskのように独自の馴染めない世界観がありDocumentsの例もわかりにくく、少し手間取ったので残す。 実施期間: 2022年12月 環境:Colab パケージ:tsfresh, XGBoost, SHAP,

    XGBoostとtsfreshでMultivariate time series forecasting 備忘録 - Qiita
    sh19910711
    sh19910711 2024/05/27
    "tsfreshを使って説明変数を増やす / 時系列関連のmetricsを自動計算 + その中でtargetに関係しそうなmetricsの選定 / FRESH(FeatuRe Extraction based on Scalable Hypothesis tests)というアルゴリズムを使用している" 2023
  • なぜCatboostの推論は速いの? - 簡単なレポート

    前回の記事「AutoML v.s. Catboost」に出てくるCatboostは、XGBoostやLightGBMと比べて30-60倍も推論が速いという特徴があります。 推論時間は、kaggleなどのコンペでは推論に時間をかけられるのであまり気にしませんが、実サービスとなると重要ですよね。 推論時間の比較 以下のグラフは、3大GBDTライブラリでの推論時間比較です。Catboostがずば抜けて速いことがやかります。 そして学習時間の速さに定評があるLightGBMは、なんと最遅です。 この推論時間の速さは、CatboostがGBDTのベースとなる決定木に symmetric tree と呼ばれる、特殊な形の木を使っているからです。 ここで、symmetric treeとは以下の図の右側のような木です。左側は普通の決定木です。 なぜsymmetric treeは速いか 「同一の深さではすべ

    なぜCatboostの推論は速いの? - 簡単なレポート
    sh19910711
    sh19910711 2024/05/27
    "Catboost: 決定木に symmetric tree と呼ばれる、特殊な形の木を使っている + 同一の深さではすべての分岐条件が同じ / LightGBM: 学習時間の速さに定評 / GPUを用いた場合は、学習時間でもCatboostが最速" 2019
  • 解像度の高い画像が入力可能な日本語VLMを学習させてみた - Qiita

    はじめに 最近、Large Vision Language Model(以下LVLM)ではLLaVA NEXTのように画像を高解像度のまま入力することでモデルの性能が上がるという論文をarXiv上でよく見かけます。 そこで性能が高いImage Encoderを使用し、入力を高解像度にすることでLLMのバラメータ数が少なくても良い性能のVLMができるのではないかと考え日本語入力可能なモデルを学習させてみました。 結論を最初に書くと1.86Bという比較的小さいモデルにも関わらず、7Bほどのモデルと比較して同等もしくはそれ以上の性能を持つモデルができあがりました。 学習に使用したコードは以下で公開しています。 モデルは以下で公開しています。 デモは以下で公開しています。 以前LLaVAと同じ構造で学習させたという記事も書いていますので、LLaVAについて知りたい方は以下を読んでください。 モデル

    解像度の高い画像が入力可能な日本語VLMを学習させてみた - Qiita
    sh19910711
    sh19910711 2024/05/27
    "画像を高解像度のまま入力することでモデルの性能が上がる / 1.86Bという比較的小さいモデルにも関わらず、7Bほどのモデルと比較して同等もしくはそれ以上の性能 / リアルタイム性が重視されない環境ではかなり有効"