Nouvelle publication

Pesquisar

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
Résumé
· Juil 1, 2024

InterSystems開発者コミュニティのダイジェスト、6月 2024

6月 2024開発者コミュニティ ニュースレターへようこそ。
全体統計
9 件の新しい投稿が公開 (6月 月):
 7件の新着記事
 2の新しい発表
5 人の新メンバーが参加 (6月 月)
1,309 件の投稿が公開 (全期間)
265 人のメンバーが参加 (全期間)
トップ記事
JSON_Table(SQL)の利用
Tomoko Furuzono順
今月のトップ作家
記事
お知らせ
6月, 2024Month at a GlanceInterSystems Developer Community