Any tips or ideas on choosing a final year project? I don’t really have any ideas in mind other than implementing an LLM, not sure how applicable or good this is though, my major is computer engineering and i’m only interested in software dev
I am unfamiliar with your school system I think. Final year of college / university? Do you have a specialization in your major (graphics, machine learning, embedded, networks / security - something like this?)
I’d go with something from the specialization if you have one. If not, just something that interests you.
I’m interested in graphics and infosec
I don’t think you should do LLM or machine learning stuff if you want to get software development out of the project. Mostly because most of the time you won’t do software dev stuff with that kind of stuff. You will mostly just download some off the shelf model, prepare data, tweak parameters, cross your fingers and pray for slightly better results, and repeat.
My recommendation without knowing much about you is to make a game engine. You remove the pressure of making something practical, and can just focus on making stuff that looks cool. You can easily control the scope of the project, and you will face a great variety of software development challenges. Lots of opportunities to learn.
And finally you will also have something that’s fun to present.
An LLM pointed at various (local) public sources of data, that can answer (local) voter questions, could be pretty cool.
I.e: "Summarize X candidate’s voting record on tax increases/education/walkable cities/unionization/etc…
LLMs are all the hype but there are plenty of solid computer science projects. Some options that come to mind:
- Your own DB engine
- Your own game engine (you can put a cool twist on it - I had a thought of making a game in non-euclidean 3D space)
- Your own <insert network protocol> client/server Etc…
A more general option is to look for free APIs and use that is base for ideas.
What topics do you find interesting?
They aren’t all hype. They are amazing technology.
A lot of the software built with them is completely just hype though.
I didn’t say they are “all hype”, I said they are “all the hype”. I agree they are useful, but over hyped.
Ask your profs or other applicable personnel for offered final year projects, suggestions, and previous years projects. You can also check software dev companies which may offer such projects as job openings. That’ll give you more of an overview of current common projects, and some ideas of what you could do.
I might misunderstand what you mean with “implementing” an LLM, but unless you have a good understanding of deep learning and math I wouldn’t recommend to implement one from scratch. There’s a lot of complex math involved in these kind of topics. If you mean implementing an application around an existing LLM, for example writing a chat website that interfaces with ChatGPT or a local LLM, then it’s doable (depending on you current skills).
The math involved in LLMs is not complex for anyone that has passed undergrad Calc and Linear Algebra classes. If you know derivatives, the chain rule and some matrix basics you can figure them out with enough studying.
The hard part about LLMs is not the math but the neural net architecture innovations they brought (eg self-attention)