タグ

ブックマーク / zenn.dev (25)

  • RAGを複雑な質問に強くする手法「CoA」について

    記事では、「Chain-of-Abstraction (CoA) Reasoning」についてざっくり理解します。軽めの記事です。 株式会社ナレッジセンスでは普段の業務で、生成AIやRAGシステムを活用したサービスを開発しています。 この記事は何 この記事は、最近聞くようになった「Chain-of-Abstraction (CoA) Reasoning」の論文[1]について、日語で簡単にまとめたものです。 今回も「そもそもRAGとは?」については、知っている前提で進みます。確認する場合は以下の記事もご参考下さい。 題 ざっくりサマリー LLMが外部ツールを使って回答を生成するときの、回答精度を高める手法についての論文です。Metaの研究者らによって2024年1月に提案されました。「Chain-of-Abstraction (CoA)」という手法を使うメリットは、RAGに応用することで

    RAGを複雑な質問に強くする手法「CoA」について
  • JSON をプレビューしながら jq のフィルタを書くことができる「jnv」を試してみる

    ちなみに jq がインストールされている必要はありません。 jnv does not require users to install jq on their system, because it utilizes j9 Rust bindings. https://github.com/ynqa/jnv#installation JSON navigator and interactive filter leveraging jq Usage: jnv [OPTIONS] [INPUT] Examples: - Read from a file: jnv data.json - Read from standard input: cat data.json | jnv Arguments: [INPUT] Optional path to a JSON file. If not prov

    JSON をプレビューしながら jq のフィルタを書くことができる「jnv」を試してみる
    zkzi3254
    zkzi3254 2024/03/27
    ええやん、
  • 『世界一流エンジニアの思考法』を読んでみて

    はじめに みなさん、『世界一流エンジニアの思考法』読みましたか?(唐突) 結構 X(Twitter)で話題になっていたり、周りに読んでいる人も多かったので 年末年始のお休みに読もうと思ったら、あっという間に読了しました。 (電車の中で読んでいたら、同僚から「課題図書です」と連絡がきました。すごいタイミング) 知識の定着という意味でも、読んだことを書き出しておきたいと思います。 ※の要約ではなく、私自身気になった点をピックアップしています。 偉大な習慣を身につけたプログラマになる 書の「はじめに」にて 彼らはなにも全員が常人と比べて著しく頭の回転が速いわけでも、天才的記憶力を持つわけでもない。 主に「思考法」(マインドセット)が高い生産性を形づくっているのだ。 小手先のテクニックでもなければ Tips でもなく、その圧倒的なパフォーマンスは思考法から生まれているという事実。 いわゆる「一

    『世界一流エンジニアの思考法』を読んでみて
    zkzi3254
    zkzi3254 2024/01/02
    試行錯誤は悪というのは納得できんな 試行錯誤≒即悪という文脈じゃないなら良いけど
  • RubyKaigi 2023での発表の「2進数の足し算を計算する正規表現」の解説

    RubyKaigi 2023で「Make Regexp#match much faster」という発表をします、@makenowjust です。この発表では、ReDoS対策のためにRuby 3.2で導入された、正規表現マッチング (Regexp#match) の メモ化による最適化 について解説します。 さて、発表の中に次のようなスライドがあります。 このスライドはRubyの正規表現がいかに強力かを説明するためのもので、例として「2進数の足し算を計算する正規表現」を示しています。 また、このツイートで使っている正規表現も、実はこの正規表現です。 今回の記事では、この「2進数の足し算を計算する正規表現」の解説をしていきたいと思います。 「2進数の足し算を計算する正規表現」 コピペがしやすいように、スライドの画像ではなくテキストのコードで上の正規表現を出しておきます。 RE = /(?<s>[

    RubyKaigi 2023での発表の「2進数の足し算を計算する正規表現」の解説
    zkzi3254
    zkzi3254 2023/05/11
    正規表現警察しようと思ったけど分かった上で正規表現と言ってたのでやめました
  • ChatGPTをぬるぬるにする🐌Server-Sent Eventsの基礎知識

    単方向通信であるということと、HTTP/1.1上で動作しているのが大きな特徴です。 また、HTTP上で動作することから、通信の互換性が高く、セキュリティモデルも使いまわせるので安心です。 どんな用途と相性がいいの? 双方向通信がしたいわけでなければ、相性の幅がとても広いです。 今回の ChatGPT のような、GPT がトークンを生成するごとに送るケースはもちろん、通知の未読件数バッジの更新、ニュース速報の表示など、サーバからイベントを送りたい時ならなんでも使えます。 HTTP/1.1で動くカラクリ SSEはHTTPのレスポンスヘッダにContent-Type: text/event-streamを指定した上で動作します。 SSEが動く流れ クライアントがサーバーに HTTP/1.1 リクエストを送信し、イベントストリームに接続します。 サーバーは、Keep-Alive 接続を使用して、T

    ChatGPTをぬるぬるにする🐌Server-Sent Eventsの基礎知識
  • 技術書は気に入った一節を見つけるだけでいい

    ということで、私の例をいくつか出してみようと思います。 モノリスからマイクロサービスへ マイクロサービス・アーキテクチャの著者による、モノリスからの移行をガイドするような雰囲気のするこのですが、このは第6章「終わり」にから、この一節です: 他人の事例から学ぶべき教訓があるのは事実だが、自分のコンテキストでうまく機能するアプローチを見つけるには、時間をかけなければならない。 これはあらゆるプラクティスに言えることで、私は事あるごとに「スクラムをそのまま導入するのは無駄だ」とか「守破離っていうやつは苦手だ」とか言い続けているんですが、それはつまり、先人のプラクティスは様々な状況(コンテキスト)があるなかで成功した事例であり、コンテキストが異なる現場に持ち込んでもうまく機能するかは未知なのです。なので、そのプラクティスが前提としているコンテキストとソリューションを理解しつつ、自分たちのコンテ

    技術書は気に入った一節を見つけるだけでいい
  • 文化祭で滞在状況記録システムを運用しました

    文化祭からはや 3 ヶ月。ずっと書きたいとは思っていたんですが、すぐ定期試験がやってきたり修学旅行に行ったりしてるうちにズルズル来てしまいました。このまま年を越すわけには行かないので、重い腰を上げて書き上げてしまおうと思います。 文章力が皆無なので読みづらい箇所があったらごめんなさい。質問等ございましたらお気軽にどうぞ! 1. システム概要 感染症対策の一環として、主に各展示の同時滞在者数の抑制を目的として導入したシステムです。 文化祭への来場者全員にリストバンドを配布します。各リストバンドには個別の QR コードがプリントされており、各展示の入室時及び退室時に、展示のスタッフが Web アプリ上でスキャンを行い、来場者の入退室時間を記録します。 主な機能として以下が挙げられます。 同じ時間に同じ教室にいたのがどのリストバンドをつけていた来場者であるかが分かるため、万が一新型コロナウイルス

    文化祭で滞在状況記録システムを運用しました
    zkzi3254
    zkzi3254 2023/01/06
    凄すぎぃ…
  • Rust を ChatGPT だけで勉強する【実験記録】

    C++ 経験者が、ChatGPT との対話だけで Rust を学んでみる実験の記録です。 期待した回答が得られなかった際には、質問文を変えたり、回答を再生成したりしています。 AI の回答には不正確な情報が含まれている可能性もあります。不正確な技術情報が拡散しないよう、AI の回答は画像で掲載しています。

    Rust を ChatGPT だけで勉強する【実験記録】
    zkzi3254
    zkzi3254 2022/12/04
    はぇ〜
  • 正規表現の先読み・後読み

    正規表現の「先読み(lookahead)」「後読み(lookbehind)」について紹介します。 正規表現の「位置へのマッチ」 正規表現は、文字列のパターンマッチに使われます。たとえば [0-9]{4} は数字4つが並ぶ文字列にマッチする表現です。 多くの正規表現は「文字列」にマッチしますが、「文字列」ではなく「位置」にマッチする表現があります。これは、アンカーと呼ばれます。また、長さ0の文字列にマッチすると考えて、ゼロ幅アサーションとも呼ばれます。 アンカーの例として、^(先頭)$(末尾)\b(単語の境界)などがあります。 この例では、cat にはマッチします。一方、category や concat は cat を含みますが前後が単語の境界になっていないためマッチしません。 先読み 先読み(lookahead)は、位置にマッチする記法の一種です。位置の指定に正規表現を使います。(?=

    正規表現の先読み・後読み
    zkzi3254
    zkzi3254 2022/08/23
    先頭方向でも末尾方向でも両方先とも後とも解釈できちゃうからややこしい
  • なぜMACアドレスとIPアドレスは両方必要なのか?

    この記事は,ネットワークの学習の序盤につまずくポイントである 「MACアドレスとIPアドレスってどっちか片方だけじゃだめなの?」「レイヤ2と3って結局何が違うの?」 という疑問について,私なりの回答をまとめた記事です。世に不正確な記事が出回っているように見受けられるので,正確な回答をまとめたく、長文になってしまいました。とはいえ,初学者向けにかなり初歩的なところから書いたつもりですので是非読んでみてください。 この記事について この記事を読むと何が分かるか MACアドレスとIPアドレスの役割の差が分かる レイヤ2(=同一サブネットの通信)とレイヤ3(=サブネット間の通信)の仕組みが分かる ネットワーク設計時にレイヤ2・レイヤ3のいずれで設計すべきか判断できる なお,教科書的な説明ではなく,概念や捉え方の説明となっていますので,試験勉強には役立ちません。実務としてネットワーク設計を行う方の役

    なぜMACアドレスとIPアドレスは両方必要なのか?
    zkzi3254
    zkzi3254 2022/05/07
    記事の存在意義にケチつけるような人間にはなりたくないものだな どんなに当然のことが書いてある記事でも価値はある
  • エンジニアを始めてから便利だったツールまとめ

    概要 エンジニアになってから出会った便利ツール・アプリを備忘録としてまとめました。 ※WEB用ツール多め GUIツール・アプリ デスクトップ上で動作させるやつ。 Authy https://authy.com/ 2FAアプリ。Multi-Deviceという複数端末で使える機能があり、PCでログインする際の2FAをPCのみで完結できるので便利。 Hyper https://hyper.is/ コンソールアプリ。テーマ機能やプラグイン追加で自分の好みに環境を整えやすくて見た目がよい。 設定を.hyper.jsファイルで管理するので、gitにて設定管理ができて便利。 VSCode https://code.visualstudio.com/ 言わずもがなの高機能コードエディター。特に理由がなければ基的にはプログラミングするならこれを使えばいいんじゃないかな。 豊富なプラグインや設定で、Hype

    エンジニアを始めてから便利だったツールまとめ
    zkzi3254
    zkzi3254 2022/01/22
    知らなかったけど便利そうなのがいくつか メモメモ
  • Rust入門

    プログラミング言語Rust入門です.なるべくわかりやすいように解説しました.公式ドキュメントを読んでみたけど,あまりよくわからなかったという人に向いているかもしれません. 誤字や間違いなどのご指摘は以下からコメントをお願いします. https://zenn.dev/mebiusbox/scraps/90bc293a07430d

    Rust入門
  • 中国の "物流シェアリング" サービス利用者が死亡、運送ドライバーが過失致死罪で逮捕された件をまとめてみる

    この記事は何? 2021/3/3(水)、中国公安(警察)の発表により、中国の最新物流テックサービス "貨拉拉(LALAMOVE)" の利用者(配達依頼主)が運送中の車から飛び降り死亡し、もう一方の利用者(運送ドライバー)が過失致死罪で逮捕されたことと、そのあらましが明らかにされました。 事件の全容を読むと、下記のような方に何らかの示唆があるかもしれないなと思ったので、その経緯のまとめを試みています。 想定読者 中国の最新シェアリングサービスに興味のある方 物流業界・引っ越し業界でDXをしようとしている方 ラストワンマイルを解決しようとしている方 〇〇テック(X-Tech)系プロダクトを作ろうとしている方 シェアリングサービスを使っている方or稼いでいる方 中国の物流テックサービス"貨拉拉(LALAMOVE)"とは Lalamove Marketing, CC BY-SA 4.0, via

    中国の "物流シェアリング" サービス利用者が死亡、運送ドライバーが過失致死罪で逮捕された件をまとめてみる
    zkzi3254
    zkzi3254 2021/03/05
    zennってこういうの書いてもいいんだ
  • 現代のオブジェクト指向の class の割れ窓化と宣言的プログラミング

    オブジェクト指向には、カメラがやっとついたころのガラケーのイメージがある - きしだの Hatena の件。基的には同意。ただちょっと切り口が違うので自分の意見を言っておく。ただ、このテーマで何度か書こうとして失敗していて、今回も成功しているとはいえない。 宣言的プログラミングの時代 現代の主流は「宣言的プログラミング」であると思っている。これはリソースの宣言と、その状態遷移の手続きや振る舞いの付与が中心にある。 宣言型プログラミング - Wikipedia その代表的な例がフロントエンドReact と、バックエンドの k8s で、どちらも時系列に基づいた状態の宣言と、フレームワーク側による状態遷移処理、 Reconcillation(調停) が基礎にある。 フロントエンドとバックエンドという両極端な世界で、この変化が起きたのがこの時代を反映したものであると思う。 例えば、jQuer

    現代のオブジェクト指向の class の割れ窓化と宣言的プログラミング
  • AtCoder と Rust で始める!競技プログラミング入門(Rust 版 APG4b)

    競プロAtCoder 青 / CodeForces 青), C / C++Rust ,Arch Linux に関連する記事を書くと思います

    AtCoder と Rust で始める!競技プログラミング入門(Rust 版 APG4b)
  • Rust は何を解決しようとしたのか;メモリとリソースと所有権

    みなさん、 Rust 書いてますか?最近は Rust が楽しくてたまりませんが、のんびりやっていたらなんとなく理解するまで 1 年くらいかかってしまいました。 良い言語なので、できればみなさんにも気軽に手を出してもらいたく、 Rust の中で特に難しい概念とされている話「所有権(ownership)」について簡単にまとめることにしました。 おことわり 今回記述する「所有権」は、英語で "ownership" として表現されるものを和訳した単語です。 今回説明している概念は、「所有権」という言葉よりも "ownership" (およびその対訳である「所有」、「持ち主であること」) のほうが的確であると思いますが、このドキュメントでは「所有権」という言葉を使います。 所有権とは 所有権とは、簡単に言えば「値(データ)を持っている」 「その値を解放することに責任を負っているもの」のことを指します

    Rust は何を解決しようとしたのか;メモリとリソースと所有権
    zkzi3254
    zkzi3254 2021/01/13
    難しいと言われてる所有権について解説していて参考になりそう
  • 5年間 Laravel を使って辿り着いた,全然頑張らない「なんちゃってクリーンアーキテクチャ」という落としどころ

    この記事は Laravel Advent Calendar 2020 - Qiita 最終日の記事です。 TL;DR DDD や "真の" クリーンアーキテクチャは, Web 業界における大抵の現場ではオーバースペックだし,導入しても全員がついてこれるとは限らない app/UseCases ディレクトリだけ切って,ドメインごとに単一責務なクラスを置くと使いやすいよ ActiveRecord 指向のフレームワークで Repository パターンを無理に導入すると死ぬので, UseCase で Eloquent Model の機能を使うことを恐れるな はじめに Zenn では初投稿です。日Laravel コミュニティではもうお馴染みのようで実はあまり顔を出していない(?) @mpyw と申します。オンラインサロンの火付け役となった Synapse が最初の仕事でしたが,就職後すぐ会社が

    5年間 Laravel を使って辿り着いた,全然頑張らない「なんちゃってクリーンアーキテクチャ」という落としどころ
  • Reactチュートリアル2:レビューサイトを作ろう

    資料について 資料は日大学文理学部情報科学科の開講科目「Web プログラミング」の教材として作成されました。資料は下記のライセンスの範囲内で、当授業以外でも自由にご利用いただけます。 対象読者 資料は、以下の教材を学習済み、もしくはそれと同等以上の知識を持っていることを前提としています。 React チュートリアル:犬画像ギャラリーを作ろう 基情報技術者試験レベルの関係データベースの知識 資料で学ぶこと 資料では以下の内容を学びます。 Express と Sequelize による API サーバー開発 ReactAPI サーバーの連携 Cross-Origin Resourcer Sharing React によるルーティング Auth0 によるユーザー認証 Heroku による API サーバーの公開 ライセンス この作品はクリエイティブ・コモンズ 表示 4.0

    Reactチュートリアル2:レビューサイトを作ろう
  • Mac を買ったら必ずやっておきたい初期設定を、全て自動化してみた

    成果物 https://github.com/ulwlu/dotfiles/blob/master/system/macos.sh このスクリプトに全ての設定と、設定可能なオプションをコメントで記載しています。誰でもこのスクリプトのコメントを外したり任意の値を入れる事で使用可能です。 世界中のいくつかのdotfilesにはmacos.shが存在し、ある程度のMacOSの設定自動化を実現しています。しかし何百と見た中で、全設定と設定可能なオプションを全て網羅して記載しているのは恐らく初です。 これらの設定は破壊的なものではなく、いつかアプデによりキーが有効でなくなっても壊れる事はありません。壊れるのは~/ApplicationSupport/Dockディレクトリ配下のファイルを移動したり、sqlite群に無効な値をいれた時のみです(後述)。 この記事は何か dotfiles Advent C

    Mac を買ったら必ずやっておきたい初期設定を、全て自動化してみた
    zkzi3254
    zkzi3254 2020/12/03
    個人的にめちゃくちゃ有用な情報
  • Reactを自作しよう

    この記事は Build your own React を翻訳したものです。 Reactを1から書き直していきます。 実際のReactコードのアーキテクチャに従いますが、最適化機能と必須ではない機能は今回は実装しません。 Step 1: createElement関数 Step 2: render関数 Step 3: 並列モード Step 4: ファイバー Step 5: Render Phase と Commit Phase Step 6: 差分検出 Step 7: 関数コンポーネント Step 8: Hooks Step 0 復習 最初にいくつかの基的な概念を確認しましょう。 React、JSX、およびDOM要素がどのように機能するかをすでに理解している場合は、この章はスキップしても構いません。 今回は、次のわずか3行のコードをReactアプリの例として使用します。 const ele

    Reactを自作しよう
    zkzi3254
    zkzi3254 2020/11/23
    これは良い