TECH PLAY

LabBase

LabBase の技術ブログ

42

はじめに この記事は株式会社LabBase テックカレンダー Advent Calendar 2023 11日目の記事です。 株式会社LabBaseでエンジニアをしている渡辺創です。 今回は GPT と Knowledge Graph を使って、自動で技術キーワードの類義語辞書をつくることができるか試してみたのでそれについて書いていきたいと思います。 背景 LabBase就職というサービスを提供しており、研究に取り組んでいる学生が研究概要を登録してくれています。研究を頑張っている学生を採用したい企業の方が研究内容と募集内容のマッチングによって、就職活動・採用活動を支援するサービス
アバター
この記事は LabBaseテックカレンダー Advent Calendar 2023 の 10 日目です。 https://qiita.com/advent-calendar/2023/labbase はじめに 今回 SvelteKit 製の Web サービスを Cloudflare Pages にデプロイする方法をセットアップしたので、その手順と内容について解説します。 Cloudflare Pages は、 GitHub と連携させてリポジトリを更新したときに自動でデプロイされるような使い方が一般的だと思いますが、今回は GitHub とは連携せず、手元でスクリプトを実行してデプ
アバター
この記事は LabBase テックカレンダー Advent Calendar 2023 の 8 日目です。 https://qiita.com/advent-calendar/2023/labbase はじめに こんにちは、株式会社 LabBase で SWE やっている上久保です。みんなからはリコピンと呼ばれています。この1年の仕事を振り返ってみると、今年はほとんど新規事業の立ち上げプロジェクトに参加していました。私は現在エンジニア歴 5 年目ですが新規事業プロジェクトに参加したのは今回が初めてで、上手くいかずに悩んだことや学んだり反省したことが多かったのでこの記事にまとめてみるこ
アバター
本記事はLabBase テックカレンダー Advent Calendar 2023 5 日目です。 https://qiita.com/advent-calendar/2023/labbase 概要 Pythonのtransformersライブラリと同程度に簡単に、RustでもBERTでFine-tuningしたかったので調べたところ、惜しくもできる方法は無かった。 しかしちょっと頑張ると可能そうだし、ちょっと待てばhuggingface/candleでできるようになりそう。 RustでもBERTでFine-tuningしたい 業務で文章からキーワード抽出するタスクを解きたかった
アバター
アドベントカレンダー6日目 本記事は Labbase テックカレンダー Advent Calendar 2023 6日目です。 TLDR; ChatGPTは、ドキュメント作成プロセスを効率化し、時間を節約しながら正確性を高める。 テクノロジーの進化に対応するため、爆速ドキュメント作成がプロジェクト成功の鍵。 長期的には、整理されたドキュメントが知識共有を促進し、全体の作業効率を向上させる。 はじめに: 現代のドキュメント作成の課題 現代の開発プロジェクトでは、ドキュメント作成が重要な役割を果たしますが、同時に大きな課題も抱えています。特にWeb系開発のような分野では、技術
アバター
本記事はLabBase テックカレンダー Advent Calendar 2023 3 日目です。 https://qiita.com/advent-calendar/2023/labbase Grafana Beyla Grafana Beyla は eBPF を利用して、Web アプリケーションの trace やメトリクス情報を収集するツールです。 eBPF を利用しているため、アプリケーションのコードを変更することなく、trace やメトリクス情報を収集することができます。 似たようなツールとして、Pixie があります。 今回は Pixie については触れないため、詳細につい
アバター
アドベントカレンダー2日目 本記事はLabBase テックカレンダー Advent Calendar 2023 2 日目です。 イントロダクション こんにちは、Labbaseのリサーチエンジニアの松井です。 リサーチエンジニアチームでは新しい技術を自社のプロダクトに反映させるにはどうしたら良いかを検証しています。今回は、大規模言語モデルの適応可能な事例や、Labbaseにおける活用について紹介いたいします。 大規模言語モデル(LLMs)の概要 大規模言語モデル(LLMs)は、膨大なテキストデータを基にして学習するAI技術です。これらのモデルは、テキストの意味や文脈を理解し、新
アバター
アドベントカレンダー 1 日目 本記事はLabBase テックカレンダー Advent Calendar 2023 1 日目です。 はじめに 前回の記事ではDomain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F# の読書メモをまとめました。 https://zenn.dev/labbase/articles/b1c513c32fe15e Domain Modeling Made Functional: Tackle Software Complexity
アバター
イントロダクション 先日、プログラミング言語のRustに特化したカンファレンスである、Rust Tokyo2023に参加してきました。 このカンファレンスで得た知識と刺激を元に、社内で「Crateを読む会」を開催することにしたので、そのアイディアと成果を共有します。 開催のきっかけ Rust Tokyo2023では主なトピックとして、「Rustをどのように社内に導入したか」と「Rustの特徴を活かした開発のアイディア」、「Rustを取り巻く環境」がありました。詳細は当日のLineUpをご確認ください。 特に印象的だったのは、@sadnessOjisanさんの「かにさんタワーバトル
アバター
2023/10/21(土)、Rust.tokyo 2023を自宅からオンライン視聴しました。 https://rust.tokyo/2023 この記事においては、Rust歴1ヶ月の筆者がRust.tokyoにオンライン参加した感想レポートを、筆者がRustを始めた経緯などとも絡めつつ記述します。 TL;DR Rust初心者でもRust.tokyoはとても楽しめたし、勉強になった 組織におけるRustの導入プラクティスとしては、「まずは少人数から」が良さそうだと感じた ライブリーディングは、Rustにおいては特に学習としての効果が高そう 筆者のRust(とその他)歴 筆者は今年
アバター
こんにちは。Zennでは初めまして。cordx56です。 今回は、先日開催されたRust.Tokyo 2023の参加記を書きたいと思います。よろしくお願いします。 Rust.Tokyoとは? Rust.Tokyoとは、プログラミング言語であるRustのカンファレンスです(念の為)。そこまで多くの情報は載っていませんが、公式サイトもあります。 なぜ参加したの? 私は今回のRust.Tokyo 2023がRust.Tokyoの初参加でした。今回はRust.Tokyoのしばらくぶりのオフライン開催だったようです。 私自身、最近何かを作る際にはRustを用いることが多くなったこと、そして
アバター
はじめに Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F# を読んだので、気になったことをまとめます。 私の DDD の知識と経験は趣味プロダクトで素振りしてみた程度、関数型プログラミングは勉強中という感じなので、間違った解釈をしているかもしれませんがご容赦を。 本書は F#で記載されていますが、自分のメモでは TypeScript に翻訳してサンプルコードを書いています。 肝心の関数型プログラミングのテクニックを駆使してパイプラインを作っていくアプ
アバター
TL;DR vite-plugin-svelte-svg プラグインを使って svg ファイルをコンポーネントとして読み込んだときの ts(2307) エラーを解消するには、src ディレクトリ内に @types/index.d.ts ファイルを作成して、以下の内容を記載する。 src/@types/index.d.ts declare module '*.svg?component' { import Svelte from 'svelte'; export default Svelte.SvelteComponent; } vite-plugin-svelte-s
アバター
株式会社LabBaseは、2023年10月21日に開催されるプログラミング言語「Rust」のコミュニティによるカンファレンス「Rust.Tokyo 2023」に、シルバースポンサーとして協賛します。 開催概要 日時:2023年10月21日(土) 会場:オンライン・オフライン開催 イベントページ:https://rust.tokyo/2023 当社のプラットフォームに密に関わるエンジニアコミュニティの発展に向け、今後も幅広く貢献していきたいと考えています。 採用情報 LabBaseは「研究の力を、人類の力に」をパーパスに、国内最大の理系学生就職サービス「LabBase就職」をはじ
アバター
やりたいこと 下記の MySQL 版を作りたいです。 https://github.com/mothership/rds-auth-proxy なお、現時点では完全に上記のツールと同等な機能ではありません。 動機 AWS RDS MySQL や Aurora MySQL を利用していると、ローカル PC などの端末からデータベースインスタンスに接続したい場面があると思います。 データベースインスタンスへのネットワーク接続については、Session Manager の PortForward を利用することで踏み台の管理も必要なく、また、AWS IAM 認証情報をもとに接続制限がで
アバター
TL;DR 次の手順を実行する リポジトリに infra/git-hooks のような名前でディレクトリを作成し、下記の pre-push スクリプトファイルを追加する。 このとき、 chmod +x infra/git-hooks/pre-push のようにして pre-push スクリプトに実行権限を付与しておく。 .gitignore ファイルに .wt-pre-push-test を追加する。 .wt-pre-push-test は pre-push スクリプトが push 前チェックに使用する作業用ディレクトリ 上記変更を push する。 各開発者の環境で
アバター
Leanとは Leanは普通の関数型言語であり、なおかつ定理証明支援系でもある大変パワフルな言語です。つまり原理上実行前にわかる性質は、型に埋め込んだり、頑張って自分で証明したりすることができます。そう考えるとワクワクしてきますね! またコンパイラフロントエンドのAPIを自由にユーザーが使えるので、標準の文法や意味論とまったく同じレベルで自分の拡張を安全に仕込むことができるという、強力な拡張性を持つおもしろい言語でもあります。 今回紹介するLeanの環境構築は、lean4とよばれているバージョンのもので、lean3という古いバージョンとは異なります。 elan 開発環境の構築には
アバター
TL;DR .env と .trigger を .gitignore に追加して、以下のスクリプトを cargo run の代わりに実行する。 run.sh #!/bin/bash set -e -u -o pipefail # kill all background child processes when exit. trap "exit" INT TERM trap "kill 0" EXIT realpath() { [[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}" } SCRIPT_DIR="$
アバター
curl コマンドで WebAPI を呼び出すときにリクエストの Body だけでなくステータスコード(201, 403 など)も利用したいことがある。そのような時は、 curl コマンド実行時に -w "\n%{response_code}" を付けて、 HTTP リクエストのステータスコードをコマンドの出力に追加する。 参考: https://everything.curl.dev/usingcurl/verbose/writeout これを後で分割することでレスポンスの Body とステータスコードを両方利用できる。 サンプル: RESULT=$(curl --url "https
アバター
RustのEnumで比較をする場合PartialEqを利用していましたが、matches!も比較に使えます。 比較結果が変わることがあったのでこちらで共有します。 enumの定義 最初にシンプルなenumを定義します。 enum Sports { BaseBall, BasketBall, } シンプルな比較 まずはそのまま比較します。 == と matches! 両方で試します。 let b1 = Sports::BaseBall; // こちらはエラーです。 println!("{:?}", b1 == Sports::BaseBall); // こちらは
アバター