Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 1 addition & 58 deletions cpp/include/tensorrt_llm/batch_manager/llmRequest.h
Original file line number Diff line number Diff line change
Expand Up @@ -112,8 +112,6 @@ class GenericLlmRequest

GenericLlmRequest(RequestIdType requestId, SizeType32 maxNewTokens, std::shared_ptr<VecTokens> const& inputTokens,
executor::SamplingConfig const& samplingConfig, bool isStreaming,
std::optional<TensorPtr> promptEmbeddingTable = std::nullopt,
std::optional<SizeType32> promptVocabSize = std::nullopt,
std::optional<std::shared_ptr<std::vector<std::vector<SizeType32>>>> multimodalHashes = std::nullopt,
std::optional<std::shared_ptr<std::vector<SizeType32>>> multimodalPositions = std::nullopt,
std::optional<std::shared_ptr<std::vector<SizeType32>>> multimodalLengths = std::nullopt,
Expand Down Expand Up @@ -144,8 +142,6 @@ class GenericLlmRequest
, mIsStreaming(isStreaming)
, mOrigPromptLen(mPromptLen)
, mMaxSentTokenLen(mPromptLen)
, mPromptEmbeddingTable(std::move(promptEmbeddingTable))
, mPromptVocabSize(promptVocabSize)
, mMultimodalHashes(std::move(multimodalHashes))
, mMultimodalPositions(std::move(multimodalPositions))
, mMultimodalLengths(std::move(multimodalLengths))
Expand Down Expand Up @@ -188,8 +184,6 @@ class GenericLlmRequest

GenericLlmRequest(RequestIdType requestId, SizeType32 maxNewTokens, VecTokens const& inputTokens,
executor::SamplingConfig const& samplingConfig, bool isStreaming,
std::optional<TensorPtr> promptEmbeddingTable = std::nullopt,
std::optional<SizeType32> promptVocabSize = std::nullopt,
std::optional<LoraTaskIdType> loraTaskId = std::nullopt, std::optional<TensorPtr> loraWeights = std::nullopt,
std::optional<TensorPtr> loraConfig = std::nullopt, std::optional<VecTokens> draftTokens = std::nullopt,
bool excludeInputFromOutput = false, std::optional<VecTokens> encoderInputTokens = std::nullopt,
Expand All @@ -203,8 +197,6 @@ class GenericLlmRequest
, mIsStreaming(isStreaming)
, mOrigPromptLen(mPromptLen)
, mMaxSentTokenLen(mPromptLen)
, mPromptEmbeddingTable(std::move(promptEmbeddingTable))
, mPromptVocabSize(promptVocabSize)
, mLoraTaskId(loraTaskId)
, mLoraWeights(std::move(loraWeights))
, mLoraConfig(std::move(loraConfig))
Expand Down Expand Up @@ -271,21 +263,6 @@ class GenericLlmRequest
}
}

auto pTuningConfig = req.getPromptTuningConfig();
if (pTuningConfig)
{
mPromptEmbeddingTable = tensorrt_llm::runtime::ITensor::view(
executor::detail::toITensor(pTuningConfig.value().getEmbeddingTable()));
TLLM_CHECK(mPromptEmbeddingTable.value()->getShape().nbDims == 2);
mPromptVocabSize = mPromptEmbeddingTable.value()->getShape().d[0];
mPromptEmbeddingTable.value()->unsqueeze(0);

if (pTuningConfig->getInputTokenExtraIds())
{
mInputTokenExtraIds
= std::make_shared<VecTokenExtraIds>(pTuningConfig->getInputTokenExtraIds().value());
}
}
auto multimodalInput = req.getMultimodalInput();
if (multimodalInput)
{
Expand Down Expand Up @@ -776,21 +753,6 @@ class GenericLlmRequest
mMaxSentTokenLen = maxSentLength;
}

[[nodiscard]] std::optional<TensorPtr> getPromptEmbeddingTable() const
{
return mPromptEmbeddingTable;
}

[[nodiscard]] std::optional<TensorPtr>& getPromptEmbeddingTableMutable()
{
return mPromptEmbeddingTable;
}

[[nodiscard]] std::optional<SizeType32> getPromptVocabSize() const
{
return mPromptVocabSize;
}

