AI Personal Learning
und praktische Anleitung
豆包Marscode1

Skalierung der Testzeitberechnung: Gedankenkette über Vektormodelle

Seit OpenAI das o1-Modell veröffentlicht hat.Skalierung der Testzeitberechnung(Scaling Reasoning) ist zu einem der heißesten Themen in KI-Kreisen geworden. Vereinfacht ausgedrückt ist es besser, mehr Rechenleistung in der Inferenzphase (d. h. wenn das große Sprachmodell eine Ausgabe generiert) zu verwenden, anstatt sie in der Pre- oder Post-Trainingsphase anzuhäufen. o1 Das Modell teilt ein großes Problem in eine Reihe kleinerer Probleme auf (d. h. Chain-of-Thought), so dass das Modell wie ein Mensch Schritt für Schritt denken kann, um verschiedene Möglichkeiten zu bewerten, eine detailliertere Planung vorzunehmen, über sich selbst nachzudenken, bevor es eine Antwort gibt, usw. Das Modell kann auch für die Berechnung der Antwort verwendet werden. Das Modell kann wie ein Mensch denken, verschiedene Möglichkeiten bewerten, eine detailliertere Planung vornehmen, über sich selbst nachdenken, bevor es eine Antwort gibt usw. Auf diese Weise muss das Modell nicht neu trainiert werden, und die Leistung kann nur durch zusätzliche Berechnungen während der Argumentation verbessert werden.Anstatt das Modell auswendig lernen zu lassen, sollten Sie es dazu bringen, mehr zu denken.-- Diese Strategie ist besonders effektiv bei komplexen Inferenzaufgaben und führt zu einer deutlichen Verbesserung der Ergebnisse. Die jüngste Veröffentlichung des QwQ-Modells von Alibaba bestätigt diesen technologischen Trend: Verbesserung der Modellfähigkeiten durch Erweiterung der Berechnungen zur Inferenzzeit.

👩‍🏫 Skalierung bezieht sich in diesem Papier auf die Vergrößerung der Rechenressourcen (z.B. Arithmetik oder Zeit) während des Rechenprozesses. Sie bezieht sich nicht auf horizontale Skalierung (verteiltes Rechnen) oder beschleunigte Verarbeitung (reduzierte Rechenzeit).

Wenn Sie auch das o1-Modell verwendet haben, werden Sie sicherlich feststellen, dass das Denken in mehreren Schritten zeitaufwändiger ist, da das Modell Denkketten aufbauen muss, um das Problem zu lösen.


Bei Jina AI konzentrieren wir uns mehr auf Embeddings und Reranker als auf Large Language Models (LLMs). Deshalb haben wir uns natürlich etwas einfallen lassen:Lässt sich das Konzept der "Gedankenketten" auch auf das Embedding-Modell anwenden?

Auch wenn es auf den ersten Blick nicht intuitiv erscheinen mag, wird in diesem Beitrag eine neue Perspektive erforscht und gezeigt, wie die Skalierung der Testzeitberechnung auf die folgenden Bereiche angewendet werden kannjina-clipum ein besseres Verständnis zu ermöglichen für Knifflige Out Of Domain (OOD)-Bilder Die Klassifizierung wird durchgeführt, um sonst unlösbare Aufgaben zu lösen.

Wir haben mit der Pokémon-Erkennung experimentiert, die für Vektormodelle immer noch eine ziemliche Herausforderung darstellt. Ein Modell wie CLIP ist zwar stark im Bild-Text-Abgleich, neigt aber zum Umkippen, wenn es auf Daten außerhalb der Domäne (OOD) stößt, die das Modell noch nie gesehen hat.

Wir haben jedoch festgestellt, dassDie Klassifizierungsgenauigkeit von Out-of-Domain-Daten kann verbessert werden, indem die Zeit für die Modellinferenz erhöht und eine Chain-of-Thinking-ähnliche Mehrziel-Klassifizierungsstrategie eingesetzt wird, die keine Modellabstimmung erfordert.

 

Fallstudie: Klassifizierung von Pokémon-Bildern

