Add metadata.py and test_simple_storage_unit.py#9
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR adds core metadata structures for handling data batches and fields in the transfer queue system, along with terminology consistency improvements and comprehensive test coverage for storage functionality.
- Introduces
metadata.pywith data structures for managing field, sample, and batch metadata - Updates variable naming from "per_tensor" to "per_field" for clarity and consistency across storage and controller components
- Adds extensive test coverage for the simple storage unit with various data types and client scenarios
Reviewed Changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| verl/experimental/transfer_queue/metadata.py | New file containing metadata classes (FieldMeta, SampleMeta, BatchMeta, StorageMetaGroup) for structured data handling |
| verl/experimental/transfer_queue/storage.py | Updates variable names and comments from "per_tensor" to "per_field" terminology |
| verl/experimental/transfer_queue/controller.py | Updates method names and variable types to use "per_field" terminology consistently |
| verl/experimental/transfer_queue/client.py | Updates property access from deprecated fields to field_names |
| tests/experimental/transfer_queue/test_simple_storage_unit.py | New comprehensive test suite covering storage operations with various data types and client scenarios |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| object.__setattr__(self, "_local_indexes", [sample.local_index for sample in self.samples]) | ||
| object.__setattr__(self, "_storage_ids", [sample.storage_id for sample in self.samples]) | ||
|
|
||
| # assume all samples have the same fields. |
There was a problem hiding this comment.
This assumption should be documented more prominently, possibly as a class docstring note or method parameter documentation, as it's a critical constraint for the BatchMeta functionality.
| log_probs_tensor = torch.randn(32768) | ||
| rewards_tensor = torch.randn(32768) |
There was a problem hiding this comment.
[nitpick] The tensor size 32768 appears as a magic number. Consider defining it as a constant (e.g., LARGE_TENSOR_SIZE = 32768) for better maintainability.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Add metadata.py and test_simple_storage_unit.py * Add copyright and license information to test_simple_storage_unit.py * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Han Zhenyu 韩振宇 <o0shower0o@outlook.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…oller * Support storage unit in TransferQueue * Fix importance error * Support controller in TransferQueue (#2) * Support controller in TransferQueue * Fix import * Fix comments --------- Co-authored-by: liuximeng <13073314+liuximeng18772102439@user.noreply.gitee.com> * expose TransferQueueClient (#3) * Add copyright and license information Added copyright and licensing information to the controller.py file. * update client docstring (#5) Signed-off-by: 0oshowero0 <o0shower0o@outlook.com> * merge TransferQueue utils (#4) * [fix] Fix n_sample related problems (#8) * update client docstring Signed-off-by: 0oshowero0 <o0shower0o@outlook.com> * fix n_sample related problems Signed-off-by: 0oshowero0 <o0shower0o@outlook.com> --------- Signed-off-by: 0oshowero0 <o0shower0o@outlook.com> * expose TransferQueue client/controller UT (#6) * Add metadata.py and test_simple_storage_unit.py (#9) * Add metadata.py and test_simple_storage_unit.py * Add copyright and license information to test_simple_storage_unit.py * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Han Zhenyu 韩振宇 <o0shower0o@outlook.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Add reorder function to BatchMeta (#13) Co-authored-by: liuximeng <13073314+liuximeng18772102439@user.noreply.gitee.com> * [recipe, data] feat: TransferQueue - Support managing multiple data partitions for Train/Val/Test in controller (#45) Co-authored-by: liuximeng <13073314+liuximeng18772102439@user.noreply.gitee.com> * delete TQ source codes Signed-off-by: 0oshowero0 <o0shower0o@outlook.com> * update docs Signed-off-by: 0oshowero0 <o0shower0o@outlook.com> * update performance Signed-off-by: 0oshowero0 <o0shower0o@outlook.com> * fix Signed-off-by: 0oshowero0 <o0shower0o@outlook.com> --------- Signed-off-by: 0oshowero0 <o0shower0o@outlook.com> Co-authored-by: FightingZhen <295632982@qq.com> Co-authored-by: Han Zhenyu 韩振宇 <o0shower0o@outlook.com> Co-authored-by: LLLLxmmm <130739718+LLLLxmmm@users.noreply.github.com> Co-authored-by: liuximeng <13073314+liuximeng18772102439@user.noreply.gitee.com> Co-authored-by: Han Zhenyu 韩振宇 <hanzy19@tsinghua.org.cn> Co-authored-by: zhabuye <74179177+zhabuye@users.noreply.github.com> Co-authored-by: Jianjun Zhong <87791082+jianjunzhong@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
What does this PR do?
Checklist Before Starting
[{modules}] {type}: {description}(This will be checked by the CI){modules}includefsdp,megatron,sglang,vllm,rollout,trainer,ci,training_utils,recipe,hardware,deployment,ray,worker,single_controller,misc,perf,model,algo,env,tool,ckpt,doc,data,like[megatron, fsdp, doc]{type}is infeat,fix,refactor,chore,test[BREAKING]to the beginning of the title.[BREAKING][fsdp, megatron] feat: dynamic batchingTest
API and Usage Example
# Add code snippet or script demonstrating how to use thisDesign & Code Changes
Checklist Before Submitting
Important
Please check all the following items before requesting a review, otherwise the reviewer might deprioritize this PR for review.
pre-commit install && pre-commit run --all-files --show-diff-on-failure --color=alwaysci-requestchannel in theverlSlack workspace. (If not accessible, please try the Feishu group (飞书群).)