pipelines

package
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 30, 2024 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BasePipeline

type BasePipeline struct {
	ModelPath        string
	OnnxFilename     string
	PipelineName     string
	OrtSession       *ort.DynamicAdvancedSession
	OrtOptions       *ort.SessionOptions
	Tokenizer        *tokenizers.Tokenizer
	TokenizerOptions []tokenizers.EncodeOption
	InputsMeta       []ort.InputOutputInfo
	OutputsMeta      []ort.InputOutputInfo

	OutputDim        int
	TokenizerTimings *Timings
	PipelineTimings  *Timings
	// contains filtered or unexported fields
}

BasePipeline is a basic pipeline type used for struct composition in the other pipelines.

func (*BasePipeline) Destroy

func (p *BasePipeline) Destroy() error

func (*BasePipeline) Forward

func (p *BasePipeline) Forward(batch PipelineBatch) (PipelineBatch, error)

Forward pass of the neural network on the tokenized input

func (*BasePipeline) GetOutputDim

func (p *BasePipeline) GetOutputDim() int

func (*BasePipeline) GetStats

func (p *BasePipeline) GetStats() []string

func (*BasePipeline) Preprocess

func (p *BasePipeline) Preprocess(inputs []string) PipelineBatch

Preprocess the input strings in the batch

type ClassificationOutput

type ClassificationOutput struct {
	Label string
	Score float32
}

type Entity added in v0.0.5

type Entity struct {
	Entity    string
	Score     float32
	Scores    []float32
	Index     int
	Word      string
	TokenId   uint32
	Start     uint
	End       uint
	IsSubword bool
}

type FeatureExtractionOutput

type FeatureExtractionOutput struct {
	Embeddings [][]float32
}

func (*FeatureExtractionOutput) GetOutput added in v0.0.5

func (t *FeatureExtractionOutput) GetOutput() []any

type FeatureExtractionPipeline

type FeatureExtractionPipeline struct {
	BasePipeline
	Normalization bool
}

func NewFeatureExtractionPipeline

func NewFeatureExtractionPipeline(config PipelineConfig[*FeatureExtractionPipeline], ortOptions *ort.SessionOptions) (*FeatureExtractionPipeline, error)

NewFeatureExtractionPipeline Initialize a feature extraction pipeline

func (*FeatureExtractionPipeline) Postprocess

Postprocess Parse the results of the forward pass into the output. Token embeddings are mean pooled.

func (*FeatureExtractionPipeline) Run

Run the pipeline on a string batch

func (*FeatureExtractionPipeline) RunPipeline added in v0.0.6

func (p *FeatureExtractionPipeline) RunPipeline(inputs []string) (*FeatureExtractionOutput, error)

func (*FeatureExtractionPipeline) Validate added in v0.0.5

func (p *FeatureExtractionPipeline) Validate() error

type FeatureExtractionPipelineConfig added in v0.1.1

type FeatureExtractionPipelineConfig struct {
	IdLabelMap map[int]string `json:"id2label"`
}

type Pipeline

type Pipeline interface {
	Destroy() error
	GetStats() []string
	GetOutputDim() int
	Validate() error
	Run([]string) (PipelineBatchOutput, error)
}

type PipelineBatch

type PipelineBatch struct {
	Input                []TokenizedInput
	IdsTensor            []int64
	TypeIdsTensor        []int64
	AttentionMasksTensor []int64
	MaxSequence          int
	OutputTensor         []float32
}

type PipelineBatchOutput added in v0.0.5

type PipelineBatchOutput interface {
	GetOutput() []any
}

type PipelineConfig added in v0.0.9

type PipelineConfig[T Pipeline] struct {
	ModelPath    string
	Name         string
	OnnxFilename string
	Options      []PipelineOption[T]
}

type PipelineOption added in v0.0.9

type PipelineOption[T Pipeline] func(eo T)

func WithIgnoreLabels

func WithIgnoreLabels(ignoreLabels []string) PipelineOption[*TokenClassificationPipeline]

func WithMultiLabel added in v0.0.9

