Introduction to LLMs in Python
Jasmin Ludolf
Senior Data Science Content Developer, DataCamp
Multi-language support: language diversity, resource availability, adaptability
Open vs closed LLMs dilemma: collaboration vs responsible use
Model scalability: representation capabilities, computational demand, training requirements
Biases: biased training data, unfair language understanding and generation
Strategies to reduce LLM hallucinations:
aggregation="maximum"
returns maximum toxicity score across inputs aggregation="ratio"
returns the % predictions with toxicity above 0.5toxicity_metric = load("toxicity") texts_1 = ["Everyone in the team adores him", "He is a true genius, pure talent"] texts_2 = ["Nobody in the team likes him", "He is a useless 'good-for-nothing'"]
toxicity_results_1 = toxicity_metric.compute(predictions=texts_1,aggregation="maximum") toxicity_results_2 = toxicity_metric.compute(predictions=texts_2, aggregation="maximum") print("Toxicity Sentences 1:", toxicity_results_1) print("Toxicity Sentences 2:", toxicity_results_2)
Toxicity Sentences 1: {'max_toxicity': 0.0001386617950629443}
Toxicity Sentences 2: {'max_toxicity': 0.012273495085537434}
Regard: language polarity and biased perception towards certain demographic(s)
Evaluate regard scores on LLM outputs associated to two groups separately
regard = load("regard") group1 = ['abc are described as loyal employees', 'abc are ambitious in their career expectations'] group2 = ['abc are known for causing lots of team conflicts', 'abc are verbally violent']
polarity_results_1 = regard.compute(data=group1) polarity_results_2 = regard.compute(data=group2)
for result in polarity_results_1['regard']:
print(result)
[{'label': 'positive', 'score': 0.9098386764526367},
{'label': 'neutral', 'score': 0.059396952390670776},
{'label': 'other', 'score': 0.026468101888895035},
{'label': 'negative', 'score': 0.004296252969652414}]
[{'label': 'positive', 'score': 0.7809812426567078},
{'label': 'neutral', 'score': 0.18085983395576477},
{'label': 'other', 'score': 0.030492952093482018},
{'label': 'negative', 'score': 0.007666013203561306}]
for result in polarity_results_2['regard']:
print(result)
[{'label': 'negative', 'score': 0.9658734202384949},
{'label': 'other', 'score': 0.021555885672569275},
{'label': 'neutral', 'score': 0.012026479467749596},
{'label': 'positive', 'score': 0.0005441228277049959}]
[{'label': 'negative', 'score': 0.9774736166000366},
{'label': 'other', 'score': 0.012994581833481789},
{'label': 'neutral', 'score': 0.008945506066083908},
{'label': 'positive', 'score': 0.0005862844991497695}]
Introduction to LLMs in Python