创建 LLM 以在 Python 中使用张量流进行测试

创建 llm 以在 python 中使用张量流进行测试

嗨,

我想测试一个小型的llm程序,我决定用tensorflow来做。

我的源代码可以在 https://github.com/victordalet/first_llm

一、要求

您需要安装tensorflow和numpy

立即学习“Python免费学习笔记(深入)”;

pip install 'numpy<2'pip install tensorflow

登录后复制

ii – 创建数据集

您需要创建一个数据字符串数组来计算一个小数据集,例如我创建:

data = [    "salut comment ca va",    "je suis en train de coder",    "le machine learning est une branche de l'intelligence artificielle",    "le deep learning est une branche du machine learning",]

登录后复制

如果你没有灵感,可以在kaggle上找到一个数据集。

iii – 构建模型并训练它

为此,我使用各种方法创建了一个小型 llm 类。

class llm:    def __init__(self):        self.model = none        self.max_sequence_length = none        self.input_sequences = none        self.total_words = none        self.tokenizer = none        self.tokenize()        self.create_input_sequences()        self.create_model()        self.train()        test_sentence = "pour moi le machine learning est"        print(self.test(test_sentence, 10))    def tokenize(self):        self.tokenizer = tokenizer()        self.tokenizer.fit_on_texts(data)        self.total_words = len(self.tokenizer.word_index) + 1    def create_input_sequences(self):        self.input_sequences = []        for line in data:            token_list = self.tokenizer.texts_to_sequences([line])[0]            for i in range(1, len(token_list)):                n_gram_sequence = token_list[:i + 1]                self.input_sequences.append(n_gram_sequence)        self.max_sequence_length = max([len(x) for x in self.input_sequences])        self.input_sequences = pad_sequences(self.input_sequences, maxlen=self.max_sequence_length, padding='pre')    def create_model(self):        self.model = sequential()        self.model.add(embedding(self.total_words, 100, input_length=self.max_sequence_length - 1))        self.model.add(lstm(150, return_sequences=true))        self.model.add(dropout(0.2))        self.model.add(lstm(100))        self.model.add(dense(self.total_words, activation='softmax'))    def train(self):        self.model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])        x, y = self.input_sequences[:, :-1], self.input_sequences[:, -1]        y = tf.keras.utils.to_categorical(y, num_classes=self.total_words)        self.model.fit(x, y, epochs=200, verbose=1)

登录后复制

iv – 测试

最后,我使用类的构造函数中调用的测试方法来测试模型。

警告:如果生成的单词与前一个单词相同,我会在此测试函数中阻止生成。

    def test(self, sentence: str, nb_word_to_generate: int):        last_word = ""        for _ in range(nb_word_to_generate):            token_list = self.tokenizer.texts_to_sequences([sentence])[0]            token_list = pad_sequences([token_list], maxlen=self.max_sequence_length - 1, padding='pre')            predicted = np.argmax(self.model.predict(token_list), axis=-1)            output_word = ""            for word, index in self.tokenizer.word_index.items():                if index == predicted:                    output_word = word                    break            if last_word == output_word:                return sentence            sentence += " " + output_word            last_word = output_word        return sentence

登录后复制

以上就是创建 LLM 以在 Python 中使用张量流进行测试的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2191876.html

(0)
上一篇 2025年2月25日 19:15:42
下一篇 2025年2月19日 14:54:07

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Python 列表理解

    Python 最酷的事情之一是列表推导式如何使在一行代码中创建和操作列表变得非常容易。列表理解是一种通过转换和过滤现有列表中的元素来构建新列表的简洁方法。这个特性是 Python 使代码更具可读性和高效性的众多方法之一,对于初学者来说是一个…

    2025年2月25日
    200
  • Python 作为数据分析工具简介

    当我深入 lux tech academy 的第二周学习时,我们开始接触 python 作为初学者语言。以下概述了 python 作为数据分析工具的介绍。我看过很多数据分析师的视频,大多数都推荐使用python进行数据分析,为什么? pyt…

    2025年2月25日
    200
  • python数据分析简介

    什么是Python? Python 是一种流行的编程语言。它由 Guido van Rossum 创建,并于 1991 年发布。 它用于: 网络开发(服务器端),软件开发,数学,系统脚本。 *Python 能做什么?* Python 可以在…

    2025年2月25日
    200
  • 如何用 Python 构建 Hangman 游戏:分步指南

    hangman 是一款经典的猜词游戏,非常有趣,对于初学者程序员来说是一个很棒的项目。 在本文中,我们将学习如何用 python 构建一个简单版本的 hangman 游戏。 最后,您将了解如何使用 python 的基本控制结构、函数和列表来…

    2025年2月25日
    100
  • 使用 Pytest 自动化您的任务:带有示例的实用指南

    自动化是现代软件开发和测试的关键部分。它可以节省时间、减少人工错误并确保跨流程的一致性。 pytest 框架是 python 中最流行、最强大的自动化任务工具之一,特别是在测试方面。它轻量级、易于使用,并提供大量插件和内置功能来简化自动化过…

    2025年2月25日
    200
  • 我的第一个 Python 项目:基于文本的冒险游戏

    作为计算机科学专业认证的一部分,我最近完成了我的第一个完整项目,这项任务挑战我走出学院的平台,从头开始编写 Python 程序。目标是进行研究、集思广益,并最终构建一款基于终端的基本游戏。 经过深思熟虑,我决定制作一款以奇幻为主题的老式文本…

    2025年2月25日
    200
  • 熊猫备忘单

    熊猫综合指南:终极备忘单 pandas 是一个基于 python 构建的开源数据操作和分析库。它提供了易于使用的数据结构,例如 dataframe 和 series,有助于各种数据分析任务的数据处理。它广泛用于处理结构化数据、数据清理和准备…

    2025年2月25日
    200
  • 人工智能跑者

    AI Runner v3.0 昨天上线。它完全重写了以前的版本,并引入了许多新功能和改进,例如可定制的聊天机器人、可以选择和运行命令的代理、Stable Diffusion XL 支持等等。 AI Runner 使用 Python 使用 p…

    2025年2月25日
    200
  • 掌握全栈开发

    全栈开发是精通web应用程序开发的前端和后端方面的实践。全栈开发人员能够处理软件应用程序的所有层,从用户界面和用户体验(前端)到服务器、数据库和服务器端逻辑(后端)。这种多功能性使他们能够独立或作为开发团队的一部分创建和维护完整的 web …

    2025年2月25日
    200
  • 为家庭网络构建一个简单的基于 Python 的防火墙

    作者:特里克斯·赛勒斯 waymap渗透测试工具:点击这里trixsec github:点击这里 先决条件在深入实施之前,您需要: python 编程基础知识。您的系统上已安装 python 3。用于数据包操作的 scapy 库(使用 pi…

    2025年2月25日
    200

发表回复

登录后才能评论