• Geeks' Blog

How to open XLSB files in Pentaho Kettle

Pentaho PDI/Kettle is not able to open Excel XLSB (binary format) files by default. However because Pentaho is a fantastic bridge between different technologies, you can use Python script step to accomplish this task. This short tutorial demonstrates how to open xlsb file and how to generate rows for further steps in Pentaho transformation.

CPython Script Executor plugin

To execute Python code in Pentaho you need CPython Script Executor plugin. This plugin can be easily downloaded from Pentaho Marketplace [menu: Tools => Marketplace]. Start again Pentaho after installing this plugin.

Yes, you need Python to be installed on you PC but also some Python packages like pandas, scikit-learn, matplotlib and pyxlsb. Some of these libraries are not required to handle XLSB files yet because CPython plugin was written to work with "Machine Learning" projects it is required to download them.

Pentaho Data Integration (PDI) version 9.4 or later does not have a Marketplace for several key reasons, mainly stemming from the development direction of this tool and Hitachi Vantara's (the owner of Pentaho) approach to managing the ecosystem of plugins and extensions. You have to manually download and install this plugin. Download latest version (quite old yet still working) from link. Unzip to 'plugins' directory. Restart Pentaho PDI.

Pyxlsb Python package

Pyxlsb parser [homepage] is needed to open XLSB file. Just install it with pip install pyxlsb command. Example of simple code to read XLSB file:

import pandas as pd
from pyxlsb import open_workbook as open_xlsb

df = []

with open_xlsb('some.xlsb') as wb:
    with wb.get_sheet(1) as sheet:
        for row in sheet.rows():
            df.append([item.v for item in row])

df = pd.DataFrame(df[1:], columns=df[0])

Więcej…

Uruchamianie zaawansowanego wyszukiwania RAG za pomocą Neo4j

Obecnie aplikacje wykorzystujące technologię generowania rozszerzonego wyszukiwania (RAG) można wdrożyć w ciągu zaledwie kilku minut. Większość aplikacji RAG, takich jak przeszukiwanie i streszczanie PDF czy innego dokumentu tekstowego wykorzystuje podstawowe wyszukiwanie podobieństw wektorowych w celu pobrania odpowiednich informacji z bazy danych i przekazania ich do LLM w celu wygenerowania ostatecznej odpowiedzi.

Jednak podstawowe wyszukiwanie wektorów nie jest wystarczająco niezawodne, aby obsłużyć wszystkie przypadki użycia. Proces wyszukiwania podobieństwa wektorów porównuje jedynie treść semantyczną elementów na podstawie wspólnych słów i pojęć, bez względu na inne aspekty danych. Aplikacja RAG oparta na podstawowym wyszukiwaniu wektorowym nie będzie integrować kontekstu ze strukturą danych w celu zaawansowanego rozumowania.

W tym poście na blogu zobaczysz inną metodę tworzenia aplikacji RAG, która korzysta z kontekstu danych, aby odpowiedzieć na bardziej złożone pytania i wziąć pod uwagę szerszy kontekst. 

Dokumenty nadrzędne i podrzędne

Termin "dokument" odnosi się zazwyczaj do tekstowych lub multimedialnych treści, które są analizowane, indeksowane i przetwarzane przez modele językowe w celu wydobycia znaczenia, informacji lub cech charakterystycznych. Kiedy mówimy o "dokumencie" w kontekście wektorowego wyszukiwania, mamy na myśli reprezentację takiego zasobu, który może być analizowany i manipulowany przez algorytmy "sztucznej inteligencji" w celu przetwarzania, analizy lub ekstrakcji informacji.

Przy indeksowaniu dokumentów trzeba zmierzyć się z co najmniej dwoma problemami. Pierwszy to ograniczenia modeli które tworzą wektory dokumentu ("embeddings") - treść może mieć ograniczoną długość. Drugi problem to znajdywanie podobieństw - wyszukiwanie wektorowe działa niezbyt dobrze jeśli mamy krótką sentencję i szukamy podobieństwa w długiej (istnieją specjalnie do tego celu zaprojektowane modele ale nawet one nie robią tego znakomicie).

