Changelog¶
All notable changes to this project will be documented in this file. The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased¶
Changed¶
- Update
RAGSystem.retrieveand batch version to handled expanded return type of retriever.encode_query (#488) HFSentenceTransformerRetrieverencode methods were returningnp.ndarrays- change totorch.Tensor(#487)- Add
data_structres.retriever.EncodeResulttype and expanded return type of encode methods forBaseRetriever(#487) - Expansion of
BaseRetrieverto matchBaseGeneratorfor multimodal and addAudioRetrieverMixin,HasAudioModality,VideoRetrieverMixin,HasVideoModality(#483) - Move
Query,Prompt,Contextto~data_structures.rag(#480) - Introduce
_DataCollatorForLSRAttributesto bypass updated pydantic complaints with update to deps (#479) - Make text-only HF generators be able to accept
Query,ContextanPrompttypes (#477) - Rename
HasImageModalitytoRetrieverHasImageModality(#475)
Added¶
- Add
HFMultimodalModelGenerator(#473) - Expand
BaseGeneratormethods to accommodate multi-modal (#474) Query,ContextandPromptdata structures (#474)ImageRetrieverMixinandHasImageModality(#472)
[0.0.27] - 2025-06-17¶
Added¶
- Update
batch_retrievefor RAGSystems to usebatch_retrieveof Knowledge Stores if implemented (#441) - Implement
batch_retrievefor Qdrant sync/async knowledge stores (#439) - Add
batch_retrieveto KnowledgeStore classes that raiseNotImplementedErrorby default (#436) - Add batch methods for RAGSystem (#270)
AsyncQdrantKnowledgeStore(#430)
[0.0.26] - 2025-06-10¶
Changed¶
- Batch execution of cosine sim for
InMemoryKnowledgeStore(#366)
[0.0.25] - 2025-06-09¶
Changed¶
- pre-commit hook for mypy with
pass_filenames = Falseto resolve error with .pyi and .py files in same dir (#419)
Added¶
- Lazy loading of heavy classes and modules to improve import time of top-level module (#419)
- Fix monitor_live method (#413)
- Add ProcessMonitor for notebook utils (#412)
- Add docs for the LangChain Bridge
[0.0.24] - 2025-06-02¶
Added¶
- [Feature] Add to_sync() methods for AsyncKnowledgeStore and AsyncRAGSystem and their NoEncode variants. (#404)
- Add
rerank_callbacktoMCPKnowledgeStore(#402) - Add
BaseMCPKnowledgeStore(#400) - Add
MCPKnowledgeStoreandMCPKnowledgeSource(#393) - Add LangChain bridge (#291)
- Add
AsyncRAGSystemandAsyncNoEncodeRAGSystem(#392) - Feature/364 onboard more benchmarks (#391)
- Validate installed version of bridge framework to confirm compatibility based on
BridgeMetadata(#323) - Add
NoEncodeRAGSystem(#386) - Add
NoEncodeBaseKnowledgeStoreandNoEncodeAsyncBaseKnowledgeStore(#385)
Changed¶
- Change RALT and DataCollatorForRALT to allow for union RAGSystem | NoEncodeRAGSystem (#404)
- Change return type of converter functions to
list[KnowledgeNode]and source.retriever() return~mcp.CallToolResult(#402) - Refactor
MCPKnowledgeStoreandMCPKnowledgeSourceto use new base and haveretrievemethod (#400) - Changed
load,count, andpersistmethods inAsyncNoEncodeRAGSystemto sync (#393) - Modified private API for
_RAGSystem,_AsyncRAGSystemand no-encode versions (#392)
[0.0.23] - 2025-05-27¶
Added¶
- Add
BaseAsyncKnowledgeStore(#262) - Add ability to save benchmark evaluations to a JSONL file of
BenchmarkEvaluationExamples(#377)
[0.0.22] - 2025-05-26¶
Added¶
- Feature/348 onboard pubmedqa (#363)
Changed¶
- Fix bug in
HuggingFaceGeneratorMixin.generate()to return newly generated tokens only (#345) - Passing kwargs for trainer (#365)
[0.0.21] - 2025-05-23¶
Changed¶
- Fix bug in
UnslothFastModelGeneratorwhen callingto_peftand LoRA adapters mismatch dtype with base (#360) - Fix bug in
HFPreTrainedTokenizer.encode()where shape of raw encoder resulttokenizer()is of dimension 2 i.e., batched (#360) - Improved
DataCollatorForRALTfinal dtypes after padding is applied (#360)
[0.0.20] - 2025-05-23¶
Added¶
- Support
get_peft_modelinUnslothFastModelGenerator(#356) - New integration: Unsloth 🦥
UnslothFastModelGenerator(#356)
Changed¶
- Make knowledge node embedding optional and remove redundant embedding in Qdrant upserts (#353)
[0.0.19] - 2025-05-20¶
Added¶
- Add support for in-memory Qdrant instances (#350)
- Add
EvalError(#339) - Add streaming support for HF benchmarks (#337)
- [Feature] Add HuggingFaceBenchmarkMixin and first HuggingFaceMMLU benchmark (#334)
- [Feature] Add ExactMatchEvaluationMetric (#333)
- [Feature] Add base.evals module and BaseBenchmark BaseBenchmarker classes (#326)
Changed¶
- Add
num_examplestoBaseBenchmark(#344)
[0.0.18] - 2025-05-16¶
Added¶
- Trainer managers to root import (#320)
Changed¶
- Don't raise
MissingExtraErrorfor HF generators at import time (#320) - Add public api for
fed_rag.trainers(#320) - Refactor
typestodata_structures(#319)
[0.0.17] - 2025-05-16¶
Changed¶
- Rip out public api, as its not standard (#317)
[0.0.16] - 2025-05-16¶
public API [0.0.2]¶
- added retrievers, generators, knowledge stores, and rest of types (#310)
[0.0.15] - 2025-05-16¶
Added¶
.apipublic module (#307)- New
coremodule that housesRAGSystem(#306)
Changed¶
- Refactor: move aux RAG system types to
fed_rag.types.rag(#306)
[0.0.14] - 2025-05-14¶
Added¶
LlamaIndexBridge(#285)- Add base bridge mixin (#284)
[0.0.13] - 2025-05-10¶
Added¶
- [Feature] Add Qdrant knowledge store (sync) (#259)
Changed¶
QdrantKnowledgeStorealign with qdrant sdk (#273)- [Fix] Set timeout param to ~qdrant_client.QdrantClient and use contextmanager for client creation and teardown (#272)
- add load_nodes_kwargs and unit test
QdrantKnowledgeStore(#266) - fix count
QdrantKnowledgeStore(#265) - update federate fine-tune (#256)
- Move validation of the presence of trainers to BaseTrainerManager (#257)
[0.0.12] - 2025-05-03¶
Changed¶
- Manually handle the padding versus delegating to
DataCollatorForCausalLM(#248) - Ensure that
TrainingArguments.remove_unused_columnsis set toFalse(#248)
[0.0.11] - 2025-05-03¶
Added¶
HuggingFaceTrainerManagermissing implementations for preparing retriever/generator models for training (#245)
Changed¶
- [Fix] LSRLoss should have first input in KL div be in log space (#245)
- [Fix]
DataCollatorForLSRshould subclassSentenceTransformerDataCollator(#245) - [Fix]
DataCollatorForLSRshould require grads for retriever's for retriever scores, but not for lm scores (#245)
[0.0.10] - 2025-05-02¶
Added¶
- [Feature] Add HuggingFaceTrainerForRALT and associated DataCollatorForRALT (#241)
- [Feature] Add PyTorchTrainerMixin (#239)
- add trainers and data collators (#232)
- [Feature] Add fed_rag.base.data_collators and BaseDataCollator (#231)
- [Feature] Add target template to DataCollatorForLSR (#230)
- [Feature] Implement compute_loss for LSRSentenceTransformerTrainer (#229)
- [Feature] Add HuggingFaceLSRTrainer (#227)
- [Feature] Adds HuggingFaceTrainerMixin (#226)
- Add BaseTrainer (#225)
- [Feature] Add HFRAGTrainer (#220)
- [Feature] Add PyTorchRAGTrainer (#219)
- [Feature] Data collators for LSR (both huggingface and torch) (#187)
- Add exception for missing extra error (#208)
Changed¶
- [refactor] Improvements to TrainerManagers and Trainers classes and adds BaseRetrieverTrainer & BaseGeneratorTrainer (#238)
- [Refactor] Move DataCollatorForLSR to new fed_rag.data_collators.huggingface module (#233)
- [chore] rename to trainer manager (#223)
- [chore] Move HFSentenceTransformerRetriever to huggingface module for consistency (#207)
[0.0.9] - 2025-04-25¶
Added¶
- [Feature] Add abstract method BaseGenerator.compute_target_sequence_proba (cherry picked) (#201)
- [Feature] Add LM Supervised Retriever Loss LSRLoss (#182)
Changed¶
- Make huggingface generators more dry (#202)
- Improve/validate LSRLoss forward interface (#185)
[0.0.8] - 2025-04-09¶
Added¶
BaseTokenizer.encodenow retursn new typeEncoderResult(#150)
[0.0.7] - 2025-04-06¶
Added¶
- ManagedInMemoryKnowledgeStore and ManagedMixin for KnowledgeStore [#135]
- Added
nameattribute toBaseKnowledgeStore[#135] - Knowledge store exceptions [#135]
Changed¶
- Persist and load uses
name(ks_idonly exists for managed version) [#135] - Exception modules have their own respective base exception [#135]
[0.0.6] - 2025-03-26¶
Post¶
- Test Zenodo
Added¶
- [Feature] Add utils.data module for building RAG Fine-tuning datasets given a RAGSystem and Sequence of examples (#98)
- [Feature] Adds BaseTokenizer and HFPretrainedTokenizer subclass (#99)
- [Feature] Enable BaseGenerator and BaseRetriever used in RAGSystem to access the rag system (#95)
Changed¶
- Small fixes to problems found while running the quick start example (#93)
Other¶
- Update LICENSE (#92)
[0.0.5] - 2025-03-17¶
Added¶
- [Feature] Added HFPeftModelGenerator for efficient fine-tuning (#84)
- [Feature] Added HuggingFace's peft.PeftModel as an acceptable model type for decoration (#76)
- Added vector compute submodule (#70)
- [Example] Added RA-DIT implementation using HFPeftModelGenerator for llama-2-7b (#86)
- [Example] Added mock generator training loop; federated for a 350M model (#67)
Changed¶
- [Example] RA-DIT default generator model to load with device map auto (#88)
- [Example] RA-DIT re-factor example for better organization (#87)
- [Feature] Updated set_weights and get_weights for HuggingFaceFlowerClient to include logic for PeftModel (#82)
- Re-organized RA-DIT example app (#69)
[0.0.4] - 2025-03-14¶
Added¶
- [EXAMPLE] Adds RA-DIT retriever train loop using HuggingFace integrations (#64)
- Added HuggingFaceFLTask for federated learning with HuggingFace models (#61)
- Added federate.tester.huggingface and associated inspectors (#59)
- Added federate.trainer.huggingface decorators (#56)
- Added ability to specify device on load for HF Models (#55)
[0.0.3] - 2025-03-12¶
Added¶
- Build RAG system implementation (#50)
- Added RAGSystem class (#45)
- Implemented InMemoryKnowledgeStore (#43)
- Added BaseKnowledgeStore and KnowledgeNode models (#41)
- Added HFSentenceTransformerRetriever (#38)
- Added BaseRetriever class (#35)
- Added HFPreTrainedGenerator class for generative models (#34)
- Implemented BaseGenerator and HFPretrainedModelGenerator classes (#33)
- Added support for llama3 models (#30)
- Added example Retrieval-Augmented Generation with LLM integration (#28)
- Implemented DragonRetriever for example RAG system (#26)
Changed¶
- Updated to use HFSentenceTransformerRetriever in examples (#48)
[0.0.2] - 2025-03-01¶
Changed¶
- Quickstart as a workspace member, smaller package builds (#24)
[0.0.1] - 2025-03-01¶
Added¶
- Working QuickStart! (#20)
- Implementation PyTorchFLTask.server() (#17)
- PyTorchFLTask and PyTorchFlowerClient (#16)
- Inspection of tester callable for pytorch.tester decorator (#14)
- federate.trainer.pytorch decorate inspects trainer loop to extract spec (#12)
- BaseTaskModel and PyTorchTaskModel (#5)