Views
No views yet
1import json
2from transformers import pipeline, AutoTokenizer, LlamaForCausalLM
3import torch
4model_id = "Ericu950/Epigr_1_Llama-3.1-8B-Instruct_place"
5model = LlamaForCausalLM.from_pretrained(
6 model_id,
7 device_map="auto",
8)
9tokenizer = AutoTokenizer.from_pretrained(model_id)
10generation_pipeline = pipeline(
11 "text-generation",
12 model=model,
13 tokenizer=tokenizer,
14 device_map="auto",
15)1# This is a transcription of IG XII,4 5:4043 from https://inscriptions.packhum.org/text/359280?bookid=879&location=1678
2inscription_edition = "----εκτηι ισταμενου· ευμολποσ μολπου επεστατει· πρυτανεων γνωμη μεσσηνεωσ του διονοσ κατασταθεντοσ υπο --—ου του μυγαλου ερμωνοσ του μυιστρου κατασταθεντοσ υπο --—ρατου του προμαχου μολπου του μολπου λεοντοσ του -—ιππου κατασταθεντοσ υπο αριστοφανου του νουμηνιου του στησιοχου ηρακλειτου του αρτεμιδωρου δημοφωντοσ του πρυτανιοσ δαμωνοσ του ονφαλιωνοσ· επειδη οι δικασται οι αποσταλεντεσ εισ καλυμναν κομιζουσιν ψηφισμα παρα του δημου του καλυμνιων εν ωι γεγραπται οτι ο δημοσ ο καλυμνιων στεφανοι τον δημον χρυσωι στεφανωι αρετησ ενεκεν και ευνοιασ τησ εισ αυτον στεφανοι δε και τουσ δικαστασ τουσ αποσταλεντασ χρυσωι στεφανωι καλοκαγαθιασ ενεκεν κλεανδρον διοδωρου λεοντα ευβουλου κεφαλον δρακοντοσ θεοδωρον νουμηνιου λεοντα δρακοντιδου και περι τουτων οιεται δειν επιμελειαν ποιησασθαι τον δημον οπωσ ο τησ πολεωσ στεφανοσ αναγορευθηι και ο των δικαστων εν τωι θεατρωι διονυσιοισ δεδοχθαι τωι δημωι· τον μεν αγωνοθετην αναγγειλαι τον τησ πολεωσ στεφανον και τον των δικαστων κυκλιων τηι πρωτηι· επηινησθαι δε και τουσ δικαστασ τουσ αποσταλεντασ επειδη αξιοι γενομενοι του δημου τιμασ περιεποιησαν τηι πολει· οπωσ δε και το ψηφισμα τουτο και το παρα καλυμνιων αναγραφηι εν τωι επιφανεστατωι τοπωι καθα και καλυμνιοι αξιουσιν οι νεωποιαι επιμελειαν ποιησασθωσαν ινα αναγραφηι αμφοτερα τα ψηφισματα εν τωι ιερωι του διοσ η τησ αρτεμιδοσ· καλεσαι δε και τουσ δικαστασ τουσ αποσταλεντασ εισ το πρυτανειον. εδοξε ται βουλαι και τωι δαμωι γνωμα προσταταν· επειδη ο δαμοσ ο ιασεων εν τε τοισ προτερον χρονοις ευνουσ ων και φιλοσ διατελει τωι δαμωι τωι καλυμνιων και νυν πρεσβευοντοσ του δαμου και αξιοντοσ δομεν ανδρασ πεντε οιτινεσ παραγενομενοι μαλιστα μεν διαλυσεντι τουσ διαφερομενουσ των πολιταν ει δε μη κρινεντι δια ψηφου απεστειλε ανδρασ καλουσ καγαθουσ οι παραγενομενοι πασαν σπουδαν εποιησαντο του διαλυθεντασ τουσ πολιτασ τα ποτ’ αυτουσ πολιτευεσθαι μετ’ ομονοιασ· και απογραφεισαν δικαν εισ το δικαστηριον πλεων η τριακοσιαν πεντηκοντα τασ μεν πλειστας διελυσαν πεισαντεσ τουσ αντιδικουσ οπωσ μη δια ψηφου των πραγματων κρινομενων εισ πλεω ταραχαν ο δαμοσ καθισταται· τινασ δε και διαιτασαν συμφεροντωσ εκατεροισ τοισ αντιδικοις·"
3system_prompt = "Assign this inscription to an exact place!"
4input_messages = [
5 {"role": "system", "content": system_prompt},
6 {"role": "user", "content": inscription_edition},
7]
8terminators = [
9 tokenizer.eos_token_id,
10 tokenizer.convert_tokens_to_ids("<|eot_id|>")
11]
12outputs = generation_pipeline(
13 input_messages,
14 max_new_tokens=15,
15 num_beams=13, # Set this as high as your memory will allow!
16 num_return_sequences=3,
17 early_stopping=True,
18)
19beam_contents = []
20for output in outputs:
21 generated_text = output.get('generated_text', [])
22 for item in generated_text:
23 if item.get('role') == 'assistant':
24 beam_contents.append(item.get('content'))
25real_response = "Cos and Calymna"
26print(f"Place of origin: {real_response}")
27for i, content in enumerate(beam_contents, start=1):
28 print(f"Suggestion {i}: {content}")Place of origin: Cos and Calymna
Suggestion 1: Cos and Calymna
Suggestion 2: Caria
Suggestion 3: Thrace and Moesia Inferior1!pip install -U bitsandbytes
2import os
3os._exit(00)1from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig, pipeline
2import torch
3quant_config = BitsAndBytesConfig(
4 load_in_4bit=True,
5 bnb_4bit_quant_type="nf4",
6 bnb_4bit_use_double_quant=True,
7 bnb_4bit_compute_dtype=torch.bfloat16
8)
9model = AutoModelForCausalLM.from_pretrained("Ericu950/Epigr_1_Llama-3.1-8B-Instruct_place",
10device_map = "auto", quantization_config = quant_config)
11tokenizer = AutoTokenizer.from_pretrained("Ericu950/Epigr_1_Llama-3.1-8B-Instruct_place")
12generation_pipeline = pipeline(
13 "text-generation",
14 model=model,
15 tokenizer=tokenizer,
16 device_map="auto",
17)1# This is a rough transcription of IG XII,4 5:4043 from https://inscriptions.packhum.org/text/359280?bookid=879&location=1678
2inscription_edition = "----εκτηι ισταμενου· ευμολποσ μολπου επεστατει· πρυτανεων γνωμη μεσσηνεωσ του διονοσ κατασταθεντοσ υπο --—ου του μυγαλου ερμωνοσ του μυιστρου κατασταθεντοσ υπο --—ρατου του προμαχου μολπου του μολπου λεοντοσ του -—ιππου κατασταθεντοσ υπο αριστοφανου του νουμηνιου του στησιοχου ηρακλειτου του αρτεμιδωρου δημοφωντοσ του πρυτανιοσ δαμωνοσ του ονφαλιωνοσ· επειδη οι δικασται οι αποσταλεντεσ εισ καλυμναν κομιζουσιν ψηφισμα παρα του δημου του καλυμνιων εν ωι γεγραπται οτι ο δημοσ ο καλυμνιων στεφανοι τον δημον χρυσωι στεφανωι αρετησ ενεκεν και ευνοιασ τησ εισ αυτον στεφανοι δε και τουσ δικαστασ τουσ αποσταλεντασ χρυσωι στεφανωι καλοκαγαθιασ ενεκεν κλεανδρον διοδωρου λεοντα ευβουλου κεφαλον δρακοντοσ θεοδωρον νουμηνιου λεοντα δρακοντιδου και περι τουτων οιεται δειν επιμελειαν ποιησασθαι τον δημον οπωσ ο τησ πολεωσ στεφανοσ αναγορευθηι και ο των δικαστων εν τωι θεατρωι διονυσιοισ δεδοχθαι τωι δημωι· τον μεν αγωνοθετην αναγγειλαι τον τησ πολεωσ στεφανον και τον των δικαστων κυκλιων τηι πρωτηι· επηινησθαι δε και τουσ δικαστασ τουσ αποσταλεντασ επειδη αξιοι γενομενοι του δημου τιμασ περιεποιησαν τηι πολει· οπωσ δε και το ψηφισμα τουτο και το παρα καλυμνιων αναγραφηι εν τωι επιφανεστατωι τοπωι καθα και καλυμνιοι αξιουσιν οι νεωποιαι επιμελειαν ποιησασθωσαν ινα αναγραφηι αμφοτερα τα ψηφισματα εν τωι ιερωι του διοσ η τησ αρτεμιδοσ· καλεσαι δε και τουσ δικαστασ τουσ αποσταλεντασ εισ το πρυτανειον. εδοξε ται βουλαι και τωι δαμωι γνωμα προσταταν· επειδη ο δαμοσ ο ιασεων εν τε τοισ προτερον χρονοις ευνουσ ων και φιλοσ διατελει τωι δαμωι τωι καλυμνιων και νυν πρεσβευοντοσ του δαμου και αξιοντοσ δομεν ανδρασ πεντε οιτινεσ παραγενομενοι μαλιστα μεν διαλυσεντι τουσ διαφερομενουσ των πολιταν ει δε μη κρινεντι δια ψηφου απεστειλε ανδρασ καλουσ καγαθουσ οι παραγενομενοι πασαν σπουδαν εποιησαντο του διαλυθεντασ τουσ πολιτασ τα ποτ’ αυτουσ πολιτευεσθαι μετ’ ομονοιασ· και απογραφεισαν δικαν εισ το δικαστηριον πλεων η τριακοσιαν πεντηκοντα τασ μεν πλειστας διελυσαν πεισαντεσ τουσ αντιδικουσ οπωσ μη δια ψηφου των πραγματων κρινομενων εισ πλεω ταραχαν ο δαμοσ καθισταται· τινασ δε και διαιτασαν συμφεροντωσ εκατεροισ τοισ αντιδικοις·"
3system_prompt = "Assign this inscription to an exact place!"
4input_messages = [
5 {"role": "system", "content": system_prompt},
6 {"role": "user", "content": inscription_edition},
7]
8terminators = [
9 tokenizer.eos_token_id,
10 tokenizer.convert_tokens_to_ids("<|eot_id|>")
11]
12outputs = generation_pipeline(
13 input_messages,
14 max_new_tokens=15,
15 num_beams=13, # Set this as high as your memory will allow!
16 num_return_sequences=3,
17 early_stopping=True,
18)
19beam_contents = []
20for output in outputs:
21 generated_text = output.get('generated_text', [])
22 for item in generated_text:
23 if item.get('role') == 'assistant':
24 beam_contents.append(item.get('content'))
25real_response = "Cos and Calymna"
26print(f"Place of origin: {real_response}")
27for i, content in enumerate(beam_contents, start=1):
28 print(f"Suggestion {i}: {content}")Place of origin: Cos and Calymna
Suggestion 1: Cos and Calymna
Suggestion 2: Lesbos, Nesos, and Tenedos
Suggestion 3: Doric Sporades