[[nodiscard]] std::optional<std::shared_ptr<std::vector<std::vector<SizeType32>>>> getMultimodalHashes() const
{
return mMultimodalHashes;
Expand Down Expand Up @@ -846,11 +808,6 @@ class GenericLlmRequest
mLoraWeights = weights;
}

void setPromptVocabSize(SizeType32 size)
{
mPromptVocabSize = size;
}

void clearLoraWeights()
{
mLoraWeights = std::nullopt;
Expand Down Expand Up @@ -1534,8 +1491,6 @@ class GenericLlmRequest

SizeType32 mMaxSentTokenLen;

std::optional<TensorPtr> mPromptEmbeddingTable{std::nullopt};
std::optional<SizeType32> mPromptVocabSize{std::nullopt};
std::optional<std::shared_ptr<std::vector<std::vector<SizeType32>>>> mMultimodalHashes{std::nullopt};
std::optional<std::shared_ptr<std::vector<SizeType32>>> mMultimodalPositions{std::nullopt};
std::optional<std::shared_ptr<std::vector<SizeType32>>> mMultimodalLengths{std::nullopt};
Expand Down Expand Up @@ -1686,16 +1641,6 @@ class GenericLlmRequest
mEncoderUniqueTokens = encoderUniqueTokens;
}

if ((mPromptEmbeddingTable.has_value() && !mPromptVocabSize.has_value())
|| (!mPromptEmbeddingTable.has_value() && mPromptVocabSize.has_value()))
{
std::string errStr
= "Prompt embedding table and prompt vocab size tensors must both be provided for requests with "
"prompt "
"tuning enabled.";
TLLM_THROW(errStr);
}

