Sansan Builders Blog

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

寛治 の検索結果:

【Techの道も一歩から】第47回「StreamlitのアプリをNginxで複数ホスティングする」

…本部研究開発部の高橋寛治です。 以前に紹介したStreamlitは、非常に便利でよく使っています。 buildersbox.corp-sansan.com Webアプリとしてインターフェイスが提供されるため、ちょっとしたデモを誰かに試してもらうのが容易で重宝しています。 ただ、いつも忘れてしまうのが、Nginxで複数のStreamlitアプリを提供する方法です。 今回は、デモとしてとりあえず動いたらいい状態になるような設定について紹介します。 Nginxの設定 ここからは、U…

【Techの道も一歩から】第46回「CookiecutterでPythonプロジェクトを高速に開始する」

…部 研究開発部の高橋寛治です。 Python でプロジェクトを始める際に、ディレクトリ構成を考えたり、パッケージ方法を考えたり、もしくは何か参考になるものを見つけてコピペしたり、と意外と時間をかけていました。 これをコマンド一つで解決する Cookiecutter および社内での活用事例を紹介します。 Cookiecutterとは Cookiecutter とは、プロジェクトテンプレートからプロジェクトを作成してくれるコマンドラインツールです。 ここでのプロジェクトとは、ディ…

【Techの道も一歩から】第45回「pyppeteerを使いヘッドレスブラウザでログインして情報を取得する」

…&D グループの高橋寛治です。 ログイン後に動的にレンダリングされたページから必要な情報を抽出する、いわゆるスクレイピングを最近行いました。 スクレイピングを行うためにはヘッドレスブラウザ*1の操作が必要です。 pyppeteerを少し踏み込んで使ったため、その備忘録として取り組みを紹介します。 そもそもスクレイピングについては、こちらで書籍の紹介をしていますので、本稿では割愛します。 やりたいことと対象の概要 やりたいことは、あるWebアプリケーション中の所定のページから情…

【Techの道も一歩から】第44回「Prefectでパイプラインを構築してみる」

…&D グループの高橋寛治です。 本記事は Sansan Advent Calendar 2021 - Adventar の初日の記事です*1。 Pythonによるパイプラインツールについて、Prefectというフレームワークが良さそうという話を小耳に挟みました。 第42回の記事と同様にMNISTを題材にパイプラインを作ってみます。 buildersbox.corp-sansan.com Prefect Prefectは、Pythonで書かれたオープンソースのワークフロー管理シ…

【Techの道も一歩から】第43回「競技プログラミングやアルゴリズム練習サイト向けのPythonでの練習環境を整える」

…&D グループの高橋寛治です。 お昼休みに、社内制度Geek Seek Workshops*1を活用し懇親会代補助を受けて、ご飯を食べアルゴリズム勉強会を行っています。 そこでは、競技プログラミングサイトやプログラミングサイトを利用し問題を解いています。 これらのサイトでは、標準入出力で検証が行われます。 オンラインのエディタも用意されているのですが、手元の環境でコードを書き手軽に検証したいですので、環境を整えます。 コードは、GitHubで公開しています。 目標 任意の環境…

【Techの道も一歩から】第42回「Luigiとgokartを試用して比べて特徴を掴む」

…&D グループの高橋寛治です。 最近は、ことあるごとにMLOpsと言っています。 そんなMLOpsの本丸とも言えるパイプラインツールの一つであるgokartを開発された西場さん(@m_nishiba)が部長ということで、使ってみないわけにはいかないgokartを使ってみました*1。 わからないときは、直接聞けます。 Luigiとgokart LuigiはSpotifyが開発しているPythonによるパイプラインパッケージです。 下記の以前の記事でも紹介しましたが、Luigiが…

BERTによる日本語固有表現抽出の精度改善 〜BERT-CRFの紹介〜

…メンターの黒木や高橋寛治をはじめ、多くの研究員の方にご協力いただき、精度改善、プロダクトに反映させることができました。 今後ともプロダクトに貢献できるような精度改善に邁進していきます! 参考文献 [1] Souza, F., Nogueira, R., and Lotufo, R. (2019). Portuguese named entity recognition using bert-crf. arXiv:1909.10649. *1:大規模な学習データセットがあれば、…

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

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

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

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

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

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

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

