Nouvelle publication

Rechercher

Annonce
· Juil 1, 2024

Resumen del mes de junio, 2024

¿No habéis podido entrar en la Comunidad todo lo que os gustaría? ¡No os preocupéis! Os traemos un resumen de todo lo que hemos publicado en el mes de junio. Seguid leyendo y no os lo perdáis ⬇️⬇️
Estadísticas generales
✓ publicaciones nuevas:
 16 artículos
 7 anuncios
 1 nueva pregunta
Top 10 Publicaciones más vistas
Third Item Contest Winners!
Por Sergio Farago
Cómo crear un cliente REST FHIR
Por Jose-Tomas Salvador
Top 5 autores más populares
Todos los artículos
#InterSystems IRIS
Cómo configurar el almacenamiento en columnas en clases
Por Iryna Mykhailova
Predicción de diagnósticos con búsqueda vectorial y aprendizaje de máquina
Por Heloisa Paiva
Como crear tu propia searchtable para mensajería HL7.
Por Dani Fibla
Mover configuraciones específicas de Producción a Configuraciones Predeterminadas del Sistema
Por Jose-Tomas Salvador
QuinielaML - Predicciones de la 61ª jornada de la Quiniela
Por Luis Angel Pérez Ramos
Flujos de tareas con InterSystems IRIS Workflow Engine - Conexión con aplicaciones externas
Por Luis Angel Pérez Ramos
Búsqueda vectorial + GenAI + tecnologías InterSystems con Banksia Global
Por Maria Gladkova
Control del crecimiento de la base de datos - Parte 1: Recogida de datos
Por Luis Angel Pérez Ramos
Determinando los tamaños de los globales y tablas en InterSystems IRIS
Por Alberto Fuentes
Conexión a Cloud SQL desde Microsoft Power BI usando ODBC y TLS/SSL
Por Ricardo Paiva
Cómo mantener los datos de IRIS en un contenedor Docker durante un largo período de tiempo.
Por Luis Angel Pérez Ramos
Wall-M: Consultas semánticas en vuestros correos electrónicos con respuestas precisas con citas a las fuentes originales
Por Arvind Menon
Creación de una aplicación web React simple con backend IRIS: resolución de CORS
Por Ricardo Paiva
 
#InterSystems IRIS for Health
Cómo crear un cliente REST FHIR
Por Jose-Tomas Salvador
 
#Otro
 
Todos los anuncios
Las preguntas
#InterSystems IRIS for Health
Webterminal bloqueado
Por Enric Moya Sánchez
 
junio, 2024Month at a GlanceInterSystems Developer Community
Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer
Résumé
· Juil 1, 2024

Resumen de la Comunidad de Desarrolladores, junio 2024

Hola y bienvenidos al boletín de la comunidad de desarrolladores junio 2024.
Estadísticas generales
✓ publicaciones nuevas:
 16 artículos
 7 anuncios
 1 nueva pregunta
6 nuevos miembros se unieron en junio
1,780 contenidos publicados de forma constante
661 miembros se unieron de forma constante
Publicaciones populares
Autores populares
Artículos
#InterSystems IRIS
Cómo configurar el almacenamiento en columnas en clases
Por Iryna Mykhailova
Predicción de diagnósticos con búsqueda vectorial y aprendizaje de máquina
Por Heloisa Paiva
Como crear tu propia searchtable para mensajería HL7.
Por Dani Fibla
Mover configuraciones específicas de Producción a Configuraciones Predeterminadas del Sistema
Por Jose-Tomas Salvador
QuinielaML - Predicciones de la 61ª jornada de la Quiniela
Por Luis Angel Pérez Ramos
Flujos de tareas con InterSystems IRIS Workflow Engine - Conexión con aplicaciones externas
Por Luis Angel Pérez Ramos
Búsqueda vectorial + GenAI + tecnologías InterSystems con Banksia Global
Por Maria Gladkova
Control del crecimiento de la base de datos - Parte 1: Recogida de datos
Por Luis Angel Pérez Ramos
Determinando los tamaños de los globales y tablas en InterSystems IRIS
Por Alberto Fuentes
Conexión a Cloud SQL desde Microsoft Power BI usando ODBC y TLS/SSL
Por Ricardo Paiva
Cómo mantener los datos de IRIS en un contenedor Docker durante un largo período de tiempo.
Por Luis Angel Pérez Ramos
Wall-M: Consultas semánticas en vuestros correos electrónicos con respuestas precisas con citas a las fuentes originales
Por Arvind Menon
Creación de una aplicación web React simple con backend IRIS: resolución de CORS
Por Ricardo Paiva
#InterSystems IRIS for Health
Cómo crear un cliente REST FHIR
Por Jose-Tomas Salvador
#Otro
Anuncios
Preguntas
#InterSystems IRIS for Health
Webterminal bloqueado
Por Enric Moya Sánchez
junio, 2024Month at a GlanceInterSystems Developer Community
Article
· Juil 1, 2024 2m de lecture

新数据类型 VECTOR 的限制

在 OEX 最近一次编程竞赛之后,我有一些令人惊讶的发现。
几乎所有的应用程序都是基于人工智能与预制 Python 模块的结合。
但深入研究后发现,所有示例都使用了 IRIS 的相同技术组件。

从 IRIS 的角度来看,无论是搜索文本还是搜索图像或其他模式都是一样的。 其底层基本都是一样的。

          这让我想起了我家里的情况。我的妻子和女儿对家里的大量裙子、衬衫和其他衣服的信息进行了整理。
          但无论如何进行整理、分类、归档,我依然通过和我的妻子和女儿说话,来确定我的穿着。
           无论怎样包装,其结果都是如此。