🔗 Google Colab: https://colab.research.google.com/drive/1zP6FZRm2mN1pf7PsID-EtGDc5gP_hm4Z#scrollTo=CJt5zwA9E2jB

Wir haben den TheFusion21/PokemonCards-Datensatz verwendet, der Tausende von Pokemon-Kartenbildern enthält.Dies ist eine Bildklassifizierungsaufgabedas ein beschnittenes Pokémon-Deck (ohne Textbeschreibung) eingibt und den richtigen Pokémon-Namen ausgibt. Dies ist jedoch für das CLIP-Embedding-Modell aus mehreren Gründen schwierig:

  • Pokémon-Namen und Aussehen sind relativ neu für das Modell, und es ist leicht, es mit einer direkten Kategorisierung zu überschlagen.
  • Jedes Pokémon hat seine eigenen optischen MerkmaleDie CLIPs werden besser verstanden, z. B. Formen, Farben und Posen.
  • Der Stil der Karten ist jedoch einheitlichAber die unterschiedlichen Hintergründe, Posen und Zeichenstile machen die Sache noch schwieriger.
  • Diese Aufgabe erfordertMehrere visuelle Merkmale gleichzeitig berücksichtigenwie die komplexe Gedankenkette im LLM.

Wir haben alle Textinformationen (Titel, Fußzeile, Beschreibung) von den Karten entfernt, damit die Modelle nicht schummeln und ihre Antworten direkt aus dem Text ablesen können, denn die Bezeichnungen für diese Pokémon-Klassen sind ihre Namen, z. B. Absol, Aerodactyl.

 

Grundlegende Methodik: direkter Ähnlichkeitsvergleich

Beginnen wir mit der einfachsten Basismethode, der Direkter Vergleich der Ähnlichkeit zwischen Pokémon-Bildern und -Namen.

Erstens ist es besser, alle Textinformationen von den Karten zu entfernen, damit das CLIP-Modell die Antwort nicht direkt aus dem Text erraten muss. Dann verwenden wir jina-clip-v1 im Gesang antworten jina-clip-v2 Das Modell kodiert das Bild und den Pokémon-Namen getrennt, um ihre jeweiligen Vektordarstellungen zu erhalten. Schließlich wird die Kosinus-Ähnlichkeit zwischen den Bild- und den Textvektoren berechnet, und der Name mit der höchsten Ähnlichkeit wird als das Pokémon betrachtet, das das Bild darstellt.

Dieser Ansatz ist gleichbedeutend mit einer Eins-zu-Eins-Übereinstimmung zwischen dem Bild und dem Namen, ohne dass andere Kontextinformationen oder Attribute berücksichtigt werden. Der folgende Pseudocode beschreibt den Vorgang kurz.

# 预处理
cropped_images = [crop_artwork(img) for img in pokemon_cards]  # 去掉文字,只保留图片
pokemon_names = ["Absol", "Aerodactyl", ...]  # 宝可梦名字# 用 jina-clip-v1 获取 embeddings
image_embeddings = model.encode_image(cropped_images)
text_embeddings = model.encode_text(pokemon_names)

# 计算余弦相似度进行分类
similarities = cosine_similarity(image_embeddings, text_embeddings)
predicted_names = [pokemon_names[argmax(sim)] for sim in similarities]  # 哪个名字相似度最高,就选哪个

# 评估准确率
accuracy = mean(predicted_names == ground_truth_names)

Fortgeschrittene: Anwendung von Gedankenketten auf die Bildklassifizierung

Statt Bilder und Namen direkt zuzuordnen, haben wir diesmal die Pokémon-Erkennung in mehrere Teile aufgeteilt, genau wie beim Spiel "Pokémon Connect".

Wir definierten fünf Gruppen von Schlüsselattributen: Primärfarbe (z. B. "weiß", "blau"), Primärform (z. B. "ein Wolf", "ein geflügeltes Reptil"), Schlüsselmerkmale (z. B. "ein weißes Horn", "große Flügel"), Körpergröße (z. B. "vierbeinige Wolfsform ", "geflügelt und schlank"), und Hintergrundszenen (z. B. "Weltraum", "grüner Wald").