…&D グループの高橋寛治です。 最近は Google App Engine(App Engine) を用いて WebAPI としてアルゴリズムを提供できるよう開発中です。 App Engine を触ったのは初めてだったため、備忘録として App Engine の概要や環境構築からデプロイまで書きたいと思います。 App Engine の説明や設定の考え方が主となります。 App Engine とは Webアプリケーションの提供のためのフルマネージド型のサーバーレスプラットフォ…

【お知らせ】5/25に「Sansan Technical View」を開催します!

…部 相川 健太ニューノーマル時代のイベント運営への取り組み Eight事業部 齊藤 実新規事業でもマイクロサービスに挑戦する Bill One事業部 加藤 耕太エンジニアリングが支える研究開発 DSOC 研究開発部 高橋 寛治 開催概要 日程 :2021年5月25日(火) 開催時間:19:00〜21:15 会場 :オンライン 参加費 :無料 申込 :以下のConnpassページよりお申し込みくださいsansan.connpass.com みなさまのご参加をお待ちしております!

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

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

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

…&D グループの高橋寛治です。 あるプロジェクトにおいて、 「DB からデータを取得し整形した結果を出力する」という一連の処理をパイプラインパッケージである Luigi を用いて行いました。 ワークフローの監視や記述が簡単に記述できて良かった*1と感じたため、ここで流れを紹介したいと思います。 Luigi Luigi は Spotify が開発・運用しているオープンソースの Python のワークフローパッケージです。 pip install luigi で簡単に導入できます…

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

…&D グループの高橋寛治です。 2021年2月18日に開催された 第4回 MLOps 勉強会 で登壇の機会をいただき、MLOps に関する取り組みについて発表いたしました。 勉強会の概要と発表内容について簡単に紹介いたします。 MLOps 勉強会 日本の MLOps をより盛んにすべく活動されている団体です。 座談会や勉強会という形式で、MLOps に関する取り組みや最新動向の共有、MLOpsに関するコミュニティ形成を目的として活動されています。 mlops.connpass…

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

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

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

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

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

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

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

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

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

… 研究開発部の 高橋寛治です。 突然ですが、みなさん MLOps を実践されていますか。私は雰囲気しか知りません。 今回はそんな MLOps について学んだ概念と一つのツールである DVC について紹介します。 また、今実際に使っている中で感じている点についても少し紹介できればと思います。 MLOps とは Machine Learning (機械学習)と Operations (運用)を組み合わせた単語です。 ざっくり言うと、「機械学習システムをいい感じに運用する」という概…

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

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

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

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

2020年卒の DSOC 研究開発部 の新卒研修を実施しました!

… Group の高橋寛治が講師となり実施しました。こちらでは、実際の事例も出しつつ求められるエンジニアリングのレベルの目安などについても触れています。全体的には、DSOC 研究開発部 として求められるであろうエンジニアリング技術の基本的なところを触れるような内容になっています。研修資料とその時のコードは下記を参照ください。研修資料&コード 研修終了後 上記の研修終了後には、すぐにこの研修を受講した新卒社員らにアンケートを実施しました。 実施して満足していたのでは、なんのために…

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

…C 研究開発部の高橋寛治です。 いつもお世話になっている PDF ファイルを対象に Python3 で操作します。 PDF ファイルを読み込み、文字を書き込んで、「Hello World!」と世界に挨拶をする方法を紹介します。 PDFファイルの読み込み PDF(Portable Document Format) ファイルとは、文書のファイルフォーマットです。 学生時代に、PDF構造解説という本を読みましたが、座標と内容を持つオブジェクトで構成された形式という程度しかわかりませ…

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

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

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

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

社内LTでの発表を振り返る

…C 研究開発部の高橋寛治です。 LT(Lightning Talk) とは文字通り、さくっと数分で終わる話のことです。 Sansanでは気軽に参加できるエンジニアLT大会がしばしば自主的に行われています。 さらにLT大会は、Geek Seek Workshop*1 として費用補助がでるため、気軽に誘いやすいです。 定番メニューは、フライドチキンやハンバーガーといったファーストフードと、ジュースやビールなどの体に優しい飲料です。 まぁ、手がベトベトになるため、お手拭きが必須とな…

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

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

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

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

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

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

© Sansan, Inc.