PharmaXテックブログのフィード
https://zenn.dev/p/pharmax
PharmaXエンジニアチームのテックブログです。エンジニアメンバーが、PharmaXの事業を通じて得た技術的な知見や、チームマネジメントについての知見を共有します。 PharmaXエンジニアチームやメンバーの雰囲気が分かるような記事は、note(https://note.com
フィード
[LangGraph] Command機能による動的なルーティング
PharmaXテックブログのフィード
はじめにこんにちは。PharmaXでエンジニアをしている諸岡(@hakoten)です。この記事では、先日LangGraphに新しく追加された機能である、Command について解説します。 環境この記事執筆時点では、以下のバージョンを使用しています。LangChain周りは非常に開発速度が早いため、現在の最新バージョンを合わせてご確認くださいpython: 3.12.4langchain: 0.3.11langgraph: 0.2.59 LangGraphのCommand機能https://blog.langchain.dev/command-a-new-...
9日前
[LangGraph] Sendを使った動的なNodeの並列実行
PharmaXテックブログのフィード
はじめにこんにちは。PharmaXでエンジニアをしている諸岡(@hakoten)です。この記事では、LangGraphを活用してアプリケーションを実装する際に、動的にノードを並列実行する方法である Send APIについて解説します。※厳密には「並行 (concurrent)」と「並列 (parallel)」は異なる動作を指しますが、この記事ではLangGraphのノードを非同期で同時に処理するという意味で「並列」という言葉を使用しています。ご了承ください。 LangGraphにおけるNodeの並列実行の基本ここでは、LangGraphでのNodeの並列実行について簡単に...
1ヶ月前
OpenAIの蒸留機能(Model Distillation)を使って運用中のLLMのコストを削減する取り組み
PharmaXテックブログのフィード
こんにちは上野(@ueeeeniki)です。みなさんの会社では、今年のDev DayでOpenAIが発表した蒸留機能であるModel Distillationをうまく活用できているでしょうか。蒸留とは、大きいモデルの出力を小さいモデルの学習に利用する方法です。これにより、大きいモデルに匹敵する精度を持つ小さいモデルを作ることができます。この蒸留を行うModel Distillationという新機能を上手く使えばLLMアプリケーションのコストを劇的に削減することができます。例えば、GPT-4oの出力を使って蒸留したGPT-4o-miniの料金は、下記の表では、fine-tuned ...
1ヶ月前
スクラムマスターが担うべき役割と必要なスキルについて
PharmaXテックブログのフィード
はじめにこんにちは。PharmaXでエンジニアリングマネージャーをしている古家(@enzerubank)です。社内の共有用にスクラムマスターの役割について言語化しているので、記事にしてみました。 スクラムガイド2020の定義スクラムガイド2020にはスクラムマスターの役割は下記のように定義されています。 スクラムマスターは、スクラムチームの有効性に責任を持つ存在 さまざまな形でスクラムチームを⽀援する⾃⼰管理型で機能横断型のチームメンバーをコーチするすべてのスクラムイベントが開催され、ポジティブで⽣産的であり、タイムボックスの制限が守られるようにするスクラ...
2ヶ月前
経営者から見た"開発生産性向上"の違和感に向き合う
PharmaXテックブログのフィード
こんにちは。PharmaXの上野(@ueniki)です。2024年10月31日、PharmaXはFindy Team+ Award 2024のSmall Divの部(エンジニア組織が50人未満)を受賞しました!この賞は開発生産性向上に関して優れた取り組みを行った企業に贈られるものです。この賞も今年で3年目を迎え、開発生産性という言葉が何となく日本のIT企業に受け入れられてきているように感じます。特にスタートアップで、ソフトウェア開発に携わっている方は、一度は"開発生産性"という言葉を聞いたことがあるのではないでしょうか。ですが、開発生産性という言葉自体は聞いたことがあるものの...
2ヶ月前
開発生産性に取り組む前に知りたかった3つのこと
PharmaXテックブログのフィード
はじめにこんにちは。PharmaXでエンジニアリングマネージャーをしている古家(@enzerubank)です。2024年10月31日、PharmaXはFindy Team+ Award 2024のSmall Divの部(エンジニア組織が50人未満)を受賞しました!この賞は開発生産性向上に関して優れた取り組みを行った企業に贈られるものです。PharmaXでは去年の10月から1年近くの間、開発生産性の向上に取り組んできましたが、今改めて振り返ってみて「最初から知りたかったな」と感じたことを3つに絞ってまとめてみました。 その1: リソース効率性とフロー効率性について知る ...
2ヶ月前
[LangGraph] CheckpointとStoreの使い方
PharmaXテックブログのフィード
はじめにこんにちは。PharmaXでエンジニアをしている諸岡(@hakoten)です。この記事では、LangGraphのデータ永続化機能であるCheckpointerとStoreについて解説します。2024年の現時点で、LLMによる複雑なエージェントを構築するには、各LLM実行における横断的なデータ保存の仕組みが不可欠です。LangGraphのCheckpointerとStoreを活用することで、LLMの実行状態を効率的に保存・復元したり、複数の会話セッションにまたがるデータ管理が可能となります。 環境この記事執筆時点では、以下のバージョンで実施しています。LangC...
2ヶ月前
ピープルマネジメントの仕事とは何か
PharmaXテックブログのフィード
はじめにこんにちは。PharmaXでエンジニアリングマネージャーをしている古家(@enzerubank)です。最近エンジニアリングマネージャーの仕事を整理している中で、ピープルマネジメントの解像度を高めておく必要があるなと思い、調べた内容をまとめてみました。 ピープルマネジメントとはピープルマネジメントとは従業員と向き合い、潜在能力や可能性を最大限発揮することで、組織全体の成果を最大化することを目的にしたマネジメント手法です。 従来型のマネジメントとの違いピープルマネジメントと従来型のマネジメントは「組織全体の成果を最大化する」という目的は同じものの、そのための手法が...
2ヶ月前
結局スクラムとは何なのか
PharmaXテックブログのフィード
はじめにこんにちは。PharmaXでエンジニアリングマネージャーをしている古家(@enzerubank)です。弊社では開発手法としてスクラムを採用しているのですが、新しいメンバーに説明する時に改めてスクラムとは何なのかを言語化しておく必要があるなと思い、まとめてみました。 スクラムガイドの定義スクラムとはアジャイルを実践するための手法の一つであり、公式のドキュメントであるスクラムガイドには以下のように定義されています。スクラムとは、複雑な問題に対応する適応型のソリューションを通じて、⼈々、チーム、組織が価値を⽣み出すための軽量級フレームワークである。複雑な問題に適...
3ヶ月前
[LangChain] Tool Calling 入門
PharmaXテックブログのフィード
はじめにこんにちは。PharmaXでエンジニアをしている諸岡(@hakoten)です。この記事では、LangChainの「Tool Calling」の基本的な使い方と仕組みについてご紹介しています。LangChainをこれから始める方や、Tool Callingをまだあまり使ったことがない方に、ぜひ最後まで読んでいただけると嬉しいです。 環境この記事執筆時点では、以下のバージョンで実施しています。LangChain周りは非常に開発速度が早いため、現在の最新バージョンを合わせてご確認くださいlangchain: 0.3.1langchain-openai: 0.2.1...
3ヶ月前
自律的な組織とは何か
PharmaXテックブログのフィード
はじめにこんにちは。PharmaXでエンジニアリングマネージャーをしている古家(@enzerubank)です。最近エンジニアリングマネージャーとして理想のプロダクト開発組織のイメージを考えているのですが、よく開発組織の理想として挙げられる自律的な組織についての解像度を高める必要があるなと思い、調べた内容をまとめてみました。今回の内容は自律的な組織にどう近づけばいいのかという話よりかは、自律的な組織を考える上での前提を理解することを目的にしています。 自律的な組織の原点は?そもそもなぜ自律的な組織を目指すのかというと、その原点はMIT(マサチューセッツ工科大学)のピーター・...
3ヶ月前
20%ルールを開発チームに導入する意義
PharmaXテックブログのフィード
はじめにこんにちは。PharmaXでエンジニアリングマネージャーをしている古家(@enzerubank)です。本記事では、20%ルールを開発チームに導入する際の意義についてまとめてみました。 Googleの20%ルールの定義20%ルールはGoogleが始めた施策として有名です。Googleにおける20%ルールとは、「業務時間の内の20%を普段の業務とは異なる業務(Googleにおいては新規事業立案)にあてて良い」という制度です。https://grow.google/intl/ALL_jp/work-at-google/GmailやGoogleマップといったサービスは2...
3ヶ月前
[LangChain] with_structured_output を使用して、Pydanticのクラスをレスポンスとして受け取る
PharmaXテックブログのフィード
はじめにこんにちは。PharmaXでエンジニアをしている諸岡(@hakoten)です。LangChainには、各LLMモデルのレスポンスをあらかじめ決まった構造のクラスで受け取ることができるwith_structured_output というメソッドがあります。この記事では、with_structured_outputを使用してPydanticのクラスをレスポンスとして受け取る方法についてをご紹介します。変換の仕組みについても簡単に解説していますので、よければぜひ一読ください。!この記事ではOpenAIのモデル(ChatOpenAI)を使用した with_structur...
3ヶ月前
スクラムにおける開発タスクの予実の乖離をどうするか
PharmaXテックブログのフィード
はじめにこんにちは。PharmaXでエンジニアリングマネージャーをしている古家(@enzerubank)です。本記事では、開発タスクの予実の乖離についての課題を整理し、対応策についてまとめています。 課題意識弊社ではスクラムで開発を行っており、スプリントプランニングの時点で今回のスプリントで使える時間を計算し、各メンバーのキャパシティを可視化するようにしています。そしてユーザーストーリーを各タスクに分解後、実時間でタスクを見積もり、キャパシティに収まるかどうかを確認し、オーバーコミットにならないようにしてからスプリントを開始しています。ただそれでも、スプリントが終わって...
3ヶ月前
マネジメントの仕事とは何か
PharmaXテックブログのフィード
はじめにこんにちは。PharmaXでエンジニアリングマネージャーをしている古家(@enzerubank)です。最近エンジニアリングマネジメントの仕事内容について改めて体系化しようとしているのですが、その前段としてそもそも一般的なマネジメントとは何なのかを説明する必要があると思い、調べた内容をまとめてみました。今回の内容は実際の業務の中でやっていることというよりかは、一般的にマネジメントの概念を理解して全体像をざっくり抑えることを目的にしています。 そもそもマネジメントとはマネジメントとは、日本語で「管理」「経営」と訳されます。ビジネスにおいては組織の成果アップのためにヒト...
3ヶ月前
LangGraphにおけるStateの分割方法
PharmaXテックブログのフィード
はじめにこんにちは。PharmaXでエンジニアをしている諸岡(@hakoten)です。今回は、LLMアプリケーション開発をサポートするグラフ管理ツールであるLangGraphのStateの管理方法について、いくつかの事例を交えながらご紹介します。なお、LangGraphそのものの使い方に興味のある方は、こちらの記事もぜひご参照ください。https://zenn.dev/pharmax/articles/8796b892eed183 環境この記事執筆時点では、以下のバージョンで実施しています。とくにLangChain周りは非常に開発速度が早いため、現在の最新バージョンを...
3ヶ月前
LangGraph Cloud(ベータ版)の基本機能を試してみた
PharmaXテックブログのフィード
はじめにこんにちは。PharmaXでエンジニアをしている諸岡(@hakoten)です。今回は、LangGraphの クラウドホスティング環境であるLangGraph Cloudについて紹介します。LangGraph Cloudは現在ベータ版ですが、すでに多くの機能が利用可能です。弊社では、既にLangSmithを運用していることもあり、LangGraph Cloudの採用を視野に基本的な機能を試してみました。今回はその内容をシェアしたいと思います。LangGraph Cloudに興味がある方の参考になれば幸いです。 LangGraph Cloudとはhttps://ww...
4ヶ月前
Findy Team+に追加されたSPACEを計測できるチームサーベイ機能が良かった
PharmaXテックブログのフィード
はじめにこんにちは。PharmaXでエンジニアリングマネージャーをしている古家(@enzerubank)です。弊社では開発生産性の改善のためにFindy Team+を活用しているのですが、先日チームサーベイ機能という新機能がリリースされました。チームサーベイ機能をリリースしました!このチームサーベイ機能はMicrosoftやGitHub等によるリサーチで提唱されたSPACEフレームワークに沿って、チームの開発者体験を可視化し、生産性向上に向けた取り組みを推進できる機能です。開発生産性の指標としてはFour Keysが有名ですが、これはあくまでDevOpsの指標であり、リリー...
4ヶ月前
LangGraphのMermaid出力機能とその活用事例
PharmaXテックブログのフィード
はじめにこんにちは。PharmaX でエンジニアをしている諸岡(@hakoten)です。この記事では、LLMアプリケーション開発をサポートするグラフ管理ツールである、LangGraphのMermaid出力機能の活用方法をご紹介します。少しニッチな内容となりますが、既にLangGraphを使っている方や、これから使うことを検討している方にとって、参考になれば幸いです。 LangGraphとはLangGraphは、LangChainのツール群の一つで、LLMエージェントのステップをグラフ化し、状態管理を行うためのツールです。LangChainは、大規模言語モデル(LLM)を...
4ヶ月前
マルチモーダルモデル音声対話の可能性と課題について考えていること
PharmaXテックブログのフィード
こんにちは。PharmaXの上野(@ueniki)です今回は、最近注目しているマルチモーダルモデルを使った音声対話について取り上げたいと思います。PharmaXのYOJOというサービスについてはこれまで何度かご紹介してきましたが、超簡単に言えば、オンラインで薬剤師に健康や医薬品について相談し、医薬品が購入できるというサービスです。YOJOは、チャットと通話を主軸にしたサービスなので、LLMとの相性が非常に良く、今後は音声のAI化にも取り組んで行きたいと思っています。2024年5月のGPT-4oのデモで特に驚きを持って迎えられたのが音声対話でした。ChatGPTでは、「高度な音声...
4ヶ月前