Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rust を他の言語と同じように 活用して感じた採用効果

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.
Avatar for hajime hajime
March 11, 2024

Rust を他の言語と同じように 活用して感じた採用効果

Avatar for hajime

hajime

March 11, 2024
Tweet

Other Decks in Technology

Transcript

  1. もくじ Rust の活⽤事例 2 : 採⽤⾯での良さ 3 : 会社紹介 4

    : 終わりに 5 : Copyright © LabBase,Inc. All Rights Reserved.  ⾃⼰紹介 1 :
  2. 話すこと‧離さないこと Copyright © LabBase,Inc. All Rights Reserved.  • 弊チームでの Rust

    使い⽅の具体例 • 採⽤のメインにRustを掲げて、感じた効果 話すこと • Rustならではの開発における⾔語的なメリット 話さないこと
  3. Research チームのミッション Copyright © LabBase,Inc. All Rights Reserved.  • 検索キーワードの推薦

    • 募集の⾃動⽣成 • RAGを使った社内の問い合わせ • マーケティングの部分的な⾃動化 最新技術を利用したプロトタイプ開発。 直近は費やす時間に対してインパクトが大きそうな GPTをつかった機能に注力。
  4. ベクトル検索で曖昧な検索を行う。         解決策 Copyright © LabBase,Inc. All Rights Reserved.  検索クエリをベクトル化

    学生のキーワード列をベクトル化 機械学習 ⾃然⾔語処理 [1.5, ... , 0.4] [0.8, ... , -0.2] 機械学習 分⼦化学 NLP 深層学習 [0.7, ... , 0.1] [-0.3, ... , 1.2] ユークリッド距離で ランキング
  5. 主なユーザが人事のかたであるということもあり、 どこがヒットしたのかわかりにくいという声がある。 新たな課題 Copyright © LabBase,Inc. All Rights Reserved.  AND検索

    や OR検索 ベクトル検索 検索クエリ:機械学習 or ⾃然⾔語処理 機械学習 ⾃然⾔語処理 NLP 深層学習 解決策として、 学生のキーワード列をまとめてベクトル検索した後、 個々のキーワードとの距離を計算し、近い順に並べる。
  6. データベース Copyright © LabBase,Inc. All Rights Reserved.  keyword_id keyword_text embedding

    student_id student_name keyword_list_embedding student_id keyword_id keywords students student_keyword_relations NLP 深層学習 1 1 2 1 1 1 2 NLP 深層学習 [0.9, …, -0.2] [-0.3, …, 1.2] 山田花子 [0.6, …, -0.7] NLP 深層学習 [0.9, …, -0.2] [-0.3, …, 1.2] [0.6, …, -0.7] NLP 深層学習 keywords の embedding カラム students の keyword_list_embedding カラム
  7. 処理フロー Copyright © LabBase,Inc. All Rights Reserved.  事前準備 • 各種データを

    csv からデータベースにデータを⼊れる。 • OpenAI の Embeddingを使って、 ◦ keywords の embedding を取得し保存。(この時、pgvectorというPostgreSQLの拡張機能を使う) ◦ students の keyword_list_embedding を取得し保存。(この時、pgvectorというPostgreSQLの拡張機能を使う) 検索の実施 クエリ:機械学習 [0.1, …, -0.8] keyword_list_embedding を検索し、 ベクトルの距離が近い学⽣ Top n を取得 画像認識 学⽣の順序は変えずに個別の キーワードを検索クエリに 近い順に並べ替え 分⼦化学 バイオ 構造解析 BERT 遺伝⼦⼯学 DNA ⾃動運転 物体検出 画像処理 ⼈⼯知能 AI ⾳声認識 深層学習 機械学習 機械学習 構造解析 バイオ 分⼦化学 BERT 遺伝⼦⼯学 DNA 画像処理 物体検出 ⾃動運転 ⼈⼯知能 ⾳声認識 AI 深層学習 画像認識
  8. 実装のポイント(https://github.com/HHajimeW/pgvector) Copyright © LabBase,Inc. All Rights Reserved.  CREATE OR REPLACE

    FUNCTION get_similar_student_list( query_vector vector(1536) ) RETURNS SETOF type_student_list_output AS $FUNCTION$ DECLARE hit_keywords type_hit_keyword[]; begin RETURN QUERY SELECT stu.student_id, stu.student_name, ARRAY_AGG( ROW( key.keyword_id, key.keyword_text, key.embedding <-> query_vector )::type_hit_keyword ) AS hit_keywords FROM students stu LEFT JOIN student_keywords_relations skr ON stu.student_id = skr.student_id LEFT JOIN keywords key ON skr.keyword_id = key.keyword_id GROUP BY stu.student_id ORDER BY stu.keyword_list_embedding <-> query_vector limit 10; END; $FUNCTION$ LANGUAGE plpgsql; ストアドプロシージャでかいてvector を渡せば、 ⼀発で返ってくるものをかけて、Rust の Struct で受け取れる。 [{ student_id: 1, student_name: ⼭⽥花⼦, keyword_list: [ { keyword_id: 1, keyword_text: "NLP", distance: 0.1 }, { keyword_id: 2, keyword_text: "深層学習", distance: 0.8 }, ] }, …, {...} ] ユニークビジョンさん の CTO の方のブログ参考にしました https://qiita.com/aoyagikouhei/items/9e52ae732d0f795f4dfc
  9. リサーチチームでの活用の仕方に 他の言語と大きく違いがあるわけではない。 Rustの活⽤の仕⽅ Copyright © LabBase,Inc. All Rights Reserved.  •

    今回のような実験のコード • プロトタイプのWebアプリケーション ▪ Axum とか、SQLx とか ▪ React ✖ Rust
  10. Rust のよく聞く特徴 Copyright © LabBase,Inc. All Rights Reserved.  • メモリ安全性

    • ⾼パフォーマンス • スレッド安全性 • リッチな型システム • エラー処理が分かりやすい メリット デメリット • ⽇本語のドキュメントが少ない • ライブラリなどが未成熟 • 低レイヤの意識が必要 • 学習コストが⾼い
  11. 最近、⼊社する⼈の特徴 Copyright © LabBase,Inc. All Rights Reserved.  Rustが好きな⼈ 低レイヤーへの 興味が強い

    プロダクトで Rustを使いたい⼈ クレート読む プログラムをかくのが好き
  12. 考えられる因果 Copyright © LabBase,Inc. All Rights Reserved.  ⼤変なこともあるけど、 プロダクトでRustを使いたい Rust

    のデメリット 好奇⼼ 深く理解 する 意識せず 挑戦 学習コスト 気にしない つくるのが 好き Rust のメリット
  13. Copyright © LabBase,Inc. All Rights Reserved.  採⽤において、Rust 使⽤を掲げたら 弊社の⽬指すカルチャーにマッチした⼈が ⼊社した

    CTOはもしかしたら、また違う感覚をもっているかもしれない 是⾮カジュアル⾯談してみてください
  14. 25 Copyright © LabBase,Inc. All Rights Reserved.  研究を頑張る理系学⽣と企業をつなぐスカウト サービス「LabBase就職」、研究開発者‧技術 者と企業をつなぐスカウトサービス

    「LabBase転職」、研究室とあなたをつなぐ 研究室検索サービス「LabBase研究室サーチ」 などを運営中。 The Research Empowerment Platform 株式会社LabBaseは、 【研究の⼒を、⼈類の⼒に。】という パーパスを掲げ、研究エンパワープラット フォームの創造を⽬指しています。