Für jeden Satz von Attributen haben wir ein spezielles Stichwort entworfen, z. B. "Der Körper dieses Pokémon ist hauptsächlich {} farbig", und dann die möglichen Optionen eingetragen.Anschließend berechnen wir mit Hilfe des Modells die Ähnlichkeitswerte für das Bild und jede Option und wandeln die Werte mithilfe der Softmax-Funktion in Wahrscheinlichkeiten um, die ein besseres Maß für die Zuverlässigkeit des Modells darstellen.

Die vollständige Gedankenkette (CoT) besteht aus zwei Teilen:classification_groups im Gesang antworten pokemon_rulesErsteres definiert den Fragerahmen: Jedes Attribut (z. B. Farbe, Form) entspricht einer Fragevorlage und einer Reihe möglicher Antwortoptionen. In der zweiten wird festgehalten, welche Optionen für jedes Pokémon zutreffen sollten.

Die Farbe von Absol sollte zum Beispiel "weiß" und seine Form "Wolf" sein. Wir werden später darüber sprechen, wie man eine vollständige CoT-Struktur aufbaut, und das folgende pokemon_system ist ein konkretes Beispiel für eine CoT:

pokemon_system = {
    "classification_cot": {
        "dominant_color": {
            "prompt": "This Pokémon's body is mainly {} in color.",
            "options": [
                "white",    # Absol, Absol G
                "gray",     # Aggron
                "brown",    # Aerodactyl, Weedle, Beedrill δ
                "blue",     # Azumarill
                "green",    # Bulbasaur, Venusaur, Celebi&Venu, Caterpie
                "yellow",   # Alakazam, Ampharos
                "red",      # Blaine's Moltres
                "orange",   # Arcanine
                "light blue"# Dratini
            ]
        },
        "primary_form": {
            "prompt": "It looks like {}.",
            "options": [
                "a wolf",         # Absol, Absol G
                "an armored dinosaur",  # Aggron
                "a winged reptile",     # Aerodactyl
                "a rabbit-like creature", # Azumarill
                "a toad-like creature",   # Bulbasaur, Venusaur, Celebi&Venu
                "a caterpillar larva",    # Weedle, Caterpie
                "a wasp-like insect",     # Beedrill δ
                "a fox-like humanoid",     # Alakazam
                "a sheep-like biped",      # Ampharos
                "a dog-like beast",        # Arcanine
                "a flaming bird",          # Blaine's Moltres
                "a serpentine dragon"      # Dratini
            ]
        },
        "key_trait": {
            "prompt": "Its most notable feature is {}.",
            "options": [
                "a single white horn", # Absol, Absol G
                "metal armor plates",  # Aggron
                "large wings",         # Aerodactyl, Beedrill δ
                "rabbit ears",         # Azumarill
                "a green plant bulb",  # Bulbasaur, Venusaur, Celebi&Venu
                "a small red spike",   # Weedle
                "big green eyes",      # Caterpie
                "a mustache and spoons", # Alakazam
                "a glowing tail orb",  # Ampharos
                "a fiery mane",        # Arcanine
                "flaming wings",       # Blaine's Moltres
                "a tiny white horn on head" # Dratini
            ]
        },
        "body_shape": {
            "prompt": "The body shape can be described as {}.",
            "options": [
                "wolf-like on four legs",   # Absol, Absol G
                "bulky and armored",        # Aggron
                "winged and slender",       # Aerodactyl, Beedrill δ
                "round and plump",          # Azumarill
                "sturdy and four-legged",   # Bulbasaur, Venusaur, Celebi&Venu
                "long and worm-like",       # Weedle, Caterpie
                "upright and humanoid",     # Alakazam, Ampharos
                "furry and canine",         # Arcanine
                "bird-like with flames",    # Blaine's Moltres
                "serpentine"                # Dratini
            ]
        },
        "background_scene": {
            "prompt": "The background looks like {}.",
            "options": [
                "outer space",      # Absol G, Beedrill δ
                "green forest",     # Azumarill, Bulbasaur, Venusaur, Weedle, Caterpie, Celebi&Venu
                "a rocky battlefield", # Absol, Aggron, Aerodactyl
                "a purple psychic room", # Alakazam
                "a sunny field",     # Ampharos
                "volcanic ground",   # Arcanine
                "a red sky with embers", # Blaine's Moltres
                "a calm blue lake"   # Dratini
            ]
        }
    },

"pokemon_rules": {
"Absol": {
"dominant_color": 0,
"primary_form": 0,
"key_trait": 0,
"body_shape": 0,
"background_scene": 2
},
"Absol G": {
"dominant_color": 0,
"primary_form": 0,
"key_trait": 0,
"body_shape": 0,
"background_scene": 0
},
// ...
}
}

