Package: meerkat-ml
Create interactive views of any dataset.Website|Quickstart|Docs|Contributing|Discord|Blogpost⚡️ Quickstartpipinstallmeerkat-mlNext Steps.
Check out ourGetting Started pageand ourdocumentationto start building with Meerkat.Why Meerkat?Meerkat is an open-source Python library that helps users visualize, explore, and annotate any dataset. It is especially useful when processing unstructured data types (e.g.free text, PDFs, images, video) with machine learning models.✏️ Features and Design PrinciplesHere are four principles that inform Meerkat's design.(1) Low overhead.With four lines of Python, start interacting with any dataset.Zero-copy integrations with your preferred data abstractions: Pandas, Arrow, HF Datasets, Ibis, SQL.Limited data movement. With Meerkat, you interact with your data where it already lives: no uploads to external databases and no reformatting.importmeerkatasmkdf=mk.from_csv("paintings.csv")df["image"]=mk.files("image_url")df(2) Diverse data types.Visualize and annotate almost any data type in Meerkat interfaces: text, images, audio, video, MRI scans, PDFs, HTML, JSON.(3) "Intelligent" user interfaces.Meerkat makes it easy to embedmachine learning models(e.g. LLMs) within user interfaces to enable intelligent functionality such as searching, grouping and autocomplete.df["embedding"]=mk.embed(df["img"],engine="clip")match=mk.gui.Match(df,against="embedding",engine="clip")sorted_df=mk.sort(df,by=match.criterion.name,ascending=False)gallery=mk.gui.Gallery(sorted_df)mk.gui.html.div([match,gallery])(4) Declarative (think: Seaborn), but also infinitely customizable and composable.Meerkat visualization components can be composed and customized to create new interfaces.plot=mk.gui.plotly.ScatterPlot(df=plot_df,x="umap_1",y="umap_2",)@mk.gui.reactivedeffilter(selected:list,df:mk.DataFrame):returndf[df.primary_key.isin(selected)]filtered_df=filter(plot.selected,plot_df)table=mk.gui.Table(filtered_df,classes="h-full")mk.gui.html.flex([plot,table],classes="h-[600px]")✨ Use cases where Meerkat shinesExploratory analysis over unstructured data types.DemoSpot-checking the behavior of large language models (e.g. GPT-3).DemoIdentifying systematic errors made by machine learning models.DemoRapid labeling of validation data.🤔 Use cases where Meerkat may not be the right fitAre you only working with structured data (e.g. numerical and categorical variables)?Popular data visualization libraries (e.g.Seaborn,Matplotlib) are often sufficient. If you're looking for interactivity,PlotlyandStreamlitwork well with structured data. Meerkat is differentiated in how it visualizes unstructured data types: long-form text, PDFs, HTML, images, video, audio...Are you trying to make a straightforward demo of a machine learning model (single input/output, chatbot) and share with the world?Gradiois likely a better fit! Though, if your demo involves visualizing lots of data, you may find Meerkat useful.Are you trying to manually label tens of thousands of data points?If you are looking for a data labeling tool to use with a labeling team, there are great open source labeling solutions designed for this (e.g.LabelStudio). In contrast, Meerkat is great fit for teams/individuals without access to a large labeling workforce who are using pretrained models (e.g.GPT-3) and need to label validation data or in-context examples.✉️ AboutMeerkat is being built by Machine Learning PhD students in theHazy Researchlab at Stanford. We're excited to build for a future where models will make it easier for teams to sift and reason through large volumes of unstructtured data effortlessly.Please reach out tokgoel [at] cs [dot] stanford [dot] edu, eyuboglu [at] stanford [dot] edu, and arjundd [at] stanford [dot] eduif you would like to use Meerkat for a project, at your company or if you have any questions.