0. Zeit und Kosten sparen: Datensatzaufbau mit ChatGPT für die Datenbeschriftung
Um ein KI-Modell zu trainieren, benötigen Sie einen Datensatz, der aus 'Problemen' und 'Antworten' besteht. (basierend auf überwachtem Lernen)
Das Zuweisen von Antworten, also Labels, zu Daten wird als 'Beschriftung' bezeichnet.
1. Die Bedeutung von Daten, was macht hochwertige Daten aus?
Diejenigen, die KI-Modelle entwickeln, fühlen sich wahrscheinlich oft so, als ob "die Daten alles sind".
Natürlich sind für ein gutes KI-Modell verschiedene wichtige Faktoren wie aktuelle Algorithmen und leistungsstarke Rechenleistung erforderlich.
Aber wenn Sie ein Junior in den Bereichen KI und Daten sind, denke ich, dass es klug ist, zunächst den Wert der Daten zu beachten. Wie hochwertige Daten.
Was sind 'gute' Daten? Warum sind sie wichtig?
Die meisten aktuellen KI-Technologien basieren hauptsächlich auf neuronalen Netzwerkmodellen des Deep Learnings.
Diese künstlichen neuronalen Netze ahmen die Lernmethode des Menschen nach.
Bis ein neugeborenes Baby das Wort 'Mama' ausspricht,
das Bezeichnen einer Mutter als Mutter -> hochwertige Daten (genaue Beschriftung)
Sie haben wahrscheinlich viele Male beobachtet. -> viele Daten
Wenn das Baby die Mutter als Vater bezeichnet -> minderwertige Daten (ungenaue Beschriftung)
Das Baby würde sehr verwirrt sein.
Im Laufe der Zeit lernt das Baby, dass es die Person, die es geboren hat, pflegt und trägt, als 'Mama' bezeichnen sollte. -> Mustererkennung
Das Erlernen sinnvoller Muster aus Daten ist der Schlüssel zum Lernen von KI-Modellen.
Das, was dies erleichtert, sind hochwertige Daten.
Hochwertige Daten sind gute Lehrer für KI-Modelle.
2. Warum die Beschriftung an ChatGPT auslagern?
Wie bereits erwähnt, sind die Menge und Qualität der Daten wichtig.
Das Beschriften von großen Datenmengen mit guten Labels ist jedoch eine repetitive Aufgabe, die kontinuierliche Aufmerksamkeit erfordert und daher monoton und mühsam ist.
Deshalb beauftragen viele Regierungsbehörden und Unternehmen externe Unternehmen oder kurzfristige Teilzeitkräfte mit der Beschriftung von Daten.
In diesem Prozess sieht sich HashScraper zwangsläufig mit verschiedenen Problemen konfrontiert.
**Erstens, die Qualität der Daten kann nicht garantiert werden.
**Der Entwickler des KI-Modells hat eine bestimmte Ausrichtung für das KI-Modell,
und es gibt Standards für die Datenbeschriftung in dieser Ausrichtung.
Auch wenn diese Standards den Beschriftern detailliert mitgeteilt werden, kann es Abweichungen zwischen den Beschriftern geben,
und selbst wenn ein Beschrifter alleine arbeitet, kann die Konzentration während wiederholter Aufgaben nachlassen.
Es wird schwierig sein, perfekte Konsistenz zu erreichen, da Menschen Fehler machen (*menschliche Fehler treten auf)
**Zweitens, es entstehen hohe Kosten.
**Je mehr Daten verarbeitet werden müssen, und je schneller ein Datensatz erstellt werden muss, desto mehr erfahrene Arbeitskräfte werden benötigt.
Die Verwendung von ChatGPT zur Datenbeschriftung ist zwar nicht perfekt und kann bei komplexen Problemen Schwierigkeiten bei der Prompterstellung bereiten.
Jedoch wird jeder zustimmen, dass es in Bezug auf Kosteneinsparungen, Zeitersparnis und Konsistenz sehr effektiv ist.
Wenn Sie in einem verwandten Bereich tätig sind, müssen Sie sich unbedingt mit großen Sprachmodellen vertraut machen und lernen, wie man mit ihnen interagiert.
Prompt-Engineering wird meiner Meinung nach zu einer grundlegenden Fähigkeit zur Steigerung der Arbeitsleistung werden.
3. Datenbeschriftung mit ChatGPT
Angenommen, Sie erstellen einen Datensatz für die Gefühlsanalyse.
3.1 Erhalt eines OpenAI-API-Schlüssels
In diesem Beitrag werden wir die Beschriftung nicht im Web durchführen, sondern die API von ChatGPT nutzen.
Melden Sie sich zunächst über den folgenden Link bei OpenAI an und registrieren Sie eine Zahlungsmethode für die API-Aufrufgebühren.
https://platform.openai.com/
Anschließend müssen Sie den API-Schlüssel herunterladen.
Nach dem Erstellen des API-Schlüssels sollten Sie ihn unbedingt separat speichern.
Da er nur einmal angezeigt wird, müssen Sie ihn erneut erstellen, wenn Sie ihn vergessen, was ein Problem darstellen könnte.
3.2 Prompterstellung
text = '맛있는 거 먹어서 기분이 너무 좋다.' # 감정 분석 대상 텍스트
prompt = f'''You're an assistant, labeling data on a consistent basis.
Label the given text with one of the following sentiments: Positive, Negative, or Neutral.
If you can't determine a sentiment, label the text as Neutral.
Do not enclose your output in double or single quotes, just the label.
Follow the example to analyze the sentiment.
given text: 나 너무 우울해
sentiment: Negative
given text: 오늘 아침 일찍 출근했다.
sentiment: Neutral
given text: {text}
sentiment: '''
Hier sind einige Tipps zur Prompterstellung:
- In Englisch verfassen
Stand August 2023 gibt es eine Tokenbeschränkung für Sprachmodelle.
Sie können keine unbegrenzt langen Fragen stellen, und je länger die Token sind, desto höher sind die Kosten.
ChatGPT ist am effizientesten in Bezug auf Token für Englisch.
Einfach ausgedrückt, wenn Sie dieselbe Frage stellen, fallen bei einer Frage in Englisch weniger Kosten an.
Außerdem hat sich gezeigt, dass ChatGPT in Bezug auf Englisch die beste Leistung erbringt.
- ChatGPT eine Rolle zuweisen
Bevor Sie Anweisungen für ChatGPT schreiben, weisen Sie ihm eine Rolle zu.
- Beispiele bereitstellen
Geben Sie Anleitungen zum Ausgabeformat und zur Methode.
Dies wird auch als Few-shot Learning bezeichnet.
- Detailliert, aber klar formulieren
Dies dient der Effizienz der Token und der Förderung genauer Antworten.
Geben Sie eine detaillierte Erklärung, aber formulieren Sie sie so klar und einfach wie möglich.
Verfassen Sie Ihren Prompt unter Berücksichtigung der obigen Punkte.
3.3 API-Antwort anfordern (Parameter einstellen)
response = openai.ChatCompletion.create(
model='gpt-3.5-turbo',
temperature=0,
messages=[
{"role": "user", "content": prompt}
]
)
sentiment = response.choices[0].message['content']
print(f'문장: {text}\n감정: {sentiment}')
문장: 맛있는 거 먹어서 기분이 너무 좋다.
감정: Positive
Wenn Sie den Code wie er ist ausführen, sollten Sie das gleiche Ergebnis erhalten.
Es ist ratsam, einige der Parameter genauer zu betrachten.
- Temperatur
Dies ist der wichtigste Parameter.
Dieser Parameter steuert die Vielfalt der Antworten des Modells.
Je höher die Temperatur, desto vielfältiger und kreativer sind die Antworten, und je niedriger die Temperatur, desto konsistenter sind die Antworten.
Da wir 'Datenbeschriftung' machen, setzen wir ihn auf 0 (den niedrigsten Wert).
Bei der Generierung von Antworten bewertet das Sprachmodell die Wahrscheinlichkeit verschiedener Antworten.
Mit 'temperature=0' wird die Antwort mit der höchsten Wahrscheinlichkeit ausgewählt. Wenn Sie komplexere Fragen wiederholen, werden Sie feststellen, dass bei 'temperature=0' dieselbe Antwort wiederholt wird.
Und warum wir die Datenbeschriftung nicht im Web durchgeführt haben, liegt daran, dass:
1) Für die Beschriftung einer großen Menge an Daten ist eine Codierung für wiederholte Aktionen erforderlich.
2) Die Temperatur von ChatGPT, die wir im Web verwenden, ist festgelegt und nicht anpassbar.
- Rollen der Nachrichten: Benutzer, Assistent, System
Im obigen Code wurde nur die Nachricht des 'Benutzers' verfasst, aber es gibt tatsächlich drei Nachrichten: 'Benutzer', 'Assistent' und 'System'.
In der 'Benutzer'-Nachricht sollten Sie dem ChatGPT die Fragen oder Anweisungen des Benutzers mitteilen.
Die 'Assistent'-Nachricht ist eine Nachricht, mit der ChatGPT auf vorherige Gesprächsinhalte Bezug nehmen kann.
Wenn Sie mit ChatGPT im Web sprechen, können Sie feststellen, dass ChatGPT sich an vorherige Gespräche erinnert. Dies ist möglich, weil die vorherigen Gesprächsinhalte ChatGPT zusammen mit der Benutzerfrage übermittelt werden. Daher ist dies für die Beschriftungsarbeit nicht erforderlich.
Die 'System'-Nachricht legt das Verhalten von ChatGPT fest.
Obwohl wir die Rolle von ChatGPT in der 'Benutzer'-Nachricht festgelegt haben, können Sie diese Informationen auch in der 'System'-Nachricht angeben. Für diese einfache Beschriftungsarbeit ist es jedoch nicht unbedingt erforderlich, eine separate Systemnachricht zu verfassen.
3.4 Wenn Sie eine große Menge an Daten beschriften müssen?
Die bisherigen Schritte haben gezeigt, wie ein einzelnes Datenelement beschriftet wird. Wenn Sie über die entsprechenden Entwicklerfähigkeiten verfügen, sollte das Beschriften großer Datenmengen nicht allzu schwierig sein.
Es ist jedoch wichtig, Fehler bei der API-Aufrufverarbeitung zu behandeln, da Fehler häufig auftreten, wenn in kurzer Zeit zu viele Aufrufe erfolgen oder die Netzwerkverbindung schlecht ist.
def sentiment_analyze(text):
prompt = f'''You're an assistant, labeling data on a consistent basis.
Label the given text with one of the following sentiments: Positive, Negative, or Neutral.
If you can't determine a sentiment, label the text as Neutral.
Do not enclose your output in double or single quotes, just the label.
Follow the example to analyze the sentiment.
given text: 나 너무 우울해
sentiment: Negative
given text: 오늘 아침 일찍 출근했다.
sentiment: Neutral
given text: {text}
sentiment: '''
try:
response = openai.ChatCompletion.create(
model='gpt-3.5-turbo',
temperature=0,
messages=[
{"role": "user", "content": prompt}
]
)
sentiment = response.choices[0].message['content']
return sentiment
except:
sentiment = 'error'
return sentiment
df['label'] = df['text'].apply(sentiment_analyze)
4. Wie hoch sind die Kosten?
Stand August 2023 sind die hauptsächlich verwendeten Modelle 'gpt-3.5-turbo' und 'gpt-4'.
Für einfache Klassifizierungsdatensätze wie das Beispiel der Gefühlsanalyse reicht das 3.5-Modell aus.
Basierend auf dem 'gpt-3.5-turbo' Modell betragen die Kosten für Benutzerfragen 0,0015 Dollar pro 1.000 Token,
und für die Antworten von GPT fallen 0,002 Dollar pro 1.000 Token an.
Der im Beispiel verwendete Prompt hat nur etwa 200 Token.
Mit grob geschätzten 3 Dollar können Sie etwa 10.000 Datensätze für die Gefühlsanalyse beschriften.
Bei komplexeren Problemen wird die Prompterstellung detaillierter und komplexer, und die Verwendung des 3.5-Modells kann an seine Grenzen stoßen.
In solchen Fällen, in denen viele Dinge mit dem gpt4-Modell gelöst werden können, ist es wichtig, dass Sie eine fundierte Entscheidung treffen, da die Kosten 20-30 Mal höher sind.
5. Fazit
Für einfache repetitive Beschriftungsaufgaben gibt es keinen Grund, die Verwendung von ChatGPT in Frage zu stellen, wenn Kosten und Leistung berücksichtigt werden. Wenn Sie jedoch komplexere Aufgaben haben, die den Einsatz des GPT4-Modells erfordern, müssen Sie sorgfältig über die Kosten nachdenken.
Es gibt auch Nachteile wie die Beschränkung auf textbasierte Datensätze, die Abhängigkeit von den Preisen von OpenAI und die Schwierigkeit, ein KI-Modell zu erstellen, das die Leistung des GPT-Modells übertrifft.
Dennoch entwickelt sich das Open-Source-Feld schnell weiter, und diese Nachteile sollten in absehbarer Zeit behoben werden können.
Beim Aufbau von Textdatensätzen halte ich es für wichtig, dies als Priorität vor menschlichen Beschriftungskräften zu betrachten.
ChatGPT ist ein Assistent, der zu niedrigen Kosten arbeitet und Ihnen bei Ihrer Arbeit hilft, wenn Sie nicht aufhören.
Ich hoffe, dass Sie ihn gut nutzen und Ihre Ziele erreichen können.




