タグ

2024年4月28日のブックマーク (20件)

  • Snowflake 向けの DevOps の取り組みと現状の課題についてまとめてみた

    記事の背景 記事は、某所で密かに行われていた Snowflake DevOps 情報交換会 Season 1 最終回の議論用に共有した内容です。 会は、 DevOps を中心に、また DevOps とは直接は関係ないテーマも含め、その時々において関心のあるテーマを取り扱っていましたが、今回は最終会ということで、来のテーマである DevOps において、私個人が中心的テーマであると考える構成管理やデプロイの自動化について議論したいと思い、整理しました。 中心的テーマを再び取り上げようと考えたきっかけの 1 つが Snowflake Data Superhero の Tomas が LinkedIn で EXECUTE IMMEDIATE FROM という新しい構文について紹介しているのを発見したことです。これはステージ上の SQL ファイルを直接実行できるという機能です。 Tomas

    Snowflake 向けの DevOps の取り組みと現状の課題についてまとめてみた
    sh19910711
    sh19910711 2024/04/28
    "Snowflake Data Superhero の Tomas が LinkedIn で EXECUTE IMMEDIATE FROM という新しい構文について紹介しているのを発見 / 本機能を Snowflake でのインフラ構成管理に使えると指摘" 2023
  • Jetson Orin NanoでPhi-3をOllamaを使って動かしてみた

    やること 前回、Azure AI モデルカタログ上でPhi-3を動かしてみた。 小型の言語モデル(SLM)なので、Jetson Orin Nanoでも動くのか?と疑問になったので検証してみた。 前提 Jetson Orin Nano jetPack 5.1.3 ↓セットアップ手順 Phi-3とは? Ollamaとは? ollamaはオープンソースの大規模言語モデル(LLM)などをローカルで実行できるOSSツールです。 jetsonで動かしてみる ターミナルを開く 以下のコマンドを実行し、oolamaをインストールする

    Jetson Orin NanoでPhi-3をOllamaを使って動かしてみた
    sh19910711
    sh19910711 2024/04/28
    "Phi-3: 小型の言語モデル(SLM) + Jetson Orin Nanoでも動くのか?と疑問になったので検証してみた / 「hello」とプロンプトを投げる + 約10秒後に返答 / 返答速度は遅いですが、Jetson-orin-nanoで動かせた / $ ollama run phi3"
  • トポロジカルデータアナリシス:TDAパッケージを使ってみる - データサイエンティスト(仮)

    導入 とあることがきっかけで、とっても久しぶりにRでTDA(トポロジカルデータアナリシス)をしてみました。だいぶいろんなことを忘れていたので、単純な例を使ったメモを残しておきます。 トポロジカルデータアナリシスとは とてもざっくりいうと、位相幾何学という数学の知見をつかって、データから「形」の情報を抽出するような手法になっています。 導入は、過去の記事にも載っていますので、こちらも参照していただけるとうれしいです。 tekenuko.hatenablog.com 「形」の情報の抽出のしかたですが、データ点のまわりにある半径の球をとり、その球たちの重なりによって点の間に線を引く、といった方法でデータ点から図形を見立てます。ただし、データに付随するノイズなどにロバストな形で図形的な情報を抜き出すために、半径を連続的に変化させた場合の構造の変化を見るといったテクニックを用います。 これらの簡単な

    トポロジカルデータアナリシス:TDAパッケージを使ってみる - データサイエンティスト(仮)
    sh19910711
    sh19910711 2024/04/28
    "TDA: データから「形」の情報を抽出するような手法 / データ点のまわりにある半径の球をとり、その球たちの重なりによって点の間に線を引く、といった方法でデータ点から図形を見立てます" 2017
  • fairseqで自分でトレーニングしたTransformerモデルをロードする - Qiita

    はじめに 機械翻訳のTransformerモデルをトレーニングする機会があり,Pytorchベースのfairseqを使ったんですが,アプリ用のコードでモデルのロードにハマってしまいました.備忘録のために記事を書きます. fairseqとは Facebookの人工知能研究チームが開発している,機械翻訳用のフレームワークです.Facebookが開発元ということもあり,Pytorchがベースになっています.最近はHuggingfaceのTransformersが人気でTransformerモデルを扱うならPytorchだよね,ということもあり,こちらをフレームワークとして選びました. その他の機械翻訳フレームワークとしては,MarianNMT,OpenNMT(こちらもPytorchベース)などがあります.基的な機能はどのフレームワークも大差ない印象ですが,論文実装のコードはfairseqが選ば

    fairseqで自分でトレーニングしたTransformerモデルをロードする - Qiita
    sh19910711
    sh19910711 2024/04/28
    "fairseq: 日本語ドキュメントが少ない + HuggingfaceのTransformersを使っている人であれば使いやすい / 機械翻訳フレームワークとしては,MarianNMT,OpenNMTなどがあり / 論文実装のコードはfairseqが選ばれている場合が多い" 2020
  • PyTorchのSeq2Seqをミニバッチ化するときに気をつけたこと - 人工知能とか犬とか

    概要 PyTorchチュートリアルに、英仏の機械翻訳モデルを作成するTranslation with a Sequence to Sequence Network and Attentionがあります。 このチュートリアルは、教師データを一つずつ与える形になっており、結構遅いのです。 なので、バッチでの学習ができるように修正を試みたところ、注意ポイントがいくつかあったのでまとめておきます。 RNNのバッチ学習の実装 RNNでバッチ学習を行う際に問題となるのが、入力されるデータ系列の長さがバッチ内で異なることです。 この問題には一般的に、バッチ内での長さを揃えるためのパディングと、パディングした部分が学習の邪魔にならないようにするマスキングを実装して対処する必要があります。 実装自体は割と簡単にできますが、きちんと実装しないと学習が全然進まなかったりするので注意が必要です。 パディング パデ

    PyTorchのSeq2Seqをミニバッチ化するときに気をつけたこと - 人工知能とか犬とか
    sh19910711
    sh19910711 2024/04/28
    "Seq2Seqをミニバッチで行う場合、損失の計算を行う際にパディング部分を適切に処理しないと、損失の計算結果がで大きく変わってしまいます / 損失を過大評価したり過小評価したり" 2018
  • DTW (動的時間伸縮法)の実装 - やったことの説明

    概要 自分の勉強のために、Dynamic Time Warpingを実装した。 正弦波データでいろいろプロットした後、気温のデータに適用した。 たぶんバグってないと思う。 はじめに 時系列データの類似度(距離)を計算するとき、単純には例えば各時刻での二乗誤差の平均などを求めることを思いつくが、これは以下のようなデータに対して、直感に反する結果になる。 %matplotlib inline import numpy as np import pylab as plt import seaborn as sns T = 150 t = .4 A = np.sin(np.array(range(T))/10) B = np.sin((np.array(range(T))/10 + t*np.pi)) C = np.zeros((T)) plt.plot(A) plt.plot(B) plt.pl

    DTW (動的時間伸縮法)の実装 - やったことの説明
    sh19910711
    sh19910711 2024/04/28
    "DTW; Dynamic Time Warping: 2つ時系列データの時刻をt1, t2 + 全ての組の誤差を計算 + 合計が最小になるような経路を求める / 類似度という関係データ、しかも対称行列だということでスペクトルクラスタリングをやる" 2017
  • Flash AttentionとDeep Speedを使ってLLMをGPU1枚でフルファインチューニングする - Qiita

    TL;DR Deep Speedのoffload_optimizer機能を使って、VRAM40GBのGPU1枚で3.6BパラメータのLLMをファインチューニングしました。 さらに、Flash Attentionを使うことで、学習を高速化しつつ使用メモリ量も減らし、より長い系列長で学習を行うことができました。 はじめに Flash AttentionはAttentionの計算で使用するGPUメモリ量を系列長の2乗のオーダーから1乗に削減する技術で、xformersやoptimum、さらにはtransformersライブラリでも簡単に使用できるようになってきています。 前回の記事(1, 2)では、LLMの推論においてFlash Attentionを使ってみたのですが、推論ではあまり効果が見られないという結論を得ました。 今回はFlash Attentionが領を発揮するであろう学習(ファイン

    Flash AttentionとDeep Speedを使ってLLMをGPU1枚でフルファインチューニングする - Qiita
    sh19910711
    sh19910711 2024/04/28
    "Flash Attention: 推論ではあまり効果が見られない / GPU1枚で学習を行うためにDeep SpeedのZeRO-2を使用 / 系列長を長くして1ステップ当たりに含まれるトークン数を増やすと、学習が効率化されて高速化される傾向" 2023
  • 言語モデルを用いたQuery Categorizationへの取り組み / LM-based query categorization for query understanding

    sh19910711
    sh19910711 2024/04/28
    "Query Categorization: 検索クエリを事前に定義した分類にカテゴライズ + 意図・トピック・パフォーマンス / ルールベース: シンプルながらも確実に効果 + 一部の検索エンジンではデフォルトでサポート(Algolia, Vespa, etc.)" 2023
  • Sparkで少サイズ大量データの課題にどう立ち向かう?|Puuuii

    日々ビッグデータと格闘しておられる私たちデータエンジニアにはなじみ深いSparkのの話です。 小サイズ&大量ファイルのデータを扱うことがなぜ苦手なのか、どう対処すればよいかを見てみましょう。 なぜ小サイズ&大量ファイルが苦手?Sparkは細切れのデータを扱うのがメモリ効率やパフォーマンスの面で苦手です。 具体的なサイズをいうと数KB~数MBだと悪影響が出てきますね。 なぜ細切れのファイルを扱いのが苦手なのかというと、ファイルを開いて・読んで・閉じる必要があるためです。 極端な話、ファイルがひとつだけであれば一度だけの開け閉めと読み取りでいいですから。 またタスクを平行で走らせるときのオーバーヘッドもファイル数に応じて大きくなっていきます。 さらにSparkのメモリ管理は大規模で連続したメモリ領域に特化していて、細切れのファイルだとメモリが枯渇してしまうんですよね。 どう対処する?第一に細切

    Sparkで少サイズ大量データの課題にどう立ち向かう?|Puuuii
    sh19910711
    sh19910711 2024/04/28
    "ファイル: 開いて・読んで・閉じる必要がある + オーバーヘッドもファイル数に応じて大きくなっていきます / 細切れになってしまったファイルは`hdfs dfs -getmerge`などを用いてより大きいファイルに融合するとよい"
  • RustでミニTensorFlowを作った - Qiita

    Rust Advent Calendar 2017 6日目の記事です。 rust-autograd というライブラリを作りました。https://github.com/raskr/rust-autograd もともとニューラルネットのライブラリのつもりだったんですが、GPUの知識がなさすぎて無理だと気づき、一般的な名前にしました。一応ドキュメント(兼テスト)もあります。例えば行列積の計算はこんな感じです: extern crate autograd as ag; let a: ag::Tensor = ag::zeros(&[4, 2]); let b: ag::Tensor = ag::zeros(&[2, 3]); let c: ag::Tensor = ag::matmul(&a, &b); println!("{}", c.eval(&[]).unwrap()); // [[0,

    RustでミニTensorFlowを作った - Qiita
    sh19910711
    sh19910711 2024/04/28
    "数値計算は rust-ndarray というクレートに依存 / rust-ndarray: Pure Rust なので結構速い + map, fold などのコレクション系の高階関数が提供 + Read-only View のようなRustっぽい面白い API がある" 2017
  • 意見分析エンジン―計算言語学と社会学の接点 - inak0shiのブログ

    意見分析エンジン―計算言語学と社会学の接点 posted with amazlet at 15.04.10 大塚 裕子 乾 孝司 奥村 学 コロナ社 売り上げランキング: 533,011 Amazon.co.jpで詳細を見る 1〜3章は、意見分析を社会学の観点で解説しており、このを読もうと思った目的に合わないのでスルー。4〜7章を読んだ。 4章では、意見分析の中でも、その一部である評価分析について、基的なアプローチを解説。1)評価表現辞書の構築、2)評価情報を観点とした文書分類、3)評価情報を含む文の分類、4)評価情報の要素組の抽出と分類である。1に関しては、a)語彙ネットワーク(WordNet)、b)コーパス内での共起情報(検索エンジン)、c)周辺の文脈を利用する手法が紹介されている。4に関しては、<対象,属性,評価>の3つ組で表わされる属性辞書を、スロットとコーパスの間をブートスト

    意見分析エンジン―計算言語学と社会学の接点 - inak0shiのブログ
    sh19910711
    sh19910711 2024/04/28
    "5章では、構文論(syntax)と語用論(pragmatics)に着眼した、意見分析の実践を紹介 / 文法的表現(真偽判断:「だろう」「らしい」「ようだ」 ... )とアンケート文をパターンマッチし、意味タグを付与" 2015
  • 生成AI (Cohere)+LangChain+Vector Database (PostgreSQL)でRAGを試してみた - Qiita

    生成AI (Cohere)+LangChain+Vector Database (PostgreSQL)でRAGを試してみたPostgreSQLlangchainLLMVectorStorepgvector 生成AIを企業が使う場合、社内データを使った回答を得るにはファインチューニング、もしくは Retrieval-Augmented Generation (RAG、検索拡張生成) を行う必要があります。 企業では毎日データが更新される中で、ファインチューニングを頻繁に行うのはコスト高で現実的ではありません。 そこでRAGを使った方法が注目されています。 ということで、今回は以下の組み合わせでRAGを試してみました。 生成AI: Cohere Command Vector Database: PostgreSQL (pgvector) 生成AIとVector Databaseの連携: La

    生成AI (Cohere)+LangChain+Vector Database (PostgreSQL)でRAGを試してみた - Qiita
    sh19910711
    sh19910711 2024/04/28
    "CohereのサービスがOCIで、Vector DatabaseがOracle Database 23cで提供される予定 / Cohereのembedding機能を使ってベクトルデータを生成し、結果をpgvectorを使いPostgreSQLに格納 / 動作確認は Windows Subsystem for Linux 上に立てた Oracle Linux 9.3" 2023
  • Microsoftの最新SLM Phi-3-miniをGoogleコラボで動かしてみた - Qiita

    はじめに Microsoft社が2024年4月23日に商用利用可な小型言語モデル(SLM)のPhi-3(mini(3.8B)、small(7B)、medium(14B))を発表し、同日miniについて公開しました。 *3.8B〜14Bのため大規模言語モデル(LLM)とは言わず小規模言語モデル(SLM)と言っているのは共感が持てます。他の言語モデルも名称を共通化して欲しいですね😁 どのくらいの精度のものなのか早速検証してみました。 検証環境 今回は、Phi-3-mini-4k-Instructモデルを使用しました。 Googleコラボ Pro+ で A100 環境を使用しました。GPU RAMが8.4GB程度で動いているのでV100等でも動くと思います(なお、CPUでも動くとありましたがCPUリソースでは筆者の環境では残念ながらレスポンスが返ってきませんでした)。 パラメータは、max_n

    Microsoftの最新SLM Phi-3-miniをGoogleコラボで動かしてみた - Qiita
    sh19910711
    sh19910711 2024/04/28
    "Phi-3: Microsoft社が2024年4月23日に商用利用可な小型言語モデル(SLM)のPhi-3(mini(3.8B)、small(7B)、medium(14B))を発表 / GPU RAMが8.4GB程度で動いている + CPUでも動くとあり / 日本語で答えてくれました + それなりの文章生成"
  • AirtestとPocoとOpenSTFによるUnity製スマートフォン向けゲームの実機自動テスト環境構築とその利用方法

    「CEDEC 2020」の発表資料です。 http://cedec.cesa.or.jp/2020/session/detail/s5e82a55322244

    AirtestとPocoとOpenSTFによるUnity製スマートフォン向けゲームの実機自動テスト環境構築とその利用方法
    sh19910711
    sh19910711 2024/04/28
    "Airtest: 画像認識によるテストコードを記述できる環境 / Poco: Airtestのライブラリ + Unityや各種ゲームフレームワークのUI情報を取得し、Python上で操作 / DeviceFarmer: 元々はCyberAgent社で開発 + ブラウザごしに実機を操作" 2020
  • 近傍探索ライブラリ「Annoy」のコード詳解 - ZOZO TECH BLOG

    はじめまして、ZOZO研究所福岡の家富です。画像検索システムのインフラ、機械学習まわりを担当しています。 今回は画像検索システムでお世話になっているAnnoyについてじっくり紹介したいと思います。 目次 目次 Annoyについて 近傍探索について Annoyのソースコードを読むときのポイント AnnoyIndexというクラスのインスタンスを作る インストール過程について PythonのC/C++拡張 Annoyの実装 1. add_item 2. build 3. get_nns_by_vector 4. build再考 他に問題となる点について CPU依存部分 ディスクかメモリか まとめ さいごに Annoyについて Annoyは、SpotifyによるPython近傍探索ライブラリです。 github.com 弊社のテックブログでも以前に取り上げています。 techblog.zozo.c

    近傍探索ライブラリ「Annoy」のコード詳解 - ZOZO TECH BLOG
    sh19910711
    sh19910711 2024/04/28
    "Annoy: バージョン1.16.0以降、Annoyは内積計算の部分でAVX512命令があるCPUにおいてはAVX512命令を使う / ビルド環境と実行環境において使用しているCPUに差が出るようなコンテナ運用などをしている場合、動かないことが" 2020
  • Kaggle のデータ分析コンペ Shopee - Price Match Guarantee で『10位 / 2,426チーム』を獲得しました | MoT Lab (GO Inc. Engineering Blog)

    初めまして。MoTのAI技術開発部アルゴリズム第一グループの島越 [1]です。ブログでは、私が最近ソロで10位を獲得したKaggleのコンペティション「Shopee - Price Match Guarantee」で行った取り組みについてと上位の手法について紹介したいと思います。なお、記事で使用している画像は特に断りがない限り、上記コンペの画像を使用しております。 1. コンペについて まず、今回のコンペがどのようなタスクを解く問題だったのかについてご紹介します。このコンペは、東南アジア最大級のECプラットフォームであるShopeeが開催したもので、データとしてはユーザが登録した商品画像と商品のタイトルが与えられます。また、ラベルとしてはユーザが登録した商品の種別が与えられています。このラベルは、ユーザが登録したものなので、ノイズが多く載っているものになっており、同じ画像や同じタイト

    Kaggle のデータ分析コンペ Shopee - Price Match Guarantee で『10位 / 2,426チーム』を獲得しました | MoT Lab (GO Inc. Engineering Blog)
    sh19910711
    sh19910711 2024/04/28
    "多様なEmbeddingを用いてアンサンブルをするときにどうすればいいのか / それぞれL2 Normalizeしてからconcatする / 当たり前と言えば当たり前ですが、L2 normalizeせずにconcatしてしまうとそこまで改善が得られませんでした" 2021
  • 自然言語理解とそのモデリング - Reproc.pnz

    はじめに さいきん自然言語処理分野では「自然言語理解」なるものをどう考えるかについて議論があったりします。膨大なパラメータを大量のコーパスで訓練したシステム( GPT-3 とか)を用いると言語理解が関わるようなさまざまなタスクで高い性能が達成できることがわかってきた今日このごろ、そうしたシステムが当に「言語理解」なるものを実現しているのかということが焦点です。これは言語理解である、言語理解ではない、そもそも言語理解ってなんやねん……などなど、考えさせられる議論が論文やブログ記事などで展開されています。読んでいても何もわからん……状態になったので、ともかく自分の理解を整理してみようというのがこの記事を書き始めた動機です。 こうした議論から得られる帰結(あるいは教訓)のひとつは、結局は理想的な言語理解なるものを定義しようと試みても決着しないので、具体的にどういった振る舞いがそれに含まれるのか

    自然言語理解とそのモデリング - Reproc.pnz
    sh19910711
    sh19910711 2024/04/28
    "理想的な言語理解なるものを定義しようと試みても決着しない / どういった振る舞いがそれに含まれるのかを適切に切り出してタスクとして評価 / 現実的な制約から妥協したり部分問題に落としたりして定式化" 2021
  • グラフニューラルネットワーク(GNN; Graph Neural Network)入門 - あつまれ統計の森

    前提知識 Transformerとグラフニューラルネットワーク 下記で詳しく取り扱いました。当記事は下記の副読的な内容になるように取りまとめました。 「Transformer=グラフニューラルネットワーク+ネットワーク分析」と大まかに解釈できるので、当記事ではグラフニューラルネットワークについて詳しく取り扱います。 集合と要素 グラフ理論では基的に数ⅠAの「集合」で取り扱われる内容を元に立式されます。当項では「集合」の基的な式表記の確認を行います。たとえばサイコロの出目の$1$〜$6$の集合を$X$とおくとき$X$は下記のように定義できます。 $$ \large \begin{align} X = \{ 1, 2, 3, 4, 5, 6 \} \end{align} $$ このとき$X$の要素を$x$とおくと、$x \in X$のように表すことができます。$x \in X$は$x$が$

    グラフニューラルネットワーク(GNN; Graph Neural Network)入門 - あつまれ統計の森
    sh19910711
    sh19910711 2024/04/28
    "Transformerを理解するにあたってはGNNを理解しておくことで直感的な理解が可能 / GNNの数式表記に関しては様々なものがありますが、MPNN(Message Passing Neural Network)の定義を元に考えると理解しやすい" 2023
  • ML-Agentsで模倣学習(GAIL)を取り入れた強化学習を行う - Qiita

    要約 コンセプト:報酬がスパースな環境だとエージェントが報酬に辿り着けず、学習が進まない・・ので模倣学習で人間が手を見せる UnityのML-Agentsで強化学習+模倣学習(GAIL)をする手順の紹介 はじめに Unityでは、ML-Agentsというライブラリを使うことで機械学習を行うことができます。ML-Agentsは特に強化学習(Reinforcement learning)を容易に行うことが可能であり、Unityエディタ上で容易に環境を構築、スクリプトで報酬の設定等を行うこともできます。 ですが、ゲームにおいて強化学習でうまく挙動を学習させることが難しい場合があります。 強化学習とその課題 強化学習は、エージェントの一連の行動の結果として報酬を与えることで学習が進行します。しかし、報酬がスパースな(少ない)環境では、エージェントが報酬となる行動に辿り着くことが難しいため、エージ

    ML-Agentsで模倣学習(GAIL)を取り入れた強化学習を行う - Qiita
    sh19910711
    sh19910711 2024/04/28
    "人間が報酬にたどり着くような行動を模倣学習でエージェントに学習させる / ML-Agentsでは現在BCとGAILの2種類の模倣学習をサポート / GAIL: デモンストレーションの数が少ない場合でも効果的 + 事前学習が可能" 2019
  • Arxiv RAGによる論文サーベイの自動生成 | Shikoan's ML Blog

    2.3k{icon} {views} 複数のLLM(GPT/Claude3)とArxivの検索APIをRAGで統合し、論文サーベイの自動生成を作りました。検索結果の前処理や、サーベイ特有のプロンプトエンジニアリングやソートが重要で、最適化手法として古くからある巡回セールスマン問題(TSP)が有効に機能しました。また、生成部分ではGPTよりClaude3の明確な有効性を確認できました。 できたもの Arxivの検索APIを使って検索拡張生成(RAG)したらサーベイを自動生成できた やっていること Arxivの検索ワードをGPT-4-Turboで生成 ArxivのAPIを叩いてヒューリスティックでフィルタリング OpenAIEmbedding APIを叩く Embeddingに対して巡回セールスマン問題(TSP)を解いてソートをかける 論文の要旨をGPT-3.5-Turboで要約 ソートした

    Arxiv RAGによる論文サーベイの自動生成 | Shikoan's ML Blog
    sh19910711
    sh19910711 2024/04/28
    "GPT-4-TurboのJSONモードを使い、検索ワードを生成 + 「Arxiv検索で」と明示させればそれっぽい / Embeddingに対してTSPを解いてソート + テーマ内での近しい内容同士が数珠つなぎで並べ替えた上で与えられたほうが良い"