Zatem bezpośrednie użycie wektora źródłowego dokumentu jest nieefektywne. Duże dokumenty można podzielić na mniejsze fragmenty, dla których obliczane są wektory, co poprawia indeksowanie w przypadku wyszukiwania podobieństw. Chociaż te wektory krótszej informacji lepiej sprawdzają się w znajdywaniu podobieństw (zwykle zapytanie jest krótkie), pobierany jest oryginalny duży dokument, ponieważ zapewnia lepszy kontekst dla odpowiedzi. W tej koncepcji mamy pełny dokument i powiązane z nim krótkie dokumenty w formie pytań związanych kontekstowo z tym dokumentem.

LLM może być użyty do wygenerowania tych pytań, na które odpowiada dokument. 
Nie indeksujemy samego dokumentu ale pytania, co zapewnia większe podobieństwo do pytań użytkowników. Dostarczenie właściwego dokumentu do modelu odbywa się poprzez znalezienia powiązanego z dokumentem pytania i pobrania pełneg dokumentu nadrzędnego w celu zapewnienia pełnego kontekstu, stąd nazwa „wyszukiwarka dokumentów nadrzędnych”.

Więcej…

Co to jest Retrieval-Augmented Generation, czyli RAG?

Przykład kodu w Python który wykorzystuje RAG by przeszukiwać poemat Pan Tadeusz Adama Mickiewicza.

Generowanie wspomagane wyszukiwaniem (RAG) to technika zwiększania dokładności i wiarygodności generatywnych modeli sztucznej inteligencji na podstawie faktów pobieranych ze źródeł zewnętrznych.

Aby zrozumieć najnowsze osiągnięcia w dziedzinie generatywnej sztucznej inteligencji, wyobraź sobie salę sądową.

Sędziowie rozpatrują i rozstrzygają sprawy w oparciu o swoje ogólne rozumienie prawa. Czasami sprawa – na przykład pozew o błąd w sztuce lub spór pracowniczy – wymaga specjalnej wiedzy specjalistycznej, dlatego sędziowie wysyłają urzędników sądowych do biblioteki prawniczej w poszukiwaniu precedensów i konkretnych spraw, które mogliby przytoczyć.

Czym jest Generatywna Sztuczna Inteligencja?

Generatywna Sztuczna Inteligencja umożliwia użytkownikom szybkie generowanie nowej treści na podstawie różnorodnych danych wejściowych. Dane wejściowe i wyjściowe dla tych modeli mogą obejmować tekst, obrazy, dźwięki, animacje, modele 3D lub inne rodzaje danych.

Jak działa Generatywna Sztuczna Inteligencja?

Modele Generatywnej Sztucznej Inteligencji wykorzystują sieci neuronowe do identyfikowania wzorców i struktur w istniejących danych w celu generowania nowej i oryginalnej treści.

Jednym z przełomów w modelach generatywnej sztucznej inteligencji jest zdolność do wykorzystania różnych podejść do uczenia, w tym uczenia nienadzorowanego lub półnadzorowanego podczas szkolenia. Dzięki temu organizacje mogą łatwiej i szybciej wykorzystywać duże ilości danych nieoznaczonych do tworzenia modeli podstawowych. Jak sugeruje nazwa, modele podstawowe można wykorzystać jako podstawę dla systemów sztucznej inteligencji, które mogą wykonywać wiele zadań.

Przykłady modeli podstawowych obejmują GPT-3 i Stable Diffusion, które pozwalają użytkownikom wykorzystać moc języka. Na przykład popularne aplikacje, takie jak ChatGPT, korzystające z GPT-3, umożliwiają użytkownikom wygenerowanie eseju na podstawie krótkiego tekstu zapytania. Z kolei Stable Diffusion pozwala użytkownikom generować fotorealistyczne obrazy na podstawie danych tekstowych.

Dlaczego mielibyśmy używać RAG skoro mamy wszystkowiedzące modele LLM?

Jednym z powodów jest to że modele LMM nie mają dostępu do danych poufnych, korporacyjnych lub po prostu niedostępnych jako źródła publicznych modeli. RAG pozwala zastosować algorytmy LLM do generowania treści właśnie z tych źródeł.

Więcej…

Czym są Large Language Models (LLMs) i jaki jest ich potencjał?

