Executando verificação de segurança...
1

[Brainstorm] Compactação de dados com hexadecimal semantico

Salve galera do tabnews, me chamo Kaue e estou cursando a faculdade de Análise e Desenvolvimento de Sistemas, eu tive recentemente uma ideia para uma iniciação científica na minha instituição e gostaria que vocês me dessem um feedback.

A ideia é a criação de uma linguagem semântica em hexadecimal. Atualmente, com IA, big data e uma série de recursos que usamos, os sistemas tem trabalhado com textos extensos como registros de chat, transcrições de áudio, logs e uma série de outros registros que armazenam informações em formatos tradicionais de texto. Mesmo quando compactados, os dados ainda sim ocupam um espaço significativo e demandam esforço considerável de processamento. No meu caso eu gosto muito de interagir com IAs como o chatGPT, Gemini e vejo que eles estão ganhando cada vez mais capacidade de manter uma contextualização coesa sobre os diálogos, mais especificamente, gosto do chatGPT por que é possível ver as informações que foram armazenadas a longo prazo e as configurações do programa deixam que você possa apaga-las sem problemas. Isso me fez pensar que “Mas e se eu não quisesse apaga-las? e se eu quisesse ter uma IA local que armazenasse meus dados?” infelizmente meu computador não é dos melhores para a função de emular uma IA e nem tenho um HD com mais de 2tb disponível, o que me levou a pensar “Será que não tem um jeito eficiente de armazenar isso? algo que seja mais rápido e pratico? uma língua que seja boa para ter esses dados?” isso me levou a pensar “Se eu posso representar coisas em sistemas mais compactos como binário e hexadecimal, por que eu não posso representar uma lingua em hexadecimal?” por exemplo, na frase

João casou com Maria ontem à noite

Essa sentença em UTF-8, ocupa cerca de 264 bits, se pudesse compactá-la usando uma tabela semântica em hexadecimal, o mesmo conteúdo poderia ser armazenado como:

FF 42 30 31 FF FF 30 A1 20 31 1A 24 FF
[noticia joao maria][joao casou com maria ontem noite] - algo equivalente a esse formato

Nesse exemplo, o espaço ocupado seria de cerca de 104 bits. Nessa lógica pensei, se pudéssemos traduzir para códigos semânticos compactos, teríamos em teoria um ganho significativo no espaço de armazenamento. Em sistemas que lidam com volumes massivos de texto, essa mudança poderia ser de grande valor.


Objetivo da minha pesquisa

Com isso em mente, pensei em desenvolver um sistema onde um valor em hexadecimal delimitaria o inicio e o fim da instrução, da mesma forma que usamos ( ) ou { }, dentro desse encapsulamento ele trabalharia diretamente com esse padrão tabelado de hexadecimais para trabalhar especificamente com dados textuais interpretados por IA, isso evitaria conflitos com padrões já existentes como ASCII ou Unicode. Para identificação e tratativa do texto, além da tradução, ele teria um cabeçalho que funcionaria como metadados para classificações e informações que permitam a IA contextualizar o armazenamento como, se é um documento, um log, uma conversa, uma transcrição, entre outros. Chegando a um resultado quero comparar o armazenamento e o processamento gerado em hexadecimal com um padrão comum que empresas costumam utilizar no seu cotidiano e o reverso, quanto tempo uma IA demora para consultar e extrair os dados se colocarmos um ao lado do outro.

Possíveis aplicações

Minha expectativa é que isso seja favorável para o armazenamento de grandes volumes de dados, sistemas de transmissão de dados e treinamento de IAs, pois caso isso seja possível, manter a semântica de uma palavra, bastaria apenas que um NPL traduzisse de volta de um hexadecimal para qualquer língua que estivesse programada. Eu gostaria de saber, o que vocês acham dessa proposta? quais criticas ou sugestões vocês podem me dar? alguém conhece algo parecido ou que ja tenha sido feito? vale a pena propor essa pesquisa para minha faculdade?