func WithMultiLabel() PipelineOption[*TextClassificationPipeline]

func WithNormalization added in v0.1.1

func WithNormalization() PipelineOption[*FeatureExtractionPipeline]

func WithSigmoid added in v0.0.9

func WithSingleLabel added in v0.0.9

func WithSingleLabel() PipelineOption[*TextClassificationPipeline]

func WithSoftmax added in v0.0.9

type TextClassificationOption

type TextClassificationOption func(eo *TextClassificationPipeline)

type TextClassificationOutput

type TextClassificationOutput struct {
	ClassificationOutputs [][]ClassificationOutput
}

func (*TextClassificationOutput) GetOutput added in v0.0.5

func (t *TextClassificationOutput) GetOutput() []any

type TextClassificationPipeline

type TextClassificationPipeline struct {
	BasePipeline
	IdLabelMap              map[int]string
	AggregationFunctionName string
	ProblemType             string
}

func NewTextClassificationPipeline

func NewTextClassificationPipeline(config PipelineConfig[*TextClassificationPipeline], ortOptions *ort.SessionOptions) (*TextClassificationPipeline, error)

NewTextClassificationPipeline initializes a new text classification pipeline

func (*TextClassificationPipeline) Forward

func (*TextClassificationPipeline) Postprocess

func (*TextClassificationPipeline) Run

Run the pipeline on a string batch

func (*TextClassificationPipeline) RunPipeline added in v0.0.6

func (p *TextClassificationPipeline) RunPipeline(inputs []string) (*TextClassificationOutput, error)

func (*TextClassificationPipeline) Validate added in v0.0.5

func (p *TextClassificationPipeline) Validate() error

type TextClassificationPipelineConfig

type TextClassificationPipelineConfig struct {
	IdLabelMap map[int]string `json:"id2label"`
}

type Timings

type Timings struct {
	NumCalls uint64
	TotalNS  uint64
}

type TokenClassificationOutput

type TokenClassificationOutput struct {
	Entities [][]Entity
}

func (*TokenClassificationOutput) GetOutput added in v0.0.5

func (t *TokenClassificationOutput) GetOutput() []any

type TokenClassificationPipeline

type TokenClassificationPipeline struct {
	BasePipeline
	IdLabelMap          map[int]string
	AggregationStrategy string
	IgnoreLabels        []string
}

func NewTokenClassificationPipeline

func NewTokenClassificationPipeline(config PipelineConfig[*TokenClassificationPipeline], ortOptions *ort.SessionOptions) (*TokenClassificationPipeline, error)

NewTokenClassificationPipeline Initializes a feature extraction pipeline

func (*TokenClassificationPipeline) Aggregate

func (p *TokenClassificationPipeline) Aggregate(input TokenizedInput, preEntities []Entity) ([]Entity, error)

func (*TokenClassificationPipeline) GatherPreEntities

func (p *TokenClassificationPipeline) GatherPreEntities(input TokenizedInput, output [][]float32) []Entity

GatherPreEntities from batch of logits to list of pre-aggregated outputs

func (*TokenClassificationPipeline) GroupEntities

func (p *TokenClassificationPipeline) GroupEntities(entities []Entity) ([]Entity, error)

GroupEntities group together adjacent tokens with the same entity predicted

func (*TokenClassificationPipeline) Postprocess

Postprocess function for a token classification pipeline

func (*TokenClassificationPipeline) Run

Run the pipeline on a string batch

func (*TokenClassificationPipeline) RunPipeline added in v0.0.6

func (*TokenClassificationPipeline) Validate added in v0.0.5

func (p *TokenClassificationPipeline) Validate() error

type TokenClassificationPipelineConfig

type TokenClassificationPipelineConfig struct {
	IdLabelMap map[int]string `json:"id2label"`
}

type TokenizedInput

type TokenizedInput struct {
	Raw               string
	Tokens            []string
	TokenIds          []uint32
	TypeIds           []uint32
	AttentionMask     []uint32
	SpecialTokensMask []uint32
	MaxAttentionIndex int
	Offsets           []tokenizers.Offset
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL