Skip to content

Commit eff292e

Browse files
committed
fix set_new_adapter_tensors, wrong output
1 parent 1a8ab30 commit eff292e

File tree

1 file changed

+45
-1
lines changed

1 file changed

+45
-1
lines changed

src/cpp/src/lora/adapter.cpp

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -684,7 +684,7 @@ NodePtr tensors_multiplication(NodePtr input,
684684
const auto target_shape = target.get_partial_shape();
685685
const auto target_rank = target_shape.rank().get_length();
686686

687-
std::cout << '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!tensors_multiplication' << std::endl;
687+
std::cout << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!tensors_multiplication" << std::endl;
688688

689689
for (size_t i = 0; i < multipliers.size(); ++i) {
690690
NodePtr normalized = multipliers[i];
@@ -1376,6 +1376,50 @@ struct AdapterControllerImpl {
13761376
set_lora_tensors(state, lora_var_ids.first, lora_var_ids.second, lora_indices, weight_getters, alpha_only);
13771377
}
13781378

1379+
std::cout <<" constant names" << std::endl;
1380+
for (const auto& constant_variable_id : constant_variable_ids) {
1381+
std::cout << constant_variable_id.first << std::endl;
1382+
}
1383+
1384+
for (const auto& constant_variable_id : constant_variable_ids) {
1385+
// size_t const_lora_index = state_name_to_index.at(constant_variable_id.second.variable_id);
1386+
// ov::Tensor const_tensor = ov::Tensor(const_lora_index.data_type,
1387+
// dynamic_to_static(constant_variable_id.data_shape));
1388+
1389+
const std::string& const_name = constant_variable_id.first;
1390+
const auto& var_info = constant_variable_id.second;
1391+
size_t const_lora_index = state_name_to_index.at(var_info.variable_id);
1392+
1393+
ov::Tensor const_tensor(var_info.data_type, dynamic_to_static(var_info.data_shape));
1394+
1395+
if (const_name.find("const") != std::string::npos) {
1396+
const_tensor.data<bool>()[0] = true;
1397+
} else {
1398+
// const auto& var_info = constant_variable_id.second;
1399+
// size_t const_lora_index = state_name_to_index.at(var_info.variable_id);
1400+
1401+
// ov::Tensor const_tensor(var_info.data_type, dynamic_to_static(var_info.data_shape));
1402+
1403+
if (!const_getter.empty()) {
1404+
// auto const_name = constant_variable_id.first;
1405+
auto opt_lora_const = const_getter[0](const_name);
1406+
if (opt_lora_const && opt_lora_const->tensor) {
1407+
auto constant_node = std::dynamic_pointer_cast<v0::Constant>(opt_lora_const->tensor);
1408+
OPENVINO_ASSERT(constant_node, "Expected ov::op::v0::Constant for ", const_name);
1409+
1410+
// Copy data
1411+
const_tensor = ov::Tensor(constant_node->get_element_type(), constant_node->get_shape());
1412+
std::memcpy(const_tensor.data(), constant_node->get_data_ptr(), сonst_tensor.get_byte_size());
1413+
} else {
1414+
OPENVINO_THROW("LoRA constant tensor not found for name: ", const_name);
1415+
}
1416+
}
1417+
1418+
state[const_lora_index].set_state(const_tensor);
1419+
1420+
}
1421+
}
1422+
13791423
// for (const auto& constant_variable_id : constant_variable_ids) {
13801424
// auto b = constant_variable_id.second.variable_id;
13811425
// // variable_info

0 commit comments

Comments
 (0)