Kurz gesagt, anstatt nur einmal die Ähnlichkeiten zu vergleichen, führen wir nun mehrere Vergleiche durch, wobei wir die Wahrscheinlichkeiten der einzelnen Attribute kombinieren, um ein vernünftigeres Urteil fällen zu können.

# 分类流程
def classify_pokemon(image):
   # 生成所有提示
   all_prompts = []
   for group in classification_cot:
       for option in group["options"]:
           prompt = group["prompt"].format(option)
           all_prompts.append(prompt)

# 获取向量及其相似度
image_embedding = model.encode_image(image)
text_embeddings = model.encode_text(all_prompts)
similarities = cosine_similarity(image_embedding, text_embeddings)

# 将相似度转换为每个属性组的概率
probabilities = {}
for group_name, group_sims in group_similarities:
probabilities[group_name] = softmax(group_sims)

# 根据匹配的属性计算每个宝可梦的得分
scores = {}
for pokemon, rules in pokemon_rules.items():
score = 0
for group, target_idx in rules.items():
score += probabilities[group][target_idx]
scores[pokemon] = score

return max(scores, key=scores.get) # 返回得分最高的宝可梦

 

Komplexitätsanalyse der beiden Methoden

Analysieren wir nun die Komplexität: Nehmen wir an, wir wollen unter N Pokémon-Namen den Namen finden, der am besten zu dem gegebenen Bild passt:

Die Basismethode erfordert die Berechnung von N Textvektoren (einen für jeden Namen) und 1 Bildvektor, gefolgt von N Ähnlichkeitsberechnungen (Bildvektoren werden mit jedem Textvektor verglichen).Daher hängt die Komplexität der Benchmark-Methode hauptsächlich von der Anzahl der Berechnungen N der Textvektoren ab.

Und unsere CoT-Methode muss Q Textvektoren berechnen, wobei Q die Gesamtzahl aller Frage-Options-Kombinationen ist, und 1 Bildvektor. Danach müssen Q Ähnlichkeitsberechnungen (Vergleich der Bildvektoren mit den Textvektoren für jede Frage-Antwort-Kombination) durchgeführt werden.Daher hängt die Komplexität der Methode hauptsächlich von Q ab.

In diesem Beispiel sind N = 13 und Q = 52 (5 Gruppen von Attributen mit durchschnittlich etwa 10 Optionen pro Gruppe). Beide Methoden müssen Bildvektoren berechnen und Klassifizierungsschritte durchführen, und wir runden diese gemeinsamen Operationen in dem Vergleich ab.

Im Extremfall, wenn Q = N ist, degeneriert unsere Methode effektiv zu einer Benchmark-Methode. Der Schlüssel zur effektiven Erweiterung der Inferenzzeitberechnung ist also:

  • Entwerfen Sie das Problem, um den Wert von Q zu erhöhen.
  • Vergewissern Sie sich, dass jede Frage nützliche Hinweise enthält, die uns helfen, sie einzugrenzen.
  • Um den Informationsgewinn zu maximieren, ist es am besten, wenn sich die Informationen zwischen den Fragen nicht wiederholen.
