Leaner 開発チームの黒曜(@kokuyouwind)です。 RubyKaigi Takeout 2021真っ只中ですね。自分も視聴して実況ツイートを垂れ流しています。 でも今回はフロントエンドの話です。 TL;DR OpenAPI 定義を JSON で記述しておくと、 import schema from 'schema.json' で読み込んで Component などの定義を参照できます。 これを使って msw の Handler を定義すると、簡単に API をモックしてテストできるので便利です。 異常系のハンドラーも同じところで定義しておくと、テスト時のレスポンス差し替えもシンプルになって読みやすくなります。 OpenAPI 定義を msw に使いたい 以前書いたとおり、現在自分が担当しているプロダクトでは OpenAPI を使って API スキーマを定義しています。 このス
トレンドに乗るためにはトレンドを自分の方に捻じ曲げるのが一番いい、ということで、Twitter で日夜 GraphQL, GraphQL と騒いでいる日々であります。 GraphQL の話、スライド上げました https://t.co/hTUvA9Fajt ハンズオンに良さそうなコードや解説記事などもそのうち公開します #tng23— KOBA789 (@KOBA789) 2016年10月22日 先日、tng23 で「GraphQLの話」をしてきました。解説記事とか書くみたいなことをノリで口走ったので、これは伏線回収です。 GraphQL は公式のドキュメントが充実しています。とはいえ、全部英語なので日本にはあまりリーチしてないですね。みなさん英語読んで……。 母語でない言語で書かれた文章を自分のペースで読みながら、そこに書かれている新しい概念を獲得するってのは結構な重労働です。そこで、お
はじめに この記事では、GraphQL のデータソースに microCMS を利用する方法を書いてみます。GraphQL は BFF として利用するケースも多いですが、GraphQL としては、データがどこから来たのかは重要ではありません。データベースや RESTful API、マイクロサービスから取得するといった選択肢があります。今回は microCMS をデータ取得元にすることを想定し、その構成や構築手順を書いていきます。(以下の図の REST API の部分が mciroCMS になるイメージです。) GraphQL is data source agnostic 出典: https://www.apollographql.com/blog/graphql/basics/what-is-graphql-introduction/ なぜ microCMS を使いたいのか microCM
はじめに どうも @convto です。 以前に protobufのwire encodingについて遊んた ことや gobについていろいろ仕様を調べて遊んだ こととかがあったので、いっちょいい感じの比較ができるんではということでやっていきたいと思います。 ついでにgobについては 当時のモチベを調べたりもしたことある のでそのへんもおまけ程度に言及しつつ、こういうときにgobつかえそうだよ〜みたいなのをまとめてみます。 比較するのは json protobuf(wire) gob です。おもな観点はバイナリ効率ですが、それぞれのエンコーディングのメッセージの互換性やら、周辺エコシステムの広がりも含めて評価できればと思います。 ちなみにバイナリの比較についてはせっかくなので稚作の↓をつかってます。そこそこ便利なので用途に合う方はぜひ愛でてあげてください github.com これは Go
こんにちは!クラウドエース株式会社 データソリューション部所属の福家です。 クラウドエースのデータソリューション部は、クラウドエースの IT エンジニアリングを担うシステム開発統括部の中で、特にデータ基盤構築・分析基盤構築からデータ分析までを含む一貫したデータ課題の解決を専門としています。 データソリューション部では活動の一環として、毎週 Google Cloud の新規リリースを調査・発表し、データ領域のプロダクトのキャッチアップをしています。その中でも重要と考えるリリースを本ページ含め記事として公開しています。 今回紹介するリリースは、2023/11/30 にプレビュー段階から一般提供(GA)となった BigQuery の YAML 構成ファイルを使用した SQL Translator についてです。 はじめに BigQuery とは BigQuery はビッグデータの蓄積、分析ができ
Introduction 以前、BurnというRustの機械学習フレームワークで ONNXファイルを変換して使うという記事を書きました。 問題なく変換して推論までできましたが、onnxファイルをそのまま使いたいケースもあります。 というわけで、今回はONNX RuntimeのRustラッパー「ort」を使ってみます。 また、wasmpackを使ってWASMにしてChrome Extensionから使ってみます。 [補足] ONNX? ONNXは、さまざまな機械学習フレームワーク間で使用できる共通フォーマットです。 これを使うことにより、PytorchでトレーニングしたモデルをTensorFlowで使う みたいなことが容易にできます。 ort? ortは、ONNXランタイム用のRustバインディングです。 ここで紹介されていますが、ortとONNX Runtimeを併用することで、 さまざま
最近久々に近所のお祭りに行ってきました、屋台の食べ物ではりんご飴が好きな菅野です。 皆さん、普段APIのテストはどのように行っておりますか? 最近は、APIのテスト自動化を行えるようなツールやサービスも増えてきているように思いますが、当社では、OSSのテスティングフレームワークである「Karate」を用いることが多いです。 比較的簡単な構文で直感的にAPIのテストができる点がよいと思います。 しかし、いかに簡単な方法でAPIのテストが記述できるからといっても、APIの数が多いとテストを作成するのは一苦労です。 今回は、そんなKarateのテストスクリプトをChatGPTを活用して作成してみようと思います。 まず、REST-APIの仕様を定義する場合、OpenAPIを利用することが多いのではないか、と思います。 ChatGPTの開発元である「OpenAI」ではないです。自分も書いていて、紛ら
Kubernetes マニフェストを書くとき、非常にしばしば複数の環境(典型的には production, staging, development)ごとに一部の設定だけ異なる他はほぼ同一の内容のマニフェストを用意しなければならない、ということがあります。このようなとき、繰り返し部分と差分を分ける手段としては複数の選択肢があります。なかでも、kustomize を使って、ベースとなるマニフェストを用意したうえで各環境に応じた差分を適用するためのパッチをあてる、というのがよく選ばれる選択肢でしょうか。この記事では、繰り返しを避けるという目的を達成するのに、kustomize ではなく Google 開発の設定記述用言語 Jsonnet を使うという選択肢もあるということをご紹介します。 Jsonnet には普通のプログラミング言語にはない独特な機能があり、使いこなすにはコツが必要です。この記
安全なGraphQL API開発が出来るって本当? FastAPI+GraphQL+テストで安全なAPI開発PythonテストGraphQL型定義FastAPI はじめに この記事はZOZOテクノロジーズ アドベントカレンダー#2 16日目の記事です! TL;DR REST上でGraphQLを使用するメリットを説明 ORMを使用してPostgresを操作 GraphQLで用いられるスキーマ、ミューテーション、クエリについて説明 Grapheneを使用してGraphQLをFastAPI上で使えるようにする Grapheneとpytestを使用してGraphQL APIをテストする なぜREST上でGraphQLを使用するか RESTは、WebAPIを構築するためのデファクトスタンダードです。CRUD操作ごとに複数のエンドポイント(GET、POST、PUT、DELETE)を設計します。これらの
Twitter芸人名@cocomoffです. この記事はJulia Advent Calendar 2021の18日目の記事です.15日目にはTuring.jlを使ったネタで書いたのですが,普段自分でちょっとしたプログラムを書くためにもJuliaを使っていることがあるので,今日はだいぶ前に自分で書いたJuliaプログラムに関する記事です. OpenStreetMapについて 概要 名前ぐらいは聞いたことがある人も多いかもしれないですが,https://www.openstreetmap.org/ で公開されている地図情報です(?). OpenStreetMapは、道路、通路、カフェ、鉄道駅など、世界中にあるすべてのものに関するデータを提供・メンテナンスしているマッパーのコミュニティによって構築されました。 ライブラリ OpenStreetMapを扱うライブラリやソフトウェアはいろいろありま
FastAPIなどのフレームワークと組み合わせて使われることが多い印象のPydanticですが、それ単体でdataclassの高機能版として使えますよ、という紹介です。 Pydanticとは Pythonでおそらく最も使われているバリデーションのためのライブラリです。型アノテーションを用いてバリデーションやシリアライズを行なってくれます。 最初のモデル まずは概観です。 BaseModelを継承させたクラスに、dataclassのように型アノテーション付きでフィールドを記述していけば、インスタンス化時に動的に型チェックを行なってくれるようになります。(invalid_userは、nameにstrではなくintの値をセットしようとして、バリデーションエラーとなってます。) # https://docs.pydantic.dev/latest/より抜粋 from pydantic import
はじめに こんにちは。イノベーションセンターテクノロジー部門の齋藤と申します。普段はコンピュータビジョンの技術開発やAI/MLシステムの検証に取り組んでいます。今回は、モバイル向けの推論フレームワークのncnnに触れてみたので、その結果について書いて行きます。 ncnnとは ncnn1とは、モバイル向けの推論フレームワークでAndroidとiOSにどちらも対応しています。Pytorchの場合モデルは、pthの形式で1つのファイルで構成されています。ncnnの場合モデルは、param(モデル構造)とbin(重み)ファイルに分割されています。 自身のncnnを使用するモチベーションは、ncnnのデータフォーマットにあります。モバイルで使用するフレームワークにTensorFlow Lite2がありますが、他のフレームワークからモデルを変換するためにNCHW形式からNHWC形式に変換する必要があり
概要 GPU付きPCでモデルのTrainingを行いpredictはGPUなし(つまりCPUのみ)のPCで行う運用を想定する。 そのときのXGBoostモデルの保存方法について備忘録を残す。 実施時期: 2022年9月 Python: conda 3.8.13 XGBoost: py-xgboost, py-xgboost-gpu 1.6.1 問題 XGBoostはLightGBMに比べTrainingが遅いことは有名だ。GPUを使えばCPUよりも体感で4~5倍高速になり十分な速さだが、どのPCにもGPUが乗っているわけではない。 しかしCPUであってもPredictはLightGBMより速いのでdeployを考えるとどうしてもXGBoostを使いたくなる。老舗なため情報が豊富なこともありがたい。 ただモデル保存時、いつもの便利なpickleで保存してしまうと運用時に困ったことになってしま
サイバーエージェント AI Lab の Human Computer Interaction Team に所属している兵頭です。今回は私が半年ほど蓄積したONNXのチューニングテクニックを全てブログに残したいと思います。皆さんが既にご存知であろう基本的なことから、かなりトリッキーなチューニングまで幅広くご紹介したいと思います。長文になりますがご容赦願います。今回は応用編2です。 8. 各種トリック PyTorchやTensorFlowを経由して生成されたONNXから他のフレームワークへモデルを転用する場合に有効な様々なトリック、ワークアラウンドをご紹介します。あまり真新しい知見ではありませんが、以下でご紹介するようなトリックが記事としてまとまっているものはあまり見かけませんのでご参考になれば幸いです。エンジニアよりもリサーチャーの方々に是非読んでいただきたい内容です。ほとんどの内容が地味で
Chief Research Officerの西鳥羽 (Jiro Nishitoba (@jnishi) | Twitter) です。 今回はHugging Face TransformersのモデルのONNX runtimeで実行を試してみました。それにより特にCUDAでの実行では2.4倍近い高速化が行えました。 Hugging Face TransformersのモデルのONNX形式への変換方法から、ONNX runtimeでの実行も含めて紹介したいと思います。 ONNXとは ONNX形式への変換 ONNX形式に変換したモデルを用いて推論する ONNX形式のモデルからGPUでの推論 実験 まとめ ONNXとは ONNX とは、機械学習のモデルを表現するOpenなフォーマットです。機械学習を実現するフレームワークは数多くありますが、ONNX形式での出力をサポートしてるものも多数存在 *1
最近はAIエンジニアを名乗ってるerukitiです。フロントエンドもバックエンドも、LLMを触るあれこれもやってるので、「AIエンジニア」くらいを名乗るとちょうどよさそうだなと思ってます。いずれLLM自体の開発なんかもやってるかもしれません。 LLMプロダクトを開発していると、構造化データを作りたいのに、Anthropic ClaudeのAPIにはJSONモードが無いことや、なんならJSONモードやfunction callingを使っても、データが正しい形式に従ってることは保証しがたい、みたいな自体に遭遇することがあります。 JSONが出力できたとしても、構造化データをうまく吐き出させるのは難しいものです。文字列を出力させたいけど、複数あるときは、配列なのか、それともカンマ区切りなのか?項目がオプショナルの場合はどうするか?項目が存在しない、空文字や 0 や undefined や nu
日記アプリとして Day One を使い始めた。 それ以前も汎用的なノートアプリであるEvernoteとBearで日記をつけていたが、日記は日記に特化したアプリに任せたほうが良さそうだと考え、Day Oneへの移行を決めた。 そこで、過去の日記をDay Oneに取り込みたくなった。公式guideに案内がある。 Importing data to Day One 画像を含めて取り込むには、Day One固有形式のJSONファイルと画像を含むZIPアーカイブが必要らしい。 ↑のdocsページでサンプルのzipをダウンロードできる。 開いてみると、結構に長いJSONが現れる。Day Oneは日記や画像に様々なメタ情報を付与できるようだ。 だが、自分がインポートしたいのは次の情報だけだ。 作成日時 日記の本文(テキスト) 添付画像 この最低限の情報だけを持つDay One のJSONを作ると、以下
やりたいこと ONNX形式のファイルが手元にあって、ちょっとだけ直したい。できるだけ手軽に。 目的は、 Model Zoo等から入手したONNXファイルの、入出力の形式を変更したい(floatじゃなくてbyteにしたいとか) ONNXファイルA の出力がそのまま ONNXファイルB の入力になるので、2つをくっつけたい 等です。 方針 ONNXファイルを、バイナリ形式からテキスト形式に変換する 適当なテキストエディタで編集する テキスト形式からバイナリ形式に戻す バイナリ形式⇔テキスト形式の相互変換方法さえわかればできたも同然です。 準備 Protocol Buffer Compilerのダウンロード バイナリ形式⇔テキスト形式の変換にはProtocol Buffer Compilerを使います。というのも、そもそもONNXファイルはProtocol Bufferを使って定義された形式だか
GraphQLを久しぶりに使うことになったので、復習のために"Production Ready GraphQL"を読んだ。 book.productionreadygraphql.com 著者はGitHubとShopifyでGraphQL APIの開発に携わっていた人なので、信頼感がある。GraphQL APIの開発をしようとした人はだいたいGitHubとかShopifyとかのAPIリファレンスを参考のために読んだことがあると思う。 まず、この本では、GraphQLはクライアントの種類やユースケースの増加に伴う"One-Size-Fits-All"な設計のAPIの問題を解決するものであるとしている。ここで、"One-Size-Fits-All"は、各エンドポイントの機能を充実させて汎用的にしすぎることで、APIを使うのもメンテナンスするのも難しくなった状態のことをいう1。 "One-Siz
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く