| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
RaskellLib
Description
This module provides convenience functions built from the core of the RASP-L language.
It is based on Listing 3 of "What Algorithms Can Transformers Learn", https://arxiv.org/abs/2310.16028, by Zhou et al.
Synopsis
- (?) :: [Bool] -> (Sequence, Sequence) -> Sequence
- shiftRight :: Token -> Int8 -> Sequence -> Sequence
- toBool :: Token -> Bool
- mask :: Token -> [Bool] -> Sequence -> Sequence
- cumSum :: [Bool] -> Sequence
- maximum' :: Sequence -> Sequence
- minimum' :: Sequence -> Sequence
- argmax :: Sequence -> Sequence
- argmin :: Sequence -> Sequence
- numPrev :: Sequence -> Queries -> Sequence
- hasSeen :: Sequence -> Queries -> Sequence
- firsts :: Token -> Sequence -> Queries -> Sequence
- lasts :: Token -> Sequence -> Queries -> Sequence
- indexSelect :: Token -> Sequence -> Sequence -> Sequence
- leq :: Token -> Token -> Bool
- geq :: Token -> Token -> Bool
- lt :: Token -> Token -> Bool
- gt :: Token -> Token -> Bool
- sample :: Token -> (Sequence -> Sequence) -> Sequence -> Word8 -> Sequence
- where' :: [Bool] -> Sequence -> Sequence -> Sequence
- sampleAutoregressive :: Token -> (Sequence -> Sequence) -> Sequence -> Word8 -> Sequence
Logical Operations
(?) :: [Bool] -> (Sequence, Sequence) -> Sequence Source #
Use a boolean sequence to select between two sequences.
Also known in Python RASP-L as "where", see where'.
Arguments
| :: Token | Filler |
| -> Int8 | Number of positions to shift |
| -> Sequence | Input |
| -> Sequence |
Shift a sequence to the right by a given number of elements,
filling the vacated positions with the provided Token.
Running Aggregations
argmax :: Sequence -> Sequence Source #
Computes the indices of the running maximum values in a Sequence.
argmin :: Sequence -> Sequence Source #
Computes the indices of the running minimum values in a Sequence.
Aggregations with Queries
Indexing with Queries
firsts :: Token -> Sequence -> Queries -> Sequence Source #
Finds the first occurrence of each query token in a Sequence.
lasts :: Token -> Sequence -> Queries -> Sequence Source #
Finds the last occurrence of each query token in a Sequence.
indexSelect :: Token -> Sequence -> Sequence -> Sequence Source #
Selects the tokens from a Sequence at the indices provided by another sequence.
Token Comparisons
Sampling
Arguments
| :: Token | End of sequence token |
| -> (Sequence -> Sequence) | RASP-L program to extend the sequence |
| -> Sequence | Initial/prompt sequence |
| -> Word8 | Number of steps to decode |
| -> Sequence | Output (including prompt) |
Greedily and autoregressively sample the output of a RASP-L program on a sequence.