Genau wie beim Spiel "Zwanzig Fragen" muss jede Frage sorgfältig entworfen werden, um die möglichen Antworten einzugrenzen und die Antwort schnell zu erraten.

Ergebnisse

Wir haben es an 117 Testbildern mit 13 verschiedenen Pokémon getestet. Die Ergebnisse der Genauigkeit sind wie folgt:

Es ist zu erkennen, dass die gleiche CoT-Klassifizierungsmethode bei dieser Art von ungewöhnlichen OOD-Daten beiden Modellen einen deutlichen Schub verleiht (15,25% bzw. 22,04%).

Es zeigt auch, dass einmalpokemon_systemEs ist richtig gebaut.Derselbe CoT kann direkt auf ein anderes Modell angewendet werden, ohne den Code zu ändern und ohne Feinabstimmung oder zusätzliches Training.

Interessant.jina-clip-v1Die Basisgenauigkeit des Modells bei der Pokémon-Klassifizierung ist dann höher (31,36%), da es auf dem LAION-400M-Datensatz mit Pokémon-Daten trainiert wurde. Während jina-clip-v2Das Modell wurde mit dem DFN-2B trainiert, einem qualitativ hochwertigeren Datensatz, aus dem aber auch mehr Daten herausgefiltert und wahrscheinlich auch Pokémon-bezogene Inhalte entfernt wurden, so dass die Basisgenauigkeit geringer ist (16,10%).

Moment, wie funktioniert diese Methode?

👩‍🏫 Lassen Sie uns noch einmal zusammenfassen, was wir getan haben.

Wir begannen mit fixen, vortrainierten Vektormodellen, die mit OOD-Problemen (Out-of-Distribution) bei Null-Stichproben nicht zurechtkamen. Aber als wir einen Klassifikationsbaum erstellten, konnten sie es plötzlich. Was ist das Geheimnis dahinter? Ist es so etwas wie die schwache Integration von Lernern beim traditionellen maschinellen Lernen?
Es ist erwähnenswert, dass unser Vektormodell nicht aufgrund des integrierten Lernens an sich, sondern aufgrund des im Klassifikationsbaum enthaltenen externen Domänenwissens von "schlecht" auf "gut" verbessert werden kann. Man kann Tausende von Fragen wiederholt mit null Stichproben klassifizieren, aber wenn die Antworten nicht zum Endergebnis beitragen, ist das sinnlos. Es ist wie ein Spiel mit zwanzig Fragen, bei dem man die Lösung mit jeder Frage immer weiter eingrenzen muss.

Es ist also dieses externe Wissen oder dieser Denkprozess, der der Schlüssel ist. - Wie in unserem Beispiel liegt der Schlüssel darin, wie das Pokemon-System aufgebaut ist.Dieses Fachwissen kann von Menschen oder von großen Sprachmodellen stammen.

Effizienter Aufbau eines Gedankenketten-SystemsWie gut die Berechnung beim Argumentieren funktioniert, hängt stark von denpokemon_systemQualität der.Es gibt viele Möglichkeiten, dieses CoT-System aufzubauen, von manuell bis vollautomatisch, jede mit ihren eigenen Vor- und Nachteilen.
1. manuelle Konstruktion
Dies ist der einfachste Ansatz: Manuelle Analyse des Pokémon-Datensatzes zur Erstellung von Attributgruppen, Hinweisen und Regeln. Fachleute müssen die wichtigsten visuellen Attribute wie Farbe, Form, Merkmale usw. ermitteln. Dann schreiben sie ein natürlichsprachliches Stichwort für jedes Attribut, listen alle möglichen Optionen auf und ordnen jedes Pokémon der entsprechenden Attributoption zu.Der regelbasierte Charakter dieses AnsatzesDas Volumen ist hoch und entspricht genau den Merkmalen des Datensatzes; es ist jedoch zu zeitaufwändig und mühsam, und es ist nicht einfach, eine große Datenmenge zu erhalten.
2) LLM-unterstützte Konstruktion
Es ist auch möglich, LLM zu verwenden, um ein Klassifizierungssystem zu erstellen, wobei wir LLM ein klares Stichwort geben müssen, das die folgenden Informationen enthalten muss: Attributgruppen auf der Grundlage visueller Merkmale, eine Stichwortvorlage, eine umfassende und sich gegenseitig ausschließende Liste aller möglichen Optionen und Regeln für jedes Pokémon.

