タグ

akasataのブックマーク (5,530)

  • 開発者が知るべきキャッシュ設計でよく遭遇する問題

    はじめに 分散システムの設計および開発において、キャッシュはパフォーマンス向上のための非常に重要な要素です。頻繁にアクセスされるデータをキャッシュすることで、アクセス速度が遅いデータベースへのアクセスを削減し、データへの迅速なアクセスを可能にします。これにより、システムの全体的な効率とパフォーマンスが向上します。 しかし、キャッシュは慎重に設計しないとむしろパフォーマンス上のデメリットになるケースが存在します。 この記事ではよく遭遇するキャッシュ設計の問題とその回避策について解説します。 Cache penetration DBに存在しない値を検索したときに、DBから返された空の結果をキャッシュしない場合に発生するシナリオです。 このシナリオではDBに存在しない値を繰り返し検索することにより、その値がキャッシュされていないため検索ごとにDBへのアクセスが必要になってしまいます。 存在しない

    開発者が知るべきキャッシュ設計でよく遭遇する問題
  • GPTsより精度の高いRAGシステムの構築

    2 松 和高
 株式会社エクスプラザ リードエンジニア
 X: _mkazutaka
 Github: mkazutaka
 18年にバックエンドエンジニアとしてメルカリに入社。そ 後、ミラ ティブ、フリーランスを得て株式会社エクスプラザに所属。フロント エンドからバックエンドまで幅広く開発しています。
 Code生成系AIと相性がいい 関数型なんじゃないかと
 思って関数型プログラミングを勉強したりしています。 CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 3 株式会社エクスプラザ (EXPLAZA, Inc.) 会社名 プロダクト 力で、豊かな暮らしをつくる ミッション 代表取締役CEO 高橋一生 代表者 2020年07月03日 設立 東京都港区六木4丁目8-5 和幸ビル 所在地 会社概要

    GPTsより精度の高いRAGシステムの構築
    akasata
    akasata 2023/12/20
  • 生成AI(Stable Diffusion)による生成画像の著作物性を認めた北京インターネット裁判所判決の日本語訳(仮)|ジャック

    2023年12月1日に中国は北京インターネット裁判所が下した判決は、生成AIによる生成画像の著作物性を認めたものとして話題になりました。 Chinse AIGC images copyright infringement first case judgment!Recognition of copyright! Beijing Internet Court made a first-instance judgment on the copyright infringement dispute of AI-generated pictures (AIArt)! pic.twitter.com/uWIYXL5wBQ — 青龍聖者@ひぐらしのなく頃に 鑑賞勢 (@bdsqlsz) November 29, 2023 AIを使って生成した画像をSNSで無断使用されたとして提起された事件で、北京イン

    生成AI(Stable Diffusion)による生成画像の著作物性を認めた北京インターネット裁判所判決の日本語訳(仮)|ジャック
    akasata
    akasata 2023/12/14
  • Gmailの新スパム規制対応全部書く

    [2024年1月10日、19日追記] GmailとYahoo!側のアップデートに合わせていくつか細かい説明を追加しています(大筋は変わっていません)。変更点だけ知りたい方は「追記」でページ内検索してください。 2023年10月3日、Googleはスパム対策強化のため、Gmailへ送るメールが満たすべき条件を2024年2月から厳しくすると発表しました。また米国Yahoo!も、2024年2月 第一四半期[1] から同様の対策を行うと発表しています。端的に言えば、この条件を満たさないと宛先にメールが届かなくなるという影響の大きな変更です。 この記事では、Gmailや米国Yahoo!の規制強化への対応方法を解説します。ただし米国Yahoo!にメールを送る人は多くないと思うので、フォーカスはGmail寄りです。また、メール配信サービス(海外だとSendGridやAmazon SES、国産だとblas

    Gmailの新スパム規制対応全部書く
  • Node.js でメモリ肥大化の原因を特定してみた

    はじめに ユビーでエンジニアをしているおおいしつかさです。 これは、Ubie Engineering Advent Calendar 2023の12月7日の記事になります。 何を書こうかなー、最近はユビーの根幹システムのリアーキテクチャをやっているのでその辺かなーと思ったのですが、まだ仕掛かり中だということと具体な業務に直結しそうな内容なので抽象化して書くのが面倒そうだなーと思ってたところに軽いトピックが飛び込んできたので、そのことを書くことにしました。 ChatGPTはみなさん使われていると思いますが、ぼくも別の業務でOpenAI関連の機能開発に携わっています(ユビーで働くといろんな業務に携われるのがいいところです) 。 その仕事の中で、Node.js環境でメモリ肥大化の事象に遭遇したので、それをどのように発見して改善したかについてお話します。 ぼくは今も昔もRubyが大好きですが、ふだ

    Node.js でメモリ肥大化の原因を特定してみた
  • 【AI動画生成】Animate Anyone 論文解説

    はじめに 11月も終わり、今年も残るところあと一か月となりました。 今年ももう終わるから今年中に成果を上げとけ!と言わんばかりに最近は新技術の登場が多いです。 今回取り上げるのも11月最後の大砲として出てきた新技術、その名もAnimate Anyone Animate Anyoneとはなんぞや 文字で説明するより見たほうが早い 凄くざっくり説明すると、一枚の絵と動きをボーン動画として入力すると、入力した絵がボーン動画と同じ動きをしてくれるよ!というもの。 似たようなものは今までもReferenceOnly × openpose × animatediffとかで出来ましたが、特筆すべきはその精度。 動画生成の大敵であるちらつきは一切なく、入力画像にかなり忠実な動画を生成しています。 さてこの技術、動画生成にずっと注目している自分としてはいますぐにでも弄り倒したいのですが、残念ながらコードとモ

    【AI動画生成】Animate Anyone 論文解説
    akasata
    akasata 2023/12/01
  • 【LCM】512×512pxの画像を0.02秒でリアルタイム画風変換する

    はじめに こんにちは。 一昨日、土日を1日潰してLatent Cosistency Model(LCM)の推論高速化に取り組んでみたところ、そこそこ上手くいき、512×512pxの画像をimage-to-image(img2img)するタスクにおいてRTX3090で26fps、A100で33fpsの推論速度が出るようになりました。 【追記】RTX4090だと45fps出たそうなので、記事のタイトルをわずかに更新しました。記事作成当時はA100で検証していたので、以下ご了承ください。 画像1枚につき0.03秒で処理できていることになるので、ほぼリアルタイムで変換できていると言ってもいいのではないでしょうか。 プログレスバーが1%進むごとに1枚の画像のimg2imgが完了しています。気持ちいいですね。 そこで、この記事では、当高速化に取り組んだとき経験的に(理論的にではない)得られた、LCM推

    【LCM】512×512pxの画像を0.02秒でリアルタイム画風変換する
  • GPTsで恋愛ゲーム作ってみたらすぐ作れた割に時間がトロトロに溶けました|花笠万夜

    花笠監督の「私立GPT北高校」でグランシュライデ2週目キャラ演じてみたんだけど、面白すぎるw いかん、これはハマるw https://t.co/jNaQSFjJoZ pic.twitter.com/dGsmjfYCdr — らけしで (@lakeside529) November 10, 2023 実際に100人ぐらいの人が現時点でプレイしてくれてますね。 ありがたいですね。 GPTsの実際の作り方まずGPT Builderを立ち上げましょう。よくわからん場所にあります。 PCで立ち上げて左上を見ましょう。 Exploreってあるよね。そこ。 そこを押すと、よくわかんないリストの一番上に「+」マークが出るじゃない。それを押すのです。 そうするとこういう画面に来ますわね。 ここで画面左側、Createのタブで普段通りつくりたいGPTをテキストで打っていってもいいんですが。。。これって結局ここ

    GPTsで恋愛ゲーム作ってみたらすぐ作れた割に時間がトロトロに溶けました|花笠万夜
  • Next.js に対する Kent C. Dodds の批判と、Lee Robinson のアンサーの要約

    Next.js に対する Kent C. Dodds の批判と、Lee Robinson のアンサーの要約 はじめに 10 月 26 日に Next.js Conf が開催されましたが、それと前後して Kent C. Dodds (以下 kentcdodds と呼びます) と Lee Robinson (以下 leerob と呼びます) がそれぞれ という記事を公開しました。前者はタイトルの通り、Testing Library の作者であり、Remix の共同創業者の一人でもある開発者兼教育者 kentcdodds が、Next.js を使わない理由について述べたものです。そして後者は、Vercel の VP of Developer Experience である leerob が、主に前者に対する反論を述べたものです。筆者は両方の記事を公開後すぐに面白く読み、そしてどちらにも頷けるところ

    Next.js に対する Kent C. Dodds の批判と、Lee Robinson のアンサーの要約
  • LangChain クイックスタートガイド - Python版|npaka

    Python版の「LangChain」のクイックスタートガイドをまとめました。 ・LangChain v0.0.329 (2023/11/3) 1. LangChain「LangChain」は、「大規模言語モデル」 (LLM : Large language models) と連携するアプリの開発を支援するライブラリです。 「LLM」という革新的テクノロジーによって、開発者は今まで不可能だったことが可能になりました。しかし、「LLM」を単独で使用するだけでは、真に強力なアプリケーションを作成するのに不十分です。真の力は、それを他の 計算 や 知識 と組み合わせた時にもたらされます。「LangChain」は、そのようなアプリケーションの開発をサポートします。 主な用途は、次の3つになります。 ・文書に関する質問応答 ・チャットボット ・エージェント 2. LangChain のモジュール「L

    LangChain クイックスタートガイド - Python版|npaka
    akasata
    akasata 2023/11/04
  • OSSで世界と戦うために - ゆーすけべー日記

    「日人」を理由にしたくないし、「コードは全世界共通語」なのは分かっているけど、自分が日人で日語を母国語としていることはOSSにおいて不利になる。 この2年間のHonoの開発をしてきた経験で分かったことだ。 そこに目を瞑ってはいけないし、自覚することで世界と戦えるかもしれない。今回はそのことについて書こうと思う。 8k 現在、HonoのGitHubスター数は8,000を超えた。 これはとんでもない数字なんだけど、もっと伸びるべきで、早く1万を超えなくはいけない。 npmのダウンロード数は週間「46,000」とこれは相対的に低く、こちらも伸びるべきである。 数字が全てではないが、こうした数字は昨今のOSSにとって「一番の」指標であることは確かだ。 だから戦うことはこの数字を伸ばすことである。 なぜ「戦う」のか なんで「戦う」というおっかない言葉を使い、そして戦わなくてはいけないのか。 ま

    OSSで世界と戦うために - ゆーすけべー日記
  • Create AI Characters and Chat with AI

    akasata
    akasata 2023/10/27
  • Writerside - JetBrains が提供する新しい技術文書作成環境。

    Writerside は JetBrains が提供する新しい技術文書オーサリングおよびパブリッシング環境です。

    Writerside - JetBrains が提供する新しい技術文書作成環境。
  • 大規模言語モデルのFine-tuningによるドメイン知識獲得の検討 - Preferred Networks Research & Development

    記事は、2023年夏季インターンシッププログラムで勤務された竹田悠哉さんによる寄稿です。 はじめに 2023年度のPFN夏季インターンに参加した、東京大学大学院工学系研究科の竹田悠哉と申します。学部では画像生成の研究をしていましたが、技術の社会実装をより俯瞰的に学びたいと思い、現在は技術経営戦略学専攻で教育工学の研究をしています。 インターンでは「機械学習技術の社会実装」をテーマに、LLM(Large Language Model)にドメイン知識を習得させることに取り組みました。様々な設定において、主に英語で学習されたモデルであるLLaMA2に対して日語のデータでのFine-tuningを行い、LoRAやInstruction Tuning、ドメイン知識の習得に関する知見を得ることができたと思います。記事では、そこで利用した技術の紹介と、日語におけるドメイン知識の習得に関する実験、

    大規模言語モデルのFine-tuningによるドメイン知識獲得の検討 - Preferred Networks Research & Development
    akasata
    akasata 2023/10/27
  • オンライン DDL を期待して ALTER 文を実行したら障害になりかけた話 - カミナシ エンジニアブログ

    こんにちは。ソフトウェアエンジニアの坂井 (@manabusakai) です。 カミナシではマルチプロダクト化に向けて、認証・認可の切り出しを進めています。その対応を進める中で、既存テーブルへのカラム追加が必要になりました。 先日、そのリリースのために番データベースにマイグレーションの ALTER 文を実行したところ、クエリが詰まって危うく障害になるところでした(幸いすぐにキャンセルして事なきを得ました)。 原因を調べたところ、オンライン DDL は複数の条件が関係することがわかりました。オンライン DDL に対する知識不足と事前検証の甘さゆえのミスでしたが、結果的には良い学びが得られました。 カミナシのバリューのひとつである「全開オープン」の気持ちで、事の顛末やそこから得た学びを公開します。 なお、今回の話は MySQL 5.7 互換の Amazon Aurora MySQL 2 で確

    オンライン DDL を期待して ALTER 文を実行したら障害になりかけた話 - カミナシ エンジニアブログ
  • 私がthrowを使わない理由

    この記事について JavaScriptではthrow文という文を使うことで例外を投げることができます。 このthrow文ですが、私はレビューなどで例外を投げないでくださいというコメントをするのですがその理由とどのようにコードを変更すればよいのか、ということを書いておこうと思いました。 前提条件 この記事の内容は下記の条件を前提として書き進めていきます。 TypeScriptを採用していること フロントエンド開発の場合 Node.jsを利用したサーバーサイドのコードやCLIツールの開発、各種ライブラリの開発については記事の対象に含まれないことをご了承下さい。 結論 先に結論から書いておくとTypeScriptを利用している場合例外はカスタムエラーを返却するか、Result型を利用するのがよいと思っています。 次の章からサンプルコードを用いながらthrow文を使った実例と、代替え案について記

    私がthrowを使わない理由
  • 設計・ソフトウェアアーキテクチャを学べるGitHubリポジトリ 16選

    はじめに 今回の記事では、設計やソフトウェアアーキテクチャを学べるGitHubリポジトリを16個紹介する。 対象とする読者 設計やソフトウェアアーキテクチャに興味関心があるエンジニア GitHubエンジニアリングの情報収集に活用したいエンジニア タイトルで気になった人 Architectural Patterns システムの基的な構成を理解するためのパターンやテンプレートを提供している。これらのパターンを学ぶことで、システムの構造やコンポーネントの関連性、相互作用を理解できる。これが開発者にシステムをより効率的かつ効果的に設計・実装する能力をもたらす。 Design Patterns for Humans 設計パターンを人間が理解しやすい形で説明している。デザインパターンは特定の問題に対して再利用可能なソリューションを提供する。これによって、開発者はより効率的にコードを記述でき、メンテ

    設計・ソフトウェアアーキテクチャを学べるGitHubリポジトリ 16選
  • ServerlessDays Tokyo 2023が最高すぎた! - Qiita

    はじめに 4年ぶりの開催となるServerlessDays Tokyoに参加してきました https://tokyo.serverlessdays.io/ 「もっとうまくやりたい、誰よりも上手にやりたい」 というメッセージとともに開催されたServerlessDays Tokyo 2023ですが、超豪華なスピーカー陣を国内外から集め、ここ数年のServerlessの成熟と未来をしっかりと味わえる濃いイベントです。 1日目がセッション、2日目がワークショップということで、熱力の高いうちに激熱なサービスを素早く学べる構成になっていて、とても充実した内容でした。 所感 4年前のServerless LambdaをはじめとするFaaSをいかに簡単にデプロイ、運用していくかというツール系の話と S3やSQS,SNSなどのFaaS以外のServerlessなサービスの組み合わせでLowOpsな仕組みを

    ServerlessDays Tokyo 2023が最高すぎた! - Qiita
  • Ruby 3.3’s YJIT Runs Shopify’s Production Code 15% Faster

    Ruby 3.2 YJIT is Battle-Tested Shopify deploys YJIT on business-critical services in production, such as Storefront Renderer, the software that powers all online storefronts on Shopify’s platform, and Shopify’s Monolith. As of the Ruby 3.2 release, YJIT sped up our Storefront Renderer by 10% on average. Storefront Renderer is a complex application. Your more reasonable-sized app might get better/w

    Ruby 3.3’s YJIT Runs Shopify’s Production Code 15% Faster
    akasata
    akasata 2023/09/20
  • x86-64機械語入門

    この記事はx86-64の機械語を書けるようになるためのガイドとなることを目指します。読者はアセンブリー言語について既にある程度知っていることを想定します。 情報源 x86-64の機械語のオフィシャルなガイドはIntelのSoftware Developer ManualまたはAMDAMD64 Architecture Programmer's Manualです。 Intel SDM: Intel® 64 and IA-32 Architectures Software Developer Manuals AMD64 Architecture Programmer's Manual, Volumes 1-5 このほか、Cから呼び出される関数を定義したり、Cの関数を呼び出すためには、呼び出し規約の知識も必要です。使用される呼び出し規約はOSに依存し、Unix系では主にSystem V ABI

    x86-64機械語入門
    akasata
    akasata 2023/09/19