タグ

ブックマーク / qiita.com (714)

  • RAG入門: 精度改善のための手法28選 - Qiita

    RAGの精度改善するために何があるかを学びました。基系のNaive RAGを知っている人向けの記事です。 方法が多すぎるので、Youtubeの「RAG From Scratch」を中心に少し整理してみました。LangChainをよく使っているので、LangChain出典が多いです。 全体像 まずは、RAGの全体像。Indexingが同じ流れにあるのが少しわかりにくいのですが、実行タイミングとしてはRAGの前準備としてやっておきます。 画像出典: RAG from scratch: Overview もう少し粒度を細かくした図です。 画像出典: RAG from scratch: Overview 表形式で分類します。Generationだけ少し特殊です。 大分類 中分類 内容

    RAG入門: 精度改善のための手法28選 - Qiita
  • Python並行・並列処理を整理する (入門) - Qiita

    概要 大量データに関するワークロードを、モノリシックに解決する場合、並行・並列処理の知識は活用できます 但し、一般にPythonにはGILが存在するため、正しい挙動を抑えておきたい所です 内容 Pythonにおける並行処理・並列処理 プロセス = OSが管理する実行単位 (CPUコア毎) スレッド = プロセス内の軽量な実行単位 (1CPUコア内) 上記前提を踏まえると、以下となります 並行処理 = 1つのプロセスに複数のスレッドが存在します (PythonはGILにより基1プロセス制約です) 並列処理 = 複数のプロセスを並行して進めます (複数プロセス活用できます) MMU (Memory Management Unit)に関して プロセスから参照するメモリはMMUにより制御された仮想メモリを参照します。MMUによりプロセス間ではメモリ競合は起きません (1プロセス ≒ 1CPUコア

    Python並行・並列処理を整理する (入門) - Qiita
  • 「生成AIエージェント」の実装入門(LangChain版とLangGraph版を対比) - Qiita

    記事は、2024年7月発売の書籍「つくりながら学ぶ!生成AIアプリ & エージェント開発入門」をベースに、私なりにGoogle Colabで動作する「生成AIエージェント」を実装してみた内容の解説です 上記の書籍「つくりながら学ぶ! 生成AIアプリ & エージェント開発入門」(発売日 2024/7/18) [link]、著者:ML_Bear(名: 内田 直孝)さん を参考にしながら、自分なりにいろいろ変更を加えてみて実装してみました。 Google ColaboratoryのNotebookファイルは以下となります。 記事では今回作成してみたプログラムについて解説します。 拙著である、「つくりながら学ぶ!PyTorchによる発展ディープラーニング」などと、装丁が似ているようにも感じる?のは、マイナビ出版の(私がとても信頼している)同じ編集者の方がこちらの書籍もご担当してくださっている

    「生成AIエージェント」の実装入門(LangChain版とLangGraph版を対比) - Qiita
  • データベースに接続するテストの仕組みを整備して、運用して、反省したこと - Qiita

    はじめに この記事の内容 この記事は上記記事で作成したデータベースに接続するテストの仕組みを運用した際に発生した問題点とそれに対する分析、解決策の案をまとめた記事です。 データベースに接続するテストの詳細な内容は上記記事を参照していただければと思うのですが、作った仕組みの概要としては データベースに接続するJUnitTestをCIで実行するしくみ です。 これによって私が開発しているプロダクトのテストの仕組みの全体像は以下のようになりました。 CIで実行されるJUnitTestJavaプロセスのみ)の実行基盤 CIで実行されるJUnitTest(データベースにアクセスする)の実行基盤 機能開発時に開発者が作成し協力会社の打鍵者の方に依頼するファンクショナルテスト これは自動E2Eテスト等でカバーできるものも含まれており、そういった仕組みも整備しなければいけないという課題認識があります。

    データベースに接続するテストの仕組みを整備して、運用して、反省したこと - Qiita
  • コードで蘇る「千と千尋の神隠し」:プログラミングによる名前の浮かび上がり演出 - Qiita

    何を作ったのか お見せしたほうが早いかと。 デモページ (マウスもしくはApple Pencilといったスタイラスペンで各マスに文字を書き、右上の赤いボタンを押す) (2024年8月4日更新) より文字をふわふわさせるように、メッシュを細かくしました。 もしかしたら重いかも・・・・ 改良デモページ 結構すごくないですか? こんな感じで、映画「千と千尋の神隠し」の千尋が湯婆婆に名前を捉えるシーンを再現してみました。作ってみて、なかなかおもしろかったので記事にしてみました。 どうやって作っているか これがどのように作られているか、簡単に解説します。 技術構成 アプリは以下のライブラリを使用しています。 Next.js ・・・Webアプリのフレームワークです tailwindcss ・・・Webアプリのcssライブラリです Three.js ・・・3d描画ライブラリです。 react thre

    コードで蘇る「千と千尋の神隠し」:プログラミングによる名前の浮かび上がり演出 - Qiita
  • 5つの基本原則で実現する、ユーザビリティの高い画面設計 - Qiita

    はじめに:なぜ今、ユーザビリティが重要なのか? みなさん、こんにちは。日々Figmaと格闘しながら画面設計に励むイェンです。 「使いやすい」と言われるアプリやWebサイト。実は、その裏には綿密に計算された設計があるんです。今回は、私が実際のプロジェクトで学んだ、ユーザビリティを向上させるための5つの鉄則をご紹介します。 これらの鉄則を押さえておけば、ユーザーから「使いやすい!」と絶賛されるデザインが、きっと作れるはずです。さあ、一緒に探検してみましょう! 【1】 シンプルイズベスト:余計なものは思い切って削ろう ユーザーが迷わず操作できる画面を作るには、シンプルさが鍵となります。 ・不要な要素を削除し、当に必要な情報だけを表示する ・情報の優先順位を明確にし、重要な要素を目立たせる 具体例: ナビゲーションメニューは5-7項目に絞り、よく使う機能をトップレベルに配置します。 Figma

    5つの基本原則で実現する、ユーザビリティの高い画面設計 - Qiita
  • やらないと後悔するUdemy8選 - Qiita

    はじめに みなさんは何か新しいスキルを得るときにどのように学習するでしょうか? 私はプログラミングコーチングJISOUで多くのジュニアエンジニアとカウンセリングをする中で8割以上の人がUdemyで学習すると言っていることに気づきました。 そこで今回は私がいままでやってきた35個の講座の中でこれはやってよかったと今でも思えるものを紹介していきます。Udemyはその人が学習している技術や興味のある技術でないと参考にはしづらいと思いますが、おすすめを学習することは時間の観点でものすごい価値があると考えているので参考にしてみてください! Udemyの怖いところ Udemyはとても恐ろしいサービスです 以前にも以下の記事を投稿して話題になりました。 ぜひ読んでほしいのですが、ざっくり解説すると 「Udemyは1終わらせるのに数十時間単位で時間を使うので、その使い方を間違えると時間の損失が大きい」

    やらないと後悔するUdemy8選 - Qiita
  • アンチパターンで学ぶDB設計 - Qiita

    はじめに データベース(DB)の設計は、システムの性能や保守性に大きな影響を与えます。 この記事では、最低限パフォーマンスの低下や管理の複雑化を引き起こさないようにするために覚えておくべきことを、アンチパターンとしてまとめました。 記事は、 現在仕事でデータベースを扱っており、データ設計について今一度おさらいしたい データベースについての基礎知識やお作法を身に付けたい という人を対象として想定しています。 これらに当てはまる方はぜひ一度確認してみてください! 弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。 また、Nucoでは一緒に働く仲間も募集しています!興味をお持ちいただける方は、こちらまで。 DB設計アンチパターン 早速、DB設計におけるアンチパターンを紹介します。 それぞれアンチパターンのテーブルを見て

    アンチパターンで学ぶDB設計 - Qiita
  • Google本社の方に聞いたいい開発者になるための習慣 - Qiita

    はじめに 以前自分の大学でGoogle社で働いている韓国の方の話を聞けるイベントがあったのでその内容をメモとして共有しようと思います。(すべて韓国語で聞いたので多少間違っている内容があったり、変な日語になってるかもです) 講義してくれた人について 講義してくれた人はGoogle社で働いており、今までに韓国のLGやamazonなどでも開発経験のある韓国の方でした(名前は伏せます)。当時はYoutubeのショート動画関連の開発に関わっていたとおっしゃっていました。 ソフトウェアエンジニアとは プログラマー = コードを書く人 ソフトウェアエンジニア = コードを書く仕事を含めた全ての開発業務(データベース, アーキテクチャ, teckleadなど) Googleではソフトウェアエンジニアリングの知識がある人がデータサイエンティストやプロジェクトマネージャーになる。 googleが強調

    Google本社の方に聞いたいい開発者になるための習慣 - Qiita
  • 【2024年最新版】0からReactを勉強するならこのロードマップに従え! - Qiita

    はじめに こんにちは@Sicut_study (Watanabe Jin)です。 去年の10月頃にReactのロードマップを投稿しておかげさまで1000いいねもすぐそこになりました そこから私自身も状況がかなり変わり、大好きなReactを使ってプログラミングを教えるスクールを運営しております。 エンジニアになりたい完全未経験の方や、すでにエンジニアだけどもっと自由にプログラミングができるようになりたい人をたくさん教えてきました。 👇メンバーの記事はこちらにあります その中である程度この流れで学習をすすめていけば1-2ヶ月程度でReactで自由にサービスを作れるレベルに再現性をもってレベルアップすることができると確信がもてたので、 実際にやっているカリキュラム(React部分)をすべて紹介します ロードマップは完全未経験でもできるようなものになっていますのでわかる箇所は飛ばしてもOKです。

    【2024年最新版】0からReactを勉強するならこのロードマップに従え! - Qiita
  • アジャイル専門部隊の一構成員が敢えてウォーターフォールを語るぞ - Qiita

    アジャイル開発の浸透?なんだそれは。 アジャイル開発という概念が世に出て二十余年(2001年「アジャイルソフトウェア開発宣言」による)、最早、この技術も最新とは言えない、成熟したものとなりました。あなたの職場でも「アジャイルに進めよう」的な、凝り固まらず柔軟なプロジェクト体制にして行こうという流れ、プロダクト開発の長大化を防ぎアウトプットを細かく出していこうという意識変革が内外から求められているかと思います。 しかしプレイヤーとしての皆様は、とはいえ作るものは変わっておらず納期が決まっているので大変になるだけ、だとか、現場ボトムアップな提案は通らずトップダウンにやることが降ってくるからやる意味なくね、だとか、果ては作るもの・仕様が決まってないけど予算がついたからいい感じにアウトプット出してね、の意味だとか、都合よく「アジャイル」を使われて疲弊することもあるでしょう。多くは会社の通例や予算検

    アジャイル専門部隊の一構成員が敢えてウォーターフォールを語るぞ - Qiita
  • 自動テストを考慮したテスト設計 〜概念〜 - Qiita

    テスト設計において何を考えてますか? テスト設計の時、何を考えていますか?テスト対象の機能のこと。テストすべき観点のこと。テスト技法を適用すること。期待値を明確にすること。テスト条件を満たす手順や環境を定義すること。最終的にテストケースに落とし込むこと。色々と考えることはあると思います。 テスト設計のWhatとHow これら考えていることは大きくWhatとHowに分けることができます。Whatというのは、「何をテストするか?」を考えることです。一方、Howというのは、「どのようにテストするか?」を考えることです。普通テスト設計で考えることと言えば、何をテストするか、いわゆるテスト観点を抽出したりすることが大事と思われがちですが、Howのどのようにテストするかも同じくらい必要です。これは、これまでの経験上そうしていたといったことや、過去のプロジェクトのやり方を流用するなどして暗黙的になってい

    自動テストを考慮したテスト設計 〜概念〜 - Qiita
  • Pythonが遅い理由とその対策 - Qiita

    はじめに Pythonは柔軟性が高く、初心者にも適したプログラミング言語ですが、その一方で速度面では他の言語に劣るとされています。記事では、先月ピッツバーグで開催されたPyCon US 2024で紹介されたPythonの高速化技術について詳しく解説します。 Pythonの速度問題 「Pythonはランタイムにコストを払う」という古い格言が示す通り、Pythonは解釈型言語であり、実行時に多くの処理を行うため速度が遅くなることがあります。Pythonはソースコードを効率的なバイトコードに変換し、それを直接実行することで動作します。このプロセスには多くの間接処理が含まれ、単純な命令でさえも多数のCPU指示に分解されます。例えば、二つの数値を足すだけでも500以上の命令が実行されることがあります。 高速化のためのコンパイル技術 Cythonによる最適化 PyCon 2024でのSaksham

    Pythonが遅い理由とその対策 - Qiita
  • 【注意喚起】ReactのuseStateの値がすぐに更新されない理由を誤って理解しがちな件について - Qiita

    「state 更新 反映されない」を検索するまで Reactにまだ慣れていない段階で開発をしているとuseStateの問題に詰まってこのような検索をする方は多いかなと思います。 私もその一人で、公式のチュートリアルを一通りやったにも関わらずこの問題に詰まってしまったのは忸怩たる思いでございます。 「useStateで定義した値はset関数で更新できて、useStateはフックなので実行すると画面が更新される」というのはまずReactを勉強する最初の段階で理解するでしょう。 そこで、言われた通りにuseStateで値を定義し、ユーザーの操作によって画面を更新させるコードを書きます。 import { useState } from 'react'; export default function Counter() { const [number, setNumber] = useState

    【注意喚起】ReactのuseStateの値がすぐに更新されない理由を誤って理解しがちな件について - Qiita
  • Dockerがわからない人へ。これ1本で0から学べる丁寧なDocker入門 - Qiita

    はじめに 私のエンジニアとしての初仕事Dockerでした。辛かったのをいまでも思い出します みなさんこんにちは、Watanabe Jin(@Sicut_study)です。 みなさんはエンジニア始めたての時にどんなことで苦労したでしょうか? GitHub Docker Kubernetes AWS など色々あるかと思いましたが、「環境構築」というのは多くの人がつまづく箇所かと思います。 プログラミングの勉強をするにはそもそもの開発環境がないとできないことも多いです。 またAWSなどのクラウドを利用してデプロイをするときにも再度登場して苦しめられます。 今回はそんな初心者には考え方や使いどころがわかりづらいDockerについて例え話を活用しながら説明していきたいと思います。 Dockerが難しいと思うのは、「概念がよくわからない」「説明を読んでも使いどころのイメージがつかない」というのがある

    Dockerがわからない人へ。これ1本で0から学べる丁寧なDocker入門 - Qiita
  • 詳細設計書なんて、書きたくない・・・・Doxygenを使って自動生成してみる - Qiita

    はじめに お客様に提案をしているときの会話です。 お客様:「詳細設計書は作りますか」 私:「昔ながらの詳細設計(ロジックを日語で書くもの)は作りません。クラス図とか、シーケンス図は複雑であれば作りますが、今回のシステムはそこまで必要なものはないものなので、割愛しようと思っています。」 お客様:「保守をお願いするかどうか未定なので、場合によっては引継ぎのために作ってもらうかもしれません」 私:「・・・・」 といった感じで、私がこの業界に入った30年前は、確かにプログラムを作る前に、詳細設計書と呼ばれるプログラムを日語で書いていました。 最近、詳細設計と呼ばれるものを作った記憶がなく、無駄なものは作りたくないなぁという思いから、コードから自動生成できないかなと思って、いろいろ試してみました。 Doxygenって いろいろ調べてみると、Doxygen にたどり着きました。 色々な言語に対応し

    詳細設計書なんて、書きたくない・・・・Doxygenを使って自動生成してみる - Qiita
  • 【VSCode】オススメの拡張機能と設定 - Qiita

    { "editor.formatOnSave": false, "editor.formatOnPaste": false, "editor.formatOnType": false, } この記事で紹介している拡張機能のIDは、記事の最後にまとめています。また、設定の方法については設定のやり方に記述しています。 以下は、この記事で紹介する拡張機能のカテゴリ一覧です。 設定ファイル関連(Yaml, Json, Toml) Git関連 Markdown関連 カラー系 API関連 コンテナ その他便利な拡張機能 ネタ系 設定ファイル関連(Yaml, Json, Toml) 特にYamlやJsonはどのプロジェクトでも使用する可能性が高いので、必須の拡張機能となってくるかと思います。 Prettier esbenp.prettier-vscode jsonだけの設定では、VSCodeの設定ファイ

    【VSCode】オススメの拡張機能と設定 - Qiita
  • 本屋で技術書みてたら人生詰みかけた - Qiita

    はじめに こんにちは。WatanabeJin(@Sicut_study)です。 今回は以前Twitterでも話題にした「成長しないエンジニアほど屋に行く」という理由について解説したいと思います。 成長が遅いエンジニアほど屋に行く話 最近、エンジニアとして成長が遅い人たちに共通する特徴を発見しました。それは「技術書コーナーを好む」ということです。これに気づいたのは、自分自身がエンジニア1年目で、同じ行動をしていたからです。… pic.twitter.com/p35NaS6T4a — Watanabe Jin (@Sicut_study) January 7, 2024 もしあなたが説明することに当てはまるところがあれば、それをきづけたのは大きな分岐点だと思います。ここから自分の学習方法などを見直してみてください。 成長が遅いエンジニアほど屋に行く 私はプログラミングコーチングJISOU

    本屋で技術書みてたら人生詰みかけた - Qiita
  • 知っておくと仕事が捗る便利ツール17選 - Qiita

    はじめに 知っておくと仕事が捗るブラウザ上で動く超便利なツールを17個集めました。 Squoosh Googleが開発した画像変換・圧縮用のWebサービス。 プレビュー画面で変換前後の画質をリアルタイムで確認しながら圧縮設定を調整することができる。 Documatic Documaticは、プロジェクトドキュメントの開発プロセスを削減するためのツール。API リファレンスからユーザー ガイドまで、コード ベースを簡単に文書化できる柔軟なテンプレートとユーザーフレンドリーな編集ツールを提供する。 transform jsonからyamlの形式に変換したい等、あらゆるデータ形式から別の形式に変換するサービス。 jsonからyml、htmxからjsxへの変形、jsonやGraphQLのIDLからTypeScriptのinterfaceまでも、ブラウザ上で生成することができる。 Roadmap.s

    知っておくと仕事が捗る便利ツール17選 - Qiita
  • 【useEffect】初回にも実行されて困るなら《何をキッカケに、どう更新されるか》を見直せ - Qiita

    useEffect を使って「初回以外の再レンダリング時に実行される処理」を書くにはどうすれば良いのか? という疑問を、たまに目にします。 たとえば、以下のような仕様の、「商品価格を編集する画面」を作ることを考えてみましょう。 日での販売価格入力 ページ読み込み時には初期値が入っている アメリカでの販売価格入力 ページ読み込み時には、初期値が入っている 日での販売価格入力に入力するたび、その1/100の値が自動で入力される あくまで、入力の参考にするため、というイメージ この欄に入力すれば、上書きできる そもそも、こういった自動入力は「入力するたび」ではなく、「フォーカスを外したとき」にするのが定石だと思いますが、 useEffect の話がしたいので、あえてこのような仕様に設定しています。 ❌️ useEffect を使って変更検知しようとすると暴発する 《日での販売価格 japa

    【useEffect】初回にも実行されて困るなら《何をキッカケに、どう更新されるか》を見直せ - Qiita