Llama 2 LLM: Deployen & Fine-tunen op uw cloud

Gebouwd voor snelheid: ~10ms latentie, zelfs onder belasting
De razendsnelle manier om je modellen te bouwen, volgen en implementeren!
- Verwerkt 350+ RPS op slechts 1 vCPU — geen tuning nodig
- Productieklaar met volledige enterprise-ondersteuning
Het ChatGPT-moment van de open-sourcewereld is aangebroken: Meta heeft de nieuwste reeks open-source large language models uitgebracht, genaamd Llama 2 — een verzameling vooraf getrainde en gefine-tunede generatieve tekstmodellen variërend in grootte van 7 miljard tot 70 miljard parameters.
Interessante feiten & weetjes over Llama 2
- Llama 2 is getraind op publiek beschikbare onlinedata met ongeveer 2 biljoen tokens. Dit is meer dan 300x de gehele Engelstalige Wikipedia.
- Llama 2 is getraind op 1 miljoen menselijke annotaties — vergelijk dit met 15k gelabelde datasets voor Dolly van Databricks.
- De benodigde tijd om de 7B-, 13B- & 70B-varianten te trainen is gerapporteerd als respectievelijk 184k, 368k & 1,7M GPU-uren met A100-80GB. Dit komt interessant genoeg neer op ongeveer 1000 GPU-weken per 1B parameters. Dus 70 weken training als u 1000 GPU's parallel zou gebruiken voor het 70B-model.
- De GPU-kosten om deze modellen alleen al te trainen zouden respectievelijk ongeveer $ 800k, $ 1,5M en $ 8M bedragen. In totaal voor $ 10M aan GPU's voor de uiteindelijke trainingsrun! :)
- De pre-trainingsdata is statisch en bijgewerkt tot september 2022, maar is gefine-tuned met de nieuwste data tot juli 2023.
- Het context window is 4k voor de 3 varianten 7B, 13B & 70B.
Waarom is dit belangrijk voor u?
- Nou, om te beginnen is dit gratis beschikbaar voor onderzoek en commerciële doeleinden — het eerste model in zijn soort met een kwaliteit zoals ChatGPT, ondersteund door een groot techbedrijf, en vandaag nog klaar om te worden gedeployed & gefine-tuned. (Tenzij u >700M maandelijkse actieve gebruikers had in de voorafgaande kalendermaand; in dat geval dient u een licentie van Meta te verkrijgen om het te gebruiken!)
- De gefine-tunede versies, genaamd Llama-2-Chat, zijn geoptimaliseerd voor dialoogtoepassingen. Llama-2-Chat-modellen presteren beter dan open-source chatmodellen op de meeste benchmarks en zitten op hetzelfde niveau als enkele populaire closed-source modellen zoals ChatGPT en PaLM in menselijke evaluaties voor hulpvaardigheid en veiligheid.
- Voor al degenen die hebben gewacht op juridische en compliance-goedkeuringen voor het gebruik van commerciële closed-source diensten zoals OpenAI, en teleurgesteld waren door de responskwaliteit van eerdere generaties open-source LLM's: hier is uw antwoord. Belangrijker nog: het is een bevestiging van het feit dat open-source LLM's een blijver zijn en te allen tijde zullen blijven verbeteren.
Kwaliteitsbenchmarks van Llama 2
Llama 2 vertoont opmerkelijke prestaties op diverse LLM-benchmarks. Hier is een vergelijking tussen Llama- en ChatGPT-modellen:

