mirror of
https://github.com/huggingface/text-generation-inference.git
synced 2025-06-10 03:12:07 +00:00
test(backend): add more unittest
This commit is contained in:
parent
c94b9de445
commit
ad3ed0d1a1
@ -39,10 +39,10 @@ if(${CMAKE_BUILD_TYPE} STREQUAL "Debug")
|
||||
endif()
|
||||
|
||||
# This attempt to detect if the compiler can emit warning if it can't apply return value optimization from a function
|
||||
#check_cxx_compiler_flag("-Wnrvo" COMPILER_SUPPORT_WARNING_ON_NVRO)
|
||||
#if(${COMPILER_SUPPORT_WARNING_ON_NVRO})
|
||||
# set(CMAKE_CXX_FLAGS "{CMAKE_CXX_FLAGS} -Wnvro")
|
||||
#endif()
|
||||
check_cxx_compiler_flag("-Wnrvo" COMPILER_SUPPORT_WARNING_ON_NVRO)
|
||||
if(${COMPILER_SUPPORT_WARNING_ON_NVRO})
|
||||
set(CMAKE_CXX_FLAGS "{CMAKE_CXX_FLAGS} -Wnvro")
|
||||
endif()
|
||||
|
||||
# Let's build TRTLLM as part of CMake
|
||||
add_subdirectory("${trtllm_SOURCE_DIR}/cpp" "${trtllm_SOURCE_DIR}/..")
|
||||
@ -74,12 +74,15 @@ if (${TGI_TRTLLM_BACKEND_BUILD_TESTS})
|
||||
)
|
||||
FetchContent_MakeAvailable(Catch2)
|
||||
|
||||
add_executable(tgi_trtllm_backend_tests tests/test_hardware.cpp)
|
||||
add_executable(tgi_trtllm_backend_tests tests/test_hardware.cpp tests/test_backend.cpp)
|
||||
target_include_directories(tgi_trtllm_backend_tests PUBLIC "${trtllm_SOURCE_DIR}/cpp/include")
|
||||
target_include_directories(tgi_trtllm_backend_tests PUBLIC "csrc/")
|
||||
target_link_libraries(tgi_trtllm_backend_tests PRIVATE CUDA::cudart CUDA::nvml)
|
||||
target_link_libraries(tgi_trtllm_backend_tests PRIVATE Catch2::Catch2WithMain tensorrt_llm nlohmann_json::nlohmann_json spdlog::spdlog)
|
||||
|
||||
if(CMAKE_BUILD_TYPE MATCHES "Debug")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -fsanitize=undefined -fsanitize=address")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -fsanitize=undefined -fsanitize=address")
|
||||
target_link_options(tgi_trtllm_backend_tests BEFORE PUBLIC -fsanitize=undefined PUBLIC -fsanitize=address)
|
||||
endif()
|
||||
|
||||
|
@ -69,10 +69,10 @@ namespace huggingface::tgi::backends::trtllm {
|
||||
|
||||
constexpr explicit generation_config_t(const json &config):
|
||||
top_p(config.value("top_p", 1.0f)), temperature( config.value("temperature", 1.0f)), stop_words(0) {
|
||||
if(config.contains("/eos_token_id"_json) && config["/eos_token_id"_json].is_array()) {
|
||||
const auto& eos_token_id = config["eos_token_id"];
|
||||
if(config.contains("/eos_token_id"_json_pointer) && config["/eos_token_id"_json_pointer].is_array()) {
|
||||
const auto& eos_token_id = config["/eos_token_id"_json_pointer];
|
||||
std::for_each(eos_token_id.begin(), eos_token_id.end(), [this](const auto token_id) {
|
||||
stop_words.emplace_back(token_id.template get<int32_t>());
|
||||
stop_words.emplace_back(1, token_id.template get<int32_t>());
|
||||
});
|
||||
|
||||
SPDLOG_DEBUG("Detected {:d} predefined stop_words from generation_config.json", stop_words.size());
|
||||
|
36
backends/trtllm/tests/test_backend.cpp
Normal file
36
backends/trtllm/tests/test_backend.cpp
Normal file
@ -0,0 +1,36 @@
|
||||
//
|
||||
// Created by mfuntowicz on 12/3/24.
|
||||
//
|
||||
|
||||
#include <catch2/catch_all.hpp>
|
||||
#include <nlohmann/json.hpp>
|
||||
#include "../csrc/backend.hpp"
|
||||
|
||||
using namespace huggingface::tgi::backends::trtllm;
|
||||
|
||||
TEST_CASE("parse generation_config.json", "[generation_config_t]")
|
||||
{
|
||||
const json config_j = {{"temperature", 0.6}, {"top_p", 0.95}, {"eos_token_id", {1,2,3}}};
|
||||
const auto generation_config = generation_config_t(config_j);
|
||||
|
||||
REQUIRE_FALSE(generation_config.stop_words.empty());
|
||||
REQUIRE(generation_config.stop_words.size() == config_j["/eos_token_id"_json_pointer].size());
|
||||
|
||||
for (auto [lhs, rhs] : std::views::zip(generation_config.stop_words, std::list<std::vector<int32_t>>{{1}, {2}, {3}}))
|
||||
{
|
||||
// Currently we do not support multi-tokens stop words
|
||||
REQUIRE(lhs.size() == 1);
|
||||
REQUIRE(rhs.size() == 1);
|
||||
REQUIRE_THAT(lhs, Catch::Matchers::UnorderedEquals(rhs));
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("parallel_config", "[backend_workspace_t]")
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
TEST_CASE("executor_config", "[backend_workspace_t]")
|
||||
{
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user