@@ -720,10 +720,8 @@ std::shared_ptr<GPT2> GPT2::FromLLMC(const std::string &filepath) {
720720}
721721
722722void GPT2::SaveAsLLMC (const std::string &filepath) const {
723- CHECK_EQ (nn::parallel::global::GetTensorParallelSize (), 1 )
724- << " SaveAsLLMC currently supports TP=1 only." ;
725- CHECK_EQ (nn::parallel::global::GetPipelineParallelSize (), 1 )
726- << " SaveAsLLMC currently supports PP=1 only." ;
723+ CHECK_EQ (nn::parallel::global::GetTensorParallelSize (), 1 ) << " SaveAsLLMC currently supports TP=1 only." ;
724+ CHECK_EQ (nn::parallel::global::GetPipelineParallelSize (), 1 ) << " SaveAsLLMC currently supports PP=1 only." ;
727725
728726 std::ofstream ofs (filepath, std::ios::binary);
729727 CHECK (ofs.is_open ()) << " Failed to open model file for write: " << filepath;
@@ -737,7 +735,8 @@ void GPT2::SaveAsLLMC(const std::string &filepath) const {
737735 header[5 ] = static_cast <int32_t >(config_.n_head );
738736 header[6 ] = static_cast <int32_t >(config_.n_embd );
739737 header[7 ] = static_cast <int32_t >(config_.vocab_size );
740- ofs.write (reinterpret_cast <const char *>(header.data ()), static_cast <std::streamsize>(header.size () * sizeof (int32_t )));
738+ ofs.write (reinterpret_cast <const char *>(header.data ()),
739+ static_cast <std::streamsize>(header.size () * sizeof (int32_t )));
741740
742741 const auto state_dict = StateDict ();
743742 auto get_tensor = [&](const std::string &name) -> std::shared_ptr<Tensor> {
@@ -763,12 +762,12 @@ void GPT2::SaveAsLLMC(const std::string &filepath) const {
763762 nn::Embedding::kParamWeightName )));
764763
765764 for (int idx = 0 ; idx < config_.n_layer ; ++idx) {
766- write_tensor_fp32 (get_tensor (std::format (" {}.{}.{}.{}.{}" , kTransformerLayerName , GPT2Chunk::kHLayerName ,
767- idx, Block::kLn1LayerName , nn::LayerNorm::kParamWeightName )));
765+ write_tensor_fp32 (get_tensor (std::format (" {}.{}.{}.{}.{}" , kTransformerLayerName , GPT2Chunk::kHLayerName , idx,
766+ Block::kLn1LayerName , nn::LayerNorm::kParamWeightName )));
768767 }
769768 for (int idx = 0 ; idx < config_.n_layer ; ++idx) {
770- write_tensor_fp32 (get_tensor (std::format (" {}.{}.{}.{}.{}" , kTransformerLayerName , GPT2Chunk::kHLayerName ,
771- idx, Block::kLn1LayerName , nn::LayerNorm::kParamBiasName )));
769+ write_tensor_fp32 (get_tensor (std::format (" {}.{}.{}.{}.{}" , kTransformerLayerName , GPT2Chunk::kHLayerName , idx,
770+ Block::kLn1LayerName , nn::LayerNorm::kParamBiasName )));
772771 }
773772 for (int idx = 0 ; idx < config_.n_layer ; ++idx) {
774773 write_tensor_fp32 (get_tensor (std::format (" {}.{}.{}.{}.{}.{}" , kTransformerLayerName , GPT2Chunk::kHLayerName ,
@@ -791,12 +790,12 @@ void GPT2::SaveAsLLMC(const std::string &filepath) const {
791790 nn::parallel::RowParallelLinear::kParamBiasName )));
792791 }
793792 for (int idx = 0 ; idx < config_.n_layer ; ++idx) {
794- write_tensor_fp32 (get_tensor (std::format (" {}.{}.{}.{}.{}" , kTransformerLayerName , GPT2Chunk::kHLayerName ,
795- idx, Block::kLn2LayerName , nn::LayerNorm::kParamWeightName )));
793+ write_tensor_fp32 (get_tensor (std::format (" {}.{}.{}.{}.{}" , kTransformerLayerName , GPT2Chunk::kHLayerName , idx,
794+ Block::kLn2LayerName , nn::LayerNorm::kParamWeightName )));
796795 }
797796 for (int idx = 0 ; idx < config_.n_layer ; ++idx) {
798- write_tensor_fp32 (get_tensor (std::format (" {}.{}.{}.{}.{}" , kTransformerLayerName , GPT2Chunk::kHLayerName ,
799- idx, Block::kLn2LayerName , nn::LayerNorm::kParamBiasName )));
797+ write_tensor_fp32 (get_tensor (std::format (" {}.{}.{}.{}.{}" , kTransformerLayerName , GPT2Chunk::kHLayerName , idx,
798+ Block::kLn2LayerName , nn::LayerNorm::kParamBiasName )));
800799 }
801800 for (int idx = 0 ; idx < config_.n_layer ; ++idx) {
802801 write_tensor_fp32 (get_tensor (std::format (" {}.{}.{}.{}.{}.{}" , kTransformerLayerName , GPT2Chunk::kHLayerName ,
@@ -819,10 +818,10 @@ void GPT2::SaveAsLLMC(const std::string &filepath) const {
819818 nn::parallel::RowParallelLinear::kParamBiasName )));
820819 }
821820
822- write_tensor_fp32 (get_tensor (std::format ( " {}.{}.{} " , kTransformerLayerName , GPT2LastStage:: kLnFLayerName ,
823- nn::LayerNorm::kParamWeightName )));
824- write_tensor_fp32 (get_tensor (std::format ( " {}.{}.{} " , kTransformerLayerName , GPT2LastStage:: kLnFLayerName ,
825- nn::LayerNorm::kParamBiasName )));
821+ write_tensor_fp32 (get_tensor (
822+ std::format ( " {}.{}.{} " , kTransformerLayerName , GPT2LastStage:: kLnFLayerName , nn::LayerNorm::kParamWeightName )));
823+ write_tensor_fp32 (get_tensor (
824+ std::format ( " {}.{}.{} " , kTransformerLayerName , GPT2LastStage:: kLnFLayerName , nn::LayerNorm::kParamBiasName )));
826825
827826 ofs.flush ();
828827 CHECK (ofs.good ()) << " Failed to flush model file: " << filepath;
0 commit comments