Het Llama-2-70b-chat-hf-model benadert of overtreft zelfs de prestaties van GPT-3.5, het originele ChatGPT-model, op meerdere benchmarks. Meer details vindt u hier. Details over de datasets & taken vindt u in de bijlage.
Kosten van het gebruik van Llama 2 op een voorbeeldtaak
Velen die toepassingen op basis van OpenAI in productie hebben genomen, maken zich zorgen over de rekeningen en hoe duurzaam ze deze toepassingen kunnen opschalen. We hebben een vergelijking gemaakt van wat er nodig is om een Llama 2 te draaien en hoe dit zich verhoudt tot enkele OpenAI-modellen.
Voorbeeldtaak: Stel dat we de Engelstalige Wikipedia (6M artikelen, 1000 tokens per artikel) wilden nemen en deze wilden samenvatten tot de helft van de grootte met behulp van LLM's. Gedetailleerde berekeningen zijn te vinden in deze blog. Hier zijn enkele interessante inzichten over de kosten van deze taak met verschillende modellen:
- Dit doen met GPT-4 zou ongeveer $ 360k kosten.
- Dezelfde taak met de GPT-3 Davinci-variant (175B parameters) zou ongeveer $ 180K kosten, en als u een gefine-tunede variant van Davinci zou gebruiken, zou dat >$ 1M zijn.
- Als u in plaats daarvan het Curie-model (~7B parameters) zou gebruiken, zouden de kosten $ 18K bedragen en de gefine-tunede kosten ~$ 125k.
- Vergelijk dat met het model van vergelijkbare grootte, Llama 2 (7B-variant). Dat zou ~$ 2k kosten en de gefine-tunede versie daarvan ~$ 3k. Dat is een verschil in kosten van ongeveer 9x en 40x bij vergelijkbare modellen tussen respectievelijk vooraf getrainde en gefine-tunede versies.
Llama-2-13b-chat-model deployen
Het model is beschikbaar voor gebruik via Microsoft Azure, AWS en Huggingface. U kunt Llama-2-modellen ook deployen via TrueFoundry met minimale stappen.
U moet toegang hebben tot de Llama-2-modellen op Huggingface om deze te deployen op TrueFoundry. Meer informatie vindt u hier. De TrueFoundry model catalogue is bijgewerkt met de beste en nieuwste open-source LLM's. Met de model catalogue is alles vooraf geconfigureerd voor het deployen van de modellen en kunt u ze met één klik deployen naar uw eigen cloudinfra. Llama-2-modellen zijn binnenkort beschikbaar op de model catalogue voor een-klik-deployment. Maar in de tussentijd kunnen TrueFoundry-gebruikers Llama-2-modellen nog steeds deployen zoals hieronder beschreven.
- Klik op de pagina deployments op
New Deploymenten kiesService.

2. We kunnen de Text Generation Interface-bibliotheek van Huggingface gebruiken om dit model te deployen. Kies ervoor om de text-generation-inference image (ghcr.io/huggingface/text-generation-inference:0.9) te deployen en overschrijf het commando met het commando om het gewenste model te starten (text-generation-launcher --model-id meta-llama/Llama-2-13b-chat-hf):

3. Laten we nu het model-endpoint instellen. Het model wordt geserveerd op poort 80, dus laten we die openstellen:

4. Omdat de Llama-2-modellen alleen beschikbaar zijn via goedgekeurde accounts, moeten we de Huggingface API-key instellen als een omgevingsvariabele. De key moet HUGGING_FACE_HUB_TOKEN zijn.
Merk op dat we in de afbeelding indirect de Huggingface API-key gebruiken door een secret aan te maken op TrueFoundry. U kunt de waarde ook rechtstreeks plakken, maar dat raden we niet aan.

5. Ten slotte moeten we resources toewijzen zoals vereist door dit model. Ik heb ervoor gekozen om de 13b-chat-modelversie te deployen op een node met een A100 40GB. U kunt andere waarden als volgt configureren:

6. Klik op Submit en uw model wordt gedeployed en is beschikbaar op het endpoint dat u hebt ingesteld.
Inference uitvoeren met het gedeployde model
U kunt het generate endpoint aanroepen om inferences te verkrijgen met het model dat we zojuist hebben gedeployed. Er is ook een Python-bibliotheek text-generation die u kunt gebruiken met uw Python-code om het gedeployde model te gebruiken.
Via HTTP-request:

Via Python Client:

U vindt meer informatie over de clients hier.
TrueFoundry LLM Playground
De TrueFoundry LLM Playground kan worden gebruikt om te prompten en het model dat u op TrueFoundry hebt gedeployed te vergelijken met andere modellen zoals ChatGPT. Zodra het Llama-2-model is gedeployed, kunnen we het ook testen via de TrueFoundry LLM Playground:

