検索

ダイジェスト
· 2024年8月12日

InterSystems Developers Publications, Week August 05 - 11, 2024, Digest

Articles
Announcements
#InterSystems IRIS
#IRIS contest
#InterSystems IRIS for Health
#Global Summit
#InterSystems Official
#TrakCare
#Learning Portal
#HealthShare
Questions
#InterSystems IRIS
#Caché
#Ensemble
#InterSystems IRIS for Health
#HealthShare
Restart Service
By Christina Dykhouse
Discussions
August 05 - 11, 2024Week at a GlanceInterSystems Developer Community
記事
· 2024年8月12日 8m read

An Overview of Vector Search functionality

Artificial intelligence (AI) has transformative potential for driving value and insights from data. As we progress toward a world where nearly every application will be AI-driven, developers building those applications will need the right tools to create experiences from these applications. Tools like vector search are essential for enabling efficient and accurate retrieval of relevant information from massive datasets when working with large language models. By converting text and images into high-dimensional vectors, these techniques allow quick comparisons and searches, even when dealing with millions of files from disparate datasets across the organization.

In this article, we will cover the following topics:

  1. What is Vector Search?

  2. Vectors and Embeddings

  3. Storing Vector Data

  4. Viewing Vector Data

  5. Performing Vector Search

 

1. What is Vector Search? 

Vector search is a method of information retrieval where documents and queries are represented as vectors instead of plain text. Machine learning models generate these vector representations from source inputs that can be text, images, or other content. Having a mathematical representation of content provides a common basis for search scenarios. In this way, a query can find a match in vector space even if the original content is in a different media or language. This method allows one to find the most relevant documents in a given query by converting both the documents and the query into vectors and then computing the cosine similarity between them. The higher the cosine similarity, the more relevant the document is.

At the core of vector search lies the concept of vector representation. In this context, a vector is an array of numbers that encapsulate the semantic meaning of a piece of content. Such machine learning models as Word2Vec, GloVe, or BERT, are commonly used to generate these vectors. These models are trained on large datasets to learn the relationships and patterns between words, sentences, or entire documents.

The primary task in vector search is to measure the similarity between vectors. Various mathematical techniques can be used for this purpose. However, cosine similarity and dot product are the most common ones. Cosine similarity measures the cosine of the angle between two vectors, providing a value between -1 and 1, where 1 indicates identical directions (high similarity), and -1 indicates opposite directions (low similarity). The dot product, on the other hand, measures the magnitude of the overlap between two vectors.

 

2. Vectors and Embeddings

Vectors can represent the semantic meaning of language in embeddings. These embeddings are determined by an embedding model, a machine-learning model that maps words to a high-dimensional geometric space. Modern embedding vectors typically range from hundreds to thousands of dimensions. Words with similar semantic meanings occupy nearby positions in this space, while words with different meanings are placed far apart. These spatial positions allow applications to algorithmically determine the similarity between two words or even sentences by performing operations on their embedding vectors.

Embeddings are a specific type of vector representation created by machine learning models that capture the semantic meaning of a text or other types of content e.g., images. Natural language machine learning models are trained on large datasets to identify patterns and relationships between words. During training, they learn to represent any input as a vector of real numbers in an intermediary step called the encoder. After training, these language models can be modified, so the intermediary vector representation becomes the model's output

In vector search, a user can compare an input vector with vectors stored in a database using operations that determine similarity, e.g., the dot product. When the vectors represent embeddings, vector search enables the algorithmic determination of the most semantically similar pieces of text compared to an input. As a result, vector search is well-suited for tasks involving information retrieval.

Vectors can also be added, subtracted, or multiplied to find meanings and build relationships. One of the most popular examples is king – man + woman = queen. Machines might use this kind of relationship to determine gender or understand gender relationships.


3. Storing Vector Data

In vector search, an embedding model transforms unstructured data, e.g., text, into a piece of structured data, called a vector. Users can then perform operations on those vectors, which they could not do with the unstructured data. InterSystems IRIS® data platform supports a dedicated VECTOR type that performs operations on vectors. There are three numeric vector types: decimal (the most precise), double, and integer (the least accurate). Since VECTOR is a standard SQL datatype, we can store vectors alongside other data in a relational table, converting a SQL database transparently into a hybrid vector database. Vector data can be added to a table with INSERT statements or through ObjectScript with a property of %Library.Vector type. IRIS Vector Search comprises a new SQL datatype VECTOR, VECTOR_DOT_PRODUCT() and VECTOR_COSINE() similarity functions to search for similar vectors. Users can access this functionality via SQL directly, or via Community-developed LangChain and LlamaIndex, popular Python frameworks for developing Generative AI applications, we will use SQL direct functionality.

In order to store the vector data, we must create a table or persistent class containing a vector datatype column/property.

Below the ObjectScript function, we will use embedded Python to create the desired table:

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
記事
· 2024年8月12日 4m read

[Estudio de caso] Control eficaz del código fuente en la sanidad

Una solución de control de versiones eficaz permite a las organizaciones gestionar bases de código complejas, facilitar una colaboración sin fisuras dentro de los equipos de desarrollo y agilizar los procesos de despliegue.

Sonic Healthcare, un proveedor líder de servicios médicos corporativos, de práctica general, radiología y patología, ha mejorado significativamente la visibilidad y el control sobre su entorno complejo al implementar el control de versiones de Deltanji. La estrecha integración que Deltanji proporciona con InterSystems IRIS e IRIS for Health ha sido fundamental para lograr estas mejoras.

