1 ポイント 投稿者 GN⁺ 2024-08-21 | 1件のコメント | WhatsAppで共有
  • Transformers.rbは、Hugging FaceのTransformersをRubyで利用できるようにするライブラリで、最新のtransformerモデルをRubyコードで実行することに重点を置いている
  • インストールは、まずTorch.rbをインストールした後、Gemfileにgem "transformers-rb"を追加する手順で行う
  • サポート例には埋め込み、sparse embedding、rerankingモデルが含まれ、sentence-transformersmixedbread-aiBAAISnowflakeOpenSearch系モデルの使い方を示している
  • パイプラインはテキストとビジョンに分かれ、NER、感情分析、質問応答、画像分類、画像特徴抽出などをTransformers.pipeline形式で呼び出す
  • APIはTransformers Python APIに従っており、現在BERT、DeBERTa-v2、DistilBERT、MPNet、ViT、XLM-RoBERTaアーキテクチャをサポートしている

RubyでTransformersを使う

  • Transformers.rbはRuby向けの最新transformersライブラリ
  • 高速な推論が必要な場合はInformersを確認するよう案内している

インストール方法

gem "transformers-rb"

サポートモデルの例

パイプライン

  • Textパイプラインは次のタスクをサポートする
    • embedding: テキスト埋め込みの生成
    • reranking: クエリと文書配列の順位再調整
    • ner: named-entity recognition
    • sentiment-analysis: 感情分析
    • question-answering: 質問とコンテキストを入力として回答を生成
    • feature-extraction: テキスト特徴抽出
  • Visionパイプラインは次のタスクをサポートする
    • image-classification: 画像分類
    • image-feature-extraction: 画像特徴抽出

APIとサポートアーキテクチャ

  • このライブラリはTransformers Python APIに従う
  • 現在サポートしているモデルアーキテクチャは次のとおり
    • BERT
    • DeBERTa-v2
    • DistilBERT
    • MPNet
    • ViT
    • XLM-RoBERTa

開発と貢献

  • 変更履歴はchangelogで確認する
  • 貢献方法には、バグ報告、バグ修正とpull requestの提出、ドキュメントの作成・明確化・修正、新機能の提案または追加が含まれる
  • 開発開始コマンドは、リポジトリのクローン、bundle installbundle exec rake download:filesbundle exec rake testの順に案内されている

1件のコメント

 
GN⁺ 2024-08-21
Hacker News のコメント
  • Ankane の Ruby 向け ONNX Runtime はあまりにも使いやすく、公式 JavaScript リポジトリがなぜあんなに分かりにくいのか不思議に思うほど。
    この人が成し遂げたことは、まだ表面をなぞっただけでも英雄的に見える。

  • 本気で、この人は人間なのか? これほど才能のある個人なら、10億ドルでも投資したい。

    • 自分はその100分の1くらいの才能だけど、1,000万ドルの投資なら受ける用意がある。
  • これのためにやっているわけではないだろうけど、感謝を示したい人がいるなら、Ankane を Rails 2024 Luminary award に推薦しておいた。
    https://rubyonrails.org/2024/8/2/nominations-open-for-2024-l...

    • 同意。Ankane がコミュニティに提供している有用な成果の量は本当に現実離れしている。
  • こういう貢献は Ruby コミュニティに本当に必要だし、このプロジェクトも面白そう。

    • 本当にそう。全体として、こうした貢献が不足している、あるいは出てくる速度が遅くなっているせいで、Ruby コミュニティが鈍化しているように見える。
      今回の場合、Ruby に突然すばらしいライブラリが生まれたわけで、それ自体は本当にありがたい成果だ。とはいえ「コミュニティ」がこういうものを、Python、JavaScript、TypeScript、Rust、Go などで同じライブラリが出てから数か月、あるいは数年たってようやく「作り出した」形になっている。
      機械学習/人工知能だけでなく、新しい技術を扱う Ruby ライブラリである gem でも同じことが起きている。以前は SaaS やスタートアップが最初から公式 Rubygem を提供し、しばしば他のプラットフォームや言語より先に提供することさえあった。最近は Notion、Slack、Cloudflare のようなものと連携しようとすると、Ruby の選択肢がない、少なくとも公式の選択肢がないことが多い。
      これは悲しい。Ruby は Rails よりずっと広い言語であり、Rails への抵抗感や反感は理解できる。それでも Ruby は Python より、そして JavaScript よりは確実にずっと楽しく作業できる言語だ。Ruby が今日の Python の位置にいる可能性もあったし、そうなっていれば何万人もの開発者が今より少しは幸せだったはずだと確信している。
  • Ankane は一人で、業界に本当に多くの形でものすごい貢献を還元している。すごい。

  • 一人の人間がどうしてここまで生産的でいられるのか気になる。仕事や家族などでかなり忙しい生活のはずなのに。

  • Ankane の gem たちにどれほど感謝しているか、言葉にするのが難しい。彼が作ったものは自分のいくつかのアプリで必須要素だったし、エコシステムの隙間を埋めてくれていると思う。

  • この人が作るツールは本当に驚くべきものだ。もっと出てきてほしい。

  • Andrew Kane は pgvectorpgvector-rubyneighbor の作者でもあると理解していて、どれもかなりすばらしい。
    ほかにも多くのものを作っている。
    もしかすると、ずっと前に一人で人工知能/機械学習を解決していて、それを使ってこれほど生産的なのかもしれない。
    [0] https://github.com/pgvector/pgvector
    [1] https://github.com/pgvector/pgvector-ruby
    [2] https://github.com/ankane/neighbor
    [3] https://github.com/ankane/

    • 彼は人工知能分野以外でも本当にたくさん作っている。
      https://github.com/ankane/pretender は Rails アプリで別のユーザーになりすますことをとても簡単にしてくれる。
      https://github.com/ankane/ahoy は Rails 向けのセルフホスト分析ツール。
      https://github.com/ankane/blazer は Rails 内に組み込めるビジネスインテリジェンスツール。
      https://github.com/ankane/field_test は A/B テスト用。
      こうしたものが、普通の Web アプリでの Rails の生産性を高めてくれる。それぞれについて、より優れたベンダー製品や特化型ソリューションはあるだろうが、gem を入れて少し設定するだけで 80% の解決策が得られるなら、本当に素早くリリースできる。
    • さらに Chartkick、Ahoy、Searchkick もある。
      Chartkick は Ruby 向けのチャートライブラリ、Ahoy は Rails の分析ライブラリ、Searchkick は Rails の検索ライブラリ。
      彼の GitHub プロフィールには 370 を超えるリポジトリがある。
    • うちの本番リポジトリでも Andrew Kane のツールを本当にたくさん使っている。彼のパッケージのおかげで、Rails で人工知能アプリケーションを作れる。
    • Ruby を使っていてまだ ankane を知らないなら、彼の GitHub には非常に有用なツールがたくさんある。
      たとえば /disco は、どこにでも素早く推薦機能を入れたいときに使える、とても単純な協調フィルタリング実装だ。
      Ruby で機械学習関連の何かを探しているなら、たいてい ankane がすでに一度は調べている。
    • 自分の知る中で最も多作な人の一人だ。
  • Ruby コミュニティでは、Andrew Kane と Chris Oliver は個人的に最高中の最高だと思う。すべての成果物を使うわけではなくても、そうした貢献はいつでも歓迎すべきものだ。