Inhaltsverzeichnis
Szenario 1: Listen-Fuzzy-Abfrage
Szenario 2: Filterung basierend auf Aggregationsergebnissen
场景三: 聚合以后取topK
Heim Technologie-Peripheriegeräte KI Starten Sie schnell mit ElasticSearch dsl mit ChatGPT

Starten Sie schnell mit ElasticSearch dsl mit ChatGPT

Jun 13, 2023 pm 03:20 PM
语言模型

借助ChatGPT快速上手ElasticSearch dsl

Als SQL-Spieler war ich, nachdem ich mit ElasticSearch in Kontakt gekommen war, über die seltsamen Schreibmethoden seiner DSL beunruhigt, z. B. in welchen Szenarien ein Bool-Filter verschachtelt werden sollte, wann eine Bool-Abfrage erforderlich ist und wann dies möglich ist es beseitigt werden. Bei der Fehlerbehebung ist es unvermeidlich, DSL manuell zu schreiben, und es treten häufig ES-Fehler auf.

Um dieses Problem zu lösen, habe ich versucht, ChatGPT für mich übersetzen zu lassen, und der Effekt war ziemlich gut. Schauen wir es uns je nach Szenario an.

Szenario 1: Listen-Fuzzy-Abfrage

Auf der Listenseite des B-seitigen Backend-Systems sehen wir normalerweise viele Filterfelder. Produktmanager ordnen die Funktion des Fuzzy-Matchings nach ID und Name häufig einem Filterfeld namens „Bessere Benutzererfahrung“ zu. Wenn es in SQL geschrieben ist, ist es sehr einfach:

select * from user where client_id = 123 anduser_id like '%张三%' or user_name like '%张三%';
Nach dem Login kopieren

Wenn es in MySQL gespeichert ist, kann das Hinzufügen des client_id-Index die Menge der gefilterten Daten erheblich reduzieren, und die Leistung wird nicht allzu schlecht sein.

Wenn die Datenmenge sehr groß ist, dann verwenden Sie ES. Wir können ChatGPT folgendermaßen fragen:

Beginnen Sie die Frage:

ES-Indexname „Benutzer“, es gibt drei Felder

  1. Benutzer-ID-Zeichenfolge
  2. Benutzername. Zeichenfolge
  3. Client-ID int

Ich möchte Datensätze mit den folgenden Bedingungen abfragen: client_id = 123 und (user_name = 'Zhang San' oder user_id = 'Zhang San'). Wie soll ich DSL schreiben?

Beginn der Antwort:

Um die Datensätze im „Benutzer“-Index abzufragen, die die folgenden Bedingungen erfüllen: client_id = 123 und (user_name = ‚Zhang San‘ oder user_id = ‚Zhang San‘), können Sie Um dies zu erreichen, verwenden Sie eine Bool-Abfrage in Kombination mit einer Begriffsabfrage. Hier ist ein Beispiel für die entsprechende DSL-Abfrage:

GET /user/_search{"query": {"bool": {"filter": [{"term": {"client_id": 123}},{"bool": {"should": [{"term": {"user_name": "张三"}},{"term": {"user_id": "张三"}}]}}]}}}
Nach dem Login kopieren

In dieser Abfrage verwenden wir eine Bool-Abfrage, um sicherzustellen, dass die angegebenen Kriterien zum Filtern der Dokumente verwendet werden.

In der Filterklausel haben wir zwei Bedingungen: Eine gilt für die Bedingung, dass der Wert des Felds „client_id“ 123 ist, unter Verwendung des Begriffs „Abfrage“. Die zweite Bedingung ist eine verschachtelte Bool-Abfrage, die eine Should-Klausel enthält. Die sollte-Klausel enthält zwei Begriffsabfragen: eine für das Feld „user_name“ und die andere für das Feld „user_id“, die beide prüfen, ob der Wert „Zhang San“ ist. Durch die Verwendung der Should-Klausel geben wir an, dass eine der Bedingungen zutreffen muss.

Diese DSL-Abfrage gibt Dokumentdatensätze zurück, deren client_id 123 ist und deren Benutzername „Zhang San“ oder die Benutzer-ID „Zhang San“ ist.