Configuración de Sonic Healthcare

Sonic Healthcare implementó el control de versiones Deltanji en 1999 y se ha convertido en una parte integral de su sistema. Trabajan con InterSystems IRIS e InterSystems IRIS for Health, utilizando Deltanji del lado del servidor para la gestión de código y para optimizar sus procesos de desarrollo y lanzamiento de software. Como resultado, Deltanji les ha permitido agilizar sus flujos de trabajo de lanzamiento y lograr un control cercano sobre el ciclo de vida total del software.

Sonic Healthcare tiene un proceso de despliegue diligente y necesita asegurarse de que todos los cambios en el código se gestionen de manera consistente y productiva.

Su configuración requiere que el código del equipo de desarrollo pase por el control de calidad y se transfiera al sistema de pruebas de aceptación de usuario, donde las entidades comerciales individuales realizan las pruebas de usuario final. Una vez que han aprobado la tarea de desarrollo, el equipo de lanzamiento entonces compromete el código en el repositorio y programa su lanzamiento al entorno en vivo.

Todo este proceso se gestiona utilizando Deltanji Enterprise y aprovecha el proceso de flujo de trabajo configurable de Deltanji. Esto permite a Sonic Healthcare ir más allá del CI/CD tradicional y se realiza de manera fácil y efectiva gracias a la estrecha integración de Deltanji con las plataformas de InterSystems.

 

El impacto del uso de Deltanji

Configurabilidad

Las capacidades de configuración de Deltanji han proporcionado a Sonic Healthcare una solución de control de versiones que se puede adaptar a sus requisitos específicos. Durante los más de 20 años que Sonic Healthcare ha estado utilizando Deltanji, este se ha adaptado para satisfacer las necesidades crecientes y cambiantes de la organización. Por ejemplo, Deltanji ha permitido a Sonic Healthcare utilizar un enfoque altamente granular para la creación de ramas, lo que permite a los usuarios trabajar en entornos de desarrollo en un sistema de desarrollo compartido del lado del servidor simultáneamente antes de que los cambios se registren nuevamente en el entorno de desarrollo principal.

Su configuración requiere que el código del equipo de desarrollo pase por el control de calidad y se transfiera al sistema de pruebas de aceptación de usuario, donde las entidades comerciales individuales realizan las pruebas de usuario final. Una vez que han aprobado la tarea de desarrollo, el equipo de lanzamiento entonces compromete el código en el repositorio y programa su lanzamiento al entorno en vivo.

Todo este proceso se gestiona utilizando Deltanji Enterprise y aprovecha el proceso de flujo de trabajo configurable de Deltanji. Esto permite a Sonic Healthcare ir más allá del CI/CD tradicional y se realiza de manera fácil y efectiva gracias a la estrecha integración de Deltanji con las plataformas de InterSystems.


 

Entorno centralizado

Para optimizar sus procesos de despliegue de código, Sonic Healthcare adoptó el uso de la tecnología Task Server de Deltanji. La arquitectura centrada en el hub de Deltanji juega un papel vital en el éxito del uso de Task Server para el despliegue, ya que proporciona control de versiones y un seguimiento fácil del estado y la ubicación del código, lo que ofrece una visibilidad clara de las versiones de código en los servidores de destino y, con la funcionalidad de reversión, se mitigan los riesgos. Estas características son esenciales para aumentar el control, la fiabilidad y la confianza en su sistema, así como para permitir tiempos de despliegue más rápidos.


«Una de las razones por las que nos gusta trabajar con Deltanji es que es nativo de InterSystems, por lo que entiende los tipos de archivo de InterSystems. En mi experiencia, las soluciones genéricas de control de código fuente requieren mucha más configuración.» 
- Jo Lohrey, Enterprise Architect en Sonic Healthcare


Alineación con InterSystems IRIS

Deltanji se ha adaptado específicamente para la tecnología de InterSystems. Esto ha resultado en su excelencia en la gestión de tipos de archivos de InterSystems, lo cual es una de las principales razones por las que Sonic Healthcare ha encontrado Deltanji beneficioso para su sistema y por qué disfrutan usándolo. Aunque otras soluciones genéricas de control de versiones ofrecen algunas de las capacidades de Deltanji, a menudo requieren una configuración significativamente mayor y carecen de la facilidad de uso proporcionada por una solución adaptada a InterSystems IRIS. Esto hace que Deltanji sea una buena alternativa a soluciones como Git o GitHub.

La implementación de la herramienta de desarrollo Deltanji por parte de Sonic Healthcare ha agilizado significativamente sus procesos de control de versiones y despliegue. Al personalizar los flujos de trabajo y aprovechar la compatibilidad y facilidad de uso de Deltanji, Sonic Healthcare ha mejorado la calidad de su código, ha incrementado la visibilidad en todo su sistema y ahora tiene un mayor control sobre su entorno complejo.

Si queréis saber más sobre Deltanji, visitad georgejames.com/deltanji. Para concertar una demostración, enviadnos un correo electrónico a info@georgejames.com

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
ダイジェスト
· 2024年8月12日

Publications des développeurs d'InterSystems, semaine Août 05 - 11, 2024, Résumé

Août 05 - 11, 2024Week at a GlanceInterSystems Developer Community