サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
GPT-4o
tech-blog.optim.co.jp
こんにちは、R&Dチームの齋藤(@aznhe21)です。 今回の記事で自分がPlayStationと同い年ということを知りました。 さて、本日12/3(金)にRust 1.57がリリースされました。 この記事ではRust 1.57での変更点を詳しく紹介します。 12/3は初代PlayStationの発売日 ピックアップ 定数文脈でもパニック出来るようになった コレクション型でメモリの確保エラーを捉えられるようになった Cargoのプロファイルを自作出来るようになった 安定化されたAPIのドキュメント [T; N]::as_mut_slice [T; N]::as_slice alloc::collections::TryReserveError alloc::collections::HashMap::try_reserve エラー サンプル alloc::collections::Has
こんにちは、R&Dの宮城です。 将棋の竜王戦が世間を賑わせる中、オプティムでも人知れず将棋AI vs 私の熱闘が繰り広げられていました。 今回の記事では強化学習について簡単に説明した後、次の一手を予測する将棋AIを作成し、作成した将棋AIと実際に戦ってみます。 ※ 作成した将棋AIは強化学習ではなく教師あり学習で訓練されたものです。 強化学習の概要 将棋の補足説明 次の一手を予測するPolicyNetwork作成 入力特徴量 駒の位置を表す特徴 持ち駒の有無を表す特徴 入力特徴量まとめ 出力クラス PolicyNetwork実装 PolicyNetwork訓練 実戦 結果 おわりに ライセンス表記 強化学習の概要 強化学習は機械学習手法の一つです。 教師あり学習: 入力と入力に対する正しい出力(正解データ)が与えられ、出力が正解データに近づくように学習する 教師なし学習: 入力のみが与えら
お久しぶりです、R&Dの加藤です。最近は「A列車で行こう~はじまる観光計画~」をコツコツ進めていますが楽しいですね。Steamでも公開されるそうなのでNintendo Switchを持っていなくてもプレイできますよ。 さて、今回はDeep Learningによる異常検知デモを作成したので説明します。 デモ動画 解説 撮影環境とアノテーション Deep Learningによる異常検知の速度と精度の話 速度改善する方法 Deep Learningとチャンネル モノクロ画像とカラー画像 カラー画像(3ch)を超えた、4chの画像も存在する Deep Learningにおける畳込みとチャンネル 最後に デモ動画 まずはデモ動画を観てください。 回転レーン上のブロックを撮影し、ブロックの位置(Infer image[2])とゲート跡(Infer image[1])を検出する様子です。 youtu.b
R&Dチーム所属の伊藤です。GiNZAについて検索しようとして(地名の)銀座についての結果が出てくると悲しくなります。 今回はチャットボットの作成についてです。前から気になっていたRasaを試してみたので備忘録がてらまとめてみました。 はじめに 準備 ドメインの設定 intents entities slots responses forms actions モデルの設定 language pipeline policies モデルの訓練データ nlu rules stories エンドポイント設定 モデル訓練 チャットボット実行 おわりに はじめに RasaはRasa Technologies GmbHより提供されるオープンソースの対話システム作成フレームワークです。 Pythonで書かれており、自然言語理解のモデル訓練・推論環境や対話管理ツール、データベースやAPIに接続するためのエン
はじめに こんにちは!技術統括本部SREユニットに所属している岡田です。SREでは、ちょっとしたテスト環境としてAmazon Elastic Kubernetes Service (EKS)を使用しております。EC2インスタンス(ワーカーノード)はセルフマネージド型ワーカーノードであり、ネットワークなどの構成管理をTerraformで行っています。低価格なインスタンスタイプで契約をしているのですが、使用できるIPアドレスの最大数に限りがありデプロイできるPod数がかなり少ないという課題を抱えていました。ところが、この制限数を緩和できるというニュースがAWSから出されました。以下に示すEKSの物理構成図の赤枠の部分について構成の改善を行いましたので、その過程と結果を共有できればと思います。 EKSの構成 EKSでは、Kubernetes(K8s)用のAmazon VPC Container
こんにちは、R&Dチームの齋藤(@aznhe21)です。 ワクチンも効いたからと飲みに行ったら酒に飲まれてしまいました。 さて、本日10/22(金)にRust 1.56がリリースされました。 この記事ではRust 1.56での変更点を詳しく紹介します。 10/22はアニメの日 ピックアップ Rust 2021エディションが安定化 クレートがサポートする最小のRustバージョンを明示出来るように 安定化されたAPIのドキュメント std::os::unix::fs::chroot サンプル core::cell::UnsafeCell::raw_get サンプル std::io::BufWriter::into_parts サンプル alloc::vec::Vec::shrink_to サンプル alloc::string::String::shrink_to サンプル std::ffi::
R&D チームの徳田(@dakuton)です。 過去記事にて紹介したLayoutParserがバージョンアップ(v0.3.0以降)により、EfficientDetによるドキュメントレイアウト解析がサポートされたので動かしてみました。 技術解説 EfficientDetとLayoutParserの技術的な説明については、それぞれ過去記事をご確認ください。 tech-blog.optim.co.jp tech-blog.optim.co.jp v0.3.0から追加された機能の1つとして、レイアウト解析(物体検出)のマルチバックエンド利用に対応しています。 前回のLayoutParser記事時点(v0.2.0)だとレイアウト解析は下記1のみサポートでしたが、2021/10/07時点で2,3が追加利用可能になっています。 Detectron2 EfficientDet(effdet) Paddle
こんにちは、R&Dチームの河野(@ps3kono)です。深層学習モデルの開発を担当しております。 今回は、画像分類、画像検査、顔認識や異常検知など様々な分野に利用されている深層距離学習(Deep Metric Learning)について紹介したいと思います。 Deep Metric Learningとは 定番のクラス分類と距離学習によるクラス分類の違い 距離学習の進化 1. 対照的(contrastive)アプローチ サンプル選択(sample selection) 代表的な学習手法 Contrastive loss Triplet loss さらなる改善と進化 対照的アプローチの問題点 2. Softmaxをベースにしたアプローチ 代表的な学習手法 Center loss SphereFace CosFace ArcFace さらなる改善と進化(2019年以降) 推論 深層距離学習の利点
はじめに R&Dチーム所属の伊藤です。相も変わらず自然言語処理と格闘する毎日を送っています。 今回は個人的にとても楽しみにしていたGiNZA v5の新モデルであるja-ginza-electraを使って、前後の文脈を加味した単語ベクトルを求められるようにするまでの手順をまとめました。 はじめに GiNZA v5について セットアップ モデルのロード + 文の解析方法 行いたいこと Contextualな単語ベクトル ELECTRAモデルの出力と単語ベクトルの計算 spaCyのUser hooksの追加 おわりに GiNZA v5について GiNZAはspaCyをベースにしたPythonの日本語向け自然言語処理ライブラリです。 形態素解析をはじめとして、固有表現抽出や品詞タグ付け、構文解析などを行うことが可能です。 このGiNZAですが、2021年8月26日に最新バージョンであるv5が公開さ
自己紹介 はじめまして、今年3月に中途入社しましたAI/IoTサービス開発部のIoTサービス開発ユニットの下村です。現在、OPTiM IoTでフロントエンド開発をしております。 今回は、そのOPTiM IoTで取り入れたNuxt.js + TypeScriptの新規プロジェクト作成についてご紹介致します。 目次 自己紹介 目次 はじめに 新規プロジェクトの作成 ディレクトリ構成を変更する store環境構築 コンポーネントからstoreを呼び出す まとめ はじめに OPTiM IoTプロダクトでは、Nuxt.js及びTypeScriptを初めて触るメンバーがほとんどでしたが、そんな中Nuxt.jsとTypeScriptで開発を進めるに至った経緯についてご説明します。 そもそもNuxt.jsとは、Vue.jsをベースとしたフレームワークです。 Nuxt.jsの特徴の一つとしてあげられる、ペー
こんにちは、R&Dチームの齋藤(@aznhe21)です。 最近はい・らすとのネタが浮かばず苦労しています。センスと丁度良いリリース日をください。 さて、本日9/10(金)にRust 1.55がリリースされました。 この記事ではRust 1.55での変更点を詳しく紹介します。 9/10は黒澤映画「羅生門」がヴェネチア国際映画祭で日本発の金獅子賞を受賞した日 ピックアップ パターンとして「以上」のレンジが使えるようになった 配列をそのまま写像出来るようになった I/O関数から返されるエラーの値が一部変更された 安定化されたAPIのドキュメント core::ops::Bound::cloned サンプル std::string::Drain::as_str サンプル std::io::IntoInnerError::into_error サンプル std::io::IntoInnerError:
R&D チームの奥村(@izariuo440)です。日本で気温が暖かくなると姿勢推定が盛り上がってくるように見えるのは私だけでしょうか?今年の5月に発表された人物姿勢推定モデルの MoveNet v3 をTensorRT でベンチマークしてみました。CPU でもかなり高速推論が可能ですが、CUDA でもっと速く、TensorRT でもっともっと速くなることが確認できました。 MoveNet TFLite モデルを ONNX モデルに変換 ONNX モデルを加工 ベンチマーク結果 まとめ MoveNet MoveNet は高速・軽量・高精度と三拍子揃った人物姿勢推定器です。Lightning/Thunder の二種類があり、前者はより軽量・高速です。詳細は MoveNet.SinglePose Model Card (PDF) や Next-Generation Pose Detection
こんにちは、R&D チームの宮城です。画像分類モデルの開発や精度改善などの業務を担当しています。 最近は将棋観戦にはまっており、藤井聡太先生の対局を見まくっていますが一向に将棋が強くなる気配はありません。 今回の記事ではディープラーニングモデル圧縮手法の一つ、Pruning を PyTorch で簡単に試してみました。 Pruningとは PyTorch で Pruning お試し データセットを用意 モデル作成 ベースとなるモデルを訓練 モデルをPruning 精度評価 Pruning後の有効パラメータ数確認 Pruning後のモデルサイズ確認 評価結果まとめ おわりに Pruningとは Pruningについては下記の記事が大変参考になりました。内容をかいつまんで説明します。 Compress & Optimize Your Deep Neural Network With Pruni
みなさん、こんにちは。OPTiM Storeの開発チームの半田です。 業務内容とはあまり関係ありませんが、学習初期に疑問に思っていたことが今になってやっと理解出来たので、今回文章に纏めてみようと思います。 ことはじめ JavaScriptにおいて、『オブジェクト』という言葉は二重に使用されています。 まず一つ目は、オブジェクト指向ブログラミングの文脈におけるオブジェクト、すなわち属性と手続きをひとかたまりにした実体(インスタンス)のことです。 二つ目は、連想配列です。 前者はどのオブジェクト指向プログラミング言語でも共通して『オブジェクト』と呼ばれていますが、後者を『オブジェクト』と呼ぶのはJavaScript独特のものです。 以下混乱を避けるため、前者を「インスタンス」、後者を「連想配列」と呼びます。 明確な定義が必須であるプログラミングの世界において言葉の二重使用は珍しく、学習開始当初
はじめまして。R&Dチーム所属、20.5卒の伊藤です。 普段の業務では自然言語処理と格闘していることが多いです。 今回は自然言語処理モデルとして有名なBERTをWebAssemblyを使用してフロントエンドで動かしてみた話になります。 最近、自然言語処理ライブラリとして普段お世話になっているHugging Face社のTransformersのTokenizerがRustで実装されていることを知り、それならばWebAssemblyにコンパイルして動かせるのではないかと試したみたのがきっかけです。 Tokenizerのみ動かしても実用性に乏しいため、Tokenizerから得られた結果からBERTを用いた推論をブラウザで動作させるまでを行い、備忘録がでら手順をまとめました。 どなたかの参考になれば幸いです。 8/26追記 本記事内のコードを含むリポジトリを公開しました!Dockerを使用してブ
R&D チームの徳田(@dakuton)です。 過去記事に引き続き、今回もテキスト抽出をさくっといい感じにしようシリーズです。 前回記事 tech-blog.optim.co.jp LayoutParserとは 物体検出を追加利用したドキュメント向けレイアウト解析ツールです。 (GitHub)Layout-Parser/layout-parser (arXiv)LayoutParser: A Unified Toolkit for Deep Learning Based Document Image Analysis 各種OCRのロジックとして物体検出がすでに組み込まれているケースも多数ありますが、それとは別途、大まかなレイアウトに対する物体検出結果を合成し、意味のあるまとまりのテキストで補正抽出することが可能です。 オプションインストール(OCR向け)を含めた場合、LayoutParse
こんにちは、R&Dチームの齋藤(@aznhe21)です。 オリンピックでは日本が金メダルラッシュですね!現地まで見に行けない分テレビ前での応援に力が入ります。 さて、本日、日本時間7/30(金)、Rust 1.54がリリースされました。 この記事ではRust 1.54での変更点を詳しく紹介します。 7/30は映画「モスラ」公開の日 ピックアップ 一部の属性内で値としてマクロを使えるようになった WebAssemblyでSIMDが使えるようになった eBPF向けにビルド出来るようになった 安定化されたAPIのドキュメント BTreeMap::into_keys サンプル BTreeMap::into_values サンプル HashMap::into_keys サンプル HashMap::into_values サンプル arch::wasm32 VecDeque::binary_searc
こんにちは、R&D チームの奥村(@izariuo440)です。 前回の Edge TPU の記事から1年4ヶ月ほど空いてしまいました。その間、Windows 向けの PCIe ドライバのβ版が公開されたり Edge TPU ランタイムが OSS になったり、Python/C++ 向けの API が整理されたり MobileDet が利用可能になったりしました。今回の更新では、コンパイラや修正ツールの更新でより多くのモデルがコンパイルできるようになったり、物体検出の EfficientDet-Lite や単一人物姿勢推定の MoveNet などのモデルが追加されたりしています。この記事では July 2021 Updates | Coral をベースに、意訳・追記をしています。 Edge TPU に関しては、過去記事も参考になるかもしれません。 2019インターン紹介: Edge TPU向
皆様お久しぶりです、医療ユニット開発の山口です。実に半年ぶりの投稿になります。 つい1週間前にコロナのワクチンを打って、3日くらい腕が痛くて上げられなかったです。 (寝ている間に寝ぼけたちびっ子のヒップアタックが腕にダイレクトヒットしたときは本当に痛かった・・・) 今回は GitHub と GitLab における Android プロジェクトでの CI/CD 環境を比較してみました。 各々のざっくりとした概要 GitHub Actions GitHub といえば開発者の皆さんおなじみ、開発プロジェクトの管理ツールでもっとも知られたものの一つです。 GitHub の CI/CD 機能は GitHub Actions *1 と呼ばれます。 2019 年 11 月に正式に公開されたもので、比較的最近できた機能です。 パブリックなリポジトリであれば無料で利用可能です。(Freeアカウントでプライベ
R&Dチーム2年目の葉山です。巣ごもりの影響...はあまり関係なく元からですが、もっぱら自宅で映画ばかり見ています。バイオレンスな映画が好きです。最近は業務でMultiple Object Trackingを扱っており、トラッキング処理の実装に四苦八苦しています。 今回はMultiple Object Trackingの基本的な解説と、アルゴリズムや便利なライブラリを紹介していきたいと思います。 Multiple Object Trackingとは? MOTの手法やライブラリなど MOTベンチマークで顕著な成績を残しているモデルたち FairMOT TransMOT(STGT) その他の手法やライブラリ FastMOT motpy MOTの評価指標 評価指標を測るライブラリ py-motmetricsの使い方 終わりに Multiple Object Trackingとは? Multipl
こんにちは、R&Dチームの齋藤(@aznhe21)です。 今日はオプティムの創立記念パーティーがオンラインで行われます。 オプティムは2000/6/8に設立され、去年は20周年の節目であったにも関わらず生憎の時制で大きく祝えませんでしたが、 今年は準備も万全、盛大にお祝いしたいと思います。 さて、本日、日本時間6/18(金)、Rust 1.53がリリースされました。 この記事ではRust 1.53での変更点を詳しく紹介します。 6/18は京大の前身・京都帝国大学創立の日 ピックアップ 識別子にASCII以外の文字も使えるようになった ORパターンが使えるようになった 配列にIntoIteratorが実装された 安定化されたAPIのドキュメント AtomicBool::fetch_update サンプル AtomicPtr::fetch_update サンプル BTreeMap::retai
R&D チームの徳田(@dakuton)です。 前回記事にてPDFの改行補正に関する記事を書いたあと、前回記事のような日本語文境界判定での利用に特化したBunkaiというライブラリが公開されたので、今回は続編として紹介します。 前回記事 tech-blog.optim.co.jp テストデータ 前回と同様、下記記事のPDFを使用しました。 財務省「ファイナンス」令和3年2月号 の「ポストコロナ時代を形作る、コロナ禍で生まれるDX(デジタルトランスフォーメーション)」 1 メディア掲載情報: 財務省が発行している広報誌「ファイナンス」の令和3年2月号に、当社代表取締役社長 菅谷 俊二の寄稿文が掲載されました。 Poppler(pdftotext)を用いた場合のテキスト抽出結果(冒頭部分のみ記載) $ wget https://www.mof.go.jp/public_relations/fi
こんにちは。R&Dチームの河野です。主な担当業務は機械学習モデルの開発です。 タイから日本に留学し、卒業後日本企業に就職していました。データ分析・機械学習の業務経験が3年程度で、R&Dチーム唯一の女性かつ外国人のメンバーです。 直近の仕事はディープラーニングによるクラス分類モデルの開発を担当しており、今回はモデル精度評価によく使われる評価指標について初心者向け説明させて頂きたいと思います。機械学習モデルの精度改善には課題に適切な評価指標の選択がすごく重要のため、各評価指標の理解が必要になります。分類モデル開発に興味を持っている方・挑戦してみたい方にご参考になれば幸いです。 基本的な用語 ポジティブとネガティブクラス 混合行列 評価指標 正解率(Accuracy) 適合率(Precision) 再現率(Recall) F値(F1-score) しきい値とprecision-recallのトレ
はじめに こんにちは.R&D チームの久保です.LiDAR スキャナ搭載 iPad Pro をいじり始めて 1 年以上が経ちました. ご存知の方も多いと思いますが,iOS/iPadOS 13.4 以降の ARKit/RealityKit では LiDAR スキャナによって 3 次元空間を認識してメッシュとして得ることが可能になりました.LiDAR スキャナ搭載デバイスもつい先日予約開始された最新モデルの iPad Pro を加えると 12.9-inch iPad Pro (第 4 世代及び第 5 世代), 11-inch iPad Pro (第 2 世代及び第 3 世代), iPhone 12 Pro, iPhone 12 Pro Max といった感じでずいぶん増えてきています. 今回の記事では LiDAR スキャナで取得したメッシュの情報を SceneKit で自由にリアルタイム描画する
こんにちはOptimal Bizチームの糸井です。 Optimal Biz、Optimal Biz Telework のWeb側の開発をしています。 私は2021年4月で新卒入社3年目になります。 先輩として新人を指導する側、新人として先輩方に指導される側、双方が相手の気持ちを考慮した接し方ができるようにと思い、 Optimal Bizチームの2・3年目のメンバーと共に心得をまとめてみました。 1. 指導する側 1-1. 質問されやすい雰囲気づくりを心がけましょう 1-2. 知らないことを責めないようにしましょう 1-3. まずは概要を伝え、詳細に・厳密に説明しすぎないことを意識しましょう 1-4. 相手の会話のペースに配慮しましょう 1-5. 分からないことを整理してあげましょう 1-6. 面子やプライドに配慮しましょう 2. 指導される側 2-1. 準備をしたうえで、積極的に質問をしま
TensorRT 歴3年となった R&D チームの奥村(@izariuo440)です。今回は、2021/04/12 に発表された Ampere 世代の各種 GPU に対して TensorRT でその性能を十分に引き出すために必要な知識をまとめておきます。FP16/INT8 をうまく使うと、推論速度が2〜4倍になったりするのでおすすめです。 演算精度 演算精度 FP16/INT8 をサポートしている GPU FP16 の威力 INT8 の威力 TensorRT のバージョン 互換性 さいごに 演算精度 NVIDIA TensorRT は、NVIDIA GPU 上で深層学習モデルを高速に推論するためのプラットフォームです。TensorRT を使うモチベーションについては以下をご覧ください。 TensorRT で物体検出・姿勢推定はどれくらい速くなる? - OPTiM TECH BLOG Ten
R&D チームの徳田(@dakuton)です。 過去何回か、Tech Blog記事にてPDFやOCR、自然言語処理に関する手法を紹介してきましたが、今回もそちらに関連する内容です。 過去記事 tech-blog.optim.co.jp tech-blog.optim.co.jp tech-blog.optim.co.jp やりたいこと PDFからテキストを抽出する際に含まれる、中途半端な位置にある改行を除去することが目的です。 シンプルな方法としては、句点(。)の位置をもとに改行する方法ですが、今回はspaCy(とGiNZA)を併用した場合にどうなるかを試してみることにします。 テストデータ 今回は、下記記事のPDFを使用しました。 財務省「ファイナンス」令和3年2月号 の「ポストコロナ時代を形作る、コロナ禍で生まれるDX(デジタルトランスフォーメーション)」 1 メディア掲載情報: 財務
はじめまして、R&D チームの宮城です。業務では主に画像分類モデルの開発や精度改善を担当しており、現時点(2021年3月)でR&D唯一の文系学部出身です。 趣味はNBA観戦で、ジョージ・ワシントン大学時代の渡邊雄太選手(現トロント・ラプターズ)を生で見たことがあります。自分と同じ人間とは思えないほどスタイルが良くハンサムでした。 今回の記事ではDeep Learningを用いた分類タスクにおいて、順序をもつクラス分類(統計学でいう「順序尺度」によるクラス分類)の誤差をうまく計算できる label distribution learning という手法を紹介します。 誤差を算出する損失関数から順を追って説明していきますので、直接 label distribution learning の項目から読み進めていただいても結構です。 損失関数 損失関数とは cross entropy loss o
こんにちは、R&Dチームの齋藤(@aznhe21)です。書きたい記事がいっぱいあるのに時間が取れません。悲しい。 さて、本日、日本時間3/26(金)、Rust 1.51がリリースされました。 この記事ではRust 1.51での変更点を詳しく紹介します。 3/26は普通選挙法成立の日 ピックアップ ジェネリクスの引数として定数を使えるようになった 配列要素の所有権を奪いつつイテレート出来るようになった featureの新しい解決機構が使えるようになった 安定化されたAPIのドキュメント Arc::decrement_strong_count 安全性 サンプル Arc::increment_strong_count 安全性 サンプル Once::call_once_force サンプル Peekable::next_if_eq サンプル Peekable::next_if サンプル Seek:
次のページ
このページを最初にブックマークしてみませんか?
『OPTiM TECH BLOG』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く