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

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

hajime
March 11, 2024

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

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は、 【研究の⼒を、⼈類の⼒に。】という パーパスを掲げ、研究エンパワープラット フォームの創造を⽬指しています。