-
Notifications
You must be signed in to change notification settings - Fork 0
linter & formatterのupdateおよびリポジトリの整理 #4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@@ -5,12 +5,14 @@ description = "Inference Module for llm-jp-eval" | |||
readme = "README.md" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
linterなどの設定をllm-jp-eval側とあわせました
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
interfaceが大きく変わっているのでひとまず削除しました
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
承知いたしました。後でも良いのですが、変わったInterfaceに合わせた新しいスクリプトは書いていただけますでしょうか?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
自分が確認できた分では、特に問題はないと思いました。
ただこちらは以前も松田さんに見ていただいたと思いますので、よろしければ松田さんのレビューもいただきたいと思います。
@hiroshi-matsuda-rit
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
承知いたしました。後でも良いのですが、変わったInterfaceに合わせた新しいスクリプトは書いていただけますでしょうか?
説明が足りず、大変失礼いたしました。 ただこの経緯を簡単にまとめますと、以下の通りです。
もしご不明なところなどございましたら、遠慮なくお聞きください。 |
経緯の共有、ありがとうございます。
まず確認したいのは、推論サーバの起動 ⇒ 評価の実施 ⇒ 推論サーバの停止 の一連の(非同期な)フローはどのように制御していますか? 私がoffline_inferenceを実装したときは、こういう運用面での整合性の確保を最低コストで実現するために、あえてバッチで実装していました。 あと、推論処理のサーバ化を行うなら、単純にすべてvllmのサーバを呼び出す前提にしてしまう方が圧倒的に工数が少なくて済むのではないでしょうか。 |
(申し訳ないですが私はvllm/tensortllmともに同期型APIで使用するノウハウしか持ち合わせていないので、もしこれらをサーバとして使用する場合は他の方にレビューを依頼してください) |
ご返信いただきありがとうございました。
こちらは自分もバッチスクリプトが必要と考えてまして、レビューでその旨の質問をお聞きしています。
なるほど。確かにそれはおっしゃる通りですね。 |
@hiroshi-matsuda-rit
このコメントについてですが、llm-jp-eval-inferenceの既存の動きをHTTP Serverベースに書き直すといったことを意図しているわけではなく、vllm moduleはそれ単体でhttp serverとしてrequestを処理する機能があるため、これとllm-jp-evalの同期的な評価機能を組みわせることができるようになった、という意味でした。
推論サーバの起動、評価の実施、停止については以下のように一連の処理をスクリプトにするなどができるかなと思っています (懸念している部分と私の回答が少しずれているかもしれません、もしそうであればご指摘ください) uv run vllm serve llm-jp/llm-jp-3-3.7b-instruct &
PID=$!
uv run python scripts
kill $PID 本日のミーティングにおいて、あらかじめpromptを出力しておき、複数モデルで推論のみを繰り返し行うニーズがもとよりあるためにoffline推論機能があるとのはなしをお聞きしたのですが、そのような場合は従来どおりファイルベースでのoffline inferenceを実行するのがよいと思っています。 |
@e-mon 返信おまたせしてすみません。詳細な説明ありがとうございました。
こちらのcommitを読まないと意図は理解できないですね。 langchainでopenaiとvllmを透過的に扱えるようにしていると書いていただければ、そのまま理解できました。
|
削除するだけでは実装は完結しておらず、新たに何を実装/実行することになるのか説明は最低限必要だと思いますね。 あと、削除したスクリプトの新しい実装は誰が行う想定ですか? |
まあそうなりますが、これだとサーバが起動してAPIを実行できるようになるタイミングを管理できないので、同期型APIと比べて何がメリットになるのかわかりません。 モデルを永続的にvllm serveしてモデル読み込みのオーバーヘッドを減らすことを目的とするなら、vllm serveは別途手動で実行しておき、ログを見てモデルの読み込みが完了したことを確認してからllm-jp-evalを実行する、といった案内を行うことになると思います。 |
全体に、リファクタリングと機能追加が同時進行していることに起因するコミュニケーションのややこしさを強く感じています。 |
@hiroshi-matsuda-rit 付け加えるならば、今回のllm-jp-evalのリファクタリングの目的には、評価と推論の分離が含まれています。今回汎用的に書き直したことにより、llm-jp-eval側では、OpenAIのAPIフォーマットを満たしていればバックエンドの推論サーバの実装に注意を払う必要がなく、独立に評価を行えるようになった、という点でユーザーにとっては扱いやすいインターフェイスになったのではと思います。 本PRで扱うべき残論点として、HanさんやMatsudaさんがおっしゃるとおり、推論用のスクリプトをどうするのか、またそれに伴ってREADMEの改修をいつだれがするのかというのがあると思いますが、本件については私が実施する予定です。 |
@e-mon 論点整理ありがとうございます🙌 |
最新のllm-jp-eval側にあわせてコードの変更および、formatter & linter設定のupdateを行いました。
また、以下のようなinterfaceでHTTP Serverによる推論の実行が行えることを確認しています。
# inference-modules/vllm内 $ uv run vllm serve llm-jp/llm-jp-3-3.7b-instruct