回到这次竞赛比赛:
同样的 IRIS 技术内容,却有很多花哨的包装。
每个人都在同一条高速公路上奔跑。没有人提到它有什么限制。

于是我试着深入挖掘,找出新数据类型 VECTOR 的使用限制。
所有向量都有两个基本参数
  - 静态 DATATYPE:"整型integer"(或 "int")、"double"、"十进制decimal"、"字符串 "和 "时间戳"。
  - 半动态 LEN(gth): > 0 通常也称为 POSITION;纯整数。

这个 LEN/POSITION 参数就相当于vector的数学维度。
当然,在爱因斯坦的宇宙中,根据他的相对论,你可能只需要 4 个维度或更少。
即使是 60 年代提出的宇宙弦理论也没有超过 11...12 维。
但所有预制好的文本分析解决方案软件包都使用 238、364、>1200、.... 等维度甚至更多。

那么:IRIS 对可能的position设定的限制是什么?官方文档没有给出答案, 于是我打开终端窗口,尝试了下面代码:

for i=1:1 set $vector(test,I,"int")=i
;; very fast
<VECTOR>
zwrite i
i=65537

我尝试了所有的数据类型:这个限制的值是65536

所以这个长度就是 数字类型的长度*65536, 很明显这个比<MAXSTRING>的限制要小。

但是,如果字符串类型的大小有一个重要的维度,会发生什么?

结果令人印象深刻: 
我在 65536 个position和 3.600.000 bytes 的字符串中取得了成功.
测试字符串比 <MAXSTRING>的设定少了几KB
也就是说,在单个 VECTOR 中的大小是 225.000 MB!
我无法想象这是如何做到的。

毫无疑问,处理这个不寻常的庞然大物需要时间,你必须等待足够长的时间才能获取访问结果。
但它表明,数据类型 VECTOR 能够满足所有实际需求
不受设计的限制。

祝您在使用 VECTOR 时取得成功。

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer
Résumé
· Juil 1, 2024
Article
· Juil 1, 2024 4m de lecture

在InterSystems ObjectScript中使用 VECTORs

迄今为止,我看到的大多数使用向量vector的示例,将它只作为 SQL 中的一种功能,尤其是围绕 VECTOR_Search 的 3 个函数。
* TO_VECTOR()
* vector_dot_product ()
* vector_cosine ()

iris-vector-search 演示包中隐藏着一个非常有用的摘要。
从那里,你可以通过多个链接找到所需的一切。

我还缺少更多的 VECTOR 方法,于是在 Idea Portal 上提出了相关请求。

接着,我想起每个 SQL 方法或存储过程都有一堆 ObjectScript 代码。
于是我开始搜索,下面就是我的研究的一些总结:

%Library.Vector 是对新数据类型的核心描述
      这是一种复杂的结构,就像对象或 %DynamicObjects 或 $Bit Expressions 一样,需要特定的方式去访问。
我们还可以看到 2 个必备参数: 
      * DATATTYPE - 一旦设置就不能更改。 可接受的类型:  "整数integer"(或 "int")、"双精度浮点double"、"十进制decimal"、"字符串 "和 "时间戳"。
      * LEN >0 时,可以增长,但绝对不能缩小

$vector() / $ve() 是矢量访问的基本方法
      * 设置矢量数据 >>> SET $VE(. . .) = val
      * 返回矢量数据 >>> WRITE $VE(. . ) , SET var=$VE(. . ) 
          提示:单个位置返回值,但从::到位置返回另一个矢量!
      * 删除矢量数据 >> KILL $VE(. . .) 
      所有 3 个参数都需要至少 1 个位置参数。你可以把它理解为维度。

$isvector()显然是在开始操作前检查格式是否正确。

$vectorop() / $vop() 包括与向量有关的所有其他函数
    调用参数通常为(operation、vector)
某些operation提供可选的 bitxpr。它标记了要排除/包含的位置/维数。

例如: 
- 你只想对 x 轴和 y 轴进行操作,而不想对 z 轴进行操作。

单向量操作符

    Aggregate Operations 汇总操作
      * "count"
      * "max"
      * "min"
      * "sum"
    Filter Operations 过滤器操作
      * "defined"
      * "undefined"
      * "<"
      * "<="
      * ">"
      * ">="
      * "="
      * "!="
      * "between"
     Numeric Operations 数字相关操作
      * "+"
      * "-"
      * "/"
      * "*"
      * "**"
      * "#"
      * "e-"
      * "e/"
      * "ceiling"
      * "floor"
     String Operations 字符串相关操作
      * "_"
      * "e_"
      * "lower"
      * "upper"
      * "substring"
      * "trim"
      * "triml"
      * "trimr"
    Grouping Operations 组相关操作
     * "group"
     * "countgb"
   Miscellaneous Operations 杂项操作
     * "convert"
     * "length"
     * "mask"
     * "positions"
     * "set"
   Informative Operations 信息化业务
    * "bytesize"
    * "type"

多向量操作符(通常为两个操作)

    Vector-wise Filter Operations
       * "v<"
       * "v<="
       * "v>"
       * "v>="
       * "v="
       * "v!="
    Vector-wise Arithmetic Operations
      * "v+"
      * "v-"
      * "v/"
      * "v*"
      * "v**"
      * "v#"
    Vector Concatenation
      * "v_"
    Vector Grouping
      * "countg"
      * "maxg"
      * "ming"
      * "sumg"
    Vector Merge
     * "vset"

你看,现在已经有了一套丰富的工具。
如果你详细研究文档,结果的目的或优势可能不会立即显现出来。

不过,我希望你能对目前可用的工具有一个大致的了解。

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer