Innovative Tech: このコーナーでは、テクノロジーの最新研究を紹介するWebメディア「Seamless」を主宰する山下裕毅氏が執筆。新規性の高い科学論文を山下氏がピックアップし、解説する。 香港城市大学などに所属する研究者らが発表した論文「Encoding of tactile information in hand via skin-integrated wireless haptic interface」は、手のひらへの電気刺激で触覚を着用者に与えるVR向け極薄ハプティクスデバイスを提案した研究報告である。 電極が備わったパッチを手のひらに貼り付け、無線で電気を流すことで着用者に対してVRに応じた触覚刺激を提供できる。 触覚を加えたVR体験は臨場感の向上につながり、中でも手への触覚刺激は高い効果が得られる。だが、手の場合だと手袋を装着するなどかさばる仕様のものが多い。没入
きっかけ 以下のツイートで「埼玉埼⽟問題」と康煕部首を知りました。 「埼玉」と「埼⽟」の話。unicodedata.normalize('NFKC', '「埼玉」と「埼⽟」') でいけそう https://t.co/kte0sxDvZT — Haruhiko Okumura (@h_okumura) July 11, 2020 康煕部首とは ⼀⼁⼂⼃⼄⼅⼆⼇⼈⼉⼊⼋⼌⼍⼎⼏⼐⼑⼒⼓⼔⼕⼖⼗⼘⼙⼚⼛⼜⼝⼞⼟⼠⼡⼢⼣⼤⼥⼦⼧⼨⼩⼪⼫⼬⼭⼮⼯⼰⼱⼲⼳⼴⼵⼶⼷⼸⼹⼺⼻⼼⼽⼾⼿⽀⽁⽂⽃⽄⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿⾀⾁⾂⾃⾄⾅⾆⾇⾈⾉⾊⾋⾌⾍⾎⾏⾐⾑⾒⾓⾔⾕⾖⾗⾘⾙⾚⾛⾜⾝⾞⾟⾠⾡⾢⾣⾤⾥⾦⾧⾨⾩⾪⾫⾬⾭⾮⾯⾰⾱⾲⾳⾴⾵⾶⾷⾸⾹⾺⾻⾼⾽⾾⾿⿀⿁⿂⿃⿄⿅⿆⿇⿈⿉⿊⿋⿌⿍⿎⿏⿐⿑⿒⿓⿔⿕ KangXi Radica
この記事はRust 2 Advent Calendar 2020 - Qiitaの6日目の記事です。 AWS re:Invent 2020、初のオンライン開催ですが盛り上がってますねー 毎日ありえなくらいのアップデートが発表されて興奮の日々を送っています。 しかし、さすがクラウドのシェアNo.1のAWS、王者の貫禄というか凄みを感じます。 さて今回はその盛り上がりの勢いを借りて私の大好きなRustを盛り上げたいと思い筆を執りました。RustとLambdaは相性抜群という話を書いてみたいと思います。 RustとLambda まずはRustとLambdaの簡単な紹介です。 Rustは2020年のStack Overflowの調査で 5年連続で開発者から最も愛されているプログラミング言語 になりました。GCを採用しない等の工夫でメモリ効率が高く、豊かな型システムと所有権モデルでメモリ安全性を保証
新年あけましておめでとうございます。モノタロウでエンジニアをしております大西です。本年もよろしくお願いいたします。 本年もMonotaRO Tech Blogでは社内の様々な取り組みを定期的に更新して参りますので、お時間の空いた際にお読み頂けると嬉しく思います。皆様のお役に少しでも立つことができれば幸いです。 今回は、リリースにかかる時間の増加や、リリースに関する作業の属人化を体制変更によって解消した経緯と、大規模な開発体制におけるリリース作業や監視業務でのエラーやアラートの管理方法についてご紹介します。 本記事の初出は、 Software Design2021年12月号「Pythonモダン化計画(第5回)」になります。 過去の連載記事は以下を参照ください。 第1回 Software Design連載 2021年8月号 Python製のレガシー&大規模システムをどうリファクタリングするか
Trivyのv0.17.0をリリースしました。 github.com 長い道のりでしたが、ようやくこれでGoバイナリの脆弱性検知に対応できました。夜中0時ぐらいからリリース作業を初めて気付いたら朝5時でした。 概要 Go言語で書かれたプログラムをビルドすると依存しているモジュールがバイナリに含まれます。現代のソフトウェア開発において利用しているOSSのライブラリが0ということはまれなので、何かしらのOSSライブラリが作成されたバイナリに同梱されます。これらのOSSの古いバージョンには既知の脆弱性が含まれる可能性があります。これを手動で調べて追うのは手間なので最近では脆弱性スキャナを用いて検知するのが普通です。自分が開発したTrivyというOSSの脆弱性スキャナではコンテナイメージやファイルシステム上のGoバイナリに含まれるモジュールを特定し脆弱性を検知します。 Goのバイナリからどうやって
ただし、GPT-4と比較すると安価にはなっていますので、性能比較をしながら良い塩梅を探すとコスト的にメリットがある可能性があります。 また学習のコストですが、以下のように学習データ全体のトークン数 x エポック数という形で費用が掛かるので注意が必要です。 (エポック数は後述するようにパラメータとして指定可能です) For example, a gpt-3.5-turbo fine-tuning job with a training file of 100,000 tokens that is trained for 3 epochs would have an expected cost of $2.40. 公式ページは以下となりますので、併せてご確認ください。 レート制限 fine-tuningのレート制限については、以下に記載があります。 fine-tuningについては以下のように
門脇@satoru_kadowakiです。今月のPython Monthly Topicsでは、Rust製の高速データフレームライブラリ Polars について紹介します。 Polarsとは Pythonでデータ分析に使用される主なライブラリに pandas があります。Polarsはpandasと同様にデータフレームというデータ構造オブジェクトを提供するサードパーティライブラリです。特にpandasを意識して作られており、メインページに「Lightning-fast DataFrame library for Rust and Python」とあるように、Rustによる高速処理を謳っています。 Polarsのリポジトリや関連ドキュメントは以下を参照してください。 Github: https://github.com/pola-rs/polars ユーザーガイド: https://pola
この記事は何 Techカテゴリに含まれてこそいるものの、この記事はあくまで理論の側面でアプローチについて語るメモのようなものです。このアプローチに沿ったプロンプトやプログラムを書いてはいるものの、まだ期待通りの挙動をするとは言い難いです。 なぜ公開したかというと、自分より賢くて素早い誰かが理屈だけを見て代わりにやってくれたりしないか、という期待からです。 ChatGPT Plus(GPT-4 APIではない)とPythonを使います。 今回作ったプロンプト そういう前提を踏まえ、まだ完成していないプロンプトを掲載します。 プロンプト(コードブロック記法の関係で```が``に置換されている) # イントロダクション あなたはCLIを使用中の凄腕エンジニアとして振る舞ってください。 今からゲームをしましょう。 あなたの目の前にとあるtxtファイルがあります。 このtxtファイルに書かれている内
大規模文字セットのUnicodeは世界中のあらゆる文字を収録することを目指して策定されており、「溶解する顔」や「妊娠中の人」といった個性的な絵文字も数多く登録されています。そんなUnicodeに登録されている正体不明の記号「⍼」について、ブリティッシュコロンビア大学でソフトウェアについて学んでいるジョナサン・チャン氏がまとめています。 U+237C ⍼ RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW · Jonathan Chan https://ionathan.ch/2022/04/09/angzarr.html 「⍼」は数学記号用のフォントなどに含まれている記号です。例えば、数式・化学式用フォント「Cambria Math」に含まれる「⍼」を拡大してみるとこんな感じ。カギカッコのような直角と稲妻形の矢印が組み合わさった日常生活では全く目にすることのない
近年の大規模言語モデル(LLM)の出現は、自然言語処理(NLP)においてパラダイムシフトをもたらし、ChatGPTをはじめとする様々な革新的サービスを生み出している。LLMの急速な進化は、NLPの領域を超えて、より広範なデータモダリティへのLLMの適用可能性を探る研究への発展を促している。その中で今回注目したのが、時系列データへのLLMの適用である。例えば、[Gruver+, 2023] では、GPT-3やLLaMA-2などの既存のLLMが、ダウンストリームタスクで教師あり学習した時系列モデルの性能に匹敵するか上回るレベルで、zero-shotで時系列予測ができることを報告しており、大変興味深い。本ブログでは、2024年に公開されたサーベイ論文「Large Language Models for Time Series: A Survey」を参考にLLM for Time Seriesの全
EngineeringHow we use Web Components at GitHubAt GitHub, we pride ourselves on delivering a first-class developer experience. A considerable part of our work is on our front end, which we strive to keep as lightweight, fast,… At GitHub, we pride ourselves on delivering a first-class developer experience. A considerable part of our work is on our front end, which we strive to keep as lightweight, f
業務プログラミングの現場でも採用されるようになってきたGo言語。文法はシンプルで学びやすいという特徴を持っていますが、複雑な要件を実現するには、プログラミング言語が提供する構成要素(文法やライブラリ)をさまざまに組み合わせる必要があります。 本書は、そんなGoを使う上でのポイントを単なる文法詳解ではなく「よりGoらしく書くには」「実用的なアプリケーションを書くには」といった観点から紹介します。 構造体やインタフェースの使い方からJSON、CSVファイル、Excel、固定長ファイルの扱い方、またログやテスト、環境構築など現場に即した幅広いトピックについて、「Goらしいプログラムの書き方」をその背景と共に教えてくれる先輩のような書籍です。 まえがき 1章 「Goらしさ」に触れる 1.1 変数やパッケージ、メソッドなどに名前を付けるには 1.1.1 変数名 1.1.2 パッケージ名 1.1.3
*本記事は STORES Advent Calendar 2023 6日目の記事です こんにちは。セキュリティ本部のsohです。 現在、弊社ではスマホアプリ診断内製化の準備を進めています。 同じようにスマホアプリの脆弱性診断を内製化したい、というニーズがある会社は多く存在しますが、実際のところ、スマホアプリを対象とした脆弱性診断士の確保は困難であり、外部ベンダーの方にすべてお願いせざるを得ないケースも多いかと思います。 また、その情報の少なさから、スマホアプリ診断を実施したいと考えている開発者や脆弱性診断士にとっても、「何をやればいいのか」「何から始めればいいのか」がわからないものである場合は多いかと思います。 そこで、この記事では「スマホアプリ診断って実際何をしているのか」と疑問を持つ方をターゲットとして、一般的なスマホアプリ診断の検証要件や検証方法について解説します。 要件とガイドライ
いろんな記事でよく見かける処理ですが、本件はCDK(Typescript)、Lambda(Python3)という組み合わせで作りました どーも、データアナリティクス事業本部コンサルティングチームのsutoです。 最近仕事が忙しくなると、AWSにて検証で作ったリソースを削除し忘れたことで余計な課金を発生させてしまうことが増えてきました。 自分の個人検証アカウントではAWS Budgetsを使って予算とアラートを設定していましたが、上限近くになってから気づくより毎日通知で気づくほうが良いと思ったので、今回はAWS CDKを使って作ってみました。 ※CDKをTypescriptで書く練習をしたかったという思いもあり、CDKスタックはTypescript、中のLambdaはPythonという個人的趣向に沿った組み合わせとなっています。 作るもの 以下の図のとおりです。 毎日AM9時10分(JST)
※ネタ記事です はじめに 検証する脆弱性 Tips. GPT-3 とは? WAFの実装 環境・必要なもの ソースコード 検証 正常リクエスト XSS GETパラメータ POSTデータ POSTデータ & ヘッダ無し SQL インジェクション GETパラメータ GETパラメータ & ヘッダ無し XXE POSTパラメータ① POSTパラメータ② POSTパラメータ & ヘッダ無し パストラバーサル GETパラメータ GETパラメータ & ヘッダ無し OS コマンドインジェクション GETパラメータ & ヘッダー無し GETパラメータ Log4Shell POSTパラメータ POSTパラメータ & ヘッダ無し POSTパラメータ & ヘッダ無し WordPress のユーザ列挙 ShellShock まとめ はじめに 最先端(?)であるGPT-3を使って 次世代WAF を作っていきます。 以下
PHP 8.1へのアップグレードにまつわるまとめ PHP 8.1へのアップグレードには、mbstringにまつわるマニュアルに記述されない後方互換性のない変更が含まれることがあります。そのことを周知するべく、この記事を書くことにしました。 私てきめんは、PHPカンファレンス 2022にて、「治っていくmbstring 令和時代の文字化け」というタイトルでトークしています。以下スライドも参考にしてください。 Major overhaul of mbstringについて PHP 8.1から、Major overhaul of mbstringと呼ばれる、mbstringの大規模改修の内容が反映されるようになりました。困ったことに、RFC(Request For Comments)やChangelog、マニュアルにない内容で、mbstringを多用するPHPユーザーにとてつもない困惑をもたらすこ
Register now for a full day of community, learning, and all things Visual Studio Code Bracket pair colorization 10,000x faster September 29, 2021 by Henning Dieterichs, @hediet_dev When dealing with deeply nested brackets in Visual Studio Code, it can be hard to figure out which brackets match and which do not. To make this easier, in 2016, a user named CoenraadS developed the awesome Bracket Pair
WebP(ウェッピー)という画像形式をご存知でしょうか? 長い間、webの静止画は大部分がJPEG/GIF/PNGのいずれかでした。WebPはこのすべてを置き換えることができる次世代のフォーマットです。2020年9月リリースのiOS 14がWebPをサポートしたことで、主要なモダンブラウザーの足並みがようやく揃いました。 この記事では、新しい技術の恩恵を最大限に受けつつ、変わり続ける画像形式に対応していくための最適解を探ります。 ※ この記事の初版は2020年10月の公開ですが、各ブラウザーの対応状況等は2022年11月に最新の内容に更新しています。 SafariがWebPをサポート。フォーマット戦争ついに終結か? 2020年現在、webで主流の画像形式はJPEG/GIF/PNGの3つでしょう。 2006年リリースのIE7で透過PNGがサポートされたことで、静止画に関しては「写真のJPEG
はじめに みなさん様々な言語でAPIサーバーを立てて負荷試験を実施したことはありますか。 私自身、業務でPythonのアプリケーションに対して負荷試験を実施した経験があります。 その際にPythonの速度観点の不安定さを目の当たりにしたと同時に、別の言語ではどのような違いが生まれるのだろうか、という疑問を持ちました。 そこで今回は、簡単ではありますがGoとRustとPythonでそれぞれAPIサーバーを立てて負荷試験をしてみます。 負荷試験対象のAPIサーバー 今回は(1) Hello, World!を返すAPI(2) ファイル読み込みAPI(3)1秒待ってから応答するAPIの3つを実装します。 (1)はAPIサーバー自体の応答速度の計測、(2)はメモリを消費する処理が生じた場合のAPIの応答速度の計測、(3)は待ち時間発生している時のAPIの応答速度の計測することが目的です。 (2)につ
Today we’re excited to announce the release of TypeScript 5.0! This release brings many new features, while aiming to make TypeScript smaller, simpler, and faster. We’ve implemented the new decorators standard, added functionality to better support ESM projects in Node and bundlers, provided new ways for library authors to control generic inference, expanded our JSDoc functionality, simplified con
先日騒ぎになっていた CVE-2021-44228 についてのアプリケーション側の対応について記載いたします。 緩和策としてすでに AWS WAF での Rule の Update 等が行われているため、AWS サービスの詳細については別途記事を御覧ください。 Log4jの脆弱性対策としてAWS WAFのマネージドルールに「Log4JRCE」が追加されました ここでは SpringBoot をベースとしたアプリケーションへの影響と対応可否の判断についてどのような調査を行ったかを記載します。 ひとまず結論 Spring 側から見解がすでに出ています。 Log4J2 Vulnerability and Spring Boot 以下抜粋します。 Spring Boot users are only affected by this vulnerability if they have switc
Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su
CX事業本部@大阪の岩田です。 RDS Proxyを利用するとRDS ProxyにプールされたDB接続を複数のDBクライアントで使い回すことができ、限られたDB接続を効率的に利用することが可能になります。しかし複数のDBクライアントが安全にDB接続を共有できない場合、RDSProxyはコネクションプール内のDB接続を特定のDBクライアントに対して固定してしまいます。これが「ピン留め」と呼ばれる現象で、このピン留めが発生するとRDS Proxyを利用するメリットが失われてしまいます。 このブログでは「ピン留め」を回避するための基本的なパラメータ調整についてご紹介します。 環境 今回利用した環境です こちらのブログとほぼ同様の設定にしてクライアントからの同時接続数が実質1に制限されるようにしています。 RDS for PostgreSQL 11.8-R1 インスタンスクラス db.t3.mic
Intro 長いこと作業が行われていた JavaScript の MIME タイプについての作業が完了し、 RFC 9239 として公開された。 これにより、推奨される MIME タイプが text/javascript に統一されることになった。 かつて推奨されていた application/javascript ではなくなった経緯などを踏まえ、解説する。 JavaScript MIME Types HTTP で Response する際に指定する Content-Type は、その内容がなんであるかを Client に Indicate し、適切な処理を促すために使用される。 例えば HTML が text/html であったりするように、 JS も内容はテキストなので text/javascript が自然に思える。 しかし、例えば MS が実装していた JS 互換の JScript
はじめに Println で標準出力してみると以下のように表示されるかと思います。(SHIFT-JIS形式なのでmacでみると文字化けしていますがひとまず置いておきます) 日本では一般的に CSV ファイルは Shift_JIS でエンコードされている事が多いです。Go 言語は内部のエンコーディングが UTF-8 なので、Shift_JIS な CSV ファイルを読み込むと文字化けします。 そこで便利なのが エンコーディングの変換は golang.org/x/text/transform が便利です。このパッケージと、golang.org/x/text/encoding/japanese を使う事で、os.Open で開いたファイルがさも初めから UTF-8 であるかの様に扱う事ができます。 どんな風に扱うか japanese パッケージには japanese.ShiftJIS や jap
jqはJSONを絞り込むツールですが、実はれっきとしたプログラミング言語です。 算術演算子、論理演算子、分岐構文、try・catch、そして関数定義があり、ループは再帰関数で実装します。 単に .foo とか .[0] とかでJSONを辿るだけのツールだと思われている方は、builtin関数の定義を見ていただくと良いかと思います。 selectやmapのように、よく使われる関数でさえ内部実装になっていない (Cで書かれていない) のは面白いですね。 jqのクエリを思ったように書けないという経験から、jqをより深く知るためにGo言語で再実装したのがgojqです。 去年の4月から開発を始め、8月にブログ記事を書きました。 jqのほぼすべての機能を実装しており、pure Goで書かれているのでGo言語のツールに簡単に組み込むことができます。 この記事公開以降も開発を続けています。 --arg,
この記事では約6,000万円(2,800 SOL)の利益をあげた、「NFT高速MINT bot」のソースコードを公開します。 NFTをmintした当時、実際に使用したソースコードです。 また、当時私がどんなことをして利益を上げたのかが分かる内容にもなっています。 botter志望でソースコードを見たいという人だけではなく、NFTの波に乗って利益を上げてみたいけど何をすればいいのかわからない人にもヒントになる...かもしれないので、何らかの形でこの記事を役立ててもらえたら嬉しいです。 注意 筆者はプログラミング歴1年未満の初心者です。 ソースコードには重大な欠陥等が存在する可能性があります。 この記事に掲載された内容によって生じた損害等について、筆者は一切責任を負いません。 何をするbotなのか このbotは、「Aurory」というゲームプロジェクトがNFTを販売開始するタイミングに合わせて
はじめに こんにちは, ホクソエムサポーターのKAZYです。 先日猫カフェデビューをして, 猫アレルギーであることがわかりました🐈。 次はフクロウカフェに挑戦してみようかなと思っています🦉。 ところで皆様, 有価証券報告書は読んでますか? 私は読んでいません。 読めません。 眺めていると眠くなります💤。 私は眠くなるんですが, 有価証券報告書ってテキストマイニングするのに向いているんです。企業の事業や財務情報が詳細に書かれています。 XBRL形式で構造化されています。 数千社分のテキストが手に入ります。 おまけに無料です。 どうです?興味湧いてきませんか? 本記事ではPythonを使って有価証券報告書をテキストマイニングする方法を紹介します。 有価証券報告書をダウンロードするところからご紹介するのでご安心を。 こんな方が見たら役に立つかも 企業分析をプログラミングでやりたいが何してい
技術部の外村(@hokaccha)です。 レシピサービスのフロントエンドを Next.js と GraphQL のシステムに置き換えている話 - クックパッド開発者ブログ という記事を書きましたが、この中で詳しく説明しなかった GraphQL のスキーマやクエリから TypeScript の型定義を自動生成する仕組みについて紹介します。 なお、今回紹介したコードは以下で試せます。 https://github.com/hokaccha/graphql-codegen-example-for-techlife GraphQL Code Generator を使った型生成 GraphQL のスキーマから TypeScript の型を生成するためのライブラリはいくつかあります。 Apollo GraphQL Code Generator などが有名どころです。今回はシンプルさや拡張性を考えて G
あけましておめでとうございます。 今年も細々とながら発信を続けていこうと思いますので、どうかよろしくお願いします。 今回はセキュリティ情報 (公開情報) の集め方について、私がどのようにしているのかご紹介します。 これがベストというわけではなく、このとおりやればいいというわけでもなく、あくまでひとつのケースとしてお考えください。 ※「誰それをフォローするといいよ!」といった個別具体的な情報源の紹介はしません。 最後にご紹介する他のリサーチャの方の中には情報源のリストを公開されている方もいらっしゃるので、ニーズに合いそうならそれらの情報源を利用されるとよいと思います。 なぜ情報収集をするのか どんな情報を集めるか 具体的な情報収集の方法について RSS リーダー Inoreader RSS を配信していないサイトの対策 Twitter TweetDeck 英語について 情報収集の注意点 他の
OpenAIのファインチューニングAPIによる GPT-4 から GPT-3.5 への蒸留を試したのでまとめました。 1. GPT-4 から GPT-3.5 への蒸留「LlamaIndex」で、OpenAIのファインチューニングAPIによる GPT-4 から GPT-3.5 への蒸留のColabが提供されてたので、それをベースに独自データで試してみました。 具体的には、「GPT-4」で学習データを生成し、「GPT-3.5」でファインチューニングすることで、「GPT-3.5」に「GPT-4」相当の知識を習得させます。 We successfully made gpt-3.5-turbo output GPT-4 quality responses in an e2e RAG system 🔥 Stack: automated training dataset creation in @ll
以前少し話題になったLaravelのデバッグモード有効時の脆弱性であるCVE-2021-3129のPoCを読んでいたのですが、思ったより難しくて何でこんなことをしているんだろうと思ったら発見者による解説ブログがありました。読んでみたらバイパスのために思ったより色々していて普通に勉強になったのでメモを残しておきます。CTFerからすると常識な内容かもしれないので、何か間違いや補足があれば指摘をお願いします。 www.ambionics.io 前提知識1 前提知識2 本題 問題点 = によるエラー 日付のデコード ログファイル内の他エントリ バイパス方法 consumedの利用 iconvの利用 パディングの利用 UTF-16のための調整 NULLバイトの回避 最終形 まとめ 前提知識1 上の脆弱性を理解するためにはいくつかの前提知識を必要とするため最初にまとめておきます。 まず、PHPでは外
テクノロジー部門CTO室の笹田(ko1)と遠藤(mame)です。今年の 9 月から STORES 株式会社で Ruby (MRI: Matz Ruby Implementation、いわゆる ruby コマンド) の開発をしています(Rubyのこれからを STORES で作る。Rubyコミッター笹田さん、遠藤さんにCTOがきく「Fun」|STORES People )。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 本日 12/25 に、恒例のクリスマスリリースとして、Ruby 3.3.0 がリリースされました(Ruby 3.3.0 リリース)。クックパッド開発者ブログで連載していたように、今年も STORES Product Blog にて Ruby 3.3 の NEWS.md ファイルの解説をします(ちなみに、STORES Advent Calendar
はじめまして。R&Dチーム所属、20.5卒の伊藤です。 普段の業務では自然言語処理と格闘していることが多いです。 今回は自然言語処理モデルとして有名なBERTをWebAssemblyを使用してフロントエンドで動かしてみた話になります。 最近、自然言語処理ライブラリとして普段お世話になっているHugging Face社のTransformersのTokenizerがRustで実装されていることを知り、それならばWebAssemblyにコンパイルして動かせるのではないかと試したみたのがきっかけです。 Tokenizerのみ動かしても実用性に乏しいため、Tokenizerから得られた結果からBERTを用いた推論をブラウザで動作させるまでを行い、備忘録がでら手順をまとめました。 どなたかの参考になれば幸いです。 8/26追記 本記事内のコードを含むリポジトリを公開しました!Dockerを使用してブ
こんにちは ハタです。 最近 SO_REUSEADDR / SO_REUSEPORT を使ったストリーミング配信サーバの無停止アップデート(Hot Deploy)を実装してみたので紹介したいなと思います ことの経緯 HTTPサーバによる Hot Deploy の仕組み ストリーミング配信サーバへの応用 SO_REUSEADDR/SO_REUSEPORT を使った実装例 Hot Deploy の組み込み Hot Deploy 実装時に気をつけたこと その後 We are hiring! ことの経緯 ミラティブでは以前から何度か紹介したとおり自前の配信基盤設備を持っています。 配信基盤のミドルウェアも内製であり、機能追加やライブラリの更新などがあるたびにミドルウェアのバージョンアップ作業(メンテナンス)も自社で実施しています ストリーミング配信サーバといっても、何か特別な事はなく一般的なHTT
freee人事労務の品質改善を専任で活動している keik です。 freee人事労務ではアプリケーション開発の自動テスト環境として CircleCI を利用しています。すべてのコードの変更は GitHub 上の Pull Request を経由して行われますが、Pull Request のマージ条件の一つとして自動テストをパスすることを求めるようにしています。 つまり、どんな些細な変更であっても、急ぎの変更であっても、リリースするためには基本的には自動テストの結果を待つ必要があります。一方で、コードベースは日々成長しており、それに比例して自動テストの実行時間も長くなっています。 ここに、ゆっくりと、ジレンマが生じはじめます。 品質を高める目的の自動テストだが、実行時間が長いと品質のボトルネックになりうる。 具体的には以下のようなシナリオが考えられます。 些細な改善が億劫になる(自動テスト
概要 Google翻訳APIをPythonで実行するでは、四苦八苦しながらも、Google翻訳APIにより、テキストファイルに書かれた英文を日本語に翻訳するPythonスクリプトを書いた。 元々の動機は論文の翻訳する際に、ちまちまGoogle翻訳にコピペするのが面倒くさいということであった。 そこで今回は、Pythonスクリプトを拡張し、PDFの論文を一気に翻訳するようにしたので共有したい。 そもそもなんで日本語に翻訳して論文を読むの? もちろん、細かい内容は原文を精読する必要がある。そりゃそうだ。 日本語で読む理由はなんといっても、論文の内容を俯瞰的に把握できるということに尽きる。 俯瞰的に把握できることで、以下のメリットがある。 俯瞰的に把握した上で原文を読むことになるため、より早く理解することができる。 俯瞰的に把握できるため、原文を読む前に、自分にとって読む必要がある論文かどうかか
こんにちは! 本記事はVRChatのワールド向けパスワードギミックの紹介・配布記事になります。 まず結論から:要点とギミック配布 従来のパスワードギミックはリッピング(VRChatのデータを不正にダウンロードする行為)によってパスワードが簡単に抜かれてweb上に公開され、誰でも開錠可能になってしまうことが分かりました。 今回その対策としてJWT(公開鍵を利用した検証技術)による新しいパスワードギミックを作成しました。ワールドデータにパスワードを置かないためリッピング耐性があります。従来のパスワードギミックの置き換えとして使用でき、オプションでパスワードの漏洩対策もできます。 こちらで無料配布しています。(MITライセンスで改変・再配布可能です) power-of-tech.booth.pm ※ VRChat公式のモデレートガイドラインの対応についてはマニュアルの序章に記載しています。 ワン
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く