From ab805e9871639c99ff71ef3679363abbe01b76ca Mon Sep 17 00:00:00 2001 From: pat-alt Date: Fri, 19 Jan 2024 09:35:31 +0100 Subject: [PATCH 1/9] hardcoded way --- src/baseline_model.jl | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/src/baseline_model.jl b/src/baseline_model.jl index 4127e1c..7d62019 100644 --- a/src/baseline_model.jl +++ b/src/baseline_model.jl @@ -64,10 +64,17 @@ end """ get_embeddings(atomic_model::HGFRobertaForSequenceClassification, tokens::NamedTuple) -Extends the `embeddings` function to `HGFRobertaForSequenceClassification`. -""" -get_embeddings(atomic_model::HGFRobertaForSequenceClassification, tokens::NamedTuple) = - atomic_model.model(tokens) +Extends the `embeddings` function to `HGFRobertaForSequenceClassification`. Performs a forward pass through the model and returns the embeddings. Then performs a forward pass through the classification head and returns the activations going into the final linear layer. +""" +function get_embeddings(atomic_model::HGFRobertaForSequenceClassification, tokens::NamedTuple) + clf = atomic_model.cls + b = atomic_model.model(tokens) + # Perform forward pass through classification head: + b = clf.layer.layers[1](b).hidden_state |> + x -> clf.layer.layers[2](x) + return b +end + """ laywerwise_activations(mod::BaselineModel, queries::Vector{String}) @@ -76,11 +83,15 @@ Computes a forward pass of the model on the given queries and returns the layerw """ function layerwise_activations(mod::BaselineModel, queries::Vector{String}) embeddings = get_embeddings(mod, queries) - pooler = Transformers.HuggingFace.FirstTokenPooler() - if haskey(embeddings, :outputs) - output = [pooler(x.hidden_state) for x in embeddings.outputs] - else - output = pooler(embeddings.hidden_state) + if typeof(mod.mod) == HGFRobertaForSequenceClassification + output = embeddings.hidden_state + else + pooler = Transformers.HuggingFace.FirstTokenPooler() + if haskey(embeddings, :outputs) + output = [pooler(x.hidden_state) for x in embeddings.outputs] + else + output = pooler(embeddings.hidden_state) + end end return output end From 6bfbd0d41e2ca64279839734e4853d2c71018bad Mon Sep 17 00:00:00 2001 From: pat-alt Date: Fri, 19 Jan 2024 10:05:16 +0100 Subject: [PATCH 2/9] updated doc string --- src/baseline_model.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/baseline_model.jl b/src/baseline_model.jl index 7d62019..aecd24a 100644 --- a/src/baseline_model.jl +++ b/src/baseline_model.jl @@ -79,7 +79,7 @@ end """ laywerwise_activations(mod::BaselineModel, queries::Vector{String}) -Computes a forward pass of the model on the given queries and returns the layerwise activations for the `HGFRobertaModel`. If `output_hidden_states=false` was passed to `load_model` (default), only the last layer is returned. If `output_hidden_states=true` was passed to `load_model`, all layers are returned. Even if the model is loaded with the head for classification, the head is not used for computing the activations. +Computes a forward pass of the model on the given queries and returns the layerwise activations for the `HGFRobertaModel`. If `output_hidden_states=false` was passed to `load_model` (default), only the last layer is returned. If `output_hidden_states=true` was passed to `load_model`, all layers are returned. If the model is loaded with the head for classification, the activations going into the final linear layer are returned. """ function layerwise_activations(mod::BaselineModel, queries::Vector{String}) embeddings = get_embeddings(mod, queries) From 5eb52abde100f7c0c9239c0c289f0ea621168105 Mon Sep 17 00:00:00 2001 From: pat-alt Date: Sat, 27 Jan 2024 07:32:31 +0100 Subject: [PATCH 3/9] proposal --- dev/jcon_proposal.md | 44 -------------------- dev/juliacon/biblio.bib | 17 ++++++++ dev/juliacon/proposal.md | 74 ++++++++++++++++++++++++++++++++++ dev/juliacon/proposal.qmd | 65 +++++++++++++++++++++++++++++ dev/juliacon/rmse_pca_128.png | Bin 0 -> 185221 bytes 5 files changed, 156 insertions(+), 44 deletions(-) delete mode 100644 dev/jcon_proposal.md create mode 100644 dev/juliacon/biblio.bib create mode 100644 dev/juliacon/proposal.md create mode 100644 dev/juliacon/proposal.qmd create mode 100644 dev/juliacon/rmse_pca_128.png diff --git a/dev/jcon_proposal.md b/dev/jcon_proposal.md deleted file mode 100644 index 9c83c1a..0000000 --- a/dev/jcon_proposal.md +++ /dev/null @@ -1,44 +0,0 @@ -# Trillion Dollar Words in Julia - -**Abstract**: [TrillionDollarWorlds.jl](https://github.com/pat-alt/TrillionDollarWords.jl) streamlines access to a novel financial dataset and language model presented in this [ACL 2023 paper](https://arxiv.org/abs/2305.07972). It ships with essential functionality for model probing, an important aspect of mechanistic interpretability. - -## Description - -In the wake of recent rapid advances in artificial intelligence (AI), it is more crucial than ever to ensure that the technologies we deploy are trustworthy. Efforts surrounding [Taija](https://github.com/JuliaTrustworthyAI) have so far centered around explainability and uncertainty quantification for supervised machine learning models. [CounterfactualExplanations.jl](https://github.com/JuliaTrustworthyAI/CounterfactualExplanations.jl), for example, is a comprehensive package for generating counterfactual explanations for models trained in [Flux.jl](https://fluxml.ai/Flux.jl/dev/), [MLJ.jl](https://alan-turing-institute.github.io/MLJ.jl/dev/) and more. - -### 🌐 Why supercomputing? - -In practice, we are often required to generate many explanations for many individuals. A firm that is using a machine learning model to screen out job applicants, for example, might be required to explain to each unsuccessful applicant why they were not admitted to the interview stage. In a different context, researchers may need to generate many explanations for [evaluation](https://juliatrustworthyai.github.io/CounterfactualExplanations.jl/stable/tutorials/evaluation/) and [benchmarking](https://juliatrustworthyai.github.io/CounterfactualExplanations.jl/stable/tutorials/benchmarking/) purposes. In both cases, the involved computational tasks can be parallelized through multi-threading or distributed computing. - -### 🤔 How supercomputing? - -For this purpose, we have recently released [TaijaParallel.jl](https://github.com/JuliaTrustworthyAI/TaijaParallel.jl): a lightweight package that adds custom support for [parallelization](https://juliatrustworthyai.github.io/CounterfactualExplanations.jl/stable/tutorials/parallelization/) to Taija packages. Our goal has been to minimize the burden on users by facilitating different forms of parallelization through a simple macro. To multi-process the evaluation of a large set of `counterfactuals` using the [MPI.jl](https://juliaparallel.org/MPI.jl/latest/) backend, for example, users can proceed as follows: firstly, load the backend and instantiate the `MPIParallelizer`, - -```julia -using CounterfactualExplanations, TaijaParallel -import MPI -MPI.Init() -parallelizer = MPIParallelizer(MPI.COMM_WORLD) -``` - -and then just use the `@with_parallelizer` macro followed by the `parallelizer` object and the standard API call to evaluate counterfactuals: - -```julia -@with_parallelizer parallelizer evaluate(counterfactuals) -``` - -Under the hood, we use standard [MPI.jl](https://juliaparallel.org/MPI.jl/latest/) routines for distributed computing. To avoid depending on [MPI.jl](https://juliaparallel.org/MPI.jl/latest/) we use [package extensions](https://www.youtube.com/watch?v=TiIZlQhFzyk). Similarly, the `ThreadsParallelizer` can be used for multi-threading where we rely on `Base.Threads` routines. It is also possible to combine both forms of parallelization. - -### 🏅 Benchmarking Counterfactuals (case study) - -This new functionality has already powered [research](https://arxiv.org/abs/2312.10648) that will be published at AAAI 2024. The project involved large benchmarks of counterfactual explanations that had to be run on a supercomputer. During the talk, we will use this as a case study to discuss the challenges we encountered along the way and the solutions we have come up with. - -### 🎯 What is next? - -While we have so far focused on [CounterfactualExplanations.jl](), parallelization is also useful for other Taija packages. For example, some of the methods for predictive uncertainty quantification used by [ConformalPrediction.jl](https://github.com/JuliaTrustworthyAI/ConformalPrediction.jl) rely on repeated model training and prediction. This is currently done sequentially and represents an obvious opportunity for parallelization. - -### 👥 Who is this talk for? - -This talk should be useful for anyone interested in either trustworthy AI or parallel computing or both. We are not experts in parallel computing, so the level of this talk should also be appropriate for beginners. - -## Notes \ No newline at end of file diff --git a/dev/juliacon/biblio.bib b/dev/juliacon/biblio.bib new file mode 100644 index 0000000..4c11525 --- /dev/null +++ b/dev/juliacon/biblio.bib @@ -0,0 +1,17 @@ +@Misc{shah2023trillion, + author = {Agam Shah and Suvan Paturi and Sudheer Chava}, + title = {Trillion Dollar Words: A New Financial Dataset, Task & Market Analysis}, + eprint = {2305.07972}, + archiveprefix = {arXiv}, + primaryclass = {cs.CL}, + year = {2023}, +} + +@Misc{alain2018understanding, + author = {Guillaume Alain and Yoshua Bengio}, + title = {Understanding intermediate layers using linear classifier probes}, + eprint = {1610.01644}, + archiveprefix = {arXiv}, + primaryclass = {stat.ML}, + year = {2018}, +} \ No newline at end of file diff --git a/dev/juliacon/proposal.md b/dev/juliacon/proposal.md new file mode 100644 index 0000000..3a9649a --- /dev/null +++ b/dev/juliacon/proposal.md @@ -0,0 +1,74 @@ +# Trillion Dollar Words in Julia + +# 💰 Trillion Dollar Words in Julia + +**Abstract**: [TrillionDollarWorlds.jl](https://github.com/pat-alt/TrillionDollarWords.jl) provides access to a novel financial dataset and large language model fine-tuned for classifying central bank communications as either ‘hawkish’, ‘dovish’ or ‘neutral’. It ships with essential functionality for model probing, an important aspect of mechanistic interpretability. + +## Description + +In the age of forward guidance, central bankers spend a great deal of time thinking about how their communications are perceived by markets. What if there was a way to predict the impact of communications on financial markets directly from text? Shah, Paturi, and Chava (2023) attempt to do just that in their [ACL 2023 paper](https://arxiv.org/abs/2305.07972) (which the presenter and author of this package is not affiliated with). + +### Background + +The authors of the paper have collected and preprocessed a corpus of around 40,000 time-stamped sentences from meeting minutes, press conferences and speeches by members of the Federal Open Market Committee (FOMC). The total sample period spans from January, 1996, to October, 2022. In order to train various rule-based models and large language models (LLM) to classify sentences as either ‘hawkish’, ‘dovish’ or ‘neutral’, they have manually annotated a subset of around 2,500 sentences. The best performing model, a large RoBERTa model with around 355 million parameters, was open-sourced on [HuggingFace](https://huggingface.co/gtfintechlab/FOMC-RoBERTa?text=A+very+hawkish+stance+excerted+by+the+doves). + +### Data + +While the authors of the paper did publish their data, much of it is unfortunately scattered across CSV and Excel files stored in a public GitHub repo. We have collected and merged that data, yielding a combined dataset with indexed sentences and additional metadata that may useful for downstream tasks. + +``` julia +julia> using TrillionDollarWords +julia> load_all_sentences() |> names +8-element Vector{String}: + "sentence_id" + "doc_id" + "date" + "event_type" + "label" + "sentence" + "score" + "speaker" +``` + +In addition to the sentences, market data about price inflation and the US Treasury yield curve can also easily be loaded. All datasets are loaded as `DataFrame`s and share common keys that make it possible to join them. Alternatively, a complete dataset combining the corpus of sentences with market data can also be loaded with `load_all_data()`. + +### Loading the Model + +The model can be loaded with or without the classifier head. Under the hood, we use [Transformers.jl](https://github.com/chengchingwen/Transformers.jl) to retrieve the model from [HuggingFace](https://huggingface.co/gtfintechlab/FOMC-RoBERTa?text=A+very+hawkish+stance+excerted+by+the+doves). Any keyword arguments accepted by `Transformers.HuggingFace.HGFConfig` can also be passed. To load the model without the classifier head and enable access to layer-wise activations, the following command can be used: `load_model(; load_head=false, output_hidden_states=true)`. + +### Model Inference + +For our own research, we have been interest in probing the model. This involves using linear models to estimate the relationship between layer-wise transformer embeddings and some outcome variable of interest (Alain and Bengio 2018). To do this, we first had run a single forward pass for each sentence through the RoBERTa model and store the layerwise emeddings. The package ships with functionality for doing just that, but to save others valuable GPU hours we have archived activations of the hidden state on the first entity token for each layer as [artifacts](https://github.com/pat-alt/TrillionDollarWords.jl/releases/tag/activations_2024-01-17). To download the last-layer activations in interactive Julia session, for example, users can proceed as follows: + +``` julia +julia> using LazyArtifacts + +julia> artifact"activations_layer_24" +"$HOME/.julia/artifacts/1785c2c64e603af5e6b79761150b1cc15d03f525" +``` + +In upcoming work, we have found that despite the small size of the training dataset, the RoBERTa model appares to have distilled useful representations for downstream tasks that it was not explicitly trained for. The chart below shows the average out-of-sample root mean squared error for predicting various market indicators from layer activations. Consistent with findings in related work (Alain and Bengio 2018), we find that performance typically improves for layers closer to the final output layer of the transformer model. + +![](rmse_pca_128.png) + +### Intended Purpose + +We hope that this small package may be useful to members of the Julia community who are interest in the interplay Economics, Finance and Artificial Intelligence. It should, for example, be straight-forward to use this package in combination with [Transformers.jl](https://github.com/chengchingwen/Transformers.jl) to fine-tune additional models on the classification task or other tasks of interest. Any contributions are very much welcome. + +## References + +
+ +
+ +Alain, Guillaume, and Yoshua Bengio. 2018. “Understanding Intermediate Layers Using Linear Classifier Probes.” . + +
+ +
+ +Shah, Agam, Suvan Paturi, and Sudheer Chava. 2023. “Trillion Dollar Words: A New Financial Dataset, Task & Market Analysis.” . + +
+ +
diff --git a/dev/juliacon/proposal.qmd b/dev/juliacon/proposal.qmd new file mode 100644 index 0000000..e0bb452 --- /dev/null +++ b/dev/juliacon/proposal.qmd @@ -0,0 +1,65 @@ +--- +title: Trillion Dollar Words in Julia +bibliography: biblio.bib +format: + commonmark: + wrap: none +--- + +# 💰 Trillion Dollar Words in Julia + +**Abstract**: [TrillionDollarWorlds.jl](https://github.com/pat-alt/TrillionDollarWords.jl) provides access to a novel financial dataset and large language model fine-tuned for classifying central bank communications as either 'hawkish', 'dovish' or 'neutral'. It ships with essential functionality for model probing, an important aspect of mechanistic interpretability. + +## Description + +In the age of forward guidance, central bankers spend a great deal of time thinking about how their communications are perceived by markets. What if there was a way to predict the impact of communications on financial markets directly from text? @shah2023trillion attempt to do just that in their [ACL 2023 paper](https://arxiv.org/abs/2305.07972) (which the presenter and author of this package is not affiliated with). + +### Background + +The authors of the paper have collected and preprocessed a corpus of around 40,000 time-stamped sentences from meeting minutes, press conferences and speeches by members of the Federal Open Market Committee (FOMC). The total sample period spans from January, 1996, to October, 2022. In order to train various rule-based models and large language models (LLM) to classify sentences as either 'hawkish', 'dovish' or 'neutral', they have manually annotated a subset of around 2,500 sentences. The best performing model, a large RoBERTa model with around 355 million parameters, was open-sourced on [HuggingFace](https://huggingface.co/gtfintechlab/FOMC-RoBERTa?text=A+very+hawkish+stance+excerted+by+the+doves). + +### Data + +While the authors of the paper did publish their data, much of it is unfortunately scattered across CSV and Excel files stored in a public GitHub repo. We have collected and merged that data, yielding a combined dataset with indexed sentences and additional metadata that may useful for downstream tasks. + +```julia +julia> using TrillionDollarWords +julia> load_all_sentences() |> names +8-element Vector{String}: + "sentence_id" + "doc_id" + "date" + "event_type" + "label" + "sentence" + "score" + "speaker" +``` + +In addition to the sentences, market data about price inflation and the US Treasury yield curve can also easily be loaded. All datasets are loaded as `DataFrame`s and share common keys that make it possible to join them. Alternatively, a complete dataset combining the corpus of sentences with market data can also be loaded with `load_all_data()`. + +### Loading the Model + +The model can be loaded with or without the classifier head. Under the hood, we use [Transformers.jl](https://github.com/chengchingwen/Transformers.jl) to retrieve the model from [HuggingFace](https://huggingface.co/gtfintechlab/FOMC-RoBERTa?text=A+very+hawkish+stance+excerted+by+the+doves). Any keyword arguments accepted by `Transformers.HuggingFace.HGFConfig` can also be passed. To load the model without the classifier head and enable access to layer-wise activations, the following command can be used: `load_model(; load_head=false, output_hidden_states=true)`. + +### Model Inference + +For our own research, we have been interest in probing the model. This involves using linear models to estimate the relationship between layer-wise transformer embeddings and some outcome variable of interest [@alain2018understanding]. To do this, we first had run a single forward pass for each sentence through the RoBERTa model and store the layerwise emeddings. The package ships with functionality for doing just that, but to save others valuable GPU hours we have archived activations of the hidden state on the first entity token for each layer as [artifacts](https://github.com/pat-alt/TrillionDollarWords.jl/releases/tag/activations_2024-01-17). To download the last-layer activations in interactive Julia session, for example, users can proceed as follows: + +```julia +julia> using LazyArtifacts + +julia> artifact"activations_layer_24" +"$HOME/.julia/artifacts/1785c2c64e603af5e6b79761150b1cc15d03f525" +``` + +In upcoming work, we have found that despite the small size of the training dataset, the RoBERTa model appares to have distilled useful representations for downstream tasks that it was not explicitly trained for. The chart below shows the average out-of-sample root mean squared error for predicting various market indicators from layer activations. Consistent with findings in related work [@alain2018understanding], we find that performance typically improves for layers closer to the final output layer of the transformer model. + +![](rmse_pca_128.png) + +### Intended Purpose + +We hope that this small package may be useful to members of the Julia community who are interest in the interplay Economics, Finance and Artificial Intelligence. It should, for example, be straight-forward to use this package in combination with [Transformers.jl](https://github.com/chengchingwen/Transformers.jl) to fine-tune additional models on the classification task or other tasks of interest. Any contributions are very much welcome. + +## References + diff --git a/dev/juliacon/rmse_pca_128.png b/dev/juliacon/rmse_pca_128.png new file mode 100644 index 0000000000000000000000000000000000000000..18732e30fa6b3aea8655ae7eec8b1f35f33870ab GIT binary patch literal 185221 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%0AsNQ~bvV1frfEFUrTMQ-8w*hl@CmyduM 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⋘(}2Q`N6^}3q!e9d=3f3H|T!ITXgU)_!nac5Uj zQex55br0L>T$wU+W|xH9yL;4b?o}U=H*(FF=XLugs9L1ezxe8tvUk+9PU9ZdrZ+VR z>}XVRag(qe*L<7=@Fp%(IT|KO@rKxc9a4J9A4K8yPT~M#6J@*w5Ccmc)z9n8#nM4! zWybp61S9lGY=0^mR=AaWlZC7Cu$eNYJZ4lw|5pk`$s@mB5i^^*j(fH=tomlF0;t-1R1#aEN++-YRom4E-?;8VAV z#a_Dd5U>V2>vc6lBWhCXdEI-v5~sVtQ3%{iq`c&&%mt422DZc`!?*j>YLBcfbmsh@ zdGkQ}sGn{%RSM>mM6$H@m47dL42b{@u7|;!y15f>02Ris6(2Y@ugB4@j8KJr)v>)M zKLplfAMW)r&Rz8#5!b}ivrgICl!d{?f9ff9g!5ep>7^eWMcW8XMQ3ai5pL%Cgl@by zUxGa4l+vx-SW%?E>W?S09LCvvd%pU?JV2DVz3{gn!*)xcMl=VaT-Ehly%n9tK~~*Z zajR?4#wi~|S03wU#{lTl>%l{(lu8Y#Z`v=jujVAcEl4^J>px#O{QJr3by@2Elx}-B zY866y7dkW~PP;~N|1mVb_Dtw&b?EHvtq$H5H0^=^dR_`;5=X2k%^f|F&>5(C#niejOLD>W{b{)?{?6c#Gb-&rWDG{zHrC384IrU2++ z^zP8YJs=_98^Db;ikFg~Ab9(u@{Z0i>4t>0*HyqJAE52^bjkl&hG|_Y2+s|G7xUbo z%%~pa?Q`|(9r1;}YsiDdznK2DlGG+w?=w7ipQfM1?NK$jwsMB8?f0~=8@_Ju8}?U} z6E!c;(1CVI<{OMxFv3e%@vHGL%j4Xgo#S+Zh2!#7sQlxT_&|y55?&l&lab&LfTYLU=z*SmKYIRw$z^yT>m44kGw~cZ%gBR1-Tojo32Ul; zerf*9QZ^pw;hZZbV2X1tEIn}cA`)8nd$jAWTXObByJuHCS9cmWbn)Hy)ZAIx`iGo} zrD?~J7lk0;kmO|3X`Bn8IH$1v$WLdt^r`@$5OariMDd+gM@I}BRXl64_$t%F?`8VZ z@ARv}{Kk;oBwOcS#8tr<$@3HnHf;x`s@cODSVz}z#U*n6uJhJByn04?*#FhuxxO?R zM{#^F0t+IcjEba$2%?~yk%gKSg+!)|BB*4Gh$4#;={C)_LK<{0Ur3rQvSyYkC8XJK zWSEecT}EjR=QJFJ+Uh5o=-Oe|D&H zMz075nR}x1Wbp=7*dIF%IMv@Cn@GxdW6zNm!)|@^=91*)Xomyl<@2lz>tS>+;mYFK zIz5>!GG_yoJFBzC6)mXE?01`ohy3<;mBRguQ{18D`iw?VJT>mPg2*PcR^vCVRV{sJ9Op%>_7u?lX<-v1 z&JIwVYy`IBttUbxGXJ3z zs4`9Y7Gz>(b)&(Q#D}tzR!p*4El!cN^KdgN@GMfhZs@jLbd+%>MlaVko?|YBdua`lN=x1Us zO*gYH#L&O;z#q?6W^T+GCyz7_) zQ$qX6+$An^XKjrNH+;Ah8vFev*$)i1@rP4bGMYxcp=ek;((Ewi_Kh1mzP8nXCsvWZ zVvnb{Eft^79#z4agPjktgZWUwaD9MM(Sv*CxJ!@ok(cKMb2!bxCCM7QdCQ};4#HJX z%wy;vfLMlZ$RZm$uh60z;wx00lILkKdb(L#x4?c3Kl`jldi~$;Ev^4#klQn*KOZdt zM#QUz!Yqih)1&5>nN-WSnKd2jE# zm7~jjRVMFh27WC%nu=wc;tz4Zc#q*ggYmp8hA5I{x@PH}rxq9^_Aa3qrhYkMTPz6N zIMD3!9rd1%{<3hy@SAE}-6PBQ-f8H{pOT!q%9^CU@M&fcPo|n=QmAnn8?26@gpB73 zfKX?@F{}Q^w=EdTs#j@B0d0aGB;yUTh|E;IZL8+@$R{wm7pULadHEl$9{=51_5Z7B e{(Q55Z& Date: Sat, 27 Jan 2024 07:38:23 +0100 Subject: [PATCH 4/9] proposal done --- dev/juliacon/proposal.md | 12 ++++++------ dev/juliacon/proposal.qmd | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/dev/juliacon/proposal.md b/dev/juliacon/proposal.md index 3a9649a..0d27f60 100644 --- a/dev/juliacon/proposal.md +++ b/dev/juliacon/proposal.md @@ -14,7 +14,7 @@ The authors of the paper have collected and preprocessed a corpus of around 40,0 ### Data -While the authors of the paper did publish their data, much of it is unfortunately scattered across CSV and Excel files stored in a public GitHub repo. We have collected and merged that data, yielding a combined dataset with indexed sentences and additional metadata that may useful for downstream tasks. +While the authors of the paper did publish their data, much of it is unfortunately scattered across CSV and Excel files stored in a public GitHub repo. We have collected and merged that data, yielding a combined dataset with indexed sentences and additional metadata that may be useful for downstream tasks. ``` julia julia> using TrillionDollarWords @@ -30,15 +30,15 @@ julia> load_all_sentences() |> names "speaker" ``` -In addition to the sentences, market data about price inflation and the US Treasury yield curve can also easily be loaded. All datasets are loaded as `DataFrame`s and share common keys that make it possible to join them. Alternatively, a complete dataset combining the corpus of sentences with market data can also be loaded with `load_all_data()`. +In addition to the sentences, market data about price inflation and the US Treasury yield curve can also be loaded. All datasets are loaded as `DataFrame`s and share common keys that make it possible to join them. Alternatively, a complete dataset combining the corpus of sentences with market data can also be loaded with `load_all_data()`. ### Loading the Model -The model can be loaded with or without the classifier head. Under the hood, we use [Transformers.jl](https://github.com/chengchingwen/Transformers.jl) to retrieve the model from [HuggingFace](https://huggingface.co/gtfintechlab/FOMC-RoBERTa?text=A+very+hawkish+stance+excerted+by+the+doves). Any keyword arguments accepted by `Transformers.HuggingFace.HGFConfig` can also be passed. To load the model without the classifier head and enable access to layer-wise activations, the following command can be used: `load_model(; load_head=false, output_hidden_states=true)`. +The model can be loaded with or without the classifier head. Under the hood, we use [Transformers.jl](https://github.com/chengchingwen/Transformers.jl) to retrieve the model from [HuggingFace](https://huggingface.co/gtfintechlab/FOMC-RoBERTa?text=A+very+hawkish+stance+excerted+by+the+doves). Any keyword arguments accepted by `Transformers.HuggingFace.HGFConfig` can also be passed. For example, to load the model without the classifier head and enable access to layer-wise activations, the following command can be used: `load_model(; load_head=false, output_hidden_states=true)`. ### Model Inference -For our own research, we have been interest in probing the model. This involves using linear models to estimate the relationship between layer-wise transformer embeddings and some outcome variable of interest (Alain and Bengio 2018). To do this, we first had run a single forward pass for each sentence through the RoBERTa model and store the layerwise emeddings. The package ships with functionality for doing just that, but to save others valuable GPU hours we have archived activations of the hidden state on the first entity token for each layer as [artifacts](https://github.com/pat-alt/TrillionDollarWords.jl/releases/tag/activations_2024-01-17). To download the last-layer activations in interactive Julia session, for example, users can proceed as follows: +For our own research, we have been interested in probing the model. This involves using linear models to estimate the relationship between layer-wise transformer embeddings and some outcome variable of interest (Alain and Bengio 2018). To do this, we first had to run a single forward pass for each sentence through the RoBERTa model and store the layerwise emeddings. The package ships with functionality for doing just that, but to save others valuable GPU hours we have archived activations of the hidden state on the first entity token for each layer as [artifacts](https://github.com/pat-alt/TrillionDollarWords.jl/releases/tag/activations_2024-01-17). To download the last-layer activations in an interactive Julia session, for example, users can proceed as follows: ``` julia julia> using LazyArtifacts @@ -47,13 +47,13 @@ julia> artifact"activations_layer_24" "$HOME/.julia/artifacts/1785c2c64e603af5e6b79761150b1cc15d03f525" ``` -In upcoming work, we have found that despite the small size of the training dataset, the RoBERTa model appares to have distilled useful representations for downstream tasks that it was not explicitly trained for. The chart below shows the average out-of-sample root mean squared error for predicting various market indicators from layer activations. Consistent with findings in related work (Alain and Bengio 2018), we find that performance typically improves for layers closer to the final output layer of the transformer model. +In our research, we have found that despite the small size of the training dataset, the RoBERTa model appears to have distilled useful representations for downstream tasks that it was not explicitly trained for. The chart below shows the average out-of-sample root mean squared error for predicting various market indicators from layer activations. Consistent with findings in related work (Alain and Bengio 2018), we find that performance typically improves for layers closer to the final output layer of the transformer model. The measured performance is at leasr on par with baseline autoregressive models. ![](rmse_pca_128.png) ### Intended Purpose -We hope that this small package may be useful to members of the Julia community who are interest in the interplay Economics, Finance and Artificial Intelligence. It should, for example, be straight-forward to use this package in combination with [Transformers.jl](https://github.com/chengchingwen/Transformers.jl) to fine-tune additional models on the classification task or other tasks of interest. Any contributions are very much welcome. +We hope that this small package may be useful to members of the Julia community who are interested in the interplay between Economics, Finance and Artificial Intelligence. It should, for example, be straight-forward to use this package in combination with [Transformers.jl](https://github.com/chengchingwen/Transformers.jl) to fine-tune additional models on the classification task or other tasks of interest. Any contributions are very much welcome. ## References diff --git a/dev/juliacon/proposal.qmd b/dev/juliacon/proposal.qmd index e0bb452..07c843a 100644 --- a/dev/juliacon/proposal.qmd +++ b/dev/juliacon/proposal.qmd @@ -20,7 +20,7 @@ The authors of the paper have collected and preprocessed a corpus of around 40,0 ### Data -While the authors of the paper did publish their data, much of it is unfortunately scattered across CSV and Excel files stored in a public GitHub repo. We have collected and merged that data, yielding a combined dataset with indexed sentences and additional metadata that may useful for downstream tasks. +While the authors of the paper did publish their data, much of it is unfortunately scattered across CSV and Excel files stored in a public GitHub repo. We have collected and merged that data, yielding a combined dataset with indexed sentences and additional metadata that may be useful for downstream tasks. ```julia julia> using TrillionDollarWords @@ -36,15 +36,15 @@ julia> load_all_sentences() |> names "speaker" ``` -In addition to the sentences, market data about price inflation and the US Treasury yield curve can also easily be loaded. All datasets are loaded as `DataFrame`s and share common keys that make it possible to join them. Alternatively, a complete dataset combining the corpus of sentences with market data can also be loaded with `load_all_data()`. +In addition to the sentences, market data about price inflation and the US Treasury yield curve can also be loaded. All datasets are loaded as `DataFrame`s and share common keys that make it possible to join them. Alternatively, a complete dataset combining the corpus of sentences with market data can also be loaded with `load_all_data()`. ### Loading the Model -The model can be loaded with or without the classifier head. Under the hood, we use [Transformers.jl](https://github.com/chengchingwen/Transformers.jl) to retrieve the model from [HuggingFace](https://huggingface.co/gtfintechlab/FOMC-RoBERTa?text=A+very+hawkish+stance+excerted+by+the+doves). Any keyword arguments accepted by `Transformers.HuggingFace.HGFConfig` can also be passed. To load the model without the classifier head and enable access to layer-wise activations, the following command can be used: `load_model(; load_head=false, output_hidden_states=true)`. +The model can be loaded with or without the classifier head. Under the hood, we use [Transformers.jl](https://github.com/chengchingwen/Transformers.jl) to retrieve the model from [HuggingFace](https://huggingface.co/gtfintechlab/FOMC-RoBERTa?text=A+very+hawkish+stance+excerted+by+the+doves). Any keyword arguments accepted by `Transformers.HuggingFace.HGFConfig` can also be passed. For example, to load the model without the classifier head and enable access to layer-wise activations, the following command can be used: `load_model(; load_head=false, output_hidden_states=true)`. ### Model Inference -For our own research, we have been interest in probing the model. This involves using linear models to estimate the relationship between layer-wise transformer embeddings and some outcome variable of interest [@alain2018understanding]. To do this, we first had run a single forward pass for each sentence through the RoBERTa model and store the layerwise emeddings. The package ships with functionality for doing just that, but to save others valuable GPU hours we have archived activations of the hidden state on the first entity token for each layer as [artifacts](https://github.com/pat-alt/TrillionDollarWords.jl/releases/tag/activations_2024-01-17). To download the last-layer activations in interactive Julia session, for example, users can proceed as follows: +For our own research, we have been interested in probing the model. This involves using linear models to estimate the relationship between layer-wise transformer embeddings and some outcome variable of interest [@alain2018understanding]. To do this, we first had to run a single forward pass for each sentence through the RoBERTa model and store the layerwise emeddings. The package ships with functionality for doing just that, but to save others valuable GPU hours we have archived activations of the hidden state on the first entity token for each layer as [artifacts](https://github.com/pat-alt/TrillionDollarWords.jl/releases/tag/activations_2024-01-17). To download the last-layer activations in an interactive Julia session, for example, users can proceed as follows: ```julia julia> using LazyArtifacts @@ -53,13 +53,13 @@ julia> artifact"activations_layer_24" "$HOME/.julia/artifacts/1785c2c64e603af5e6b79761150b1cc15d03f525" ``` -In upcoming work, we have found that despite the small size of the training dataset, the RoBERTa model appares to have distilled useful representations for downstream tasks that it was not explicitly trained for. The chart below shows the average out-of-sample root mean squared error for predicting various market indicators from layer activations. Consistent with findings in related work [@alain2018understanding], we find that performance typically improves for layers closer to the final output layer of the transformer model. +In our research, we have found that despite the small size of the training dataset, the RoBERTa model appears to have distilled useful representations for downstream tasks that it was not explicitly trained for. The chart below shows the average out-of-sample root mean squared error for predicting various market indicators from layer activations. Consistent with findings in related work [@alain2018understanding], we find that performance typically improves for layers closer to the final output layer of the transformer model. The measured performance is at leasr on par with baseline autoregressive models. ![](rmse_pca_128.png) ### Intended Purpose -We hope that this small package may be useful to members of the Julia community who are interest in the interplay Economics, Finance and Artificial Intelligence. It should, for example, be straight-forward to use this package in combination with [Transformers.jl](https://github.com/chengchingwen/Transformers.jl) to fine-tune additional models on the classification task or other tasks of interest. Any contributions are very much welcome. +We hope that this small package may be useful to members of the Julia community who are interested in the interplay between Economics, Finance and Artificial Intelligence. It should, for example, be straight-forward to use this package in combination with [Transformers.jl](https://github.com/chengchingwen/Transformers.jl) to fine-tune additional models on the classification task or other tasks of interest. Any contributions are very much welcome. ## References From aecc19484ab0e968cc9d84c096577b5c261be8d4 Mon Sep 17 00:00:00 2001 From: pat-alt Date: Sat, 27 Jan 2024 07:51:15 +0100 Subject: [PATCH 5/9] more work on this --- dev/juliacon/proposal.md | 8 ++++---- dev/juliacon/proposal.qmd | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/dev/juliacon/proposal.md b/dev/juliacon/proposal.md index 0d27f60..7e78869 100644 --- a/dev/juliacon/proposal.md +++ b/dev/juliacon/proposal.md @@ -6,7 +6,7 @@ ## Description -In the age of forward guidance, central bankers spend a great deal of time thinking about how their communications are perceived by markets. What if there was a way to predict the impact of communications on financial markets directly from text? Shah, Paturi, and Chava (2023) attempt to do just that in their [ACL 2023 paper](https://arxiv.org/abs/2305.07972) (which the presenter and author of this package is not affiliated with). +In the age of forward guidance, central bankers spend a great deal of time thinking about how their communications are perceived by markets. What if there was a way to predict the impact of communications on financial markets directly from text? Shah, Paturi, and Chava (2023) attempt to do just that in their [ACL 2023 paper](https://arxiv.org/abs/2305.07972) (which the author of this package is not affiliated with). ### Background @@ -34,7 +34,7 @@ In addition to the sentences, market data about price inflation and the US Treas ### Loading the Model -The model can be loaded with or without the classifier head. Under the hood, we use [Transformers.jl](https://github.com/chengchingwen/Transformers.jl) to retrieve the model from [HuggingFace](https://huggingface.co/gtfintechlab/FOMC-RoBERTa?text=A+very+hawkish+stance+excerted+by+the+doves). Any keyword arguments accepted by `Transformers.HuggingFace.HGFConfig` can also be passed. For example, to load the model without the classifier head and enable access to layer-wise activations, the following command can be used: `load_model(; load_head=false, output_hidden_states=true)`. +The model can be loaded with or without the classifier head. Under the hood, we use [Transformers.jl](https://github.com/chengchingwen/Transformers.jl) to retrieve the model from HuggingFace. Any keyword arguments accepted by `Transformers.HuggingFace.HGFConfig` can also be passed. For example, to load the model without the classifier head and enable access to layer-wise activations, the following command can be used: `load_model(; load_head=false, output_hidden_states=true)`. ### Model Inference @@ -47,13 +47,13 @@ julia> artifact"activations_layer_24" "$HOME/.julia/artifacts/1785c2c64e603af5e6b79761150b1cc15d03f525" ``` -In our research, we have found that despite the small size of the training dataset, the RoBERTa model appears to have distilled useful representations for downstream tasks that it was not explicitly trained for. The chart below shows the average out-of-sample root mean squared error for predicting various market indicators from layer activations. Consistent with findings in related work (Alain and Bengio 2018), we find that performance typically improves for layers closer to the final output layer of the transformer model. The measured performance is at leasr on par with baseline autoregressive models. +We have found that despite the small sample size, the RoBERTa model appears to have distilled useful representations for downstream tasks that it was not explicitly trained for. The chart below shows the average out-of-sample root mean squared error for predicting various market indicators from layer activations. Consistent with findings in related work (Alain and Bengio 2018), we find that performance typically improves for layers closer to the final output layer of the transformer model. The measured performance is at least on par with baseline autoregressive models. ![](rmse_pca_128.png) ### Intended Purpose -We hope that this small package may be useful to members of the Julia community who are interested in the interplay between Economics, Finance and Artificial Intelligence. It should, for example, be straight-forward to use this package in combination with [Transformers.jl](https://github.com/chengchingwen/Transformers.jl) to fine-tune additional models on the classification task or other tasks of interest. Any contributions are very much welcome. +We hope that this small package may be useful to members of the Julia community who are interested in the interplay between Economics, Finance and Artificial Intelligence. It should, for example, be straight-forward to use this package in combination with Transformers.jl to fine-tune additional models on the classification task or other tasks of interest. Any contributions are very much welcome. ## References diff --git a/dev/juliacon/proposal.qmd b/dev/juliacon/proposal.qmd index 07c843a..72b71bd 100644 --- a/dev/juliacon/proposal.qmd +++ b/dev/juliacon/proposal.qmd @@ -12,7 +12,7 @@ format: ## Description -In the age of forward guidance, central bankers spend a great deal of time thinking about how their communications are perceived by markets. What if there was a way to predict the impact of communications on financial markets directly from text? @shah2023trillion attempt to do just that in their [ACL 2023 paper](https://arxiv.org/abs/2305.07972) (which the presenter and author of this package is not affiliated with). +In the age of forward guidance, central bankers spend a great deal of time thinking about how their communications are perceived by markets. What if there was a way to predict the impact of communications on financial markets directly from text? @shah2023trillion attempt to do just that in their [ACL 2023 paper](https://arxiv.org/abs/2305.07972) (which the author of this package is not affiliated with). ### Background @@ -40,7 +40,7 @@ In addition to the sentences, market data about price inflation and the US Treas ### Loading the Model -The model can be loaded with or without the classifier head. Under the hood, we use [Transformers.jl](https://github.com/chengchingwen/Transformers.jl) to retrieve the model from [HuggingFace](https://huggingface.co/gtfintechlab/FOMC-RoBERTa?text=A+very+hawkish+stance+excerted+by+the+doves). Any keyword arguments accepted by `Transformers.HuggingFace.HGFConfig` can also be passed. For example, to load the model without the classifier head and enable access to layer-wise activations, the following command can be used: `load_model(; load_head=false, output_hidden_states=true)`. +The model can be loaded with or without the classifier head. Under the hood, we use [Transformers.jl](https://github.com/chengchingwen/Transformers.jl) to retrieve the model from HuggingFace. Any keyword arguments accepted by `Transformers.HuggingFace.HGFConfig` can also be passed. For example, to load the model without the classifier head and enable access to layer-wise activations, the following command can be used: `load_model(; load_head=false, output_hidden_states=true)`. ### Model Inference @@ -53,13 +53,13 @@ julia> artifact"activations_layer_24" "$HOME/.julia/artifacts/1785c2c64e603af5e6b79761150b1cc15d03f525" ``` -In our research, we have found that despite the small size of the training dataset, the RoBERTa model appears to have distilled useful representations for downstream tasks that it was not explicitly trained for. The chart below shows the average out-of-sample root mean squared error for predicting various market indicators from layer activations. Consistent with findings in related work [@alain2018understanding], we find that performance typically improves for layers closer to the final output layer of the transformer model. The measured performance is at leasr on par with baseline autoregressive models. +We have found that despite the small sample size, the RoBERTa model appears to have distilled useful representations for downstream tasks that it was not explicitly trained for. The chart below shows the average out-of-sample root mean squared error for predicting various market indicators from layer activations. Consistent with findings in related work [@alain2018understanding], we find that performance typically improves for layers closer to the final output layer of the transformer model. The measured performance is at least on par with baseline autoregressive models. ![](rmse_pca_128.png) ### Intended Purpose -We hope that this small package may be useful to members of the Julia community who are interested in the interplay between Economics, Finance and Artificial Intelligence. It should, for example, be straight-forward to use this package in combination with [Transformers.jl](https://github.com/chengchingwen/Transformers.jl) to fine-tune additional models on the classification task or other tasks of interest. Any contributions are very much welcome. +We hope that this small package may be useful to members of the Julia community who are interested in the interplay between Economics, Finance and Artificial Intelligence. It should, for example, be straight-forward to use this package in combination with Transformers.jl to fine-tune additional models on the classification task or other tasks of interest. Any contributions are very much welcome. ## References From cdb5e9ae3b090f8a2cb00e292aa970d520b7d851 Mon Sep 17 00:00:00 2001 From: pat-alt Date: Sat, 27 Jan 2024 08:35:13 +0100 Subject: [PATCH 6/9] image link --- dev/juliacon/proposal.md | 2 +- dev/juliacon/proposal.qmd | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dev/juliacon/proposal.md b/dev/juliacon/proposal.md index 7e78869..e3cce1a 100644 --- a/dev/juliacon/proposal.md +++ b/dev/juliacon/proposal.md @@ -49,7 +49,7 @@ julia> artifact"activations_layer_24" We have found that despite the small sample size, the RoBERTa model appears to have distilled useful representations for downstream tasks that it was not explicitly trained for. The chart below shows the average out-of-sample root mean squared error for predicting various market indicators from layer activations. Consistent with findings in related work (Alain and Bengio 2018), we find that performance typically improves for layers closer to the final output layer of the transformer model. The measured performance is at least on par with baseline autoregressive models. -![](rmse_pca_128.png) +![](https://raw.githubusercontent.com/pat-alt/TrillionDollarWords.jl/11-activations-for-cls-head/dev/juliacon/rmse_pca_128.png) ### Intended Purpose diff --git a/dev/juliacon/proposal.qmd b/dev/juliacon/proposal.qmd index 72b71bd..b90b997 100644 --- a/dev/juliacon/proposal.qmd +++ b/dev/juliacon/proposal.qmd @@ -55,7 +55,7 @@ julia> artifact"activations_layer_24" We have found that despite the small sample size, the RoBERTa model appears to have distilled useful representations for downstream tasks that it was not explicitly trained for. The chart below shows the average out-of-sample root mean squared error for predicting various market indicators from layer activations. Consistent with findings in related work [@alain2018understanding], we find that performance typically improves for layers closer to the final output layer of the transformer model. The measured performance is at least on par with baseline autoregressive models. -![](rmse_pca_128.png) +![](https://raw.githubusercontent.com/pat-alt/TrillionDollarWords.jl/11-activations-for-cls-head/dev/juliacon/rmse_pca_128.png) ### Intended Purpose From 6fff242ef60ed98e282a8b25493003fcbb0fb473 Mon Sep 17 00:00:00 2001 From: pat-alt Date: Sat, 27 Jan 2024 09:08:31 +0100 Subject: [PATCH 7/9] fixed error --- dev/juliacon/proposal.md | 16 ++-------------- dev/juliacon/proposal.qmd | 1 - src/baseline_model.jl | 4 ++-- test/load_model.jl | 1 - 4 files changed, 4 insertions(+), 18 deletions(-) diff --git a/dev/juliacon/proposal.md b/dev/juliacon/proposal.md index e3cce1a..3f53dda 100644 --- a/dev/juliacon/proposal.md +++ b/dev/juliacon/proposal.md @@ -57,18 +57,6 @@ We hope that this small package may be useful to members of the Julia community ## References -
+Alain, Guillaume, and Yoshua Bengio. 2018. “Understanding Intermediate Layers Using Linear Classifier Probes.” -
- -Alain, Guillaume, and Yoshua Bengio. 2018. “Understanding Intermediate Layers Using Linear Classifier Probes.” . - -
- -
- -Shah, Agam, Suvan Paturi, and Sudheer Chava. 2023. “Trillion Dollar Words: A New Financial Dataset, Task & Market Analysis.” . - -
- -
+Shah, Agam, Suvan Paturi, and Sudheer Chava. 2023. “Trillion Dollar Words: A New Financial Dataset, Task & Market Analysis.” diff --git a/dev/juliacon/proposal.qmd b/dev/juliacon/proposal.qmd index b90b997..cdfc015 100644 --- a/dev/juliacon/proposal.qmd +++ b/dev/juliacon/proposal.qmd @@ -50,7 +50,6 @@ For our own research, we have been interested in probing the model. This involve julia> using LazyArtifacts julia> artifact"activations_layer_24" -"$HOME/.julia/artifacts/1785c2c64e603af5e6b79761150b1cc15d03f525" ``` We have found that despite the small sample size, the RoBERTa model appears to have distilled useful representations for downstream tasks that it was not explicitly trained for. The chart below shows the average out-of-sample root mean squared error for predicting various market indicators from layer activations. Consistent with findings in related work [@alain2018understanding], we find that performance typically improves for layers closer to the final output layer of the transformer model. The measured performance is at least on par with baseline autoregressive models. diff --git a/src/baseline_model.jl b/src/baseline_model.jl index aecd24a..fa4ddf0 100644 --- a/src/baseline_model.jl +++ b/src/baseline_model.jl @@ -83,8 +83,8 @@ Computes a forward pass of the model on the given queries and returns the layerw """ function layerwise_activations(mod::BaselineModel, queries::Vector{String}) embeddings = get_embeddings(mod, queries) - if typeof(mod.mod) == HGFRobertaForSequenceClassification - output = embeddings.hidden_state + if typeof(mod.mod) <: HGFRobertaForSequenceClassification + output = embeddings.hidden_state[:,:] else pooler = Transformers.HuggingFace.FirstTokenPooler() if haskey(embeddings, :outputs) diff --git a/test/load_model.jl b/test/load_model.jl index b187a95..12d15d9 100644 --- a/test/load_model.jl +++ b/test/load_model.jl @@ -40,7 +40,6 @@ end @test size(A, 2) == n A_cls = layerwise_activations(mod_cls, queries.sentence) @test size(A_cls, 2) == n - @test isequal(A, A_cls) end @testset "To data frame" begin From 13cdb8106dbf1322132cd4d5dde5c0dc410d9d7a Mon Sep 17 00:00:00 2001 From: pat-alt Date: Sat, 27 Jan 2024 09:15:26 +0100 Subject: [PATCH 8/9] fixed error --- src/baseline_model.jl | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/baseline_model.jl b/src/baseline_model.jl index fa4ddf0..5b4d19f 100644 --- a/src/baseline_model.jl +++ b/src/baseline_model.jl @@ -66,12 +66,14 @@ end Extends the `embeddings` function to `HGFRobertaForSequenceClassification`. Performs a forward pass through the model and returns the embeddings. Then performs a forward pass through the classification head and returns the activations going into the final linear layer. """ -function get_embeddings(atomic_model::HGFRobertaForSequenceClassification, tokens::NamedTuple) +function get_embeddings( + atomic_model::HGFRobertaForSequenceClassification, + tokens::NamedTuple, +) clf = atomic_model.cls b = atomic_model.model(tokens) # Perform forward pass through classification head: - b = clf.layer.layers[1](b).hidden_state |> - x -> clf.layer.layers[2](x) + b = clf.layer.layers[1](b).hidden_state |> x -> clf.layer.layers[2](x) return b end @@ -84,8 +86,8 @@ Computes a forward pass of the model on the given queries and returns the layerw function layerwise_activations(mod::BaselineModel, queries::Vector{String}) embeddings = get_embeddings(mod, queries) if typeof(mod.mod) <: HGFRobertaForSequenceClassification - output = embeddings.hidden_state[:,:] - else + output = embeddings.hidden_state[:, :] + else pooler = Transformers.HuggingFace.FirstTokenPooler() if haskey(embeddings, :outputs) output = [pooler(x.hidden_state) for x in embeddings.outputs] From 45da08150509ea9e423387dce925731ababc0e8e Mon Sep 17 00:00:00 2001 From: pat-alt Date: Sat, 27 Jan 2024 09:24:25 +0100 Subject: [PATCH 9/9] last thing --- test/load_model.jl | 1 - 1 file changed, 1 deletion(-) diff --git a/test/load_model.jl b/test/load_model.jl index 12d15d9..eb67008 100644 --- a/test/load_model.jl +++ b/test/load_model.jl @@ -45,7 +45,6 @@ end @testset "To data frame" begin A = layerwise_activations(mod, queries) A_cls = layerwise_activations(mod_cls, queries) - @test isequal(A, A_cls) end end