if (!isChild())
{
// Initialize result states unless it is a child and a child request should share parent's one.
Expand Down Expand Up @@ -1742,8 +1687,6 @@ class LlmRequest : public GenericLlmRequest<runtime::ITensor::SharedPtr>

LlmRequest(RequestIdType requestId, SizeType32 maxNewTokens, std::vector<TokenIdType> inputTokens,
executor::SamplingConfig const& samplingConfig, bool isStreaming,
std::optional<TensorPtr> promptEmbeddingTable = std::nullopt,
std::optional<SizeType32> promptVocabSize = std::nullopt,
std::optional<std::vector<std::vector<SizeType32>>> multimodalHashes = std::nullopt,
std::optional<std::vector<SizeType32>> multimodalPositions = std::nullopt,
std::optional<std::vector<SizeType32>> multimodalLengths = std::nullopt,
Expand All @@ -1766,7 +1709,7 @@ class LlmRequest : public GenericLlmRequest<runtime::ITensor::SharedPtr>
std::optional<std::vector<SizeType32>> multimodalRunLengths = std::nullopt,
std::optional<std::string> cacheSalt = std::nullopt)
: Base(requestId, maxNewTokens, std::make_shared<std::vector<TokenIdType>>(std::move(inputTokens)),
samplingConfig, isStreaming, std::move(promptEmbeddingTable), promptVocabSize,
samplingConfig, isStreaming,
multimodalHashes.has_value()
? std::make_shared<std::vector<std::vector<SizeType32>>>(std::move(multimodalHashes.value()))
: std::optional<std::shared_ptr<std::vector<std::vector<SizeType32>>>>(std::nullopt),
Expand Down
31 changes: 0 additions & 31 deletions cpp/include/tensorrt_llm/executor/executor.h
Original file line number Diff line number Diff line change
Expand Up @@ -252,27 +252,6 @@ class OutputConfig
std::optional<std::vector<AdditionalModelOutput>> additionalModelOutputs;
};

/// @brief Configuration for prompt tuning
class PromptTuningConfig
{
public:
explicit PromptTuningConfig(
Tensor embeddingTable, std::optional<VecTokenExtraIds> inputTokenExtraIds = std::nullopt);

[[nodiscard]] Tensor getEmbeddingTable() const;

[[nodiscard]] std::optional<VecTokenExtraIds> getInputTokenExtraIds() const;

private:
friend class Serialization;
/// @brief The prompt embedding table. Expected shape: [task vocab_size, hidden_size]. Data type must match model
/// weights.
Tensor mEmbeddingTable;

/// @brief The input token extra ids for KV Cache reuse when p-tuning is enabled
std::optional<VecTokenExtraIds> mInputTokenExtraIds;
};

/// @brief Multimodal input data class
class MultimodalInput
{
Expand Down Expand Up @@ -610,7 +589,6 @@ class Request
/// @param badWords A list of bad words tokens. Each "word" can be composed of multiple tokens
/// @param stopWords A list of stop words tokens. Each "word" can be composed of multiple tokens
/// @param embeddingBias The embedding bias tensor. Expected shape is [vocab_size]
/// @param pTuningConfig The prompt tuning configuration
/// @param multimodalInput The multimodal input {multimodalHashes, multimodalPositions, multimodalLengths, optional
/// exact prompt runs}
/// @param mRopeConfig The mrope configuration
Expand Down Expand Up @@ -641,7 +619,6 @@ class Request
std::optional<std::list<VecTokens>> badWords = std::nullopt,
std::optional<std::list<VecTokens>> stopWords = std::nullopt,
std::optional<Tensor> embeddingBias = std::nullopt,
std::optional<PromptTuningConfig> pTuningConfig = std::nullopt,
std::optional<MultimodalInput> multimodalInput = std::nullopt,
std::optional<MropeConfig> mRopeConfig = std::nullopt, std::optional<LoraConfig> loraConfig = std::nullopt,
std::optional<KvCacheRetentionConfig> kvCacheRetentionConfig = std::nullopt,
Expand Down Expand Up @@ -672,7 +649,6 @@ class Request
[[nodiscard]] std::optional<std::list<VecTokens>> getBadWords() const;
[[nodiscard]] std::optional<std::list<VecTokens>> getStopWords() const;
[[nodiscard]] std::optional<Tensor> getEmbeddingBias() const;
[[nodiscard]] std::optional<PromptTuningConfig> getPromptTuningConfig() const;
[[nodiscard]] std::optional<MultimodalInput> getMultimodalInput() const;
[[nodiscard]] std::optional<MropeConfig> getMropeConfig() const;
[[nodiscard]] std::optional<LoraConfig> getLoraConfig() const;
Expand All @@ -699,7 +675,6 @@ class Request
void setBadWords(std::list<VecTokens> const& badWords);
void setStopWords(std::list<VecTokens> const& stopWords);
void setEmbeddingBias(Tensor const& embeddingBias);
void setPromptTuningConfig(PromptTuningConfig const& pTuningConfig);
void setMultimodalInput(MultimodalInput const& multimodalInput);
void setMropeConfig(MropeConfig const& mRopeConfig);
void setLoraConfig(LoraConfig const& loraConfig);
Expand Down Expand Up @@ -732,12 +707,6 @@ struct Result
/// @brief The output tokens for each beam
BeamTokens outputTokenIds;

/// @brief The cumulative log probabilities. Size beamSize.
std::optional<VecLogProbs> cumLogProbs;

/// @brief The log probabilities for each generated token. Size [beamSize, outputLen]
std::optional<std::vector<VecLogProbs>> logProbs;

/// @brief The reason why the model stopped generating tokens for each beam in this request. Size [beamSize].
/// Currently only supported when beamSize is 1 and when using in-flight batching.
std::vector<FinishReason> finishReasons;
Expand Down
5 changes: 0 additions & 5 deletions cpp/include/tensorrt_llm/executor/serialization.h
Original file line number Diff line number Diff line change
Expand Up @@ -66,11 +66,6 @@ class Serialization
static void serialize(AdditionalModelOutput const& additionalModelOutput, std::ostream& os);
[[nodiscard]] static size_t serializedSize(AdditionalModelOutput const& additionalModelOutput);

// PromptTuningConfig
[[nodiscard]] static PromptTuningConfig deserializePromptTuningConfig(std::istream& is);
static void serialize(PromptTuningConfig const& config, std::ostream& os);
[[nodiscard]] static size_t serializedSize(PromptTuningConfig const& config);

// MultimodalInput
[[nodiscard]] static MultimodalInput deserializeMultimodalInput(std::istream& is);
static void serialize(MultimodalInput const& multimodalInput, std::ostream& os);
Expand Down
26 changes: 8 additions & 18 deletions cpp/tensorrt_llm/batch_manager/llmRequest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ bool LlmRequest::checkTokenIdRange(SizeType32 vocabSize)
}

void LlmRequest::validate(
SizeType32 maxInputLen, SizeType32 maxSequenceLen, SizeType32 maxDraftLen, bool enableKVCacheReuse)
SizeType32 maxInputLen, SizeType32 maxSequenceLen, SizeType32 maxDraftLen, bool /*enableKVCacheReuse*/)
{
if (mPromptLen > maxInputLen)
{
Expand Down Expand Up @@ -244,27 +244,17 @@ void LlmRequest::validate(
mPromptLen, mMaxNewTokens, draftLenPerEngineStep, maxSequenceLen, maxNewTokens);
mMaxNewTokens = maxNewTokens;
}

// validate extra ids when enabling kv cache reuse with prompt table
if (enableKVCacheReuse && mPromptEmbeddingTable.has_value() && mPromptVocabSize.has_value())
{
TLLM_CHECK_WITH_INFO(mInputTokenExtraIds.has_value() && mInputTokenExtraIds.value(),
"Input token extra ids must be provided when enabling kv cache reuse with prompt table");
TLLM_CHECK_WITH_INFO(mInputTokenExtraIds.value()->size() == static_cast<size_t>(mOrigPromptLen),
"inputTokenExtraIds vector size (%lu) must be the same as input token vector size (%lu).",
mInputTokenExtraIds.value()->size(), static_cast<size_t>(mOrigPromptLen));
}
}