我需要一个宝可梦分类系统。对于以下宝可梦:[Absol, Aerodactyl, Weedle, Caterpie, Azumarill, ...],创建一个包含以下内容的分类系统:

1. 基于以下视觉属性的分类组:
- 宝可梦的主要颜色
- 宝可梦的形态
- 宝可梦最显著的特征
- 宝可梦的整体体型
- 宝可梦通常出现的背景环境

2. 对于每个分类组:
- 创建一个自然语言提示模板,用 "{}" 表示选项
- 列出所有可能的选项
- 确保选项互斥且全面

3. 创建规则,将每个宝可梦映射到每个属性组中的一个选项,使用索引引用选项

请以 Python 字典格式输出,包含两个主要部分:
- "classification_groups": 包含每个属性的提示和选项
- "pokemon_rules": 将每个宝可梦映射到其对应的属性索引

示例格式:
{
"classification_groups": {
"dominant_color": {
"prompt": "This Pokemon's body is mainly {} in color.",
"options": ["white", "gray", ...]
},
...
},
"pokemon_rules": {
"Absol": {
"dominant_color": 0,  # "white" 的索引
...
},
...
}
}

LLM erstellt schnell einen ersten Entwurf, erfordert aber auch manuelle Überprüfung und Korrekturen.

Ein zuverlässigerer Ansatz wäre Kombinierte LLM-Generierung und manuelle Validierung. Der LLM kann zunächst eine erste Version erstellen, dann die Attributgruppierungen, Optionen und Regeln manuell überprüfen und ändern und die Änderungen dann an den LLM zurückgeben, damit dieser sie weiter verfeinert, bis er zufrieden ist. Dieser Ansatz stellt ein Gleichgewicht zwischen Effizienz und Genauigkeit her.

3. automatisierte Builds mit DSPy

Für vollautomatische Builds pokemon_systemdie mit DSPy iterativ optimiert werden können.

Beginnen wir mit einer einfachen pokemon_system Start, entweder manuell erstellt oder vom LLM generiert. Es wird dann mit den Daten aus der Auslassungsmenge ausgewertet, wobei die Genauigkeit als Feedback an DSPy gemeldet wird. pokemon_systemDieser Zyklus wird so lange wiederholt, bis die Leistung konvergiert und keine signifikante Verbesserung mehr zu verzeichnen ist.

Das Vektormodell ist während des gesamten Prozesses festgelegt. Mit DSPy ist es möglich, den besten Pokemon_system (CoT) Entwurf automatisch zu finden und ihn nur einmal pro Aufgabe abzustimmen.

 

Warum Skalierung der Testzeitberechnung bei Vektormodellen?

Es ist zu teuer, weil die Kosten für die ständige Vergrößerung der vortrainierten Modelle zu hoch sind.

Jina Embeddings Kollektion, vonjina-embeddings-v1undv2undv3 bis zu jina-clip-v1undv2Und jina-ColBERT-v1undv2Jede Aktualisierung erfordert größere Modelle, mehr vortrainierte Daten und steigende Kosten.

Nehmen Siejina-embeddings-v1Bei einer Veröffentlichung im Juni 2023 mit 110 Millionen Parametern wird die Schulung 5.000 bis 10.000 Dollar kosten. Bis zu dem Zeitpunkt jina-embeddings-v3Die Leistung hat sich zwar stark verbessert, aber immer noch hauptsächlich dadurch, dass Geld in die Ressourcen gesteckt wird. Die Ausbildungskosten für Spitzenmodelle sind von Tausenden von Dollar auf Zehntausende von Dollar gestiegen, und große Unternehmen müssen sogar Hunderte von Millionen Dollar ausgeben. Je mehr in die Vorschulung investiert wird, desto besser sind zwar die Modellergebnisse, aber die Kosten sind zu hoch, das Kosten-Nutzen-Verhältnis wird immer geringer, und bei der Entwicklung des endgültigen Modells muss die Nachhaltigkeit berücksichtigt werden.

