MCPcopy Create free account
hub / github.com/0xShug0/audio.cpp / build

Method build

src/framework/modules/text_encoders/t5_gemma_encoder.cpp:187–213  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

185T5GemmaEncoderModule::T5GemmaEncoderModule(T5GemmaEncoderConfig config) : config_(config) {
186 validate_config(config_);
187}
188
189const T5GemmaEncoderConfig & T5GemmaEncoderModule::config() const noexcept {
190 return config_;
191}
192
193core::TensorValue T5GemmaEncoderModule::build(
194 core::ModuleBuildContext & ctx,
195 const core::TensorValue & input_ids,
196 const core::TensorValue & positions,
197 const core::TensorValue & additive_attention_mask,
198 const T5GemmaEncoderWeights & weights) const {
199 core::validate_rank_between(input_ids, 2, 2, "T5GemmaEncoder input_ids");
200 core::validate_shape(positions, core::TensorShape::from_dims({input_ids.shape.dims[1]}), "T5GemmaEncoder positions");
201 core::validate_shape(
202 additive_attention_mask,
203 core::TensorShape::from_dims({input_ids.shape.dims[0], config_.attention_heads, input_ids.shape.dims[1], input_ids.shape.dims[1]}),
204 "T5GemmaEncoder additive_attention_mask");
205 if (static_cast<int64_t>(weights.layers.size()) != config_.layers) {
206 throw std::runtime_error("T5GemmaEncoder layer count mismatch");
207 }
208 auto hidden = EmbeddingModule({config_.vocab_size, config_.hidden_size}).build(ctx, input_ids, weights.embed_tokens);
209 if (config_.scale_embeddings) {
210 hidden = core::wrap_tensor(
211 ggml_scale(ctx.ggml, ensure_contiguous(ctx, hidden).tensor, std::sqrt(static_cast<float>(config_.hidden_size))),
212 hidden.shape,
213 GGML_TYPE_F32);
214 }
215 for (int64_t i = 0; i < config_.layers; ++i) {
216 hidden = layer(ctx, hidden, positions, additive_attention_mask, weights.layers[static_cast<size_t>(i)], config_);

Callers 4

matmul_f32Function · 0.45
self_attentionFunction · 0.45
mlpFunction · 0.45
layerFunction · 0.45

Calls 9

validate_rank_betweenFunction · 0.85
validate_shapeFunction · 0.85
EmbeddingModuleClass · 0.85
wrap_tensorFunction · 0.85
ggml_scaleFunction · 0.85
layerFunction · 0.85
gemma_rms_normFunction · 0.85
ensure_contiguousFunction · 0.70
sizeMethod · 0.45

Tested by

no test coverage detected