Carregando publicação patrocinada...
1

Meus 2 cents:

  1. As IAs trabalham por tokens, entao, porque nao armazenar direto os tokens ao inves das sentencas ?

  2. Caso queira seguir direto na questao do "hexa semantico", talvez um caminho seja tranformar as sentencas em seu equivalente fonetico - o que ganha um extra que pode ser utilizado com qualquer lingua (mais ou menos, mas voce entendeu)

2.1. tambem poderia ter algum ganho aqui usando dicionario e compactacao zstd

 OBS: um pouco mais sobre compactacao usando dicionarios aqui: 

https://www.debugbear.com/blog/shared-compression-dictionaries

  1. Como lida com IA, talvez dar uma checada em "taxonomia de bloom" para tentar algum insight diferente.
1

Cara eu cheguei a olhar taxonomia de bloom antes de responder e eu nem sabia que isso existia, confesso que pensei em tokenizacao mas o que me limitou a respeito disso é meu próprio conhecimento, apesar de entender, eu nao sei na pratica como a tokenizacao funciona entao pensei mais como uma linguagem humana mesmo, como temos portugues e temos dicionarios e recursos, essa foi a ideia. Honestamente eu nao sei se o resultado dessa pesquisa seria positivo ou negativo, mas foi a ideia que eu tive pra me envolver com pesquisa pela primeira vez na minha facool, parecia promissor.

1

O problema disso é limitar o número de frases, como você atrela "joao casou com maria ontem noite" com "noticia joao maria" outras "noticia joao maria" ficam como? Por exemplo:

"joao jantou com maria ontem noite"

Como fica?

Uma forma mais generica é identificar e tratar palavras removendo diacríticos, preposição direta e modo por exemplo:

  • João: Substantivo próprio (nome de pessoa)
  • casou: Verbo (pretérito perfeito do indicativo)
  • com: Preposição
  • Maria: Substantivo próprio (nome de pessoa)
  • ontem: Advérbio de tempo
  • à: Preposição + artigo definido (a preposição "a" combinada com o artigo "a", formando "à")
  • noite: Substantivo comum (refere-se a um período do dia)

Viraria:

  • joao: Substantivo
  • casar: Verbo
  • com: Preposição
  • maria: Substantivo
  • ontem: Advérbio de tempo
  • noite: Substantivo

E você reordenaria por generalização:

  • casar: Verbo
  • com: Preposição
  • ontem: Advérbio

Por fim você armazena um padrão

%0 %1 com %2 ontem %3

Parece disperdício mas armazenando padrões o que você passa para obter a frase original são apenas indices para uma função, por exemplo (números randomicos para ilustrar) para você obter de volta a frase seria:

F5 João E3 Maria A5 noite

Vamos dizer que nosso padrão está no indice F5, E3 seja o verbo casar (no infinitivo), A5 ontem

E3 é um verbo, se você casa ou dança você casa ou dança com alguém,

%0 = João,
%1 = E3, que expande para "casou com"
%2 = Maria
A5 = expande para ontem a
%3 = noite

Ok mas vamos testar o desperdício, em E7 armazenamos o verbo jantar

F5 Marcos E7 Débora A5 noite

%0 = Marcos,
%1 = E3, que expande para "jantou com"
%2 = Débora
A5 = expande para ontem a
%3 = noite

Então armazenando um padrão e as palavras separadas temos de fato um uso maior de bytes na memória, porém um mecanismo muito mais versátil que cresce muito mais lentamente e de forma deduplicada

1

Cara eu curti a ideia de padrões reutilizáveis, eu tava imaginando algo mais parecido com um dicionário mesmo, onde as palavras tão catalogadas em hexadecimal mesmo e através de metadados a IA escreveria as informações necessárias pra recuperação da informação, mas esse ponto me deu o que pensar, vlw :)

1