LlmRequest::LlmRequest(LlmRequest const& parent, RequestIdType requestId)
: LlmRequest(requestId, parent.mMaxNewTokens, parent.mTokens.at(0), parent.mSamplingConfig, parent.mIsStreaming,
parent.mPromptEmbeddingTable, parent.mPromptVocabSize, copyOptionalInput(parent.mMultimodalHashes),
copyOptionalInput(parent.mMultimodalPositions), copyOptionalInput(parent.mMultimodalLengths),
copyOptionalInput(parent.mMultimodalUuids), parent.mLoraTaskId, parent.mLoraWeights, parent.mLoraConfig,
parent.mKvCacheRetentionConfig, parent.mDraftTokens ? *parent.mDraftTokens : VecTokens{},
parent.mExcludeInputFromOutput, copyOptionalInput(parent.mEncoderTokens), parent.mPriority,
parent.mEncoderInputLength, parent.mEncoderOutputLength, parent.mLlmRequestType,
copyOptionalInput(parent.mInputTokenExtraIds), parent.mReturnPerfMetrics, parent.mContextPhaseParams,
copyOptionalInput(parent.mMultimodalHashes), copyOptionalInput(parent.mMultimodalPositions),
copyOptionalInput(parent.mMultimodalLengths), copyOptionalInput(parent.mMultimodalUuids), parent.mLoraTaskId,
parent.mLoraWeights, parent.mLoraConfig, parent.mKvCacheRetentionConfig,
parent.mDraftTokens ? *parent.mDraftTokens : VecTokens{}, parent.mExcludeInputFromOutput,
copyOptionalInput(parent.mEncoderTokens), parent.mPriority, parent.mEncoderInputLength,
parent.mEncoderOutputLength, parent.mLlmRequestType, copyOptionalInput(parent.mInputTokenExtraIds),
parent.mReturnPerfMetrics, parent.mContextPhaseParams,
parent.mReturnPerfMetrics ? std::make_optional(parent.mPerfMetrics.timingMetrics.arrivalTime) : std::nullopt,
parent.mAgentHierarchy, copyOptionalInput(parent.mMultimodalItemRunCuOffsets),
copyOptionalInput(parent.mMultimodalRunPositions), copyOptionalInput(parent.mMultimodalRunLengths),
Expand Down
1 change: 0 additions & 1 deletion cpp/tensorrt_llm/executor/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,6 @@ add_library(
loraConfig.cpp
mropeConfig.cpp
multimodalInput.cpp
promptTuningConfig.cpp
request.cpp
response.cpp
serialization.cpp
Expand Down
41 changes: 0 additions & 41 deletions cpp/tensorrt_llm/executor/promptTuningConfig.cpp

This file was deleted.

31 changes: 10 additions & 21 deletions cpp/tensorrt_llm/executor/request.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,19 +28,18 @@ Request::Request(VecTokens inputTokenIds, SizeType32 maxTokens, bool streaming,
OutputConfig const& outputConfig, std::optional<SizeType32> const& endId,
std::optional<std::vector<SizeType32>> positionIds, std::optional<std::list<VecTokens>> badWords,
std::optional<std::list<VecTokens>> stopWords, std::optional<Tensor> embeddingBias,
std::optional<PromptTuningConfig> pTuningConfig, std::optional<MultimodalInput> multimodalInput,
std::optional<MropeConfig> mRopeConfig, std::optional<LoraConfig> loraConfig,
std::optional<KvCacheRetentionConfig> kvCacheRetentionConfig, std::optional<VecTokens> encoderInputTokenIds,
std::optional<IdType> clientId, bool returnAllGeneratedTokens, float priority, RequestType type,
std::optional<ContextPhaseParams> contextPhaseParams, std::optional<Tensor> encoderInputFeatures,
std::optional<SizeType32> encoderOutputLength, std::optional<GuidedDecodingParams> guidedDecodingParams,
std::optional<MillisecondsType> allottedTimeMs, std::optional<IdType> disaggRequestId,
std::optional<std::string> cacheSalt)
std::optional<MultimodalInput> multimodalInput, std::optional<MropeConfig> mRopeConfig,
std::optional<LoraConfig> loraConfig, std::optional<KvCacheRetentionConfig> kvCacheRetentionConfig,
std::optional<VecTokens> encoderInputTokenIds, std::optional<IdType> clientId, bool returnAllGeneratedTokens,
float priority, RequestType type, std::optional<ContextPhaseParams> contextPhaseParams,
std::optional<Tensor> encoderInputFeatures, std::optional<SizeType32> encoderOutputLength,
std::optional<GuidedDecodingParams> guidedDecodingParams, std::optional<MillisecondsType> allottedTimeMs,
std::optional<IdType> disaggRequestId, std::optional<std::string> cacheSalt)
: mImpl(std::make_unique<Impl>(std::move(inputTokenIds), maxTokens, streaming, samplingConfig, outputConfig, endId,
std::move(positionIds), std::move(badWords), std::move(stopWords), std::move(embeddingBias),
std::move(pTuningConfig), std::move(multimodalInput), std::move(mRopeConfig), std::move(loraConfig),
std::move(kvCacheRetentionConfig), std::move(encoderInputTokenIds), clientId, returnAllGeneratedTokens,
priority, type, std::move(contextPhaseParams), std::move(encoderInputFeatures), encoderOutputLength,
std::move(multimodalInput), std::move(mRopeConfig), std::move(loraConfig), std::move(kvCacheRetentionConfig),
std::move(encoderInputTokenIds), clientId, returnAllGeneratedTokens, priority, type,
std::move(contextPhaseParams), std::move(encoderInputFeatures), encoderOutputLength,
std::move(guidedDecodingParams), allottedTimeMs, disaggRequestId, std::move(cacheSalt)))
{
}
Expand Down Expand Up @@ -120,11 +119,6 @@ std::optional<Tensor> Request::getEmbeddingBias() const
return mImpl->getEmbeddingBias();
}

std::optional<PromptTuningConfig> Request::getPromptTuningConfig() const
{
return mImpl->getPromptTuningConfig();
}

std::optional<MultimodalInput> Request::getMultimodalInput() const
{
return mImpl->getMultimodalInput();
Expand Down Expand Up @@ -245,11 +239,6 @@ void Request::setEmbeddingBias(Tensor const& embeddingBias)
mImpl->setEmbeddingBias(embeddingBias);
}

void Request::setPromptTuningConfig(PromptTuningConfig const& pTuningConfig)
{
mImpl->setPromptTuningConfig(pTuningConfig);
}

void Request::setMultimodalInput(MultimodalInput const& multimodalInput)
{
mImpl->setMultimodalInput(multimodalInput);
Expand Down
Loading
Loading