並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 49件

新着順 人気順

Optimの検索結果1 - 40 件 / 49件

タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。

Optimに関するエントリは49件あります。 機械学習Rust開発 などが関連タグです。 人気エントリには 『深層距離学習(Deep Metric Learning)の基礎から紹介 - OPTiM TECH BLOG』などがあります。
  • 深層距離学習(Deep Metric Learning)の基礎から紹介 - OPTiM TECH BLOG

    こんにちは、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年以降) 推論 深層距離学習の利点

      深層距離学習(Deep Metric Learning)の基礎から紹介 - OPTiM TECH BLOG
    • 2024年の今、いかにしてVS2005を捨ててVS2015にする戦いは終わったか、そしてなぜCOMとの苦しい戦いが繰り広げられたか ~再入の悪魔~ - OPTiM TECH BLOG

      概要 Optimal BizのWindows AgentはながらくVisual Studio 2005とVisual Studio 2015を併用してビルドする必要がありました。Visual Studio 2015化対応は2012年のVisual Studio 2012化対応からスタートしていましたが、対応範囲の大きさからモジュールごとにVisual Studio 2015化対応を行ってきました。そして2024年リリースのBiz 9.19.0にてVisual Studio 2015化対応は完了を迎えました。 しかし、埋め込まれたバグの修正にはCOMの理解が不可欠であったため、2020年代に突入した今になって私達はこれまで正面戦争を避けてきたCOMを0から学び直す必要がありました。そしてATLの不思議な挙動やSTAにおける再入との戦いを乗り越え、無事にリリースされました。 はじめに Opti

        2024年の今、いかにしてVS2005を捨ててVS2015にする戦いは終わったか、そしてなぜCOMとの苦しい戦いが繰り広げられたか ~再入の悪魔~ - OPTiM TECH BLOG
      • Rasa+GiNZAによるお手軽チャットボット作成 - OPTiM TECH BLOG

        R&Dチーム所属の伊藤です。GiNZAについて検索しようとして(地名の)銀座についての結果が出てくると悲しくなります。 今回はチャットボットの作成についてです。前から気になっていたRasaを試してみたので備忘録がてらまとめてみました。 はじめに 準備 ドメインの設定 intents entities slots responses forms actions モデルの設定 language pipeline policies モデルの訓練データ nlu rules stories エンドポイント設定 モデル訓練 チャットボット実行 おわりに はじめに RasaはRasa Technologies GmbHより提供されるオープンソースの対話システム作成フレームワークです。 Pythonで書かれており、自然言語理解のモデル訓練・推論環境や対話管理ツール、データベースやAPIに接続するためのエン

          Rasa+GiNZAによるお手軽チャットボット作成 - OPTiM TECH BLOG
        • Go の JSON 処理が変わる!encoding/json/v2 のテストコードから学ぶ 15 の新常識 - OPTiM TECH BLOG

          こんにちは、DX ビジネス開発部の岡留です。普段は Support & Growth Portalの開発をしています。 本記事は、OPTiM TECH BLOG Advent Calendar 2025 Day 6 および Go Advent Calendar 2025 シリーズ2 Day 6 の記事です! 今回は、Go 1.25 で実験的に追加され 1.26 で本格導入されるかもしれない encoding/json/v2 についての話です。 Go の公式リポジトリには v1 と v2 の動作の違いを確認できる v2_diff_test.go というテスト が用意されており、15 個のテスト関数としてまとめられています。こちらを参考に変更点をみてみたいと思います! 1. 大文字小文字の区別(#14750) 2. omitempty の定義変更(#11939, #22480) 3. stri

            Go の JSON 処理が変わる!encoding/json/v2 のテストコードから学ぶ 15 の新常識 - OPTiM TECH BLOG
          • Rust 1.60を早めに深掘り - OPTiM TECH BLOG

            こんにちは、R&Dチームの齋藤(@aznhe21)です。 新オフィスは広くて快適です。 さて、本日4/8(金)にRust 1.60がリリースされました。 この記事ではRust 1.60での変更点を詳しく紹介します。 4/8は釈迦の誕生を祝う花まつりの日 ピックアップ コンパイル時間を計測できるようになった 機能(features)で名前空間付き・弱依存がサポートされた コード網羅率を計測できるようになった [u8]を文字列としてエスケープできるようになった 安定化されたAPIのドキュメント Arc::new_cyclic パニック サンプル Rc::new_cyclic パニック サンプル slice::EscapeAscii <[u8]>::escape_ascii サンプル u8::escape_ascii サンプル Vec::spare_capacity_mut サンプル Maybe

              Rust 1.60を早めに深掘り - OPTiM TECH BLOG
            • Rust 1.55を早めに深掘り - OPTiM TECH BLOG

              こんにちは、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:

                Rust 1.55を早めに深掘り - OPTiM TECH BLOG
              • Rust 1.58を早めに深掘り - OPTiM TECH BLOG

                こんにちは、R&Dチームの齋藤(@aznhe21)です。 年末年始の進捗はゼロです。 さて、本日1/14(金)にRust 1.58がリリースされました。 この記事ではRust 1.58での変更点を詳しく紹介します。 1/14は探査機ホイヘンス・プローブが土星の衛星タイタンに着陸した日 ピックアップ フォーマット文字列で変数を直接参照できるようになった ビルドと同時にstripできるようになった Windowsでファイル操作時に長いパスを正規化するようになった Windowsでコマンドを実行する際は作業ディレクトリを検索しなくなった 安定化されたAPIのドキュメント Metadata::is_symlink サンプル Path::is_symlink サンプル {integer}::saturating_div サンプル Option::unwrap_unchecked 安全性 サンプル R

                  Rust 1.58を早めに深掘り - OPTiM TECH BLOG
                • Rust 1.59を早めに深掘り - OPTiM TECH BLOG

                  こんにちは、R&Dチームの齋藤(@aznhe21)です。 初めてのオフィス引っ越し体験が目前でちょっとワクワクしています。 さて、本日2/25(金)にRust 1.59がリリースされました。 この記事ではRust 1.59での変更点を詳しく紹介します。 2/25は映画「未知との遭遇」が日本で公開された日 ピックアップ 定数ジェネリクスでデフォルト値を使えるようになった 分割代入ができるようになった インラインアセンブリが使えるようになった イテレータのzipがフリー関数になった Cargo.tomlでstripを指定できるようになった 安定化されたAPIのドキュメント std::thread::available_parallelism 制限 エラー サンプル Result::copied サンプル Result::cloned サンプル ops::ControlFlow::is_brea

                    Rust 1.59を早めに深掘り - OPTiM TECH BLOG
                  • NVIDIA DockerイメージのGPGキー更新に関する備忘録 - OPTiM TECH BLOG

                    R&D チームの徳田(@dakuton)です。 今年のGWあたりにCUDAのGPG更新アナウンス(NVIDIA Technical Blog: Updating the CUDA Linux GPG Repository Key)がありました。記載に従い利用環境の反映作業をしてみたところ、特にDockerイメージ向けの反映については記事に触れられていない範囲でのハマリポイントがいくつかあることがわかったため、対策についてまとめておきます。 参考(GitHub issue) NVIDIA/nvidia-docker(Public GPG key error #1631) 影響を受けているプロジェクト例 TensorFlow (Tensorflow docker image has outdated keys #56085) TorchServe (Improvements to docker

                      NVIDIA DockerイメージのGPGキー更新に関する備忘録 - OPTiM TECH BLOG
                    • CLIP+Faiss+Streamlitで画像検索アプリを作成してみる - OPTiM TECH BLOG

                      R&Dチーム所属の伊藤です。気がついたら半年ぶりくらいの投稿になってしまいました。 今回はrinna株式会社より公開された言語画像モデルである日本語対応CLIPを使ってみた話になります。 元々はCLIPとFaissを組み合わせて画像検索のためのツールを作れないかを試していたのですが、どうせだったら可視化までしようと考えてStreamlitを使用したアプリ化も行いました。 今回作成したコードはGithubのリポジトリにありますので、興味がある方は覗いてみてください。 CLIPとは? Faissとは? CLIPとFaissで画像検索 事前準備 画像ベクトルのインデックス作成 インデックスを読み込んで画像検索 Streamlitで画像検索アプリを作成する 最後に CLIPとは? CLIPはOpenAIより提案された、テキストと画像を使用して画像分類モデルです。 CLIPはContrastive

                        CLIP+Faiss+Streamlitで画像検索アプリを作成してみる - OPTiM TECH BLOG
                      • iPadOS でもっとメモリを使いたい!(iPadOS 16.1 対応版) - OPTiM TECH BLOG

                        はじめに 久々の記事投稿となります,R&D ユニットの久保です. OPTiM が開発している OPTIM Geo Scan では iPhone や iPad 上で巨大な点群ファイルを扱うため,メモリ不足によってクラッシュを引き起こすことがないように空間計算量には非常に気を遣って開発しています.OPTiM Geo Scan は LiDAR スキャナを搭載した iPhone や iPad Pro に対応していますが,特に iPad Pro ではメモリの大容量化が進んでいます.どうせならこの大容量なメモリを使いこなしたい!ということで iPadOS 15 における変化,そして 2022/10/25 にリリースされた iPadOS 16.1 における変化をまとめてみました. この記事では Xcode 14.0.1 と iPadOS 16.1 を使用しています. はじめに iPadOS における A

                          iPadOS でもっとメモリを使いたい!(iPadOS 16.1 対応版) - OPTiM TECH BLOG
                        • Rust 1.57を早めに深掘り - OPTiM TECH BLOG

                          こんにちは、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

                            Rust 1.57を早めに深掘り - OPTiM TECH BLOG
                          • GiNZAのja-ginza-electraモデルでELECTRAベースの単語ベクトルを使用できるようにする - OPTiM TECH BLOG

                            はじめに R&Dチーム所属の伊藤です。相も変わらず自然言語処理と格闘する毎日を送っています。 今回は個人的にとても楽しみにしていたGiNZA v5の新モデルであるja-ginza-electraを使って、前後の文脈を加味した単語ベクトルを求められるようにするまでの手順をまとめました。 はじめに GiNZA v5について セットアップ モデルのロード + 文の解析方法 行いたいこと Contextualな単語ベクトル ELECTRAモデルの出力と単語ベクトルの計算 spaCyのUser hooksの追加 おわりに GiNZA v5について GiNZAはspaCyをベースにしたPythonの日本語向け自然言語処理ライブラリです。 形態素解析をはじめとして、固有表現抽出や品詞タグ付け、構文解析などを行うことが可能です。 このGiNZAですが、2021年8月26日に最新バージョンであるv5が公開さ

                              GiNZAのja-ginza-electraモデルでELECTRAベースの単語ベクトルを使用できるようにする - OPTiM TECH BLOG
                            • spaCy固有表現抽出(+Presidio)によるドキュメントの情報漏えいリスクチェック支援 - OPTiM TECH BLOG

                              R&D チームの徳田(@dakuton)です。記事冒頭に書くことが思いつかなかったので先日のGPT記事にあるサンプルを使ってみました。 試してみたところ、Tech Blog記事っぽい出力にはなりました。 入力(Prompt): R&D チームの徳田([@dakuton](https://twitter.com/dakuton))です。 出力: 皆さんおひさしぶりです。遅くなりましたが、11/18(金)に行われましたRuby Machine Learningの勉強会の模様を記事にしました。 サンプルは下記参照 tech-blog.optim.co.jp 背景 本題ですが、目的は本記事タイトルのとおりです。 参考: 個人情報保護委員会が個人情報を漏えい パブリックコメント参加者の氏名や所属先を誤掲載 - ITmedia NEWS 技術要素としては下記と同じような内容です。本記事ではこれをspa

                                spaCy固有表現抽出(+Presidio)によるドキュメントの情報漏えいリスクチェック支援 - OPTiM TECH BLOG
                              • ディープラーニングモデル圧縮手法 Pruning を PyTorch でお試し - OPTiM TECH BLOG

                                こんにちは、R&D チームの宮城です。画像分類モデルの開発や精度改善などの業務を担当しています。 最近は将棋観戦にはまっており、藤井聡太先生の対局を見まくっていますが一向に将棋が強くなる気配はありません。 今回の記事ではディープラーニングモデル圧縮手法の一つ、Pruning を PyTorch で簡単に試してみました。 Pruningとは PyTorch で Pruning お試し データセットを用意 モデル作成 ベースとなるモデルを訓練 モデルをPruning 精度評価 Pruning後の有効パラメータ数確認 Pruning後のモデルサイズ確認 評価結果まとめ おわりに Pruningとは Pruningについては下記の記事が大変参考になりました。内容をかいつまんで説明します。 Compress & Optimize Your Deep Neural Network With Pruni

                                  ディープラーニングモデル圧縮手法 Pruning を PyTorch でお試し - OPTiM TECH BLOG
                                • Go言語でWindows,Linuxの常駐システムを開発する - OPTiM TECH BLOG

                                  こんにちは。AI・IoTサービス開発部の青木です。 弊社サービスの OPTiM IoT の開発チームに所属しており、 連携デバイス/ソリューション の拡充を進めています。 基本的にはLinuxが搭載されたデバイスをメインに開発を行っていますが、組み込みや他のOSの対応などはIoTをやっていく上で必須になってくるので そこで利用していた技術の一つであるWindows,Linuxの常駐システム化について執筆しようかと思います。 目次 目次 システム常駐化の方法 基となるアプリケーションを開発する 常駐システム化するライブラリを利用し、実装を行う main.go の変更 試しに実行 OS毎の挙動を見てみる Macの場合 Windowsの場合 Linux(Ubuntu)の場合 Alpine Linux(Docker)の場合 Appendix. OS毎の個別設定方法について まとめ 謝辞 システム常

                                    Go言語でWindows,Linuxの常駐システムを開発する - OPTiM TECH BLOG
                                  • 社内でデザイン思考ワークショップを通じて得られたもの - OPTiM TECH BLOG

                                    はじめに みなさんこんにちは、はじめましてプロモーション・デザインユニットでマネージャーをしている加藤です。 今回は、なかなか業務で接点のないデザイナーとエンジニアの意見交換やデザインへの興味・関心といったの機会作り目的に実施しているデザイン&開発情報共有会での一幕。 デザイン思考をワークショップ形式で一通り実践してみる!に取り組んだ際の内容を簡単にご紹介します。 きっかけ 良いプロダクトを作る上で正しいプロセスとは?について議論、深堀していく中で「誰に」「何を」届けるかを探るフェーズが重要だと多くのメンバーが考えていました。提供 → 開発 → 設計 → 企画 → 顧客要望と遡り、根幹となる企画フェーズで顧客ニーズを如何に要件化すべきかと考えた際、デザイン思考というプロセスがマッチしていると気付きました。 また、話題にもなっており興味関心がある、面白そう、というニーズからもワークショップ形

                                      社内でデザイン思考ワークショップを通じて得られたもの - OPTiM TECH BLOG
                                    • Instant NeRF の心臓、Multiresolution Hash Encoding をシンプルに実装しつつ2次元画像で試してみる - OPTiM TECH BLOG

                                      こんにちは、プラットフォーム事業部の河内です。最近は新オフィスを堪能しています。 さて、今年の 3 月に NVIDIA から Instant NeRF という手法が発表されました。 blogs.nvidia.co.jp NeRF がどんなものなのか、Instant NeRF が今までの手法と比べ何がすごいのかについては上記の記事でおおまかに掴めるかと思いますが、中身が気になるところです。 NVIDIA の記事中で Tiny CUDA Neural Networks ライブラリを使用とあるのでリポジトリを見てみると、どうやら TensorFlow や PyTorch を利用したものではなく、Instant NeRF の根幹となる手法のためにチューニングされたフレームワークのようです。 github.com リポジトリの README では 2 つの手法とその論文が引用されており、ひとつは "

                                        Instant NeRF の心臓、Multiresolution Hash Encoding をシンプルに実装しつつ2次元画像で試してみる - OPTiM TECH BLOG
                                      • 姿勢推定モデル MoveNet を TensorRT でベンチマーク - OPTiM TECH BLOG

                                        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

                                          姿勢推定モデル MoveNet を TensorRT でベンチマーク - OPTiM TECH BLOG
                                        • Rust 1.56を早めに深掘り - OPTiM TECH BLOG

                                          こんにちは、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::

                                            Rust 1.56を早めに深掘り - OPTiM TECH BLOG
                                          • Android 13 までの通知関連の仕様とその実装方法を理解する - OPTiM TECH BLOG

                                            皆様こんにちは。医療ユニットだった人、現在は産休から育休中になりました山口です。 小さめの赤ちゃんだった我が子は、体型も態度も見事でかくなりました。 さて、過去の記事 にて Android 10 に対応するため着信通知の実装方法について書きました。 あれから約 1 年半、8 月中頃に Android 13 が正式リリースがなされましたが *1、その中でも個人的に気になったのが通知関連の仕様変更が含まれていたことでした。 今回は最新の Android 13 までの通知に関連する新規追加内容や仕様変更を理解しながら、その実装方法を解説していきます。 サンプルアプリ自体は以前の GitHub にて公開していたプロジェクトに追加コミットしていますので、こちらも合わせてご確認いただけると幸いです。 本題 というわけで、早速 build.gradle の targetSDK, compileSDK を

                                              Android 13 までの通知関連の仕様とその実装方法を理解する - OPTiM TECH BLOG
                                            • RubyKaigi 2023 RactorとThread、Ractor local GCについて - OPTiM TECH BLOG

                                              はじめまして、Optimal Biz開発チームの片岡です。 私は業務では主にRubyを使ってWebアプリケーションの開発をしています。 5/11~13に開催されたRubyKaigi 2023 に参加してきました。 私は今回、Ractorに注目して参加していたため、Koichi Sasadaさんの講演 "Ractor" reconsidered を紹介します。 RactorとThread 講演の紹介の前に、RactorとThreadについて確認します。 Threadとは Rubyでは、並行・並列処理を行う仕組みとしてRactor/Thread/Fiber/Processをサポートしています。 例としてThreadを確認します。 Threadは、ネイティブスレッド(カーネルスレッド)を用いて、同時実行を行います。 Ruby 3.2 リファレンスマニュアル Thread ネイティブスレッドを用い

                                                RubyKaigi 2023 RactorとThread、Ractor local GCについて - OPTiM TECH BLOG
                                              • プロダクト不具合がOSS貢献に繋がるまで:Fiberとスレッドローカル変数の落とし穴を乗り越えた技術奮闘記 - OPTiM TECH BLOG

                                                はじめに こんにちは!OPTiM Biz 開発チームの石原です。 本記事は OPTiM TECH BLOG Advent Calendar 2025 Day 5 の記事です。 ある日のSlackでの出来事。 T.K. @T.I. gem 'csv'へのコントリビュートをお願いします。 T.I !? こんなメッセージから、私のOSSコントリビュートへの挑戦が始まりました。 調査の発端は、Rails バージョンアップ作業中に見つかった「英語環境だけ CSV インポートが失敗する」という不可解な不具合。 最初は CSV gem が怪しいと思われていましたが、調査を進めると i18n gem の実装に問題があることが判明。 最終的に i18n gem への PR がマージされ、無事問題が解決しました。 この記事では、その原因究明から OSS への貢献に至るまでの流れをまとめます。 問題の発覚 バー

                                                  プロダクト不具合がOSS貢献に繋がるまで:Fiberとスレッドローカル変数の落とし穴を乗り越えた技術奮闘記 - OPTiM TECH BLOG
                                                • Swiftの非同期処理を比べてみる - OPTiM TECH BLOG

                                                  はじめに それぞれの概説 コールバックによる非同期処理 PromiseKit Combine Swift Concurrency 比較 PromiseKitとCombineの関係 PromiseKitとSwift Concurrencyの関係 CombineとSwift Concurrencyの関係 まとめ 参考にさせていただいた記事など はじめに R&DチームでMOTやiOSアプリ開発を行なっている葉山です(前回のMOT記事はこちら)。 Swiftで非同期処理を行う場合、以前であればコールバックにより処理するか、PromiseKit・HydraといったPromise(Future)パターンを記述できるライブラリによって対応していました。また、iOS13以降であればCombineも選択肢の一つとなります。 しかし、Swift 5.5で Swift Concurrencyが追加され、asyn

                                                    Swiftの非同期処理を比べてみる - OPTiM TECH BLOG
                                                  • EKSのワーカーノードで使用できるPodの制限緩和を行いました - OPTiM TECH BLOG

                                                    はじめに こんにちは!技術統括本部SREユニットに所属している岡田です。SREでは、ちょっとしたテスト環境としてAmazon Elastic Kubernetes Service (EKS)を使用しております。EC2インスタンス(ワーカーノード)はセルフマネージド型ワーカーノードであり、ネットワークなどの構成管理をTerraformで行っています。低価格なインスタンスタイプで契約をしているのですが、使用できるIPアドレスの最大数に限りがありデプロイできるPod数がかなり少ないという課題を抱えていました。ところが、この制限数を緩和できるというニュースがAWSから出されました。以下に示すEKSの物理構成図の赤枠の部分について構成の改善を行いましたので、その過程と結果を共有できればと思います。 EKSの構成 EKSでは、Kubernetes(K8s)用のAmazon VPC Container

                                                      EKSのワーカーノードで使用できるPodの制限緩和を行いました - OPTiM TECH BLOG
                                                    • プロダクト四半期OKRの試み - OPTiM TECH BLOG

                                                      こんにちは、AI・IoTサービス開発部でマネージャーをしている和田です。 今回は、部内で取り組んでいる、プロダクトごとの四半期OKRの試みを紹介します。 背景 OPTiMのプロダクト開発では主に、ビジネス統括本部がいわゆるビジネスサイドを、技術統括本部・サービス開発統括本部が開発・運用を担っています。 私が所属する技術統括本部 AI・IoTサービス開発部では、クラウドAI画像解析サービス「OPTiM AI Camera」、現場データ管理ソリューション「Smart Field」、AIを活用した契約書管理サービス「OPTiM Contract」、クラウド機器管理サービス「OPTiM IoT」、現時点では未発表の新規サービスなど、複数のサービスを開発しています。 そのようなチームを、私は下記のようなチームでありたいという思いで運営しています。 プロダクトを中心に、セールス/企画/開発/運用が同じ

                                                        プロダクト四半期OKRの試み - OPTiM TECH BLOG
                                                      • Laravelで作る、OpenAPIによるAPIリファレンス自動生成 with GitLab CI - OPTiM TECH BLOG

                                                        こんにちは。AI・IoTサービス開発部の青木です。 Laravelの最新バージョンに追いつけていない系エンジニアです。 今回はOpenAPIの導入をLaravelでやっていきたいと思います。 序盤はドキュメントをなぞるような形となってしまいますが、後半はそれらをGitLab CIでPagesに登録し マージされたらAPIリファレンスが自動更新されるような仕組みを作りたいと思います。 利用するOSS laravel.com vyuldashev.github.io 今回メインで利用させて頂くOSSはこちらです。 providersとして登録し、スキーマの定義を行えば自動でスキーマを出力してくれる便利なツールとなります。 導入 vyuldashev.github.io Installation You can install the package via composer: composer

                                                          Laravelで作る、OpenAPIによるAPIリファレンス自動生成 with GitLab CI - OPTiM TECH BLOG
                                                        • Label Studioでお手軽アノテーション生活 - OPTiM TECH BLOG

                                                          R&Dチーム所属の伊藤です。 最近物体検出系の画像アノテーションをする機会があったため色々なアノテーションツールを触っていたのですが、Label Studioが中々便利だったので紹介したいと思います。 今回は物体検出向けのアノテーションを実際に行なった時に詰まった部分を中心に解説していこうかと思います。 はじめに 準備 データの読み込み アノテーション 最後に はじめに Label StudioはHeartex社より提供されるオープンソースのラベリング・アノテーションツールです。 最近のアノテーションツールにありがちなWebアプリ形式のツールであり、基本的にはサーバを立ててブラウザからアクセスすることになると思います(一応REST APIを使用して直接アノテーション結果等を取得することも可能です)。 画像はもちろん、音声・テキスト・時系列データ等の多彩なデータのアノテーションに対応しており

                                                            Label Studioでお手軽アノテーション生活 - OPTiM TECH BLOG
                                                          • PyTorch Metric LearningによるDeep Metric Learningの実践 - OPTiM TECH BLOG

                                                            こんにちは、R&Dチームの河野(@ps3kono)です。 前回は深層距離学習(Deep Metric Learning)の基礎知識とアルゴリズムの進化について紹介しましたが、この記事ではPyTorch Metric Learningという深層距離学習ライブラリを紹介したいと思います。 PyTorch Metric Learningについて Deep Metric Learningの実践:Triplet lossとArcFaceを比較 おわりに 参考資料 PyTorch Metric Learningについて PyTorch Metric Learningはオープンソースライブラリであり(MIT License)、訓練・評価パイプラインに必要なコンポーネント(下図)がモジュール別で実装されたため、柔軟に組み合わせを変えられることで手軽に色々試すことができます。 Miner: サンプル選択(M

                                                              PyTorch Metric LearningによるDeep Metric Learningの実践 - OPTiM TECH BLOG
                                                            • 【CI/CD】GitLabのinclude機能を用いて、マイクロサービスのCI設定ファイルをテンプレート化する - OPTiM TECH BLOG

                                                              はじめに こんにちは、AI・IoTサービス開発部の岩丸です。 早いもので2年目に突入し後輩が出来ました。年齢も無事にインクリメントされましたので自分らしく2年目も頑張っていきたいと思います。 前回はGCPのCloud Run、Cloud BuildでCIOps環境を構築してみた話を執筆しました。もしお時間ある方は合わせてご覧ください。 tech-blog.optim.co.jp 今回はGitLabのinclide機能を用いてCI/CD設定ファイルのテンプレート化を行ったのでご紹介致します。GitLabは優秀な機能が多いのでどんどん活用していきたいです。 目次 はじめに 目次 やりたいこと include機能とは やったこと テンプレートの構成 /Templates/Gradle.gitlab-ci.yml やってみて おわりに やりたいこと マイクロサービス構成で構成されたプロダクトは新機

                                                                【CI/CD】GitLabのinclude機能を用いて、マイクロサービスのCI設定ファイルをテンプレート化する - OPTiM TECH BLOG
                                                              • JWT(Json Web Token)を利用するためのOAuth 2.0拡張仕様での認可をGolangでやってみる - OPTiM TECH BLOG

                                                                こんにちは。AI・IoTサービス開発部の青木です。 最近はWebフレームワークやチームビルディング系をやっていますが、 元々はIoTエンジニアとしてのキャリアを積むべくIoTに関わるプログラミングをメインでやっていました。 今回はOPTiM Cloud IoT OSや、OPTiM IoTのデバイス認証として用いられる JSON Web Token (JWT) Profile for OAuth 2.0 を利用して実際に認証を行ってみたいと思います。 grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer とは datatracker.ietf.org JWTを秘密鍵で署名し認可フローとしてOAuth2.0のAccessTokenを要求します。 秘密鍵を利用して認可ができることから、OPTiM Cloud IoT OSではユーザIDやパス

                                                                  JWT(Json Web Token)を利用するためのOAuth 2.0拡張仕様での認可をGolangでやってみる - OPTiM TECH BLOG
                                                                • OpenAPIのschemasで JSONデータを検証する方法 - OPTiM TECH BLOG

                                                                  はじめに ビジネス統括本部のイチノです。最近は、ChatGPTにシェルスクリプトの書き方を教えてもらっています。 今回は、OpenAPIのschemasで JSONデータを検証する方法のメモです。 検証方法 openapi-schema-validator というライブラリを利用して JSON データがOpenAPIの schemas に合致するかを検証します。 pypi.org サンプルは以下のとおりです。説明用に OpenAPI のドキュメントや JSON データを直接書いています。利用する際は、データの直書きではなくファイル読み込みに修正すると使い勝手が良くなります。 #!/usr/bin/env python3 import json import yaml from openapi_schema_validator import validate from jsonschema.

                                                                    OpenAPIのschemasで JSONデータを検証する方法 - OPTiM TECH BLOG
                                                                  • EfficientDetによるドキュメントレイアウトを意識したOCR解析 - OPTiM TECH BLOG

                                                                    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

                                                                      EfficientDetによるドキュメントレイアウトを意識したOCR解析 - OPTiM TECH BLOG
                                                                    • Kotlin スコープ関数の使い方とその用途を考察する - OPTiM TECH BLOG

                                                                      皆様こんにちは。半年ぶりの投稿になります、医療ユニット開発の山口です。 正しくは医療ユニット「だった」人です。現在産休中により仕事の最前線から離れています。 常時寝不足のデバフがかかっていますがワタシは元気ですヨ。 さて、Kotlin には標準ライブラリに便利なツールが搭載されており、その中でも今回はスコープ関数の紹介とその用途の考察を行います。 定義 Kotlin のスコープ関数 (Scope functions) は、オブジェクトのコンテキスト内でコードブロックを実行することを目的とした高階関数です。*1 標準ライブラリとして定義されており、あるオブジェクトに対して呼び出すと一時的スコープを生成し、そのオブジェクトに名前なしでアクセスすることができます。 let, run, with, apply, also の5つが存在しますが、実際に使うのは let, run, apply, al

                                                                        Kotlin スコープ関数の使い方とその用途を考察する - OPTiM TECH BLOG
                                                                      • インシデント対応訓練をやってみた - OPTiM TECH BLOG

                                                                        はじめに みなさん、こんにちは。 プロモーション・デザインユニット(以下プロモ・デザインU)の竹内・牧山・安田です。 今回はプロモ・デザインUの目標の一つである「プロモーション業務でのNOインシデント対策」をデザインサプリ(社内勉強会)で報告してきました。 プロモ・デザインUの活動について詳しく知りたい方は👉過去の記事をご覧ください! プロモ・デザインUのOKR(目標)の記事はこちら tech-blog.optim.co.jp 社内デザイン勉強会「デザインサプリ💊」の記事はこちら tech-blog.optim.co.jp はじめに プロモーション業務でのNOインシデント対策 ヒヤリハット収集 インシデント発生後の対応フロー インシデント対応訓練の実施 訓練当日の流れ 訓練の振り返り まとめ おわり プロモーション業務でのNOインシデント対策 前述した通り、プロモ・デザインUではWeb

                                                                          インシデント対応訓練をやってみた - OPTiM TECH BLOG
                                                                        • オプティム提供サービスの「早い」「安い」「安心」を目指して(SREチームでの2年間の取り組み紹介) - OPTiM TECH BLOG

                                                                          こんにちは、3月までSREチームのマネージャーをしていた和田です。今回は、私がSREチームを担当した2年間で考えてきたことをご紹介します。 背景 取り組みテーマ Production Ready活動 コスト最適化活動 ふりかえり さいごに 背景 SREチームは2019年度まで、AI・IoTプラットフォームサービス「OPTiM Cloud IoT OS」の運用を担っているチームでした。当初から「SRE」と銘打っていたものの、実際上は案件対応やリリース・インシデント対応などの運用作業に追われる日々で、なかなか改善活動にパワーを割けない状態が続いていました。そこで、改善活動に一定のリソースを割り当て続けるために、2020年度からの挑戦として、インフラ運用チーム(案件対応やプロダクト運用を担う)と、SREチーム(中期的な改善活動に専任で取り組む)とにチームを分けて改善活動に取り組んできました。 イ

                                                                            オプティム提供サービスの「早い」「安い」「安心」を目指して(SREチームでの2年間の取り組み紹介) - OPTiM TECH BLOG
                                                                          • Deep Learningによる異常検知デモ①:回転レーン上のブロックを撮影し、ブロックの位置とゲート跡を検出する - OPTiM TECH BLOG

                                                                            お久しぶりです、R&Dの加藤です。最近は「A列車で行こう~はじまる観光計画~」をコツコツ進めていますが楽しいですね。Steamでも公開されるそうなのでNintendo Switchを持っていなくてもプレイできますよ。 さて、今回はDeep Learningによる異常検知デモを作成したので説明します。 デモ動画 解説 撮影環境とアノテーション Deep Learningによる異常検知の速度と精度の話 速度改善する方法 Deep Learningとチャンネル モノクロ画像とカラー画像 カラー画像(3ch)を超えた、4chの画像も存在する Deep Learningにおける畳込みとチャンネル 最後に デモ動画 まずはデモ動画を観てください。 回転レーン上のブロックを撮影し、ブロックの位置(Infer image[2])とゲート跡(Infer image[1])を検出する様子です。 youtu.b

                                                                              Deep Learningによる異常検知デモ①:回転レーン上のブロックを撮影し、ブロックの位置とゲート跡を検出する - OPTiM TECH BLOG
                                                                            • 13億のパラメータを持つ日本語GPTでFew-shot推論を試してみる - OPTiM TECH BLOG

                                                                              こんにちは、R&Dの伊藤です。「〇〇 is all you need」系の論文が多すぎて何が本当に必要なのか悩みながら機械学習タスクに取り組んだりしています。 今回は先日公開されたrinna社の日本語GPTモデルを使って遊んでみた記事になります。 はじめに 日本語GPTモデルを動かしてみる Few-shotで推論を試す 感情分析 計算 おわりに はじめに GPTは簡単に言えば「超高性能な言語モデル」であり、主に文章生成に利用されることが多いです。 過去にGPT-2がフェイクニュース等を簡単に生成できることによる危険性から小規模モデルしか公開されなかったり、GPT-3が複数の自然言語処理タスクでSOTAに近い記録を出すなど、自然言語処理の分野で期待されているモデルの1つとなります。 今回公開された日本語GPTモデルはなんとパラメータ数が13億にもなるとのことで、GPT-2の最大モデル(15億

                                                                                13億のパラメータを持つ日本語GPTでFew-shot推論を試してみる - OPTiM TECH BLOG
                                                                              • RubyKaigi 2023直前、RubyKaigi 2022 YJITの話題を振り返る - OPTiM TECH BLOG

                                                                                概要 YJITは「Versioning of basic blocks」と「Lazy code generation」をキーコンセプトに据えて設計されていて、古典的なJITコンパイラがメソッドベースでのみ判断するのとは対照的に、Basic Blockのような細かい単位で判断を行う。 YJITがRubyに入ったことで、YJITユーザーはrustcのライフサイクルを気にする必要が出てきた。 はじめに Optimal Biz開発チームの戸舘です。私は業務では主にRubyを使ってWebアプリケーションの開発をしつつ、一方では C++ と COM を用いてWindows Serviceアプリケーションを開発しています。そんなC++erです。 2022年9月8~10日に開催されたRubyKaigi 2022がつい昨日のことのように思う今日このごろですが、まもなくRubyKaigi 2023が松本で5月

                                                                                  RubyKaigi 2023直前、RubyKaigi 2022 YJITの話題を振り返る - OPTiM TECH BLOG
                                                                                • SRE (Site Reliability Engineering)からPE (Platform Engineering)へ - OPTiM TECH BLOG

                                                                                  Platform Engineeringチームの加藤です。PEチームが昨年後半から提供を始めたプラットフォームに1つ目のプロダクトの乗り入れが完了し、PE活動の一つの節目を迎えたため、オプティムにおけるPlatform Engineering活動を紹介します。 PE活動は元SREチームのメンバーが中心となって始めた活動です。そのため SREの振り返り PEチーム発足の経緯 PEの活動 の順で話を進めていきます。 SREの振り返り SREチームは、IoTプラットフォームOPTiM Cloud IoT OSのインフラ開発・運用のメンバーを中心に結成し、2020~2021年度の2年間、オプティムプロダクトの速い・安い・安心を横串で実現することをミッションに活動しました。 SREチームは特定のプロダクトを持たないチームで、 プロダクトを横断的にレビューし 一律に改善する方法を検討し 特定のプロダク

                                                                                    SRE (Site Reliability Engineering)からPE (Platform Engineering)へ - OPTiM TECH BLOG

                                                                                  新着記事