Duże Modele Językowe (LLM - Large Language Models) mogą odpowiadać na różnorodne zapytania ludzkie. Powstały w wyniku analizy ('szkolenia') ogromnej ilości informacji. Budowa takich modeli obejmuje co najmniej kilka faz takich jak przygotowanie danych, wstępne ich przetworzenie a następnie zastosowanie odpowiednich "tranformatorów" które potrafią obsłużyć różne języki, znaczenie analizowanych materiałów i utworzyć zbiór który jest "modelem językowym". Ten zbiór jest skondensowaną wiedzą i regułami które potrafią obsłużyć zapytania użytkowników. Coś jak encyklopedia Britannica. Co więcej, reguły zawarte w tym modelu mogą być użyte do analizy zewnętrznego źródła danych który nie był obecny podczas "trenowania" modelu - np. wewnętrzna informacja Twojej firmy.

Kiedy mowa o '"sztucznej inteligencji", magicznym terminem który się zawsze pojawia jest "trenowanie". Samo "trenowanie", czyli analiza materiału (źródłowych danych) to tylko jeden z etapów i etap ten nie byłby możliwy bez wcześniejszego zaprojektowania odpowiedniego transformatora (lub kilku). Transformatory mają różne zastosowanie, architekturę i przeznaczenie. Rezultaty ich pracy, np. właśnie "modele językowe" mają różna złożoność i różne przeznaczenie. Kiedy mówimy o "modelach" większość z nas wyobraża sobie natychmiast GPT, Google Gemini czy Ollama. Ale modelami mogą być także np. modele SBERT - są stosowane głównie do rozwiązywania problemów związanych z analizą semantyczną tekstu, w szczególności do zadań, w których istotne jest porównywanie i ocenianie semantycznej podobieństwa między zdaniami lub krótkimi tekstami. Wymieńcie dziesiątki lub nawet setki innych.

Tak więc modele językowe które zostały zbudowane za pomocą transformatorów same zawierają transformatory w celu realizacji zadań jakie postawiono przed tymi modelami. Np. za pomocą modeli SBERT możesz tworzyć osadzenia (embeddings) w wektorowych bazach danych. Przeczytaj więcej na ten temat. Te właśnie "osadzenia" odgrywają kluczową role kiedy wykorzystujesz Duży Model Językowy (LLM w języku angielskim) w koncepcji RAG - Retrieval-Augmented Generation.

Transformatory to rodzaj wielowarstwowej architektury , która przekształca lub zmienia sekwencję wejściową w sekwencję wyjściową. Rozważmy na przykład następującą sekwencję wejściową: „Jaki jest kolor nieba?” Model transformatora wykorzystuje wewnętrzną reprezentację matematyczną, która identyfikuje trafność i związek między słowami kolor, niebo i błękit. Wykorzystuje tę wiedzę, zawartą w modelu, do generowania danych wyjściowych: „Niebo jest niebieskie”. Warstwy transformatorów mogą być można układać jedną na drugiej, tworząc głębsze transformatory i potężne modele językowe. Transformatory biorą udział zarówno w tworzeniu modelu językowego jak i w są zawarte w nich samych by obsługiwać zapytania użytkowników.

Jak powstaje model językowy?

Jak złożone jest to przedsięwzięcie można prześledzić na przykładzie modelu llama firmy Meta (Facebook). W lutym 2023 r wydano Llamę. Już w lipcu 2023 r Llamę2, udostępniając ją bezpłatnie do celów badawczych i komercyjnych, z pewnymi skromnymi ograniczeniami. Prawdopodobnie jeszcze w roku 2024 pojawi się kolejna wersja - Llama3. Obecnie Meta do trenowania tych modeli wykorzystuje infrastrukturę która mniej więcej odpowiada 300 tysiącom wysokiej klasy komputerów osobistych. Ale to mało. Jak powiedział Zuckerberg:

 „Budujemy ogromną infrastrukturę obliczeniową, aby wspierać nasz przyszły plan działania… w sumie prawie 600 tys. odpowiedników mocy obliczeniowej H100”

To są ogromne liczby zarówno jeśli chodzi o ilość sprzętu jak i kwoty - ta inwestycja równałaby się 20 miliardom dolarów na chipy. "Trenowanie modelu" to nie jest zadanie dla Twojego biurkowego PC. Jeśli zainteresuje Cię czym jest słynny "H100", przeczytaj więcej o tym układzie na stronie Nvidia.

Rezultat "trenowania modelu" to prawdziwy diament; cała ta wiedza o której mowa powyżej potrafi być zawarta w zbiorze danych który często nie przekracza 4GB.

Więcej…

Strona 4 z 27

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
© 2025
Powered by DataGeeks & Human Intelligence