Live TechTalk

Join experts from Google Cloud:  How to Scale Data Integration to and from Google BigQuery: Thursday, May 30th, 2PM EST/ 11AM PST


Enhancing LLMs with Private Data: A Comprehensive Tutorial using Nexla, Pinecone & OpenAI

Operationalizing Large Language Models (LLMs) is the next big opportunity in AI. Any organization or data science team that is able to derive actionable insights from its unstructured data will be a step ahead, but LLMs can frequently be a black box with limited insight into their logic. Fine-tuning models with fresh and reliable data is crucial to finding patterns grounded in reality. In this tutorial, we will walk you through a step-by-step process of transforming new free-text data into vector embeddings using Nexla and integrating it with OpenAI and Pinecone, thereby enhancing and customizing your existing LLM models with the freshest available data. Let’s delve into the transformative world of LLM operations with Nexla.


Understanding the Significance of LLM and Vector Embeddings

Before we dive into the tutorial, it’s essential to understand the significance of training your own LLM model and the role of vector embeddings in this context.

Language models are powerful tools in the field of natural language processing, aiding in the understanding and generation of human-like text. Training your own LLM model allows for a more tailored approach, enabling the extraction of nuanced insights specific to your dataset.

Vector embeddings, on the other hand, are a form of data representation that convert text into a series of numbers, making it interpretable by machine learning models. In the context of LLM, these embeddings serve as a bridge, translating human language into a format that can be analyzed and processed to derive meaningful patterns and insights.

How vector embeddings are used to represent text as a vector


Now, let’s get started with our tutorial.


Step 1: Gathering Your Free-Text Data

To kickstart this tutorial, you’ll first need to gather a substantial amount of free-text data. While you are encouraged to utilize your own dataset, for the purpose of this demonstration, we will be using a rich dataset from Amazon reviews, which serves as an excellent example to illustrate the process. You can access this dataset here. This step is crucial as it lays the foundation for the subsequent stages where we will be transforming this data into insightful vector embeddings.

By the way, Nexla has hundreds out-of-the-box bidirectional connectors to easily get your free-text data no matter where it is.

Some samples of the Amazon Reviews Data


Step 2: Transforming Data into Vector Embeddings with Nexla

Next, we will utilize Nexla’s custom transformation feature to convert the free-text data into vector embeddings. Nexla offers users the ability to write their own Python or Javascript transformations to transform data and even call out to external APIs. To do this, you will need to set up a transformation that calls the OpenAI API using your API key as a parameter. Refer to the OpenAI Embeddings Documentation for detailed guidance on how to set up and use the API.

Here, we’ll derive a Nexset from the original one, making sure we only keep fields we want, alongside with the Text to Vector Embedding transformation.

Reusable Transformation used to call the /embeddings endpoint on OpenAI API using an API Key and an Input Text as parameters. Optionally, you can also choose the desired model.

Step 3: Building the Pinecone API Payload

After transforming the data into vector embeddings, the next step is to build the Pinecone API payload on a subsequent Nexset. This payload will be used to insert the vector embeddings into Pinecone in the following step. Follow the guidelines provided in the Pinecone Upsert Documentation to construct the API payload correctly.

Another derived Nexset that outputs the exact payload for the Pinecone API.
An example of what the Pinecone payload would look like after all transformations


Step 4: Inserting Vector Embeddings into Pinecone with Nexla REST Connector

Finally, we will use Nexla’s Rest Connector to insert the vector embeddings into Pinecone. This step is crucial as it integrates the transformed data into a system where it can be utilized for further analysis and model training. Ensure that you follow the Pinecone documentation closely to achieve a seamless integration.

We’ll use Nexla’s REST API connector to send data to Pinecone.
Now, set up a POST call to your vector database API, on the /vectors/upsert endpoint, Pinecone recommends using a batch size not greater than 20, as vectors usually have 1500+ dimensions.


By following this tutorial, you have successfully navigated the process of enhancing LLM operations using Nexla. From extracting free-text data to transforming it into vector embeddings and integrating it with Pinecone, you are now equipped with the knowledge to improve upon your own LLM models with new up-to-date information.

Harnessing the power of Nexla in this context not only streamlines the process but also opens up avenues for deeper analysis and insight generation. We hope this tutorial serves as a stepping stone in your journey towards mastering LLM operations with Nexla.

Feel free to share your experiences and insights as you explore the fascinating world of language model operations with Nexla. Happy data engineering!

Unify your data operations today!

Discover how Nexla’s powerful data operations can put an end to your data challenges with our free demo.