Sansan Builders Blog

Sansanのものづくりを支えるメンバーの技術やデザイン、プロダクトマネジメントの情報を発信

Techの道も一歩から の検索結果:

【Techの道も一歩から】第41回「SageMakerでStep Functionsを使った学習パイプラインを構築するために概念を理解する」

こんにちは。 DSOC R&D グループの高橋寛治です。 最近は、MLOpsへの興味が大きく、ツールの実利用や勉強会での発表を行っています。 機械学習プロジェクトにおいて、久々の実行や引き継いだコードの実行の際に、順序や実行環境を思い出したり準備したりしながら確認するのはすごく大変です。 コンテナ化された上でパイプラインがあると、実行順序も実行環境も覚えたり記録したりする必要がなくなります。 コンテナとパイプラインを組み合わせて利用するAmazon SageMakerを利用し…

MLOpsについてSansan×Unipos×M3の合同勉強会で発表しました

こんにちは。 DSOC R&Dグループの高橋寛治です。 2021年7月8日に開催された【Sansan×Unipos×M3】事例から学ぶ!MLOps・データ分析基盤 最前線事例共有勉強会において、ニュース配信におけるMLOpsの取り組みについて発表いたしました。 勉強会の概要と発表内容についてご紹介いたします。

【Techの道も一歩から】第40回「Texthero で日本語を解析する」

こんにちは。 DSOC R&D グループの高橋寛治です。 社内の研究開発部勉強会にて、Texthero が便利だという話を聞きかじりました。 Texthero は、テキストの前処理から変換、可視化までを pandas 上でうまく扱える Python パッケージです。 現状では、英語のみ対応しているパッケージです。 本記事では、日本語を解析できるように追加でコードを書いて使ってみたので紹介します。

人事異動のデータ化の取り組み 〜 CamelotによるPDFの表データ抽出

DSOC サービス開発部 GEES/JES/COEグループの松本です。最近はコロナの影響で巣ごもりをしており、家の庭で芝生を育てています。 色々と手抜きをしてしまったがために生え揃いがまばらで、かわいい反面、芝生の上を裸足で歩けるようになるにはまだまだ時間がかかりそうです。気長に待ってみようと思います。今日はSansanの機能の一つである、人事異動ニュースを支えるデータ化の取り組みについてご紹介したいと思います。

【Techの道も一歩から】第39回「Google App Engine で Python による WebAPI を動かす」

ヘッダ画像 こんにちは。 DSOC R&D グループの高橋寛治です。 最近は Google App Engine(App Engine) を用いて WebAPI としてアルゴリズムを提供できるよう開発中です。 App Engine を触ったのは初めてだったため、備忘録として App Engine の概要や環境構築からデプロイまで書きたいと思います。 App Engine の説明や設定の考え方が主となります。

【Techの道も一歩から】第38回「Streamlit で固有表現抽出の結果を表示する」

こんにちは。 DSOC R&D グループの高橋寛治です。 最近、部内で Streamlit による可視化を見かけるようになってきました。 Streamlit は、インタラクティブなデータの可視化に特化した Web アプリケーションを少ないコードで素早く提供することができる Python ライブラリです。 私自身は Web アプリケーションとしてデモ化する際に手慣れた Flask で書くことが多いです。 慣れているとはいえ時間を要するため、同じ結果を爆速で実現できるなら使わない…

【Techの道も一歩から】第37回「データの集計に Luigi を使ってみる」

こんにちは。 DSOC R&D グループの高橋寛治です。 あるプロジェクトにおいて、 「DB からデータを取得し整形した結果を出力する」という一連の処理をパイプラインパッケージである Luigi を用いて行いました。 ワークフローの監視や記述が簡単に記述できて良かった*1と感じたため、ここで流れを紹介したいと思います。 *1:Makefile やシェルスクリプトをよく書いてしまいますが、他者への布教だと Luigi はいいように感じました。

第4回 MLOps 勉強会で発表しました

こんにちは。 DSOC R&D グループの高橋寛治です。 2021年2月18日に開催された 第4回 MLOps 勉強会 で登壇の機会をいただき、MLOps に関する取り組みについて発表いたしました。 勉強会の概要と発表内容について簡単に紹介いたします。

