Zeals TECH BLOG

チャットボットでネットにおもてなし革命を起こす、チャットコマース『Zeals』を開発する株式会社Zealsの技術やエンジニア文化について発信します。

NTCIR-15 Dialogue Evaluation Task DialEval-1

f:id:tmjiang:20200914125203p:plain

A brief introduction and a simple approach

DialEval-1 consists of two subtasks: Nugget Detection (ND) and Dialogue Quality (DQ). They aim to evaluate customer-helpdesk dialogues automatically. The ND subtask is to classify whether a customer or helpdesk turn is a nugget, where being a nugget means that the turn helps towards problem solving; and the DQ subtask is to assign quality scores to each dialogue in terms of three criteria: task accomplishment, customer satisfaction, and efficiency. The official evaluation results of 18 runs are received from 7 teams. IMTKU (Dept. of Information Management, Tamkang University, Taiwan) and I, on behalf of ZEALS, by utilizing XLM-RoBERTa via HuggingFace Transformers, fastai, and blurr, achieve top-1 or top-2 in terms of various evaluation metrics for both ND and DQ.

続きを読む

pandas高速化ライブラリの検証

f:id:kmiyakezeals:20200807110504j:plain

はじめに

初めまして、ZealsでMLエンジニアをしている三宅とジョーです!
今回のブログではpandas高速化ライブラリを検証し、その有用性を探っていきます!

  • はじめに
  • 目的
  • pandasの非効率性
  • 高速化ライブラリ
    • 1. Modin
    • 2. Dask
    • 3. Vaex
  • 検証
    • 検証を行うマシンのスペック
    • 検証方法
    • プログラムの実行
    • ライブラリ毎の処理時間比較まとめ
    • ライブラリ毎のmemory使用量(MiB)比較まとめ
  • 考察
    • 処理時間について
    • メモリ使用量について
  • 結論
  • 参考記事
続きを読む

Railsアプリケーションの技術的負債3つと、そのリファクタリングについて

はじめに

​ こんにちは!ZealsでRailsエンジニアをしている鈴木です。
みなさんは定期的に技術的負債の返済をしていますか?
今回は我々が日頃リファクタリングによって負債を返済する活動の中で得た気づきについてご紹介したいと思います。

  • はじめに
  • 技術的負債とは
  • 弊社のRailsプロジェクトにおける技術的負債
    • 1. Model内の複雑なクエリ
    • 2. Serviceクラスの統一性
    • 3. システム利用者が使用する用語での実装
  • 最後に
続きを読む

Design Systems & Style Code Refactoring

f:id:ssabcire:20200709101900p:plain

By Vish Nambiar & Kim Hyun-sung

Contents

  • Contents
  • Introduction
  • Our Current Problems
    • 1. DRY - Don't Repeat Yourself
    • 2. Locating implementations of CSS
    • 3. We spend too much time on styling
  • Previous Refactoring Strategies
  • The Connection Between Style and Design
  • Our Solution
    • Design Systems
    • Organising Our Codebase
    • Using Storybook
  • Conclusion
続きを読む

JSON log formatterを使ってPythonのlogが複数行分割される問題を防ぐ

f:id:ssabcire:20200806170224p:plain

こんにちは!Zeals で Python をメインに書いている新卒 1 年目のソフトウェアエンジニアの玉城です。

Python で Cloud Logging(旧: Stackdriver Logging)Datadog にログを出力するとき、複数行に分割されてしまい、元のログイベントとの関連付けが難しくなり困ったことはないでしょうか。

例えば、以下のようにログを書いたときに

logger.info("test\n I want to eat sushi")

Cloud Logging にはこのように表示されてしまうといった感じです。
f:id:ssabcire:20200703103623p:plain

これを JSON フォーマットにすることで解決してみましょう。


続きを読む

Trying to Build a Redux Implementation with Web Assembly in Rust

f:id:ssabcire:20200626105439p:plain

Introduction

Hi, I'm Aaron, a frontend engineer at Zeals. At Zeals, we use React for the frontend of our main application, with Redux as our primary method of managing state. While this works just fine for most of what we need our frontend to do, I like to explore other options and how they compare to established solutions.
So today, I thought it would be interesting trying to try to port Redux to web-assembly, and see how this compares to its Javascript counterpart. And when I say "compare", I mean this in the loosest sense.
I'm not familiar on all the latest web-assembly news and technology, so this is simply an opportunity to explore it and share what it was like.

This article somewhat assumes the reader is somewhat familiar with React. I will try not to spend too much time on it as it could be an entire article on its own, but not knowing react should not be a hurdle to understanding the larger implications.
I will spend some time talking about Redux/Rust/Wasm, as it will guide the reader into understanding how I tried to use Wasm, and perhaps why the trade-offs work the way they do.


  • Introduction
    • Web-assembly
    • Rust/Wasm
    • Goal
    • On Redux
  • The code
    • Introduction
    • Generating the Rust/Wasm Library
    • The React-JS project
    • Using the library in the new JS Project
    • Creating the Redux Store
    • The Redux "Store" methods
    • Using the redust "library" in our JS code
  • Result
    • Speed test
    • Why?
  • Conclusion
続きを読む

新卒から見たZealsエンジニア組織について

f:id:dainiizawa:20200316104115p:plain


はじめまして!現在Zealsで内定者インターンをしている玉城です!
私は大学の在学期間中、GoとGCPを使ったWebアプリケーションの作成や時間短縮ツールなどを独学で作成したり、自然言語処理と機械学習を用いた研究を行っていました。Zealsには、利用している技術や提供しているサービス、熱量の高さから、自分がやりたいことを達成できる環境だと思い入社することを決めました。
現在、内定者インターンという形でジョインしてからおよそ3ヶ月ほど経ちましたが、とても凄い環境で圧倒されています。
そこで今回は、新卒から見たZealsの開発組織と環境について書いていきます。
特に、

  • 私がZealsでどのように働いているのか
  • エンジニアが働きやすい環境か
  • 新卒でも主体的に動ける環境があるか

こういった問いを持つ方に、少しでも参考になれば幸いです。

続きを読む