SlideShare ist ein Scribd-Unternehmen logo
1 von 55
Downloaden Sie, um offline zu lesen
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Oracle 23ai:
AI Vector Search:
The What, The How, & The
Possibilities
Will start about 3 minutes
after the hour.
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Webinar
Keeping
Use Q&A dialog to ask
questions. Will answer as
pauses occur or at end of
webinar.
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Speaker
Bobby Curtis, MBA
Atlanta, GA
• Author
• Speaker
@dbasolved | @rheodatallc
https://dbasolved.com | https://www.rheodata.com/blog
bobby.curtis@rheodata.com
https://www.slideshare.net/BobbyCurtisMBA
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Cloud Managed Services Provider (CMSP)
24/7 On-Call Support
Data and Cloud Migrations
Near-Zero Downtime
Data Engineering
Analytics, Machine Learning, Artificial Intelligence
(Oracle Digital Assistants)
License Management
On-Premises & Cloud Cost Management
Data Modernization
Data Visualization, Cyber Security, Data Warehouse, etc.
Service Offerings:
www.rheodata.com | www.rheodata.ai
Co-Managed
Fully-Managed
Professional
Services
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Prerequisites
• Oracle Database 23c 23ai
• oracle-database-free-23c-1.0-1.el8.x86_64
(23.4 ((LA1))
• oracle-database-ee-23c-1.0-1.el8.x86_64
(23.4(LA2))
• OCI Oracle Database Service
• On-premises (here) - Free
• Python 3.11/3.12
• python-oracledb
• oracledb-2.2.0
• Langchain
• https://python.langchain.com/docs/get_
started/introduction
• LLM API Key
• Cohere, ChatGPT, etc.
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
The What?
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Vector Database are a new
classification of specialized databases
designed for AI workloads that allows
you to query based on semantics,
rather than keywords.
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Vector Search enhances information
retrieval by mapping queries to relevant
data in your database based on
semantics, instead of precise matches,
using vectors to measure similarity.
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
45
68
16
50
42
Vector
Vectors are a sequence of numbers,
called dimensions, used to capture the
important “features” of the data.
Vectors in AI represent semantics of
unstructured data such as images,
documents, videos, etc.
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
45
68
16
50
42
Vector
The mathematical distance between two vectors
indicate how similar they are
Vectors represent the semantic content
of data, not the underlying words or
pixels
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Online Embedding Models (Cohere)
English Multi-Lingual
embed-english-v3.0 (1024) embed-multilingual-v3.0 (1024)
embed-english-light-v3.0 (384) embed-multilingual-light-v3.0 (384)
embed-english-v2.0 (4096) embed-multilingual-v2.0 (768)
embed-english-light-v2.0 (1024)
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Online Embedding Models (Cohere)
English Multi-Lingual
embed-english-v3.0 (1024) embed-multilingual-v3.0 (1024)
embed-english-light-v3.0 (384) embed-multilingual-light-v3.0 (384)
embed-english-v2.0 (4096) embed-multilingual-v2.0 (768)
embed-english-light-v2.0 (1024)
Database Embedding Models (Hugging Face/OMLUtils)
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Input
Data
Object
Embedding
Model 4 8 42 72
Vector Search
Relevant Content
Data Object
Retrieval
Vector ID
Matches
Vector Embedding
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
The How? -> The Math
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
The Math?
Euclidean/Squared
Euclidean Distance
Cosine Similarity
Reflects the distance
between each of the
vector coordinates being
compared -> straight line
distance between vectors
Measures the cosine of
the angle between two
vectors.
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
The Math?
DOT Product Similarity Manhattan Distance
Similarity of two vectors
are viewed by multiplying
the size of each vector by
the cosine of their angle.
Calculated by summing
the distance between
the coordinates of two
vectors.
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
The Math?
Hamming Distance
The distance between two vectors
represent the number of coordinates where
they differ.
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
The How? -> Oracle
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Vector data types can be declared in the following forms:
Vector Datatype
Vector Arbitrary number of dimensions and
format
Vector (*,*) Vector = Vector(*,*)
Vector (number_of_dimensions, *) Vectors must all have the specified
number of dimensions, or an error is
thrown. No format modification.
Vector(*, dimension_element_format) Arbitrary number of dimensions, but
format will be up-converted or down-
converted to the specific dimension
(INT8, FLOAT32, FLOAT64).
Vector(number_of_dimensions,
dimension_element_format)
Must have all the specified number of
dimensions, or error thrown. Each will be
up-converted or down-converted to the
specified format (INT8, FLOAT32,
FLOAT64).
Vectors can be NULL but dimensions cannot:
[1.1, NULL, 2.2]
Same Thing
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Different Types of Vectors Supported!
drop table vector.rd_vector;
CREATE TABLE vector.rd_vector (
v1 VECTOR,
v2 VECTOR(3, FLOAT32),
v3 VECTOR(2, FLOAT64),
v4 VECTOR(1, INT8),
v5 VECTOR(1, *),
v6 VECTOR(*, FLOAT32),
v7 VECTOR(*, *)
);
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Vector Base Operations
TO_VECTOR || VECTOR Constructors for vectors
FROM_VECTOR || VECTOR_SERIALIZE Functions take a vector and return as
string in VARCHAR2 or CLOB as output
VECTOR_NORM Function returns the Euclidean norm of
the vector in BINARY_DOUBLE
(SQRT(SUM((xi-yi)2))
VECTOR_DIMENSION_COUNT Function returns the number of
dimensions of a vector as an Oracle
number
VECTOR_DIMENSION_FORMAT Returns the storage format of the vector
in VARCHAR2 format (INT8, FLOAT32,
FLOAT64)
VECTOR_DISTANCE* Function returns Squared Euclidean
distance. Default for Oracle AI Vector
Search
There are a few base functions that are used with Vectors.
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
VECTOR_DISTANCE
vector_distance (expr1, expr2, [,
metric])
L1_distance (expr1,
expr2)
L2_distance (expr1,
expr2)
cosine_distance (expr1,
expr2)
inner_distance (expr1,
expr2)
Manhattan/Taxi Cab
Euclidean_Squared
DOT
Cosine
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
How do I create a “vector”?
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Declare vector datatypes during table creation.
Example 1:
CREATE TABLE text_vec
(
id NUMBER,
embeddings VECTOR
);
Example 2:
CREATE TABLE text_vec
(
id NUMBER,
embeddings VECTOR(384, INT8)
);
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Vector datatypes can be added to tables later as well.
Example 1:
CREATE TABLE text_vec
(
id NUMBER,
col1 varchar2(50),
);
ALTER TABLE text_vec add
(
vec vector
);
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
sql> create table
vec_tab
(
id number,
vec vector(2)
);
sql> insert into vec_tab
values (1, ’[1,2]’);
sql> insert into vec_tab
values (2, ’[2,3]’);
import oracledb
connection =
oracledb.connection()
cursor = connection.cursor()
cursor.execute()
cursor.setinputsizes(None,
oracledb.DB_TYPE_VECTOR)
cursor.execute()
connection.commit()
Available
Create Create & Populate
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Let’s go with Python!
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Python Approach – 1 of 4
import oracledb
import cohere
import os
from langchain.document_loaders import TextLoader
from langchain.text_splitter import CharacterTextSplitter
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Python Approach – 2 of 4
with open("./Scripts/oracle/vector/cities.txt") as f:
cities = f.read()
#print(cities)
text_splitter = CharacterTextSplitter(separator="n",
chunk_size=35, chunk_overlap=5, length_function=len,
is_separator_regex=False)
texts = text_splitter.split_text(cities)
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Python Approach – 3 of 4
api_key = ”API Key"
os.environ["COHERE_API_KEY"] = api_key
print(os.environ["COHERE_API_KEY"])
co = cohere.Client(os.getenv("COHERE_API_KEY"))
Cohere offers two types of API Keys:
• Development (Limit 10 calls per minute)
• Production (unlimited calls per minute)
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Python Approach – 3.5 of 4
def database_connection():
try:
connection = oracledb.connect(
user="vector",
password="vector",
dsn="100.130.230.100:1521/freepdb1"
)
print('connected’)
return connection
except:
print('Could not make a connection')
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Python Approach – 4 of 4
connection = database_connection()
id_val = 1
for i in texts:
response = co.embed(
texts=[i],
model='embed-english-light-v3.0',
input_type='classification'
)
vtext = i
vec = response.embeddings[0]
#print(vtext)
#print(len(vec))
#print(vec)
cursor = connection.cursor()
cursor.setinputsizes(None, oracledb.DB_TYPE_VECTOR)
cursor.execute("insert into vector.text_vec (id, txt_vec, text)
values (:1, :2, :3)",[id_val, vec, vtext])
connection.commit()
#print("recorded inserted")
id_val = id_val + 1
print(str(id_val-1) + " inserted")
cursor.execute("select * from vector.text_vec")
for row in cursor:
print(row)
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Create Vector Demo (Video)
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Create Vectors
select text
from vector.text_vec
order by vector_distance(txt_vec,(
select txt_vec
from vector.text_vec_lookup
where id = :1), DOT)
fetch first :2 rows only;
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Similarly Searches (Demo)
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Similarly Searches (Demo)
Explain Plan
• No indexes
• Selected 43 rows in milliseconds – all text
New webinar: Vector Indexes, coming soon.
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
How do I embed a LLM within the database?
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
ONNX Files
ONNX = Open Neural Network Exchange
An open-source format designed for machine-
learning models. Ensuring cross-platform
compatibility and supports major languages
and frameworks, facilitating easy and efficient
model exchanges.
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Python Approach – 1 of 5
$ export
ORACLE_HOME_23ai=/opt/oracle/product/23ai/dbhome_1
$ cd $ORACLE_HOME_23ai/python/bin
$ python -V
$ export PATH=$ORACLE_HOME_23ai/python/bin:$PATH
$ python -v
• Verify that the correct Python is installed.
• Python 3.12 (min)
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Python Approach – 2 of 5
$ cd ~
$ mkdir onnx
• Make directory for all ONNX files
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Python Approach – 3 of 5
$ cd ~/onnx
$ unzip ./omlutils.zip -d
• Change directory to ONNX directory
• Unzip OMLUTILS.zip file
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Python Approach – 4 of 5
$ cd ~/onnx
$ python -m pip install -r requirements.txt
$ python -m pip install omlutils-0.13.0-cp312-cp312-
linux_x86_64.whl
• Install all the necessary requirments
• Install OMLUTILS wheel file
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Python Approach – 5 of 5
$ cd ~/onnx
$ python
>>> from omlutils import EmbeddingModel,
EmbeddingModelConfig
>>> em = EmbeddingModel(model_name="sentence-
transformers/all-MiniLM-L6-v2”)
>>> em.export2file("all-MiniLM-L6-v2",output_dir=".”)
>>> exit()
$
• Install requested LLM into database using Python
Interactive Prompt
• View model in Oracle Data Dictonary
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
New Database Views
*_DATA_MODELS
SELECT * FROM *_DATA_MODELS;
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Using the Embedded Model
(TO_VECTOR &
VECTOR_EMBEDDING)
SELECT
to_vector(vector_embedding(VECTOR.DOC_MODE
L using url as data)) as embedding
from ggai.base;
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Updating existing table with
Vectors
update ggai.base_url
set urlvec = (SELECT
to_vector(vector_embedding(VECTOR.DOC_MODEL using
url as data)) from ggai.base_url where id = 1)
where client = upper('test');
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
The Possibilities?
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
The possibilities of Oracle Vector Search are going
to drive growth in everything!
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Retrieval Augmented Generation (RAG)
A technique for enhancing the accuracy
and reliability of generative AI models with facts
from external sources
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Input
Data
Object
Embedding
Model 4 8 42 72
Vector Search
Relevant Content
Data Object
Retrieval
Vector ID
Matches
Vector Embedding
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Use Cases:
• Search (known use case)
• Natural-Language Processing/Search (semantic search)
• Recommendation Systems (retail, customer service)
• Biometric and Anomaly Detection (healthcare)
• Drug discovery and genomics (healthcare)
• Patient similarity Analysis (healthcare)
• Personalized Digital Assistants
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
• Private data shared via Vector databases/data type need to be
secure.
• Organizations should evaluate what data is vectorized (shared)
before using with public LLMs.
• Consider building private LLMs to keep data secure.
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Questions
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
Next webinars!
 June 13, 2024 @ 1 pm EST:
Oracle GoldenGate 23ai: What is new and how to upgrade
 June 27, 2024 @ 1 pm EST (tentative):
Oracle Database 23ai: Vector Indexes – What and how to use
Copyright, 2024 RheoData and affiliates
bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc
solutions@rheodata.com
@rheodatallc
http://rheodata.com

Weitere ähnliche Inhalte

Ähnlich wie RheoData_23ai_Vector-Datatype-Webinar-2024.pptx

Sql saturday and share point saturday cambridge 2015 - david parker - visio
Sql saturday and share point saturday cambridge 2015 - david parker - visioSql saturday and share point saturday cambridge 2015 - david parker - visio
Sql saturday and share point saturday cambridge 2015 - david parker - visioDavid Parker
 
ECO 2022 - OCI and HashiCorp Terraform
ECO 2022 - OCI and HashiCorp TerraformECO 2022 - OCI and HashiCorp Terraform
ECO 2022 - OCI and HashiCorp TerraformBobby Curtis
 
Pi Day 2022 - from IoT to MySQL HeatWave Database Service
Pi Day 2022 -  from IoT to MySQL HeatWave Database ServicePi Day 2022 -  from IoT to MySQL HeatWave Database Service
Pi Day 2022 - from IoT to MySQL HeatWave Database ServiceFrederic Descamps
 
Digital System Design-Gatelevel and Dataflow Modeling
Digital System Design-Gatelevel and Dataflow ModelingDigital System Design-Gatelevel and Dataflow Modeling
Digital System Design-Gatelevel and Dataflow ModelingIndira Priyadarshini
 
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxGraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxNeo4j
 
Tutorial Getting Started part 1 - Overview
Tutorial Getting Started part 1 - OverviewTutorial Getting Started part 1 - Overview
Tutorial Getting Started part 1 - OverviewPascalDesmarets1
 
Introduction to GitHub Copilot
Introduction to GitHub CopilotIntroduction to GitHub Copilot
Introduction to GitHub CopilotAll Things Open
 
Get Hip with JHipster - GIDS 2019
Get Hip with JHipster - GIDS 2019Get Hip with JHipster - GIDS 2019
Get Hip with JHipster - GIDS 2019Matt Raible
 
Anaconda and PyData Solutions
Anaconda and PyData SolutionsAnaconda and PyData Solutions
Anaconda and PyData SolutionsTravis Oliphant
 
Terraform & Oracle Cloud Infrastructure
Terraform & Oracle Cloud InfrastructureTerraform & Oracle Cloud Infrastructure
Terraform & Oracle Cloud InfrastructureBobby Curtis
 
The current status of html5 technology and standard
The current status of html5 technology and standardThe current status of html5 technology and standard
The current status of html5 technology and standardWonsuk Lee
 
AI and Web-Based Interactive College Enquiry Chatbot
AI and Web-Based Interactive College Enquiry ChatbotAI and Web-Based Interactive College Enquiry Chatbot
AI and Web-Based Interactive College Enquiry ChatbotIRJET Journal
 
IoT Protocols Integration with Vortex Gateway
IoT Protocols Integration with Vortex GatewayIoT Protocols Integration with Vortex Gateway
IoT Protocols Integration with Vortex GatewayAngelo Corsaro
 
Generative design in_revit_customer_faq
Generative design in_revit_customer_faqGenerative design in_revit_customer_faq
Generative design in_revit_customer_faqAna Lucia Ruiz Luna
 
Daniel Egan Msdn Tech Days Oc
Daniel Egan Msdn Tech Days OcDaniel Egan Msdn Tech Days Oc
Daniel Egan Msdn Tech Days OcDaniel Egan
 
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...Codemotion
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jNeo4j
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jNeo4j
 

Ähnlich wie RheoData_23ai_Vector-Datatype-Webinar-2024.pptx (20)

Sql saturday and share point saturday cambridge 2015 - david parker - visio
Sql saturday and share point saturday cambridge 2015 - david parker - visioSql saturday and share point saturday cambridge 2015 - david parker - visio
Sql saturday and share point saturday cambridge 2015 - david parker - visio
 
ECO 2022 - OCI and HashiCorp Terraform
ECO 2022 - OCI and HashiCorp TerraformECO 2022 - OCI and HashiCorp Terraform
ECO 2022 - OCI and HashiCorp Terraform
 
Pi Day 2022 - from IoT to MySQL HeatWave Database Service
Pi Day 2022 -  from IoT to MySQL HeatWave Database ServicePi Day 2022 -  from IoT to MySQL HeatWave Database Service
Pi Day 2022 - from IoT to MySQL HeatWave Database Service
 
Introduction to HDLs
Introduction to HDLsIntroduction to HDLs
Introduction to HDLs
 
Digital System Design-Gatelevel and Dataflow Modeling
Digital System Design-Gatelevel and Dataflow ModelingDigital System Design-Gatelevel and Dataflow Modeling
Digital System Design-Gatelevel and Dataflow Modeling
 
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxGraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
 
Tutorial Getting Started part 1 - Overview
Tutorial Getting Started part 1 - OverviewTutorial Getting Started part 1 - Overview
Tutorial Getting Started part 1 - Overview
 
Introduction to GitHub Copilot
Introduction to GitHub CopilotIntroduction to GitHub Copilot
Introduction to GitHub Copilot
 
Get Hip with JHipster - GIDS 2019
Get Hip with JHipster - GIDS 2019Get Hip with JHipster - GIDS 2019
Get Hip with JHipster - GIDS 2019
 
Anaconda and PyData Solutions
Anaconda and PyData SolutionsAnaconda and PyData Solutions
Anaconda and PyData Solutions
 
Terraform & Oracle Cloud Infrastructure
Terraform & Oracle Cloud InfrastructureTerraform & Oracle Cloud Infrastructure
Terraform & Oracle Cloud Infrastructure
 
The current status of html5 technology and standard
The current status of html5 technology and standardThe current status of html5 technology and standard
The current status of html5 technology and standard
 
AI and Web-Based Interactive College Enquiry Chatbot
AI and Web-Based Interactive College Enquiry ChatbotAI and Web-Based Interactive College Enquiry Chatbot
AI and Web-Based Interactive College Enquiry Chatbot
 
IoT Protocols Integration with Vortex Gateway
IoT Protocols Integration with Vortex GatewayIoT Protocols Integration with Vortex Gateway
IoT Protocols Integration with Vortex Gateway
 
Generative design in_revit_customer_faq
Generative design in_revit_customer_faqGenerative design in_revit_customer_faq
Generative design in_revit_customer_faq
 
Microsoft visio
Microsoft visioMicrosoft visio
Microsoft visio
 
Daniel Egan Msdn Tech Days Oc
Daniel Egan Msdn Tech Days OcDaniel Egan Msdn Tech Days Oc
Daniel Egan Msdn Tech Days Oc
 
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
 

Mehr von Bobby Curtis

MySQLHeatwave-TheBasics.pptx
MySQLHeatwave-TheBasics.pptxMySQLHeatwave-TheBasics.pptx
MySQLHeatwave-TheBasics.pptxBobby Curtis
 
Oracle GoldenGate 21c New Features and Best Practices
Oracle GoldenGate 21c New Features and Best PracticesOracle GoldenGate 21c New Features and Best Practices
Oracle GoldenGate 21c New Features and Best PracticesBobby Curtis
 
Improve PostgreSQL replication with Oracle GoldenGate
Improve PostgreSQL replication with Oracle GoldenGateImprove PostgreSQL replication with Oracle GoldenGate
Improve PostgreSQL replication with Oracle GoldenGateBobby Curtis
 
Oracle GoldenGate on Docker
Oracle GoldenGate on DockerOracle GoldenGate on Docker
Oracle GoldenGate on DockerBobby Curtis
 
Oracle GoldenGate 18c - REST API Examples
Oracle GoldenGate 18c - REST API ExamplesOracle GoldenGate 18c - REST API Examples
Oracle GoldenGate 18c - REST API ExamplesBobby Curtis
 
Oracle GoldenGate Performance Tuning
Oracle GoldenGate Performance TuningOracle GoldenGate Performance Tuning
Oracle GoldenGate Performance TuningBobby Curtis
 
Hit Refresh with Oracle GoldenGate Microservices
Hit Refresh with Oracle GoldenGate MicroservicesHit Refresh with Oracle GoldenGate Microservices
Hit Refresh with Oracle GoldenGate MicroservicesBobby Curtis
 
GoldenGate CDR from UKOUG 2017
GoldenGate CDR from UKOUG 2017GoldenGate CDR from UKOUG 2017
GoldenGate CDR from UKOUG 2017Bobby Curtis
 
Oracle GoldenGate and Baseball - 5 Keys for Moving to the Cloud
Oracle GoldenGate and Baseball - 5 Keys for Moving to the CloudOracle GoldenGate and Baseball - 5 Keys for Moving to the Cloud
Oracle GoldenGate and Baseball - 5 Keys for Moving to the CloudBobby Curtis
 
Oracle GoldenGate Studio Intro
Oracle GoldenGate Studio IntroOracle GoldenGate Studio Intro
Oracle GoldenGate Studio IntroBobby Curtis
 
5 Keys to Oracle GoldenGate Implemenations
5 Keys to Oracle GoldenGate Implemenations5 Keys to Oracle GoldenGate Implemenations
5 Keys to Oracle GoldenGate ImplemenationsBobby Curtis
 
Database As A Service: OEM + ODA (OOW 15 Presentation)
Database As A Service: OEM + ODA (OOW 15 Presentation)Database As A Service: OEM + ODA (OOW 15 Presentation)
Database As A Service: OEM + ODA (OOW 15 Presentation)Bobby Curtis
 
Extreme Replication - Performance Tuning Oracle GoldenGate
Extreme Replication - Performance Tuning Oracle GoldenGateExtreme Replication - Performance Tuning Oracle GoldenGate
Extreme Replication - Performance Tuning Oracle GoldenGateBobby Curtis
 
Enable GoldenGate Monitoring with OEM 12c/JAgent
Enable GoldenGate Monitoring with OEM 12c/JAgentEnable GoldenGate Monitoring with OEM 12c/JAgent
Enable GoldenGate Monitoring with OEM 12c/JAgentBobby Curtis
 
Extreme replication at IOUG Collaborate 15
Extreme replication at IOUG Collaborate 15Extreme replication at IOUG Collaborate 15
Extreme replication at IOUG Collaborate 15Bobby Curtis
 
Examining Oracle GoldenGate Trail Files
Examining Oracle GoldenGate Trail FilesExamining Oracle GoldenGate Trail Files
Examining Oracle GoldenGate Trail FilesBobby Curtis
 
Exachk and oem12c - IOUG C15LV
Exachk and oem12c - IOUG C15LVExachk and oem12c - IOUG C15LV
Exachk and oem12c - IOUG C15LVBobby Curtis
 
Extreme Replication - RMOUG Presentation
Extreme Replication - RMOUG PresentationExtreme Replication - RMOUG Presentation
Extreme Replication - RMOUG PresentationBobby Curtis
 
IOUG Data Integration SIG w/ Oracle GoldenGate Solutions and Configuration
IOUG Data Integration SIG w/ Oracle GoldenGate Solutions and ConfigurationIOUG Data Integration SIG w/ Oracle GoldenGate Solutions and Configuration
IOUG Data Integration SIG w/ Oracle GoldenGate Solutions and ConfigurationBobby Curtis
 

Mehr von Bobby Curtis (20)

MySQLHeatwave-TheBasics.pptx
MySQLHeatwave-TheBasics.pptxMySQLHeatwave-TheBasics.pptx
MySQLHeatwave-TheBasics.pptx
 
Oracle GoldenGate 21c New Features and Best Practices
Oracle GoldenGate 21c New Features and Best PracticesOracle GoldenGate 21c New Features and Best Practices
Oracle GoldenGate 21c New Features and Best Practices
 
Improve PostgreSQL replication with Oracle GoldenGate
Improve PostgreSQL replication with Oracle GoldenGateImprove PostgreSQL replication with Oracle GoldenGate
Improve PostgreSQL replication with Oracle GoldenGate
 
Oracle GoldenGate on Docker
Oracle GoldenGate on DockerOracle GoldenGate on Docker
Oracle GoldenGate on Docker
 
OOW19 - HOL5221
OOW19 - HOL5221OOW19 - HOL5221
OOW19 - HOL5221
 
Oracle GoldenGate 18c - REST API Examples
Oracle GoldenGate 18c - REST API ExamplesOracle GoldenGate 18c - REST API Examples
Oracle GoldenGate 18c - REST API Examples
 
Oracle GoldenGate Performance Tuning
Oracle GoldenGate Performance TuningOracle GoldenGate Performance Tuning
Oracle GoldenGate Performance Tuning
 
Hit Refresh with Oracle GoldenGate Microservices
Hit Refresh with Oracle GoldenGate MicroservicesHit Refresh with Oracle GoldenGate Microservices
Hit Refresh with Oracle GoldenGate Microservices
 
GoldenGate CDR from UKOUG 2017
GoldenGate CDR from UKOUG 2017GoldenGate CDR from UKOUG 2017
GoldenGate CDR from UKOUG 2017
 
Oracle GoldenGate and Baseball - 5 Keys for Moving to the Cloud
Oracle GoldenGate and Baseball - 5 Keys for Moving to the CloudOracle GoldenGate and Baseball - 5 Keys for Moving to the Cloud
Oracle GoldenGate and Baseball - 5 Keys for Moving to the Cloud
 
Oracle GoldenGate Studio Intro
Oracle GoldenGate Studio IntroOracle GoldenGate Studio Intro
Oracle GoldenGate Studio Intro
 
5 Keys to Oracle GoldenGate Implemenations
5 Keys to Oracle GoldenGate Implemenations5 Keys to Oracle GoldenGate Implemenations
5 Keys to Oracle GoldenGate Implemenations
 
Database As A Service: OEM + ODA (OOW 15 Presentation)
Database As A Service: OEM + ODA (OOW 15 Presentation)Database As A Service: OEM + ODA (OOW 15 Presentation)
Database As A Service: OEM + ODA (OOW 15 Presentation)
 
Extreme Replication - Performance Tuning Oracle GoldenGate
Extreme Replication - Performance Tuning Oracle GoldenGateExtreme Replication - Performance Tuning Oracle GoldenGate
Extreme Replication - Performance Tuning Oracle GoldenGate
 
Enable GoldenGate Monitoring with OEM 12c/JAgent
Enable GoldenGate Monitoring with OEM 12c/JAgentEnable GoldenGate Monitoring with OEM 12c/JAgent
Enable GoldenGate Monitoring with OEM 12c/JAgent
 
Extreme replication at IOUG Collaborate 15
Extreme replication at IOUG Collaborate 15Extreme replication at IOUG Collaborate 15
Extreme replication at IOUG Collaborate 15
 
Examining Oracle GoldenGate Trail Files
Examining Oracle GoldenGate Trail FilesExamining Oracle GoldenGate Trail Files
Examining Oracle GoldenGate Trail Files
 
Exachk and oem12c - IOUG C15LV
Exachk and oem12c - IOUG C15LVExachk and oem12c - IOUG C15LV
Exachk and oem12c - IOUG C15LV
 
Extreme Replication - RMOUG Presentation
Extreme Replication - RMOUG PresentationExtreme Replication - RMOUG Presentation
Extreme Replication - RMOUG Presentation
 
IOUG Data Integration SIG w/ Oracle GoldenGate Solutions and Configuration
IOUG Data Integration SIG w/ Oracle GoldenGate Solutions and ConfigurationIOUG Data Integration SIG w/ Oracle GoldenGate Solutions and Configuration
IOUG Data Integration SIG w/ Oracle GoldenGate Solutions and Configuration
 

Kürzlich hochgeladen

Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...FIDO Alliance
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Julian Hyde
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FIDO Alliance
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandIES VE
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty SecureFemke de Vroome
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfSrushith Repakula
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxDavid Michel
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfFIDO Alliance
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfUK Journal
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIES VE
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimaginedpanagenda
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe中 央社
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekCzechDreamin
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsStefano
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyJohn Staveley
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...CzechDreamin
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?Mark Billinghurst
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfFIDO Alliance
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераMark Opanasiuk
 

Kürzlich hochgeladen (20)

Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & Ireland
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty Secure
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 

RheoData_23ai_Vector-Datatype-Webinar-2024.pptx

  • 1. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Oracle 23ai: AI Vector Search: The What, The How, & The Possibilities Will start about 3 minutes after the hour.
  • 2. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Webinar Keeping Use Q&A dialog to ask questions. Will answer as pauses occur or at end of webinar.
  • 3. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Speaker Bobby Curtis, MBA Atlanta, GA • Author • Speaker @dbasolved | @rheodatallc https://dbasolved.com | https://www.rheodata.com/blog bobby.curtis@rheodata.com https://www.slideshare.net/BobbyCurtisMBA
  • 4. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Cloud Managed Services Provider (CMSP) 24/7 On-Call Support Data and Cloud Migrations Near-Zero Downtime Data Engineering Analytics, Machine Learning, Artificial Intelligence (Oracle Digital Assistants) License Management On-Premises & Cloud Cost Management Data Modernization Data Visualization, Cyber Security, Data Warehouse, etc. Service Offerings: www.rheodata.com | www.rheodata.ai Co-Managed Fully-Managed Professional Services
  • 5. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Prerequisites • Oracle Database 23c 23ai • oracle-database-free-23c-1.0-1.el8.x86_64 (23.4 ((LA1)) • oracle-database-ee-23c-1.0-1.el8.x86_64 (23.4(LA2)) • OCI Oracle Database Service • On-premises (here) - Free • Python 3.11/3.12 • python-oracledb • oracledb-2.2.0 • Langchain • https://python.langchain.com/docs/get_ started/introduction • LLM API Key • Cohere, ChatGPT, etc.
  • 6. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc The What?
  • 7. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Vector Database are a new classification of specialized databases designed for AI workloads that allows you to query based on semantics, rather than keywords.
  • 8. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Vector Search enhances information retrieval by mapping queries to relevant data in your database based on semantics, instead of precise matches, using vectors to measure similarity.
  • 9. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc 45 68 16 50 42 Vector Vectors are a sequence of numbers, called dimensions, used to capture the important “features” of the data. Vectors in AI represent semantics of unstructured data such as images, documents, videos, etc.
  • 10. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc 45 68 16 50 42 Vector The mathematical distance between two vectors indicate how similar they are Vectors represent the semantic content of data, not the underlying words or pixels
  • 11. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Online Embedding Models (Cohere) English Multi-Lingual embed-english-v3.0 (1024) embed-multilingual-v3.0 (1024) embed-english-light-v3.0 (384) embed-multilingual-light-v3.0 (384) embed-english-v2.0 (4096) embed-multilingual-v2.0 (768) embed-english-light-v2.0 (1024)
  • 12. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Online Embedding Models (Cohere) English Multi-Lingual embed-english-v3.0 (1024) embed-multilingual-v3.0 (1024) embed-english-light-v3.0 (384) embed-multilingual-light-v3.0 (384) embed-english-v2.0 (4096) embed-multilingual-v2.0 (768) embed-english-light-v2.0 (1024) Database Embedding Models (Hugging Face/OMLUtils)
  • 13. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Input Data Object Embedding Model 4 8 42 72 Vector Search Relevant Content Data Object Retrieval Vector ID Matches Vector Embedding
  • 14. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc The How? -> The Math
  • 15. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc The Math? Euclidean/Squared Euclidean Distance Cosine Similarity Reflects the distance between each of the vector coordinates being compared -> straight line distance between vectors Measures the cosine of the angle between two vectors.
  • 16. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc The Math? DOT Product Similarity Manhattan Distance Similarity of two vectors are viewed by multiplying the size of each vector by the cosine of their angle. Calculated by summing the distance between the coordinates of two vectors.
  • 17. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc The Math? Hamming Distance The distance between two vectors represent the number of coordinates where they differ.
  • 18. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc The How? -> Oracle
  • 19. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Vector data types can be declared in the following forms: Vector Datatype Vector Arbitrary number of dimensions and format Vector (*,*) Vector = Vector(*,*) Vector (number_of_dimensions, *) Vectors must all have the specified number of dimensions, or an error is thrown. No format modification. Vector(*, dimension_element_format) Arbitrary number of dimensions, but format will be up-converted or down- converted to the specific dimension (INT8, FLOAT32, FLOAT64). Vector(number_of_dimensions, dimension_element_format) Must have all the specified number of dimensions, or error thrown. Each will be up-converted or down-converted to the specified format (INT8, FLOAT32, FLOAT64). Vectors can be NULL but dimensions cannot: [1.1, NULL, 2.2] Same Thing
  • 20. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Different Types of Vectors Supported! drop table vector.rd_vector; CREATE TABLE vector.rd_vector ( v1 VECTOR, v2 VECTOR(3, FLOAT32), v3 VECTOR(2, FLOAT64), v4 VECTOR(1, INT8), v5 VECTOR(1, *), v6 VECTOR(*, FLOAT32), v7 VECTOR(*, *) );
  • 21. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Vector Base Operations TO_VECTOR || VECTOR Constructors for vectors FROM_VECTOR || VECTOR_SERIALIZE Functions take a vector and return as string in VARCHAR2 or CLOB as output VECTOR_NORM Function returns the Euclidean norm of the vector in BINARY_DOUBLE (SQRT(SUM((xi-yi)2)) VECTOR_DIMENSION_COUNT Function returns the number of dimensions of a vector as an Oracle number VECTOR_DIMENSION_FORMAT Returns the storage format of the vector in VARCHAR2 format (INT8, FLOAT32, FLOAT64) VECTOR_DISTANCE* Function returns Squared Euclidean distance. Default for Oracle AI Vector Search There are a few base functions that are used with Vectors.
  • 22. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc VECTOR_DISTANCE vector_distance (expr1, expr2, [, metric]) L1_distance (expr1, expr2) L2_distance (expr1, expr2) cosine_distance (expr1, expr2) inner_distance (expr1, expr2) Manhattan/Taxi Cab Euclidean_Squared DOT Cosine
  • 23. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc How do I create a “vector”?
  • 24. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Declare vector datatypes during table creation. Example 1: CREATE TABLE text_vec ( id NUMBER, embeddings VECTOR ); Example 2: CREATE TABLE text_vec ( id NUMBER, embeddings VECTOR(384, INT8) );
  • 25. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Vector datatypes can be added to tables later as well. Example 1: CREATE TABLE text_vec ( id NUMBER, col1 varchar2(50), ); ALTER TABLE text_vec add ( vec vector );
  • 26. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc sql> create table vec_tab ( id number, vec vector(2) ); sql> insert into vec_tab values (1, ’[1,2]’); sql> insert into vec_tab values (2, ’[2,3]’); import oracledb connection = oracledb.connection() cursor = connection.cursor() cursor.execute() cursor.setinputsizes(None, oracledb.DB_TYPE_VECTOR) cursor.execute() connection.commit() Available Create Create & Populate
  • 27. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Let’s go with Python!
  • 28. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Python Approach – 1 of 4 import oracledb import cohere import os from langchain.document_loaders import TextLoader from langchain.text_splitter import CharacterTextSplitter
  • 29. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Python Approach – 2 of 4 with open("./Scripts/oracle/vector/cities.txt") as f: cities = f.read() #print(cities) text_splitter = CharacterTextSplitter(separator="n", chunk_size=35, chunk_overlap=5, length_function=len, is_separator_regex=False) texts = text_splitter.split_text(cities)
  • 30. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Python Approach – 3 of 4 api_key = ”API Key" os.environ["COHERE_API_KEY"] = api_key print(os.environ["COHERE_API_KEY"]) co = cohere.Client(os.getenv("COHERE_API_KEY")) Cohere offers two types of API Keys: • Development (Limit 10 calls per minute) • Production (unlimited calls per minute)
  • 31. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Python Approach – 3.5 of 4 def database_connection(): try: connection = oracledb.connect( user="vector", password="vector", dsn="100.130.230.100:1521/freepdb1" ) print('connected’) return connection except: print('Could not make a connection')
  • 32. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Python Approach – 4 of 4 connection = database_connection() id_val = 1 for i in texts: response = co.embed( texts=[i], model='embed-english-light-v3.0', input_type='classification' ) vtext = i vec = response.embeddings[0] #print(vtext) #print(len(vec)) #print(vec) cursor = connection.cursor() cursor.setinputsizes(None, oracledb.DB_TYPE_VECTOR) cursor.execute("insert into vector.text_vec (id, txt_vec, text) values (:1, :2, :3)",[id_val, vec, vtext]) connection.commit() #print("recorded inserted") id_val = id_val + 1 print(str(id_val-1) + " inserted") cursor.execute("select * from vector.text_vec") for row in cursor: print(row)
  • 33. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Create Vector Demo (Video)
  • 34. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Create Vectors select text from vector.text_vec order by vector_distance(txt_vec,( select txt_vec from vector.text_vec_lookup where id = :1), DOT) fetch first :2 rows only;
  • 35. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Similarly Searches (Demo)
  • 36. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Similarly Searches (Demo) Explain Plan • No indexes • Selected 43 rows in milliseconds – all text New webinar: Vector Indexes, coming soon.
  • 37. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc How do I embed a LLM within the database?
  • 38. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc ONNX Files ONNX = Open Neural Network Exchange An open-source format designed for machine- learning models. Ensuring cross-platform compatibility and supports major languages and frameworks, facilitating easy and efficient model exchanges.
  • 39. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Python Approach – 1 of 5 $ export ORACLE_HOME_23ai=/opt/oracle/product/23ai/dbhome_1 $ cd $ORACLE_HOME_23ai/python/bin $ python -V $ export PATH=$ORACLE_HOME_23ai/python/bin:$PATH $ python -v • Verify that the correct Python is installed. • Python 3.12 (min)
  • 40. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Python Approach – 2 of 5 $ cd ~ $ mkdir onnx • Make directory for all ONNX files
  • 41. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Python Approach – 3 of 5 $ cd ~/onnx $ unzip ./omlutils.zip -d • Change directory to ONNX directory • Unzip OMLUTILS.zip file
  • 42. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Python Approach – 4 of 5 $ cd ~/onnx $ python -m pip install -r requirements.txt $ python -m pip install omlutils-0.13.0-cp312-cp312- linux_x86_64.whl • Install all the necessary requirments • Install OMLUTILS wheel file
  • 43. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Python Approach – 5 of 5 $ cd ~/onnx $ python >>> from omlutils import EmbeddingModel, EmbeddingModelConfig >>> em = EmbeddingModel(model_name="sentence- transformers/all-MiniLM-L6-v2”) >>> em.export2file("all-MiniLM-L6-v2",output_dir=".”) >>> exit() $ • Install requested LLM into database using Python Interactive Prompt • View model in Oracle Data Dictonary
  • 44. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc New Database Views *_DATA_MODELS SELECT * FROM *_DATA_MODELS;
  • 45. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Using the Embedded Model (TO_VECTOR & VECTOR_EMBEDDING) SELECT to_vector(vector_embedding(VECTOR.DOC_MODE L using url as data)) as embedding from ggai.base;
  • 46. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Updating existing table with Vectors update ggai.base_url set urlvec = (SELECT to_vector(vector_embedding(VECTOR.DOC_MODEL using url as data)) from ggai.base_url where id = 1) where client = upper('test');
  • 47. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc The Possibilities?
  • 48. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc The possibilities of Oracle Vector Search are going to drive growth in everything!
  • 49. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Retrieval Augmented Generation (RAG) A technique for enhancing the accuracy and reliability of generative AI models with facts from external sources
  • 50. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Input Data Object Embedding Model 4 8 42 72 Vector Search Relevant Content Data Object Retrieval Vector ID Matches Vector Embedding
  • 51. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Use Cases: • Search (known use case) • Natural-Language Processing/Search (semantic search) • Recommendation Systems (retail, customer service) • Biometric and Anomaly Detection (healthcare) • Drug discovery and genomics (healthcare) • Patient similarity Analysis (healthcare) • Personalized Digital Assistants
  • 52. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc • Private data shared via Vector databases/data type need to be secure. • Organizations should evaluate what data is vectorized (shared) before using with public LLMs. • Consider building private LLMs to keep data secure.
  • 53. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Questions
  • 54. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc Next webinars!  June 13, 2024 @ 1 pm EST: Oracle GoldenGate 23ai: What is new and how to upgrade  June 27, 2024 @ 1 pm EST (tentative): Oracle Database 23ai: Vector Indexes – What and how to use
  • 55. Copyright, 2024 RheoData and affiliates bobby.curtis@rheodata.com | www.rheodata.com | @rheodatallc solutions@rheodata.com @rheodatallc http://rheodata.com