Chat met ons
We zijn nog steeds aan het leren over dit onderwerp, net als iedereen. Mocht u proberen om Large Language Models in uw organisatie in te zetten, dan gaan we graag het gesprek aan om ervaringen uit te wisselen.
Drink een ☕️ met ons
Bijlage: Details over taken & metrieken
MMLU staat voor Multi-task Multi-Lingual Language Understanding. Het is een benchmark die de prestaties van taalmodellen meet op een verscheidenheid aan taken, waaronder het beantwoorden van vragen, natural language inference en samenvatten. De gedachte achter MMLU is dat taalmodellen in staat moeten zijn om informatie op verschillende manieren te begrijpen en te verwerken, en dat ze dit in meerdere talen moeten kunnen doen.
TriviaQA is een dataset van vragen en antwoorden over feitelijke onderwerpen. Het wordt gebruikt om het vermogen van taalmodellen te meten om vragen te beantwoorden die feitelijke kennis vereisen. De gedachte achter TriviaQA is dat taalmodellen toegang moeten kunnen krijgen tot informatie uit externe bronnen, zoals Wikipedia, en deze moeten kunnen verwerken om feitelijke vragen te beantwoorden.
Natural Questions is een dataset van vragen die door mensen worden gesteld over informatie uit de echte wereld. Het wordt gebruikt om het vermogen van taalmodellen te meten om vragen in natuurlijke taal te begrijpen en te beantwoorden. De gedachte achter Natural Questions is dat taalmodellen de nuances van menselijke taal moeten kunnen begrijpen en antwoorden moeten kunnen genereren die relevant en informatief zijn.
GSM8k is een dataset van 8.000 vragen die zijn gegenereerd op basis van Google Search-zoekopdrachten. Het wordt gebruikt om het vermogen van taalmodellen te meten om vragen te begrijpen en te beantwoorden die vergelijkbaar zijn met de vragen die mensen stellen aan Google Search. De gedachte achter GSM8k is dat taalmodellen de intentie van menselijke zoekopdrachten moeten kunnen begrijpen en antwoorden moeten kunnen genereren die relevant en informatios zijn.
HumanEval is een benchmark die de prestaties van taalmodellen meet op een verscheidenheid aan taken door mensen te vragen de uitvoer van de modellen te beoordelen. De gedachte achter HumanEval is dat menselijke evaluatie een noodzakelijk onderdeel is van het beoordelen van de prestaties van taalmodellen, omdat het kan helpen bij het identificeren van gebieden waar de modellen nog steeds moeite mee hebben.
AGIEval is een benchmark die het vermogen van taalmodellen meet om taken uit te voeren die doorgaans worden geassocieerd met kunstmatige algemene intelligentie (AGI). De gedachte achter AGIEval is dat taalmodellen in staat moeten zijn om de wereld te begrijpen en erover te redeneren op een manier die vergelijkbaar is met hoe mensen dat doen.
BoolQ is een dataset van vragen die booleaanse logica vereisen om te beantwoorden. Het wordt gebruikt om het vermogen van taalmodellen te meten om logische beweringen te begrijpen en erover te redeneren. De gedachte achter BoolQ is dat taalmodellen de betekenis van logische beweringen moeten kunnen begrijpen en antwoorden moeten kunnen genereren die consistent zijn met die beweringen.
HellaSwag is een dataset van vragen die zijn geschreven in een "swag"-stijl, wat een type informele taal is dat vaak wordt gebruikt op sociale media. Het wordt gebruikt om het vermogen van taalmodellen te meten om natuurlijke taal te begrijpen en te genereren in een verscheidenheid aan stijlen. De gedachte achter HellaSwag is dat taalmodellen natuurlijke taal moeten kunnen begrijpen en genereren die passend is voor de context waarin deze wordt gebruikt.
OpenBookQA is een dataset van vragen die kunnen worden beantwoord door een grote tekstcorpus te raadplegen. Het wordt gebruikt om het vermogen van taalmodellen te meten om toegang te krijgen tot informatie uit externe bronnen en deze te verwerken. De gedachte achter OpenBookQA is dat taalmodellen toegang moeten kunnen krijgen tot informatie uit verschillende bronnen en deze moeten kunnen verwerken om vragen te beantwoorden.
QuAC is een dataset van vragen die worden gesteld over gesprekken. Het wordt gebruikt om het vermogen van taalmodellen te meten om de context van een gesprek te begrijpen en te volgen. De gedachte achter QuAC is dat taalmodellen de context van een gesprek moeten kunnen begrijpen en antwoorden moeten kunnen genereren die relevant zijn voor het gesprek.
Winogrande is een dataset van vragen die uitdagend zijn voor taalmodellen om te beantwoorden. Het wordt gebruikt om het vermogen van taalmodellen te meten om complexe vragen te begrijpen en te beantwoorden. De gedachte achter Winogrande is dat taalmodellen complexe vragen moeten kunnen begrijpen en beantwoorden die een diepgaand begrip van de wereld vereisen.
TrueFoundry AI Gateway levert een latentie van ~3–4 ms, verwerkt 350+ RPS op 1 vCPU, schaalt moeiteloos horizontaal en is klaar voor productie, terwijl LiteLLM last heeft van hoge latentie, moeite heeft boven een gemiddeld aantal RPS, geen ingebouwde schaling heeft en het meest geschikt is voor lichte workloads of prototypes.



















.png)

.webp)



.webp)







.webp)





