Spaces:
Running
Running
| import gradio as gr | |
| from typing import List | |
| class Space: | |
| def __init__(self, title, id): | |
| self.title = title | |
| self.id = id | |
| class News: | |
| def __init__(self, title, link): | |
| self.title = title | |
| self.link = link | |
| class Category: | |
| def __init__(self, title, description, news: List[News] = None, spaces=None): | |
| if news is None: | |
| news = [] | |
| if spaces is None: | |
| spaces = [] | |
| self.title = title | |
| self.description = description | |
| self.news = news | |
| self.spaces = spaces | |
| inclusive = Category( | |
| title="π§βπ€βπ§ Inclusive", | |
| description=""" | |
| These are projects which broaden the scope of who _builds_ and _benefits_ in the machine learning world. | |
| <br><br> | |
| Examples of this can include: | |
| <br><br> | |
| - Curating diverse datasets that increase the representation of underserved groups | |
| - Training language models on languages that aren't yet available on the Hugging Face Hub. | |
| - Creating no-code and low-code frameworks that allow non-technical folk to engage with AI. | |
| """, | |
| news=[ | |
| News( | |
| title="π Gradio 3.19 - Bugfixes and improved UI/UX for embedded apps", | |
| link="https://twitter.com/Gradio/status/1627702506250805248" | |
| ), | |
| News( | |
| title="𧨠Diffusers 0.13 - New pipelines for editing and guiding models", | |
| link="https://twitter.com/multimodalart/status/1627727910801928192" | |
| ) | |
| ], | |
| spaces=[ | |
| Space( | |
| title="Promptist Demo", | |
| id="microsoft/Promptist" | |
| ), | |
| Space( | |
| title="MMTAfrica: Multilingual Machine Translation", | |
| id="edaiofficial/mmtafrica" | |
| ), | |
| Space( | |
| title="Spanish to Quechua translation", | |
| id="hackathon-pln-es/spanish-to-quechua-translation" | |
| ), | |
| ] | |
| ) | |
| rigorous = Category( | |
| title="βοΈ Rigorous", | |
| description=""" | |
| Among the many concerns that go into creating new models is a seemingly simple question: "Does it work?" | |
| <br><br> | |
| Rigorous projects pay special attention to examining failure cases, protecting privacy through security measures, and ensuring that potential users (technical and non-technical) are informed of the project's limitations. | |
| <br><br> | |
| Examples: | |
| <br><br> | |
| - Projects built with models that are well-documented with Model Cards. | |
| - Tools that provide transparency into how a model was trained and how it behaves. | |
| - Evaluations against cutting-edge benchmarks, with results reported against disaggregated sets. | |
| - Demonstrations of models failing across gender, skin type, ethnicity, age or other attributes. | |
| - Techniques for mitigating issues like over-fitting and training data memorization. | |
| """, | |
| news=[ | |
| News( | |
| title="ποΈ AI chatbots are coming to search engines β can you trust the results?", | |
| link="https://www.nature.com/articles/d41586-023-00423-4" | |
| ), | |
| News( | |
| title="πͺͺ Model Cards: Introducing new documentation tools", | |
| link="https://huggingface.co/blog/model-cards" | |
| ), | |
| News( | |
| title="Ethics & Society Newsletter #2: Let's talk about bias!", | |
| link="https://huggingface.co/blog/ethics-soc-2" | |
| ) | |
| ], | |
| spaces=[ | |
| Space( | |
| title="A Watermark for Large Language Models", | |
| id="tomg-group-umd/lm-watermarking" | |
| ), | |
| Space( | |
| title="Roots Search Tool", | |
| id="bigscience-data/roots-search" | |
| ), | |
| Space( | |
| title="Diffusion Bias Explorer", | |
| id="society-ethics/DiffusionBiasExplorer" | |
| ), | |
| Space( | |
| title="Disaggregators", | |
| id="society-ethics/disaggregators" | |
| ) | |
| ] | |
| ) | |
| socially_conscious = Category( | |
| title="ποΈβπ¨οΈ Socially Conscious", | |
| description=""" | |
| Socially Conscious work shows us how machine learning can be applied as a force for good! | |
| <br><br> | |
| Examples: | |
| <br><br> | |
| - Using machine learning as part of an effort to tackle climate change. | |
| - Building tools to assist with medical research and practice. | |
| - Models for text-to-speech, image captioning, and other tasks aimed at increasing accessibility. | |
| - Creating systems for the digital humanities, such as for Indigenous language revitalization. | |
| """, | |
| news=[ | |
| News( | |
| title="π¦ New dataset: LILA Camera Traps", | |
| link="https://huggingface.co/datasets/society-ethics/lila_camera_traps" | |
| ), | |
| News( | |
| title="π§βπ¬ Deep Learning With Proteins", | |
| link="https://huggingface.co/blog/deep-learning-with-proteins" | |
| ) | |
| ], | |
| spaces=[ | |
| Space( | |
| title="Comparing Captioning Models", | |
| id="nielsr/comparing-captioning-models" | |
| ), | |
| Space( | |
| title="Whisper Speaker Diarization", | |
| id="vumichien/whisper-speaker-diarization" | |
| ), | |
| Space( | |
| title="Speech Recognition from visual lip movement", | |
| id="vumichien/lip_movement_reading" | |
| ), | |
| Space( | |
| title="Socratic Models Image Captioning", | |
| id="Geonmo/socratic-models-image-captioning-with-BLOOM" | |
| ), | |
| ] | |
| ) | |
| consentful = Category( | |
| title="π€ Consentful", | |
| description=""" | |
| [What is consentful tech?](https://www.consentfultech.io) | |
| Consentful technology supports the self-determination of people who use and are affected by these technologies. | |
| <br><br> | |
| Examples of this can include: | |
| <br><br> | |
| - Demonstrating a commitment to acquiring data from willing, informed, and appropriately compensated sources. | |
| - Designing systems that respect end-user autonomy, e.g. with privacy-preserving techniques. | |
| - Avoiding extractive, chauvinist, ["dark"](https://www.deceptive.design), and otherwise "unethical" patterns of engagement. | |
| """, | |
| news=[ | |
| News( | |
| title="The Stack - 3 TB of Permissively Licensed Source Code", | |
| link="https://www.bigcode-project.org/docs/about/the-stack/" | |
| ) | |
| ], | |
| spaces=[ | |
| Space( | |
| title="Sentiment Analysis on Encrypted Data with FHE", | |
| id="zama-fhe/encrypted_sentiment_analysis" | |
| ), | |
| Space( | |
| title="SantaCoder: Code Generation", | |
| id="bigcode/santacoder-demo" | |
| ), | |
| Space( | |
| title="Data Anonymization in Autonomous Driving", | |
| id="khaclinh/self-driving-anonymization" | |
| ), | |
| Space( | |
| title="Raising the Cost of Malicious AI-Powered Image Editing", | |
| id="RamAnanth1/photoguard" | |
| ), | |
| ] | |
| ) | |
| sustainable = Category( | |
| title="π Sustainable", | |
| description=""" | |
| These are Spaces that highlight and explore techniques for making machine learning ecologically sustainable. | |
| <br><br> | |
| Examples | |
| <br><br> | |
| - Tracking emissions from training and running inferences on large language models. | |
| - Quantization and distillation methods to reduce carbon footprints without sacrificing model quality. | |
| """, | |
| news=[ | |
| News( | |
| title="π New paper: Counting Carbon β Luccioni & Hernandez-Garcia, 2023", | |
| link="https://twitter.com/SashaMTL/status/1626572394130292737" | |
| ), | |
| News( | |
| title="PEFT: Parameter-Efficient Fine-Tuning on Low-Resource Hardware", | |
| link="https://huggingface.co/blog/peft" | |
| ) | |
| ], | |
| spaces=[ | |
| Space( | |
| title="Hugging Face Carbon Compare Tool", | |
| id="huggingface/Carbon-Compare" | |
| ), | |
| Space( | |
| title="Image Classification with EfficientFormer-L1", | |
| id="adirik/efficientformer" | |
| ), | |
| Space( | |
| title="EfficientNetV2 Deepfakes Video Detector", | |
| id="Ron0420/EfficientNetV2_Deepfakes_Video_Detector" | |
| ), | |
| ] | |
| ) | |
| inquisitive = Category( | |
| title="π€ Inquisitive", | |
| description=""" | |
| Some projects take a radical new approach to concepts which may have become commonplace. These projects, often rooted in critical theory, shine a light on inequities and power structures which challenge the community to rethink its relationship to technology. | |
| <br><br> | |
| Examples: | |
| <br><br> | |
| - Reframing AI and machine learning from Indigenous perspectives. | |
| - Highlighting LGBTQIA2S+ marginalization in AI. | |
| - Critiquing the harms perpetuated by AI systems. | |
| - Discussing the role of "openness" in AI research. | |
| """, | |
| news=[ | |
| News( | |
| title="π¦ DAIR's Stochastic Parrots Day is on March 17", | |
| link="https://twitter.com/emilymbender/status/1627312284392640513" | |
| ), | |
| News( | |
| title="π New paper: The Gradient of Generative AI Release β Solaiman, 2023", | |
| link="https://twitter.com/IreneSolaiman/status/1625158317378252800" | |
| ), | |
| News( | |
| title="βοΈ Diffusers has a brand new Ethical Guidelines doc!", | |
| link="https://github.com/huggingface/diffusers/pull/2330" | |
| ) | |
| ], | |
| spaces=[ | |
| Space( | |
| title="Spanish Gender Neutralizer", | |
| id="hackathon-pln-es/es_nlp_gender_neutralizer" | |
| ), | |
| Space( | |
| title="PAIR: Datasets Have Worldviews", | |
| id="merve/dataset-worldviews" | |
| ), | |
| ] | |
| ) | |
| categories = [rigorous, consentful, socially_conscious, sustainable, inclusive, inquisitive] | |
| def news_card(news): | |
| with gr.Box(): | |
| with gr.Row(elem_id="news-row"): | |
| gr.Markdown(f"{news.title}") | |
| button = gr.Button(elem_id="article-button", value="Read more π") | |
| button.click(fn=None, _js=f"() => window.open('{news.link}')") | |
| def space_card(space): | |
| with gr.Box(elem_id="space-card"): | |
| with gr.Row(elem_id="news-row"): | |
| gr.Markdown(f"{space.title}") | |
| button = gr.Button(elem_id="article-button", value="View π") | |
| button.click(fn=None, _js=f"() => window.open('https://hf.space/{space.id}')") | |
| def category_tab(category): | |
| with gr.Tab(label=category.title, elem_id="news-tab"): | |
| with gr.Row(): | |
| with gr.Column(): | |
| gr.Markdown(category.description, elem_id="margin-top") | |
| with gr.Column(): | |
| gr.Markdown("### Hugging Face News π°") | |
| [news_card(x) for x in category.news] | |
| with gr.Tab(label="Spaces"): | |
| with gr.Row(elem_id="spaces-flex"): | |
| [space_card(x) for x in category.spaces] | |
| with gr.Tab(label="Models - Coming Soon!"): | |
| gr.Markdown("#### Check back soon for featured models π€") | |
| with gr.Tab(label="Datasets - Coming Soon!"): | |
| gr.Markdown("#### Check back soon for featured datasets π€") | |
| with gr.Blocks(css="#margin-top {margin-top: 15px} #center {text-align: center;} #news-tab {padding: 15px;} #news-tab h3 {margin: 0px; text-align: center;} #news-tab p {margin: 0px;} #article-button {flex-grow: initial;} #news-row {align-items: center;} #spaces-flex {flex-wrap: wrap;} #space-card { display: flex; min-width: calc(90% / 3); max-width:calc(100% / 3); box-sizing: border-box;}") as demo: | |
| with gr.Row(elem_id="center"): | |
| gr.Markdown("# Ethics & Society at Hugging Face") | |
| gr.Markdown(""" | |
| At Hugging Face, we are committed to operationalizing ethics at the cutting-edge of machine learning. This page is dedicated to highlighting projects β inside and outside Hugging Face β in order to encourage and support ethical AI. We wish to have an ongoing conversation when it comes to ethics; this means that this page will evolve over time, and your feedback is invaluable. Please open up an issue in the [Community tab](https://huggingface.co/docs/hub/repositories-pull-requests-discussions) to share your thoughts! | |
| """) | |
| with gr.Accordion(label="Want to learn more? Visit us over on the Hugging Face Discord!", open=False): | |
| gr.Markdown(""" | |
| Follow these steps to join the discussion: | |
| 1. Go to [hf.co/join/discord](https://hf.co/join/discord) to join the Discord server. | |
| 2. Once you've registered, go to the `#role-assignment` channel. | |
| 3. Select the "Open Science" role. | |
| 4. Head over to `#ethics-and-society` to join the conversation π₯³ | |
| """, elem_id="margin-top") | |
| gr.Markdown(""" | |
| ### What does ethical AI look like? | |
| We analyzed the submissions on Hugging Face Spaces and put together a set of 6 high-level categories for describing ethical machine learning work. Visit each tab to learn more about each category and to see what Hugging Face and its community have been up to! | |
| """) | |
| with gr.Column(): | |
| [category_tab(x) for x in categories] | |
| demo.launch() | |