並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 54件

新着順 人気順

デコレータの検索結果1 - 40 件 / 54件

  • 脳に収まるコードの書き方

    ソフトウェアは複雑さを増すばかりですが、人間の脳は限られた複雑さしか扱えません。ソフトウェアが思い通りに動くようするには、脳に収まり、人間が理解できるコードを書く必要があります。 本書は、拡張を続けても行き詰ることなくコードを書き、複雑さを回避するための実践的な方法を解説します。最初のコードを書き始めるところから機能を追加していくところまでを解説し、効率的で持続可能なペースを保ちながら、横断的な問題への対処やトラブルシューティング、最適化を行なう方法を説明します。自分のチェックリストからチームワーク、カプセル化から分解、API設計から単体テストまで、ソフトウエア開発の重要な課題に対する考え方やテクニックを紹介します。サンプルプロジェクトで使うコードは、Gitリポジトリの形で入手でき、試しながら学べます。 有効に機能するプロセスを選び、効果のない方法論から脱却する方法。チェックリストを使うこ

      脳に収まるコードの書き方
    • サーバーレスの次はなんなんだ

      はじめに この記事は、同人誌サークル「めもおきば」から不定期刊行している技術解説本「めもおきばTecReport」に書いたものを公開用に再編集したものです。 ⇒ めもおきばTecReport 2023.12 この記事のほかにも「私もSecHack365に参加したい!」や、「2023年振り返りと2024年技術予想」としてこんなキーワードを取り上げているので、気になったらぽちっとしてください! メガクラウドと特化型クラウド/ハイパーバイザーのSoC化/ライセンスとクラウドベンダー/イベント駆動型API/LLM時代のAIペアプロ力/生活必需品としてのGPU・NPU/Passkey/ウェブアクセシビリティ/リアルイベントの再開 サーバーレスの次はなんなんだ サーバーレスと呼ばれる技術ムーブメントが盛り上がり始めて8年近くが経ちました。各クラウドベンダーのFaaS(Function-as-a-Ser

        サーバーレスの次はなんなんだ
      • Pythonでリトライ処理を簡単に追加できる「tenacity」を使ってみる | DevelopersIO

        今回はPythonで簡単にリトライ処理を追加できる「tenacity」を使ってみます。 デコレータ形式で簡単にリトライ処理を追加できるので便利です。 tenacityについて プログラムを書いていて、HTTPの通信などでリトライ処理を実装する機会は多いと思います。 今回はそんなリトライ処理を簡潔に書けるtenacityの使い方を説明します。 インストール インストールはpipで可能です。 pip install tenacity 使い方 シンプルな例 import random from tenacity import retry @retry def random_error(): num = random.randint(0, 10) if num > 4: print(f"Error: num={num}") raise Exception("Error!") else: retur

          Pythonでリトライ処理を簡単に追加できる「tenacity」を使ってみる | DevelopersIO
        • PythonでDDDやってみた💪 - techtekt

          はじめに 実行環境 ディレクトリ構造 app migrations/model pyproject.toml ソースコードと簡単な解説 app/core app/core/abstract app/core/decorator app/core/exception app/core/interface app/core/middleware app/core/mixin app/ddd app/ddd/application app/ddd/application/schema app/ddd/application/schema/studnet app/ddd/application/usecase app/ddd/application/usecase/student app/ddd/domain app/ddd/domain/student app/ddd/infra app/ddd

            PythonでDDDやってみた💪 - techtekt
          • 個人開発OSSが世界に勝てなかった話

            ゆーすけべー氏の「OSSで世界と戦うために」にインスパイアされました。5年間pyserdeというOSSのライブラリを開発・メンテしてきた筆者が、ちょっとだけ世界と戦ってみたけど全然勝てなかったという話です。Honoとはプロダクトの規模も開発にかける情熱も全然違うけど、単純にポストモーテムは読み物として面白いかなと思ったので書いてみます。また、5年間の開発で学んだやってよかったことや失敗などもシェアできればと思います。 pyserde pyserdeは筆者が2019年から開発メンテナンスしているOSSで、RustのserdeというライブラリにインスパイアされたPython用のシリアライゼーションフレームワークです。 以下のようにクラスを定義すると、型アノテーションに基づいたデータ変換やバリデーションのコードが内部的に生成され、強い型付けのクラスを生成することができます。強い型付けのクラスはラ

              個人開発OSSが世界に勝てなかった話
            • Python Web UIフレームワークで作るデスクトップアプリ | gihyo.jp

              寺田 学(@terapyon)です。2024年4月の「Python Monthly Topics」は、Python Web UIフレームワークの1つであるStreamlitを使ってWindowsやmacOSのデスクトップアプリを作る方法を解説します。 目的⁠・モチベーション Pythonで自動化のスクリプトを作ったり、JupyterLabやColaboratoryでデータの可視化を行うことがあります。これらを作成者以外の多くの方に利用してもらう方法として、Webシステムやデスクトップアプリとして提供する方法が考えられます。 Webシステムの構築やデスクトップアプリの作成となると、技術的なハードルがあります。他には、時間的なコストに見合わないという状況もあり得ます。 Python Web UIフレームワークを使うことで、比較的少ないコードでWeb UIからスクリプトの実行や可視化をするアプリ

                Python Web UIフレームワークで作るデスクトップアプリ | gihyo.jp
              • 高速化のエンジニアリング。注文してから0.722秒。100倍速いぞ!Python : 75.884 C++ : 3.392   JIT Python : 0.722 JITコンパイラで高速化されたコードを自動生成するツール。 - Qiita

                アリスは驚きと興奮を抑えきれませんでした。彼女はすぐに新しいコードを試し、その速さに目を見張りました。今まで数時間かかっていた計算が、ほんの数分で終わったのです。 翌日、アリスはこの発見を友人たちに話しました。友人たちも同じように魔法の本を使い、彼らのコードを高速化しました。こうして、プログラミング王国全体で「JITの魔法の本」が広まりました。 やがて、アリスは王国のプログラミング大会で優勝し、JITの魔法の本の力をさらに広めることになりました。彼女は「JITの守護者」として称えられ、プログラミング王国はかつてない繁栄を迎えました。 アリスはいつも心に誓いました。どんなに強力なツールも、それを使う人々の努力と情熱があってこそ、本当の力を発揮するのだと。彼女の言葉は次世代のプログラマーたちに伝わり、JITの魔法の本は永遠に受け継がれていくのでした。 前回のあらすじ。 Python count

                  高速化のエンジニアリング。注文してから0.722秒。100倍速いぞ!Python : 75.884 C++ : 3.392   JIT Python : 0.722 JITコンパイラで高速化されたコードを自動生成するツール。 - Qiita
                • 【AtCoder】Pythonで競プロをするときの注意点まとめ【競技プログラミング】 - Qiita

                  これは何? 競技プログラミングをPythonでやるときに注意すべき点をまとめました。 言語選択編 PythonがAtCoderには5種類ある AtCoderにはPythonの処理系が5つ入っています。具体的には Python (CPython 3.11.4) Python (Mambaforge / CPython 3.10.10) Python (PyPy 3.10-v7.3.12) Python (Cython 0.29.34) SageMath (SageMath 9.5) の5つです。それぞれ特徴があります。 Python (CPython 3.11.4) 一番オーソドックスなPythonです。 一般に(競プロ界隈でなく)Pythonというときはこれを指すと思います。 Python (Mambaforge / CPython 3.10.10) mambaforge経由で導入されたp

                    【AtCoder】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
                    • あらゆるプログラミング言語の最先端を行くScala 3のマクロ - 貳佰伍拾陸夜日記

                      この記事はScala Advent Calendar 2023の11日目です. 最近, 趣味でScala 3のコードをだいぶ書いていて, マクロの使い心地のよさに感心しました. 理論的な背景も含めて, 産業界で多く使われているプログラミング言語の中では筆者の知る限りぶっちぎりに優れたマクロを備えています. 他の言語にも見習ってほしいですね. たぶん見習おうとすると処理系を作り直す羽目になりますが. この記事ではScala 3のマクロのすごいところを例を使って紹介します. マクロの実践的な例 準備 実践的な例: NamedArray – 名前でアクセスできる配列 NamedArrayのマクロ実装 記述が明瞭 メタレベルのプログラムの扱い クォートとスプライスがある パターンマッチもある 生成コードに型がつく 多段階計算に基づいている クォートとスプライスの本当の意味 ネストしたスプライス ネ

                        あらゆるプログラミング言語の最先端を行くScala 3のマクロ - 貳佰伍拾陸夜日記
                      • pytest でテストケース毎に DB を自動的に初期化して、テスト開発体験を向上させる - SalesNow Tech Blog

                        概要 Web バックエンドのテストコードを書く場合、その多くは DB に依存していることが多いです。 DB 関連のテストは、テストデータの準備やテストケース毎の DB 処理化を適切に行うことが重要ですが、手間がかかる場合あるため、Mock で擬似的にテストしてしまうことも多いかと思います。 ただ、Mock を使ったテストは本質的な問題を検知できない意味のないテストになってしまう可能性があり、可能な限り DB の Mock を行わずに、実際の DB を使用してテストすることが望ましいと考えています。 本記事では、pytest、sqlalchemy、PostgreSQL を使った場合に、テストケース毎に DB を簡単に初期化しつつ、テストケース毎の前提データ登録も簡単うことでテスト開発体験を向上させる方法を紹介します。 前提環境 本記事では、以下の環境を前提として説明いたします。 python

                          pytest でテストケース毎に DB を自動的に初期化して、テスト開発体験を向上させる - SalesNow Tech Blog
                        • 2023年版!エンジニア必見のチートシート集 - Qiita

                          2. 機械学習・AIチートシート まずは機械学習やAI開発に関わるチートシートからです! Machine Learning Cheat Sheet | DataCamp 主要な機械学習アルゴリズム、その利点と欠点、および使用ケースをガイドするものです。初心者からエキスパートまで、誰でも役立つリソースです。 機械学習アルゴリズム チートシート MicrosoftのAzureが提供している機械学習アルゴリズムに関するチートシートです。 TensorFlow Cheat Sheet https://zerotomastery.io/cheatsheets/tensorflow-cheat-sheet/ 機械学習と人工知能のためのオープンソースライブラリ、TensorFlowのチートシートです。基本的な概念やベストプラクティスがまとめられています。 (メールアドレスでサブスクライブするとPDFがダ

                            2023年版!エンジニア必見のチートシート集 - Qiita
                          • 【Python 3.12】型ヒント機能がいつの間にか進化していたので、慌ててキャッチアップする - ABEJA Tech Blog

                            ABEJA でプロダクト開発を行っている平原です。 先日、バックエンドで使っているGo言語のお勉強しようと「go言語 100Tips ありがちなミスを把握し、実装を最適化する」を読んでいました。その中でinterfaceは(パッケージを公開する側ではなく)受け側で定義するべきという記述を見つけてPythonでも同じことできないかと調べていると(PythonではProtocolを使うとうまくいきそうです。)、どうやら型ヒント機能がかなりアップデートされていることに気づき慌てて再入門しました。(3.7, 3.8あたりで止まってました。。) この記事では、公式ドキュメントを見ながら適当にコードを書き散らし、どの機能はどこまで使えるのか試してみたことをまとめてみました。 docs.python.org 環境 Python: 3.12.1 エディタ: Visual Studio Code Pylan

                              【Python 3.12】型ヒント機能がいつの間にか進化していたので、慌ててキャッチアップする - ABEJA Tech Blog
                            • ハイパーモダンPython

                              ハイパーモダン(hypermodern)という言葉は20世紀初頭を代表するチェスプレーヤーたちが考案した、当時モダンであると考えられていたオープニング戦略を超える斬新な戦略に由来するものです。本書はPythonを使った開発におけるハイパーモダンな戦略を提示します。Poetry、Nox、pytest、Ruff、uv、Ryeといった新しいツールを活用して、ワークフローをさらに効率化し、堅牢かつ信頼性の高いプロジェクトにする手法を紹介します。ハイパーモダンな戦略を通じて、開発において本当に重要なことを学べる1冊です。 訳者まえがき はじめに Ⅰ部 インストールと環境 1章 Pythonのインストール 1.1 複数のPythonのバージョンをサポートする 1.2 Pythonインタプリタを探す 1.3 WindowsにPythonをインストールする 1.4 Windows用Python 1.5 m

                                ハイパーモダンPython
                              • バックエンド視点で振り返るGraphQLを採用したプロダクト開発 - enechain Tech Blog

                                はじめに 技術スタック eScanチームにおけるGraphQLの使い方 開発フローの工夫 N+1問題の対応と注意点 エラーハンドリングの工夫 モニタリングの工夫 ドキュメンテーションを必須化するための工夫 その他の取り組み 振り返り 良かった点 難しかった点 今後の展望 最後に はじめに こんにちは、enechainでソフトウェアエンジニアをしている小沢です。 私が所属しているチーム(以降、eScanチーム)では、eScanという電力会社向けのリスクマネジメントシステムを開発・運用しており、その中でGraphQLを採用しています。すでにGraphQLを採用するメリット・デメリットについて様々なところで語られていますが、eScanチームでもオーバーフェッチが解消できる点、1リクエストで必要なデータをフェッチできる点などのメリットを享受するために採用しています。 今回は実際にGraphQLを採

                                  バックエンド視点で振り返るGraphQLを採用したプロダクト開発 - enechain Tech Blog
                                • Python 3.13がリリース!AIと機械学習に変革を齎す! - Qiita

                                  Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? みなさんこんにちは!私は株式会社ulusageの、技術ブログ生成AIです!これからなるべく鮮度の高い情報や、ためになるようなTipsを展開していきます。よろしくお願いします!(AIによる自動記事生成を行なっています。システムフローについてなど、この仕組みに興味あれば、要望が一定あり次第、別途記事を書きます!) Python 3.13がAIと機械学習の世界を変える理由 Python 3.13がついにリリースされ、数多くの重要なアップデートが盛り込まれています。機械学習、データサイエンス、そしてAIの分野で最も広く使用されているプログラミン

                                    Python 3.13がリリース!AIと機械学習に変革を齎す! - Qiita
                                  • コーディング面接で必要なPythonの学習 | Coding InterviewCat | コーディング面接対策教材

                                    コーディング面接で使われる構文、データ構造、標準関数などは実はある程度限定されています。ここに書いてある事を理解するだけでコーディング面接における(体感)8 ~ 9割くらいのPythonの必要な知識を学習できます。 例えば、辞書やセットは頻繁に活用しますが、ジェネレーター・デコレータなどはコーディング面接ではそこまで登場しません。つまり必要なものだけ集中して学習し、残りの要素はその都度調べる形が効率良いでしょう。コーディング面接では万が一忘れた時は相手が自分の代わりにググってくれたり、擬似コードとして書くことも許される場合があります。

                                      コーディング面接で必要なPythonの学習 | Coding InterviewCat | コーディング面接対策教材
                                    • Lambda が timeout する際に graceful に落としたい日々だった

                                      2023-10-01T00:00:00.000Z 3a1e28ee-19ba-3ae8-3af1-2a2ae2cf1a2b Task timed out after 300.49 seconds Lambda を実装する上では冪等性が重要で、このようにタイムアウトが発生したとしても次に開始される処理には影響がないようにすることが求められます。が、場合によっては上記のタイムアウト時の仕様が困ったことになる場合があります。当社で Lambda を使った処理を実装している上でも、Lambda 内のある処理がされないうちにタイムアウト時間に到達してしまうことで、運用上想定していない挙動が発生してしまうことがあり、頭を悩ませていました。 Lambda を graceful にシャットダウンさせたい Python にはデコレータ[1]という概念があり、これを使うことで関数の前後に任意の処理を追加するこ

                                        Lambda が timeout する際に graceful に落としたい日々だった
                                      • 「JS体操」のすゝめ 〜その①〜 - KAYAC engineers' blog

                                        このエントリは【カヤック】面白法人グループ Advent Calendar 2023 の24日目の記事です。 こんにちは!意匠部のおばらです。 面白法人カヤックでは日々、様々な社内勉強会が開催されています。本記事では JS 好きな社内のエンジニア向けに私が企画&主催している「JS体操」についてご紹介します。 記事の最後にはみなさんも挑戦できるように最新の「JS体操」を紹介しています。ぜひ挑戦してみてください。 1.「JS体操」とは? 2.「JS体操」の掟 3.「JS体操」のメニュー 3.1. 何らかのロジックを解く 3.2. コードゴルフで文字数を競う 4.「JS体操」の流れ 4.1. 出題方法 4.2. 解答方法 4.3. 実際の様子 5.「JS体操」の過去問の紹介 5.1. 第一回 5.2. 第二回 5.3. 第三回 5.4. 第八回 5.5. 第十一回 5.6. 第十四回 5.7.

                                          「JS体操」のすゝめ 〜その①〜 - KAYAC engineers' blog
                                        • TypeScriptの変更点まとめ ──新しい演算子・トップレベルawait・usingについて

                                          本連載の趣旨 本連載は、TypeScriptのアップデートを紹介する連載です。 TypeScriptは、その登場以来、順当にバージョンアップを重ね、現在(原稿執筆時点)5.2が最新となっています。各バージョンアップでは、性能改善に関するアップデートが主なものもあれば、大きな機能追加が施されたものもあります。 本連載では、これらのアップデートの内容のうち、バージョン3から5.2までに施されたものを整理し、テーマごとに紹介していきます。具体的には、以下のテーマを予定しています。 タプルに関するアップデート 型システムに関するアップデート 型の絞り込みに関するアップデート クラス構文に関するアップデート デコレータに関するアップデート 第1回目である今回は、上記テーマに含まれていないもので重要なアップデートを取り上げます。これらは、ひとつのテーマで連載1回分の内容にはならないものを、詰め合わせセ

                                            TypeScriptの変更点まとめ ──新しい演算子・トップレベルawait・usingについて
                                          • TypeScriptに導入された新たな仕組みのデコレータ、その使い方と利便性とは?

                                            CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

                                              TypeScriptに導入された新たな仕組みのデコレータ、その使い方と利便性とは?
                                            • mypy plugin に入門して社内 OSS である gokart を型安全にしてみた - エムスリーテックブログ

                                              今回は mypy plugin を利用して、型安全に対応していないライブラリを型安全にする方法を紹介します! 具体的にはエムスリーが開発する機械学習パイプラインツールである gokart を対象とし、mypy plugin を用いてどのように型の課題を解消したかについて解説します。 対象読者としては、既に gokart を使ってくださっている方はもちろんですが、dataclass や Pydantic がどのように型を担保しているかについて興味がある方も想定しています。 github.com gokart について gokart における型の問題 クラス変数をハックするツールである mypy による型チェックする上での課題 mypy plugin を自作してみる 静的解析時のイベントにフックする Plugin クラス 構文解析の結果を上書きする mypy API mypy plugin 開

                                                mypy plugin に入門して社内 OSS である gokart を型安全にしてみた - エムスリーテックブログ
                                              • Hypothesisとpytestを使ってDjangoのユニットテストを書く - 何かを書き留める何か

                                                Hypothesisとは何か、プロパティベーステストとは何か Hypothesisは、Python向けのプロパティベーステストのライブラリである。 プロパティベーステストは、生成された多数の入力データに対してプロパティ(性質)が満たされるかどうかをテストする手法である。 HaskellのQuickCheckライブラリが初出で、現在は各プログラミング言語に移植されている。 従来のユニットテストは、ある程度固定したテストデータを指定してテストを行っていた。 その際、境界値分析などで妥当なパラメータを決定していた。 しかし、境界値分析が必ず通用するとは限らないし、人間が行う以上、ミスも発生する。 プロパティベーステストはデータを固定する代わりにそのデータが満たすプロパティを指定してテストを行う。 実際のテストケースはHypothesisがプロパティを満たすパラメータを決めて生成してくれる。 人力

                                                  Hypothesisとpytestを使ってDjangoのユニットテストを書く - 何かを書き留める何か
                                                • タスクとパラメータの一元管理で実現するMLOps - enechain Tech Blog

                                                  はじめに 背景 タスクランナーを導入するモチベーション パラメータ管理ツールを導入するモチベーション 実現したいこと モデルや環境に依存しないタスクによるパイプラインの操作 共通部分と環境特有部分を分離したパラメータ定義 パラメータ定義の構造化 実装方法 利用するツール パラメータファイル 構造化パラメータのマージ処理の実装 おわりに はじめに enechain データサイエンスデスク エンジニアの藤村です。 enechainでは市場活性化を目的として、機械学習や最適化アルゴリズムを用いて電力や燃料などの商品に関する指標を算出し、社内外に提供しています。本稿では、これらを算出するモデルの構築・運用を効率化するために作成した、タスクランナーinvokeとパラメータ管理ツールhydraを一体化したシステムを紹介します。 背景 タスクランナーを導入するモチベーション 機械学習モデルの構築・運用に

                                                    タスクとパラメータの一元管理で実現するMLOps - enechain Tech Blog
                                                  • TypeScriptに導入された新たな仕組みのデコレータ、その使い方と利便性とは?

                                                    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

                                                      TypeScriptに導入された新たな仕組みのデコレータ、その使い方と利便性とは?
                                                    • LLMアプリにhuman-in-the-loopを追加する「HumanLayer」を試す

                                                      GitHubレポジトリ HumanLayer HumanLayer: AIエージェントがツールベースおよび非同期ワークフローで人間とコミュニケーションできるようにするPythonツールキット。人間をループに組み込むことで、エージェントツールはより強力で意味のあるツールコールやタスクへのアクセスが可能になります。 あなたのLLM(OpenAI、Llama、Claudeなど)やフレームワーク(LangChain、CrewAIなど)を持ち込み、AIエージェントに安全に世界へのアクセスを提供しましょう。 なぜHumanLayerなのか? 機能やツールは、エージェントワークフローの重要な要素です。これらは、LLM(大規模言語モデル)が外部の世界と意味のある形でやり取りし、広範囲にわたる重要な作業を自動化することを可能にします。正確で正しい機能呼び出しは、AIエージェントがアポイントメントを予約したり

                                                        LLMアプリにhuman-in-the-loopを追加する「HumanLayer」を試す
                                                      • Culture Against Apartheid  アパルトヘイトに抗する文化

                                                        〈Culture Against Apartheid アパルトヘイトに抗する文化〉は、私たちひとりひとりが、パレスチナでの大量虐殺と民族浄化を止める事を早急の課題とし、この問題の根幹にある占領や、アパルトヘイト体制、「日本」をふくむ世界中の、あらゆる抑圧に抗う『文化』を主体的に創造していくことを宣言する声明です。私たちは団体としてではなく、声明に共感する「ちいさな人びと」の意志の集まる場所として、新しい文化を望むすべての人びとの活動のためのネットワークとして存在します。 声明「パレスチナを忘れるな」というのが、エドワード・サイードの最期のことばでした。 パレスチナの未来のために、彼が最期まで重んじたのが、『文化』というものでした。 わたしたちは、Culture Against Apartheid(アパルトヘイトに抗する文化)というチームをつくりました。 わたしたちが、心から追い求めている新

                                                          Culture Against Apartheid  アパルトヘイトに抗する文化
                                                        • Genericやらoverloadやらを使って、MLパイプラインツールgokartを型安全にしてみた - エムスリーテックブログ

                                                          AI・機械学習チームの北川(@kitagry)です。 このブログはサテライトオフィスのメンバーで投稿されるブログリレー1日目の記事になります。1 サテライトオフィスブログリレーとある通り、4月から京都オフィスに在籍しています。 最近京都オフィスメンバーで居酒屋に行ったりしたのですが、やはり関西めっちゃ安い。。 みんなおいでよと思っているところです。 本ブログではエムスリー株式会社がOSSとして公開しているgokartというPythonツールの型を強化した話について書きます。 Python3.5から型ヒントの機能が追加され、現在最新のPython3.13に至るまでに徐々に機能が追加されています。 最近はGILの無効化など高速化に関する話題が上りがちですが、その一方で型についても徐々に充実してきています。 このブログではPythonで利用可能な型について言及しながら、gokartに型を導入した

                                                            Genericやらoverloadやらを使って、MLパイプラインツールgokartを型安全にしてみた - エムスリーテックブログ
                                                          • Hugging Face ZeroGPU のチュートリアル|ぬこぬこ

                                                            tl;drHugging Face に月に 9 ドルお布施すると ZeroGPU が使えるよ! ZeroGPU は Hugging Face Spaces にて最大 120 秒間 A100 が使えるという代物だよ! 通常はホスティングに時間単価で課金が発生するから安心だね! ちょっとしたモデルの推論サーバとして重宝するよ! ZeroGPU とはなにか Hugging Face Spaces で追加のコストなく GPU を使える代物。 この記事の読者の多くは、大規模言語モデルや画像生成モデルなどのデモアプリが Hugging Face Spaces 上で動いているのを目にしたことがあるでしょう。 こういう感じの一度くらい見たことがありますよねきっとこれらを自前で Hugging Face Spaces にホスティングする際にはなかなかにめんどうくさい。 このモデルってどのくらいの推論メモリを

                                                              Hugging Face ZeroGPU のチュートリアル|ぬこぬこ
                                                            • decoratorを使ってログ出力コードの削減し可読性を上げた話 - NTT Communications Engineers' Blog

                                                              この記事では TypeScript ver4.x にて実験的な機能である decorator を使い、ログ出力コードを削減・コードの可読性を上げた経験を紹介します。 はじめに 背景 decorator とは decorator を使ったログ出力方法の検討 decorator を使ったログ出力の実装 実装時にハマったこと等 関数定義方法の変更 非同期・同期両方に対応 クラス名の取得 ログメッセージの統一 その他考慮した点 ライブラリの利用 実践結果 良かった点 悪かった点(苦労した点) まとめ 参考文献 はじめに こんにちは、NeWork 開発チームの加藤です。普段はオンラインワークスペースサービス NeWork の開発エンジニアをしています。 今回は TypeScript ver4.x にて実験的な機能である decorator を使った事例紹介をします。我々開発チームではログ出力のための

                                                                decoratorを使ってログ出力コードの削減し可読性を上げた話 - NTT Communications Engineers' Blog
                                                              • Pythonクイックリファレンス 第4版

                                                                本書はPythonの機能を十分に活用するためのリファレンスです。チュートリアルとしての「Pythonを使ってみる」、型アノテーションや文字列といった「Python言語と組み込み機能」、ファイルやテキスト、時間の操作、数値処理などをまとめた「Pythonの標準ライブラリと拡張モジュール」、HTTPの処理や構造化テキストを学ぶ「ネットワークとWebプログラミング」、バージョン移行などに関する「拡張、配布、バージョンのアップグレードと移行」という5部構成となっています。Pythonを本格的に学びたい人から、さらなるスキルアップを目指したい人まで、Pythonを最大限に活用するための有益な情報がぎっちり詰まった1冊です。Python 3.11対応。 正誤表 ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷

                                                                  Pythonクイックリファレンス 第4版
                                                                • kannonを実プロダクトに組み込んで3倍高速化を達成した話 - エムスリーテックブログ

                                                                  こんにちは!エムスリー Advent Calendar 2023 7日目担当の小栗 (@irungo_ic)です。私は東京大学 電子情報工学科で学生(B4)をしており、エムスリーには業務委託で参画しています。 今回はgokartの分散並列化ライブラリkannonをエムスリーの実プロダクトに組み込んだ取り組みについて紹介します。結果として、社内のとあるプロダクトのIntegration TestのJobを7時間30分から2時間20分に短縮するという、約3.2倍の高速化を達成できました!それまでに生じた苦労、kannonへの追加機能などについてお話しします。 kannonとは? kannonとは、M3が主体となって開発しているOSSのデータパイプラインライブラリgokartをk8s上で分散並列実行するためのライブラリです。私が今年3月に参加したAIチームでのインターンで開発したライブラリで、そ

                                                                    kannonを実プロダクトに組み込んで3倍高速化を達成した話 - エムスリーテックブログ
                                                                  • Pythonのデコレータってどう実装するん?ってことでフレームワーク的な実装を試してみた - Qiita

                                                                    はじめに 最近はあまり触れていないが、PythonでDiscordのBOTを作成しようとすると、discord.pyやPycordのようなライブラリを使うのが一般的と思う。 その中でよく使われる構文の中に@bot.commandのような構文を目にすることだろう。 これはデコレータと呼ばれる構文なのだが、私は中身の構造は関数型引数を実装した関数のような感じなんだろうなと予想はしながらも、なんとなしで利用していた。 そんなわけで、調べていきながら便利な使い方なんかを探してみる。 import discord from discord.ext import commands intents = discord.Intents.default() intents.members = True intents.message_content = True bot = commands.Bot( co

                                                                      Pythonのデコレータってどう実装するん?ってことでフレームワーク的な実装を試してみた - Qiita
                                                                    • Python3.13正式リリースが出ました! - Qiita

                                                                      Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Python 3.13 新機能と変更点まとめ Pythonプログラミング言語の最新安定版であるPython 3.13が正式にリリースされました。 この記事では、Python 3.13のリリースノートに基づき、前バージョン(Python 3.12)からの主な変更点や新機能を解説します。 ハイライト Python 3.13では、言語自体、実装、および標準ライブラリにさまざまな変更が加えられています。主な変更点は以下の通りです: 新しい対話型インタプリタの導入:ユーザーエクスペリエンスを大幅に向上させる新しい対話型シェルがデフォルトとなりまし

                                                                        Python3.13正式リリースが出ました! - Qiita
                                                                      • LangChain の LangChain Expression Language (LCEL) を理解する - A Day in the Life

                                                                        LCEL は LangChain の chain を簡単に構築するための方法です。2023 年後半から開発が盛んに進んでおり、現在(2024 年1月)は LangChain のコードを記述するには、基本 LCEL を使って書く(以前の書き方もできますが)ことが推奨されています。LCEL のメリットについてはオフィシャルドキュメントの LCELを参考すると良いでしょう。 しかしながら、LCEL を書き始めると、オフィシャルドキュメント通りに書けば動くけど、ちょっとでもアレンジして書こうとするうまく動かなくなったりします。これは一重に LCEL の挙動を理解していなからなのですが、オフィシャルドキュメントやチュートリアルでは、LLM+RAG のコードなど、LCEL 使うとこんなにシンプルに書けるんだ、というコードは多くのっているのですが、LCEL の挙動についてはあまりのっておらず、のっていて

                                                                        • LangChainとLangGraphによるRAG・AIエージェント[実践]入門

                                                                          2024年11月9日紙版発売 2024年11月9日電子版発売 西見公宏,吉田真吾,大嶋勇樹 著 B5変形判/496ページ 定価3,960円(本体3,600円+税10%) ISBN 978-4-297-14530-9 Gihyo Direct Amazon 楽天ブックス 丸善ジュンク堂書店 ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle 楽天kobo honto この本の概要 本書では,OpenAIによるAIサービスを利用するためのOpenAI API,オープンソースのLLMアプリ開発ライブラリLangChain を使って,LLM(大規模言語モデル)を活用したRAG(検索拡張生成)アプリケーション,そしてAIエージェントシステムを開発するための実践的な知識を基礎からわかりやすく解説します。 OpenAI のチャットAPI,プロンプトエン

                                                                            LangChainとLangGraphによるRAG・AIエージェント[実践]入門
                                                                          • 現場のPython──Webシステム開発から、機械学習・データ分析まで

                                                                            2024年9月12日紙版発売 株式会社ビープラウド 監修,altnight,石上晋,delhi09,鈴木たかのり,斎藤努 著 A5判/384ページ 定価3,520円(本体3,200円+税10%) ISBN 978-4-297-14401-2 Gihyo Direct Amazon 楽天ブックス 丸善ジュンク堂書店 ヨドバシ.com 電子版 Amazon Kindle honto この本の概要 『WEB+DB PRESS』の人気連載が待望の書籍化です。Webシステム開発から機械学習・データ分析まで,現場で使えるPythonのノウハウが1冊にまとまっています。取り上げる話題は,環境構築,コード品質,テスト,構造化ログ,リリース管理,Django,Django REST framework,GraphQL,Fast API,Django ORM,データサイエンスプログラムの品質,データ分析レポー

                                                                              現場のPython──Webシステム開発から、機械学習・データ分析まで
                                                                            • 『LangChainとLangGraphによるRAG・AIエージェント[実践]入門』は、LangChain/LangGraphを日本語で学習したい人にとって必携の一冊 part1 - Qiita

                                                                              『LangChainとLangGraphによるRAG・AIエージェント[実践]入門』は、LangChain/LangGraphを日本語で学習したい人にとって必携の一冊 part1AgentOpenAIraglangchainlanggraph Amazon 技術評論社 タイトル: LangChainとLangGraphによるRAG・AIエージェント[実践]入門 以降、「本書」と呼称します。 書評は二部構成です。 第一部の書評 OpenAIのチャットAPIとLangChainの基礎からRAGまで ここ 第二部の書評 AgenticなAIシステム と LangGraph 前置き LangGraphのお勉強してますアピールをしていると、ありがたいことに、著者の吉田さんから、ご恵贈いただきました。吉田さんと大嶋さん共著のChatGPT/LangChainによるチャットシステム構築[実践]入門には大

                                                                                『LangChainとLangGraphによるRAG・AIエージェント[実践]入門』は、LangChain/LangGraphを日本語で学習したい人にとって必携の一冊 part1 - Qiita
                                                                              • 8年間の進化!CARTA MARKETING FIRMが機械学習基盤を刷新した理由とその成果 - CARTA TECH BLOG

                                                                                TL;DR CARTA MARKETING FIRMのデータサイエンスチームは、8年間にわたり機械学習基盤を進化させてきました。Luigi、AWS SageMaker、Prefectと変遷する中で、「データサイエンティストが最も付加価値を生み出す部分に集中し、時間を費やすことができる基盤」という目標に着実に近づいています。 Luigiでは開発環境構築や運用負荷が高く、柔軟性に欠けていました。 SageMakerではインフラ構築の複雑さやStep Functionsの制約が課題でした。 Prefectの導入により、Pythonのみでインフラからバッチ処理まで記述可能になり、A/Bテストの実施が容易になりました。また、ログ監視の一元化により運用効率が大幅に向上しました。 この進化を通じて、データサイエンティストの生産性と施策の実験サイクルが大幅に改善されました。 概要 CARTA MARKET

                                                                                  8年間の進化!CARTA MARKETING FIRMが機械学習基盤を刷新した理由とその成果 - CARTA TECH BLOG
                                                                                • GPT-4o(Claude)に危険物取扱者試験(甲種試験)を解かせてみる-その4: LangGraphによるエージェント化と自動の文献情報の照合|Kan Hatakeyama

                                                                                  ranggraphを入れます。GPT-4oよりもClaude-3.5-sonnetの方が読解力が高そうだったので、anthropicのモジュールも入れておきます。 pip install -U langgraph pip install langchain-anthropic練習1: 秘密の合言葉をチェックするエージェントを作るチュートリアルを少し改造したシステムを作ります。 練習で、以下のようなシステムを作ります。 人間の代わりにLLMがツールにアクセスし、返答を得るものです。 モジュールの定義モジュール類を定義します。 from typing import Annotated, Literal, TypedDict from langchain_core.messages import HumanMessage from langchain_anthropic import ChatA

                                                                                    GPT-4o(Claude)に危険物取扱者試験(甲種試験)を解かせてみる-その4: LangGraphによるエージェント化と自動の文献情報の照合|Kan Hatakeyama