Vektorielle Modellierung Skalierungsgesetz

 

Diese Abbildung zeigt dann das Vektormodell Scaling Law.Die horizontale Achse ist die Anzahl der Modellparameter und die vertikale Achse ist die durchschnittliche Leistung des MTEB. Jeder Punkt steht für ein Vektormodell. Die Trendlinie stellt den Durchschnitt aller Modelle dar, und die blauen Punkte sind mehrsprachige Modelle.

Die Daten wurden aus den 100 besten Vektormodellen des MTEB-Rankings ausgewählt. Um die Qualität der Daten zu gewährleisten, haben wir Modelle herausgefiltert, die keine Angaben zur Modellgröße gemacht haben, sowie einige ungültige Einreichungen.

Andererseits sind die Vektormodelle heute sehr leistungsfähig: mehrsprachig, multitaskingfähig, multimodal, mit ausgezeichneten Fähigkeiten zum Lernen von Nullproben und zum Befolgen von Anweisungen.Diese Vielseitigkeit eröffnet eine Vielzahl von phantasievollen Möglichkeiten für algorithmische Verbesserungen und Erweiterungen der Berechnung zum Zeitpunkt der Inferenz.

Die Schlüsselfrage ist:Wie viel sind die Nutzer bereit, für eine Suchanfrage zu zahlen, die sie wirklich interessiert?? Wenn die Inferenz eines festen, vorab trainierten Modells einfach etwas länger dauert, kann dies die Qualität der Ergebnisse drastisch verbessern.

Unserer Meinung nach.Die erweiterte Inferenzzeitberechnung birgt großes ungenutztes Potenzial im Bereich der Vektormodellierungwas wahrscheinlich ein wichtiger Durchbruch für die zukünftige Forschung sein wird.Anstatt ein größeres Modell anzustreben, ist es besser, mehr Aufwand in die Inferenzphase zu stecken und clevere Berechnungsmethoden zu erforschen, um die Leistung zu verbessern. -- Dies kann ein wirtschaftlicherer und effektiverer Weg sein.

zu einem Urteil gelangen

existieren jina-clip-v1/v2 Bei der experimentellen Durchführung wurden folgende Schlüsselphänomene beobachtet:

  1. wir Auf Daten, die vom Modell nicht gesehen werden und außerhalb des Bereichs liegen (OOD)(math.) GattungEs wurde eine bessere Erkennungsgenauigkeit erzielt, ohne dass eine Feinabstimmung oder ein zusätzliches Training des Modells erforderlich war.
  2. Die Bedienung des Systems erfolgt über das Iterative Verfeinerung der Ähnlichkeitssuche und der KlassifizierungskriterienDadurch wird eine feinere Unterscheidung möglich.
  3. durch die Einführung Dynamische Anpassung des Hinweises und iteratives Denken(analog zu einer "Gedankenkette"), wandeln wir den Denkprozess des Vektormodells von einer einzelnen Abfrage in eine komplexere Gedankenkette um.

Dies ist nur der Anfang, denn das Potenzial der Skalierung von Test-Time Compute geht weit darüber hinaus!gibt es noch viel Raum, der erforscht werden muss. So können wir beispielsweise effizientere Algorithmen entwickeln, um den Antwortraum einzugrenzen, indem wir iterativ die effizienteste Strategie auswählen, ähnlich wie bei der optimalen Lösungsstrategie im Spiel "Zwanzig Fragen". Durch die Ausweitung der Berechnungen während der Argumentationszeit können wir die Vektormodelle über die bestehenden Engpässe hinaus vorantreiben, komplexe und feinkörnige Aufgaben lösen, die früher unerreichbar schienen, und diese Modelle in breitere Anwendungen einführen.

Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " Skalierung der Testzeitberechnung: Gedankenkette über Vektormodelle
de_DEDeutsch