Skip to content

Commit 52c1431

Browse files
authored
add clear_model interface in fleetwrapper (PaddlePaddle#18815)
* dump slot * test * proto * dump slot * test * proto * code style * code style * code style * style * add delete after unseen days * add unseen days * code style * conflict solve test=develop * add clear model * code style test=develop * code style test=develop
1 parent 9a8a7a1 commit 52c1431

4 files changed

Lines changed: 26 additions & 0 deletions

File tree

paddle/fluid/framework/fleet/fleet_wrapper.cc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -521,6 +521,15 @@ void FleetWrapper::ShrinkSparseTable(int table_id) {
521521
#endif
522522
}
523523

524+
void FleetWrapper::ClearModel() {
525+
#ifdef PADDLE_WITH_PSLIB
526+
auto ret = pslib_ptr_->_worker_ptr->clear();
527+
ret.wait();
528+
#else
529+
VLOG(0) << "FleetWrapper::ClearModel does nothing when no pslib";
530+
#endif
531+
}
532+
524533
void FleetWrapper::ShrinkDenseTable(int table_id, Scope* scope,
525534
std::vector<std::string> var_list,
526535
float decay, int emb_dim) {

paddle/fluid/framework/fleet/fleet_wrapper.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ class FleetWrapper {
148148
// mode = 1, save delta feature, which means save diff
149149
void SaveModel(const std::string& path, const int mode);
150150

151+
void ClearModel();
151152
void ShrinkSparseTable(int table_id);
152153
void ShrinkDenseTable(int table_id, Scope* scope,
153154
std::vector<std::string> var_list, float decay,

paddle/fluid/pybind/fleet_wrapper_py.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ void BindFleetWrapper(py::module* m) {
4949
.def("init_model", &framework::FleetWrapper::PushDenseParamSync)
5050
.def("save_model", &framework::FleetWrapper::SaveModel)
5151
.def("load_model", &framework::FleetWrapper::LoadModel)
52+
.def("clear_model", &framework::FleetWrapper::ClearModel)
5253
.def("stop_server", &framework::FleetWrapper::StopServer)
5354
.def("gather_servers", &framework::FleetWrapper::GatherServers)
5455
.def("gather_clients", &framework::FleetWrapper::GatherClients)

python/paddle/fluid/incubate/fleet/parameter_server/pslib/__init__.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,21 @@ def shrink_dense_table(self, decay, emb_dim=11, scope=None, table_id=None):
264264
decay, emb_dim)
265265
self._role_maker._barrier_worker()
266266

267+
def clear_model(self):
268+
"""
269+
clear_model() will be called by user. It will clear sparse model.
270+
271+
Examples:
272+
.. code-block:: python
273+
274+
fleet.clear_model()
275+
276+
"""
277+
self._role_maker._barrier_worker()
278+
if self._role_maker.is_first_worker():
279+
self._fleet_ptr.clear_model()
280+
self._role_maker._barrier_worker()
281+
267282
def load_one_table(self, table_id, model_path, **kwargs):
268283
"""
269284
load pslib model for one table or load params from paddle model

0 commit comments

Comments
 (0)