Ende der Antwort:

ChatGPT hat nicht nur die Antwort gegeben, sondern auch eine Erklärung abgegeben. Wir können einfach einige Änderungen am Index im Unternehmen vornehmen.

Szenario 2: Filterung basierend auf Aggregationsergebnissen

Basierend auf der Benutzertabelle oben fügen wir ein Ticket_ID-Feld hinzu, um die verarbeiteten Arbeitsaufträge darzustellen. Wir möchten die Benutzer herausfinden, die mehr als 100 Arbeitsaufträge bearbeitet haben. SQL kann wie folgt geschrieben werden:

select user_id, max(user_name) as user_name,count(ticket_id) as ticket_cnt from user where client_id = 123having count(ticket_id) > 100;
Nach dem Login kopieren

Ask ChatGPT:

Beginnen Sie mit der Frage:

ES-Indexname „Benutzer“, der die folgenden Felder enthält:

  1. user_id. string
  2. Benutzername string
  3. client_id int
  4. ticket_id

Aggregation nach user_id, Abfrage der user_id von count(ticket_id) > 100 und des user_name, der der user_id entspricht. Die Antwort beginnt: „user_id“-Feld Aggregation und Abfrage von „user_id“, die die Bedingung count(ticket_id) > erfüllt, und des entsprechenden „user_name“ können mithilfe der Begriffe Aggregation und Bucket_Selector-Pipeline-Aggregation in der Aggregationsabfrage implementiert werden. Hier ist das entsprechende DSL-Abfragebeispiel:

