Google's LaMDA paper arxiv.org/abs/2201.08239 shows yet another information retrieval strategy: it has been taught to ask a search engine, or a calculator .
The first answer "It [Eiffel Tower] was constructed in 1887" is generated directly, but also recognized as containing a factual statement. This sends the whole context to LaMDA-Research which is trained to generate search queries, here "TS, Eiffel Tower, construction date"
"TS" means "ToolSet", i.e. the generated text is meant for a tool, the search engine, not the user.
Info from the search, i.e. "Eiffel Tower / construction started: 28 jan 1887" is appended to the context, which is sent to LaMDA-Research again.
And LaMDA-Research responds with "TS, Eiffel Tower, completed when" which is again a search engine query (prefix "TS"). It is trained to issue follow up queries if necessary.
All the retrieved info is added to the context and the context re-evaluated through LaMDA-Research, until it is finally happy and issues a response prefixed with "user" instead of "TS": "User, work started on it in Jan 1887 and it was opened in March 1889."
Contrast this with: 1) traditional NLP models (facts stored in trained weights directly) 2) specialised "memory layers" for facts like arxiv.org/pdf/1907.05242…. Specific learnable weights are used as an information database with a learned retrieval mechanism.
3) DeepMind's RETRO (deepmind.com/blog/article/l…) where the model is trained to retrieve relevant documents from a pile of text by embedding proximity, and add them to the context to generate better answers.
So much interesting innovation !
Some way still to go. The LaMDA authors have thankfully included some entertaining failure modes in their article 😁.
• • •
Missing some Tweet in this thread? You can try to
force a refresh
This is sweet 🥧 ! arxiv.org/abs/2202.01197
Finally a solid way of of teaching a neural network to know what it does not know.
(OOD = Out Of Domain, i.e. not one of the classes in the training data.) Congrats @SharonYixuanLin @xuefeng_du@MuCai7
The nice part is that it's a purely architectural change of the detection network, with a new contrastive loss which does not introduce additional hyper-parameters. No additional data required !
The results are competitive with training on a larger dataset manually extended with outliers: "Our method achieves OOD detection performance on COCO (AUROC: 88.66%) that favorably matches outlier exposure (AUROC: 90.18%), and does not require external data."
I like the "database layer" developed by DeepMind in their RETRO architecture: deepmind.com/blog/article/l…
It teaches the model to retrieve text chunks from a vast textual database (by their nearest neighbour match of their BERT-generated embeddings) and use them when generating text
It's a bit different from the "memory layer" I tweeted about previously, which provides a large learnable memory, without increasing the number of learnable weights. (for ref: arxiv.org/pdf/1907.05242…)
This time, the model learns the trick of retrieving relevant pieces of knowledge from a large corpus of text.
The end result is similar: an NLP model that can do what the big guns can (Gopher, Jurassic-1, GPT3) with a tenth of their learnable weights.
Here is Mask R-CNN, the most popular architecture used for object detection and segmentation.
The conceptual principle of the R-CNN family is to use a two-step process for object detection: 1) a Region Proposal Network (RPN) identifies regions of interests(ROIs) 2) The ROIs are cut from the image and fed through a classifier.
In fact, the cutting is not done the original image but directly on the feature maps extracted from the backbone. Since the feature maps are much lower resolution than the image, the cropping requires some care: sub-pixel extraction and interpolation aka. "ROI alignment".
The MobileNet family of convolutional architectures uses depth-wise convolutions where the channels of the input are convolved independently.
Their basic building block is called the "Inverted Residual Bottleneck", compared here with the basic blocks in ResNet and Xception (dw-conv for depth-wise convolution).
Here is MobileNetV2, optimized for low weight count and fast inference.