【Techの道も一歩から】第36回「FastAPI を使い始める」

こんにちは。 DSOC R&D グループの高橋寛治です。 私は Python で WebAPI を開発する際には、Flask をよく利用しています。 最近は、FastAPI がいいらしいという話を同僚から聞くようになりました。 少し公式ドキュメントを覗いてみると、Flask をより便利に高機能にしたものに感じました。 これは使わねばと思い、開発環境の構築からテストまでやってみたため、ここで紹介します。 (しっかり理解したい場合は、充実した公式のチュートリアルがおすすめです。ド…

【Techの道も一歩から】第35回「ルールベース手法の運用時のエラーを的確に把握する」

こんにちは。 DSOC R&D グループの高橋寛治です。 アルゴリズムを開発する際に、課題やデータ量に応じた手法の一つとして、ルールベースを採用することがあります。 ルールベースによるアルゴリズムを運用していると、想定外の事象による例外が発生するものです。 これを的確に把握することで、改善へとつなげることができます。 動作するコードのエラーを的確に把握するということは、ソフトウェア開発では当たり前のことだとは思います。 しかしながら、研究開発という観点だと考慮が漏れがちな点で…

【Techの道も一歩から】第34回「固有表現抽出のためのデータを作る」

こんにちは。 DSOC 研究開発部の高橋寛治です。 本記事は Sansan Advent Calendar 2020 - Adventar の初日の記事です。 クリスマスにアノテーションされたデータがプレゼントされると幸せですよね。 プレゼントを渡せるように、タグ設計やアノテーションについて、どのような考えでどうデータを作るのかを具体的に紹介します。 ただし、Advent Calendar 1日目ということでゆる~く紹介したいと思います。

【Techの道も一歩から】第33回「文献紹介:Beyond Accuracy: Behavioral Testing of NLP Models with CheckList」

こんにちは。 DSOC 研究開発部の高橋寛治です。 社内の論文読み会で紹介した評価に関する文献である「Beyond Accuracy: Behavioral Testing of NLP Models with CheckList」について簡単に所感を交えて*1紹介したいと思います。 なお、本文内での図表は基本的に文献から引用したものとなります。 *1:所感は、「所感:」から始まります。

【Zoom or Die】第2回 Hydra+Axでハイパーパラメータサーチ

こんにちは,DSOC 研究開発部の内田です. 最近すっかり秋めいてきて,短パン小僧 の私としてはちょっと寒いくらいです. 涼しくなってきたので1人で寺巡りをすることが多いのですが.そのせいで夏本番より日焼けして短パン小僧感が増す始末です. 先日同研究員の高橋が寄稿した記事でもMLOpsに入門していましたが,最近社内になんとなくMLOpsの風を感じます. そんなわけで今回はHydra+Axを使ってハイパーパラメータサーチをしてみたいと思います. buildersbox.corp…

【Techの道も一歩から】第32回「MLOps に入門」

こんにちは。DSOC 研究開発部の 高橋寛治です。 突然ですが、みなさん MLOps を実践されていますか。私は雰囲気しか知りません。 今回はそんな MLOps について学んだ概念と一つのツールである DVC について紹介します。 また、今実際に使っている中で感じている点についても少し紹介できればと思います。

新卒の私が研究開発プロジェクトの中で感じたこと

こんにちは。Sansan DSOC 研究開発部の保坂です。今年の春に新卒で Sansan に入社しました。最近、個包装の焼きあごを大量購入したのですが、おやつとしてもおつまみとしても食べれますし、カルシウムもたっぷり含まれているので在宅勤務のお供*1におすすめです。さて、私は入社してから、実際に研究開発プロジェクトに携わってきた中で、学生時代とは異なる視点で解くべき問題の設定や機械学習システムの設計をしていく必要があると感じました。以下の記事で紹介されている新卒研修でこのよう…

【Techの道も一歩から】第31回「クラウド上に自前のVPNを構築し、ラズパイを VPN ルータ化」

こんにちは。DSOC 研究開発部の 高橋寛治です。 リモートワークが盛んである今、 VPN 接続を利用している人が多いのではないでしょうか。 私もそんな一人ですが、そういえば VPN サーバを立てたことがなかったので、挑戦してみました、というのは表向きの理由で、IPv6 による経路の VPN 接続を行いたいということが真の目的です。 自宅回線は IPv4(PPPoE)・IPv6(IPoE) となっており、IPv4 インターネット利用時は PPPoE の輻輳だと考えられますが、…

【Techの道も一歩から】第30回「久々の Windows」

こんにちは。DSOC 研究開発部の 高橋寛治です。 今回は業務に利用している手元の環境を Mac から Windows に変更したという軽い話です。 交換した理由や Mac から Windows に乗り換えた時にセットアップする点について記します。 交換した理由 マシンスペックに不足を感じたことと WSL の進化が理由となります。 SSH で基本的に作業するため、軽くて持ち運びしやすい SSH クライアントと思って Macbook を利用していました。 しかしながら、昨今のリ…

【Techの道も一歩から】第29回「PythonでPDFに文字を埋め込む」

こんにちは。DSOC 研究開発部の高橋寛治です。 いつもお世話になっている PDF ファイルを対象に Python3 で操作します。 PDF ファイルを読み込み、文字を書き込んで、「Hello World!」と世界に挨拶をする方法を紹介します。

【Techの道も一歩から】第28回「深層学習による物体検出で遊んでみる」

こんにちは。DSOC 研究開発部の高橋寛治です。 新型コロナウイルス感染症対策では、外出自粛を徹底することが大事とされており、自宅でできる遊びを日々模索中です。 さて、今回は自宅のノートパソコンや物を使って、深層学習による物体検出で遊びます。 物体検出はなんとなく知っていただけなのですが、実際動かしてみると楽しいものです。 今回作るもの リアルタイムでの任意の物体検出を作ります。 今回、検出したいものはゲームのコントローラー類です。 似たようなものばかり買って何になるのかと、…

【Techの道も一歩から】第27回「BERTで作ってみた日本語固有表現抽出器の推論部分を書く」

こんにちは。DSOC 研究開発部の高橋寛治です。 今回は、前回の 「BERTで日本語固有表現抽出器を作ってみた」 に続き、作った固有表現抽出器をWebAPI化します。 モデルを把握する transformers ライブラリの 固有表現抽出のサンプル を流用してモデルを作成しました。 こちらのコードをもとに学習を実行すると、コマンドライン引数で指定したディクレトリにモデルファイルが出力されます。 model_dir ├── config.json ├── eval_result…

【Techの道も一歩から】第26回「BERTで日本語固有表現抽出器を作ってみた」

こんにちは。DSOC 研究開発部の高橋寛治です。 流行りの BERT(Bidirectional Encoder Represenations from Transformers) ですが、論文を読んだあと、マスク部分を当てるというサンプルを動かしその的確さに驚いたところで、手が止まっていました。 今回は、BERTの特徴である優れた言語モデルを利用して、日本語固有表現抽出器を作ってみました。 その手順をいくつかかいつまんで紹介します。 準備から学習 BERT の実装には、 H…

【Techの道も一歩から】第25回「できる限りわかりやすく規則による前処理・後処理を記述する」

こんにちは。 DSOC R&D グループの高橋寛治です。 テキストに対して何かしらのアルゴリズムにより結果を得た際に、どうしても出力したくない項目や、少し前処理を書けば改善される、といったことがあります。 例えば機械学習の出力を調整するには、パラメータの調整や学習データの整備となかなか大変な作業が必要ですが、現場ではできる限り早く結果を提供するために、前処理や後処理を追加して対応することがよくあります。 その際に極端な話ですが、都度都度コードに if 文を追記すると、後から読…

Serverlessで始める新規サービスのおはなし

こんにちは。Sansan事業部プロダクト開発部でエンジニアをしている 黒澤です。半年ほど前にSBBに寄稿させていただいたときは、新規事業の立ち上げをしていると書かせていただきましたが、 11月のサービス提供開始と共に、古巣であったSansanプロダクト開発部へと戻ってまいりました。 今回は、この新規事業として作っていた機能で Serverless な機能を作ってみたお話をさせていただこうかと思います。 buildersbox.corp-sansan.com今となってはかなりS…

【Techの道も一歩から】第24回「高速かつ省メモリな辞書ライクなライブラリDAWG」

こんにちは。 DSOC R&D グループの高橋寛治です。 Pythonの辞書オブジェクトは取り扱いやすいため、単語とIDの変換テーブルを作ったり、複合語の結合のためにデータ構造を工夫して簡易なトライ木を構築したりと、自分でコーディングすることがあるかと思います。 上記の場合は、ライブラリDAWGを使うことで省メモリかつ高速に、さらにできることが増えるかもしれません。 今回はそんな便利なライブラリの紹介をします。 辞書ライクなライブラリDAWG DAWGはDirected Ac…

【Techの道も一歩から】第23回「pybind11を使ってPythonで利用可能なC++ライブラリを実装する」

こんにちは。 DSOC R&D グループの高橋寛治です。 普段はPython言語によりアルゴリズムの実装を行っています。 スクリプト言語はコンパイルが不要であり、試行錯誤しやすいためです。 しかしながら、実行速度はコンパイル言語に比べて見劣りします。 そこで今回は、高速動作を目的にC++で実装したアルゴリズムをPythonライブラリとして利用する方法について紹介します。 社内で使うアルゴリズムについて計算量が多い処理を実装したところ、Python比で10倍ほど早くなりました。…

【Techの道も一歩から】第22回「AWS SageMakerで任意のコンテナをデプロイする」

こんにちは。 DSOC R&D グループの高橋寛治です。 最近は、R&DのD側に興味が寄っており、本連載では pytest や WebAPI化といった話が多くなってきました。 さて、つい先日に Amazon Web Services(AWS) が提供するマネージド型の機械学習サービスの一部機能を使って、機械学習を用いた任意のコンテナを推論エンドポイントとしてデプロイしました。 SageMakerのお作法さえ理解すれば便利なものだと感じたため、SageMakerの概略および任意…

【Techの道も一歩から】第21回「setup.pyを書いてpipでインストール可能にしよう」

こんにちは。 DSOC R&D グループの高橋寛治です。 前回の「CircleCI と pytest に入門」でさらっと触れた内容である、Python パッケージを pip 1 でインストール可能にする方法について、もう少し説明します。 pip でインストール可能な状態にすることにより、一行のコマンドでインストールできたり、名前空間を意識した良いコードになったりと、たくさんの利点があります。 何よりインストールが可能であるため、他の人に使ってもらえます! ただ、初めてパッケー…

【Techの道も一歩から】第20回「CircleCIとpytestに入門」

こんにちは。 DSOC R&D グループの高橋寛治です。 アルゴリズムの考案と実装が主業務ですが、最近は少し幅を広げたテストを始めとしたコードの品質管理・運用など継続的インテグレーション(CI)に興味を持ち、少し取り組んでいます。 新しくアルゴリズムを実装する際に、CIツールのCircleCIとPythonのテストツールpytestを導入してみました。 今回はその導入方法について簡単に紹介を行います。 今回の目標 GitHubにプッシュした際に、次の項目を実現することを目標と…

【Techの道も一歩から】第19回「itertoolsを使おう」

こんにちは。 DSOC R&D グループの高橋寛治です。 桜の花びらが散り春の時候を感じる今日このごろ、スマブラだけでなくコーディングの季節もやってきたなと思っております。 意気込んでコーディングを始めたときに、たとえば2階層のリストを1階層に変形したり、条件に沿うものだけをリストから抽出したりする場合に、自分で実装してしまいがちです。 そのようなリストの各要素に対する処理について、高速かつメモリ効率のよい実装である itertools が Python の標準モジュールとし…

【Techの道も一歩から】第18回「アルゴリズムをコンテナ化しWebAPIとして利用可能に」

こんにちは。 DSOC R&D グループの高橋寛治です。 最近はスマブラSPの研究活動に熱心に取り組んでおり、少しずつ成果が出始めておりホッとしているところです。 さて、研究開発活動では何かしらのモデルやアルゴリズムを開発し、それを共有します。 共有する際に、環境の違いにより動作しなかったり、そもそもの利用方法がわからなかったりします。 こういった問題に対して、Docker コンテナにより WebAPI として提供することで、環境を問わず、かつ利用方法も明確にする方法について…

© Sansan, Inc.