GET /user/_search{"size": 0,"aggs": {"users": {"terms": {"field": "user_id","size": 10,"min_doc_count": 101// 设置最小文档数,只返回 count(ticket_id) > 100 的聚合结果},"aggs": {"user_name": {"terms": {"field": "user_name","size": 1}},"ticket_count": {"value_count": {"field": "ticket_id"}},"bucket_filter": {"bucket_selector": {"buckets_path": {"count": "ticket_count"},"script": "params.count > 100"// 仅保留 count(ticket_id) > 100 的聚合桶}}}}}}
Nach dem Login kopieren

在这个查询中,我们使用了 terms 聚合对 "user_id" 字段进行分组,并在聚合结果中嵌套了 user_name 字段的 terms 聚合和 ticket_id 字段的 value_count 聚合。

在 terms 聚合中,我们设置了 min_doc_count 参数为 101,以仅返回满足 count(ticket_id) > 100 的聚合桶。这样可以过滤掉不满足条件的聚合结果。

最终,我们使用 bucket_selector 管道聚合来进行桶过滤,仅保留满足条件 params.count > 100 的聚合桶。这样,最终的聚合结果中将只包含满足条件的 "user_id" 和对应的 "user_name"。

请注意,根据您的具体需求,您可能需要根据实际情况调整聚合查询中的参数和设置,如设置合适的 size 值来控制返回的聚合桶数量等。

回复结束。

场景三: 聚合以后取topK

向ChatGPT提问:

提问开始:

ES index 名字 "user",包含以下字段:

  1. user_id string
  2. user_name string
  3. client_id int
  4. ticket_id

我要查询处理ticket数量top10 的 user_id 以及对应的user_name

回复开始:
要查询处理 ticket 数量排名前 10 的 "user_id",以及对应的 "user_name",可以使用 terms 聚合和 top_hits 子聚合来实现。以下是相应的 DSL 查询示例:

GET /user/_search{"size": 0,"aggs": {"top_users": {"terms": {"field": "user_id","size": 10,"order": {"ticket_count": "desc"}},"aggs": {"user_name": {"terms": {"field": "user_name","size": 1}},"ticket_count": {"value_count": {"field": "ticket_id"}},"top_user_hits": {"top_hits": {"size": 1}}}}}}
Nach dem Login kopieren

在这个查询中,我们使用了 terms 聚合对 "user_id" 字段进行分组,并按照 "ticket_count" 字段的降序对分组结果进行排序。

在 terms 聚合中,我们设置了 size 参数为 10,以仅返回前 10 个处理 ticket 数量最多的 "user_id"。

在每个聚合桶中,我们还嵌套了 user_name 字段的 terms 聚合和 ticket_id 字段的 value_count 聚合,分别用于获取对应的 "user_name" 和计算 ticket 数量。

此外,我们使用了 top_hits 子聚合来获取每个聚合桶中的匹配文档的详细信息。在这里,我们设置了 size 参数为 1,以仅获取每个聚合桶中的一条文档信息。

最终,聚合查询的结果将包含处理 ticket 数量排名前 10 的 "user_id",对应的 "user_name",以及每个用户最新的一条文档信息。

请注意,根据实际情况,您可能需要根据具体需求调整聚合查询中的参数和设置,如设置合适的 size 值来控制返回的聚合桶数量,以及添加其他的聚合或过滤条件等。

回复结束。

本着快速出活/快速解决问题的心态,ChatGPT确实提升了工作效率。不过在解决需求之后,还是要补补课,了解下ElasticSearch的用法和工作机制。因为ChatGPT是语言模型,一旦逻辑复杂起来,ChatGPT就开始瞎说了。

Das obige ist der detaillierte Inhalt vonStarten Sie schnell mit ElasticSearch dsl mit ChatGPT. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Tokenisierung in einem Artikel verstehen! Tokenisierung in einem Artikel verstehen! Apr 12, 2024 pm 02:31 PM

Sprachmodelle basieren auf Text, der normalerweise in Form von Zeichenfolgen vorliegt. Da die Eingabe in das Modell jedoch nur Zahlen sein kann, muss der Text in eine numerische Form umgewandelt werden. Die Tokenisierung ist eine grundlegende Aufgabe der Verarbeitung natürlicher Sprache. Sie kann eine fortlaufende Textsequenz (z. B. Sätze, Absätze usw.) entsprechend den spezifischen Anforderungen in eine Zeichenfolge (z. B. Wörter, Phrasen, Zeichen, Satzzeichen usw.) unterteilen. Die darin enthaltenen Einheiten werden als Token oder Wort bezeichnet. Gemäß dem in der Abbildung unten gezeigten spezifischen Prozess werden die Textsätze zunächst in Einheiten unterteilt, dann werden die einzelnen Elemente digitalisiert (in Vektoren abgebildet), dann werden diese Vektoren zur Codierung in das Modell eingegeben und schließlich an nachgelagerte Aufgaben ausgegeben erhalten Sie weiterhin das Endergebnis. Die Textsegmentierung kann entsprechend der Granularität der Textsegmentierung in Toke unterteilt werden.

Drei Geheimnisse für die Bereitstellung großer Modelle in der Cloud Drei Geheimnisse für die Bereitstellung großer Modelle in der Cloud Apr 24, 2024 pm 03:00 PM

Zusammenstellung|Produziert von Ich fange an, serverloses Cloud Computing zu vermissen. Ihre Anwendungen reichen von der Verbesserung der Konversations-KI bis hin zur Bereitstellung komplexer Analyselösungen für verschiedene Branchen und vielen anderen Funktionen. Viele Unternehmen setzen diese Modelle auf Cloud-Plattformen ein, da öffentliche Cloud-Anbieter bereits ein fertiges Ökosystem bereitstellen und dies der Weg des geringsten Widerstands ist. Allerdings ist es nicht billig. Die Cloud bietet darüber hinaus weitere Vorteile wie Skalierbarkeit, Effizienz und erweiterte Rechenfunktionen (GPUs auf Anfrage verfügbar). Es gibt einige wenig bekannte Aspekte der Bereitstellung von LLM auf öffentlichen Cloud-Plattformen

Um ein neues wissenschaftliches und komplexes Frage-Antwort-Benchmark- und Bewertungssystem für große Modelle bereitzustellen, haben UNSW, Argonne, die University of Chicago und andere Institutionen gemeinsam das SciQAG-Framework eingeführt Um ein neues wissenschaftliches und komplexes Frage-Antwort-Benchmark- und Bewertungssystem für große Modelle bereitzustellen, haben UNSW, Argonne, die University of Chicago und andere Institutionen gemeinsam das SciQAG-Framework eingeführt Jul 25, 2024 am 06:42 AM

Herausgeber | Der Frage-Antwort-Datensatz (QA) von ScienceAI spielt eine entscheidende Rolle bei der Förderung der Forschung zur Verarbeitung natürlicher Sprache (NLP). Hochwertige QS-Datensätze können nicht nur zur Feinabstimmung von Modellen verwendet werden, sondern auch effektiv die Fähigkeiten großer Sprachmodelle (LLMs) bewerten, insbesondere die Fähigkeit, wissenschaftliche Erkenntnisse zu verstehen und zu begründen. Obwohl es derzeit viele wissenschaftliche QS-Datensätze aus den Bereichen Medizin, Chemie, Biologie und anderen Bereichen gibt, weisen diese Datensätze immer noch einige Mängel auf. Erstens ist das Datenformular relativ einfach, die meisten davon sind Multiple-Choice-Fragen. Sie sind leicht auszuwerten, schränken jedoch den Antwortauswahlbereich des Modells ein und können die Fähigkeit des Modells zur Beantwortung wissenschaftlicher Fragen nicht vollständig testen. Im Gegensatz dazu offene Fragen und Antworten

Effiziente Parameter-Feinabstimmung umfangreicher Sprachmodelle – BitFit/Prefix/Prompt-Feinabstimmungsserie Effiziente Parameter-Feinabstimmung umfangreicher Sprachmodelle – BitFit/Prefix/Prompt-Feinabstimmungsserie Oct 07, 2023 pm 12:13 PM

Im Jahr 2018 veröffentlichte Google BERT. Nach seiner Veröffentlichung übertraf es die State-of-the-Art-Ergebnisse (Sota) von 11 NLP-Aufgaben und stellte damit einen neuen Meilenstein in der NLP-Welt dar In der Abbildung unten ist der Trainingsprozess des BERT-Modells dargestellt, rechts der Feinabstimmungsprozess für bestimmte Aufgaben. Unter anderem dient die Feinabstimmungsphase der Feinabstimmung, wenn sie anschließend in einigen nachgelagerten Aufgaben verwendet wird, wie z. B. Textklassifizierung, Wortartkennzeichnung, Frage- und Antwortsysteme usw. BERT kann auf verschiedene Arten feinabgestimmt werden Aufgaben ohne Anpassung der Struktur. Durch das Aufgabendesign „vorab trainiertes Sprachmodell + Feinabstimmung der nachgelagerten Aufgabe“ werden leistungsstarke Modelleffekte erzielt. Seitdem ist „Sprachmodell vor dem Training + Feinabstimmung der nachgelagerten Aufgabe“ zum Mainstream-Training im NLP-Bereich geworden.

RoSA: Eine neue Methode zur effizienten Feinabstimmung großer Modellparameter RoSA: Eine neue Methode zur effizienten Feinabstimmung großer Modellparameter Jan 18, 2024 pm 05:27 PM

Da Sprachmodelle in einem noch nie dagewesenen Ausmaß skaliert werden, wird eine umfassende Feinabstimmung für nachgelagerte Aufgaben unerschwinglich teuer. Um dieses Problem zu lösen, begannen Forscher, der PEFT-Methode Aufmerksamkeit zu schenken und sie zu übernehmen. Die Hauptidee der PEFT-Methode besteht darin, den Umfang der Feinabstimmung auf einen kleinen Satz von Parametern zu beschränken, um die Rechenkosten zu senken und gleichzeitig eine hochmoderne Leistung bei Aufgaben zum Verstehen natürlicher Sprache zu erzielen. Auf diese Weise können Forscher Rechenressourcen einsparen und gleichzeitig eine hohe Leistung aufrechterhalten, wodurch neue Forschungsschwerpunkte auf dem Gebiet der Verarbeitung natürlicher Sprache entstehen. RoSA ist eine neue PEFT-Technik, die durch Experimente mit einer Reihe von Benchmarks gezeigt hat, dass sie frühere Low-Rank-Adaptive- (LoRA) und reine Sparse-Feinabstimmungsmethoden mit demselben Parameterbudget übertrifft. Dieser Artikel wird näher darauf eingehen

Meta führt das KI-Sprachmodell LLaMA ein, ein groß angelegtes Sprachmodell mit 65 Milliarden Parametern Meta führt das KI-Sprachmodell LLaMA ein, ein groß angelegtes Sprachmodell mit 65 Milliarden Parametern Apr 14, 2023 pm 06:58 PM

Laut Nachrichten vom 25. Februar gab Meta am Freitag Ortszeit bekannt, dass es ein neues groß angelegtes Sprachmodell auf Basis künstlicher Intelligenz (KI) für die Forschungsgemeinschaft einführen wird und sich damit Microsoft, Google und anderen von ChatGPT angeregten Unternehmen anschließt, sich künstlicher Intelligenz anzuschließen . Intelligenter Wettbewerb. Metas LLaMA ist die Abkürzung für „Large Language Model MetaAI“ (LargeLanguageModelMetaAI), das Forschern und Einrichtungen in Regierung, Gemeinschaft und Wissenschaft unter einer nichtkommerziellen Lizenz zur Verfügung steht. Das Unternehmen stellt den Benutzern den zugrunde liegenden Code zur Verfügung, damit diese das Modell selbst optimieren und für forschungsbezogene Anwendungsfälle verwenden können. Meta gab an, dass das Modell Anforderungen an die Rechenleistung habe

Den größten ViT der Geschichte bequem trainiert? Google aktualisiert das visuelle Sprachmodell PaLI: unterstützt mehr als 100 Sprachen Den größten ViT der Geschichte bequem trainiert? Google aktualisiert das visuelle Sprachmodell PaLI: unterstützt mehr als 100 Sprachen Apr 12, 2023 am 09:31 AM

Der Fortschritt der Verarbeitung natürlicher Sprache ist in den letzten Jahren größtenteils auf groß angelegte Sprachmodelle zurückzuführen, die die Menge an Parametern und Trainingsdaten auf neue Höchstwerte bringen, und gleichzeitig werden die bestehenden Benchmark-Rankings geschlachtet! Beispielsweise veröffentlichte Google im April dieses Jahres das Sprachmodell PaLM (Pathways Language Model) mit 540 Milliarden Parametern, das Menschen in einer Reihe von Sprach- und Argumentationstests erfolgreich übertraf, insbesondere durch seine hervorragende Leistung in Lernszenarien mit wenigen Schüssen und kleinen Stichproben. PaLM gilt als Entwicklungsrichtung des Sprachmodells der nächsten Generation. Auf die gleiche Weise wirken visuelle Sprachmodelle tatsächlich Wunder, und die Leistung kann durch Erhöhen der Modellgröße verbessert werden. Natürlich, wenn es sich nur um ein multitaskingfähiges visuelles Sprachmodell handelt

BLOOM kann eine neue Kultur für die KI-Forschung schaffen, aber es bleiben Herausforderungen bestehen BLOOM kann eine neue Kultur für die KI-Forschung schaffen, aber es bleiben Herausforderungen bestehen Apr 09, 2023 pm 04:21 PM

Übersetzer |. Rezensiert von Li Rui |. Das BigScience-Forschungsprojekt hat kürzlich ein großes Sprachmodell BLOOM veröffentlicht. Auf den ersten Blick sieht es wie ein weiterer Versuch aus, OpenAIs GPT-3 zu kopieren. Was BLOOM jedoch von anderen großen Modellen natürlicher Sprache (LLMs) unterscheidet, sind seine Bemühungen, Modelle für maschinelles Lernen zu erforschen, zu entwickeln, zu trainieren und freizugeben. In den letzten Jahren haben große Technologieunternehmen groß angelegte Modelle natürlicher Sprache (LLMs) wie strenge Geschäftsgeheimnisse versteckt, und das BigScience-Team hat von Beginn des Projekts an Transparenz und Offenheit in den Mittelpunkt von BLOOM gestellt. Das Ergebnis ist ein groß angelegtes Sprachmodell, das studiert und studiert und jedem zugänglich gemacht werden kann. B

See all articles