Exploring Large Language Models (LLMs) with Python Code Examples

Siladitya Ghosh
5 min readFeb 4, 2024

--

Imagine a machine that can write stories, translate languages, and even generate code — that’s the power of Large Language Models (LLMs). These AI marvels are transforming how we interact with technology, pushing the boundaries of natural language processing. Let’s delve into their world:

What are LLMs?

  • Think of an LLM as a vast library of text and code, trained on massive datasets using specialized algorithms.
  • This allows them to understand and respond to human language in nuanced ways, mimicking human communication and even generating creative text formats.

A Journey Through Time:

  • The quest for language-understanding machines started early in AI’s history.
  • Significant advancements in computing power and deep learning techniques propelled LLMs into the spotlight around 2017.
  • Models like GPT-3 and LaMDA have garnered immense attention for their capabilities.

Where do LLMs shine?

  • Content Creation: From writing marketing copy to composing poems, LLMs can assist in generating creative text content.
  • Machine Translation: Breaking down language barriers, LLMs offer real-time translation, bridging communication gaps.
  • Code Generation and Completion: LLMs can suggest code snippets and even complete simple programs, aiding developers in their workflow.
  • Chatbots and Virtual Assistants: LLMs power conversational AI experiences, making interactions with machines more natural and engaging.

Coding with the Language Wizards:

Python, a popular programming language, offers several packages to interact with LLMs:

  • Transformers: This core library provides pre-trained LLM models and tools for fine-tuning and using them for your tasks.
  • OpenAI API: Access powerful LLMs like GPT-3 through a paid API, unlocking advanced capabilities.
  • Hugging Face Hub: This vibrant community platform offers various LLM models and tools, making experimentation accessible.
from transformers import pipeline

# Initialize the text generation pipeline
text_generator = pipeline("text-generation")

# Prompt the LLM with a starting sentence
prompt = "Once upon a time, there was a brave knight..."

# Generate text based on the prompt
generated_text = text_generator(prompt)

# Print the generated text
print(generated_text[0]["generated_text"])

This code will continue the story based on the prompt, showcasing the LLM’s ability to create text that follows the theme and style.

Here’s a Python code example demonstrating sentiment analysis using the Transformers library:

from transformers import pipeline

# Initialize the sentiment analysis pipeline
sentiment_analyzer = pipeline("sentiment-analysis")

# Analyze the sentiment of a few sentences
sentences = [
"This movie is absolutely fantastic! I loved it.",
"The food was disappointing. It was bland and overpriced.",
"This book is a must-read for anyone interested in history.",
"The service at this hotel was terrible. I wouldn't stay here again.",
]

# Analyze the sentiment of each sentence
for sentence in sentences:
sentiment = sentiment_analyzer(sentence)[0]
print(f"Sentence: {sentence}")
print(f"Sentiment: {sentiment['label']} ({sentiment['score']:.2f})")

Explanation:

  1. Import the pipeline: The pipeline function from the transformers library loads a pre-trained LLM model for sentiment analysis.
  2. Initialize the pipeline: The sentiment-analysis pipeline is specifically designed for sentiment classification.
  3. Prepare sentences: A list of sample sentences is created for analysis.
  4. Analyze sentiment: The sentiment_analyzer function takes each sentence as input and returns a dictionary containing:
  • label: The predicted sentiment label (e.g., "POSITIVE", "NEGATIVE", "NEUTRAL")
  • score: A numerical score representing the confidence in the prediction (ranges from 0 to 1)

5. Print results: The code prints both the sentence and its corresponding sentiment analysis for clarity.

Key points:

  • The LLM model handles understanding the nuances of language and classifying sentiment.
  • The code demonstrates how to easily leverage this ability for practical tasks.
  • Sentiment analysis has wide-ranging applications, including social media analysis, customer feedback analysis, and product reviews.

Leveraging AI for Informed Investment: A Practical Example with Stock Prices and News Analysis

We will walk through a practical example that combines stock price analysis, web scraping of associated news, and sentiment analysis using a Large Language Model (LLM). This example aims to provide a glimpse into how AI technologies can be utilized for financial insights.

The Components of the Example:

1. Fetching Stock Prices with yfinance:

  • yfinance is a Python library that allows us to retrieve historical stock data. In our example, we'll fetch stock prices for the last year using this library.
import yfinance as yf

def get_stock_data(ticker):
stock = yf.Ticker(ticker)
data = stock.history(period='1y')
return data

2. Scraping News from Yahoo Finance:

  • We’ll use BeautifulSoup to scrape news headlines associated with a particular stock from Yahoo Finance.
from bs4 import BeautifulSoup
import requests

def get_stock_news(ticker):
url = f'https://finance.yahoo.com/quote/{ticker}?p={ticker}&.tsrc=fin-srch'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
headlines = [headline.text for headline in soup.find_all('h3', class_='Mb(5px)')]
return headlines

3. Sentiment Analysis with Transformers:

  • The transformers library provides an easy interface to perform sentiment analysis using Large Language Models.
from transformers import pipeline

def analyze_sentiment(text):
sentiment_analyzer = pipeline('sentiment-analysis')
result = sentiment_analyzer(text)
return result[0]['label']

Bringing It All Together:

Now, let’s combine these components to create a holistic analysis:

# Example usage for a stock (e.g., Apple - AAPL)
stock_ticker = 'AAPL'

# Get stock data
stock_data = get_stock_data(stock_ticker)

# Get stock news
news_headlines = get_stock_news(stock_ticker)

# Analyze sentiment for each news headline
sentiments = [analyze_sentiment(headline) for headline in news_headlines]

# Print stock data
print(f"Stock Data for {stock_ticker}:\n{stock_data}")

# Print news headlines and sentiments
print("\nNews Headlines:")
for headline, sentiment in zip(news_headlines, sentiments):
print(f"- {headline} (Sentiment: {sentiment})")

Key Takeaways:

Data-Driven Decision Making:

  • The example showcases the power of data-driven decision-making by combining historical stock prices, real-time news data, and sentiment analysis.

Automating Analysis with AI:

  • Automation of tasks such as sentiment analysis using LLMs accelerates the analysis process, allowing investors to stay ahead in a fast-paced market.

Enhanced Financial Insights:

  • By integrating AI technologies, investors can gain deeper insights into market sentiments, potentially informing investment decisions.

Caution and Professional Advice:

  • It’s important to note that while AI tools can provide valuable insights, financial decisions should be approached with caution. Professional financial advice is recommended for making significant investment decisions.

Conclusion:

  • LLMs are still under development, and their outputs can sometimes be inaccurate or misleading.
  • It’s crucial to use them responsibly and be aware of their limitations.
  • However, their potential is undeniable, and as they continue to evolve, they promise to revolutionize how we interact with technology and language.

Embark on your LLM exploration, experiment responsibly, and witness the magic of language unfold!

--

--

Siladitya Ghosh

Passionate tech enthusiast exploring limitless possibilities in technology, embracing innovation's evolving landscape