Skip to content

Commit 13b66fc

Browse files
Unstructured data & Vectors course updates (#186)
* typo * added course structure * semantic search lesson * find movie plots * semantic search questions * vectors lesson * sentence formatting * unstructured data lesson * fix link * fix reset * lesson structure * poster and embedding lesson * draft lessons * creating vector index lesson * renumbered lessons * create vector index lesson * query vectors lesson * requirements * fix course structure * metadata and chunking lessons * chunking * build graph lesson * topics and challenge lessson * course metadata * tidy up * walk through * fixed questions * make course draft * fix usecase in fundamentals * Minor updates * update 1st walkthrough * module 3 structure * restructure index lesson * module 3 restructure * updates after walk through * updates 2nd walkthrough * added banner * add sandbox icon * updates following review * change question title * minor update to language * course summary * llm fundamentals summary --------- Co-authored-by: Adam Cowley <adam@adamcowley.co.uk>
1 parent 80a5002 commit 13b66fc

File tree

22 files changed

+108
-33
lines changed

22 files changed

+108
-33
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
= Course Summary
2+
3+
Congratulations on completing "Neo4j & LLM Fundamentals".
4+
5+
You have learned:
6+
7+
* How Large Language Models (LLMs) work, their benefits, and potential drawbacks
8+
* How you can use Knowledge Graphs and Retrieval Augmented Generation (RAG) to enhance LLMs
9+
* Basics of Semantic Search and how to implement vector search in Neo4j.
10+
* How to use Neo4j, Python and LangChain to interact with LLMs
11+
* How to use LLMs to generate Cypher statements
12+
* How to implement Retrieval Augmented Generation (RAG) strategies, including:
13+
** Using prompts to provide instructions and context
14+
** Using Neo4j vectors to query a graph database
15+
16+
Continue your learning with the following resources:
17+
18+
* link:https://graphacademy.neo4j.com[GraphAcademy^] - Free online training for Neo4j
19+
* link:https://neo4j.com/developer/[Neo4j Developer Page] - Resources for developers
20+
* link:https://graphacademy.neo4j.com/courses/llm-chatbot-python/[Build a Neo4j-backed Chatbot using Python] - Get hands-on and create a chatbot with Neo4j, Python, and Streamlit
21+
* link:https://graphacademy.neo4j.com/courses/llm-vectors-unstructured/[Introduction to Vector Indexes and Unstructured Data^] - Understand and search unstructured data using vector indexes

asciidoc/courses/llm-vectors-unstructured/course.adoc

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
= Introduction to Vector Indexes and Unstructured Data
22
:categories: llms:3
3-
:status: draft
3+
:status: active
44
:next: llm-python-chatbot
55
:duration: 2 hours
66
:caption: Understand and search unstructured data using vector indexes
@@ -16,7 +16,7 @@ You will explore unstructured datasets, create embeddings and vector indexes and
1616

1717
You will learn how to process unstructured data, chunking strategies, and create relationships between the data.
1818

19-
You will build a graph database of unstructured data, use link:https://python.org[Python^], https://https://www.langchain.com/[Langchain^], and link:https://openai.com[OpenAI^] to process the data, create embeddings, and import it into Neo4j.
19+
You will build a graph database of unstructured data, use link:https://python.org[Python^], https://https://www.langchain.com/[LangChain^], and link:https://openai.com[OpenAI^] to process the data, create embeddings, and import it into Neo4j.
2020

2121
After completing this course, you will have the knowledge and skill to build a graph of your unstructured data and query it using vector indexes.
2222

@@ -42,5 +42,12 @@ To complete the practical tasks within this course, you will need link:https://p
4242
=== What you will learn
4343

4444
* Semantic search, unstructured data, and vector indexes
45-
* How to create embeddings using LLMs and Langchain
45+
* How to create embeddings using LLMs and LangChain
4646
* To build a graph database of unstructured data
47+
48+
[.includes]
49+
== This course includes
50+
51+
* [lessons]#11 lessons#
52+
* [challenges]#8 short hands-on challenges#
53+
* [quizes]#10 multiple choice questions#

asciidoc/courses/llm-vectors-unstructured/modules/1-introduction/lessons/1-getting-started/lesson.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ You will create a graph of the unstructured course content from GraphAcademy, ex
1212

1313
image::images/graphacademy-full.svg[An example diagram of the data model for the course content, showing Course, Module, Lesson, Paragraph and Topics nodes]
1414

15-
You will use Python, Langchain, Neo4j, and OpenAI to process, embed, and index the data.
15+
You will use Python, LangChain, Neo4j, and OpenAI to process, embed, and index the data.
1616

1717
== What you need
1818

asciidoc/courses/llm-vectors-unstructured/modules/1-introduction/lessons/2-semantic-search/lesson.adoc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ You would typically use the score to rank the results.
3939

4040
=== Why is semantic search useful?
4141

42-
Semantic search allows you to find and score related data. It is useful when find similarities within unstructured data which relies on understanding the intent and contextual meaning of the search query.
42+
Semantic search allows you to find and score related data. It is useful when finding similarities within unstructured data that rely on understanding the intent and contextual meaning of the search query.
4343

4444
Some typical use cases are:
4545

@@ -54,9 +54,9 @@ Some typical use cases are:
5454
Semantic search faces several challenges that stem from the complexity of natural language, the diversity of user intents, and the dynamic nature of information. Some of these challenges include:
5555

5656
* Understanding Context - Accurately grasping the context of queries can be difficult. Different users might use the same words to mean different things.
57-
* Language Ambiguity - Natural language is inherently ambiguous. Words can have multiple meanings, and sentences can be interpreted in different ways.
58-
* Fine tuning - To get the best result you may have to invest significant effort in fine tuning how the semantic search.
59-
* Transparency - The complexity behind semantic search can make it difficult to understand how a score is determined or why a particular result is returned.
57+
* Language Ambiguity - Natural language is inherently ambiguous. Words can have multiple meanings, and different models may interpret sentences differently.
58+
* Fine tuning - To get the best result, you may need to invest significant effort in fine-tuning your model, data and search algorithms.
59+
* Transparency - The complexity behind semantic search can make understanding how a score is determined or why a particular result is returned difficult.
6060

6161

6262
== Check Your Understanding

asciidoc/courses/llm-vectors-unstructured/modules/1-introduction/lessons/3-searching-text/lesson.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
= Finding Movie Plots
22
:order: 3
3-
:type: lesson
3+
:type: challenge
44
:sandbox: true
55

66
In the previous lesson, you learned about the theory of semantic search.

asciidoc/courses/llm-vectors-unstructured/modules/1-introduction/lessons/4-vectors/lesson.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ For example, the word "apple" might be represented by an embedding with the foll
4242

4343
When applied in a search context, the vector for "apple" can be compared to the vectors for other words or phrases to determine the most relevant results.
4444

45-
You can create embeddings in various ways, but one of the most common methods is to use a **large language model**.
45+
You can create embeddings in various ways, but one of the most common methods is to use a **Large Language Model (LLM)**.
4646

4747
For example, the embedding for the word "apple" is `0.0077788467, -0.02306925, -0.007360777, -0.027743412, -0.0045747845, 0.01289164, -0.021863015, -0.008587573, 0.01892967, -0.029854324, -0.0027962727, 0.020108491, -0.004530236, 0.009129008,` ... and so on.
4848

asciidoc/courses/llm-vectors-unstructured/modules/1-introduction/lessons/6-searching-images/lesson.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
= Searching images
22
:order: 6
3-
:type: lesson
3+
:type: challenge
44
:sandbox: true
55
:optional: true
66

asciidoc/courses/llm-vectors-unstructured/modules/2-vector-indexes/lessons/1-embeddings/questions/1-models.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[.question]
2-
= Embedding models
2+
= Comparing embeddings
33

44
True or False - you can compare embeddings from *different* models to find similarities in unstructured data.
55

asciidoc/courses/llm-vectors-unstructured/modules/2-vector-indexes/lessons/2-load-embeddings/lesson.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
= Load embeddings
22
:order: 2
3-
:type: lesson
3+
:type: challenge
44
:sandbox: true
55

66
In this lesson, you will learn how to load embeddings into a Neo4j database.

asciidoc/courses/llm-vectors-unstructured/modules/2-vector-indexes/lessons/3-create-vector-index/lesson.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
:sandbox: true
55

66
To query embeddings, you need to create a vector index.
7+
A vector index significantly increases the speed of similarity searches by pre-computing the similarity between vectors and storing them in the index.
78

89
In this lesson, you will create vector indexes on the `embedding` property of the `Question` and `Answer` nodes.
910

0 commit comments

Comments
 (0)