image

What's good fellow coder? If you want to dive into the world of natural language processing (NLP), you’ve probably heard about Hugging Face. It’s become the go-to spot for accessing and sharing supercharged models that can make your applications smarter. In this guide, we’re going to walk through how to install Hugging Face Transformers, set up your environment, and use a very popular and what I consider to be dope model — ProsusAI’s FinBERT.

Let’s get started:

The Hugging Face Landscape

Hugging Face is all about making advanced AI accessible. Their Transformers library is where the magic happens, giving you a simple API to tap into a treasure trove of pre-trained models for tasks like text classification, question answering, and more.

Computer Requirements

Before you roll up your sleeves, let’s make sure your setup is good to go:

  1. Operating System: Windows, macOS, or Linux—pick your poison.
  2. Python Version: You’ll need Python 3.6 or higher, but 3.8 or 3.9 is your best bet for compatibility; latest works too.
  3. RAM: Aim for at least 4-8 GB for smaller models; if you’re going big, think 16 GB or more. This can be optimized serveral ways, but the most common is to use swap or something like xformers.
  4. Storage: Models can be hefty, so make sure you’ve got enough space—some are a few hundred MB, while others can hit several GB.
  5. GPU (Optional): Running models on a GPU is way faster. If you’ve got an NVIDIA GPU, you’re golden.

Installing Hugging Face Transformers

Step 1: Setting Up Your Python Environment

Let’s get a virtual environment rolling to keep things tidy. You can do this with venv or conda. Here’s how to roll with venv:

  1. Open your terminal or command prompt.
  2. Head to your project directory.
  3. Run these commands:

python -m venv myenv source myenv/bin/activate # On Windows, use `myenv\Scripts\activate`

Step 2: Installing Transformers

With your virtual environment set, let’s grab the Hugging Face Transformers library. You can easily do this with pip:

pip install transformers torch

If you’re more of a TensorFlow fan, just swap out torch for tensorflow:

pip install transformers tensorflow

Step 3: Verifying Your Setup

To make sure everything’s running smoothly, hop into a Python shell or create a quick script:

import transformers print(transformers.__version__)

You should see the version of Transformers you installed. If you do, high five!

Getting Started with FinBERT

Now let’s check out how to use the FinBERT model from Hugging Face. This model is specifically designed for sentiment analysis in the finance world.

Step 1: Importing Libraries

First, import the libraries you’ll need:

from transformers import BertTokenizer, BertForSequenceClassification import torch

Step 2: Loading the Model and Tokenizer

Next, load up the FinBERT model and its tokenizer:

model_name = "ProsusAI/finbert" okenizer = BertTokenizer.from_pretrained(model_name) model = BertForSequenceClassification.from_pretrained(model_name)

Step 3: Preparing Your Input

Now, let’s get your input text ready for processing:

text = "The company's quarterly earnings exceeded expectations, leading to a rise in stock price." inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True)

Step 4: Making Predictions

With your input prepared, it’s time to run the model and get some predictions:

with torch.no_grad(): outputs = model(**inputs) logits = outputs.logits predicted_class = torch.argmax(logits, dim=1)

Step 5: Interpreting the Results

FinBERT gives you logits that you can map to sentiment:

  • 0: Negative
  • 1: Neutral
  • 2: Positive

Let’s map that predicted class to a readable sentiment:

sentiment = ['Negative', 'Neutral', 'Positive'] print(f"Sentiment: {sentiment[predicted_class.item()]}")

Full Example

Here’s how it all comes together in one neat package:

from transformers import BertTokenizer, BertForSequenceClassification import torch # Load FinBERT model and tokenizer model_name = "ProsusAI/finbert" tokenizer = BertTokenizer.from_pretrained(model_name) model = BertForSequenceClassification.from_pretrained(model_name) # Prepare input text text = "The company's quarterly earnings exceeded expectations, leading to a rise in stock price." inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True) # Make predictions with torch.no_grad(): outputs = model(**inputs) logits = outputs.logits predicted_class = torch.argmax(logits, dim=1) # Interpret and display the result sentiment = ['Negative', 'Neutral', 'Positive'] print(f"Sentiment: {sentiment[predicted_class.item()]}")

Wrapping Up

And there you have it. We’ve covered how to install Hugging Face Transformers and how to use FinBERT for financial sentiment analysis. Hugging Face makes it super easy to leverage advanced NLP models, and now you’re equipped to explore all the cool things you can build.

Whether you’re creating a chatbot, analyzing market sentiment, or diving into any NLP task, the Transformers library has your back. Def explore around the different type of models and how you can combine them. The news feed, as well as startyparty was built using a bunch of these models such as text classification, bad/hate speech detection, categorization, grouping, and others. Have fun out there. Happy coding.

References

© 2024 Marko Bajlovic. Version 5.0.9.