サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
猫
zenn.dev/mizchi
LangChain なんか使わなくてもシュッと作れたので記事にしておく。 RAG とは 生成AIに検索能力をもたせるやつ。 要は検索機能をこちらで提供してやって、AIにそれを読ませる。 AnthropicAI Tool OpenAI でいう Function Calling JSONSchema で関数シグネチャを与えると、それを使うDSLを生成する。実際の関数は自分で実装して、AI が生成した引数(JSONSchema に従う)を渡す。 TypeScript の Mapped Types でツールの実装部分に型をつける簡単なラッパーを書いた。 RAG の CLI を作る Google検索をするAPIを実装 Google Custom Engine API を使った 本文要約をするAPIを実装 Mozilla の実装を使った 与えられた URL を fetch して、その本文部分を抽出する
zenn.dev/ndjndj
Rails で構築しているアプリケーションで自然言語処理を行いたかったので、Ruby で自然言語処理を行えるライブラリの ruby-spacy の検証を行うために docker で環境構築を行うことにしました。 後述しますが、単なる gem ではなくある程度準備が必要なもので、はまった個所もいくつかあったので、備忘録として残します。 ruby-spacy とは ruby-spacy とは Yoichiro Hasebe さんによって開発されたライブラリで、Python 用の自然言語処理ライブラリである spaCy を Ruby で利用できるようにしたライブラリです。 spaCy とは、Python/Cython で構築された自然言語処理を行うためのライブラリで、訓練済みの統計モデルを使用することができます。 参考: https://spacy.io/ 参考: https://ja.wiki
zenn.dev/praha
株式会社プラハは2022年、株式会社アガルートによるM&Aで子会社となりました。 この変化の一環として、アガルート社長自らがプロダクトオーナーのひとりとして参加する新規プロダクト開発が始まりました。プロダクトの開発はプラハの私たちが担当し、私も「開発チームのリーダー」としてそのチームに加わることになりました。 私はこれまで開発メンバーとしての経験しかありませんでしたが、エクストリームプログラミングとかレガシーコードからの脱却とかめっちゃ好きで、本で学んだプラクティスをリーダーとして実践できる機会が与えられて最高にハッピーでした。しかも、プロダクトオーナーの一人として参加するアガルート社長はこれまで伝統的な開発手法しか経験したことがないとのことで、新たな開発の進め方を経験してもらう絶好の機会でもありました。 やったこと 「欲しい機能一覧」を受け取ったが、いったん白紙に戻した プロジェクトが始
zenn.dev/shu223
2024年3月5日に開催されたイベントで発表した内容です。 スライドはこちら: またLTで全然時間が足りなかったので、イベント終了後にひとりで撮ったプレゼン動画がこちら: 以下、発表資料を記事として再構成したものになります。登壇後に調査した内容も追記しています。 「ローカルLLM on iOS」のデモ オンデバイスで [1]処理してます APIは叩いていません 倍速再生していません 8.6 tokens/sec iOSローカルでLLMを動かすメリット オフラインでも動く プライバシーが守られる(データがどこにもアップされない) どれだけ使っても無料 モバイル端末スタンドアローンで最先端の機能が動作することには常にロマンがある iOSでローカルLLMを動かす方法 大きく分けて2つ llama.cpp Core ML llama.cpp LLMが高速に動くランタイム C/C++製 Georgi
zenn.dev/manalink_dev
背景 小ネタです。 先日以下のようなバグ改修タスクでソースレビューを担当しました。 「全画面モーダルを実装したら、グローバルメニューより上に表示されてしまった。なのでz-indexを修正しました!」 我々が開発しているマナリンクでは、画面右上の自分のアイコンをクリックするとメニューが表示されます。 ところが全画面モーダルを実装したら、モーダルがメニューよりも上に表示されてしまい、モーダル表示中にメニューを操作できなくなってしまったとのこと。 最初のPull Requestの時点では、以下のような差分になっていました。 <div - className={'z-50 w-full border-b border-b-gray-shadow} + className={'z-10 w-full border-b border-b-gray-shadow} > これをレビューするときの僕の気持ち
zenn.dev/ubie_dev
ユビーではNestJSでGraphQLのサーバー実装をおこなっています。今回は実践で得られた知見を元にNestJSでGraphQLのResolverに対してGraphQLのスキーマから生成したTypeScriptの型を適用する方法について解説します。 前提としてNestJSにはスキーマファーストとコードファーストがありますが、今回はスキーマファーストで書いたうえで、スキーマから型を生成するアプローチを紹介します。 NestJS組み込みの型生成を使う NestJSのスキーマファーストのアプローチではNestJSの組み込みの機能でスキーマからTypeScriptの型を生成することができます。 以下のように書くことで、 graphql.ts に型が生成されます。 GraphQLModule.forRoot<ApolloDriverConfig>({ driver: ApolloDriver, t
zenn.dev/ikuyamada
Studio Ousiaと理化学研究所に所属している山田育矢です。 この記事では、大規模言語モデル(LLM)の性能を向上させる新しい方法であるLEIA(Lightweight Entity-based Inter-language Adaptation)を紹介します。 LLMは言語によって性能に顕著な差があり、訓練に使われるテキストが最も多い英語において特に性能が高い傾向があることが知られています。LEIAは、LLMが蓄えている英語の知識を他の言語から使えるようにする訓練を施すことで、英語以外の言語でのLLMの性能を向上させる新しい手法です。 この度、英語・日本語の2言語LLMであるSwallowの7Bと13Bのモデルに対してLEIAによる訓練を施して性能向上を行ったモデルを公開します。 ライセンスは、Swallowと同様のLlama 2 Community Licenseです。これらのモ
zenn.dev/turing_motors
言語モデルを高位合成でFPGAに実装してみた Turing株式会社のリサーチチームでインターンしているM1の内山です。 Turing株式会社では大規模基盤モデルによる完全自動運転を目指しており、その実現に欠かせない技術として大規模言語モデルの研究開発を行っています。 Generative AI LLMの広範な知識と思考能力に加え、視覚情報やセンサーデータなどの多様な入力を受け入れることで、車の周囲の状況を正確に認識します。さらに、世界モデルを適用することで、高度な空間認知と身体性を獲得し、実世界に対応した生成AIを実現します。 https://tur.ing/ より引用 しかしながら、従来の大規模モデルはデータセンターという大量のGPU・潤沢な電源・安定した地盤を備えた豊かな環境で処理されるものであり、対して自動車というものは余りにも狭く、電源が乏しく、振動が大きいという劣悪極まりない環境
zenn.dev/levtech
あ…ありのまま今起こったことを話すぜ! はじめに どうも、レバテックでCREをやっている住村です。 去年から飼い始めた犬が先日1歳の誕生日を迎えて、「もう1歳か」と「まだそれくらいしか経ってないのか」という矛盾した感覚を覚えます。 世のお父さんお母さんたちもこういう感覚なんでしょうか? 先日、Gmailの送信ガイドラインの変更で各社でもList-Unsubscribeヘッダの対応に追われたり、自社ドメインのDMARC認証状況を確認するためにDMARCレポートを見るようになったりで様々な対応を迫られていると思います。 関連して、今回は自社のメーリングリストが他社のDMARCレポートで認証失敗として検知されたので、その対応で得た知見を書こうと思います。 概要 メーリングリストなどによるメールの転送時、DMARC認証に失敗することがある メール転送時にエンベロープFromが書き換わり、ヘッダFr
zenn.dev/aidemy
はじめに この記事で想定している読者の方: LangChainで簡単でもコードを書いたことがある人 LLM chainについてざっくりと理解している人 公開されているLLMをapi経由で用いて様々な処理を記述できるライブラリ 「LangChain」にて, 主に外部から文書を与える際に用いられる以下の4つのchainをご存知の方も多いと思います。 stuff chain map reduce chain map rerank chain refine chain 今回は, 実際にstreamlitを用いて4つのchainを使用したchatアプリのデモ作成し, それを用いてchainごとの性能比較を行いました! 比較では単純な応答能力の比較に加えて, 生成時間やAPI料金の観点からも比較を行なったので, ぜひ読んでみてください! TL;DR 今回の実験は以下のgif画像のようなデモアプリを用い
zenn.dev/ncdc
はじめに 普段はJavaScriptを主に開発を進めているのでPythonで開発を進めると様々な問題に悩まされます。 その中でもパッケージの管理については個人的に不自由をすごく感じています。Pythonのバージョンを設定するpyenv, プロジェクトごとのパッケージを管理するために仮想環境の構築、さらにパッケージのバージョンを設定するためのrequirements.txtと開発までのハードルが高すぎます。 良い方法がないかと調べていく中で全てを解決できそうなRyeというツールを見つけましたので導入方法をメモ程度に記事にしました。 導入環境はAWSのSageMaker上です。 ライブラリ管理簡単にできるようになったのでLinterとCode Formatterも追加してみました。 Ryeとは RyeはPythonのWebアプリケーションフレームワークFlaskの開発者が作ったPythonパッ
zenn.dev/ak
はじめに この記事の内容は、以下の動画でも解説しているので、ぜひ見てみてください。他にもWebに関する解説動画を投稿しているので、良ければチャンネル登録よろしくお願いします! Bunとは? Bun とは、公式サイト によると、バンドル、テストランナー、Node.js 互換のパッケージマネージャーを備えた、スピードのために設計されたオールインワンの JavaScript ランタイム&ツールキット のことです。 Bun is an all-in-one JavaScript runtime & toolkit designed for speed, complete with a bundler, test runner, and Node.js-compatible package manager. (日本語訳)Bunは、バンドル、テストランナー、Node.js互換のパッケージマネージャーを
zenn.dev/ficilcom
本来、フロントエンド領域において、ドメイン駆動設計(以下、DDD)を採用することはほとんどないと思っています。なぜなら、当該のシステムにおいて、フロントエンドはサーバサイドから受け取ったデータを人間が視認しやすく表現するための領域であり、ドメインに沿った処理を責務とするのは、サーバサイド領域であるのがメジャーとされているためです。 この背景の真意は、個人的にはどちらでもいいのですが、現在開発中のシステムでは、フロントエンド領域で、DDDっぽいことをする必要にかられたので、そのまとめを記載しています。 システム概要 / 要素技術 以下が使用技術の抜粋です。 Next.js v14.1 / App Router GraphQL / PostGraphile / Apollo Client 本システムのバックエンドは、複数サービスでのデータ集積までを責務としています。 フロントエンドでは、これら
zenn.dev/bells17
devcontainerを使ってみよう devcontainerを使う上で知っておくと良さげな情報のまとめ記事です 前にRemote SSHでdevcontainerの環境を構築する記事を書いたので、今回はdevcontainer全般の情報をまとめてみました tl;dr devcontainerを使うと開発環境をコンテナで構築できるよ(ランタイムとかツール類含めて!) docker composeだとアプリケーションを動作させる環境は作れるけどdevcontainerは開発環境ごと構築できて便利 devcontainerを使うにはdockerとdevcontainerを利用できるエディタが必要 devcontainer内でdocker composeを利用できるから、devcontainer用のコンテナ+ミドルウェアコンテナを用意すればアプリケーションを開発できる環境がまるっとコンテナで作
zenn.dev/dataheroes
結論 社内データを扱うアプリケーションを安全にデプロイするならCloudflare Tunnel,Cloudflare Accessを使う。要件次第ではStreamlit in Snowflakeも使える。 はじめに Streamlitはデータアプリケーションを短時間で作成できる便利なツールですが、社内データを扱うアプリケーションをデプロイする際は外部からの不正アクセスを防ぐように厳重な注意が必要です。 にもかかわらず、Streamlitを安全にデプロイする成熟した方法はまだありません。 本記事では、最も単純なStreamlitのデプロイ構成の例から問題点を再確認し、それらを解決する方法を順に説明します。ただし、本記事で紹介する構成を使うにはドメインのネームサーバーがCloudflareである必要があることに注意してください。 単純な構成はどう危険なのか? まずは非常に単純なStreaml
色々あって WebAssembly の component model を調べていたら、未来が見えた気がしたのでここに書いておきます。 「今の WebAssembly」 とは何か WebAssembly の Web の部分は忘れてください。これは単に JVM version 20xx です。ポータブルなバイナリ仕様です。 実行にあたっては今はホスト言語として JS が使われていますが、実際にはホストがJSである必要すらなく、なんならホストが不要なスタンドアロン環境すらあります。(wasmtime/wasmer) じゃあ WebAssembly は何かというと、サンドボックスで実行される VM の仕様です。比較的高水準なバイナリで、 V8 や Spider Monkey に付属する WebAssembly Runtime や、 Wasmtime や Wasmer といった WebAssemb
zenn.dev/ryota_09
1.Tooltip こちらは定番ですね! 特に、何か注釈などの追加情報をユーザーに知らせる時はよく利用します。要素のホバー時だけ表示できるので、エリアの狭い箇所でも利用できるUIです。ただ、警告などの内容には非推奨な点やモバイルユーザーの考慮を必要とする点はデメリットですかね。 // page.tsx <div className="mt-10 mx-auto text-center"> <Tooltip label="ここに説明が入ります。ここに説明が入ります。ここに説明が入ります。ここに説明が入ります。"> <span className="p-2 bg-gray-100 rounded-full">🗑️</span> </Tooltip> </div> // Tooltip.tsx import { ReactNode } from "react" type TooltipProp
zenn.dev/miyasic
はじめに Firebaseでベクトル検索ができるようになったとのことなので、試してみました! そもそもベクトル検索って何ってところからGPTに質問しながらなんとかできた感じなので、解釈が間違っていたり説明が不十分な箇所もあるかと思いますが、こんなことができるんだという参考になれば幸いです。 今回やりたいこと ベクトル検索ができると聞き、真っ先に思い浮かんだのが去年開発したポケモン対戦記録アプリの類似対戦検索機能です。 「過去の対戦から今回の対戦相手のパーティと相手のパーティが似ている順にソートして取得する」です。 理由は説明すると長いので、興味のある人だけ読んでみてください。 なぜ似ている順にソートして取得したいか ポケモン対戦において最もよく遊ばれているルールの1つに相手と自分のパーティ6匹を見せ合って、実際に戦闘に繰り出す3匹を決めて3vs3で戦う6→3というルールがあります。 この時
zenn.dev/optimisuke
はじめに Vercel AI SDK (React 等から LLM の API をいい感じに stream で呼び出せるようにするやつ) から Ollama (OSS の LLM をローカルで動かすやつ) を呼び出す方法を調べました。 参考 課題 Vercel AI SDK の サンプルコードを、OpenAI から Ollama の langchain のモデルを使って、置き換えて動かそうとしたけど、なぜかうまくいかなかった。 解決方法 ここのディスカッションにいろんな解決方法が記載されている。その中からいくつか試した。 解決方法 1 OpenAI Compatibility API を使う OpenAI API と同じ API で呼び出す方法。呼び出せるモデルに制約がある。マルチモーダルの llava は呼び出せない。 URL 変えるくらい。シンプル。すんなり動いた。 解決方法 2 la
zenn.dev/taisei_13046
【結論】 UXの捉え方が「ユーザがサービスを道具として扱うための透明性と自己帰属感の実現」へと変化した。 突然ですが「UXとは何?」と聞かれたらなんと答えるでしょうか。以前までの私であれば”速さ・使いやすさ”といった回答をしていた気がします。しかし今回あるきっかけで融けるデザインという本を読む機会があり、そこで得た考えを言語化したいと思いこの記事を執筆しています。 *本記事は融けるデザインを読んだ個人の解釈をまとめたものですので、本の内容を解説するものではありません。所々解釈が異なる点がありましたらご了承ください。 「融けるデザイン」とは 本書はデザインの手法というより、インターフェイスとは何か?UXとは何か?という抽象的な概念に着目した一冊です。今回私が本書を紹介する理由としては、デザイナーだけでなくエンジニアにとっても有意義な内容が書かれていて、これまでの価値観を大きく変えてくれるもの
zenn.dev/s_shohey
はじめに こんにちは、@s_shoheyです。 2024年2月28日から4月17日にかけて開催された、Kaggle LLM Prompt Recoveryコンペについてまとめます。我々のチームは72位でしたが、特に我々の解法には言及しません。 コンペ概要 2つの文字列original_textとrewritten_textが与えられます。rewritten_textはGemmaによりoriginal_textから生成されたものです。この生成時に使われたrewrite_promptを予測することが目的です。 図は https://www.kaggle.com/competitions/llm-prompt-recovery/discussion/480683 より Gemmaは2024年2月にGoogleが公開したオープンなLLMモデルであり、このコンペはGemmaの宣伝も兼ねているのでは、
zenn.dev/dev_commune
こんにちは、commmuneでデータサイエンティストをしているひぐです。 人間が苦手なマルチタスクをLLMに任せたら、効果的に処理してくれるのではないか?というモチベーションのもと、Pythonの非同期処理を使って並列かつストリーミングでChatGPTの回答を出力するアプリを作りました🤖 例えば下記は、ある課題を入力すると、深さ・広さ・構造・時間軸という異なる観点で解像度を上げてくれるアプリケーションです。 アプリに関する登壇資料↓ このアプリ作成にあたってPythonの非同期処理を勉強したところ、最初は多くの専門用語(コルーチン、イベントループ...)や独自の記法により、全体像をつかむのに苦戦しました。一方で、学んでみると予想以上にシンプルな記法で実装できること、そして応用範囲が広くて便利だと理解しました。 この記事では、そんな少し取っつきにくけど便利なPythonの非同期処理にフォー
zenn.dev/tomo_saku
みなさんこんにちは。 都内のIT企業でフロントエンドエンジニアをしてますSakuです。 ここ1、2ヶ月くらいオフィスに出社して仕事をすることが多かったのですが、そこで、「あれっ…意外と仕事が捗るな…」と感じることがあったので、そこで感じたことを整理するため言語化してつらつら書きたいと思います。 その発端としては、最近新しいプロジェクトが始まり、その開発のチームリーダーという役割もあったため、まあ折角だしオフラインでチームビルディングやどういうプロダクトにするかなどをエンジニア・ビジネスサイドのメンバーと話し合うのも良いかなと思い、軽い気持ちで他のメンバーにも声をかけて出社の機会を作ってもらったのが始まりです。 それから週に何日かは出社して仕事をしていたのですが、ある時ふと思ったのが、冒頭で感じた意外と仕事が捗る感でした。 本題に入る前に、話は4年前に遡ります。 コロナ禍で生活が変わった 昨
zenn.dev/skata
この投稿は https://ill-identified.hatenablog.com/entry/2024/04/21/230009 に投稿したものと同一の内容です. どのサービスが一番文書を書きやすいかを調べるために, いくつかのサービスで同一の内容を投稿しています. この記事の要約 先日報道された「500年後に日本人が佐藤だけになる」という試算の内容に違和感を覚えた. 資料を確認してみると, 大きな問題のある方法で試算がなされていることがわかった. 苗字の絶滅問題について, より実現可能性の高いシナリオをシミュレーションし, そのプログラムと結果を公開した 報道された試算とは大きく異なる結果を得られた より精緻な分析を行いたいが, 技術的・計算リソース的なハードルに阻まれている なんか良いアイディアあったら教えてください はじめに 注: 本稿のシミュレーションはまだ完了していません.
zenn.dev/seya
- {place_name}の主要な観光スポットを網羅できているか - 各観光スポットの特徴や見どころを具体的に説明できているか - アクセス方法や所要時間など、実用的な情報を提供できているか - 主観的な意見を述べていないか - 明るく丁寧な口調を維持できているか [ { "input": { "place_name": "鎌倉" }, "output": "鎌倉は神奈川県にある人気の観光地です。以下のような見どころがあります。\n\n1. 鶴岡八幡宮: 源頼朝ゆかりの神社。本殿や舞殿が国宝に指定されています。\n2. 高徳院: 有名な「鎌倉大仏」があります。高さ11.3mの銅造阿弥陀如来座像は圧巻。\n3. 長谷寺: 本尊の十一面観音菩薩は高さ9.18mの木造で、日本最大級です。\n4. 鎌倉文学館: 鎌倉ゆかりの文学者を紹介。歴史的建造物の中で作品を楽しめます。\n5. 江ノ島: 弁
zenn.dev/canonrock
はじめに JAIST(北陸先端科学技術大学院大学)の社会人コースを 3 年半かけて卒業し、情報科学の修士号を取得しました。当初の想定では 2 年半で卒業するつもりだったのですが、諸々の事情で長引いてしまいました。。 昨今は社会人大学院への進学を検討する方も多いかと思います。そういった方のご参考になればということで、卒業までの実際を記録しておこうと思います。 軽く自己紹介 非情報系学部(生物学部)卒で、JAIST 進学時も今も機械学習エンジニアをしています。エンジニアリングも機械学習も社会人になってから独学で学びました。JAIST 進学時は子供はおらず、仕事も基本的にはそこまで忙しく無かったので、少なくとも土日は時間が取れ、平日も日によっては時間がある状況でした。 JAIST(北陸先端科学技術大学院大学)について JAIST は本校が石川県にある、学部が無い大学院のみの大学です。社会人向けに
zenn.dev/skanehira
zenn.dev/sacckey
はじめに Rubyでゲームボーイのエミュレータを作って、rubyboyという名前のgemで公開しました! (スターをいただけると嬉しいです!) この記事 RUBY BOYの実装手順を説明しながら、ハマった点や工夫した点を紹介します。 またRUBY BOYの高速化のためにやったことを紹介します。 なぜゲームボーイのエミュレータをつくったのか なにか個人開発をしたいが、Webサービスは維持費がかかるので無料で維持できるものを作りたい 業務でRubyを使っていることもあり、以前からRubyのgemを作ってみたかった ゲームのエミュレータ開発は「ゴールが明確&動くと楽しい」ので、モチベを維持しやすそう 特にゲームボーイには思い入れがある → Rubyでゲームボーイのエミュレータを作って、gemで公開しよう! エミュレータの概要 以下は、ゲームボーイのアーキテクチャです。 "Game Boy / C
zenn.dev/yutarohayakawa
LinuxにおけるSegmentation OffloadとはTCPなどのトランスポートレイヤのプロトコルが送信するデータをMTUに収まるように分割する処理(Segmentation)をNICのレイヤにオフロードすることによってスループットを向上させる技術です. Segmentation Offloadを使った場合, トランスポートレイヤのプロトコルはIPレイヤで許容される最大のサイズ(64KB程度)までのデータを1つのIPパケットで送信することができます. 受信側は逆にネットワークから入ってきたSegmentation済みのパケットをNICのレイヤで1つの大きなIPパケットに集約した上でプロトコルスタックの処理にかけます. これによってプロトコルスタックで処理されるパケットの個数を減らすことができるため, スループットが上がるという仕組みです. Linuxには仮想ネットワークデバイスとい
次のページ
このページを最初にブックマークしてみませんか?
『Zenn|エンジニアのための情報共有コミュニティ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く